deu / palemoon-overlay

Unofficial Gentoo overlay for the Pale Moon (http://www.palemoon.org/) web browser.
34 stars 12 forks source link

revdep-rebuild shows Pale Moon problem even if one re-runs revdep-rebuild #19

Open Kalle72 opened 8 years ago

Kalle72 commented 8 years ago

Sorry for reporting a new problem ;-)

revdep-rebuild shows the following

These are the packages that would be merged, in order:

Calculating dependencies... done! [ebuild R ~] www-client/palemoon-26.1.1-r1

Emerging palemoon again and re-running revdep-rebuild does not solve it and the error persists. On the other hand: Plae Moon works as fas I can estimate.

Best regards, Kalle

deu commented 8 years ago

Sometimes revdep-rebuild/emerge @preserved-rebuild act up that way, although it never happened to me with these ebuilds. Usually I solve it by unmerging the package and then re-emerging it. If that doesn't work, please post the output of emerge --info palemoon.

Kalle72 commented 8 years ago

Unfortunately it does not do the trick.

The output of "emerge --info palemoon" is

#############################################

Portage 2.2.26 (python 3.4.3-final-0, hardened/linux/amd64, gcc-4.9.3, glibc-2.21-r2, 4.4.2-hardened x86_64)

                     System Settings

System uname: Linux-4.4.2-hardened-x86_64-Intel-R-_Core-TM-_i5-4670TCPU@_2.30GHz-with-gentoo-2.2 KiB Mem: 8109296 total, 5524252 free KiB Swap: 26214396 total, 26199096 free Timestamp of repository gentoo: Wed, 06 Apr 2016 09:15:01 +0000 sh bash 4.3_p42-r1 ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1 ccache version 3.1.9 [enabled] app-shells/bash: 4.3_p42-r1::gentoo dev-java/java-config: 2.2.0-r3::gentoo dev-lang/perl: 5.20.2::gentoo dev-lang/python: 2.7.10-r1::gentoo, 3.4.3-r1::gentoo dev-util/ccache: 3.1.9-r4::gentoo dev-util/cmake: 3.3.1-r1::gentoo dev-util/pkgconfig: 0.28-r2::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.19.1::gentoo sys-apps/sandbox: 2.10-r1::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69::gentoo sys-devel/automake: 1.11.6-r1::gentoo, 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25.1-r1::gentoo sys-devel/gcc: 4.9.3::gentoo sys-devel/gcc-config: 1.7.3::gentoo sys-devel/libtool: 2.4.6::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers) sys-libs/glibc: 2.21-r2::gentoo Repositories:

gentoo location: /usr/portage/gentoo sync-type: rsync sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage priority: -1000

local location: /usr/portage/local masters: gentoo

palemoon location: /usr/portage/extern/palemoon sync-type: git sync-uri: git://github.com/deuiore/palemoon-overlay.git masters: gentoo

torbrowser location: /usr/portage/extern/torbrowser sync-type: git sync-uri: git://github.com/MeisterP/torbrowser-overlay.git masters: gentoo

ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=core2 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.3/conf" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=core2 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acl acpi alsa amd64 audiofile bash-completion berkdb bluetooth branding bzip2 cairo cdda cdparanoia cdr cleartype cli consolekit corefonts cracklib crypt css cups curl cvs cxx dbus dga djvu dri drm dts dvd dvdr encode exif fam ffmpeg flac fontconfig foomaticdb ftp fuse gd gdbm gif gimp git gnutls gphoto2 gs gstreamer gtk hardened hddtemp iconv idn imagemagick imap introspection ipod java javascript jbig jpeg justify ladspa lame lash latex lcms ldap libnotify libsamplerate lm_sensors mad matroska midi mikmod mime mmx mmxext mng modules mozilla mp3 mp4 mpeg mtp multilib musepack nas ncurses networkmanager nls nptl nsplugin ogg openexr opengl openmp openvg osc pam pango pax_kernel pcre pdf php pie plotutils png policykit postscript ptpax quicktime readline samba scanner sdl seccomp session shorten slp sna sndfile snmp sockets socks5 sound speex spell sse sse2 ssl ssp startup-notification subversion svg szip tcpd theora threads thunar tiff timidity truetype type3 udev udisks unicode upower urandom usb v4l vaapi vcd vorbis wavpack wifi wmf x264 xattr xcb xcomposite xinerama xinetd xml xmp xorg xpm xtpax xv xvid zlib" ABI_X86="64" ALSA_CARDS="intel-hda" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python3_4 python2_7" RUBY_TARGETS="ruby20 ruby21 ruby22" SANE_BACKENDS="avision" USERLAND="GNU" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" USE_PYTHON="3.4 2.7" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

                    Package Settings

www-client/palemoon-26.1.1-r1::palemoon was built with the following: USE="alsa dbus gtk2 official-branding optimize -gtk3 -necko-wifi -oss -pulseaudio -system-libs" ABI_X86="64" LINGUAS="de -ar -cs -da -el -en_GB -es_AR -es_ES -es_MX -fi -fr -gl_ES -hr -hu -is -it -ja -kn -ko -nl -pl -pt_BR -pt_PT -ro -ru -sk -sl -sr -sv_SE -tr -vi -zh_CN -zh_TW" CFLAGS="-march=core2 -pipe -mno-avx" CXXFLAGS="-march=core2 -pipe -mno-avx"

deu commented 8 years ago

Sorry, I'm not able to reproduce. I'll keep this open in case someone else has an idea. In the meanwhile you could try to update the overlay and install Pale Moon 26.2.0 and see if you get the same problem with that. Feel free to close the issue if you don't.

By the way, to prevent GitHub from messing with your code/logs you could put them between "```" tags. Or just copy them to text files and attach those.

Kalle72 commented 8 years ago

First: Unfortunately it is the same problem with 26.2.0.

Second: I will use "```" from now on ;-)

Kalle72 commented 8 years ago

Still problem alive with 26.2.1, but I found a similar problem in Gentoo bugtracker for firefox 27.0.

Kalle72 commented 8 years ago

Hello, I opend also a bug on PaleMoons "BugTracker". It seems that also Ubuntu and Slackware are affected. Because it is not a gentoo specific problem it seems that it can only be solved from the PaleMoon guys.

Thanks for your help and a lot for your ebuild :-)

Kalle72 commented 8 years ago

Seems that also firefox and torbrowser has this problem. The ebuilds of them contain a workaround which creates a file in /etc/revdep-rebuild

# revdep-rebuild entry insinto /etc/revdep-rebuild echo "SEARCH_DIRS_MASK=${MOZILLA_FIVE_HOME}" >> ${T}/10firefox doins "${T}"/10${PN} || die

The main problem seems also unsolved in firefox, so including this workaround in your ebuild seems to be reasonable.

hkmaly commented 8 years ago

To shed some light on the message:

broken /usr/lib64/palemoon/browser/components/libbrowsercomps.so (requires libmozalloc.so libxul.so)
broken /usr/lib64/palemoon/components/libdbusservice.so (requires libmozalloc.so libxul.so)
broken /usr/lib64/palemoon/components/libmozgnome.so (requires libmozalloc.so libxul.so)
broken /usr/lib64/palemoon/plugin-container (requires libxul.so) [ 100% ]

This means that the mentioned components requires mentioned libraries which can't be found on path. Firefox (and Palemoon) are doing something with path (LD_LIBRARY_PATH in the starting script, maybe few more tricks elsewhere) which makes it work, but are unable to explain it to revdep-rebuild.

Based on the fact that firefox is "solving" it with revdep-rebuild entry, I would assume noone has better solution for now. Also, yes, this is gentoo-specific problem: the components are not broken, they just look that way.

Kalle72 commented 8 years ago

Thanks, that seems reasonable. But why does it work with thunderbird?

ghost commented 7 years ago

The issue is that palemoon is linking against package installed libs (such as dev-libs/nspr and dev-libs/nss) and so those libs are "preserved" (subsequent to them being depcleaned). eg:

/var/lib/portage/preserved_libs_registry: "dev-libs/nspr:0": [ "dev-libs/nspr-4.12", "6696", [ "/usr/lib/libnspr4.so", "/usr/lib/libplc4.so", "/usr/lib/libplds4.so" ] ], "dev-libs/nss:0": [ "dev-libs/nss-3.23", "6868", [ "/usr/lib/libsmime3.so", "/usr/lib/libnss3.so", "/usr/lib/libssl3.so", "/usr/lib/libnssutil3.so" ]

Once this occurs (ie, you've emerged palemoon when these libs were installed) it doesn't matter if you rebuild the package, those preserved-libs will remain (because the palemoon build picks those libs above those bundled ... well, its either that or the dependencies are not defined correctly).

In order to solve the issue the package should be removed (the preserved-libs will then be removed), it can then be re-merged (and, I assume, link against those libs that are bundled with palemoon).

In short, the issue is with the build, its probably a case of needing to pass the --with-builtin-nss (or what-have-you) to ./configure.

deu commented 7 years ago

@Khayyam There is no such flag. Pale Moon should link against its "builtin" NSS libraries by default unless --with-system-nss is specified. Some old versions of the ebuild offered the choice because the version of NSS Pale Moon shipped with and the one in portage were one and the same, but as they started adding their own modifications and recommending to use their own version I decided to remove the option altogether.

ghost commented 7 years ago

@deuiore ... it obviously doesn't "link against its builtin NSS" (etc) if there is a package installed lib, therefore this is, as I said, an "issue [...] with the build" (so not, as you suggest above, something to do with revdep-rebuild, or preserved-rebuild, that can be fixed by "re-emerging").

Either palemoon devs provide such a switch, or the package should block on dev-libs/nss, dev-libs/nspr (and possibly other libs), or the package provides a warning (requiring IDONTCAREABOUTLINKING=1 be set if such libs are installed).

BTW, please don't release problem packages (such as 27.0.2) and then subsequently mask them. That will invariably cause users (such as myself) a long compilation resulting in a unusable release, which then requires another long compilation to put right.

vaeth commented 7 years ago

@Khayyam: it obviously doesn't "link against its builtin NSS"

It seems that you misunderstand what linking means in the context of shared libs: It only means that in the binary it is "marked" which symbols will be resolved at runtime from libnss3.so. It really means only that: in particular, no path for libnss3.so is stored in the binary, and it is not possible to store such a path; the path will always be calculated at execution time. (Don't get confused by -rpath: this is taken care of only as a fallback when the above procedure has failed.)

In particular, e.g. "ldd /usr/lib64/palemoon/libxul.so" will always list you "/usr/lib64/libnss3.so" unless you exported LD_LIBRARY_PATH=/usr/lib64/palemoon in which case the same command will list you the local version "/usr/lib64/palemoon/libnss3.so". (Depending on your architecture you might have to omit the "64" in the paths for the testing.)

The problem is only the FEATURE=preserve-libs of portage whose implementation seems to rely only on the ldd command without any possibility of the package to override LD_LIBRARY_PATH or to exclude certain files from this ldd (or certain libs from being registered) - at least I do not know about such a possibility. revdep-rebuild explicitly had a directory /etc/revdep-rebuild for such a purpose (although the handling of wildcards in these files unfortunately was reduced when switching to the binary implementations; nevertheless, at least such exceptions were possible).

Thus, the "bug" lies only on portage's side: File a bug on portage if you want this to be fixed. (Perhaps the portage people even know a way how to override the feature: That I don't know about such a possibility as mentioned above, doesn't mean that none is implemented somehow. Anyway, if it exists it should have been clearly documented...)

or the package should block on dev-libs/nss, dev-libs/nspr

Blocking the parallel installation of firefox or seamonkey only to work around a portage bug of a (mis)feature would certainly not be a good idea.

vaeth commented 7 years ago

It seems that portage relies on -rpath being set:

https://bugs.gentoo.org/show_bug.cgi?id=307391 https://bugs.gentoo.org/show_bug.cgi?id=215242#32

In fact, in my previous reply, I was assuming falsely that -rpath would be used only as a fallback and not override the system's library path. I tried now in a test script, and it turned out that this assumption is either wrong or outdated: -rpath actually takes higher preference.

Thus, it seems that the correct solution of this bug is to use

append-ldflags -Wl,-rpath="$EPREFIX/usr/$(get_libdir)/palemoon"

in the source ebuilds. For the binary ebuilds, one probably has to call scanelf or patchelf as described in the above bugs to add the above -rpath to the corresponding libs/binaries.

deu commented 7 years ago

Keeping this open because I'm not sure that just setting the RPATH for all the ELF files inside /opt/palemoon is the correct way. From my understanding it shouldn't cause problems, but it does not seem ideal (but the alternative would entail setting it on a per-file basis, and keeping up with any changes in the directory structure).