You are not logged in.

#1 2020-03-08 20:49:31

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

Offering a package: seamonkey 2.53.1

Hi,
to keep it short: i have no interest in becoming a maintainer, or be deep into how AUR works.
However: I had an itch: Seamonkey
This package is already not maintained for a while.
To scratch that itch, I build myself the latest version on Arch.
Is anybody interested in the PKGBUILD file for him/herself or maintaining it in the repo's?

cheers.

Hendrik-Jan

Offline

#2 2020-03-08 22:46:31

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 30,330
Website

Re: Offering a package: seamonkey 2.53.1

If you are going to continue using Seamonkey and updating the PKGBUILD for your own use as / whenever needed then it costs you nothing to submit it to the AUR (maybe a few minutes).  I can't understand why you'd be hesitant to do so.

EDIT: nevermind, see below.  I didn't realize this existed in the repos.

Last edited by Trilby (2020-03-08 22:56:12)


"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman

Offline

#3 2020-03-08 22:51:58

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: Offering a package: seamonkey 2.53.1

Trilby wrote:

If you are going to continue using Seamonkey and updating the PKGBUILD for your own use as / whenever needed then it costs you nothing to submit it to the AUR (maybe a few minutes).  I can't understand why you'd be hesitant to do so.

AUR Rules of Submission wrote:

The submitted PKGBUILDs must not build applications already in any of the official binary repositories under any circumstances. Check the official package database for the package. If any version of it exists, do not submit the package. If the official package is out-of-date, flag it as such. If the official package is broken or is lacking a feature, then please file a bug report.


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#4 2020-03-09 08:10:01

schard
Forum Moderator
From: Hannover
Registered: 2016-05-06
Posts: 2,112
Website

Re: Offering a package: seamonkey 2.53.1

Yeah. As strange as it sounds. According to Arch's CoC, if a package is out of date, you are encouraged to build yourself an up-to-date version of it using asp. But you are forbidden to share that update with other users via AUR.

Last edited by schard (2020-03-09 08:10:16)


Inofficial first vice president of the Rust Evangelism Strike Force

Offline

#5 2020-03-09 09:27:29

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

Re: Offering a package: seamonkey 2.53.1

Hi,
the package has been out of date for quite some time already.
And also the last 2 builds came from its maintainer, but in both instances I had sent him my PKGBUILD file.
Since September 2019 (I also sent a PKGBUILD then), there was no more response and no more package.
Hence my request in this forum.

I know Seamonkey is not the most popular package ever, but I understood it still has some people using it. And to let everybody invent their own wheel also seemed somewhat lame.

Hendrik-Jan

Offline

#6 2020-03-09 23:12:53

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

schard wrote:

Yeah. As strange as it sounds. According to Arch's CoC, if a package is out of date, you are encouraged to build yourself an up-to-date version of it using asp. But you are forbidden to share that update with other users via AUR.

Why is this strange? If users want to install "foo", shouldn't pacman -S foo do precisely this? What would you name a package that is "foo, but updated in a timely fashion"?

Since the AUR does not offer packages, merely PKGBUILDs, what is the shareability advantage of publishing an AUR package that merely bumps the pkgver, something anyone can do directly from asp?

@hjheins

What changes to the currently packaged version are there? Is it a simple version bump?


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

Offline

#7 2020-03-09 23:32:35

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 30,330
Website

Re: Offering a package: seamonkey 2.53.1

eschwartz wrote:

... what is the shareability advantage of publishing an AUR package that merely bumps the pkgver, something anyone can do directly from asp?

I would certainly hope there was a lot more to it than this.  I'm baffled by people who give package maintainers a hard time when a package is out of date for days or weeks, but if all it took was a bump of the version number to have this up and running there'd not be much excuse for it to sit out of date in the repos for 6 months.

If substantial work is needed to get the updated version ready, then sitting there for that long would be more defensible, but then too there'd be more value in sharing the new PKGBUILD - and if it really is up to snuff, the maintainer should be able to update the package in [community].


"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman

Offline

#8 2020-03-09 23:37:56

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

Yup -- hence my curiosity re: what changes are needed.

FWIW, the seamonkey maintainer is not our most active maintainer (life happens, and stuff). It's regrettable to have a package out of date for so long, but as a whole we try to avoid such situations. And, in the right here and now, I could offer to sponsor a non-maintainer update (at least into community-testing) if someone tells me what is needed. wink Hence, there is a very real reason to answer my question. big_smile big_smile


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

Offline

#9 2020-03-10 10:05:15

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

Re: Offering a package: seamonkey 2.53.1

eschwartz wrote:

What changes to the currently packaged version are there? Is it a simple version bump?

Hi eschwartz,

unfortunately it is not just a version bump.
There are a couple of new patches and a forced dependency on Rust.
Can I post the PKGBUILD somewhere?

As mentioned before: I did contact the Maintainer, and not just for this last iteration. I also worked with him before. I do get that life can actually can make it difficult/impossible to work on things like packages. I am definitely also not banging anyone for this, but simply asking how I can get this new build to other people out there.


Hendrik-Jan

Last edited by hjheins (2020-03-10 10:11:32)

Offline

#10 2020-03-10 10:18:22

schard
Forum Moderator
From: Hannover
Registered: 2016-05-06
Posts: 2,112
Website

Re: Offering a package: seamonkey 2.53.1

eschwartz wrote:
schard wrote:

Yeah. As strange as it sounds. According to Arch's CoC, if a package is out of date, you are encouraged to build yourself an up-to-date version of it using asp. But you are forbidden to share that update with other users via AUR.

Why is this strange? If users want to install "foo", shouldn't pacman -S foo do precisely this? What would you name a package that is "foo, but updated in a timely fashion"?

I'd just modify the PKGBUILD and keep the original name and do a pacman -U <pkg>.
If it is, as @Trilby suggested just a version bump, this should be done in a few minutes.
My point was not, that the Arch community forbids users to share updated packages, but that is does not provide a platform therefor.
Being a software developer myself, I fully understand that the devs sometimes cannot keep up with their (voluntary) maintenance of packages.
As a user I can of course quickly update the version number and rebuild - and so can any other user.
But if a necessary change goes beyond a simple version update, which I could fix in no time but may be complicated to do for an unexperienced user, I have no officialy supported means of providing them with the updated package, that the TU/dev currently has no time to update.
And that's the problem. Not for me, but for the others.

@hjheins
If you have an updated, working PKGBUILD, you can send it to the package maintainer in the hope that they will review it and update the package accordingly in time.
If you want to share it right now with other users, so that they can use the updated version, your only option is to post in on your blog and hope that somebody will find it there.
You are not allowed to submit it to the AUR, nor is there any other offical platform to share it. Which is excatly my critique.

Last edited by schard (2020-03-10 10:34:24)


Inofficial first vice president of the Rust Evangelism Strike Force

Offline

#11 2020-03-10 11:06:32

xerxes_
Member
Registered: 2018-04-29
Posts: 788

Re: Offering a package: seamonkey 2.53.1

Maybe he could post this PKGBUILD here in [ code ] tags ?

Offline

#12 2020-03-10 14:27:52

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

Re: Offering a package: seamonkey 2.53.1

Would this work?
What you download is an archive containing the PKGBUILD file, but also the patches you will need.
It downloads the source by itself.
Seamonkey 2.53.1 PKGBUILD

Hendrik-Jan

Offline

#13 2020-03-10 16:09:18

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

schard wrote:

@hjheins
If you have an updated, working PKGBUILD, you can send it to the package maintainer in the hope that they will review it and update the package accordingly in time.
If you want to share it right now with other users, so that they can use the updated version, your only option is to post in on your blog and hope that somebody will find it there.
You are not allowed to submit it to the AUR, nor is there any other offical platform to share it. Which is excatly my critique.

What is your critique? Did you really just claim that it's forbidden to post it to the forum in this thread right here, and that "you must put it in your blog"?

Why are you trying to speak on behalf of Arch Linux™? As a project representative, I assure you it's fine to use this forum platform for this precise purpose. The other official platform operated and maintained by Arch Linux™as a suitable place for sharing updated PKGBUILDs that perform "more than just a pkgver bump" updates, is the arch-general mailing list.

This is not the first time either of those platforms have been used for exactly this purpose.

@hjheins

Thanks.

# Maintainer: HJ Heins <hjheins@gmail.com>
# Contributor: Kyle Keen <keenerd@gmail.com>


# Before you build!!!!
# Requires rust 1.36.0
# Easiest is with rustup:  install it, do: rustup toolchain 1.36.0 , rustup default 1.36.0
# you are now set to build this package...

pkgname=seamonkey
pkgver=2.53.1
pkgrel=2
pkgdesc="SeaMonkey internet suite"
arch=(x86_64)
license=(MPL GPL LGPL)
depends=('alsa-lib'  'dbus-glib'  'desktop-file-utils'  'gtk3' 'hunspell'  'libevent'  'libnotify'  'libvpx'  'libxt' 'mime-types'  'mozilla-common'  'nss'  'sqlite'  'startup-notification' 'libpulse' 'icu' 'clang' 'llvm')
makedepends=(unzip zip pkg-config python2-setuptools yasm inetutils mesa autoconf2.13 imake python gst-plugins-base llvm nasm cbindgen nodejs python2-psutil libnotify rustup) 
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')
options=(!emptydirs !makeflags !strip)
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/$pkgname-$pkgver.source.tar.xz"
#        mozconfig
#        seamonkey-2.0-lang.patch
#        patch-bug1435212.xz
#	no-crmf.diff)
)
sha256sums=('b17c41bbb21c45989f430ffe9bc92397560ba75c20266c5d0bdede6a365b1c6b'
 #           'db85ee94a3b78e941bf6d223636d9476db9edb2b32a3d04963c667b7e1eca8ee'
 #           'ab19d10fbd6258aec37ab5e5efb12429814b2c24a1193284a48dd654311b4e2e'
 #           'dce68858694f820a9a1fc2428038a88ea00b4835cea0778734db794fea3bb21a'
 #           'fb85a538044c15471c12cf561d6aa74570f8de7b054a7063ef88ee1bdfc1ccbb'
 )
 
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() {

  rustup toolchain 1.36.0
  rustup default 1.36.0

  alias python='/usr/bin/python2.7'
  mkdir mozbuild
  cd "$pkgname-$pkgver"

  # 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
  
  #remove_unused_variables
  #https://bugzilla.mozilla.org/show_bug.cgi?id=1427455
  patch -Np1 -i ../../remove_unused_variables.diff
  
  #base_app_path
  #https://bugzilla.mozilla.org/show_bug.cgi?id=445128
  patch -Np1 -i ../../base_app_path.diff

  #libvpx>=1.80 webrtc failure
  #https://bug1612722.bmoattachments.org/attachment.cgi?id=9130052
  patch -Np1 -i ../../libvpx_greater_1.80_issue.diff
 
  # 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

  echo -n "$_google_api_key" >google-api-key
  echo -n "$_mozilla_api_key" >mozilla-api-key
  
  cat >../mozconfig <<EOF  
ac_add_options --enable-application=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 -j4"

# 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-png
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 --enable-default-toolkit=cairo-gtk3
#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() {
  cd $pkgname-$pkgver

  #export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/seamonkey-$pkgver"
  #export MOZ_MAKE_FLAGS="$MAKEFLAGS"
  #unset MAKEFLAGS
  #unset CPPFLAGS
  export MOZ_NOSPAM=1
  export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
# Work around https://github.com/rust-lang/cargo/issues/7147
  export CARGO_HOME="$srcdir/mozilla/.cargo"
  
  # LTO needs more open files
  ulimit -n 4096

  # -fno-plt with cross-LTO causes obscure LLVM errors
  # LLVM ERROR: Function Import: link error
  #CFLAGS="${CFLAGS/-fno-plt/}"
  #CXXFLAGS="${CXXFLAGS/-fno-plt/}"

  #cleanup functions that do not work
  sed -i -e '/pid_t gettid/,+3 s@^@//@' mozilla/tools/profiler/core/platform.h
  
  echo "Building optimized browser..."
  cat >.mozconfig ../mozconfig - <<END
END

    make -l1 -f client.mk configure

    make -f client.mk build

}

package() {
  cd "$pkgname-$pkgver"
  
  make -f client.mk install DESTDIR="$pkgdir"

  local vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/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

  install -Dm644 suite/branding/$pkgname/default64.png \
                "$pkgdir/usr/share/pixmaps/$pkgname.png"

  install -Dm644 mozilla/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@/$pkgname/' "$pkgdir/usr/share/applications/$pkgname.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
}

So some things I'd note... we don't use rustup in Arch packaging, there is a "rust" package (what is "Requires rust 1.36.0" and does that actually mean "at least rust 1.36.0, but 1.41.1 will work too"?), and I very much doubt that clang and llvm are dependencies... makedepends, probably.

Also the extra source files need to go in the source=() array and there is a bunch of commented stuff that should really just be dropped, I suppose...

You have some sed stuff that I cannot see working as single-quoted strings containing '$pkgname'?

The "Building optimized browser" stuff seems like it's copied from recent versions of the firefox PKGBUILD, but it doesn't actually do that part.

...

Anyway, no promises but I may be able to find time to integrate these changes and produce test packages if Kyle lacks the time.

Last edited by eschwartz (2020-03-10 16:16:54)


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

Offline

#14 2020-03-10 17:15:23

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

Re: Offering a package: seamonkey 2.53.1

@eschwartz,

unfortunately rust 1.36.0 is a must. No higher or lower version will work.
This is why I used rustup. while otherwise I would also have been packaging rust 1.36.0
The other stuff: yes, I still have some cleanup to do.
I started with the seamonkye PKGBUILD, got some inspiration from firefox, and mixed it all up so to say.
I will post a cleaner version for 2.53.2, which apparently will come in a couple of weeks.

Hendrik-Jan

Offline

#15 2020-03-10 17:26:00

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

Oof, exact pinned versions of rust are a pretty annoying issue. Is there a bug report for this, or a patch that can make it work on newer rust versions? The mozilla base code is supposed to work with the current rust, so in principle it should be possible to make it work for seamonkey too, though that may depend on where they last branched mozilla-central?

Last edited by eschwartz (2020-03-10 17:28:21)


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

Offline

#16 2020-03-10 18:09:01

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

Re: Offering a package: seamonkey 2.53.1

unfortunately there is not.
This is why i chose this route. However "unpretty", it was better and easier to manage than the alternative.
As mentioned: Seamonkey 2.53.2 will work with rust 1.41.0 which should make things a bit easier.

Last edited by hjheins (2020-03-11 06:53:53)

Offline

#17 2020-03-10 18:18:12

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

Yeah, that would help a lot.


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

Offline

#18 2020-03-10 22:36:53

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

Re: Offering a package: seamonkey 2.53.1

Many thanks for your initiative, Hendrik-Jan! I managed to build SeaMonkey 2.53.1 in a clean chroot with rust 1.41 using the PKGBUILD and mozconfig below. Both files are based on their counterparts from the seamonkey-2.49.4 package and Hendrik-Jan's version posted earlier today. I discussed privately with him and he suggests to move on with them for the moment. Any feedback is of course more than welcome!

What would maybe also be good is if we could notify the user to back up the profile and give a link to the release notes during the installation (this is what the developers strongly recommend in the release notes on https://www.seamonkey-project.org/).

pkgname=seamonkey
pkgver=2.53.1
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=('dbus-glib' 'gtk3' 'mozilla-common' 'hunspell' 'libxt' 'mime-types' 'nss' 'sqlite' 'startup-notification' 'libpulse' 'icu')
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'git' 'python2' 'gtk2')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
        mozconfig
	"rust140-nsstring.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128681"
	"rust140-url-P1-pre.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128685"
	"rust140-url-P2-1.6.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128686"
	"rust140-url-P3-1.7.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128689"
	"rust140-url-P4-pre172.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128690"
	"rust140-url-P5-1.7.2.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128692"
	"rust140-url-P6-post.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128693"
	"rust141-encoding_rs.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128694"
	"pathname-1-1427455.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/381d4dee00fa3627f7f03cc99d7f421cbf329e3a"
	"pathname-2-445128.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/2a4cd620f89b34eaa0ee74638d03b88342cb995e"
       )
sha256sums=('0cfa348eff8e71596780fa2f97092f132859bc03de04b2313eb9d74fcb24b99a'
            'be7e819bc54fb9811d57ecb0096b31a408db7de4adbd66262f5efe5acc02a01d'
            '6c5e705228647c44fb348e06ed7fa475f212b2c5ee9602410c2071f11e8855a9'
            'b822bc6977648803f73aad9af7b124c3380611667cfec74bc4b641207c9d619f'
            '8e097387ad6f137f0d9080f87ffc433efde5b4fa037d2845e4c54ec7cc6cfbcc'
            'd3080710ae115925e880d5db758e5c6a7a229a62d3a6035f323d00fcd36dcb94'
            '63c211a827bece5409480f19e1bd73f8a35a9e4fb6ee94dd40923bea3fe25d06'
            'ef538ab7ffb370f6d0cb9c67e7bb33484cdcdfe9a08c2661a4fad8d0d391a200'
            '990bd9a60b78ee1134733d47e49eb1a75dd586b222ea537868784044b5a5ac31'
            '9f9c11ef22bea5031bad37400c585c1a7db488fc448c47544116acfba66184c7'
            'cfecc41c36a476f9a21f0e8bf0a4046ed70271a801ad57514aed1991a09f0573'
            '527099f80eb4da96f3a9365040b820a251779ceb01f0aceef8405b03d94920f4')

# 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
  
  # http://www.linuxfromscratch.org/blfs/view/svn/xsoft/seamonkey.html
  # Remove a function definition which is incompatible with the one in glibc-2.30:
  sed -i -e '/pid_t gettid/,+3 s@^@//@' mozilla/tools/profiler/core/platform.h
  
  # rust-1.41
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782
  cd mozilla
  patch -p1 -i ../../rust140-nsstring.patch
  patch -p1 -i ../../rust140-url-P1-pre.patch
  patch -p1 -i ../../rust140-url-P2-1.6.0.patch
  #patch -p1 -i ../../rust140-url-P3-1.7.0.patch
  git apply -p1 ../../rust140-url-P3-1.7.0.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782#c6
  patch -p1 -i ../../rust140-url-P4-pre172.patch
  patch -p1 -i ../../rust140-url-P5-1.7.2.patch
  patch -p1 -i ../../rust140-url-P6-post.patch
  patch -p1 -i ../../rust141-encoding_rs.patch
  
  # remove version number from path name
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1427455
  # https://bugzilla.mozilla.org/show_bug.cgi?id=445128
  patch -p1 -i ../../pathname-1-1427455.patch
  patch -p1 -i ../../pathname-2-445128.patch
}

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

#19 2020-03-10 22:43:24

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

kifuna wrote:

Many thanks for your initiative, Hendrik-Jan! I managed to build SeaMonkey 2.53.1 in a clean chroot with rust 1.41 using the PKGBUILD and mozconfig below. Both files are based on their counterparts from the seamonkey-2.49.4 package and Hendrik-Jan's version posted earlier today. I discussed privately with him and he suggests to move on with them for the moment. Any feedback is of course more than welcome!

Excellent detective work, much appreciated!

kifuna wrote:

What would maybe also be good is if we could notify the user to back up the profile and give a link to the release notes during the installation (this is what the developers strongly recommend in the release notes on https://www.seamonkey-project.org/).

https://wiki.archlinux.org/index.php/PKGBUILD#install can print a message to the person running pacman, using vercmp to make sure it is only printed during this particular upgrade.

Various packages in the official repos contain example code for printing such one-time messages, though you may need to grep through the svntogit repository to find one -- I don't remember any specific packages off the top of my head.


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

Offline

#20 2020-03-11 18:22:32

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

Re: Offering a package: seamonkey 2.53.1

Hi Eli,

I think this should work (inspired by https://bbs.archlinux.org/viewtopic.php … 8#p1535928):

post_upgrade() {
    if (( $(vercmp $2 2.53.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/seamonkey2.53.1/."
       echo
    fi
}

The text is copied from the release notes.

One would just need to save this as seamonkey.install and add

install="$pkgname.install"

to the PKGBUILD.

Last edited by kifuna (2020-03-11 18:29:14)

Offline

#21 2020-03-12 06:57:16

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

Re: Offering a package: seamonkey 2.53.1

Hi kifuna,

allow me to simplify your PKGBUILD please. :-)
I put the mozconfig into it, to make it more portable:

PKGBUILD

pkgname=seamonkey
pkgver=2.53.1
pkgrel=1
pkgdesc="SeaMonkey internet suite"
arch=('x86_64')
license=('MPL')
depends=('dbus-glib' 'gtk3' 'mozilla-common' 'hunspell' 'libxt' 'mime-types' 'nss' 'sqlite' 'startup-notification' 'libpulse' 'icu')
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'git' 'python2' 'gtk2')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
	"rust140-nsstring.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128681"
	"rust140-url-P1-pre.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128685"
	"rust140-url-P2-1.6.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128686"
	"rust140-url-P3-1.7.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128689"
	"rust140-url-P4-pre172.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128690"
	"rust140-url-P5-1.7.2.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128692"
	"rust140-url-P6-post.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128693"
	"rust141-encoding_rs.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128694"
	"pathname-1-1427455.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/381d4dee00fa3627f7f03cc99d7f421cbf329e3a"
	"pathname-2-445128.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/2a4cd620f89b34eaa0ee74638d03b88342cb995e"
       )
sha256sums=('0cfa348eff8e71596780fa2f97092f132859bc03de04b2313eb9d74fcb24b99a'
            '6c5e705228647c44fb348e06ed7fa475f212b2c5ee9602410c2071f11e8855a9'
            'b822bc6977648803f73aad9af7b124c3380611667cfec74bc4b641207c9d619f'
            '8e097387ad6f137f0d9080f87ffc433efde5b4fa037d2845e4c54ec7cc6cfbcc'
            'd3080710ae115925e880d5db758e5c6a7a229a62d3a6035f323d00fcd36dcb94'
            '63c211a827bece5409480f19e1bd73f8a35a9e4fb6ee94dd40923bea3fe25d06'
            'ef538ab7ffb370f6d0cb9c67e7bb33484cdcdfe9a08c2661a4fad8d0d391a200'
            '990bd9a60b78ee1134733d47e49eb1a75dd586b222ea537868784044b5a5ac31'
            '9f9c11ef22bea5031bad37400c585c1a7db488fc448c47544116acfba66184c7'
            'cfecc41c36a476f9a21f0e8bf0a4046ed70271a801ad57514aed1991a09f0573'
            '527099f80eb4da96f3a9365040b820a251779ceb01f0aceef8405b03d94920f4')

# 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-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
  
  # http://www.linuxfromscratch.org/blfs/view/svn/xsoft/seamonkey.html
  # Remove a function definition which is incompatible with the one in glibc-2.30:
  sed -i -e '/pid_t gettid/,+3 s@^@//@' mozilla/tools/profiler/core/platform.h
  
  # rust-1.41
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782
  cd mozilla
  patch -p1 -i ../../rust140-nsstring.patch
  patch -p1 -i ../../rust140-url-P1-pre.patch
  patch -p1 -i ../../rust140-url-P2-1.6.0.patch
  #patch -p1 -i ../../rust140-url-P3-1.7.0.patch
  git apply -p1 ../../rust140-url-P3-1.7.0.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782#c6
  patch -p1 -i ../../rust140-url-P4-pre172.patch
  patch -p1 -i ../../rust140-url-P5-1.7.2.patch
  patch -p1 -i ../../rust140-url-P6-post.patch
  patch -p1 -i ../../rust141-encoding_rs.patch
  
  # remove version number from path name
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1427455
  # https://bugzilla.mozilla.org/show_bug.cgi?id=445128
  patch -p1 -i ../../pathname-1-1427455.patch
  patch -p1 -i ../../pathname-2-445128.patch
}

build() {
  cd "$pkgname-$pkgver"

  cat >.mozconfig ../mozconfig - <<END
END
  
  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"
}

post_upgrade() {
    if (( $(vercmp $2 2.53.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/seamonkey2.53.1/."
       echo
    fi
}

seamonkey.install

install="$pkgname.install"

cheers,

Hendrik-Jan

Offline

#22 2020-03-12 17:20:58

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

Re: Offering a package: seamonkey 2.53.1

Hi Hendrik-Jan,

sure, good idea. :-) Just one thing, the line

install="$pkgname.install"

should be added to the PKGBUILD and post_upgrade() should be defined in seamonkey.install:

pkgname=seamonkey
pkgver=2.53.1
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') # 'mozilla-common'
makedepends=('unzip' 'zip' 'yasm' 'autoconf2.13' 'clang' 'llvm' 'rust' 'git' 'python2' 'gtk2')
url="https://www.seamonkey-project.org/"
source=("https://archive.mozilla.org/pub/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz"
	"rust140-nsstring.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128681"
	"rust140-url-P1-pre.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128685"
	"rust140-url-P2-1.6.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128686"
	"rust140-url-P3-1.7.0.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128689"
	"rust140-url-P4-pre172.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128690"
	"rust140-url-P5-1.7.2.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128692"
	"rust140-url-P6-post.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128693"
	"rust141-encoding_rs.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9128694"
	"pathname-1-1427455.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/381d4dee00fa3627f7f03cc99d7f421cbf329e3a"
	"pathname-2-445128.patch::https://hg.mozilla.org/mozreview/gecko/raw-rev/2a4cd620f89b34eaa0ee74638d03b88342cb995e")
sha256sums=('0cfa348eff8e71596780fa2f97092f132859bc03de04b2313eb9d74fcb24b99a'
            '6c5e705228647c44fb348e06ed7fa475f212b2c5ee9602410c2071f11e8855a9'
            'b822bc6977648803f73aad9af7b124c3380611667cfec74bc4b641207c9d619f'
            '8e097387ad6f137f0d9080f87ffc433efde5b4fa037d2845e4c54ec7cc6cfbcc'
            'd3080710ae115925e880d5db758e5c6a7a229a62d3a6035f323d00fcd36dcb94'
            '63c211a827bece5409480f19e1bd73f8a35a9e4fb6ee94dd40923bea3fe25d06'
            'ef538ab7ffb370f6d0cb9c67e7bb33484cdcdfe9a08c2661a4fad8d0d391a200'
            '990bd9a60b78ee1134733d47e49eb1a75dd586b222ea537868784044b5a5ac31'
            '9f9c11ef22bea5031bad37400c585c1a7db488fc448c47544116acfba66184c7'
            'cfecc41c36a476f9a21f0e8bf0a4046ed70271a801ad57514aed1991a09f0573'
            '527099f80eb4da96f3a9365040b820a251779ceb01f0aceef8405b03d94920f4')
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-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
  
  # http://www.linuxfromscratch.org/blfs/view/svn/xsoft/seamonkey.html
  # Remove a function definition which is incompatible with the one in glibc-2.30:
  sed -i -e '/pid_t gettid/,+3 s@^@//@' mozilla/tools/profiler/core/platform.h
  
  # rust-1.41
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782
  cd mozilla
  patch -p1 -i ../../rust140-nsstring.patch
  patch -p1 -i ../../rust140-url-P1-pre.patch
  patch -p1 -i ../../rust140-url-P2-1.6.0.patch
  #patch -p1 -i ../../rust140-url-P3-1.7.0.patch
  git apply -p1 ../../rust140-url-P3-1.7.0.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1617782#c6
  patch -p1 -i ../../rust140-url-P4-pre172.patch
  patch -p1 -i ../../rust140-url-P5-1.7.2.patch
  patch -p1 -i ../../rust140-url-P6-post.patch
  patch -p1 -i ../../rust141-encoding_rs.patch
  
  # remove version number from path name
  # https://bugzilla.mozilla.org/show_bug.cgi?id=1427455
  # https://bugzilla.mozilla.org/show_bug.cgi?id=445128
  patch -p1 -i ../../pathname-1-1427455.patch
  patch -p1 -i ../../pathname-2-445128.patch
}

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"
}
post_upgrade() {
    if (( $(vercmp $2 2.53.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/seamonkey2.53.1/."
       echo
    fi
}

@eschwartz: Is there a policy of using post_upgrade() or pre_upgrade() for this kind of announcement?

Offline

#23 2020-03-16 01:01:14

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: Offering a package: seamonkey 2.53.1

post_upgrade is a reasonable place to put such warnings, yes.


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

Offline

#24 2020-03-25 21:35:08

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

Re: Offering a package: seamonkey 2.53.1

Hi eschwartz,

out of curiousity: what would be the procedure here? At what point would an application like this one be dropped from the repository and be available to be offered in AUR?

thanks,

Hendrik-Jan

Offline

#25 2020-04-19 13:40:33

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

Re: Offering a package: seamonkey 2.53.1

hjheins wrote:

what would be the procedure here?

You can always send your changes to the package maintainer. I do that sort of thing fairly regularly.

Offline

Board footer

Powered by FluxBB