diff --git a/assets/windows.Dockerfile b/assets/windows.Dockerfile index 8fa30ae..353b46f 100644 --- a/assets/windows.Dockerfile +++ b/assets/windows.Dockerfile @@ -1,26 +1,67 @@ FROM debian:bullseye + ARG version=error ARG source_release=error +# we use this wasi version +ENV wasi_fullversion 14.0 +ENV wasi_mainversion 14 + +# these ones seem to be needed by ubuntu +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Amsterdam + + # dependencies needed to run ./mach bootstrap -RUN apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial python3 python3-dev python3-pip wget build-essential libpython3-dev m4 unzip uuid zip libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdbus-glib-1-dev libdrm-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb rsync +RUN ( apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial python3 python3-dev python3-pip wget dpkg-sig ; true) +RUN ( dnf -y upgrade && dnf -y install mercurial python3 python3-devel wget rpm-build rpm-sign ; true) + +# setup wasi +RUN export target_wasi_location=$HOME/.mozbuild/wrlb/ &&\ + wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_mainversion/wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ + tar xf wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ + mkdir -p $target_wasi_location &&\ + rm -rf $target_wasi_location/wasi-sysroot &&\ + cp -r wasi-sdk-$wasi_fullversion/share/wasi-sysroot $target_wasi_location &&\ + rm -f wasi-sdk-*.tar.gz* && rm -rf wasi-sdk-* + +# run the bootstrap +RUN wget -q -O librewolf-$version-$source_release.source.tar.gz https://gitlab.com/librewolf-community/browser/source/-/jobs/artifacts/main/raw/librewolf-$version-$source_release.source.tar.gz?job=Build &&\ + tar xf librewolf-$version-$source_release.source.tar.gz &&\ + cd librewolf-$version-$source_release &&\ + MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser &&\ + /root/.cargo/bin/cargo install cbindgen &&\ + cd .. &&\ + rm -rf librewolf-$version-$source_release librewolf-$version-$source_release.source.tar.gz + +# our work happens here, on the host filesystem. +WORKDIR /work +VOLUME ["/work"] + + +## +## +## +# +#FROM debian:bullseye +# +#ARG version=error +#ARG source_release=error +# +# dependencies needed to run ./mach bootstrap +#RUN apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial python3 python3-dev python3-pip wget build-essential libpython3-dev m4 unzip uuid zip libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdbus-glib-1-dev libdrm-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb rsync # setup windows tools -RUN true - - - - - - +# +#RUN true +# # # run the bootstrap # - -RUN wget -q -O librewolf-$version-$source_release.source.tar.gz https://gitlab.com/librewolf-community/browser/source/-/jobs/artifacts/main/raw/librewolf-$version-$source_release.source.tar.gz?job=Build -RUN tar xf librewolf-$version-$source_release.source.tar.gz -WORKDIR librewolf-$version-$source_release +####RUN wget -q -O librewolf-$version-$source_release.source.tar.gz https://gitlab.com/librewolf-community/browser/source/-/jobs/artifacts/main/raw/librewolf-$version-$source_release.source.tar.gz?job=Build +#RUN tar xf librewolf-$version-$source_release.source.tar.gz +#WORKDIR librewolf-$version-$source_release #RUN wget -q -O firefox-$version.source.tar.gz "https://archive.mozilla.org/pub/firefox/releases/$version/source/firefox-$version.source.tar.xz" #RUN tar xf firefox-$version.source.tar.gz @@ -31,60 +72,48 @@ WORKDIR librewolf-$version-$source_release #RUN wget -O bootstrap.py https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py #RUN python3 bootstrap.py --no-interactive --application-choice=browser #WORKDIR mozilla-unified - - - +# +# +# # mozconfig file #RUN echo "" > mozconfig #RUN echo "ac_add_options --target=x86_64-pc-mingw32" >> mozconfig #RUN echo "ac_add_options --enable-bootstrap" >> mozconfig #RUN echo "ac_add_options --disable-profiling" >> mozconfig #RUN echo "" >> mozconfig - - +# +# # throw in a patch to see if that fixes the zstandard issue. #RUN wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/revert-crossbeam-crates-upgrade.patch #RUN patch -p1 -i revert-crossbeam-crates-upgrade.patch - - -RUN MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser +# +# +#RUN MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser #RUN ./mach --no-interactive bootstrap --application-choice=browser - - - -RUN /root/.cargo/bin/cargo install cbindgen -RUN /root/.cargo/bin/rustup target add x86_64-pc-mingw32 +# +# +# +#RUN /root/.cargo/bin/cargo install cbindgen +#RUN /root/.cargo/bin/rustup target add x86_64-pc-mingw32 # not sure about this one.. -RUN pip install testresources pycairo - - - - - - +#RUN pip install testresources pycairo +# +# +# # setup wasi -ENV wasi_fullversion 14.0 -ENV wasi_mainversion 14 -RUN export target_wasi_location=$HOME/.mozbuild/wrlb/ &&\ - wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_mainversion/wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ - tar xf wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ - mkdir -p $target_wasi_location &&\ - rm -rf $target_wasi_location/wasi-sysroot &&\ - cp -r wasi-sdk-$wasi_fullversion/share/wasi-sysroot $target_wasi_location &&\ - rm -f wasi-sdk-*.tar.gz* && rm -rf wasi-sdk-* - - - - - - - - - - +#ENV wasi_fullversion 14.0 +#ENV wasi_mainversion 14 +#RUN export target_wasi_location=$HOME/.mozbuild/wrlb/ &&\ +# wget -q https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$wasi_mainversion/wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ +# tar xf wasi-sdk-$wasi_fullversion-linux.tar.gz &&\ +# mkdir -p $target_wasi_location &&\ +# rm -rf $target_wasi_location/wasi-sysroot &&\ +# cp -r wasi-sdk-$wasi_fullversion/share/wasi-sysroot $target_wasi_location &&\ +# rm -f wasi-sdk-*.tar.gz* && rm -rf wasi-sdk-* +# # our work happens here, on the host filesystem. -WORKDIR /work -VOLUME ["/work"] +#WORKDIR /work +#VOLUME ["/work"] diff --git a/assets/windows.mk b/assets/windows.mk index 29fb682..8b1fb49 100644 --- a/assets/windows.mk +++ b/assets/windows.mk @@ -5,24 +5,42 @@ version:=$(shell cat version) release:=$(shell cat release) source_release:=$(shell cat source_release) +full_version:=$(version)-$(source_release)$(shell [ $(release) -gt 1 ] && echo "-$(release)") -#use_docker=true -ifeq ($(use_docker),) -use_docker:=true -endif - -outfile=librewolf-$(version)-$(release).en-US.win64.zip -docker-image=librewolf/bsys5-image-windows +outfile=librewolf-$(full_version).en-US.win64-x86_64.tar.bz2 docker : - docker build --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t $(docker-image) - < assets/windows.Dockerfile + docker build --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t win64:latest - < assets/windows.Dockerfile build : $(outfile) $(outfile).sha256sum -$(outfile) $(outfile).sha256sum : +$(outfile) : ${MAKE} work - if [ $(use_docker) = true ]; then \ - docker run --rm -v $(shell pwd)/work:/work:rw $(docker-image) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package" ; \ - else \ - (cd work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package) ; \ - fi +ifeq ($(use_docker),false) + (cd work/librewolf-$(version)-$(source_release) && ./mach build && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales > /dev/null) +else + docker run --rm -v $(shell pwd)/work:/work:rw win64:latest sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && echo Packaging... && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales >/dev/null" +endif + cp -v work/librewolf-$(version)-$(source_release)/obj-x86_64-pc-linux-gnu/dist/librewolf-$(version)-$(source_release).en-US.linux-x86_64.tar.bz2 $(outfile) + +$(outfile).sha256sum : $(outfile) + sha256sum $(outfile) > $(outfile).sha256sum + cat $(outfile).sha256sum + + +## $(use_docker) +# +#.PHONY : docker build +# +#version:=$(shell cat version) +#release:=$(shell cat release) +#source_release:=$(shell cat source_release) +# +##use_docker=true +#ifeq ($(use_docker),) +#use_docker:=true +#endif +# +#outfile=librewolf-$(version)-$(release).en-US.win64.zip +#docker-image=librewolf/bsys5-image-windows +