You are not logged in.

#26 2020-05-06 16:12:16

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

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

#27 2020-05-06 16:35:36

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

Thanks. I'd like to take another look at this now, then. smile

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

#28 2020-05-06 17:14:50

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

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

#29 2020-05-06 17:28:06

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

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. big_smile

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

#30 2020-05-06 17:40:57

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Good to know, thanks for your explanation! smile

Last edited by kifuna (2020-05-06 17:42:12)

Offline

#31 2020-05-08 20:12:26

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

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

#32 2020-05-09 00:14:32

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Let me first thank you for having a look at this! smile

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-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

#33 2020-05-15 18:21:43

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:
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-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.

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

#34 2020-05-16 16:00:14

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Wonderful, many thanks for your commitment in this matter, I really appreciate it! smile 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

#35 2020-05-16 20:43:18

hjheins
Member
Registered: 2020-03-08
Posts: 13

Re: Offering a package: seamonkey 2.53.1

eschwartz wrote:

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

#36 2020-05-17 03:41:19

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:

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

#37 2020-05-17 14:47:39

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Good to know, many thanks for your elaborate explanation! smile

Offline

#38 2020-05-26 02:07:48

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

I've moved seamonkey from community-testing to community.


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

#39 2020-05-27 17:53:59

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Great, many thanks again for your commitment! smile

Last edited by kifuna (2020-05-27 17:54:09)

Offline

#40 2021-02-27 08:55:44

hjheins
Member
Registered: 2020-03-08
Posts: 13

Re: Offering a package: seamonkey 2.53.1

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

#41 2021-03-02 03:55:45

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

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

#42 2021-03-02 19:04:16

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

Thank you, hjheins for pushing this forward and eschwartz for again offering your help! smile

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. wink 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

#43 2021-03-02 19:24:18

eschwartz
Trusted User/Bug Wrangler
Registered: 2014-08-08
Posts: 4,002

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:

Thank you, hjheins for pushing this forward and eschwartz for again offering your help! smile

No problem. smile

kifuna wrote:

- 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

#44 2021-03-02 21:18:56

hjheins
Member
Registered: 2020-03-08
Posts: 13

Re: Offering a package: seamonkey 2.53.1

Thank you kifuna and eschwartz!

Last edited by hjheins (2021-03-02 21:19:25)

Offline

#45 2021-03-03 17:54:52

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

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.

Offline

#46 2021-03-04 19:40:02

hjheins
Member
Registered: 2020-03-08
Posts: 13

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:
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

#47 2021-03-05 19:24:18

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

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

#48 2021-03-07 19:48:53

hjheins
Member
Registered: 2020-03-08
Posts: 13

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:

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

#49 2021-03-24 22:43:18

jonathon
Member
Registered: 2016-09-19
Posts: 90

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:

elf-hack error.

Replacing

--enable-elf-hack

with

--disable-elf-hack

should do the job.

Offline

#50 2021-04-02 15:05:22

kifuna
Member
Registered: 2015-01-29
Posts: 39

Re: Offering a package: seamonkey 2.53.1

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

Board footer

Powered by FluxBB