start with new approach

This commit is contained in:
Bert van der Weerd 2022-06-20 17:54:51 +02:00
parent b92f332bed
commit da972e5b1e
No known key found for this signature in database
GPG Key ID: 73370A0B9E5516B0
4 changed files with 112 additions and 36 deletions

View File

@ -13,7 +13,7 @@ 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 dpkg-sig ; true)
RUN ( apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial python3 python3-dev python3-pip curl wget dpkg-sig)
# setup wasi
@ -25,10 +25,75 @@ RUN export target_wasi_location=$HOME/.mozbuild/wrlb/ &&\
cp -r wasi-sdk-$wasi_fullversion/share/wasi-sysroot $target_wasi_location &&\
rm -f wasi-sdk-*.tar.gz* && rm -rf wasi-sdk-*
# install-packages
RUN apt -y install msitools p7zip-full nsis upx-ucl wine wine64-tools libssl-dev zstd
# prepare
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 echo "export MOZBUILD=$HOME/.mozbuild" > mozconfig
RUN echo "ac_add_options --enable-bootstrap" >> mozconfig
RUN echo "" >> mozconfig
RUN echo "ac_add_options --target=x86_64-pc-mingw32" >> mozconfig
RUN echo "CROSS_BUILD=1" >> mozconfig
RUN echo "" >> mozconfig
RUN echo "export WINDOWSSDKDIR=\"$MOZBUILD/win-cross/vs/windows kits/10\"" >> mozconfig
RUN echo "mk_add_options \"export LD_PRELOAD=$MOZBUILD/win-cross/liblowercase/liblowercase.so\"" >> mozconfig
RUN echo "mk_add_options \"export LOWERCASE_DIRS=$MOZBUILD/win-cross\"" >> mozconfig
RUN echo "" >> mozconfig
RUN echo "EXTRA_PATH=\"$MOZBUILD/win-cross/vs/vc/tools/msvc/14.29.30133/bin/hostx64/x64:\"" >> mozconfig
RUN echo "mk_add_options \"export PATH=$EXTRA_PATH$PATH\"" >> mozconfig
RUN echo "" >> mozconfig
RUN echo "export CC=\"$MOZBUILD/clang/bin/clang-cl\"" >> mozconfig
RUN echo "export CXX=\"$MOZBUILD/clang/bin/clang-cl\"" >> mozconfig
RUN echo "export HOST_CC=\"$MOZBUILD/clang/bin/clang\"" >> mozconfig
RUN echo "export HOST_CXX=\"$MOZBUILD/clang/bin/clang++\"" >> mozconfig
RUN echo "" >> mozconfig
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH /root/.cargo/bin:$PATH
RUN rustup target add x86_64-pc-windows-msvc
RUN ./mach --no-interactive bootstrap --application-choice=browser
RUN ./mach artifact toolchain --from-build linux64-binutils
RUN ./mach artifact toolchain --from-build linux64-clang
RUN ./mach artifact toolchain --from-build linux64-rust-cross
RUN ./mach artifact toolchain --from-build linux64-nasm
RUN ./mach artifact toolchain --from-build linux64-node
RUN ./mach artifact toolchain --from-build linux64-cbindgen
RUN ./mach artifact toolchain --from-build linux64-wine
RUN ./mach artifact toolchain --from-build linux64-liblowercase
RUN (cd build/liblowercase && cargo build && mkdir -p ~/.mozbuild/win-cross/liblowercase && cp -v target/debug/liblowercase.so ~/.mozbuild/win-cross/liblowercase)
RUN ./mach python --virtualenv build build/vs/pack_vs.py build/vs/vs2019.yaml -o ${HOME}/.mozbuild/vs.tar.zst
RUN (cd ${HOME}/.mozbuild/win-cross && tar xf ../vs.tar.zst)
RUN rm -rf ${HOME}/.mozbuild/vs.tar.zst
# cleanup big mozilla build folder.
WORKDIR ..
RUN rm -rf librewolf-$version-$source_release librewolf-$version-$source_release.source.tar.gz
# expose the /work folder
WORKDIR /work
VOLUME ["/work"]
# 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 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
@ -63,8 +128,6 @@ RUN apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial pyth
# our work happens here, on the host filesystem.
WORKDIR /work
VOLUME ["/work"]
##

View File

@ -1,26 +1,5 @@
set -e
echo ""
echo "==> Starting: mach bootstrap"
echo ""
# MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
# MOZBUILD_STATE_PATH=$HOME/.mozbuild
#./mach --no-interactive bootstrap "--application-choice=browser"
echo ""
echo "==> Installing additional dependencies and packages"
echo ""
#./mach artifact toolchain --from-build linux64-mingw32
#./mach artifact toolchain --from-build linux64-nsis
#./mach artifact toolchain --from-build linux64-fxc2
# x86_64-pc-windows-gnu
# x86_64-pc-windows-msvc
/root/.cargo/bin/rustup target add x86_64-pc-windows-gnu
/root/.cargo/bin/cargo install cbindgen
echo ""
echo "==> Starting: ./mach build"
echo ""
@ -36,5 +15,5 @@ echo ""
cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales > /dev/null
echo ""
echo "==> Script finished! woot."
echo "==> Script finished"
echo ""

View File

@ -22,15 +22,7 @@ $(outfile) :
# BUILD FOLDER = "work/librewolf-$(version)-$(source_release)"
#
echo "" > mozconfig
echo "ac_add_options --target=x86_64-pc-mingw32" >> mozconfig
echo "ac_add_options --enable-bootstrap" >> mozconfig
echo "" >> mozconfig
cat work/librewolf-$(version)-$(source_release)/mozconfig mozconfig >> tmp
cp -v tmp work/mozconfig
cp -v tmp work/librewolf-$(version)-$(source_release)/mozconfig
rm -f mozconfig tmp
cp -v assets/windows.mozconfig work/librewolf-$(version)-$(source_release)/mozconfig
cp -v assets/windows.build.sh work
ifeq ($(use_docker),false)
@ -38,7 +30,7 @@ ifeq ($(use_docker),false)
else
docker run --rm -v $(shell pwd)/work:/work:rw win64:latest sh -c "cd /work/librewolf-$(version)-$(source_release) && ../windows.build.sh"
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)
cp -v work/librewolf-$(version)-$(source_release)/obj-x86_64-pc-mingw32/dist/librewolf-$(version)-$(source_release).en-US.linux-x86_64.tar.bz2 $(outfile)
$(outfile).sha256sum : $(outfile)
sha256sum $(outfile) > $(outfile).sha256sum

42
assets/windows.mozconfig Normal file
View File

@ -0,0 +1,42 @@
# https://github.com/emilio/mozconfigs/blob/master/mozconfigs/win-cross
export MOZBUILD=$HOME/.mozbuild
#ac_add_options --with-wasi-sysroot=$MOZBUILD/wrlb
ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --enable-bootstrap
#
### original mozconfig
#
ac_add_options --target=x86_64-pc-mingw32
CROSS_BUILD=1
# win-cross contains:
#
# * vs: Generated using ./mach python --virtualenv build build/vs/pack_vs.py build/vs/vs2019.yaml -o vs.tar.zst
# * liblowercase: .so built from build/liblowercase
#
# Note that you need the msitools package for the mach command above to
# succeed.
export WINDOWSSDKDIR="$MOZBUILD/win-cross/vs/windows kits/10"
# TODO: Use a loop vfat device instead of this?
mk_add_options "export LD_PRELOAD=$MOZBUILD/win-cross/liblowercase/liblowercase.so"
mk_add_options "export LOWERCASE_DIRS=$MOZBUILD/win-cross"
EXTRA_PATH="$MOZBUILD/win-cross/vs/vc/tools/msvc/14.29.30133/bin/hostx64/x64:"
mk_add_options "export PATH=$EXTRA_PATH$PATH"
export CC="$MOZBUILD/clang/bin/clang-cl"
export CXX="$MOZBUILD/clang/bin/clang-cl"
export HOST_CC="$MOZBUILD/clang/bin/clang"
export HOST_CXX="$MOZBUILD/clang/bin/clang++"
# Other things needed for packaging:
# * 7z needs to be on your PATH, or specified with export 7Z