Compare commits

..

No commits in common. "master" and "98.0-1" have entirely different histories.

22 changed files with 257 additions and 531 deletions

3
.gitignore vendored
View file

@ -1,2 +1,3 @@
/librewolf-*
/librewolf-*-*.source.tar.gz
/typescript
/work

View file

@ -1,34 +1,7 @@
stages:
- images
- build
- release
# Notes; we want short labes so we can see what is what, and
# allow image builds on all branches because don't wan to
# deal with them on the master branch
Images:
stage: images
when: manual
image: registry.gitlab.com/librewolf-community/browser/bsys5/dind
tags: [autoscale]
parallel:
matrix:
- DISTRO:
- debian11
- debian12
- ubuntu20
- ubuntu22
- mint20
- mint21
- fedora37
- fedora38
- dind
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
registry.gitlab.com
- make docker-$DISTRO
- docker push
registry.gitlab.com/librewolf-community/browser/bsys5/$DISTRO:latest
- deploy
Build:
stage: build
@ -38,34 +11,34 @@ Build:
matrix:
- DISTRO:
- debian11
- debian12
- ubuntu20
- ubuntu22
- ubuntu21
- mint20
- mint21
- fedora37
- fedora38
image: registry.gitlab.com/librewolf-community/browser/bsys5/dind
- fedora34
- fedora35
- macos-x86_64
- macos-aarch64
variables:
SOURCE_URL: $SOURCE_URL
use_docker: "false"
image: librewolf/bsys5-image-$DISTRO
tags:
- autoscale
# Build on dedicated runner
- dedicated
except:
- merge_requests
script:
- make $DISTRO
- echo VERSION=$(cat version) >> variables.env
- echo RELEASE=$(cat release) >> variables.env
- echo SOURCE_RELEASE=$(cat source_release) >> variables.env
- "t=$(cat version)-$(cat source_release) ; if ! grep 1 release; then t=$(cat version)-$(cat source_release)-$(cat release); fi; echo FILEVER=$t >> variables.env"
artifacts:
paths:
- librewolf-*.deb
- librewolf-*.deb.sha256sum
- librewolf-*.rpm
- librewolf-*.rpm.sha256sum
- librewolf-*-setup.exe
- librewolf-*-setup.exe.sha256sum
- librewolf-*-portable.zip
- librewolf-*-portable.zip.sha256sum
- librewolf-*.dmg
- librewolf-*.dmg.sha256sum
reports:
dotenv: variables.env
@ -84,148 +57,91 @@ Release:
before_script:
- apt-get update
- apt-get install -y curl
- curl -L --output /usr/local/bin/release-cli
"https://release-cli-downloads.s3.amazonaws.com/latest/release-cli-linux-amd64"
- curl -L --output /usr/local/bin/release-cli "https://release-cli-downloads.s3.amazonaws.com/latest/release-cli-linux-amd64"
- chmod +x /usr/local/bin/release-cli
script:
- |
codeberg_release_body=""
function upload_package() {
echo "Uploading $1"
curl \
--header "JOB-TOKEN: $CI_JOB_TOKEN" \
--upload-file "$1" \
"$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/$1"
codeberg_release_body="${codeberg_release_body}[$1]($CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/$1)\n"
"$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/$1"
}
upload_package librewolf-$FILEVER.en-US.debian11.x86_64.deb
upload_package librewolf-$FILEVER.en-US.debian11.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.en-US.debian12.x86_64.deb
upload_package librewolf-$FILEVER.en-US.debian12.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.en-US.ubuntu20.x86_64.deb
upload_package librewolf-$FILEVER.en-US.ubuntu20.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.en-US.ubuntu22.x86_64.deb
upload_package librewolf-$FILEVER.en-US.ubuntu22.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.en-US.mint20.x86_64.deb
upload_package librewolf-$FILEVER.en-US.mint20.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.en-US.mint21.x86_64.deb
upload_package librewolf-$FILEVER.en-US.mint21.x86_64.deb.sha256sum
upload_package librewolf-$FILEVER.fc37.x86_64.rpm
upload_package librewolf-$FILEVER.fc37.x86_64.rpm.sha256sum
upload_package librewolf-$FILEVER.fc38.x86_64.rpm
upload_package librewolf-$FILEVER.fc38.x86_64.rpm.sha256sum
echo "Creating Codeberg release"
codeberg_release_body="${codeberg_release_body}\n[View on GitLab](https://gitlab.com/librewolf-community/browser/bsys5/-/releases/$FILEVER)"
curl -X 'POST' \
"https://codeberg.org/api/v1/repos/librewolf/bsys5/releases?token=$CODEBERG_TOKEN" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d "{
\"name\": \"$FILEVER\",
\"tag_name\": \"$FILEVER\",
\"body\": \"$codeberg_release_body\"
}"
- |
body=$(cat <<EOF
{
"token": "$REPO_DEPLOY_TOKEN",
"debs": [
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian11.x86_64.deb",
"distros": ["bullseye"]
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian12.x86_64.deb",
"distros": ["bookworm"]
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu20.x86_64.deb",
"distros": ["focal"]
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu22.x86_64.deb",
"distros": ["jammy"]
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint20.x86_64.deb",
"distros": ["uma", "una"]
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint21.x86_64.deb",
"distros": ["vanessa", "vera"]
}
],
"rpms": [
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc37.x86_64.rpm"
},
{
"file": "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc38.x86_64.rpm"
}
]
}
EOF
)
id=$(curl "https://updaterepos.librewolf.net/job" --request POST --data "$body")
echo "Submitted update request to LibreWolf Software Repository (https://updaterepos.librewolf.net/job?id=$id)"
upload_package librewolf-$VERSION-$RELEASE.en-US.debian11.x86_64.deb
upload_package librewolf-$VERSION-$RELEASE.en-US.debian11.x86_64.deb.sha256sum
upload_package librewolf-$VERSION-$RELEASE.en-US.ubuntu20.x86_64.deb
upload_package librewolf-$VERSION-$RELEASE.en-US.ubuntu20.x86_64.deb.sha256sum
upload_package librewolf-$VERSION-$RELEASE.en-US.ubuntu21.x86_64.deb
upload_package librewolf-$VERSION-$RELEASE.en-US.ubuntu21.x86_64.deb.sha256sum
upload_package librewolf-$VERSION-$RELEASE.en-US.mint20.x86_64.deb
upload_package librewolf-$VERSION-$RELEASE.en-US.mint20.x86_64.deb.sha256sum
upload_package librewolf-$VERSION-$RELEASE.fc34.x86_64.rpm
upload_package librewolf-$VERSION-$RELEASE.fc34.x86_64.rpm.sha256sum
upload_package librewolf-$VERSION-$RELEASE.fc35.x86_64.rpm
upload_package librewolf-$VERSION-$RELEASE.fc35.x86_64.rpm.sha256sum
upload_package librewolf-$VERSION-$RELEASE.en-US.mac.x86_64.dmg
upload_package librewolf-$VERSION-$RELEASE.en-US.mac.x86_64.dmg.sha256sum
upload_package librewolf-$VERSION-$RELEASE.en-US.mac.aarch64.dmg
upload_package librewolf-$VERSION-$RELEASE.en-US.mac.aarch64.dmg.sha256sum
release:
tag_name: "$FILEVER"
description:
"## LibreWolf bsys5 Release v$FILEVER\n\n- \n\n(Built on GitLab by
pipeline
[$CI_PIPELINE_ID](https://gitlab.com/librewolf-community/browser/bsys5/-/pipelines/$CI_PIPELINE_ID))"
tag_name: "$VERSION-$RELEASE"
description: "## LibreWolf bsys5 Release v$VERSION-$RELEASE\n\n- \n\n(Built on GitLab by pipeline [$CI_PIPELINE_ID](https://gitlab.com/librewolf-community/browser/bsys5/-/pipelines/$CI_PIPELINE_ID))"
assets:
links:
- name: Debian 11 (deb)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian11.x86_64.deb
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.debian11.x86_64.deb
- name: Debian 11 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian11.x86_64.deb.sha256sum
- name: Debian 12 (deb)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian12.x86_64.deb
- name: Debian 12 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.debian12.x86_64.deb.sha256sum
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.debian11.x86_64.deb.sha256sum
- name: Ubuntu 20 (deb)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu20.x86_64.deb
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.ubuntu20.x86_64.deb
- name: Ubuntu 20 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu20.x86_64.deb.sha256sum
- name: Ubuntu 22 (deb)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.ubuntu20.x86_64.deb.sha256sum
- name: Ubuntu 21 (deb)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu22.x86_64.deb
- name: Ubuntu 22 (sha256sum)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.ubuntu21.x86_64.deb
- name: Ubuntu 21 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.ubuntu22.x86_64.deb.sha256sum
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.ubuntu21.x86_64.deb.sha256sum
- name: Linux Mint 20 (deb)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint20.x86_64.deb
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mint20.x86_64.deb
- name: Linux Mint 20 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint20.x86_64.deb.sha256sum
- name: Linux Mint 21 (deb)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mint20.x86_64.deb.sha256sum
- name: Fedora 34 (rpm)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint21.x86_64.deb
- name: Linux Mint 21 (sha256sum)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.fc34.x86_64.rpm
- name: Fedora 34 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.en-US.mint21.x86_64.deb.sha256sum
- name: Fedora 37 (rpm)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.fc34.x86_64.rpm.sha256sum
- name: Fedora 35 (rpm)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc37.x86_64.rpm
- name: Fedora 37 (sha256sum)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.fc35.x86_64.rpm
- name: Fedora 35 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc37.x86_64.rpm.sha256sum
- name: Fedora 38 (rpm)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.fc35.x86_64.rpm.sha256sum
- name: macOS x86_64 (dmg)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc38.x86_64.rpm
- name: Fedora 38 (sha256sum)
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mac.x86_64.dmg
- name: macOS x86_64 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$FILEVER/librewolf-$FILEVER.fc38.x86_64.rpm.sha256sum
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mac.x86_64.dmg.sha256sum
- name: macOS aarch64 (dmg)
link_type: package
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mac.aarch64.dmg
- name: macOS aarch64 (sha256sum)
link_type: other
url: $CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/librewolf/$VERSION-$RELEASE/librewolf-$VERSION-$RELEASE.en-US.mac.aarch64.dmg.sha256sum
Update Repositories:
stage: deploy
image: curlimages/curl
needs:
- job: "Build"
artifacts: true
script:
- curl https://shorsh.de/update_lw_repos.php?version=$VERSION-$RELEASE&log=true&token=$REPO_DEPLOY_TOKEN

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "submodules/windows"]
path = submodules/windows
url = https://gitlab.com/librewolf-community/browser/windows.git

168
Makefile
View file

@ -1,9 +1,8 @@
.PHONY : help clean veryclean prune docker push rmi build update work docker-debian11 debian11 docker-mint20 mint20 docker-mint21 mint21 docker-ubuntu20 ubuntu20 docker-ubuntu21 ubuntu21 docker-ubuntu22 ubuntu22 docker-fedora37 fedora37 docker-fedora38 fedora38 docker-macos-x86_64 macos-x86_64 docker-macos-aarch64 macos-aarch64 docker-tumbleweed tumbleweed tarball docker-dind windows
.PHONY : help clean veryclean prune docker push rmi build update work docker-debian11 debian11 docker-mint20 mint20 docker-ubuntu20 ubuntu20 docker-ubuntu21 ubuntu21 docker-fedora34 fedora34 docker-fedora35 fedora35 docker-macos-x86_64 macos-x86_64 docker-macos-aarch64 macos-aarch64
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)")
help :
@echo "Use: make [help]"
@ -13,22 +12,24 @@ help :
@echo " [update] [prune] - misc."
@echo ""
@echo "docker targets:"
@echo " [docker-debian11], [docker-debian12],[docker-mint20], [docker-mint21]"
@echo " [docker-ubuntu20], [docker-ubuntu21], [docker-ubuntu22]"
@echo " [docker-fedora37], [docker-fedora38]"
@echo " [docker-macos-x86_64], [docker-macos-aarch64]"
@echo " [docker-tumbleweed]"
@echo " [docker-dind]"
@echo " [docker-windows]"
@echo " [docker-debian11]"
@echo " [docker-mint20]"
@echo " [docker-ubuntu20]"
@echo " [docker-ubuntu21]"
@echo " [docker-fedora34]"
@echo " [docker-fedora35]"
@echo " [docker-macos-x86_64]"
@echo " [docker-macos-aarch64]"
@echo ""
@echo "build targets:"
@echo " [debian11], [debian12], [mint20], [mint21], [ubuntu20], [ubuntu21]"
@echo " [ubuntu22]"
@echo " [fedora37], [fedora38]"
@echo " [macos-x64_64], [macos-aarch64]"
@echo " [tumbleweed]"
@echo " [windows]"
@echo " [tarball]"
@echo " [debian11]"
@echo " [mint20]"
@echo " [ubuntu20]"
@echo " [ubuntu21]"
@echo " [fedora34]"
@echo " [fedora35]"
@echo " [macos-x64_64]"
@echo " [macos-aarch64]"
@echo ""
@ -44,70 +45,46 @@ veryclean : clean
prune :
docker system prune --all --force
docker : docker-debian11 docker-debian12 docker-mint20 docker-mint21 docker-ubuntu20 docker-ubuntu21 docker-ubuntu22 docker-fedora34 docker-fedora37 docker-fedora38 docker-tumbleweed docker-macos-x86_64 docker-macos-aarch64 docker-dind
docker : docker-debian11 docker-mint20 docker-ubuntu20 docker-ubuntu21 docker-fedora34 docker-fedora35 docker-macos-x86_64 docker-macos-aarch64
build :
${MAKE} clean
${MAKE} debian11
${MAKE} clean
${MAKE} debian12
${MAKE} clean
${MAKE} mint20
${MAKE} clean
${MAKE} mint21
${MAKE} clean
${MAKE} ubuntu20
${MAKE} clean
${MAKE} ubuntu21
${MAKE} clean
${MAKE} ubuntu22
${MAKE} clean
${MAKE} fedora34
${MAKE} clean
${MAKE} fedora37
${MAKE} clean
${MAKE} fedora38
${MAKE} clean
${MAKE} tumbleweed
${MAKE} fedora35
${MAKE} clean
${MAKE} macos-x86_64
${MAKE} clean
${MAKE} macos-aarch64
${MAKE} clean
${MAKE} windows
${MAKE} clean
push :
docker push registry.gitlab.com/librewolf-community/browser/bsys5/debian11
docker push registry.gitlab.com/librewolf-community/browser/bsys5/debian12
docker push registry.gitlab.com/librewolf-community/browser/bsys5/mint20
docker push registry.gitlab.com/librewolf-community/browser/bsys5/mint21
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora34
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora37
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora38
docker push registry.gitlab.com/librewolf-community/browser/bsys5/tumbleweed
docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64
docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64
docker push registry.gitlab.com/librewolf-community/browser/bsys5/dind
docker push librewolf/bsys5-image-debian11
docker push librewolf/bsys5-image-mint20
docker push librewolf/bsys5-image-ubuntu20
docker push librewolf/bsys5-image-ubuntu21
docker push librewolf/bsys5-image-fedora34
docker push librewolf/bsys5-image-fedora35
docker push librewolf/bsys5-image-macos-x86_64
docker push librewolf/bsys5-image-macos-aarch64
rmi :
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/debian11
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/debian12
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/mint20
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/mint21
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora34
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora37
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora38
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/tumbleweed
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/dind
docker rmi librewolf/bsys5-image-debian11
docker rmi librewolf/bsys5-image-mint20
docker rmi librewolf/bsys5-image-ubuntu20
docker rmi librewolf/bsys5-image-ubuntu21
docker rmi librewolf/bsys5-image-fedora34
docker rmi librewolf/bsys5-image-fedora35
docker rmi librewolf/bsys5-image-macos-x86_64
docker rmi librewolf/bsys5-image-macos-aarch64
update :
@wget -q -O version "https://gitlab.com/librewolf-community/browser/source/-/raw/main/version"
@ -122,13 +99,9 @@ update :
## setting up the work folder
tarball=librewolf-$(version)-$(source_release).source.tar.gz
$(tarball) :
ifeq ($(SOURCE_URL),)
wget -q -O $(tarball) "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$(version)-$(source_release)/$(tarball)"
wget -q -O $(tarball).sha256sum "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$(version)-$(source_release)/$(tarball).sha256sum"
sha256sum -c $(tarball).sha256sum
else
wget -q -O $(tarball) "$(SOURCE_URL)"
endif
work : $(tarball)
mkdir work
(cd work && tar xf ../$(tarball))
@ -146,67 +119,37 @@ docker-debian11 :
debian11 :
${MAKE} -f assets/linux.mk distro=debian11 build
${MAKE} -f assets/linux.artifacts.mk distro=debian11 artifacts-deb
## debian12
docker-debian12 :
${MAKE} -f assets/linux.mk distro=debian12 "distro_image=debian:bookworm" docker
debian12 :
${MAKE} -f assets/linux.mk distro=debian12 build
${MAKE} -f assets/linux.artifacts.mk distro=debian12 artifacts-deb
## mint20
docker-mint20 :
${MAKE} -f assets/linux.mk distro=mint20 "distro_image=linuxmintd/mint20.2-amd64" docker
mint20 :
${MAKE} -f assets/linux.mk distro=mint20 build
${MAKE} -f assets/linux.artifacts.mk distro=mint20 artifacts-deb
## mint21
docker-mint21 :
${MAKE} -f assets/linux.mk distro=mint21 "distro_image=linuxmintd/mint21-amd64" docker
mint21 :
${MAKE} -f assets/linux.mk distro=mint21 build
${MAKE} -f assets/linux.artifacts.mk distro=mint21 artifacts-deb
## ubuntu20
docker-ubuntu20 :
${MAKE} -f assets/linux.mk distro=ubuntu20 "distro_image=ubuntu:focal" docker
${MAKE} -f assets/linux.mk distro=ubuntu20 "distro_image=ubuntu:20.04" docker
ubuntu20 :
${MAKE} -f assets/linux.mk distro=ubuntu20 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu20 artifacts-deb
## ubuntu21
docker-ubuntu21 :
${MAKE} -f assets/linux.mk distro=ubuntu21 "distro_image=ubuntu:impish" docker
${MAKE} -f assets/linux.mk distro=ubuntu21 "distro_image=ubuntu:21.10" docker
ubuntu21 :
${MAKE} -f assets/linux.mk distro=ubuntu21 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu21 artifacts-deb
## ubuntu22
docker-ubuntu22 :
${MAKE} -f assets/linux.mk distro=ubuntu22 "distro_image=ubuntu:jammy" docker
ubuntu22 :
${MAKE} -f assets/linux.mk distro=ubuntu22 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu22 artifacts-deb
## fedora37
docker-fedora37 :
${MAKE} -f assets/linux.mk distro=fedora37 "distro_image=fedora:37" docker
fedora37 :
${MAKE} -f assets/linux.mk distro=fedora37 build
${MAKE} -f assets/linux.artifacts.mk fc=fc37 distro=fedora37 artifacts-rpm
## fedora38
docker-fedora38 :
${MAKE} -f assets/linux.mk distro=fedora38 "distro_image=fedora:38" docker
fedora38 :
${MAKE} -f assets/linux.mk distro=fedora38 build
${MAKE} -f assets/linux.artifacts.mk fc=fc38 distro=fedora38 artifacts-rpm
## opensuse tumbleweed
docker-tumbleweed :
${MAKE} -f assets/linux.mk distro=tumbleweed "distro_image=opensuse/tumbleweed" docker
tumbleweed :
${MAKE} -f assets/linux.mk distro=tumbleweed build
${MAKE} -f assets/linux.artifacts.mk fc=tumbleweed distro=tumbleweed artifacts-rpm
## fedora34
docker-fedora34 :
${MAKE} -f assets/linux.mk distro=fedora34 "distro_image=fedora:34" docker
fedora34 :
${MAKE} -f assets/linux.mk distro=fedora34 build
${MAKE} -f assets/linux.artifacts.mk fc=fc34 distro=fedora34 artifacts-rpm
## fedora35
docker-fedora35 :
${MAKE} -f assets/linux.mk distro=fedora35 "distro_image=fedora:35" docker
fedora35 :
${MAKE} -f assets/linux.mk distro=fedora35 build
${MAKE} -f assets/linux.artifacts.mk fc=fc35 distro=fedora35 artifacts-rpm
## tarball
tarball :
${MAKE} -f assets/linux.mk distro=ubuntu20 build
mv -v librewolf-$(full_version).en-US.ubuntu20-x86_64.tar.bz2 librewolf-$(full_version).en-US.generic-x86_64.tar.bz
sha256sum librewolf-$(full_version).en-US.generic-x86_64.tar.bz > librewolf-$(full_version).en-US.generic-x86_64.tar.bz.sha256sum
cat librewolf-$(full_version).en-US.generic-x86_64.tar.bz.sha256sum
#
# MacOS
@ -223,16 +166,3 @@ docker-macos-aarch64 :
${MAKE} -f assets/macos.mk arch=aarch64 docker
macos-aarch64 :
${MAKE} -f assets/macos.mk arch=aarch64 build
## windows
docker-windows :
${MAKE} -f assets/windows.mk docker
windows :
${MAKE} -f assets/windows.mk build
#
# Docker in Docker (for GitLab CI)
#
docker-dind :
docker build -f assets/dind.Dockerfile -t registry.gitlab.com/librewolf-community/browser/bsys5/dind:latest .

View file

@ -1,37 +0,0 @@
# 🔨 bsys5
This repo contains scripts and assets to build the
[LibreWolf source tarball](https://gitlab.com/librewolf-community/browser/source)
for various platforms with docker, as well as binary releases produced by those
scripts.
<a href="https://gitlab.com/librewolf-community/browser/bsys5/-/releases"><img src="https://img.shields.io/badge/%F0%9F%93%A5-Go to Releases-blue?style=flat" height="30px"></a>
## <a id="targets"></a> Supported Targets
| Platform | x86_64 | aarch64 |
| ------------------------ | ----------------------- | ------------------ |
| Linux | | |
| └─ Debian (deb) | ✅ (debian11,debian12) | - |
| └─ Ubuntu (deb) | ✅ (ubuntu20, ubuntu22) | - |
| └─ Mint (deb) | ✅ (mint20, mint21) | - |
| └─ Fedora (rpm) | ✅ (fedora38, fedora37) | - |
| └─ openSUSE (rpm) | ✅ (tumbleweed) | - |
| MacOS (dmg) | ✅ (macos-x64_64) | ✅ (macos-aarch64) |
| Windows (setup,portable) | ✅ (windows) | - |
## Running bsys5 Locally
> Note: Bsys5 only works on Linux. Other platforms are cross-compiled from
> Linux.
To build LibreWolf with bsys5 locally, just install
[Docker](https://docs.docker.com/engine/install/) and then clone this
repository. Then you can just build the target you want with:
`make <TARGET>`, for example `make ubuntu22`\
(See [the above table](#targets) or `make help` for a list of supported targets.)
This will pull a prebuilt build environment from
[this repository](https://gitlab.com/librewolf-community/browser/bsys5/container_registry).
If you also want to build that yourself, run `make docker-<TARGET>` first.

View file

@ -1,9 +0,0 @@
FROM ubuntu:jammy
RUN apt-get update &&\
apt-get install -y ca-certificates curl gnupg lsb-release &&\
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&\
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null &&\
apt-get update &&\
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin make wget lbzip2 &&\
apt-get clean

View file

@ -14,17 +14,23 @@ ENV TZ=Europe/Amsterdam
# dependencies needed to run ./mach bootstrap
RUN ( apt-get -y update && apt-get -y upgrade && apt-get -y install python3 python3-dev python3-pip wget ; apt-get -y install dpkg-sig; true)
RUN ( dnf -y upgrade && dnf -y install python3 python3-devel gcc wget rpm-build rpm-sign ; true)
RUN ( zypper -n in mercurial python3 python3-pip python3-devel wget rpm-build ; true)
RUN ( apt-get -y update && apt-get -y upgrade && apt-get -y install mercurial python3 python3-dev python3-pip wget ; true)
RUN ( dnf -y upgrade && dnf -y install mercurial python3 python3-devel wget rpm-build ; 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 cd /tmp &&\
wget -q -O librewolf-$version-$source_release.source.tar.gz https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$version-$source_release/librewolf-$version-$source_release.source.tar.gz &&\
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 &&\
(cd /root/.mozbuild && /tmp/librewolf-$version-$source_release/mach artifact toolchain --from-build sysroot-wasm32-wasi) &&\
/root/.cargo/bin/cargo install cbindgen &&\
cd .. &&\
rm -rf librewolf-$version-$source_release librewolf-$version-$source_release.source.tar.gz

View file

@ -7,62 +7,64 @@
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)")
infile=librewolf-$(full_version).en-US.$(distro)-x86_64.tar.bz2
#use_docker=true
ifeq ($(use_docker),)
use_docker:=true
endif
infile=librewolf-$(version)-$(release).en-US.$(distro)-x86_64.tar.bz2
#
# Debian based:
#
librewolf-$(full_version).en-US.$(distro).x86_64.deb : $(infile)
librewolf-$(version)-$(release).en-US.$(distro).x86_64.deb : $(infile)
mkdir -p work
(cd work && tar xf ../$<)
cp -v assets/linux.build-deb.sh work/
[ "$(SIGNING_KEY)" != "" ] && cp -v $(SIGNING_KEY) work/pk.asc ; true
(cd work && sed "s/MYDIR/\/usr\/share\/librewolf/g" < ../assets/linux.librewolf.desktop.in > librewolf.desktop)
ifeq ($(use_docker),false)
(cd work && bash linux.build-deb.sh $(full_version))
else
docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "bash linux.build-deb.sh $(full_version)"
endif
(cd work && sed "s/MYDIR/\/usr\/share\/librewolf/g" < ../assets/linux.librewolf.desktop.in > start-librewolf.desktop)
if [ $(use_docker) = true ]; then \
docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "bash linux.build-deb.sh $(version) $(release)" ; \
else \
(cd work && bash linux.build-deb.sh $(version) $(release)) ; \
fi
cp -v work/librewolf.deb $@
sha256sum $@ > $@.sha256sum
cat $@.sha256sum
artifacts-deb : $(infile) $(infile).sha256sum
sha256sum -c $(infile).sha256sum
${MAKE} -f assets/linux.artifacts.mk distro=$(distro) librewolf-$(full_version).en-US.$(distro).x86_64.deb
${MAKE} -f assets/linux.artifacts.mk distro=$(distro) librewolf-$(version)-$(release).en-US.$(distro).x86_64.deb
#
# RPM Based:
#
librewolf-$(full_version).$(fc).x86_64.rpm : $(infile)
librewolf-$(version)-$(release).$(fc).x86_64.rpm : $(infile)
mkdir -p work
(cd work && tar xf ../$<)
cp -v assets/linux.build-rpm.sh work
cp -v version work
cp -v release work
cp -v source_release work
cp -v assets/linux.librewolf.spec work/librewolf.spec
cp -v assets/linux.librewolf.desktop.in work/librewolf/librewolf.desktop.in
cp -v assets/linux.librewolf.desktop.in work/librewolf/start-librewolf.desktop.in
cp -v assets/linux.librewolf.ico work/librewolf/librewolf.ico
[ "$(SIGNING_KEY)" != "" ] && cp -v $(SIGNING_KEY) work/pk.asc ; true
rm -f work/librewolf/browser/features/proxy-failover@mozilla.com.xpi
rm -f work/librewolf/pingsender
rm -f work/librewolf/precomplete
rm -f work/librewolf/removed-files
ifeq ($(use_docker),false)
(cp -r work / && cd work && bash linux.build-rpm.sh $(fc))
cp -v /work/$@ $@
else
docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "bash linux.build-rpm.sh $(fc)"
cp -v work/$@ $@
endif
if [ $(use_docker) = true ]; then \
docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "bash linux.build-rpm.sh $(version) $(release)" ; \
cp -v work/$@ $@ ; \
else \
(cp -r work / && cd work && bash linux.build-rpm.sh $(version) $(release)) ; \
cp -v /work/$@ $@ ; \
fi
sha256sum $@ > $@.sha256sum
cat $@.sha256sum
artifacts-rpm : $(infile) $(infile).sha256sum
sha256sum -c $(infile).sha256sum
${MAKE} -f assets/linux.artifacts.mk fc=$(fc) distro=$(distro) librewolf-$(full_version).$(fc).x86_64.rpm
${MAKE} -f assets/linux.artifacts.mk fc=$(fc) distro=$(distro) librewolf-$(version)-$(release).$(fc).x86_64.rpm

View file

@ -7,7 +7,7 @@ cd librewolf/DEBIAN
cat <<EOF >control
Architecture: all
Build-Depends: inkscape, librsvg2-bin
Depends: lsb-release, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.31), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.10.1), libgcc-s1 (>= 3.3), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.42), libgtk-3-0 (>= 3.14), libharfbuzz0b (>= 0.6.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libstdc++6 (>= 10), libx11-6, libx11-xcb1 (>= 2:1.6.9), libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.4.5), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6, libxrandr2 (>= 2:1.4.0), libxrender1, libxtst6
Depends: lsb-release, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.31), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.10.1), libgcc-s1 (>= 3.3), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.42), libgtk-3-0 (>= 3.14), libharfbuzz0b (>= 0.6.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libstdc++6 (>= 10), libx11-6, libx11-xcb1 (>= 2:1.7.2), libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.4.5), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6, libxrandr2 (>= 2:1.4.0), libxrender1, libxtst6
Recommends: libcanberra0, libdbusmenu-glib4, libdbusmenu-gtk3-4
Suggests: fonts-lyx
Description: The Librewolf Browser
@ -20,7 +20,7 @@ Priority: optional
Provides: gnome-www-browser, www-browser, x-www-browser
Section: web
EOF
echo "Version: $1" >>control
echo "Version: $1-$2" >>control
cd ..
mkdir -p usr/share/librewolf
@ -34,25 +34,13 @@ cd ../..
# add the application icon
mkdir -p usr/share/applications
mkdir -p usr/share/icons/hicolor/16x16/apps
mkdir -p usr/share/icons/hicolor/32x32/apps
mkdir -p usr/share/icons/hicolor/64x64/apps
mkdir -p usr/share/icons/hicolor/128x128/apps
cp -v usr/share/librewolf/browser/chrome/icons/default/default16.png usr/share/icons/hicolor/16x16/apps/librewolf.png
cp -v usr/share/librewolf/browser/chrome/icons/default/default32.png usr/share/icons/hicolor/32x32/apps/librewolf.png
cp -v usr/share/librewolf/browser/chrome/icons/default/default64.png usr/share/icons/hicolor/64x64/apps/librewolf.png
cp -v usr/share/librewolf/browser/chrome/icons/default/default128.png usr/share/icons/hicolor/128x128/apps/librewolf.png
cp -v ../librewolf.desktop usr/share/applications/librewolf.desktop
mkdir -p usr/share/icons
cp -v usr/share/librewolf/browser/chrome/icons/default/default64.png usr/share/icons/librewolf.png
cp -v ../start-librewolf.desktop usr/share/applications/start-librewolf.desktop
cd ..
dpkg-deb --build librewolf
# Sign the deb file if private key is provided and we have dpkg-sig available
if [[ -f pk.asc ]] && command -v dpkg-sig &>/dev/null; then
gpg --import pk.asc
dpkg-sig --sign builder librewolf.deb
fi
echo ""
ls -lh librewolf.deb
exit 0

View file

@ -1,15 +1,5 @@
set -e
if [[ -f pk.asc ]]; then
echo "--- [debug] Importing private key..."
gpg --import pk.asc
cat >>~/.rpmmacros <<EOF
%_signature gpg
%_gpg_name LibreWolf Maintainers
EOF
signing="true"
fi
rm -rf /WORK
mkdir /WORK
cd /WORK
@ -18,17 +8,10 @@ mkdir /artifacts
version=$(cat /work/version)
release=$(cat /work/release)
source_release=$(cat /work/source_release)
full_release="$source_release$(if [ $release -gt 1 ]; then echo ".$release"; fi)"
full_version="$version-$source_release$(if [ $release -gt 1 ]; then echo "-$release"; fi)"
fc=$1
echo '---'
echo "--- LibreWolf version file is: $version"
echo "--- LibreWolf bsys5 release is: $release"
echo "--- LibreWolf source release is: $source_release"
echo "--- LibreWolf fedora release is: $full_release"
echo "--- LibreWolf full version is: $full_version"
echo "--- LibreWolf release is: $release"
echo '---'
echo '--- Contents of /artifacts folder:'
ls -la /artifacts
@ -37,18 +20,18 @@ echo '--- Contents of /WORK folder:'
ls -la /WORK
echo '---'
rm -rf rpmbuild
mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
rm -rf /usr/src && ln -sv /WORK /usr/src # Required for openSUSE
sed "s/__VERSION__/$version/g" </work/librewolf.spec >/work/tmp.spec
sed "s/__RELEASE__/$full_release/g" </work/tmp.spec >rpmbuild/SPECS/librewolf.spec
# fix: remove some tool binaries we don't want
rm -f /work/librewolf/{glxtest,vaapitest}
sed "s/__VERSION__/$version/g" < /work/librewolf.spec > /work/tmp.spec
sed "s/__RELEASE__/$release/g" < /work/tmp.spec > rpmbuild/SPECS/librewolf.spec
# copy in the librewolf assets
cp -rv /work/librewolf rpmbuild/SOURCES
cd rpmbuild/SOURCES
mkdir -p librewolf-$version/usr/share/librewolf
@ -62,15 +45,10 @@ cd ../../..
# Application icon
mkdir -p librewolf-$version/usr/share/applications
mkdir -p librewolf-$version/usr/share/icons/hicolor/16x16/apps
mkdir -p librewolf-$version/usr/share/icons/hicolor/32x32/apps
mkdir -p librewolf-$version/usr/share/icons/hicolor/64x64/apps
mkdir -p librewolf-$version/usr/share/icons/hicolor/128x128/apps
cp -v librewolf-$version/usr/share/librewolf/browser/chrome/icons/default/default16.png librewolf-$version/usr/share/icons/hicolor/16x16/apps/librewolf.png
cp -v librewolf-$version/usr/share/librewolf/browser/chrome/icons/default/default32.png librewolf-$version/usr/share/icons/hicolor/32x32/apps/librewolf.png
cp -v librewolf-$version/usr/share/librewolf/browser/chrome/icons/default/default64.png librewolf-$version/usr/share/icons/hicolor/64x64/apps/librewolf.png
cp -v librewolf-$version/usr/share/librewolf/browser/chrome/icons/default/default128.png librewolf-$version/usr/share/icons/hicolor/128x128/apps/librewolf.png
sed "s/MYDIR/\/usr\/share\/librewolf/g" </work/librewolf/librewolf.desktop.in >librewolf-$version/usr/share/applications/librewolf.desktop
mkdir -p librewolf-$version/usr/share/icons
cp -v librewolf-$version/usr/share/librewolf/browser/chrome/icons/default/default64.png librewolf-$version/usr/share/icons/librewolf.png
sed "s/MYDIR/\/usr\/share\/librewolf/g" < /work/librewolf/start-librewolf.desktop.in > librewolf-$version/usr/share/applications/librewolf.desktop
tar cvfz lw.tar.gz librewolf-$version
# todo perhaps: rm -rf librwolf-$version
@ -81,15 +59,13 @@ rm -rf $HOME/rpmbuild
cp -rv rpmbuild $HOME
# Build the package!
echo "--- [debug] Running rpmbuild..."
echo '---'
echo "[debug] Running rpmbuild.."
echo '---'
rpmbuild -v -bb $(pwd)/rpmbuild/SPECS/librewolf.spec
echo '--- [debug] Copying output files to /artifacts'
#Wrote: /root/rpmbuild/RPMS/x86_64/librewolf-94.0.2-1.fc35.x86_64.rpm
cp -v ~/rpmbuild/RPMS/x86_64/librewolf-*.rpm /work/librewolf-$full_version.$fc.x86_64.rpm
if [[ "$signing" == "true" ]]; then
echo '--- [debug] Signing the RPM'
export GPG_TTY=$(tty)
rpm --addsign /work/librewolf-*.rpm
fi
#Wrote: /root/rpmbuild/RPMS/x86_64/librewolf-94.0.2-1.fc35.x86_64.rpm
cp -v ~/rpmbuild/RPMS/x86_64/librewolf-*.rpm /work

View file

@ -10,9 +10,9 @@ Type=Application
MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
Comment=LibreWolf Browser
Categories=Network;WebBrowser;Security;
StartupWMClass=librewolf-default
StartupWMClass=LibreWolf
Exec=MYDIR/librewolf %u
Icon=librewolf
Icon=MYDIR/browser/chrome/icons/default/default64.png
Actions=new-window;new-private-window;safe-mode;preferences;

View file

@ -6,7 +6,6 @@ Summary: The LibreWolf browser
License: MPL
URL: https://librewolf-community.gitlab.io/
Source0: lw.tar.gz
Distribution: %(source /etc/os-release && echo $PRETTY_NAME)
#BuildRequires:
#Requires:
%description
@ -22,10 +21,7 @@ cp -rv * "$RPM_BUILD_ROOT"
%files
/usr/bin/librewolf
/usr/share/applications/librewolf.desktop
/usr/share/icons/hicolor/16x16/apps/librewolf.png
/usr/share/icons/hicolor/32x32/apps/librewolf.png
/usr/share/icons/hicolor/64x64/apps/librewolf.png
/usr/share/icons/hicolor/128x128/apps/librewolf.png
/usr/share/icons/librewolf.png
/usr/share/librewolf/application.ini
/usr/share/librewolf/browser/chrome/icons/default/default128.png
/usr/share/librewolf/browser/chrome/icons/default/default16.png
@ -61,7 +57,6 @@ cp -rv * "$RPM_BUILD_ROOT"
/usr/share/librewolf/librewolf
/usr/share/librewolf/librewolf-bin
/usr/share/librewolf/librewolf.cfg
/usr/share/librewolf/librewolf.desktop.in
/usr/share/librewolf/librewolf.ico
/usr/share/librewolf/libsmime3.so
/usr/share/librewolf/libsoftokn3.so
@ -70,3 +65,5 @@ cp -rv * "$RPM_BUILD_ROOT"
/usr/share/librewolf/omni.ja
/usr/share/librewolf/platform.ini
/usr/share/librewolf/plugin-container
/usr/share/librewolf/start-librewolf.desktop.in

View file

@ -7,25 +7,26 @@
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)")
outfile=librewolf-$(full_version).en-US.$(distro)-x86_64.tar.bz2
#use_docker=true
ifeq ($(use_docker),)
use_docker:=true
endif
outfile=librewolf-$(version)-$(release).en-US.$(distro)-x86_64.tar.bz2
docker :
docker build --build-arg "distro=$(distro_image)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t registry.gitlab.com/librewolf-community/browser/bsys5/$(distro):latest - < assets/linux.Dockerfile
docker build --build-arg "distro=$(distro_image)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t librewolf/bsys5-image-$(distro) - < assets/linux.Dockerfile
build : $(outfile) $(outfile).sha256sum
$(outfile) :
$(outfile) $(outfile).sha256sum :
${MAKE} work
if [ "$(distro)" != "tumbleweed" ]; then ln -sfv ./lw/mozconfig.new.without-bootstrap work/librewolf-$(version)-$(source_release)/mozconfig; fi
ifeq ($(use_docker),false)
(cd work/librewolf-$(version)-$(source_release) && ./mach build && echo 'Packaging... (output hidden)' && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales >/dev/null)
else
docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && echo 'Packaging... (output hidden)' && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales >/dev/null"
endif
if [ $(use_docker) = true ]; then \
docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-$(distro) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package" ; \
else \
(cd work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package) ; \
fi
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

View file

@ -16,39 +16,45 @@ ENV wasi_mainversion 14
# 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 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-*
#
# Setup MacOSX SDK v13.0
RUN mkdir -p /osx-cross/MacOSX-SDKs && cd /osx-cross/MacOSX-SDKs && wget https://files.stanzabird.nl/MacOSX13.0.sdk.zip && unzip MacOSX13.0.sdk.zip && rm MacOSX13.0.sdk.zip
# setup osx sdk
RUN mkdir -p /osx-cross/MacOSX-SDKs &&\
cd /osx-cross/MacOSX-SDKs &&\
wget -q "https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.3.sdk.tar.xz" &&\
tar xf MacOSX11.3.sdk.tar.xz &&\
rm -f MacOSX11.3.sdk.tar.xz
# run the bootstrap
RUN wget -q -O librewolf-$version-$source_release.source.tar.gz https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$version-$source_release/librewolf-$version-$source_release.source.tar.gz
RUN tar xf librewolf-$version-$source_release.source.tar.gz
WORKDIR librewolf-$version-$source_release
RUN echo ac_add_options --target=$arch-apple-darwin > mozconfig
RUN echo ac_add_options --enable-bootstrap >> mozconfig
RUN echo ac_add_options --with-macos-sdk=/osx-cross/MacOSX-SDKs/MacOSX13.0.sdk >> mozconfig
RUN MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser
RUN ./mach artifact toolchain --from-build linux64-libdmg
RUN ./mach artifact toolchain --from-build linux64-cctools-port
RUN ./mach artifact toolchain --from-build linux64-hfsplus
RUN ./mach artifact toolchain --from-build linux64-binutils
RUN ./mach artifact toolchain --from-build sysroot-wasm32-wasi
## RUN ./mach artifact toolchain --from-build linux64-clang-macosx-cross
RUN /root/.cargo/bin/cargo install cbindgen
RUN /root/.cargo/bin/rustup target add $arch-apple-darwin
RUN cp -r binutils /root/.mozbuild
RUN cp -r cctools /root/.mozbuild
RUN cp -r sysroot-wasm32-wasi /root/.mozbuild
## RUN cp -r clang /root/.mozbuild
RUN cp -r dmg /root/.mozbuild
# RUN cp -r hfsplus-tools /root/.mozbuild
RUN pip install testresources pycairo
WORKDIR ..
RUN rm -rf librewolf-$version-$source_release librewolf-$version-$source_release.source.tar.gz
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 &&\
echo ac_add_options --target=$arch-apple-darwin > mozconfig &&\
echo ac_add_options --enable-bootstrap >> mozconfig &&\
echo ac_add_options --with-macos-sdk=/osx-cross/MacOSX-SDKs/MacOSX11.3.sdk >> mozconfig &&\
MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser &&\
./mach artifact toolchain --from-build linux64-libdmg &&\
./mach artifact toolchain --from-build linux64-cctools-port &&\
./mach artifact toolchain --from-build linux64-hfsplus &&\
./mach artifact toolchain --from-build linux64-binutils &&\
./mach artifact toolchain --from-build linux64-clang-macosx-cross &&\
/root/.cargo/bin/cargo install cbindgen &&\
/root/.cargo/bin/rustup target add $arch-apple-darwin &&\
cp -r binutils /root/.mozbuild &&\
cp -r cctools /root/.mozbuild &&\
cp -r clang /root/.mozbuild &&\
cp -r dmg /root/.mozbuild &&\
cp -r hfsplus-tools /root/.mozbuild &&\
pip install testresources pycairo &&\
cd .. &&\
rm -rf librewolf-$version-$source_release librewolf-$version-$source_release.source.tar.gz
# our work happens here, on the host filesystem.
WORKDIR /work

View file

@ -6,25 +6,27 @@
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)")
outfile=librewolf-$(full_version).en-US.mac.$(arch).dmg
#use_docker=true
ifeq ($(use_docker),)
use_docker:=true
endif
outfile=librewolf-$(version)-$(release).en-US.mac.$(arch).dmg
docker :
docker build --build-arg "arch=$(arch)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t registry.gitlab.com/librewolf-community/browser/bsys5/macos-$(arch) - < assets/macos.Dockerfile
docker build --build-arg "arch=$(arch)" --build-arg "version=$(version)" --build-arg "source_release=$(source_release)" -t librewolf/bsys5-image-macos-$(arch) - < assets/macos.Dockerfile
build : $(outfile) $(outfile).sha256sum
$(outfile) :
$(outfile) $(outfile).sha256sum :
${MAKE} work
sed "s/_ARCH_/$(arch)/g" < assets/macos.mozconfig > work/librewolf-$(version)-$(source_release)/mozconfig
ifeq ($(use_docker),false)
(cd work/librewolf-$(version)-$(source_release) && ./mach build && echo 'Packaging... (output hidden)' && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales >/dev/null)
else
docker run --rm -v $(shell pwd)/work:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/macos-$(arch) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && echo 'Packaging... (output hidden)' && cat browser/locales/shipped-locales | xargs ./mach package-multi-locale --locales >/dev/null"
endif
if [ $(use_docker) = true ]; then \
docker run --rm -v $(shell pwd)/work:/work:rw librewolf/bsys5-image-macos-$(arch) sh -c "cd /work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package" ; \
else \
(cd work/librewolf-$(version)-$(source_release) && ./mach build && ./mach package) ; \
fi
cp -v work/librewolf-$(version)-$(source_release)/obj-$(arch)-apple-darwin/dist/librewolf-$(version)-$(source_release).en-US.mac.dmg $(outfile)
$(outfile).sha256sum : $(outfile)
sha256sum $(outfile) > $(outfile).sha256sum
cat $(outfile).sha256sum

View file

@ -2,7 +2,7 @@ ac_add_options --enable-application=browser
# for crosscompiling...
ac_add_options --target=_ARCH_-apple-darwin
ac_add_options --with-macos-sdk=/osx-cross/MacOSX-SDKs/MacOSX13.0.sdk
ac_add_options --with-macos-sdk=/osx-cross/MacOSX-SDKs/MacOSX11.3.sdk
CROSS_BUILD=1
export CROSS=/root/.mozbuild
@ -22,7 +22,7 @@ export HOST_CC="$CROSS/clang/bin/clang"
export HOST_CXX="$CROSS/clang/bin/clang++"
# These are needed for packaging.
# export MKFSHFS="$CROSS/hfsplus-tools/newfs_hfs"
export MKFSHFS="$CROSS/hfsplus-tools/newfs_hfs"
export DMG_TOOL="$CROSS/dmg/dmg"
export HFS_TOOL="$CROSS/dmg/hfsplus"
@ -47,11 +47,13 @@ ac_add_options --with-branding=browser/branding/librewolf
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --with-l10n-base=$PWD/browser/locales/l10n
export MOZ_REQUIRE_SIGNING=
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
# wasi: we ask maintainers to all use this as wasi sysroot..
# There is a script 'setup-wasi-linux.sh' that attempts to download the wasi sdk and place it into the location pointed to below.
ac_add_options --with-wasi-sysroot=/root/.mozbuild/wrlb/wasi-sysroot

View file

@ -1,8 +0,0 @@
FROM ubuntu:latest
RUN apt-get -y update && apt-get -y upgrade && apt-get -y install bash git wget build-essential zip
RUN dpkg --add-architecture i386 && apt-get -y update && apt-get -y install wine32
RUN tmpdir=$(mktemp -d) && cd $tmpdir && git clone https://gitlab.com/librewolf-community/browser/windows.git && cd windows/linux && make setup-debian && make fetch && make bootstrap && cd /root && rm -rf $tmpdir
WORKDIR /work
VOLUME ["/work"]

View file

@ -1,42 +0,0 @@
# windows.mk - this one is quite a bit different from the others,
# but we can fix that later.
.PHONY : docker build
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)")
outfile-exe=librewolf-$(full_version).en-US.win64-setup.exe
outfile-zip=librewolf-$(full_version).en-US.win64-portable.zip
outfiles=$(outfile-exe) $(outfile-zip)
distro=windows
image=registry.gitlab.com/librewolf-community/browser/bsys5/$(distro):latest
docker :
docker build -t $(image) - < assets/windows.Dockerfile
build :
pwd
rm -rf windows
git clone https://gitlab.com/librewolf-community/browser/windows.git
( cd windows/linux && pwd && ${MAKE} fetch )
ifeq ($(use_docker),false)
( cd windows/linux && ${MAKE} )
else
docker run --rm -v $(shell pwd)/windows/linux:/work:rw registry.gitlab.com/librewolf-community/browser/bsys5/$(distro) sh -c "${MAKE} all"
endif
cp -v windows/linux/$(outfiles) .
sha256sum $(outfile-exe) > $(outfile-exe).sha256sum
cat $(outfile-exe).sha256sum
sha256sum $(outfile-zip) > $(outfile-zip).sha256sum
cat $(outfile-zip).sha256sum

View file

@ -1 +1 @@
1
1

@ -1 +0,0 @@
Subproject commit 70b155aca44a159c3a93430f283efd2df2381547

View file

@ -1 +1 @@
116.0.2
98.0

@ -1 +0,0 @@
Subproject commit b3b007f1710ccfe2c9b6442f5f836a16af8b5acb