seamonkey/seamonkey-GNUmakefile

191 lines
5.1 KiB
Plaintext
Raw Permalink Normal View History

- update to SeaMonkey 2.53.19 * Cancel button in SeaMonkey bookmarking star ui not working bug 1872623. * Remove OfflineAppCacheHelper.jsm copy from SeaMonkey and use the one in toolkit bug 1896292. * Remove obsolete registerFactoryLocation calls from cZ bug 1870930. * Remove needless implements='nsIDOMEventListener' and QI bug 1611010. * Replace use of nsIStandardURL::Init bug 1864355. * Switch SeaMonkey website from hg.mozilla.org to heptapod. bug 1870934. * Allow view-image to open a data: URI by setting a flag on the loadinfo bug 1877001. * Save-link-as feature should use the loading principal and context menu using nsIContentPolicy.TYPE_SAVE_AS_DOWNLOAD bug 1879726. * Use punycode in SeaMonkey JS bug 1864287. * Font lists in preferences are no longer grouped by font type, port asynchronous handling like Bug 1399206 bug 1437393. * SeaMonkey broken tab after undo closed tab with invalid protocol bug 1885748. * SeaMonkey session restore is missing the checkboxes in the Classic theme bug 1896174. * Implement about:credits on seamonkey-project.org website bug 1898467. * Fix for the 0.0.0.0 day vulnerability oligo summary. * Link in update notification does not open Browser bug 1888364. * Update ReadExtensionPrefs in Preferences.cpp bug 1890196. * Add about:seamonkey page to SeaMonkey bug 1897801. * SeaMonkey 2.53.19 uses the same backend as Firefox and contains the relevant Firefox 60.8 security fixes. * SeaMonkey 2.53.19 shares most parts of the mail and news code with Thunderbird. Please read the Thunderbird 60.8.0 release notes for specific security fixes in this release. * Additional important security fixes up to Current Firefox 115.14 and Thunderbird 115.14 ESR plus many enhancements have been backported. We will continue to enhance SeaMonkey security in subsequent 2.53.x beta and release versions as fast as we are able to. - Adapt seamonkey-man-page.patch for SeaMonkey 2.53.19 - Adapt seamonkey-GNUmakefile to create mach environment - Build with GCC 13 on Tumbleweed due to build failures with GCC 14: https://bugzilla.mozilla.org/show_bug.cgi?id=1916827 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/seamonkey?expand=0&rev=63
2024-09-05 23:10:32 +02:00
#
# Front-end based on GNU make, intended for a more friendly
# integration of the build system with Linux/UNIX distributions,
# as well as for those who still allergy using mach command.
#
# Place it as `mozilla/GNUmakefile' (instead of the existing stub),
# and work under `mozilla/' dir.
#
#
# For build, just use
#
# make
#
# (If you want to separate config stage, use "make configure" and then "make",
# but normally it is done automatically).
#
# For install, use
#
# make install DESTDIR=where_you_want_to_install
#
#
# Additionally, before install you can use:
#
# make locales
#
# to provide all the shipped locales (will appear in a form of langpack extensions).
# If irc and/or calendar are built, their data will be included too.
# (See below for more details about locales target).
#
#
# For clarity, some comparison with the other build methods
# (assume `-jN' is the option for parallel builds, ie. `-j4' for 4-cpu system):
#
# Build stage:
#
# client.mk: make -f client.mk build MOZ_MAKE_FLAGS=-jN
# mach: ./mach build -jN
# THIS: make -jN
#
# Install stage:
#
# client.mk: DESTDIR=where... make -f client.mk install
# mach: DESTDIR=where... make -C $OBJDIR... install
# THIS: make install DESTDIR=where...
#
ifeq (,$(wildcard .mozconfig))
$(error Cannot find .mozconfig file in the current directory)
endif
MACH_CMD = env MACH_USE_SYSTEM_PYTHON=1 ./mach --log-no-times
export MACH_USE_SYSTEM_PYTHON = 1
OBJDIR := $(shell $(MACH_CMD) environment --format=json | sed -e 's/.*"topobjdir": "//' -e 's/".*//')
OBJDIR_TARGETS = install distribution source-package package clobber
.PHONY: all configure build clean distclean $(OBJDIR_TARGETS)
all: build
configure: $(OBJDIR)/Makefile
$(OBJDIR)/Makefile: .mozconfig
$(MACH_CMD) configure
build: $(OBJDIR)/Makefile
$(MAKE) -C $(OBJDIR)
$(OBJDIR_TARGETS):
$(MAKE) -C $(OBJDIR) $@
clean:
$(MACH_CMD) clobber
distclean: clean
rm -f configure js/src/configure
rm -rf $(OBJDIR)
#
# LOCALES
#
#
# The target `locales' creates all the needed langpacks.
#
# By default, all available locales will be used. You can change it
# by overriding SHIPPED_LOCALES variable on the command line.
#
# Additionally, you can use `make locale-LANG' to create one (or several)
# langpack separately.
#
# For example, to build `fr' and 'it' only, use:
#
# make locales SHIPPED_LOCALES="fr it"
#
# to create just `ru' langpack:
#
# make locale-ru
#
# Use `clear-locales' for clearing.
#
#
# NOTE! NOTE! NOTE!
#
# Do NOT use parallel builds (-jN) for locale targets!
#
# It is better to use `-j1' explicitly (`make -j1 locales') to avoid issues.
#
.PHONY: locales clear-locales dictionaries clear-dictionaries
drop_extra := $(if $(or $(filter Windows_NT,$(OS)),$(filter-out Darwin,$(shell uname))),ja-JP-mac,ja)
SHIPPED_LOCALES := $(shell while read loc rest; do echo $$loc; done <comm/suite/locales/shipped-locales)
SHIPPED_LOCALES := $(filter-out en-US $(drop_extra),$(sort $(SHIPPED_LOCALES)))
locales: $(SHIPPED_LOCALES:%=locale-%)
PACKAGE_MANIFEST = $(OBJDIR)/comm/suite/installer/package-manifest
$(PACKAGE_MANIFEST):
cp comm/suite/installer/package-manifest.in $@
sed -i '/MOZ_PKG_MANIFEST =/ s,.*,MOZ_PKG_MANIFEST = $$(topobjdir)/comm/suite/installer/package-manifest,' \
$(OBJDIR)/comm/suite/installer/Makefile
stage := $(OBJDIR)/dist/xpi-stage/locale
.PRECIOUS: $(stage)-%
$(stage)-%:
$(MAKE) -C $(OBJDIR)/comm/suite/locales langpack-$*
# Cleanup of old manifest files
find $@ -name "*.manifest" -print | xargs rm -f
find $@ -name ".mkdir.done" -print | xargs rm -f
find $@/extensions -name "defaults" -type d -print | xargs rm -rf
# Spanish locales other than es-ES are from Latam, where the es-AR langpack is most preferred
[ $* = es-AR ] && sed -i '/"es-AR": {/ s/es-AR/es/' $@/manifest.json || :
locale-%: REL_NAME = extensions/langpack-$*@seamonkey.mozilla.org.xpi
locale-%: DEST_NAME = $(OBJDIR)/dist/bin/$(REL_NAME)
locale-%: manifest_entry = @RESPATH@/$(REL_NAME)
# To avoid performance issues in multi-locale installs, put manifest.json file
# into the beginning of the archive, and do not compress them.
locale-%: $(stage)-% $(PACKAGE_MANIFEST)
rm -f $(DEST_NAME)
cd $<; zip -0 -D -X $(DEST_NAME) manifest.json
cd $<; zip -g -r -9 -D -X $(DEST_NAME) chrome extensions
fgrep $(manifest_entry) $(PACKAGE_MANIFEST) || echo $(manifest_entry) >>$(PACKAGE_MANIFEST)
clear-locales:
sed -i '/langpack-.*@seamonkey.mozilla.org.xpi/ d' $(PACKAGE_MANIFEST)
rm -f $(OBJDIR)/dist/bin/extensions/langpack-*@seamonkey.mozilla.org.xpi
#
# Dictionaries
#
# It is better to use system dictionaries, specifying directory path for them
# by "spellchecker.dictionary_path" preference (or even use symlink when possible).
#
DICT_DEST := $(OBJDIR)/dist/bin/dictionaries
dictionaries: $(SHIPPED_LOCALES:%=$(stage)-%)
cp -f -d $(wildcard $(foreach loc,$(SHIPPED_LOCALES),$(stage)-$(loc)/dictionaries/$(loc).aff $(stage)-$(loc)/dictionaries/$(loc).dic)) $(DICT_DEST)
clear-dictionaries:
rm -f $(filter-out $(DICT_DEST)/en-US.%,$(wildcard $(DICT_DEST)/*.aff $(DICT_DEST)/*.dic))