$ rpm -qf /usr/lib64/firefox/libxul.so firefox-47.0-alt1 I've installed firefox from Sisyphus (see below; in a system with no dist-upgrade for a long while), and it crashes like this: -bash-4.3$ firefox & [1] 988359 -bash-4.3$ XPCOMGlueLoad error for file /usr/lib64/firefox/libxul.so: /usr/lib64/firefox/libxul.so: undefined symbol: gtk_widget_path_iter_set_object_name Couldn't load XPCOM. [1]+ Exit 255 firefox The installation: apt> install firefox Unrequested changes are needed to execute this operation. The following packages will be upgraded libnspr libnspr-devel libnss libnss-devel The following NEW packages will be installed: browser-plugins-npapi firefox libvpx3 mozilla-common 4 upgraded, 4 newly installed, 0 removed and 0 kept. Will need more 37,3MB of archives. After unpacking will need more 104MB of disk space. Do you want to continue? [Y/n] apt> commit The following packages will be upgraded libnspr libnspr-devel libnss libnss-devel The following NEW packages will be installed: browser-plugins-npapi firefox libvpx3 mozilla-common 4 upgraded, 4 newly installed, 0 removed and 652 not upgraded. Need to get 0B/37,3MB of archives. After unpacking 104MB of additional disk space will be used. Do you want to continue? [Y/n] Committing changes... Its deps: -bash-4.3# rpm -q firefox --requires | fgrep -i gtk libgtk-3.so.0()(64bit) >= set:qmXE0Z41sUD51fHlZ0dBzsxzHbvluPe libgtk-x11-2.0.so.0()(64bit) -bash-4.3# rpm -qa | fgrep -i gtk python3-module-matplotlib-gtk3-1.5.0-alt4.git20150829.1 gtk-builder-convert-2.24.29-alt1 libwebkit2gtk-2.10.7-alt2 libcolord-gtk-0.1.25-alt2 libgtk+3-devel-3.18.8-alt2 libcanberra-gtk3-devel-0.30-alt2 libnm-gtk-devel-1.1.91-alt1 libjavascriptcoregtk4-2.10.7-alt2 gtk-doc-1.24-alt1 python-module-pygtk-2.24.0-alt6 libgtk+3-3.18.8-alt2 libclutter-gtk3-1.6.6-alt1 libgtkglext-1.2.0-alt2.4 libgtk+2-devel-2.24.29-alt1 emacs24-X11-gtk3-24.5-alt16 gtk-update-icon-cache-2.24.29-alt1 libgtk+2-2.24.29-alt1 libnm-gtk-1.1.91-alt1 libcanberra-gtk3-0.30-alt2 python-module-pygtk-libglade-2.24.0-alt6 libgtk+3-gir-devel-3.18.8-alt2 libgtk+2-locales-2.24.29-alt1 libgtk+3-gir-3.18.8-alt2 libcanberra-gtk-common-devel-0.30-alt2 -bash-4.3#
Why hasn't this problem with symbols been caught by set-versions, I wonder?
Because I believe that it's a local miss-configuration.
There must have been no special local configuration, only some old (and some new) packages installed and not touched. This healed the problem: apt> install libgtk+3 Unrequested changes are needed to execute this operation. The following packages will be upgraded libgtk+3 libgtk+3-devel libgtk+3-gir libgtk+3-gir-devel The following NEW packages will be installed: gtk+3-themes-incompatible 4 upgraded, 1 newly installed, 0 removed and 0 kept. Will need more 6868kB of archives. After unpacking will need more 192kB of disk space. Do you want to continue? [Y/n] apt> commit The following packages will be upgraded libgtk+3 libgtk+3-devel libgtk+3-gir libgtk+3-gir-devel The following NEW packages will be installed: gtk+3-themes-incompatible 4 upgraded, 1 newly installed, 0 removed and 648 not upgraded. Need to get 0B/6868kB of archives. After unpacking 192kB of additional disk space will be used. Do you want to continue? [Y/n] Committing changes... The new firefox package does not work with some a bit old libgtk+3 packages... Now I can try to reproduce this by reverting back to the old gtk+3 packages...
100% не работает на: [root@localhost ~]# rpm -qa | grep libgtk+3 libgtk+3-gir-3.10.4-alt1 libgtk+3-3.10.4-alt1 При обновлении с FF 44 на FF 47 всё прошло без предупреждений. Соответственно никакие set-version не помогли в данном случае.
(In reply to comment #4) > 100% не работает на: > [root@localhost ~]# rpm -qa | grep libgtk+3 > libgtk+3-gir-3.10.4-alt1 > libgtk+3-3.10.4-alt1 У меня случай был даже на более свежей версии: libgtk+3-3.18.8-alt2 (мог бы повторить, вернув те версии, но пока руки не дошли) > При обновлении с FF 44 на FF 47 всё прошло без предупреждений. Соответственно > никакие set-version не помогли в данном случае.
Может, кому интересно, но всё сломалось с 45-ой версии FF. Проверил 47, 46, 45, работает только 44.
Please approve task 174017 with 50.0.2-alt2 which is supposed to improve this: - Precise calculation of the dependency on libgtk symbols (ALT#32297) (and strict verification of unresolved symbols) (Thx ruslandh@'s work on strict unresolved symbols verification in palemoon.) $ git --no-pager diff HEAD^^..HEAD^ diff --git a/firefox.spec b/firefox.spec index 2b2b63a..33a5286 100644 --- a/firefox.spec +++ b/firefox.spec @@ -178,6 +178,13 @@ MOZ_OPT_FLAGS=$(echo $RPM_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now | \ ) export CFLAGS="$MOZ_OPT_FLAGS" export CXXFLAGS="$MOZ_OPT_FLAGS" +# Add fake RPATH +rpath="/$(printf %%s '%firefox_prefix' |tr '[:print:]' '_')" +export LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath" +%if_without system_nss +# see mozilla/security/nss/coreconf/Linux.mk:203 +export RPATH="-Wl,-rpath,$rpath" +%endif export PREFIX="%_prefix" export LIBDIR="%_libdir" @@ -227,6 +234,20 @@ make -C objdir \ libdir=%_libdir \ install +# Add real RPATH +rpath="/$(printf %%s '%firefox_prefix' |tr '[:print:]' '_')" +find %buildroot/%firefox_prefix -type f -print0 | +while read -r -d '' f; do + t="$(readlink -ev "$f")" + + file -- "$t" | fgrep -qs ELF || continue + + if chrpath -l "$t" | fgrep -qs "PATH=$rpath"; then + chrpath -r "%firefox_prefix" "$t" + fi +done +%set_verify_elf_method unresolved=strict + # install altlinux-specific configuration install -D -m 644 %SOURCE8 %buildroot/%firefox_prefix/browser/defaults/preferences/all-altlinux.js Here is how the dependency has got more precise: $ compare_packages -a --requires -- /ALT/Sisyphus/x86_64/RPMS.classic/firefox-50.0.2-alt1.x86_64.rpm -- ~/hasher/repo/x86_64/RPMS.hasher/firefox-50.0.2-alt1.x86_64.rpm --- /tmp/.private/imz/compare_packages.vskrgWZ4TP/1 2016-12-06 16:04:40.822816774 +0300 +++ /tmp/.private/imz/compare_packages.vskrgWZ4TP/2 2016-12-06 16:04:40.828816734 +0300 @@ -40,13 +40,13 @@ libgcc_s.so.1(GCC_3.3)(64bit) libgcc_s.so.1(GCC_3.4)(64bit) libgcc_s.so.1(GCC_4.0.0)(64bit) -libgdk-3.so.0()(64bit) >= set:nmGow1 +libgdk-3.so.0()(64bit) >= set:nf8PwA630VTRhMdY3UJZBMuUg9O34uwlzC05KjJ1gV3TtA4HGdDFmlfExmT6Ciu9u5dtOxCshkFgXDYKEeLCS1r6eFRDvtH96efY2g5diNR4CtasVgLfwofNg1sOFh6UaZpkX3r8IQKg9byOITslz2lJDN2EJ5nOFIRfZJH0mZ1PvzbMF3Ry6r3kreg18DOkGQZ0zrCtgI4D1EdPX1VRrXswG0kZh8eLPRj7KOxhneF3ZHZfaMT4CsExWT1CyRaIZrw7Av2FJamrJmx3vYZJojRVY1d5VY7UnGCF5c8Owi7thdjP1qMl4tQwUfUC9QNjSql3kEOi3iZio09 libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) >= set:lgnLZlVCS16t3jD6kNOWSYPWoC0jFaIF01CiqLB0NNj3KxDHGO0 libgio-2.0.so.0()(64bit) >= set:oiDURQYOLc5K71lMwpVLAlDhA7vgZjpwx77Sf6zF9yCfv9HXMwM9qdWkXc5rluxpQXxINV0CAh8swg8RHBTPqCxBCvJ2ZiavhqzTgVRQgaD2H59HBZ5Cn464mzpemSRN3EtzHhIJ8pTZh libglib-2.0.so.0()(64bit) >= set:oh6Jjraz6mRpYgJhENEZCSs2NkDeJdFr4Wa8Oz6BF4wVOXj2QYgBou4uHoj3fGTr4fGrIp0wRwJpXsu2DjdL7kROyid1KkT9c8fm5vtUPhzgpLPIZsRRy99JpFicmQNzdv8X4og4xANTyWj1wF002cCeo5bIVVtWAMRehKfuRw3cE0pjRafcFtpIM3dqcCWm1cdjKj0l6KEjS7Ri8OwM82eqDhW8jdMRwW5UJIeOWHnU5bcqxeA0rPoth6HJ7pdzS9YZawAsG070 libgobject-2.0.so.0()(64bit) >= set:mgX8o2bTFZgxZIrkD3XdTLPQ7S0pdELQmxkcixFDsIjy5VUnc1bPlrvMBnjM3AUKPc9ZemnHFYgxDYkXaVGk0UorlzJ69RlI6liYx05jvSnRFhWh7R4s5Zjtc7OKUZ50AiIRD6Lyiy1 -libgtk-3.so.0()(64bit) +libgtk-3.so.0()(64bit) >= set:qhjBFRzhmUSA1JxGt4I2Nu1PRErHmMyJX53SZdWswanXfXeVMJxJxXHXKh11IUamZw73rKzUVJwOGwo7lbZI18ZFZDXIpuI2ZEButQfZbFTPZxvQ3GmVXbxRx4hlA8rgfEs5bb2KZi3o3cgMkjiyE2aZgeLcGBChfKduoai1oU5sL3qHXEBUH88dR1Q9VySDgBGgJP2WOAMv8BWamIH0amrTDpRhTb7zHshCX6VCPZgkfZJh0dnhwb3p53ZehVLIYThYJGT2lYzhovSN2aeVIFJ6uqaZ5JT8hybB0w2jQhXtzB7mk3EYyY7tWySNFnxhnDno57pxsrUrmtewRfLtAemkz9fUahNFlKen6Bp72CEWlZbZze4Ztzr0OvZr9HZixS02DmY7hR3g7HC3poTeevAYLq6HyyJvI3cpdm56S5wuGZGrQoeIJL2sJKI0KrWJXJrH4Z6E6uAPycKsTmuKXGIsvhBhbjoWZ8x3arePOYVnnrq8LH0mmEINx2eO9KeEdjRkkmzZksp6W7XdvL4iWbvCTOgu5bdZpJVDg1ymC2ldyBuiITLD0myATuGKCkDIXVM9hSBZGZGJiqjIrBGPIKqGp5Gais0YSNBULOMx7wTW2cBNqiHg7CRSuZ0bH2sp2JmvGJZrUhurZzeuge3xil9TsjAgw8kfIl9cn4PtVe3eZyd3N9y79yv7vVifSAUk9R9q7R39otPWibncoZt1ngtgCgKJtbg5y9qdIpLIx7a8ZGJKZ0H7izflqHPa5VkhgZa2XNN8x59cUT8hZzUN1F2joZj3Z6ZG1kLc2DSwoRnLkDCAxNWMqSiRWFeRabvt4wkdch6PgCfMbFC1p2J5IRcn8L7JziSupINI3YZuPGeKn5WrXxZ33sG2D9ZvZnMZgIHevng7bedVFA2h0n9OqPnPlEPpVcXENuIPQIIWdCGOC6TG1SSow56qGNzn2eRlQ1ATemtZaNgMef6D8s5uCCXm8GhgZpMpvK0TAeWau2GEcR3bPoYsF379RZEVuOGcc3kdGXT650Es6rup1lhS8mBKBUdNS7HxOHf9avoKrAKv9ctOWGj3aOoXoONCE7VBon7kGZmZzZ8AYelSc3RBjojAECfGjvGUo5HaCDor1ZlfZK6BeUVeo7o7 libgtk-x11-2.0.so.0()(64bit) libhunspell.so.2()(64bit) >= set:mjmZjpxYkULYRK3Um libicui18n.so.56()(64bit) >= set:qkokXiK7jdxxZ3g6ZC26MhNAiZlbc0GH3Zt007SncGdmdDLYcgUM7yVnpwcq0T3oRQp8AQYoASlVcgO9OZ96n7Z4wZrUI30Z7jM5bQGbmNhXgm8qNg9TYqUu1
firefox-50.0.2-alt2 -> sisyphus: * Tue Dec 06 2016 Ivan Zakharyaschev <imz@altlinux> 50.0.2-alt2 - Precise calculation of the dependency on libgtk symbols (ALT#32297) and strict verification of unresolved symbols. (Thx legion@ for the original hack, which had to be removed in 44.0.2-alt3, but found to be restorable by ruslandh@'s work on strict unresolved symbols verification in palemoon.)