You are not logged in.
SeaMonkey 2.53.2 has been released last Sunday. As it does not require the rust, glibc and path name patches any more, the PKGBUILD can be simplified significantly:
pkgname=seamonkey
pkgver=2.53.2
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=('dbus-glib' 'gtk3' 'hunspell' 'libxt' 'mime-types' 'nss' 'sqlite' 'startup-notification' 'libpulse' 'icu' 'libevent')
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'python2' 'gtk2')
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'pulseaudio: Audio support')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz")
sha256sums=('d339a2968191368b3444635cf91d19b73d6499566c27e3833150d16083448a83')
install="$pkgname.install"
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a
prepare() {
cd "$pkgname-$pkgver"
cat > .mozconfig <<EOF
ac_add_options --enable-application=suite
ac_add_options --prefix=/usr
#ac_add_options --libdir=/usr/lib
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-png
ac_add_options --with-system-libevent
#ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-cairo
ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-gconf
ac_add_options --with-system-icu
# Features
ac_add_options --enable-startup-notification
#ac_add_options --enable-safe-browsing
#ac_add_options --enable-gio
#ac_add_options --disable-gstreamer
ac_add_options --enable-pulseaudio
ac_add_options --enable-calendar
ac_add_options --enable-irc
ac_add_options --enable-dominspector
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-strip
ac_add_options --enable-install-strip
#ac_add_options --disable-gnomevfs
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
#ac_add_options --disable-installer
ac_add_options --disable-webrender
ac_add_options --disable-stylo
export MOZILLA_OFFICIAL=1
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
EOF
echo -n "$_google_api_key" > google-api-key
echo -n "$_mozilla_api_key" > mozilla-api-key
cat >> .mozconfig <<EOF
ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
EOF
}
build() {
cd "$pkgname-$pkgver"
make -f client.mk build
}
package() {
cd "$pkgname-$pkgver"
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
rm -rf "$pkgdir"/usr/lib/seamonkey/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey/hyphenation"
install -Dm644 suite/branding/seamonkey/default128.png \
"$pkgdir/usr/share/pixmaps/seamonkey.png"
install -Dm644 mozilla/toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_NAME@/seamonkey/' "$pkgdir/usr/share/applications/seamonkey.desktop"
}
seamonkey.install
post_upgrade() {
if (( $(vercmp $2 ${1%-*}) < 0 )); then
echo
echo "SeaMonkey ${1%-*} makes changes to your profile that can't be reverted in case you want to go back to a previous version of SeaMonkey. Make a full backup of your profile and thoroughly read and follow the Release Notes at https://www.seamonkey-project.org/releases/seamonkey${1%-*}."
echo
fi
}
Offline
Thanks. I'd like to take another look at this now, then.
Note: you should probably not be removing python3 and python2-setuptools/python2-psutil unless seamonkey has diverged a lot from mozilla-central... especially, mozbuild is in the process of being moved to python3 and some parts of it will use that. cf. the firefox PKGBUILD.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Thank you! :-)
I built the package in a clean chroot so it does not seem that python3 and python2-setuptools/python2-psutil are necessary? Actually, SeaMonkey 2.53.2 shares code with Firefox 56-60 and those makedepends were also not part of the Firefox 60 PKGBUILD. There are, however. also some backports up to Firefox 74 included so it may be that in the future some of those makedepends will become relevant.
Let me maybe ask a question since we are already speaking about dependencies: I have included --enable-system-ffi but omitted libffi as an explicit dependence, just like, e.g., the Thunderbird PKGBUILD. Would this cause problems if there is a soname bump in libffi? Is there a guideline of which dependencies should be explicitly mentioned albeit being already satisfied? Another example is icu, which is part of depends() although being already satisfied, just like in the Thunderbird PKGBUILD.
Last edited by kifuna (2020-05-06 17:29:20)
Offline
OK I assumed it was there for a reason, but apparently the makedepends on python3 was added for seamonkey 2.15.1-1 in 2013 and I'm not sure why. I am slightly mind-boggled.
libffi rebuilds are handled using the sogrep(1) tool to find packages which link to the old soname version, regardless of their depends=() info.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Good to know, thanks for your explanation!
Last edited by kifuna (2020-05-06 17:42:12)
Offline
So this is what I have so far, applying your changes:
Index: PKGBUILD
===================================================================
--- PKGBUILD (revision 625763)
+++ PKGBUILD (working copy)
@@ -1,84 +1,55 @@
# Maintainer: Kyle Keen <keenerd@gmail.com>
pkgname=seamonkey
-pkgver=2.49.4
-pkgrel=5
+pkgver=2.53.2
+pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
-depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'gtk3' 'hunspell' 'icu'
- 'libevent' 'libpulse' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common'
+depends=('dbus-glib' 'gtk3' 'hunspell' 'icu'
+ 'libevent' 'libpulse' 'libvpx' 'libxt' 'mime-types' 'mozilla-common'
'nss' 'sqlite' 'startup-notification')
-makedepends=('autoconf2.13' 'gst-plugins-base' 'imake' 'mesa' 'python3' 'python2-setuptools'
- 'python2-psutil' 'yasm' 'unzip' 'zip')
-optdepends=('gst-plugins-base: vorbis decoding, ogg demuxing'
- 'gst-plugins-bad: aac, vp8 and opus decoding'
- 'gst-plugins-good: webm and mp4 demuxing'
- 'gst-plugins-ugly: h.264 decoding'
- 'networkmanager: Location detection via available WiFi networks')
+makedepends=('autoconf2.13' 'clang' 'gtk2' 'imake' 'llvm' 'mesa' 'python3' 'python2-setuptools'
+ 'python2-psutil' 'rust' 'yasm' 'unzip' 'zip')
+optdepends=('networkmanager: Location detection via available WiFi networks'
+ 'libnotify: Notification integration'
+ 'pulseaudio: Audio support')
url="https://www.seamonkey-project.org/"
-source=("https://archive.mozilla.org/pub/mozilla.org/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
- mozconfig
- seamonkey-2.0-lang.patch
- patch-bug1435212.xz
- gettid.patch
- no-crmf.diff)
-sha256sums=('c8a66774d0a3525698b559fa2c41397186f2de99c5733e35b8eafb0ae5ccc4ee'
- '6ff9fd323eec175eb02cfefd3136c79491c3b40be0b1f899da7c75c2f76259ca'
- 'ab19d10fbd6258aec37ab5e5efb12429814b2c24a1193284a48dd654311b4e2e'
- 'dce68858694f820a9a1fc2428038a88ea00b4835cea0778734db794fea3bb21a'
- '923154d052f041af15a2495ceb1f76f7c8619fd8bfc66a0bbedfeab2514adf0b'
- 'fb85a538044c15471c12cf561d6aa74570f8de7b054a7063ef88ee1bdfc1ccbb')
+source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
+ "mozconfig")
+sha256sums=('d339a2968191368b3444635cf91d19b73d6499566c27e3833150d16083448a83'
+ '1133e93fe2732857805f104fb38f37e25c2bd2b20666c02aea3542708a396680')
+install="$pkgname.install"
+# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
+# more information.
+_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
+
+# Mozilla API keys (see https://location.services.mozilla.com/api)
+# Note: These are for Arch Linux use ONLY. For your own distribution, please
+# get your own set of keys. Feel free to contact heftig@archlinux.org for
+# more information.
+_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a
+
prepare() {
cd "$pkgname-$pkgver"
cp ../mozconfig .mozconfig
- #patch -Np1 -i ../seamonkey-2.0-lang.patch
- # FS#48404
- #echo "ac_add_options --enable-gstreamer=1.0" >> .mozconfig
+ echo -n "$_google_api_key" > google-api-key
+ echo -n "$_mozilla_api_key" > mozilla-api-key
- # ffmpeg 4.0 patch from freebsd
- # https://github.com/freebsd/freebsd-ports/blob/master/www/seamonkey/files/patch-bug1435212
- patch -Np1 -d mozilla -i ../../patch-bug1435212
-
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1533969
- patch -Np1 -i ../gettid.patch
-
- # Don't exit with error when some libs are missing which we have in
- # system.
- sed -i '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' suite/installer/Makefile.in
-
- # configure script misdetects the preprocessor without an optimization level
- sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure
-
- # 2.26 build fix from wgnie (blfs ch 37)
- sed -i 's/$(MOZ_ZLIB_CFLAGS)/& $(MOZ_PIXMAN_CFLAGS)/' config/config.mk
-
- # work around from FS#54395
- patch -Np1 -d mozilla -i ../../no-crmf.diff
- sed -i "s/'crmf',//" mozilla/security/manager/ssl/moz.build
- sed -i 's/^.*-lcrmf/#&/' mozilla/config/external/nss/crmf/moz.build
- sed -i 's/ -lcrmf"/"/' mozilla/old-configure.in.orig
- sed -i 's/ -lcrmf"/"/' mozilla/old-configure
- sed -i 's/SDK_LIBS = crmf/SDK_LIBS = /' mozilla/config/external/nss/Makefile.in
+ cat >> .mozconfig <<EOF
+ ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
+ ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
+ ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
+EOF
}
build() {
cd "$pkgname-$pkgver"
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/seamonkey-$pkgver"
- export MOZ_MAKE_FLAGS="$MAKEFLAGS"
- unset MAKEFLAGS
- unset CPPFLAGS
-
- # GCC 6
- CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
- CXXFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
-
- # GCC 9
- CXXFLAGS+=" -Wno-format-overflow"
-
make -f client.mk build
}
@@ -87,12 +58,12 @@
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
- rm -rf "$pkgdir"/usr/lib/seamonkey-$pkgver/{dictionaries,hyphenation}
- ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey-$pkgver/dictionaries"
- ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey-$pkgver/hyphenation"
+ rm -rf "$pkgdir"/usr/lib/seamonkey/{dictionaries,hyphenation}
+ ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey/dictionaries"
+ ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey/hyphenation"
- install -Dm644 suite/branding/nightly/icons/gtk/seamonkey.png \
- "$pkgdir/usr/share/pixmaps/seamonkey.png"
+ install -Dm644 suite/branding/seamonkey/default128.png \
+ "$pkgdir/usr/share/pixmaps/seamonkey.png"
install -Dm644 mozilla/toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
"$pkgdir/usr/share/applications/seamonkey.desktop"
Index: mozconfig
===================================================================
--- mozconfig (revision 625763)
+++ mozconfig (working copy)
@@ -1,7 +1,7 @@
ac_add_options --enable-application=suite
ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
+#ac_add_options --libdir=/usr/lib
# System libraries
ac_add_options --with-system-nspr
@@ -10,8 +10,8 @@
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-png
-#ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
+ac_add_options --with-system-libevent
+#ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
@@ -19,14 +19,19 @@
ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-gconf
+ac_add_options --with-system-icu
# Features
ac_add_options --enable-startup-notification
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-gio
+#ac_add_options --enable-safe-browsing
+#ac_add_options --enable-gio
#ac_add_options --disable-gstreamer
ac_add_options --enable-pulseaudio
+ac_add_options --enable-calendar
+ac_add_options --enable-irc
+ac_add_options --enable-dominspector
+
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-strip
ac_add_options --enable-install-strip
@@ -37,4 +42,12 @@
ac_add_options --disable-tests
#ac_add_options --disable-installer
+ac_add_options --disable-webrender
+ac_add_options --disable-stylo
+
export MOZILLA_OFFICIAL=1
+export CC=clang
+export CXX=clang++
+export AR=llvm-ar
+export NM=llvm-nm
+export RANLIB=llvm-ranlib
What's the story with these added options??
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-irc
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-dominspector
Is there any particular reason to disable webrender/stylo, safe-browsing and gio?
...
On the topic of the post_upgrade scriptlet, this seems to be intended to trigger on every single upgrade (except for pkgrel rebuilds). When the post_upgrade warning was first suggested, it was for one specific upgrade. What's the reason for this change?
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Let me first thank you for having a look at this!
What's the story with these added options??
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-irc
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-dominspector
SeaMonkey comes with three bundled extensions: Chatzilla (--enable-irc), DOM Inspector (--enable-dominspector) and Lightning (--enable-calendar). I never had any issues with them and the official release also uses them. When exactly are your receiving these errors? Could it maybe be that they only occur in cases when ac_add_options --enable-application=suite is not present in .mozconfig (those options are defined in suite/moz.configure)? At least, this was the only scenario where I could reproduce these error messages.
Is there any particular reason to disable webrender/stylo, safe-browsing and gio?
Yes, building with stylo and webrender is not working yet: https://wiki.mozilla.org/SeaMonkey/Stat … 2020-05-03
Regarding safe-browsing and gio, these options are not recognised any more in SeaMonkey 2.53.1: http://www.linuxfromscratch.org/blfs/vi … onkey.html
On the topic of the post_upgrade scriptlet, this seems to be intended to trigger on every single upgrade (except for pkgrel rebuilds). When the post_upgrade warning was first suggested, it was for one specific upgrade. What's the reason for this change?
The original post_upgrade pertained to the 2.49.5 (or earlier) -> 2.53.1 update. In the 2.53.2 release notes, however, it is still written in huge bold red letters "This version makes changes to your profile that can't be reverted in case you want to go back to a previous version of SeaMonkey. You MUST absolutely do a full backup of your profile before trying SeaMonkey 2.53.2." I do not know any internal details regarding possible changes in the profile when updating from 2.53.1 to 2.53.2 but also did not want to ignore the very prominent warning in the release notes.
Offline
eschwartz wrote:What's the story with these added options??
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-irc
mozbuild.configure.options.InvalidOptionError: Unknown option: --enable-dominspectorSeaMonkey comes with three bundled extensions: Chatzilla (--enable-irc), DOM Inspector (--enable-dominspector) and Lightning (--enable-calendar). I never had any issues with them and the official release also uses them. When exactly are your receiving these errors? Could it maybe be that they only occur in cases when ac_add_options --enable-application=suite is not present in .mozconfig (those options are defined in suite/moz.configure)? At least, this was the only scenario where I could reproduce these error messages.
With one single mozconfig, I can run ./configure --help and get those errors, then make -f client.mk and it builds. That was from when I tried checking help output to introspect what options were currently available to configure.
This is probably just an inconsistency in mozbuild.
Thanks for answering all my questions. I'm currently uploading a new version of seamonkey to the [community-testing] repository.
I have not uploaded directly to community, because I don't use seamonkey and cannot verify how well it works, so I'd like to see some real-world testing of the exact binaries I upload. If the two of you could take the package out for a test run I'd appreciate it.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Wonderful, many thanks for your commitment in this matter, I really appreciate it! I am currently testing, up to now everything works perfectly fine.
May I use the opportunity to ask a question on makedepends? The four additional ones (imake, mesa, python2-setuptools, python2-psutil) somehow appear to be kind of optional (as the package also builds fine without them) and I would like to understand how I could have identified them? Is there a canonical way or does it simply require more familiarity with the internal building system of the package?
Offline
With one single mozconfig, I can run ./configure --help and get those errors, then make -f client.mk and it builds. That was from when I tried checking help output to introspect what options were currently available to configure.
This is probably just an inconsistency in mozbuild.
Thanks for answering all my questions. I'm currently uploading a new version of seamonkey to the [community-testing] repository.
I have not uploaded directly to community, because I don't use seamonkey and cannot verify how well it works, so I'd like to see some real-world testing of the exact binaries I upload. If the two of you could take the package out for a test run I'd appreciate it.
I installed this today, and it seems to be running perfectly.
Thank you eschwartz and Kifuna for bringing back a current Seamonkey to Arch!
cheers,
Hendrik-Jan
Offline
May I use the opportunity to ask a question on makedepends? The four additional ones (imake, mesa, python2-setuptools, python2-psutil) somehow appear to be kind of optional (as the package also builds fine without them) and I would like to understand how I could have identified them? Is there a canonical way or does it simply require more familiarity with the internal building system of the package?
I'm not overly familiar with the mozilla build system myself. But it has a copy of the psutil source code in mozilla/third_party/python/psutil/ and IIRC that is why the official firefox packages depend on it, because some part of the build process tries to make use of psutil and will install it from the source tree if needed.
I don't know what imake or mesa are used for, though in the case of imake you'd usually hope whatever it is is long obsolete (it's basically a collection of tools from before C compilers had the -MT $@ -MMD -MP -MF $*.d options for use in makefiles), but on the other hand, mozbuild is a collection of outdated technology, piled on top of autoconf2.13, partially but not completely replaced by a custom in-house python build system. So who even knows. Maybe heftig, the firefox maintainer, understands this better.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Good to know, many thanks for your elaborate explanation!
Offline
I've moved seamonkey from community-testing to community.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Great, many thanks again for your commitment!
Last edited by kifuna (2020-05-27 17:54:09)
Offline
Good day to all,
it is now about 2 months that the Seamonkey package is out of sync with the released one.
I know that from the version bump it doesn't seem like much, but actually, a lot of changes have happened internally in Seamonkey.
Kifuna has again made a pkgbuild for this one (he adapted the current arch one, and cleaned it up). that works.
I tried to offer it per mail to the package maintainers, but it has been a couple of weeks and nothing happend.
what can we do here?
thank you,
Hendrik-Jan
Offline
I'll make you the same offer I made last time. Post the PKGBUILD here and I'll try to take a look.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Thank you, hjheins for pushing this forward and eschwartz for again offering your help!
Here are my PKGBUILD and mozconfig. Let me briefly describe the changes compared to the current version in [community]:
- The structure of the SeaMonkey source directory has changed with 2.53.6, hence --enable-application=comm/suite instead of --enable-application=suite in mozconfig and the two path changes in package().
- The option --with-pthreads is not available anymore in SM 2.53.6: http://www.linuxfromscratch.org/blfs/vi … onkey.html
- I had to add --disable-elf-hack to avoid "./mach install" to fail. Note that both Firefox and Thunderbird are also configured like this in the official repos; the error is also mentioned in the blfs link above.
- Starting with 2.53.6, the recommended way of building SeaMonkey is "./mach build" instead of "make -f client.mk": https://www.seamonkey-project.org/dev/code-development
- I have also added three lines in package() that modify seamonkey.desktop as follows: 1) add %u (which resolves FS#69499) 2) add mail capabilities to MimeType and Categories (copied from thunderbird.desktop) -- this enables opening mailto: links with SeaMonkey.
- Dependencies: I do not think that libvpx and sqlite are necessary any more since building SeaMonkey 2.53.6 against those system libraries does not work. However, I am not an expert and hence do not mind if they remain.
- Make dependencies: I built SeaMonkey 2.53.6 in a clean chroot and did not need neither imake, mesa, python2-setuptools nor python2-psutil. But this is basically the same question that I had last time. In any case, also here I am not an expert and therefore do not mind if they remain.
- The warning in seamonkey.install does not seem necessary any more since upstream now writes "You MUST absolutely do a full backup of your profile before upgrading from a version earlier than SeaMonkey 2.53.1". Version 2.53.2 appeared in [community] in May 2020.
PKGBUILD:
pkgname=seamonkey
pkgver=2.53.6
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=('dbus-glib' 'gtk3' 'hunspell' 'libxt' 'mime-types' 'nss' 'startup-notification' 'libpulse' 'icu' 'libevent')
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'python2' 'gtk2' 'nasm')
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'pulseaudio: Audio support')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
mozconfig)
sha256sums=('2daf0ea96df521449b065d0116336a9a8dfac17a5aed784cd16abd635c234e11'
'01f7f985a006cd98a710a3de6b705cbe776a4ce448adb649bd6b90ae24ba33f8')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a
prepare() {
cd "$pkgname-$pkgver"
cp ../mozconfig .mozconfig
echo -n "$_google_api_key" > google-api-key
echo -n "$_mozilla_api_key" > mozilla-api-key
cat >> .mozconfig <<EOF
ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
EOF
}
build() {
cd "$pkgname-$pkgver"
./mach build
}
package() {
cd "$pkgname-$pkgver"
DESTDIR=$pkgdir INSTALL_SDK= ./mach install
rm -rf "$pkgdir"/usr/lib/seamonkey/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey/hyphenation"
install -Dm644 comm/suite/branding/seamonkey/default128.png \
"$pkgdir/usr/share/pixmaps/seamonkey.png"
install -Dm644 toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_NAME@/seamonkey/' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's|Exec=seamonkey|Exec=/usr/lib/seamonkey/seamonkey %u|' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^MimeType/s/$/message\/rfc822;x-scheme-handler\/mailto;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^Categories/s/$/Email;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
}
mozconfig:
ac_add_options --enable-application=comm/suite
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
#ac_add_options --with-system-png
ac_add_options --with-system-libevent
#ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
#ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-cairo
#ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-gconf
ac_add_options --with-system-icu
# Features
ac_add_options --enable-startup-notification
#ac_add_options --enable-safe-browsing
#ac_add_options --enable-gio
#ac_add_options --disable-gstreamer
ac_add_options --enable-pulseaudio
ac_add_options --disable-elf-hack
ac_add_options --enable-calendar
ac_add_options --enable-irc
ac_add_options --enable-dominspector
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-strip
ac_add_options --enable-install-strip
#ac_add_options --disable-gnomevfs
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
#ac_add_options --disable-installer
ac_add_options --disable-webrender
ac_add_options --disable-stylo
export MOZILLA_OFFICIAL=1
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
Last edited by kifuna (2021-03-02 19:07:21)
Offline
Thank you, hjheins for pushing this forward and eschwartz for again offering your help!
No problem.
- Dependencies: I do not think that libvpx and sqlite are necessary any more since building SeaMonkey 2.53.6 against those system libraries does not work. However, I am not an expert and hence do not mind if they remain.
This is an easy answer:
sqlite is no longer supported in firefox 75.0+ due to https://bugzilla.mozilla.org/show_bug.cgi?id=1611386 and the configure option got removed. The mozconfig commented it out since 2.53.5-1 and the dependency should be dropped. Simple to test: try uncommenting the line in mozconfig, configure should error out.
libvpx got disabled by me the first time I helped build it, most likely since the system libvpx got updated and there were changes that mozilla-central was not compatible with. It would be best to re-enable it, as Thunderbird currently does, assuming that the current seamonkey release is branched off at a version with the fix. Needs investigation.
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Thank you kifuna and eschwartz!
Last edited by hjheins (2021-03-02 21:19:25)
Offline
libvpx got disabled by me the first time I helped build it, most likely since the system libvpx got updated and there were changes that mozilla-central was not compatible with. It would be best to re-enable it, as Thunderbird currently does, assuming that the current seamonkey release is branched off at a version with the fix. Needs investigation.
I just tried to compile SeaMonkey 2.53.6 with --with-system-libvpx, the building terminates with errors.
Offline
eschwartz wrote:libvpx got disabled by me the first time I helped build it, most likely since the system libvpx got updated and there were changes that mozilla-central was not compatible with. It would be best to re-enable it, as Thunderbird currently does, assuming that the current seamonkey release is branched off at a version with the fix. Needs investigation.
I just tried to compile SeaMonkey 2.53.6 with --with-system-libvpx, the building terminates with errors.
Hmm, then maybe we shoulc compare notes,
With my build --with-system-libvpx works. :-)
pkgname=seamonkey
pkgver=2.53.6
_pkgver=2.53.6
_minor=
_minorsuffix=
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=(dbus-glib gtk3 hunspell libevent libnotify libvpx libxt mime-types nss sqlite startup-notification libpulse icu)
makedepends=(unzip zip autoconf2.13 yasm gst-plugins-base llvm nasm nodejs python2 libnotify clang rust llvm ccache gtk2 jack)
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/$pkgname/tmp/releases/$pkgver/source/$pkgname-$pkgver.source.tar.xz")
#source=("https://archive.mozilla.org/pub/seamonkey/releases/2.53.5/source/$pkgname-$pkgver.source.tar.xz"
#"$pkgname-2.53-sysctl.patch" "gitignore")
sha256sums=('2daf0ea96df521449b065d0116336a9a8dfac17a5aed784cd16abd635c234e11')
#'08a6565c0425be09a0a958a077f65047fea144d794c2ab7ed8aa46ad64a93675'
#'fe82c7da551079d832cf74200b0b359b4df9828cb4a0416fa7384f07a2ae6a13'
install="$pkgname.install"
validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release@mozilla.com>
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a
prepare() {
cd "$pkgname-$pkgver"
echo -n "$_google_api_key" > google-api-key
echo -n "$_mozilla_api_key" > mozilla-api-key
cat > .mozconfig <<EOF
ac_add_options --enable-application=comm/suite
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-optimize="-O2"
ac_add_options --with-ccache=/usr/bin/ccache
#ac_add_options --enable-rust-simd
#export CC='clang --target=x86_64-unknown-linux-gnu'
#export CCX='clang++ --target=x86_64-unknown-linux-gnu'
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
# Branding
ac_add_options --enable-official-branding
ac_add_options --with-distribution-id=org.archlinux
#ac_add_options --with-unsigned-addon-scopes=app,system
export MOZILLA_OFFICIAL=1
export MOZ_APP_REMOTINGNAME=${pkgname//-/}
export MOZ_TELEMETRY_REPORTING=1
export MOZ_REQUIRE_SIGNING=1
mk_add_options MOZ_MAKE_FLAGS="-s -j3"
# Keys
ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
# ac_add_options --with-system-png
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
# ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
ac_add_options --with-system-libevent
#ac_add_options --enable-system-cairo
# ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --with-system-icu
ac_add_options --disable-webrtc
# Features
ac_add_options --enable-startup-notification
ac_add_options --enable-jack
ac_add_options --enable-alsa
ac_add_options --enable-irc
ac_add_options --enable-calendar
ac_add_options --enable-dominspector
ac_add_options --enable-js-shell
ac_add_options --enable-elf-hack
ac_add_options --enable-strip
ac_add_options --enable-install-strip
ac_add_options --disable-gconf
ac_add_options --disable-updater
ac_add_options --disable-crashreporter
ac_add_options --disable-tests
EOF
}
build() {
# cp "gitignore" "$pkgname-$pkgver/mozilla/third_party/rust/packed_simd/perf-guide/.gitignore"
cd "$pkgname-$pkgver"
# patch --strip=1 --input="../$pkgname-2.53-sysctl.patch"
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
make -f client.mk build > ../buildlog.txt 2>&1
}
package() {
cd "$pkgname-$pkgver"
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
local vendorjs="$pkgdir/usr/lib/$pkgname/defaults/pref/vendor.js"
install -Dvm644 /dev/stdin "$vendorjs" <<END
// Use LANG environment variable to choose locale
pref("intl.locale.requested", "");
// Use system-provided dictionaries
pref("spellchecker.dictionary_path", "/usr/share/hunspell");
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
// Don't disable extensions in the application directory
pref("extensions.autoDisableScopes", 11);
END
local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
install -Dvm644 /dev/stdin "$distini" <<END
[Global]
id=archlinux
version=1.0
about=Mozilla $pkgname for Arch Linux
[Preferences]
app.distributor=archlinux
app.distributor.channel=$pkgname
app.partner.archlinux=archlinux
END
rm -rf "$pkgdir"/usr/lib/seamonkey/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey/hyphenation"
install -Dm644 comm/suite/branding/$pkgname/default128.png \
"$pkgdir/usr/share/pixmaps/$pkgname.png"
install -Dm644 toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
"$pkgdir/usr/share/applications/$pkgname.desktop"
sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
"$pkgdir/usr/share/applications/$pkgname.desktop"
sed -i 's/@MOZ_APP_NAME@/seamonkey/' "$pkgdir/usr/share/applications/$pkgname.desktop"
sed -i 's|Exec=seamonkey|Exec=/usr/lib/seamonkey/seamonkey %u|' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^MimeType/s/$/message\/rfc822;x-scheme-handler\/mailto;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^Categories/s/$/Email;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
# Install a wrapper to avoid confusion about binary path
install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
#!/bin/sh
exec /usr/lib/$pkgname/$pkgname "\$@"
END
# Use system certificates
local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so"
if [[ -e $nssckbi ]]; then
ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
fi
if [[ -f "$startdir/.crash-stats-api.token" ]]; then
find . -name '*crashreporter-symbols-full.zip' -exec \
"$startdir/upload-symbol-archive" "$startdir/.crash-stats-api.token" {} +
else
find . -name '*crashreporter-symbols-full.zip' -exec \
cp -fvt "$startdir" {} +
fi
}
Offline
I have tested this in a clean chroot: Building with your PKGBUILD with --with-system-libvpx works because you set --disable-webrtc. Commenting out --disable-webrtc and starting the build yields the same error message as with my PKGBUILD.
BTW: Also with your PKGBUILD the install step in package() fails on my machine due to the elf-hack error that I described in my previous post (according to http://www.linuxfromscratch.org/blfs/vi … onkey.html this error may indeed be machine-dependent).
Offline
I have tested this in a clean chroot: Building with your PKGBUILD with --with-system-libvpx works because you set --disable-webrtc. Commenting out --disable-webrtc and starting the build yields the same error message as with my PKGBUILD.
BTW: Also with your PKGBUILD the install step in package() fails on my machine due to the elf-hack error that I described in my previous post (according to http://www.linuxfromscratch.org/blfs/vi … onkey.html this error may indeed be machine-dependent).
Ooof you are right of course. That was the reason I set --disable-webrtc.
good catch, thank you!
As for the elf-hack error: I guess I just got lucky that my machine is not affected. :-)
Offline
elf-hack error.
Replacing
--enable-elf-hack
with
--disable-elf-hack
should do the job.
Offline
SeaMonkey 2.53.7 was released on Tuesday. It's a simple version bump from 2.53.6:
PKGBUILD:
pkgname=seamonkey
pkgver=2.53.7
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=('dbus-glib' 'gtk3' 'hunspell' 'libxt' 'mime-types' 'nss' 'startup-notification' 'libpulse' 'icu' 'libevent')
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'python2' 'gtk2' 'nasm')
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'pulseaudio: Audio support')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
mozconfig)
sha256sums=('1b2f1ab8a4dd06ac90d80a5f10354b0619d433b18da23529c480445f34df04ed'
'01f7f985a006cd98a710a3de6b705cbe776a4ce448adb649bd6b90ae24ba33f8')
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=e05d56db0a694edc8b5aaebda3f2db6a
prepare() {
cd "$pkgname-$pkgver"
cp ../mozconfig .mozconfig
echo -n "$_google_api_key" > google-api-key
echo -n "$_mozilla_api_key" > mozilla-api-key
cat >> .mozconfig <<EOF
ac_add_options --with-google-location-service-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-google-safebrowsing-api-keyfile=${PWD@Q}/google-api-key
ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key
EOF
}
build() {
cd "$pkgname-$pkgver"
./mach build
}
package() {
cd "$pkgname-$pkgver"
DESTDIR=$pkgdir INSTALL_SDK= ./mach install
rm -rf "$pkgdir"/usr/lib/seamonkey/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/seamonkey/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/seamonkey/hyphenation"
install -Dm644 comm/suite/branding/seamonkey/default128.png \
"$pkgdir/usr/share/pixmaps/seamonkey.png"
install -Dm644 toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
"$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's/@MOZ_APP_NAME@/seamonkey/' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i 's|Exec=seamonkey|Exec=/usr/lib/seamonkey/seamonkey %u|' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^MimeType/s/$/message\/rfc822;x-scheme-handler\/mailto;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
sed -i '/^Categories/s/$/Email;/' "$pkgdir/usr/share/applications/seamonkey.desktop"
}
mozconfig:
ac_add_options --enable-application=comm/suite
ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
# System libraries
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
#ac_add_options --with-system-png
ac_add_options --with-system-libevent
#ac_add_options --with-system-libvpx
ac_add_options --enable-system-hunspell
#ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
#ac_add_options --enable-system-cairo
#ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-gconf
ac_add_options --with-system-icu
# Features
ac_add_options --enable-startup-notification
#ac_add_options --enable-safe-browsing
#ac_add_options --enable-gio
#ac_add_options --disable-gstreamer
ac_add_options --enable-pulseaudio
ac_add_options --disable-elf-hack
ac_add_options --enable-calendar
ac_add_options --enable-irc
ac_add_options --enable-dominspector
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-strip
ac_add_options --enable-install-strip
#ac_add_options --disable-gnomevfs
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
#ac_add_options --disable-installer
ac_add_options --disable-webrender
ac_add_options --disable-stylo
export MOZILLA_OFFICIAL=1
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
Offline