Open Kalle72 opened 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
.
Unfortunately it does not do the trick.
The output of "emerge --info palemoon" is
#############################################
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"
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.
First: Unfortunately it is the same problem with 26.2.0.
Second: I will use "```" from now on ;-)
Still problem alive with 26.2.1, but I found a similar problem in Gentoo bugtracker for firefox 27.0.
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 :-)
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.
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.
Thanks, that seems reasonable. But why does it work with thunderbird?
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.
@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.
@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.
@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.
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.
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).
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