diff --git a/.gitignore b/.gitignore index e25840ef..f5da4311 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ dist/ # other licenses contrib/ + +# deps +copyparty/web/deps \ No newline at end of file diff --git a/scripts/deps-docker/Dockerfile b/scripts/deps-docker/Dockerfile new file mode 100644 index 00000000..6568044c --- /dev/null +++ b/scripts/deps-docker/Dockerfile @@ -0,0 +1,43 @@ +FROM alpine:3.10 +WORKDIR /z +ENV ver_forge=0.8.5 \ + ver_ogvjs=1.6.1 + +# download +RUN apk add make g++ git bash npm patch wget tar gzip unzip \ + && wget https://github.com/digitalbazaar/forge/archive/$ver_forge.tar.gz \ + && wget https://github.com/brion/ogv.js/releases/download/$ver_ogvjs/ogvjs-$ver_ogvjs.zip \ + && tar -xf $ver_forge.tar.gz \ + && unzip ogvjs-$ver_ogvjs.zip \ + && cd forge-$ver_forge \ + && npm install + +# customize +COPY forge.patch /z + +# build forge +RUN cd forge-$ver_forge \ + && patch -p1 < /z/forge.patch \ + && npm run build \ + && mkdir /z/dist \ + && cp -pv dist/forge.sha512.* /z/dist + +# build ogvjs +RUN cd ogvjs-$ver_ogvjs \ + && cp -pv \ + ogv.js \ + ogv-worker-audio.js \ + ogv-demuxer-ogg.js \ + ogv-demuxer-ogg-wasm.js \ + ogv-demuxer-ogg-wasm.wasm \ + ogv-demuxer-webm.js \ + ogv-demuxer-webm-wasm.js \ + ogv-demuxer-webm-wasm.wasm \ + ogv-decoder-audio-opus.js \ + ogv-decoder-audio-opus-wasm.js \ + ogv-decoder-audio-opus-wasm.wasm \ + ogv-decoder-audio-vorbis.js \ + ogv-decoder-audio-vorbis-wasm.js \ + ogv-decoder-audio-vorbis-wasm.wasm \ + dynamicaudio.swf \ + /z/dist diff --git a/scripts/deps-docker/Makefile b/scripts/deps-docker/Makefile new file mode 100644 index 00000000..696b4f93 --- /dev/null +++ b/scripts/deps-docker/Makefile @@ -0,0 +1,20 @@ +self := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) +vend := $(self)/../../copyparty/web/deps + +all: + service docker start + + docker build -t build-copyparty-deps . + + rm -rf $(vend) + mkdir $(vend) + + echo "tar -cC /z dist" | \ + docker run --rm -i build-copyparty-deps:latest | \ + tar -xvC $(vend) --strip-components=1 + + chown -R `stat $(self) -c %u:%g` $(vend) + +sh: + @printf "\n\033[1;31mopening a shell in the most recently created docker image\033[0m\n" + docker run --rm -it `docker images -aq | head -n 1` /bin/bash diff --git a/scripts/deps-docker/forge.patch b/scripts/deps-docker/forge.patch new file mode 100644 index 00000000..29ecbf4f --- /dev/null +++ b/scripts/deps-docker/forge.patch @@ -0,0 +1,14 @@ +diff -NarU3 forge-0.8.5/webpack.config.js forge-0.8.5-mod/webpack.config.js +--- forge-0.8.5/webpack.config.js 2019-06-19 03:05:22.000000000 +0200 ++++ forge-0.8.5-mod/webpack.config.js 2019-06-26 00:11:42.108019160 +0200 +@@ -31,6 +31,10 @@ + library: null, + libraryTarget: null + } ++ ,{ ++ entry: ['./lib/sha512.js', './lib/forge.js'], ++ filenameBase: 'forge.sha512' ++ } + // Custom builds can be created by specifying the high level files you need + // webpack will pull in dependencies as needed. + //