summaryrefslogtreecommitdiff
path: root/waterfox-g/debian/rules
blob: 462dd96449d5ba711b255cde16827191c17bf0bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/make -f
# -*- makefile -*-

export SHELL=/bin/bash
export MOZCONFIG=$(shell pwd)/debian/mozconfig
export MOZ_NOSPAM:=1
export MOZ_SOURCE_REPO=https://github.com/WaterfoxCo/Waterfox
export MOZ_SOURCE_CHANGESET=$(shell awk -F ': ' '/^commit:/ {print $$2; exit}' ../SOURCES/waterfox-g.obsinfo)
export WF_VERSION=$(shell awk -F ': ' '/^version:/ {print "G"$$2; exit}' ../SOURCES/waterfox-g.obsinfo)
export TODAY_DATE=$(shell date +%Y-%m-%d)
export LC_ALL=C.UTF-8

LDFLAGS += -Wl,--no-keep-memory -Wl,--no-mmap-output-file

distrelease := $(shell lsb_release -sc)
ifeq ($(distrelease),$(filter $(distrelease),stretch xenial))
LDFLAGS += -static-libstdc++
endif

export LDFLAGS

export JOBS=$(shell echo $(shell grep -c ^processor /proc/cpuinfo)\/2 | bc)

export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system

export DEB_BUILD_MAINT_OPTIONS = optimize=-lto

%:
	dh $@

override_dh_auto_clean:
	dh_auto_clean
	find . -name '*.pyc' -delete

override_dh_auto_build:
	# Upstream modifies version_display.txt using script included in GitHub Actions (version=git_tag),
	# without patching. Debhelper won't allow us to do that by same way and
	# patching won't be much convenient, so we need to create new files.
	mkdir -p $$(pwd)/debian/app_version
	cp $$(pwd)/browser/config/version.txt $$(pwd)/debian/app_version/version.txt
	echo $$WF_VERSION > $$(pwd)/debian/app_version/version_display.txt
	# Build browser
	# LTO needs more open files
	ulimit -n 4096; xvfb-run -a -n 97 -s "-screen 0 1920x1080x24" ./mach build

	# Build langpacks
	mkdir -p $$(pwd)/extensions
	# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
	# Therefore, we have to have a separate obj-dir for each language
	# We do this, by creating a mozconfig-template with the necessary switches
	# and a placeholder obj-dir, which gets copied and modified for each language
	sed -r '/^(ja-JP-mac|en-US|)$$/d;s/ .*$$//' debian/locales.shipped | cut -f1 -d":" \
    | xargs -n 1 -P $$JOBS -I {} /bin/sh -c 'locale=$$1; cp debian/mozconfig_LANG mozconfig_$$locale; sed -i "s|obj_LANG|obj_$$locale|" mozconfig_$$locale; export MOZCONFIG=mozconfig_$$locale; ./mach build config/nsinstall langpack-$$locale; cp -L ../obj_$$locale/dist/linux-*/xpi/waterfox-g-$$WF_VERSION.$$locale.langpack.xpi \
	$$(pwd)/extensions/langpack-$$locale@l10n.waterfox.net.xpi' -- {}

override_dh_auto_install:
	chmod +x $$(pwd)/debian/waterfox-g-bin.sh
	DESTDIR=$$(pwd)/debian/waterfox-g ./mach install
	rm -rf $$(pwd)/debian/waterfox-g/usr/lib/waterfox-g/dictionaries
	rm -rf $$(pwd)/debian/waterfox-g/usr/lib/waterfox-g/waterfox-g-bin
	sed -i "s/__DATE__/$$TODAY_DATE/g" $$(pwd)/debian/waterfox-g.appdata.xml.in
	sed -e "s/__VERSION__/$$WF_VERSION/g" $$(pwd)/debian/waterfox-g.appdata.xml.in > $$(pwd)/debian/waterfox-g/usr/share/metainfo/waterfox-g.appdata.xml
	mv $$(pwd)/debian/waterfox-g-wayland-bin.sh $$(pwd)/debian/waterfox-g-wayland/usr/bin/waterfox-g-wayland

override_dh_shlibdeps:
	dh_shlibdeps -l /usr/lib/waterfox-g/waterfox-g

override_dh_strip_nondeterminism:
	dh_strip_nondeterminism -Xdebian/waterfox-g/usr/lib/waterfox-g/browser/features/formautofill@mozilla.org.xpi
bgstack15