From bef30ac04d6519c0f30fab6c35c1822c20aa7bdb Mon Sep 17 00:00:00 2001 From: ed Date: Sun, 25 Jan 2026 00:22:54 +0000 Subject: [PATCH] webdeps: vendor asmcrypto.js; npm is no longer able to build it, and the build output never changed since copyparty v0.11.20 (2021-06-20) / asmcrypto 2821dd1dedd1196c378f5854037dda5c869313f3 (2018-12-02) one final pass of reasonable size-golfing was done by hand deflated with pigz -11 -I250 --- copyparty/web/deps/README.md | 18 ++++++++++++++++++ copyparty/web/deps/sha512.ac.js.gz | Bin 0 -> 6667 bytes docs/lics.txt | 2 +- scripts/deps-docker/Dockerfile | 18 +++--------------- scripts/make-pypi-release.sh | 1 + scripts/make-sfx.sh | 2 +- scripts/make-tgz-release.sh | 3 ++- 7 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 copyparty/web/deps/README.md create mode 100644 copyparty/web/deps/sha512.ac.js.gz diff --git a/copyparty/web/deps/README.md b/copyparty/web/deps/README.md new file mode 100644 index 00000000..41a4d853 --- /dev/null +++ b/copyparty/web/deps/README.md @@ -0,0 +1,18 @@ +this folder *mostly* contains third-party dependencies; run `make -C scripts/deps-docker` to build the following files and have them appear here: + +* `easymde.css.gz` and `easymde.js.gz` is the fancy markdown editor, [EasyMDE](https://github.com/Ionaru/easy-markdown-editor) +* `marked.js.gz` is the markdown rendering library [Marked](https://github.com/markedjs/marked) +* `mini-fa.css.gz` and `mini-fa.woff` is a small subset of [fontawesome](https://github.com/FortAwesome/Font-Awesome) +* `prism.css.gz` and `prism.js.gz` is the syntax highlighter [PrismJS](https://prismjs.com/) +* `scp.woff2` is a subset of the monospace font [Source Code Pro](https://github.com/adobe-fonts/source-code-pro) +* `sha512.hw.js.gz` is the Wasm sha512 library [hash-wasm](https://github.com/Daninet/hash-wasm) + +additionally, the following files are vendored into the copyparty git repository, but do NOT originate from the copyparty project (as mentioned in `--license`): + +* `sha512.ac.js.gz` is a compiled and slightly golfed/modified [asmcrypto.js](https://github.com/asmcrypto/asmcrypto.js), © 2013 Artem S Vybornov (MIT-Licensed) + * vendored because it no longer builds with modern versions of NodeJS/npm + * is only loaded by *really old* webbrowsers (ie11, firefox 51, chrome 56) + +finally, there is also the following files which *does* originate from the copyparty project, yet appear here for technical reasons: + +* `busy.mp3.gz` is a short mp3-file to make iphones stop glitching out diff --git a/copyparty/web/deps/sha512.ac.js.gz b/copyparty/web/deps/sha512.ac.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce98a7fe3a1bb98959f96ff6214947a92f65c2fa GIT binary patch literal 6667 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 a0{>)v src/entry-export_all.ts \ - && node -r esm build.js \ - && awk '/HMAC state/{o=1} /var HEAP/{o=0} /function hmac_reset/{o=1} /return \{/{o=0} /var __extends =/{o=1} /var Hash =/{o=0} /hmac_|pbkdf2_/{next} o{next} {gsub(/IllegalStateError/,"Exception")} {sub(/^ +/,"");sub(/^\/\/ .*/,"");sub(/;$/," ;")} 1' < asmcrypto.all.es5.js > /z/dist/sha512.ac.js - - # build hash-wasm RUN cd hash-wasm/dist \ && mv sha512.umd.min.js /z/dist/sha512.hw.js diff --git a/scripts/make-pypi-release.sh b/scripts/make-pypi-release.sh index aecfea94..7ed3b8a0 100755 --- a/scripts/make-pypi-release.sh +++ b/scripts/make-pypi-release.sh @@ -151,6 +151,7 @@ done rm -rf contrib [ $fast ] && sed -ri s/573/10/ copyparty/web/Makefile (cd copyparty/web && make -j$(nproc) && rm Makefile) +rm -f copyparty/web/deps/README.md # build python3 -m build diff --git a/scripts/make-sfx.sh b/scripts/make-sfx.sh index 770080d3..afd12c3b 100755 --- a/scripts/make-sfx.sh +++ b/scripts/make-sfx.sh @@ -435,7 +435,7 @@ find -name py.typed -delete find -type f \( -name .DS_Store -or -name ._.DS_Store \) -delete find -type f -name ._\* | while IFS= read -r f; do cmp <(printf '\x00\x05\x16') <(head -c 3 -- "$f") && rm -fv -- "$f"; done -rm -f copyparty/web/deps/*.full.* copyparty/web/dbg-* copyparty/web/Makefile +rm -f copyparty/web/deps/*.full.* copyparty/web/deps/README.md copyparty/web/dbg-* copyparty/web/Makefile find copyparty | LC_ALL=C sort | sed -r 's/\.gz$//;s/$/,/' > have cat have | while IFS= read -r x; do diff --git a/scripts/make-tgz-release.sh b/scripts/make-tgz-release.sh index c68766f9..f7cf25ca 100755 --- a/scripts/make-tgz-release.sh +++ b/scripts/make-tgz-release.sh @@ -91,7 +91,8 @@ grep -qE "^VERSION *= \(${commaver}\)$" copyparty/__version__.py || } rm -rf .vscode -rm \ +rm -f \ + copyparty/web/deps/README.md \ .gitattributes \ .gitignore