You are not logged in.
Hi,
I'm relative new Arch user and I haven't done any packaging until today with Pale Moon. It is a web browser based on Mozilla Firefox and it has been build to linux just a while ago. The author of the project gave me permission to submit it to AUR. I would be happy to do it, but I don't have any previous experience with packaging. Could someone check the PKGBUILD that it is correct and adheres the AUR standards? And, anyone interested with more experience is free to take it over.
The project home page is http://palemoon.org
and the linux binaries are at http://sourceforge.net/projects/pm4linux/,
Here is the PKGBUILD file. I used firefox-esr-bin as an example and copied the dependencies from it.
# Maintainer: sumt <sumt at sci dot fi>
pkgname=palemoon
pkgver=24.3.1
pkgrel=1
pkgdesc="Browser based on Firefox that's optimised for performance."
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/pm4linux/"
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2' 'dbus-glib' 'desktop-file-utils' 'libxt' 'mime-types' 'nss' 'shared-mime-info')
optdepends=('networkmanager: Location detection via available WiFi networks'
'gstreamer0.10-base-plugins: vorbis decoding, ogg demuxing'
'gstreamer0.10-good-plugins: webm and mp4 demuxing'
'gstreamer0.10-bad-plugins: aac, vp8 and opus decoding'
'gstreamer0.10-ugly-plugins: h.264 and mp3 decoding'
'gstreamer0.10-ffmpeg: more decoders'
'libpulse: PulseAudio audio driver')
install=$pkgname.install
source=(http://downloads.sourceforge.net/pm4linux/$pkgname-$pkgver.en-US.linux-$CARCH.tar.bz2
$pkgname.desktop)
md5sums=('88fe69cd12baf1de15d58c1be5e68a2e'
'220EDFF6FA5A275B53D7EDC1E6A3DB99')
[ "$CARCH" == "i686" ] && md5sums[0]='065793af06c68a4491acb2fd1a9eda29'
package() {
cd $srcdir
install -d $pkgdir/{usr/{bin,share/applications},opt}
cp -r $pkgname/ $pkgdir/opt/$pkgname
ln -s /opt/$pkgname/$pkgname $pkgdir/usr/bin/$pkgname
install -m644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/
}
Results of namcap for the build package. Is there anything that I should be concerned about?
> namcap palemoon-24.3.1-1-x86_64.pkg.tar.xz
palemoon E: ELF file ('opt/palemoon/libnssdbm3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libssl3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/palemoon-bin') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/plugin-container') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/palemoon') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libmozalloc.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libplds4.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libsmime3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libsoftokn3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libxul.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libmozsqlite3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/mozilla-xremote-client') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libnss3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libplc4.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libfreebl3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libnspr4.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libnssckbi.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/libnssutil3.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/webapprt-stub') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/browser/components/libbrowsercomps.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/components/libmozgnome.so') outside of a valid path.
palemoon E: ELF file ('opt/palemoon/components/libdbusservice.so') outside of a valid path.
palemoon W: Referenced library 'libmozsqlite3.so' is an uninstalled dependency
palemoon W: Referenced library 'libxul.so' is an uninstalled dependency
palemoon W: Referenced library 'libmozalloc.so' is an uninstalled dependency
palemoon E: Dependency java-environment detected and not included (found class files opt/palemoon/distribution/bundles/statusbar@palemoon.org/chrome.jar, opt/palemoon/browser/chrome/browser.jar, opt/palemoon/browser/chrome/en-US.jar, opt/palemoon/chrome/marionette.jar, opt/palemoon/chrome/en-US.jar, opt/palemoon/chrome/toolkit.jar, opt/palemoon/chrome/recording.jar, opt/palemoon/chrome/pippki.jar, opt/palemoon/webapprt/chrome/en-US.jar, opt/palemoon/webapprt/chrome/webapprt.jar)
palemoon W: Dependency alsa-lib detected but optional (libraries ['usr/lib/libasound.so.2'] needed in files ['opt/palemoon/libxul.so'])
palemoon W: Dependency included and not needed ('mime-types')
palemoon W: Dependency shared-mime-info included but already satisfied
Last edited by up (2014-02-10 07:27:04)
Offline
look like need xulruner too to work
Try put these lib in /opt/palemon/{bin,lib,whatever} fallow neededs or in /usr/ in they respective paths
Well, I suppose that this is somekind of signature, no?
Offline
Well, I changed the path from /opt/palemoon to /usr/lib/palemoon, added icons to usr/share, and symlinked dictionary folders to use system-provided paths.
Here is the new PKGBUILD,
# Maintainer: sumt <sumt at sci dot fi>
pkgname=palemoon
pkgver=24.3.1
pkgrel=1
pkgdesc="Browser based on Firefox that's optimised for performance."
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/pm4linux/"
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2' 'dbus-glib' 'desktop-file-utils' 'libxt' 'mime-types' 'nss' 'alsa-lib')
optdepends=('networkmanager: Location detection via available WiFi networks'
'gstreamer0.10-base-plugins: vorbis decoding, ogg demuxing'
'gstreamer0.10-good-plugins: webm and mp4 demuxing'
'gstreamer0.10-bad-plugins: aac, vp8 and opus decoding'
'gstreamer0.10-ugly-plugins: h.264 and mp3 decoding'
'gstreamer0.10-ffmpeg: more decoders'
'libpulse: PulseAudio audio driver')
install=palemoon.install
source=(http://downloads.sourceforge.net/pm4linux/$pkgname-$pkgver.en-US.linux-$CARCH.tar.bz2
$pkgname.desktop)
md5sums=('88fe69cd12baf1de15d58c1be5e68a2e'
'00d640ab6261fd1fb4adbadf79edd1f5')
[ "$CARCH" == "i686" ] && md5sums[0]='065793af06c68a4491acb2fd1a9eda29'
package() {
install -d "$pkgdir"/usr/{bin,lib}
cp -r palemoon/ "$pkgdir/usr/lib/$pkgname"
ln -s "/usr/lib/$pkgname/palemoon" "$pkgdir/usr/bin/palemoon"
install -Dm644 palemoon.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
# icons
install -Dm644 palemoon/browser/chrome/icons/default/default16.png \
"$pkgdir/usr/share/icons/hicolor/16x16/apps/$pkgname.png"
install -Dm644 palemoon/browser/chrome/icons/default/default32.png \
"$pkgdir/usr/share/icons/hicolor/32x32/apps/$pkgname.png"
install -Dm644 palemoon/browser/chrome/icons/default/default48.png \
"$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png"
install -Dm644 palemoon/browser/icons/mozicon128.png \
"$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
# use system-provided dictionaries
rm -rf "$pkgdir"/usr/lib/$pkgname/{dictionaries,hyphenation}
ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
# avoid duplicate binaries
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf palemoon "$pkgdir/usr/lib/$pkgname/palemoon-bin"
}
and namcap results,
> namcap palemoon-24.3.1-1-x86_64.pkg.tar.xz
palemoon W: Referenced library 'libmozsqlite3.so' is an uninstalled dependency
palemoon W: Referenced library 'libxul.so' is an uninstalled dependency
palemoon W: Referenced library 'libmozalloc.so' is an uninstalled dependency
palemoon E: Symlink (usr/lib/palemoon/hyphenation) points to non-existing /usr/share/hyphen
palemoon E: Symlink (usr/lib/palemoon/dictionaries) points to non-existing /usr/share/hunspell
palemoon E: Dependency java-environment detected and not included (found class files usr/lib/palemoon/distribution/bundles/statusbar@palemoon.org/chrome.jar, usr/lib/palemoon/browser/chrome/browser.jar, usr/lib/palemoon/browser/chrome/en-US.jar, usr/lib/palemoon/chrome/marionette.jar, usr/lib/palemoon/chrome/en-US.jar, usr/lib/palemoon/chrome/toolkit.jar, usr/lib/palemoon/chrome/recording.jar, usr/lib/palemoon/chrome/pippki.jar, usr/lib/palemoon/webapprt/chrome/en-US.jar, usr/lib/palemoon/webapprt/chrome/webapprt.jar)
palemoon W: Dependency included and not needed ('mime-types')
Any comments? Thanks.
Offline
check if the 3 referenced librariries are provided by palemoon itself.
If that's not the case, then you need to check which pacakges do provide them and add those to dependencies
which pacakge do /usr/share/hyphen & /usr/sharer/hunspell belong to ?
they should either be dep or optdep .
some palemoon functions appear to need java-environment , unless you're sure they are not needed better add it as dependency.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
Been waiting for linux build for ages and now finally we have it! Well, it's pre-compiled binary, right?
Last edited by serdotlinecho (2014-02-12 14:17:40)
Offline
Been waiting for linux build for ages and now finally we have it! Well, it's pre-compiled binary, right?
Yes, access2godzilla has been working on it to get it to linux. He hosts his builds on sourceforge. The link is in the first post.
You can find the source code for Pale Moon from http://www.palemoon.org/sourcecode.shtml
Offline
If you want to use a prebuilt application, then the location in /opt is right regardless of what namcap says. java-environment is not required. namcap demands java as soon as some .jar files are present. firefox uses .jar files for other things than java packages. So I guess your first PKGBUILD was not wrong.
If you can move palemoon into proper locations then you can doo so,too When symlinking, please use relative paths if that is feasable (e.g. ln -s ../lib/pm/pm /usr/bin/pm)
Last edited by progandy (2014-02-12 15:14:23)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
serdotlinecho wrote:Been waiting for linux build for ages and now finally we have it! Well, it's pre-compiled binary, right?
Yes, access2godzilla has been working on it to get it to linux. He hosts his builds on sourceforge. The link is in the first post.
You can find the source code for Pale Moon from http://www.palemoon.org/sourcecode.shtml
Just finish installed Pale Moon using your tarball and now browsing using Pale Moon. Thanks for the tarball and the PKGBUILD!
Are you planning to summit to AUR website?
Offline
If you want to use a prebuilt application, then the location in /opt is right regardless of what namcap says.
Well back to /opt/ then. What exactly is wrong in using /usr/lib/ for a prebuild package and why /opt should be used instead?
Also should I rename the package to palemoon-bin?
Offline
progandy wrote:If you want to use a prebuilt application, then the location in /opt is right regardless of what namcap says.
Well back to /opt/ then. What exactly is wrong in using /usr/lib/ for a prebuild package and why /opt should be used instead?
You don't have to go back. If you have a prebuilt package which is designed to run from /opt, then you are allowed to install it there. Of course it is always nice if you can fit the package into the standard directory scheme and if you like to do the work, then by all means do so.
Also should I rename the package to palemoon-bin?
Probably. The name without -bin should be kept free in the AUR if someone wants to publish the PKGBUILD for it I guess.
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Oh, ok thanks for explaining, progandy!
Just finish installed Pale Moon using your tarball and now browsing using Pale Moon. Thanks for the tarball and the PKGBUILD!
Are you planning to summit to AUR website?
Yes, and already did so! It's for the new 24.3.2 version that was released just few hours ago, so you can update it using AUR!
Link: https://aur.archlinux.org/packages/palemoon/
Thanks all for the helpful comments!
Offline