diff --git a/.gitignore b/.gitignore index 13585fc..2ba9425 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ /__pycache__ /sha256sums.txt /upload.txt +build_tag +/docker/librewolf/debian10/deb/artifacts /docker/librewolf/debian11/deb/artifacts /docker/librewolf/fedora/rpm/artifacts /docker/librewolf/mint/deb/artifacts diff --git a/docker/Makefile b/docker/Makefile index ddd5b22..c6162fd 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -30,6 +30,10 @@ madman : prune lw mozilla +debian10 : + make -C buildenv/debian10 + cp version librewolf/debian10 + make -C librewolf/debian10 debian11 : make -C buildenv/debian11 cp version librewolf/debian11 @@ -51,7 +55,9 @@ low_disk : cp version librewolf make prune - make debian + make debian10 + make prune + make debian11 make prune make fedora make prune diff --git a/docker/buildenv/debian10/Dockerfile b/docker/buildenv/debian10/Dockerfile new file mode 100644 index 0000000..29f427c --- /dev/null +++ b/docker/buildenv/debian10/Dockerfile @@ -0,0 +1,15 @@ +# This is Debian 10, codenamed buster. + +FROM debian:buster +MAINTAINER Bert van der Weerd +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Amsterdam +RUN apt-get -y update && apt-get -y upgrade + +# Install build dependencies.. +run apt-get -y install wget python3 python3-pip python3-dev mercurial + +# Fetch mozilla nightly.. +run wget -q https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py +run python3 bootstrap.py --no-interactive --application-choice=browser +run rm bootstrap.py diff --git a/docker/buildenv/debian10/Makefile b/docker/buildenv/debian10/Makefile new file mode 100644 index 0000000..5a1db15 --- /dev/null +++ b/docker/buildenv/debian10/Makefile @@ -0,0 +1,2 @@ +all : + sudo docker build -t mozilla/buildenv-debian10 . diff --git a/docker/librewolf/Makefile b/docker/librewolf/Makefile index a21f444..8cdd021 100644 --- a/docker/librewolf/Makefile +++ b/docker/librewolf/Makefile @@ -2,13 +2,14 @@ all : - cp version debian11/version && cp version fedora/version && cp version ubuntu/version && cp version mint/version && cp version arch && cp version macos && cp version windows && cp version portable-linux + cp version debian10/version && cp version debian11/version && cp version fedora/version && cp version ubuntu/version && cp version mint/version && cp version arch && cp version macos && cp version windows && cp version portable-linux make -C arch make -C macos make -C windows make -C portable-linux + make -C debian10 make -C debian11 make -C fedora make -C mint @@ -16,9 +17,11 @@ all : clean : - rm -f version debian11/version fedora/version ubuntu/version mint/version arch/version macos/version windows/version portable-linux/version + rm -f version debian10/version debian11/version fedora/version ubuntu/version mint/version arch/version macos/version windows/version portable-linux/version make -C portable-linux clean +build.debian10 : + make -C debian10 build.debian11 : make -C debian11 build.fedora : diff --git a/docker/librewolf/debian10/.gitignore b/docker/librewolf/debian10/.gitignore new file mode 100644 index 0000000..088eda4 --- /dev/null +++ b/docker/librewolf/debian10/.gitignore @@ -0,0 +1 @@ +version diff --git a/docker/librewolf/debian10/Dockerfile b/docker/librewolf/debian10/Dockerfile new file mode 100644 index 0000000..79ad087 --- /dev/null +++ b/docker/librewolf/debian10/Dockerfile @@ -0,0 +1,18 @@ +from mozilla/buildenv-debian10 +run rm -rf mozilla-unified + +# Build it.. +copy version / +run wget -q https://archive.mozilla.org/pub/firefox/releases/$(cat /version)/source/firefox-$(cat /version).source.tar.xz + +# dependencies, tools, distro build tools,... +run apt-get install -y git +run ## [build trigger] (add or remove a few hashes in front to trigger build from here) +run git clone --recursive https://gitlab.com/librewolf-community/browser/windows.git +workdir windows +run tar xf /firefox-$(cat /version).source.tar.xz + +run ./build.py --version $(cat /version) lw_do_patches +run ./build.py --version $(cat /version) build +run ./build.py --version $(cat /version) lw_post_build +run ./build.py --version $(cat /version) package diff --git a/docker/librewolf/debian10/Makefile b/docker/librewolf/debian10/Makefile new file mode 100644 index 0000000..8e7d9cb --- /dev/null +++ b/docker/librewolf/debian10/Makefile @@ -0,0 +1,8 @@ +all : + sudo docker build -t librewolf/release-debian10 . + make -C deb all + +no-cache : + sudo docker build --no-cache -t librewolf/release-debian10 . + make -C deb no-cache + diff --git a/docker/librewolf/debian10/deb/Dockerfile b/docker/librewolf/debian10/deb/Dockerfile new file mode 100644 index 0000000..2c3adbd --- /dev/null +++ b/docker/librewolf/debian10/deb/Dockerfile @@ -0,0 +1,8 @@ +from librewolf/release-debian10 +run ./build.py --version $(cat /version) lw_artifacts +run mkdir /artifacts +run cp librewolf-$(cat /version).en-US.deb.zip /artifacts +workdir / +copy build-deb.sh / +run ./build-deb.sh +run rm -f artifacts/build_tag && date > artifacts/build_tag diff --git a/docker/librewolf/debian10/deb/Makefile b/docker/librewolf/debian10/deb/Makefile new file mode 100644 index 0000000..296ed80 --- /dev/null +++ b/docker/librewolf/debian10/deb/Makefile @@ -0,0 +1,32 @@ +distro = debian10 +extractor = extract5 +docker_stage = deb-$(distro) +version = `cat ../version` + + +all : cache + +cache : + sudo docker build -t librewolf/$(docker_stage) . + make get_zip + +no-cache : + sudo docker build --no-cache -t librewolf/$(docker_stage) . + make get_zip + +get_zip : build_tag + +build_tag : artifacts/build_tag + cp -v artifacts/build_tag build_tag + +artifacts/build_tag : + sudo docker create --name $(extractor) librewolf/$(docker_stage) + sudo rm -rf artifacts + sudo docker cp $(extractor):/artifacts . + sudo docker rm $(extractor) + sudo mv -v artifacts/librewolf-$(version).en-US.deb.zip artifacts/librewolf-$(version).en-US.$(distro).zip + sudo mv -v artifacts/librewolf.deb artifacts/librewolf-$(version).en-US.$(distro).deb + sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).zip + sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).deb + scp artifacts/*.deb vps:pub/pub/librewolf + diff --git a/docker/librewolf/debian10/deb/build-deb.sh b/docker/librewolf/debian10/deb/build-deb.sh new file mode 100755 index 0000000..74ff37f --- /dev/null +++ b/docker/librewolf/debian10/deb/build-deb.sh @@ -0,0 +1,40 @@ +version=$(cat /version) + +mkdir -p librewolf/DEBIAN +cd librewolf/DEBIAN + +# Depends: libatk1.0-0 (>= 1.12.4), libc6 (>= 2.28), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libevent-2.1-6 (>= 2.1.8-stable), libffi6 (>= 3.0.4), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.3.5), libgcc1 (>= 1:4.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.0.0), libpango-1.0-0 (>= 1.14.0), libstdc++6 (>= 6), libx11-6, libx11-xcb1, libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrender1, zlib1g (>= 1:1.2.11.dfsg), fontconfig, procps, debianutils (>= 1.16) +# Recommends: libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53 +# Suggests: fonts-stix | otf-stix, fonts-lmodern, libgssapi-krb5-2 | libkrb53, libcanberra0, libgtk2.0-0, pulseaudio + +cat < control +Architecture: all +Build-Depends: inkscape, librsvg2-bin +Depends: libc6, libgcc1, libstdc++6, wget +Description: The Librewolf browser. +Download-Size: 56.0 MB +Essential: no +Installed-Size: 204 MB +Maintainer: Bert van der Weerd +Package: librewolf +Priority: optional +Provides: gnome-www-browser, www-browser, x-www-browser +Section: web +Version: $version +EOF + +cd .. + +mkdir -p usr/share/librewolf +unzip /artifacts/librewolf-*.zip +mv -v librewolf/* usr/share/librewolf +rmdir librewolf + +mkdir -p usr/bin +cd usr/bin +ln -s ../share/librewolf/librewolf +cd ../.. + +cd .. +dpkg-deb --build librewolf +cp *.deb artifacts diff --git a/docker/librewolf/debian11/deb/Dockerfile b/docker/librewolf/debian11/deb/Dockerfile index d9a53ef..bf7ec44 100644 --- a/docker/librewolf/debian11/deb/Dockerfile +++ b/docker/librewolf/debian11/deb/Dockerfile @@ -5,3 +5,4 @@ run cp librewolf-$(cat /version).en-US.deb.zip /artifacts workdir / copy build-deb.sh / run ./build-deb.sh +run rm -f artifacts/build_tag && date > artifacts/build_tag diff --git a/docker/librewolf/debian11/deb/Makefile b/docker/librewolf/debian11/deb/Makefile index 0e7960f..a9a3aac 100644 --- a/docker/librewolf/debian11/deb/Makefile +++ b/docker/librewolf/debian11/deb/Makefile @@ -14,7 +14,12 @@ no-cache : sudo docker build --no-cache -t librewolf/$(docker_stage) . make get_zip -get_zip : +get_zip : build_tag + +build_tag : artifacts/build_tag + cp -v artifacts/build_tag build_tag + +artifacts/build_tag : sudo docker create --name $(extractor) librewolf/$(docker_stage) sudo rm -rf artifacts sudo docker cp $(extractor):/artifacts . @@ -23,3 +28,5 @@ get_zip : sudo mv -v artifacts/librewolf.deb artifacts/librewolf-$(version).en-US.$(distro).deb sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).zip sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).deb + scp artifacts/*.deb vps:pub/pub/librewolf + diff --git a/docker/librewolf/debian11/deb/build-deb.sh b/docker/librewolf/debian11/deb/build-deb.sh index 74ff37f..fd0fc1a 100755 --- a/docker/librewolf/debian11/deb/build-deb.sh +++ b/docker/librewolf/debian11/deb/build-deb.sh @@ -1,12 +1,9 @@ version=$(cat /version) + mkdir -p librewolf/DEBIAN cd librewolf/DEBIAN -# Depends: libatk1.0-0 (>= 1.12.4), libc6 (>= 2.28), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libevent-2.1-6 (>= 2.1.8-stable), libffi6 (>= 3.0.4), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.3.5), libgcc1 (>= 1:4.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.0.0), libpango-1.0-0 (>= 1.14.0), libstdc++6 (>= 6), libx11-6, libx11-xcb1, libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrender1, zlib1g (>= 1:1.2.11.dfsg), fontconfig, procps, debianutils (>= 1.16) -# Recommends: libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53 -# Suggests: fonts-stix | otf-stix, fonts-lmodern, libgssapi-krb5-2 | libkrb53, libcanberra0, libgtk2.0-0, pulseaudio - cat < control Architecture: all Build-Depends: inkscape, librsvg2-bin @@ -22,19 +19,26 @@ Provides: gnome-www-browser, www-browser, x-www-browser Section: web Version: $version EOF - cd .. +# Fill /usr/share/librewolf mkdir -p usr/share/librewolf unzip /artifacts/librewolf-*.zip mv -v librewolf/* usr/share/librewolf rmdir librewolf +# Symlink mkdir -p usr/bin cd usr/bin ln -s ../share/librewolf/librewolf cd ../.. +# Application icon +mkdir -p usr/share/applications +mkdir -p usr/share/icons +cp -v usr/share/librewolf/browser/chrome/icons/default/default64.png usr/share/icons/librewolf.png +sed "s/MYDIR/\/usr\/share\/librewolf/g" < usr/share/librewolf/start-librewolf.desktop.in > usr/share/applications/librewolf.desktop +# Build .deb file cd .. dpkg-deb --build librewolf cp *.deb artifacts diff --git a/docker/librewolf/fedora/rpm/Dockerfile b/docker/librewolf/fedora/rpm/Dockerfile index e7f56ab..d4fe17a 100644 --- a/docker/librewolf/fedora/rpm/Dockerfile +++ b/docker/librewolf/fedora/rpm/Dockerfile @@ -2,3 +2,8 @@ from librewolf/release-debian run ./build.py --version $(cat /version) lw_artifacts run mkdir /artifacts run cp librewolf-$(cat /version).en-US.deb.zip /artifacts + + + +# Sending termination shock signal. +run rm -f /artifacts/build_tag && date > /artifacts/build_tag diff --git a/docker/librewolf/fedora/rpm/Makefile b/docker/librewolf/fedora/rpm/Makefile index b317cef..afce39f 100644 --- a/docker/librewolf/fedora/rpm/Makefile +++ b/docker/librewolf/fedora/rpm/Makefile @@ -14,12 +14,19 @@ no-cache : sudo docker build --no-cache -t librewolf/$(docker_stage) . make get_zip -get_zip : artifacts/librewolf-$(version).en-US.$(distro).zip +get_zip : build_tag -artifacts/librewolf-$(version).en-US.$(distro).zip : +build_tag : artifacts/build_tag + cp -v artifacts/build_tag build_tag + +artifacts/build_tag : sudo docker create --name $(extractor) librewolf/$(docker_stage) sudo rm -rf artifacts sudo docker cp $(extractor):/artifacts . sudo docker rm $(extractor) sudo mv -v artifacts/librewolf-$(version).en-US.deb.zip artifacts/librewolf-$(version).en-US.$(distro).zip +# sudo mv -v artifacts/librewolf.deb artifacts/librewolf-$(version).en-US.$(distro).deb sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).zip +# sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).deb +# scp artifacts/*.deb vps:pub/pub/librewolf + diff --git a/docker/librewolf/mint/deb/Dockerfile b/docker/librewolf/mint/deb/Dockerfile index 8309d2c..1b166a0 100644 --- a/docker/librewolf/mint/deb/Dockerfile +++ b/docker/librewolf/mint/deb/Dockerfile @@ -2,3 +2,7 @@ from librewolf/release-mint run ./build.py --version $(cat /version) lw_artifacts run mkdir /artifacts run cp librewolf-$(cat /version).en-US.deb.zip /artifacts +workdir / +copy build-deb.sh / +run ./build-deb.sh +run rm -f artifacts/build_tag && date > artifacts/build_tag diff --git a/docker/librewolf/mint/deb/Makefile b/docker/librewolf/mint/deb/Makefile index 8f5c693..cdf869b 100644 --- a/docker/librewolf/mint/deb/Makefile +++ b/docker/librewolf/mint/deb/Makefile @@ -1,5 +1,5 @@ distro = mint -extractor = extract2 +extractor = extract7 docker_stage = deb-$(distro) version = `cat ../version` @@ -14,12 +14,19 @@ no-cache : sudo docker build --no-cache -t librewolf/$(docker_stage) . make get_zip -get_zip : artifacts/librewolf-$(version).en-US.$(distro).zip +get_zip : build_tag -artifacts/librewolf-$(version).en-US.$(distro).zip : +build_tag : artifacts/build_tag + cp -v artifacts/build_tag build_tag + +artifacts/build_tag : sudo docker create --name $(extractor) librewolf/$(docker_stage) sudo rm -rf artifacts sudo docker cp $(extractor):/artifacts . sudo docker rm $(extractor) sudo mv -v artifacts/librewolf-$(version).en-US.deb.zip artifacts/librewolf-$(version).en-US.$(distro).zip + sudo mv -v artifacts/librewolf.deb artifacts/librewolf-$(version).en-US.$(distro).deb sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).zip + sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).deb + scp artifacts/*.deb vps:pub/pub/librewolf + diff --git a/docker/librewolf/mint/deb/build-deb.sh b/docker/librewolf/mint/deb/build-deb.sh new file mode 100755 index 0000000..fd0fc1a --- /dev/null +++ b/docker/librewolf/mint/deb/build-deb.sh @@ -0,0 +1,44 @@ +version=$(cat /version) + + +mkdir -p librewolf/DEBIAN +cd librewolf/DEBIAN + +cat < control +Architecture: all +Build-Depends: inkscape, librsvg2-bin +Depends: libc6, libgcc1, libstdc++6, wget +Description: The Librewolf browser. +Download-Size: 56.0 MB +Essential: no +Installed-Size: 204 MB +Maintainer: Bert van der Weerd +Package: librewolf +Priority: optional +Provides: gnome-www-browser, www-browser, x-www-browser +Section: web +Version: $version +EOF +cd .. + +# Fill /usr/share/librewolf +mkdir -p usr/share/librewolf +unzip /artifacts/librewolf-*.zip +mv -v librewolf/* usr/share/librewolf +rmdir librewolf + +# Symlink +mkdir -p usr/bin +cd usr/bin +ln -s ../share/librewolf/librewolf +cd ../.. + +# Application icon +mkdir -p usr/share/applications +mkdir -p usr/share/icons +cp -v usr/share/librewolf/browser/chrome/icons/default/default64.png usr/share/icons/librewolf.png +sed "s/MYDIR/\/usr\/share\/librewolf/g" < usr/share/librewolf/start-librewolf.desktop.in > usr/share/applications/librewolf.desktop +# Build .deb file +cd .. +dpkg-deb --build librewolf +cp *.deb artifacts diff --git a/docker/librewolf/ubuntu/deb/Dockerfile b/docker/librewolf/ubuntu/deb/Dockerfile index 0427b48..45850da 100644 --- a/docker/librewolf/ubuntu/deb/Dockerfile +++ b/docker/librewolf/ubuntu/deb/Dockerfile @@ -2,3 +2,7 @@ from librewolf/release-ubuntu run ./build.py --version $(cat /version) lw_artifacts run mkdir /artifacts run cp librewolf-$(cat /version).en-US.deb.zip /artifacts +workdir / +copy build-deb.sh / +run ./build-deb.sh +run rm -f artifacts/build_tag && date > artifacts/build_tag diff --git a/docker/librewolf/ubuntu/deb/Makefile b/docker/librewolf/ubuntu/deb/Makefile index ae2bdf2..9d312b8 100644 --- a/docker/librewolf/ubuntu/deb/Makefile +++ b/docker/librewolf/ubuntu/deb/Makefile @@ -14,12 +14,20 @@ no-cache : sudo docker build --no-cache -t librewolf/$(docker_stage) . make get_zip -get_zip : artifacts/librewolf-$(version).en-US.$(distro).zip -artifacts/librewolf-$(version).en-US.$(distro).zip : +get_zip : build_tag + +build_tag : artifacts/build_tag + cp -v artifacts/build_tag build_tag + +artifacts/build_tag : sudo docker create --name $(extractor) librewolf/$(docker_stage) sudo rm -rf artifacts sudo docker cp $(extractor):/artifacts . sudo docker rm $(extractor) sudo mv -v artifacts/librewolf-$(version).en-US.deb.zip artifacts/librewolf-$(version).en-US.$(distro).zip + sudo mv -v artifacts/librewolf.deb artifacts/librewolf-$(version).en-US.$(distro).deb sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).zip + sudo chown user:user artifacts/librewolf-$(version).en-US.$(distro).deb + scp artifacts/*.deb vps:pub/pub/librewolf + diff --git a/docker/librewolf/ubuntu/deb/build-deb.sh b/docker/librewolf/ubuntu/deb/build-deb.sh new file mode 100755 index 0000000..fd0fc1a --- /dev/null +++ b/docker/librewolf/ubuntu/deb/build-deb.sh @@ -0,0 +1,44 @@ +version=$(cat /version) + + +mkdir -p librewolf/DEBIAN +cd librewolf/DEBIAN + +cat < control +Architecture: all +Build-Depends: inkscape, librsvg2-bin +Depends: libc6, libgcc1, libstdc++6, wget +Description: The Librewolf browser. +Download-Size: 56.0 MB +Essential: no +Installed-Size: 204 MB +Maintainer: Bert van der Weerd +Package: librewolf +Priority: optional +Provides: gnome-www-browser, www-browser, x-www-browser +Section: web +Version: $version +EOF +cd .. + +# Fill /usr/share/librewolf +mkdir -p usr/share/librewolf +unzip /artifacts/librewolf-*.zip +mv -v librewolf/* usr/share/librewolf +rmdir librewolf + +# Symlink +mkdir -p usr/bin +cd usr/bin +ln -s ../share/librewolf/librewolf +cd ../.. + +# Application icon +mkdir -p usr/share/applications +mkdir -p usr/share/icons +cp -v usr/share/librewolf/browser/chrome/icons/default/default64.png usr/share/icons/librewolf.png +sed "s/MYDIR/\/usr\/share\/librewolf/g" < usr/share/librewolf/start-librewolf.desktop.in > usr/share/applications/librewolf.desktop +# Build .deb file +cd .. +dpkg-deb --build librewolf +cp *.deb artifacts