forked from pool/seamonkey
- 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
This commit is contained in:
commit
1c7ffb263a
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
23
_constraints
Normal file
23
_constraints
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">25</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">16</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
<arch>ppc64le</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">5</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
16
mozilla-bmo1862601.patch
Normal file
16
mozilla-bmo1862601.patch
Normal file
@ -0,0 +1,16 @@
|
||||
--- a/intl/lwbrk/LineBreaker.cpp
|
||||
+++ b/intl/lwbrk/LineBreaker.cpp
|
||||
@@ -559,7 +559,12 @@
|
||||
/* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER,
|
||||
/* E_BASE = 40, [EB] */ CLASS_BREAKABLE,
|
||||
/* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER,
|
||||
- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER
|
||||
+ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER,
|
||||
+ /* AKSARA = 43, [AK] */ CLASS_CHARACTER,
|
||||
+ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER,
|
||||
+ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER,
|
||||
+ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER,
|
||||
+ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER,
|
||||
};
|
||||
|
||||
static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
|
24886
mozilla-bmo1896958.patch
Normal file
24886
mozilla-bmo1896958.patch
Normal file
File diff suppressed because one or more lines are too long
33
mozilla-bmo531915.patch
Normal file
33
mozilla-bmo531915.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent fa8a5832a374ccd7af5db927b992b5d9f15273ef
|
||||
|
||||
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
|
||||
--- a/modules/fdlibm/src/math_private.h
|
||||
+++ b/modules/fdlibm/src/math_private.h
|
||||
@@ -25,19 +25,24 @@
|
||||
|
||||
#include "fdlibm.h"
|
||||
|
||||
/*
|
||||
* Emulate FreeBSD internal double types.
|
||||
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
|
||||
*/
|
||||
|
||||
+#ifdef __i386__
|
||||
+typedef long double __double_t;
|
||||
+typedef long double __float_t;
|
||||
+#else
|
||||
typedef double __double_t;
|
||||
+typedef float __float_t;
|
||||
+#endif
|
||||
typedef __double_t double_t;
|
||||
-typedef float __float_t;
|
||||
|
||||
/*
|
||||
* The original fdlibm code used statements like:
|
||||
* n0 = ((*(int*)&one)>>29)^1; * index of high word *
|
||||
* ix0 = *(n0+(int*)&x); * high word of x *
|
||||
* ix1 = *((1-n0)+(int*)&x); * low word of x *
|
||||
* to dig two 32 bit words out of the 64 bit IEEE floating point
|
||||
* value. That is non-ANSI, and, moreover, the gcc instruction
|
25
mozilla-nongnome-proxies.patch
Normal file
25
mozilla-nongnome-proxies.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From: Wolfgang Rosenauer, Tristan Miller
|
||||
Subject: Do not use gconf for proxy settings if not running within Gnome
|
||||
|
||||
diff -ruN seamonkey-2.53.17b1.orig/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp seamonkey-2.53.17b1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- seamonkey-2.53.17b1.orig/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2023-06-10 12:41:26.000000000 +0200
|
||||
+++ seamonkey-2.53.17b1/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 2023-07-12 09:41:08.047344985 +0200
|
||||
@@ -55,10 +55,14 @@
|
||||
nsresult
|
||||
nsUnixSystemProxySettings::Init()
|
||||
{
|
||||
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
- if (mGSettings) {
|
||||
- mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
- getter_AddRefs(mProxySettings));
|
||||
+ // only use GSettings if that is a GNOME session
|
||||
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
|
||||
+ if (sessionType && !strcmp(sessionType, "gnome")) {
|
||||
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
+ if (mGSettings) {
|
||||
+ mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
}
|
||||
|
||||
return NS_OK;
|
18
mozilla-ntlm-full-path.patch
Normal file
18
mozilla-ntlm-full-path.patch
Normal file
@ -0,0 +1,18 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# Parent 03565086f1e230cf6f0f6c01bf9a792c732de50b
|
||||
Bug 634334 - call to the ntlm_auth helper fails
|
||||
|
||||
diff -ruN seamonkey/mozilla/extensions/auth/nsAuthSambaNTLM.cpp seamonkey.new/mozilla/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- seamonkey/mozilla/extensions/auth/nsAuthSambaNTLM.cpp 2020-02-18 00:37:50.000000000 +0100
|
||||
+++ seamonkey.new/mozilla/extensions/auth/nsAuthSambaNTLM.cpp 2020-03-02 12:53:27.147346423 +0100
|
||||
@@ -174,7 +174,7 @@
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
const char* const args[] = {
|
||||
- "ntlm_auth",
|
||||
+ "/usr/bin/ntlm_auth",
|
||||
"--helper-protocol", "ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
||||
"--username", username,
|
143
mozilla.sh.in
Normal file
143
mozilla.sh.in
Normal file
@ -0,0 +1,143 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org Code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Wolfgang Rosenauer <wolfgang.rosenauer@suse.de>
|
||||
# <wr@rosenauer.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
##
|
||||
## Usage:
|
||||
##
|
||||
## $ mozilla [args]
|
||||
##
|
||||
## This script is meant to run a mozilla program from the mozilla
|
||||
## rpm installation.
|
||||
##
|
||||
## The script will setup all the environment voodoo needed to make
|
||||
## mozilla work.
|
||||
|
||||
cmdname=`basename $0`
|
||||
|
||||
##
|
||||
## Variables
|
||||
##
|
||||
MOZ_DIST_BIN="%PREFIX"
|
||||
MOZ_DIST_LIB="%PROGDIR"
|
||||
MOZ_APPNAME="%APPNAME"
|
||||
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME-bin"
|
||||
|
||||
MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
|
||||
if [ "$0" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
[ -h "/usr/bin/$MOZ_APPNAME" ] && \
|
||||
_link=$(readlink -f "/usr/bin/$MOZ_APPNAME")
|
||||
if [ "$_link" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
else
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
|
||||
mozilla_lib=`file $MOZ_PROGRAM`
|
||||
LIB=lib
|
||||
echo $mozilla_lib | grep -q -E 'ELF.64-bit.*(x86-64|S/390|PowerPC)' && LIB=lib64
|
||||
|
||||
BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
|
||||
if [ ! -d $BROWSER_PLUGIN_DIR ]; then
|
||||
BROWSER_PLUGIN_DIR=/opt/netscape/plugins
|
||||
fi
|
||||
|
||||
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
|
||||
export MOZILLA_FIVE_HOME
|
||||
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
# needed for SUN Java under Xorg >= 7.2
|
||||
export LIBXCB_ALLOW_SLOPPY_LOCK=1
|
||||
|
||||
##
|
||||
if [ -z "$MOZ_PLUGIN_PATH" ]; then
|
||||
export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
|
||||
else
|
||||
# make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
|
||||
echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
|
||||
_retval=$?
|
||||
if [ ${_retval} -ne 0 ]; then
|
||||
export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
|
||||
fi
|
||||
fi
|
||||
|
||||
# disable Gnome crash dialog (doesn't make sense anyway)
|
||||
export GNOME_DISABLE_CRASH_DIALOG=1
|
||||
|
||||
moz_debug=0
|
||||
script_args=""
|
||||
pass_arg_count=0
|
||||
while [ $# -gt $pass_arg_count ]
|
||||
do
|
||||
case "$1" in
|
||||
-d | --debugger)
|
||||
moz_debugger=$2;
|
||||
if [ "${moz_debugger}" != "" ]; then
|
||||
shift 2
|
||||
moz_debug=1
|
||||
else
|
||||
echo "-d requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Move the unrecognized argument to the end of the list.
|
||||
arg="$1"
|
||||
shift
|
||||
set -- "$@" "$arg"
|
||||
pass_arg_count=`expr $pass_arg_count + 1`
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $moz_debug -eq 1 ]; then
|
||||
tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
|
||||
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
|
||||
echo "set args ${1+"$@"}" > $tmpfile
|
||||
echo "run" >> $tmpfile
|
||||
echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
|
||||
$moz_debugger "$MOZ_PROGRAM" -x $tmpfile
|
||||
else
|
||||
$MOZ_PROGRAM "$@"
|
||||
fi
|
||||
exitcode=$?
|
||||
|
||||
exit $exitcode
|
63
reproducible.patch
Normal file
63
reproducible.patch
Normal file
@ -0,0 +1,63 @@
|
||||
https://github.com/mozilla/gecko-dev/commit/025982b6714051c747dcb9600d6e5c92d2dcaf7b
|
||||
|
||||
From 025982b6714051c747dcb9600d6e5c92d2dcaf7b Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
Date: Thu, 16 Mar 2023 14:01:58 +0000
|
||||
Subject: [PATCH] Bug 1817032 - Honor SOURCE_DATE_EPOCH to build langpacks
|
||||
reproducibly. r=eemeli@mozilla.com
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D169979
|
||||
---
|
||||
.../mozbuild/action/langpack_manifest.py | 17 +++++++++++++----
|
||||
1 file changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
index f82a329cc..10e42fe99 100644
|
||||
--- a/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
+++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
@@ -16,6 +16,7 @@ import os
|
||||
import json
|
||||
import io
|
||||
import datetime
|
||||
+import time
|
||||
import requests
|
||||
import mozversioncontrol
|
||||
import mozpack.path as mozpath
|
||||
@@ -36,9 +37,17 @@ def write_file(path, content):
|
||||
pushlog_api_url = "{0}/json-rev/{1}"
|
||||
|
||||
|
||||
+def get_build_date():
|
||||
+ """Return the current date or SOURCE_DATE_EPOCH, if set."""
|
||||
+ return datetime.datetime.utcfromtimestamp(
|
||||
+ int(os.environ.get("SOURCE_DATE_EPOCH", time.time()))
|
||||
+ )
|
||||
+
|
||||
+
|
||||
###
|
||||
-# Retrievers a UTC datetime of the push for the current commit
|
||||
-# from a mercurial clone directory.
|
||||
+# Retrieves a UTC datetime of the push for the current commit from a
|
||||
+# mercurial clone directory. The SOURCE_DATE_EPOCH environment
|
||||
+# variable is honored, for reproducibility.
|
||||
#
|
||||
# Args:
|
||||
# path (str) - path to a directory
|
||||
@@ -54,7 +63,7 @@ def get_dt_from_hg(path):
|
||||
with mozversioncontrol.get_repository_object(path=path) as repo:
|
||||
phase = repo._run("log", "-r", ".", "-T" "{phase}")
|
||||
if phase.strip() != "public":
|
||||
- return datetime.datetime.utcnow()
|
||||
+ return get_build_date()
|
||||
repo_url = repo._run("paths", "default")
|
||||
repo_url = repo_url.strip().replace("ssh://", "https://")
|
||||
repo_url = repo_url.replace("hg://", "https://")
|
||||
@@ -99,7 +108,7 @@ def get_timestamp_for_locale(path):
|
||||
dt = get_dt_from_hg(path)
|
||||
|
||||
if dt is None:
|
||||
- dt = datetime.datetime.utcnow()
|
||||
+ dt = get_build_date()
|
||||
|
||||
dt = dt.replace(microsecond=0)
|
||||
return dt.strftime("%Y%m%d%H%M%S")
|
3
seamonkey-2.53.18.2.source-l10n.tar.xz
Normal file
3
seamonkey-2.53.18.2.source-l10n.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3d029110e7eddb895a70e0ee146e160ea2952005e18be71f49cdd7f3c04bbb79
|
||||
size 13419252
|
3
seamonkey-2.53.18.2.source.tar.xz
Normal file
3
seamonkey-2.53.18.2.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2422e824dbec0cb268d3741dcbf3f2b23a477437052300f181fa7b6c7c364fef
|
||||
size 252310768
|
3
seamonkey-2.53.19.source-l10n.tar.xz
Normal file
3
seamonkey-2.53.19.source-l10n.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a9c7d6aff6cb0c084c14aa8c1261b80b2b32c7f03e8910658db037671b893e25
|
||||
size 13430044
|
3
seamonkey-2.53.19.source.tar.xz
Normal file
3
seamonkey-2.53.19.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a6c9a44d2a167f04fff5d4175ad61e934c6177852ab8ab56c319f242a73146e2
|
||||
size 249145892
|
190
seamonkey-GNUmakefile
Normal file
190
seamonkey-GNUmakefile
Normal file
@ -0,0 +1,190 @@
|
||||
#
|
||||
# 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))
|
||||
|
3
seamonkey-appdata.tar.bz2
Normal file
3
seamonkey-appdata.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f3cb87e82e2f21d04417ed5313275f39c6d6c4164563560c3ce43f6e26306ede
|
||||
size 3025
|
3
seamonkey-desktop.tar.bz2
Normal file
3
seamonkey-desktop.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:992d36c915ac5362dfbd0f057c81937d3133fb97fbbea4b51f83bfc19e97696f
|
||||
size 22975
|
12
seamonkey-lto.patch
Normal file
12
seamonkey-lto.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -ruN seamonkey-2.53.17b1.orig/security/sandbox/linux/moz.build seamonkey-2.53.17b1/security/sandbox/linux/moz.build
|
||||
--- seamonkey-2.53.17b1.orig/security/sandbox/linux/moz.build 2023-06-10 12:41:21.000000000 +0200
|
||||
+++ seamonkey-2.53.17b1/security/sandbox/linux/moz.build 2023-07-12 09:48:50.099448143 +0200
|
||||
@@ -101,7 +101,7 @@
|
||||
# forcing there to be only one partition.
|
||||
for f in CONFIG['OS_CXXFLAGS']:
|
||||
if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang':
|
||||
- LDFLAGS += ['--param lto-partitions=1']
|
||||
+ LDFLAGS += ['--param=lto-partitions=1']
|
||||
|
||||
DEFINES['NS_NO_XPCOM'] = True
|
||||
DisableStlWrapping()
|
23
seamonkey-man-page.patch
Normal file
23
seamonkey-man-page.patch
Normal file
@ -0,0 +1,23 @@
|
||||
--- build/moz.configure/old.configure 2022-06-08 21:10:25.000000000 +0200
|
||||
+++ build/moz.configure/old.configure 2022-07-11 14:04:06.231167162 +0200
|
||||
@@ -246,6 +246,7 @@
|
||||
'--enable-zipwriter',
|
||||
'--includedir',
|
||||
'--libdir',
|
||||
+ '--mandir',
|
||||
'--prefix',
|
||||
'--with-app-basename',
|
||||
'--with-app-name',
|
||||
--- comm/suite/installer/Makefile.in 2021-08-08 15:29:32.000000000 +0200
|
||||
+++ comm/suite/installer/Makefile.in 2022-07-11 14:04:44.710104711 +0200
|
||||
@@ -145,6 +145,10 @@
|
||||
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
||||
|
||||
+install::
|
||||
+ $(NSINSTALL) -D $(DESTDIR)$(mandir)/man1
|
||||
+ $(SYSINSTALL) $(IFLAGS1) $(DIST)/man/man1/$(MOZ_APP_NAME).1 $(DESTDIR)$(mandir)/man1
|
||||
+
|
||||
ifeq (Darwin, $(OS_ARCH))
|
||||
BINPATH = $(_BINPATH)
|
||||
DEFINES += -DAPPNAME=$(_APPNAME)
|
1
seamonkey-rpmlintrc
Normal file
1
seamonkey-rpmlintrc
Normal file
@ -0,0 +1 @@
|
||||
addFilter("no-jar-manifest")
|
4873
seamonkey.changes
Normal file
4873
seamonkey.changes
Normal file
File diff suppressed because it is too large
Load Diff
498
seamonkey.spec
Normal file
498
seamonkey.spec
Normal file
@ -0,0 +1,498 @@
|
||||
#
|
||||
# spec file for package seamonkey
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# 2006-2018 Wolfgang Rosenauer
|
||||
# 2018-2024 Tristan Miller
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# upstream default is clang (to use gcc for large parts set to 0)
|
||||
%define clang_build 0
|
||||
|
||||
Name: seamonkey
|
||||
BuildRequires: Mesa-devel
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: fdupes
|
||||
# Use GCC 13 on Tumbleweed because builds fail with GCC 14:
|
||||
# <https://bugzilla.mozilla.org/show_bug.cgi?id=1916827>
|
||||
%if 0%{?suse_version} > 1600
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: hunspell-devel
|
||||
# Using system AV1 decoder depends on pending patch from
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213
|
||||
#BuildRequires: dav1d5-devel
|
||||
BuildRequires: libiw-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
#BuildRequires: libvpx-devel # Compile errors with 1.10.0
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
|
||||
BuildRequires: libwebp-devel >= 1.0.0
|
||||
#BuildRequires: libicu-devel >= 63.1
|
||||
%endif
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: memory-constraints
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: startup-notification-devel
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
BuildRequires: yasm
|
||||
BuildRequires: zip
|
||||
BuildRequires: pkgconfig(gdk-x11-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.32
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
|
||||
BuildRequires: pkgconfig(libffi) > 3.0.9
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: cargo
|
||||
BuildRequires: rust >= 1.47
|
||||
BuildRequires: rust-cbindgen
|
||||
BuildRequires: git
|
||||
BuildRequires: nasm >= 2.13
|
||||
#BuildRequires: llvm-devel
|
||||
%if (0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000)
|
||||
BuildRequires: clang6-devel
|
||||
%else
|
||||
BuildRequires: clang-devel >= 5
|
||||
%endif
|
||||
Provides: web_browser
|
||||
Provides: browser(npapi)
|
||||
Version: 2.53.19
|
||||
Release: 0
|
||||
%define releasedate 20240904000000
|
||||
Summary: An integrated web browser, composer, mail/news client, and IRC client
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
Url: https://www.seamonkey-project.org/
|
||||
Source: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source.tar.xz
|
||||
Source1: seamonkey-desktop.tar.bz2
|
||||
Source2: spellcheck.js
|
||||
Source3: mozilla.sh.in
|
||||
Source4: suse-default-prefs.js
|
||||
Source5: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source-l10n.tar.xz
|
||||
Source7: seamonkey-rpmlintrc
|
||||
Source11: seamonkey-appdata.tar.bz2
|
||||
Source12: seamonkey-GNUmakefile
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-ntlm-full-path.patch
|
||||
Patch3: seamonkey-lto.patch
|
||||
Patch4: seamonkey-man-page.patch
|
||||
Patch5: reproducible.patch
|
||||
Patch6: mozilla-bmo531915.patch
|
||||
Patch7: mozilla-bmo1896958.patch
|
||||
Patch8: mozilla-bmo1862601.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: /bin/sh coreutils
|
||||
Provides: seamonkey-mail = %{version}
|
||||
Obsoletes: seamonkey-mail <= 2.0
|
||||
Provides: seamonkey-spellchecker = %{version}
|
||||
Obsoletes: seamonkey-spellchecker <= 2.0
|
||||
# venkman is discontinued and removed (not merged)
|
||||
Provides: seamonkey-venkman = %{version}
|
||||
Obsoletes: seamonkey-venkman <= 2.29
|
||||
Recommends: libcanberra0
|
||||
Recommends: libpulse0
|
||||
# libavcodec is required for H.264 support but the
|
||||
# openSUSE version is currently not able to play H.264
|
||||
# therefore the Packman version is required
|
||||
# minimum version of libavcodec is 53
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
%define progname %{name}
|
||||
%define sources_subdir %{name}-%{version}
|
||||
%define prefix /usr
|
||||
%define progdir %_libdir/%{progname}
|
||||
%define libgssapi libgssapi_krb5.so.2
|
||||
### build options
|
||||
%define has_system_cairo 0
|
||||
%define localize 1
|
||||
%define with_chatzilla 1
|
||||
%define with_domi 1
|
||||
### build options end
|
||||
# It no longer makes sense to include separate language packs because these
|
||||
# apply only to the main SeaMonkey suite, but not to the integrated Chatzilla
|
||||
# or Calendar
|
||||
%if %localize
|
||||
Provides: seamonkey-translations-common = %{version}
|
||||
Obsoletes: seamonkey-translations-common < 2.53.6
|
||||
Provides: seamonkey-translations-other = %{version}
|
||||
Obsoletes: seamonkey-translations-other < 2.53.6
|
||||
Provides: locale(%{name}:cs;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ka;nb_NO;nl;pl;pt_BR;pt_PT;ru;sk;sv_SE;zh_CN;zh_TW)
|
||||
%endif
|
||||
%if 0%{?with_chatzilla} == 0
|
||||
Provides: seamonkey-irc = %{version}
|
||||
%endif
|
||||
%if 0%{?with_domi} == 0
|
||||
Provides: seamonkey-dom-inspector = %{version}
|
||||
%endif
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libld.*|libprldap.*)$
|
||||
# the following conditions are always met in Factory by definition
|
||||
BuildRequires: mozilla-nspr-devel >= 4.13.1
|
||||
PreReq: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
|
||||
%if 0%{?sle_version} != 150500 && 0%{?is_opensuse}
|
||||
BuildRequires: mozilla-nss-devel >= 3.28.6
|
||||
PreReq: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
|
||||
%endif
|
||||
|
||||
%description
|
||||
SeaMonkey is an all-in-one Internet application suite containing a web
|
||||
browser, an e-mail and newsgroup client with an included web feed
|
||||
reader and calendar, an HTML editor and web development tools, and an
|
||||
IRC client. SeaMonkey is a successor to the popular Netscape
|
||||
Communicator and Mozilla Application Suite, and (unlike its siblings,
|
||||
Firefox and Thunderbird) retains Mozilla's more traditional-looking
|
||||
interface. Many Thunderbird and (legacy) Firefox extensions are
|
||||
compatible with SeaMonkey.
|
||||
|
||||
%package irc
|
||||
Summary: IRC for SeaMonkey
|
||||
Group: Productivity/Networking/IRC
|
||||
PreReq: %{name} = %{version}
|
||||
|
||||
%description irc
|
||||
An IRC client (Chatzilla) for SeaMonkey.
|
||||
|
||||
%package venkman
|
||||
Summary: The SeaMonkey JavaScript Debugger
|
||||
Group: Development/Tools/Debuggers
|
||||
PreReq: %{name} = %{version}
|
||||
|
||||
%description venkman
|
||||
A JavaScript debugger for the SeaMonkey web browser.
|
||||
|
||||
|
||||
%package dom-inspector
|
||||
Summary: The SeaMonkey DOM Inspector
|
||||
Group: Development/Tools/Navigators
|
||||
PreReq: %{name} = %{version}
|
||||
|
||||
%description dom-inspector
|
||||
This is a tool that allows you to inspect the DOM for web pages in
|
||||
SeaMonkey. This is of great use to people who are doing SeaMonkey
|
||||
chrome development or web page development.
|
||||
|
||||
%if %localize
|
||||
|
||||
%package translations-common
|
||||
Summary: Common translations for SeaMonkey
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:cs;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
||||
PreReq: %{name} = %{version}
|
||||
|
||||
%description translations-common
|
||||
This package contains several optional languages for the user interface
|
||||
of SeaMonkey.
|
||||
|
||||
|
||||
%package translations-other
|
||||
Summary: Extra translations for SeaMonkey
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ka;sk)
|
||||
PreReq: %{name} = %{version}
|
||||
|
||||
%description translations-other
|
||||
This package contains several optional languages for the user interface
|
||||
of SeaMonkey.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
|
||||
%setup -q -b 1 -b 11 -c
|
||||
|
||||
mv %{sources_subdir} mozilla
|
||||
|
||||
%if %localize
|
||||
%setup -q -T -D -c -n %{name}-%{version}/l10n -a 5
|
||||
%setup -q -T -D
|
||||
%endif
|
||||
|
||||
cd mozilla
|
||||
|
||||
cp %{SOURCE12} GNUmakefile
|
||||
|
||||
%patch -P 1 -p1
|
||||
%patch -P 2 -p2
|
||||
%patch -P 3 -p1
|
||||
%patch -P 4 -p0
|
||||
%patch -P 5 -p1
|
||||
%patch -P 6 -p1
|
||||
|
||||
# Fix Rust builds on Tumbleweed; see https://bugzilla.mozilla.org/show_bug.cgi?id=1896958
|
||||
%if 0%{?suse_version} > 1600
|
||||
%patch -P 7 -p1
|
||||
%endif
|
||||
# Fix Rust builds on openSUSE 15.6; see https://bugzilla.mozilla.org/show_bug.cgi?id=1896958
|
||||
%if 0%{?sle_version} == 150600 && 0%{?is_opensuse}
|
||||
%patch -P 7 -p1
|
||||
%endif
|
||||
|
||||
# Fix --system-icu builds on Tumbleweed; see https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
|
||||
%if 0%{?suse_version} > 1600
|
||||
%patch -P 8 -p1
|
||||
%endif
|
||||
|
||||
cat << EOF > .mozconfig
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_MILESTONE_RELEASE=1
|
||||
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
|
||||
#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
||||
ac_add_options --enable-application=comm/suite
|
||||
ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --mandir=%{_mandir}
|
||||
%if %localize
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/seamonkey-%{version}/l10n
|
||||
%endif
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-install-strip
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
ac_add_options --disable-gconf
|
||||
|
||||
# Elfhack fails on ix86: https://bugzilla.mozilla.org/show_bug.cgi?id=1706264
|
||||
%ifarch aarch64 ppc %arm %ix86
|
||||
ac_add_options --disable-elf-hack
|
||||
%endif
|
||||
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --with-system-nspr
|
||||
%if 0%{?sle_version} != 150500 && 0%{?is_opensuse}
|
||||
ac_add_options --with-system-nss
|
||||
%endif
|
||||
ac_add_options --with-system-zlib
|
||||
ac_add_options --with-system-bz2
|
||||
%if 0%{?suse_version} > 1600 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
|
||||
ac_add_options --with-system-webp
|
||||
ac_add_options --with-system-icu
|
||||
%endif
|
||||
|
||||
# Compile errors with system libvpx-1.10.0
|
||||
#ac_add_options --with-system-libvpx
|
||||
|
||||
# Using system AV1 decoder depends on pending patch from
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213
|
||||
# ac_add_options --with-system-av1
|
||||
|
||||
# Mozilla's internal JPEG library is used because of the "turbo" patches
|
||||
# that make it more efficient than the stock system libjpeg:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=573948
|
||||
#ac_add_options --with-system-jpeg
|
||||
|
||||
# The stock system libpng lacks support for APNG, whereas Mozilla's
|
||||
# internal version suports APNG
|
||||
#ac_add_options--with-system-png
|
||||
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --enable-startup-notification
|
||||
ac_add_options --enable-alsa
|
||||
%if %has_system_cairo
|
||||
ac_add_options --enable-system-cairo
|
||||
%endif
|
||||
ac_add_options --enable-libproxy
|
||||
%if 0%{?with_chatzilla}
|
||||
ac_add_options --with-irc
|
||||
%endif
|
||||
%if %with_domi
|
||||
ac_add_options --with-dominspector
|
||||
%endif
|
||||
ac_add_options --enable-calendar
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
# no need to add build time to binaries
|
||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
|
||||
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
|
||||
TIME="\"$(date -d "${modified}" "+%%R")\""
|
||||
find . -regex ".*\.c\|.*\.cpp\|.*\.h" \
|
||||
-exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
|
||||
|
||||
# As of 2.53.3, i586 builds are failing due to out-of-memory issues,
|
||||
# so we disable LTO. (This workaround is still necessary as of
|
||||
# 2.53.7.1.)
|
||||
%ifarch %ix86
|
||||
%define _lto_cflags %{nil}
|
||||
%endif
|
||||
#
|
||||
# As of 2.53.13, Tumbleweed builds are failing due to the linker
|
||||
# issue <https://bugzilla.mozilla.org/show_bug.cgi?id=1778981>
|
||||
# so we disable LTO.
|
||||
%if 0%{?suse_version} > 1600
|
||||
%define _lto_cflags %{nil}
|
||||
%endif
|
||||
export SUSE_ASNEEDED=0
|
||||
export MOZ_BUILD_DATE=%{releasedate}
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
|
||||
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||
%if 0%{?clang_build} == 0
|
||||
# Use GCC 13 on Tumbleweed because builds fail with GCC 14:
|
||||
# <https://bugzilla.mozilla.org/show_bug.cgi?id=1916827>
|
||||
%if 0%{?suse_version} > 1600
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
%else
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
%endif
|
||||
%if 0%{?gcc_version:%{gcc_version}} >= 12
|
||||
export CFLAGS="$CFLAGS -fimplicit-constexpr"
|
||||
%endif
|
||||
%endif
|
||||
|
||||
if [ $(gcc -dumpversion | awk -F. '{print $1}') -ge 6 ]; then
|
||||
export CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
|
||||
fi
|
||||
%ifarch %arm
|
||||
export CFLAGS="${CFLAGS/-g / }"
|
||||
%endif
|
||||
%ifarch %arm %ix86
|
||||
# Limit RAM usage during link
|
||||
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
|
||||
%endif
|
||||
%ifarch ppc64 ppc64le
|
||||
%if 0%{?clang_build} == 0
|
||||
export CFLAGS="$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%endif
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
|
||||
#
|
||||
%limit_build -m 2000
|
||||
cd mozilla
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%if %localize
|
||||
make -j1 locales
|
||||
%endif
|
||||
#
|
||||
|
||||
%install
|
||||
|
||||
cd mozilla
|
||||
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
for ext in $RPM_BUILD_ROOT/%{progdir}/extensions/langpack-*@seamonkey.mozilla.org.xpi
|
||||
do
|
||||
lang=${ext##*langpack-}
|
||||
lang=${lang%@*}
|
||||
lang=${lang/-/_}
|
||||
echo "%%lang($lang) ${ext#$RPM_BUILD_ROOT}"
|
||||
done >../seamonkey.lang
|
||||
|
||||
# overwrite the mozilla start-script and link it to /usr/bin
|
||||
mkdir --parents $RPM_BUILD_ROOT%{_bindir}
|
||||
sed "s:%%PREFIX:%{prefix}:g
|
||||
s:%%PROGDIR:%{progdir}:g
|
||||
s:%%APPNAME:seamonkey:g" \
|
||||
%{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
|
||||
chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
|
||||
ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT%{_bindir}/%{progname}
|
||||
# apply SUSE defaults
|
||||
sed -e 's,RPM_VERSION,%{version}-%{release},g
|
||||
#s,GSSAPI,%{libgssapi},g' \
|
||||
%{SOURCE4} > suse-default-prefs
|
||||
cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-openSUSE.js
|
||||
rm suse-default-prefs
|
||||
install -m 644 %{SOURCE2} %{buildroot}%{progdir}/defaults/pref/
|
||||
# Desktop definition
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||
install -m 644 $RPM_BUILD_DIR/*.desktop \
|
||||
$RPM_BUILD_ROOT%{_datadir}/applications
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/
|
||||
install -m 644 $RPM_BUILD_DIR/*.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/
|
||||
#
|
||||
%suse_update_desktop_file seamonkey Network WebBrowser GTK
|
||||
%suse_update_desktop_file seamonkey-mail Network Email GTK
|
||||
%suse_update_desktop_file seamonkey-composer Network WebDevelopment GTK
|
||||
# excludes
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/license.txt
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/README
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/removed-files
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/run-mozilla.sh
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/seamonkey
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/precomplete
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/updater
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/updater.ini
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/update.locale
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/update-settings.ini
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/icons/updater.png
|
||||
rm -f $RPM_BUILD_ROOT%{progdir}/dictionaries/*
|
||||
# Some sites use different partitions for /usr/(lib|lib64) and /usr/share. Since you
|
||||
# can't create hardlinks across partitions, we'll do this more than once.
|
||||
%fdupes $RPM_BUILD_ROOT%{progdir}
|
||||
%fdupes $RPM_BUILD_ROOT%{_datadir}
|
||||
|
||||
#INSTALL APPDATA FILES
|
||||
mkdir -p %{buildroot}%{_datadir}/appdata
|
||||
install -m0644 -t %{buildroot}%{_datadir}/appdata/ $RPM_BUILD_DIR/*.appdata.xml
|
||||
|
||||
%files -f seamonkey.lang
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/%{progname}
|
||||
%dir %{progdir}
|
||||
%{progdir}/defaults/
|
||||
%dir %{progdir}/dictionaries/
|
||||
%dir %{progdir}/extensions/
|
||||
%dir %{progdir}/chrome/
|
||||
%{progdir}/chrome/icons
|
||||
%{progdir}/extensions/modern@themes.mozilla.org.xpi
|
||||
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
|
||||
%{progdir}/extensions/{e2fda1a4-762b-4020-b5ad-a41df1933103}.xpi
|
||||
%{progdir}/fonts/
|
||||
%{progdir}/isp/
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/blocklist.xml
|
||||
%{progdir}/chrome.manifest
|
||||
%{progdir}/dependentlibs.list
|
||||
%{progdir}/*.so
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/platform.ini
|
||||
%{progdir}/plugin-container
|
||||
%{progdir}/%{progname}.sh
|
||||
%{progdir}/seamonkey-bin
|
||||
%{progdir}/libmozgtk.so
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{_datadir}/pixmaps/*.png
|
||||
%dir %{_datadir}/appdata
|
||||
%{_datadir}/appdata/*.appdata.xml
|
||||
%{_mandir}/*/*
|
||||
|
||||
%if 0%{?with_chatzilla}
|
||||
%files irc
|
||||
%defattr(-,root,root)
|
||||
%{progdir}/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi
|
||||
%endif
|
||||
|
||||
%if 0%{?with_domi}
|
||||
%files dom-inspector
|
||||
%defattr(-,root,root)
|
||||
%{progdir}/extensions/inspector*.xpi
|
||||
%endif
|
||||
|
||||
%changelog
|
1
spellcheck.js
Normal file
1
spellcheck.js
Normal file
@ -0,0 +1 @@
|
||||
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
14
suse-default-prefs.js
Normal file
14
suse-default-prefs.js
Normal file
@ -0,0 +1,14 @@
|
||||
pref("browser.display.use_system_colors", true);
|
||||
pref("browser.startup.homepage_override.mstone", "ignore");
|
||||
pref("general.smoothScroll", true);
|
||||
pref("font.default", "sans-serif");
|
||||
pref("network.negotiate-auth.gsslib", "GSSAPI");
|
||||
pref("print.print_edge_top", 14); // 1/100 of an inch
|
||||
pref("print.print_edge_left", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_right", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_bottom", 14); // 1/100 of an inch
|
||||
pref("intl.locale.requested", "");
|
||||
// do not disable system-global or app-global extensions
|
||||
pref("extensions.autoDisableScopes", 3);
|
||||
pref("extensions.shownSelectionUI", true);
|
||||
|
Loading…
Reference in New Issue
Block a user