mirror of
https://github.com/9001/copyparty.git
synced 2026-02-27 22:13:10 -07:00
Merge 1966469b75 into 7c60adc69c
This commit is contained in:
commit
60606ccd95
|
|
@ -112,18 +112,6 @@ buildPythonApplication {
|
||||||
pname = "copyparty";
|
pname = "copyparty";
|
||||||
inherit version src;
|
inherit version src;
|
||||||
postPatch = lib.optionalString (!stable) ''
|
postPatch = lib.optionalString (!stable) ''
|
||||||
old_src="$(mktemp -d)"
|
|
||||||
tar -C "$old_src" -xf ${stableSrc}
|
|
||||||
declare -a folders
|
|
||||||
folders=("$old_src"/*)
|
|
||||||
count_folders="''${#folders[@]}"
|
|
||||||
if [[ $count_folders != 1 ]]; then
|
|
||||||
declare -p folders
|
|
||||||
echo "Expected 1 folder, found $count_folders" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
old_src_folder="''${folders[0]}"
|
|
||||||
cp -r "$old_src_folder"/copyparty/web/deps copyparty/web/deps
|
|
||||||
sed -i 's/^CODENAME =.*$/CODENAME = "${unstableCodename}"/' copyparty/__version__.py
|
sed -i 's/^CODENAME =.*$/CODENAME = "${unstableCodename}"/' copyparty/__version__.py
|
||||||
${lib.optionalString (copypartyFlake != null) (with dateStringsShort; ''
|
${lib.optionalString (copypartyFlake != null) (with dateStringsShort; ''
|
||||||
sed -i 's/^BUILD_DT =.*$/BUILD_DT = (${year}, ${month}, ${day})/' copyparty/__version__.py
|
sed -i 's/^BUILD_DT =.*$/BUILD_DT = (${year}, ${month}, ${day})/' copyparty/__version__.py
|
||||||
|
|
|
||||||
|
|
@ -1,142 +1,54 @@
|
||||||
FROM alpine:3.23
|
FROM alpine:3.23
|
||||||
WORKDIR /z
|
WORKDIR /z
|
||||||
ENV ver_hashwasm=4.12.0 \
|
|
||||||
ver_marked=4.3.0 \
|
|
||||||
ver_dompf=3.3.1 \
|
|
||||||
ver_mde=2.18.0 \
|
|
||||||
ver_codemirror=5.65.18 \
|
|
||||||
ver_fontawesome=5.13.0 \
|
|
||||||
ver_prism=1.30.0 \
|
|
||||||
ver_zopfli=1.0.3
|
|
||||||
|
|
||||||
# versioncheck:
|
|
||||||
# https://github.com/markedjs/marked/releases
|
|
||||||
# https://github.com/Ionaru/easy-markdown-editor/tags # ignore 2.20.0
|
|
||||||
# https://github.com/codemirror/codemirror5/releases
|
|
||||||
# https://github.com/cure53/DOMPurify/releases
|
|
||||||
# https://github.com/Daninet/hash-wasm/releases
|
|
||||||
# https://github.com/google/zopfli/tags
|
|
||||||
|
|
||||||
|
|
||||||
# download;
|
RUN apk add \
|
||||||
# the scp url is regular latin from https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap
|
bash brotli make git gzip npm patch pigz tar unzip wget \
|
||||||
RUN mkdir -p /z/dist/no-pk \
|
python3 python3-dev py3-brotli py3-fonttools py3-zopfli
|
||||||
&& wget https://fonts.gstatic.com/s/sourcecodepro/v11/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 -O scp.woff2 \
|
|
||||||
&& apk add \
|
|
||||||
bash brotli cmake make g++ git gzip lame npm patch pigz \
|
|
||||||
python3 python3-dev py3-brotli sox tar unzip wget \
|
|
||||||
&& rm -f /usr/lib/python3*/EXTERNALLY-MANAGED \
|
|
||||||
&& wget https://github.com/markedjs/marked/archive/v$ver_marked.tar.gz -O marked.tgz \
|
|
||||||
&& wget https://github.com/Ionaru/easy-markdown-editor/archive/$ver_mde.tar.gz -O mde.tgz \
|
|
||||||
&& wget https://github.com/codemirror/codemirror5/archive/$ver_codemirror.tar.gz -O codemirror.tgz \
|
|
||||||
&& wget https://github.com/cure53/DOMPurify/archive/refs/tags/$ver_dompf.tar.gz -O dompurify.tgz \
|
|
||||||
&& wget https://github.com/FortAwesome/Font-Awesome/releases/download/$ver_fontawesome/fontawesome-free-$ver_fontawesome-web.zip -O fontawesome.zip \
|
|
||||||
&& wget https://github.com/google/zopfli/archive/zopfli-$ver_zopfli.tar.gz -O zopfli.tgz \
|
|
||||||
&& wget https://github.com/Daninet/hash-wasm/releases/download/v$ver_hashwasm/hash-wasm@$ver_hashwasm.zip -O hash-wasm.zip \
|
|
||||||
&& wget https://github.com/PrismJS/prism/archive/refs/tags/v$ver_prism.tar.gz -O prism.tgz \
|
|
||||||
&& wget https://files.pythonhosted.org/packages/04/0b/4506cb2e831cea4b0214d3625430e921faaa05a7fb520458c75a2dbd2152/fusepy-3.0.1.tar.gz -O fusepy.tgz \
|
|
||||||
&& (mkdir hash-wasm \
|
|
||||||
&& cd hash-wasm \
|
|
||||||
&& unzip ../hash-wasm.zip) \
|
|
||||||
&& (tar --no-same-owner -xf marked.tgz \
|
|
||||||
&& cd marked-$ver_marked \
|
|
||||||
&& npm install \
|
|
||||||
&& npm i grunt uglify-js -g ) \
|
|
||||||
&& (tar --no-same-owner -xf codemirror.tgz \
|
|
||||||
&& cd codemirror5-$ver_codemirror \
|
|
||||||
&& npm install ) \
|
|
||||||
&& (tar --no-same-owner -xf mde.tgz \
|
|
||||||
&& cd easy-markdown-editor* \
|
|
||||||
&& npm install \
|
|
||||||
&& npm i gulp-cli -g ) \
|
|
||||||
&& tar --no-same-owner -xf dompurify.tgz \
|
|
||||||
&& tar --no-same-owner -xf prism.tgz \
|
|
||||||
&& tar --no-same-owner -xf fusepy.tgz \
|
|
||||||
&& unzip fontawesome.zip \
|
|
||||||
&& tar --no-same-owner -xf zopfli.tgz
|
|
||||||
|
|
||||||
|
|
||||||
#COPY busy-mp3.sh /z/
|
RUN mkdir -p /z/dist/no-pk
|
||||||
#RUN /z/busy-mp3.sh \
|
COPY build.sh /z/
|
||||||
# && mv -v /dev/shm/busy.mp3.gz /z/dist
|
RUN /z/build.sh download
|
||||||
|
RUN /z/build.sh unpack
|
||||||
|
|
||||||
# build fonttools (which needs zopfli)
|
|
||||||
RUN tar --no-same-owner -xf zopfli.tgz \
|
|
||||||
&& cd zopfli* \
|
|
||||||
&& cmake \
|
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
||||||
-DZOPFLI_BUILD_SHARED=ON \
|
|
||||||
-B build \
|
|
||||||
-S . \
|
|
||||||
&& make -C build \
|
|
||||||
&& make -C build install \
|
|
||||||
&& python3 -m ensurepip \
|
|
||||||
&& python3 -m pip install fonttools zopfli
|
|
||||||
|
|
||||||
|
|
||||||
# build hash-wasm
|
# build hash-wasm
|
||||||
RUN cd hash-wasm/dist \
|
RUN /z/build.sh build hash-wasm
|
||||||
&& mv sha512.umd.min.js /z/dist/sha512.hw.js
|
|
||||||
|
|
||||||
|
|
||||||
# build marked
|
# build marked
|
||||||
COPY marked.patch /z/
|
COPY marked.patch /z/
|
||||||
COPY marked-ln.patch /z/
|
COPY marked-ln.patch /z/
|
||||||
RUN cd marked-$ver_marked \
|
RUN /z/build.sh build marked
|
||||||
&& patch -p1 < /z/marked-ln.patch \
|
|
||||||
&& patch -p1 < /z/marked.patch \
|
|
||||||
&& npm run build \
|
|
||||||
&& cp -pv marked.min.js /z/dist/marked.js \
|
|
||||||
&& mkdir -p /z/nodepkgs \
|
|
||||||
&& ln -s $(pwd) /z/nodepkgs/marked
|
|
||||||
# && npm run test \
|
|
||||||
|
|
||||||
|
|
||||||
# build codemirror
|
# build codemirror
|
||||||
COPY codemirror.patch /z/
|
COPY codemirror.patch /z/
|
||||||
RUN cd codemirror5-$ver_codemirror \
|
RUN /z/build.sh build codemirror
|
||||||
&& patch -p1 < /z/codemirror.patch \
|
|
||||||
&& sed -ri '/^var urlRE = /d' mode/gfm/gfm.js \
|
|
||||||
&& npm run build \
|
|
||||||
&& ln -s $(pwd) /z/nodepkgs/codemirror
|
|
||||||
|
|
||||||
|
|
||||||
# build easymde
|
# build easymde
|
||||||
COPY easymde.patch /z/
|
COPY easymde.patch /z/
|
||||||
RUN cd easy-markdown-editor-$ver_mde \
|
|
||||||
&& patch -p1 < /z/easymde.patch \
|
|
||||||
&& sed -ri 's`https://registry.npmjs.org/marked/-/marked-[0-9\.]+.tgz`file:/z/nodepkgs/marked`' package-lock.json \
|
|
||||||
&& sed -ri 's`https://registry.npmjs.org/codemirror/-/codemirror-[0-9\.]+.tgz`file:/z/nodepkgs/codemirror`' package-lock.json \
|
|
||||||
&& sed -ri 's`("marked": ")[^"]+`\1file:/z/nodepkgs/marked`' ./package.json \
|
|
||||||
&& sed -ri 's`("codemirror": ")[^"]+`\1file:/z/nodepkgs/codemirror`' ./package.json \
|
|
||||||
&& sed -ri 's`^var marked = require\(.marked.\).marked;$`var marked = window.marked;`' src/js/easymde.js \
|
|
||||||
&& npm install
|
|
||||||
|
|
||||||
COPY easymde-ln.patch /z/
|
COPY easymde-ln.patch /z/
|
||||||
RUN cd easy-markdown-editor-$ver_mde \
|
RUN /z/build.sh build easymde
|
||||||
&& patch -p1 < /z/easymde-ln.patch \
|
|
||||||
&& gulp \
|
|
||||||
&& cp -pv dist/easymde.min.css /z/dist/easymde.css \
|
|
||||||
&& cp -pv dist/easymde.min.js /z/dist/easymde.js
|
|
||||||
|
|
||||||
|
|
||||||
# build dompurify
|
# build dompurify
|
||||||
RUN (echo; cat DOMPurify-$ver_dompf/dist/purify.min.js) >> /z/dist/marked.js
|
RUN /z/build.sh build dompurify
|
||||||
|
|
||||||
|
|
||||||
# build fontawesome and scp
|
# build fontawesome and scp
|
||||||
COPY mini-fa.sh /z
|
COPY mini-fa.sh /z
|
||||||
COPY mini-fa.css /z
|
COPY mini-fa.css /z
|
||||||
COPY shiftbase.py /z
|
COPY shiftbase.py /z
|
||||||
RUN /bin/ash /z/mini-fa.sh
|
RUN /z/build.sh build fonts
|
||||||
|
|
||||||
|
|
||||||
# build prismjs
|
# build prismjs
|
||||||
COPY genprism.py /z
|
COPY genprism.py /z
|
||||||
COPY genprism.sh /z
|
COPY genprism.sh /z
|
||||||
RUN ./genprism.sh $ver_prism
|
RUN /z/build.sh build prismjs
|
||||||
|
|
||||||
|
|
||||||
# compress
|
# compress
|
||||||
|
|
|
||||||
125
scripts/deps-docker/build.sh
Executable file
125
scripts/deps-docker/build.sh
Executable file
|
|
@ -0,0 +1,125 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
ver_hashwasm=4.12.0
|
||||||
|
ver_marked=4.3.0
|
||||||
|
ver_dompf=3.3.1
|
||||||
|
ver_mde=2.18.0
|
||||||
|
ver_codemirror=5.65.18
|
||||||
|
ver_fontawesome=5.13.0
|
||||||
|
ver_prism=1.30.0
|
||||||
|
|
||||||
|
# versioncheck:
|
||||||
|
# https://github.com/markedjs/marked/releases
|
||||||
|
# https://github.com/Ionaru/easy-markdown-editor/tags # ignore 2.20.0
|
||||||
|
# https://github.com/codemirror/codemirror5/releases
|
||||||
|
# https://github.com/cure53/DOMPurify/releases
|
||||||
|
# https://github.com/Daninet/hash-wasm/releases
|
||||||
|
|
||||||
|
explode() {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
case $1 in
|
||||||
|
busy-mp3)
|
||||||
|
/z/busy-mp3.sh
|
||||||
|
mv -v /dev/shm/busy.mp3.gz /z/dist
|
||||||
|
;;
|
||||||
|
hash-wasm)
|
||||||
|
cd hash-wasm/dist
|
||||||
|
mv sha512.umd.min.js /z/dist/sha512.hw.js
|
||||||
|
;;
|
||||||
|
marked)
|
||||||
|
cd marked-$ver_marked
|
||||||
|
patch -p1 < /z/marked-ln.patch
|
||||||
|
patch -p1 < /z/marked.patch
|
||||||
|
npm run build
|
||||||
|
cp -pv marked.min.js /z/dist/marked.js
|
||||||
|
mkdir -p /z/nodepkgs
|
||||||
|
ln -s "$(pwd)" /z/nodepkgs/marked
|
||||||
|
# npm run test
|
||||||
|
;;
|
||||||
|
codemirror)
|
||||||
|
cd codemirror5-$ver_codemirror
|
||||||
|
patch -p1 < /z/codemirror.patch
|
||||||
|
sed -ri '/^var urlRE = /d' mode/gfm/gfm.js
|
||||||
|
npm run build
|
||||||
|
ln -s "$(pwd)" /z/nodepkgs/codemirror
|
||||||
|
;;
|
||||||
|
easymde)
|
||||||
|
cd easy-markdown-editor-$ver_mde
|
||||||
|
patch -p1 < /z/easymde.patch
|
||||||
|
sed -ri 's`https://registry.npmjs.org/marked/-/marked-[0-9\.]+.tgz`file:/z/nodepkgs/marked`' package-lock.json
|
||||||
|
sed -ri 's`https://registry.npmjs.org/codemirror/-/codemirror-[0-9\.]+.tgz`file:/z/nodepkgs/codemirror`' package-lock.json
|
||||||
|
sed -ri 's`("marked": ")[^"]+`\1file:/z/nodepkgs/marked`' ./package.json
|
||||||
|
sed -ri 's`("codemirror": ")[^"]+`\1file:/z/nodepkgs/codemirror`' ./package.json
|
||||||
|
sed -ri 's`^var marked = require\(.marked.\).marked;$`var marked = window.marked;`' src/js/easymde.js
|
||||||
|
npm install
|
||||||
|
patch -p1 < /z/easymde-ln.patch
|
||||||
|
gulp
|
||||||
|
cp -pv dist/easymde.min.css /z/dist/easymde.css
|
||||||
|
cp -pv dist/easymde.min.js /z/dist/easymde.js
|
||||||
|
;;
|
||||||
|
dompurify)
|
||||||
|
(echo; cat DOMPurify-$ver_dompf/dist/purify.min.js) >> /z/dist/marked.js
|
||||||
|
;;
|
||||||
|
fonts)
|
||||||
|
# build fontawesome and scp
|
||||||
|
/bin/ash /z/mini-fa.sh
|
||||||
|
;;
|
||||||
|
prismjs)
|
||||||
|
./genprism.sh $ver_prism
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "idk how to build that"
|
||||||
|
explode
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
download)
|
||||||
|
# the scp url is regular latin from https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap
|
||||||
|
echo "download things"
|
||||||
|
wget https://fonts.gstatic.com/s/sourcecodepro/v11/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 -O scp.woff2
|
||||||
|
wget https://github.com/markedjs/marked/archive/v$ver_marked.tar.gz -O marked.tgz
|
||||||
|
wget https://github.com/Ionaru/easy-markdown-editor/archive/$ver_mde.tar.gz -O mde.tgz
|
||||||
|
wget https://github.com/codemirror/codemirror5/archive/$ver_codemirror.tar.gz -O codemirror.tgz
|
||||||
|
wget https://github.com/cure53/DOMPurify/archive/refs/tags/$ver_dompf.tar.gz -O dompurify.tgz
|
||||||
|
wget https://github.com/FortAwesome/Font-Awesome/releases/download/$ver_fontawesome/fontawesome-free-$ver_fontawesome-web.zip -O fontawesome.zip
|
||||||
|
wget https://github.com/Daninet/hash-wasm/releases/download/v$ver_hashwasm/hash-wasm@$ver_hashwasm.zip -O hash-wasm.zip
|
||||||
|
wget https://github.com/PrismJS/prism/archive/refs/tags/v$ver_prism.tar.gz -O prism.tgz
|
||||||
|
wget https://files.pythonhosted.org/packages/04/0b/4506cb2e831cea4b0214d3625430e921faaa05a7fb520458c75a2dbd2152/fusepy-3.0.1.tar.gz -O fusepy.tgz
|
||||||
|
;;
|
||||||
|
unpack)
|
||||||
|
(mkdir hash-wasm \
|
||||||
|
&& cd hash-wasm \
|
||||||
|
&& unzip ../hash-wasm.zip)
|
||||||
|
(tar --no-same-owner -xf marked.tgz \
|
||||||
|
&& cd marked-$ver_marked \
|
||||||
|
&& npm install \
|
||||||
|
&& npm i grunt uglify-js -g )
|
||||||
|
(tar --no-same-owner -xf codemirror.tgz \
|
||||||
|
&& cd codemirror5-$ver_codemirror \
|
||||||
|
&& npm install )
|
||||||
|
(tar --no-same-owner -xf mde.tgz \
|
||||||
|
&& cd easy-markdown-editor* \
|
||||||
|
&& npm install \
|
||||||
|
&& npm i gulp-cli -g )
|
||||||
|
tar --no-same-owner -xf dompurify.tgz
|
||||||
|
tar --no-same-owner -xf prism.tgz
|
||||||
|
tar --no-same-owner -xf fusepy.tgz
|
||||||
|
unzip fontawesome.zip
|
||||||
|
;;
|
||||||
|
build)
|
||||||
|
build "$2"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "idk"
|
||||||
|
explode
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Loading…
Reference in a new issue