Bug 31870

Summary: lib.req doesn't give deps with the new ldd --list patch
Product: Sisyphus Reporter: Ivan Zakharyaschev <imz>
Component: rpmAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P3 CC: alexey.tourbin, at, evg, glebfm, imz, ldv, legion, placeholder, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Ivan Zakharyaschev 2016-03-10 16:59:10 MSK
Some packages may have already got lost deps since yesterday.

When rebuilding python-module-numpy:

Lost:

ld-linux-x86-64.so.2()(64bit) >= set:ihidc,
liblapack.so.4()(64bit) >= set:ojHKUptFIKqhToPKEDZbDNEOgKZarbNzKM9HZ9OfUNSOo2tR6upPkSTHhaJ9zfm3OBX74SDZoD22uiHU3p9ctZLo1,
libopenblas.so.0()(64bit) >= set:rooDpomLC1i1m9Ze5Q

With --list in /usr/lib/rpm/ldd:

Processing files: python3-module-numpy-2.0.0-alt15.git20150829.1
...
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/multiarray.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/multiarray_tests.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/umath.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/umath_tests.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/fft/fftpack_lite.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/linalg/_umath_linalg.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/linalg/lapack_lite.cpython-33m.so: no symbol bindings
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/random/mtrand.cpython-33m.so: no symbol bindings
...
Requires: python3-module-numpy-testing = 2.0.0-alt15.git20150829.1, libnumpy-py3 = 2.0.0-alt15.git20150829.1, /usr/bin/python3, /usr/lib64/python3.3/site-packages, ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libc.so.6(GLIBC_2.11)(64bit), libc.so.6(GLIBC_2.14)(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3)(64bit), libc.so.6(GLIBC_2.3.4)(64bit), libc.so.6(GLIBC_2.4)(64bit), libm.so.6(GLIBC_2.2.5)(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), python3.3(__future__), python3.3(abc), python3.3(binascii), python3.3(collections), python3.3(copy), python3.3(ctypes), python3.3(fileinput), python3.3(functools), python3.3(io), python3.3(math), python3.3(numbers), python3.3(os), python3.3(platform), python3.3(pprint), python3.3(re), python3.3(shutil), python3.3(string), python3.3(tempfile), python3.3(textwrap), python3.3(time), python3.3(timeit), python3.3(types), python3.3(warnings), python3.3(weakref), rtld(GNU_HASH)
Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files)


Without --list in /usr/lib/rpm/ldd:

Processing files: python3-module-numpy-2.0.0-alt15.git20150829.1
...
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/umath.cpython-33m.so: overlinked libraries: /lib64/libpthread.so.0
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/core/umath_tests.cpython-33m.so: overlinked libraries: /lib64/libpthread.so.0
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/fft/fftpack_lite.cpython-33m.so: overlinked libraries: /lib64/libpthread.so.0
lib.req: WARNING: /usr/src/tmp/python-module-numpy-buildroot/usr/lib64/python3.3/site-packages/numpy/random/mtrand.cpython-33m.so: overlinked libraries: /lib64/libpthread.so.0
...
Requires: python3-module-numpy-testing = 2.0.0-alt15.git20150829.1, libnumpy-py3 = 2.0.0-alt15.git20150829.1, /usr/bin/python3, /usr/lib64/python3.3/site-packages, ld-linux-x86-64.so.2()(64bit) >= set:ihidc, ld-linux-x86-64.so.2(GLIBC_2.3)(64bit), libc.so.6(GLIBC_2.11)(64bit), libc.so.6(GLIBC_2.14)(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3)(64bit), libc.so.6(GLIBC_2.3.4)(64bit), libc.so.6(GLIBC_2.4)(64bit), liblapack.so.4()(64bit) >= set:ojHKUptFIKqhToPKEDZbDNEOgKZarbNzKM9HZ9OfUNSOo2tR6upPkSTHhaJ9zfm3OBX74SDZoD22uiHU3p9ctZLo1, libm.so.6(GLIBC_2.2.5)(64bit), libopenblas.so.0()(64bit) >= set:rooDpomLC1i1m9Ze5Q, libpthread.so.0(GLIBC_2.2.5)(64bit), python3.3(__future__), python3.3(abc), python3.3(binascii), python3.3(collections), python3.3(copy), python3.3(ctypes), python3.3(fileinput), python3.3(functools), python3.3(io), python3.3(math), python3.3(numbers), python3.3(os), python3.3(platform), python3.3(pprint), python3.3(re), python3.3(shutil), python3.3(string), python3.3(tempfile), python3.3(textwrap), python3.3(time), python3.3(timeit), python3.3(types), python3.3(warnings), python3.3(weakref), rtld(GNU_HASH)
Requires(rpmlib): rpmlib(SetVersions)
Comment 1 Ivan Zakharyaschev 2016-03-10 17:38:43 MSK
Вот пример пострадавшего:

$ compare_packages -a --requires -- /tasks/archive/done/current/161152/build/repo/prev/x86_64/RPMS.classic/libgtk+3-3.18.8-alt2.x86_64.rpm -- /ALT/Sisyphus/x86_64/RPMS.classic/libgtk+3-3.18.9-alt1.x86_64.rpm

@@ -5,48 +5,15 @@
 grep  
 gtk-update-icon-cache  
 icon-theme-adwaita  
-libX11.so.6()(64bit) >= set:ogWICLtMYc5zqYoA2yCg2l80qAdbMDCHIEKy2IiPpMa9Mo0ojWKE6oX5DxjAt2PCyFbQG8yltyUyXls904hjXByi0fSJ97q99zqy4e5eN9YH3Gt0sVaEGVC9pMUZjExZBBunDl2qmrHpGmIC5m0nRYsTZJdnKvWhMGwKBbeJxFY0VYmOt2AK36THPWTIjZoLHt8Rp0TBmMpKqOmy5BI4iQ286RU8nrxgb0tmawkZ8sRuq9VbH3VMjQ0wRyML55aaJ9E9rGZfBEf5KQeEMXkSKw6iNDG8lZJw3mBfXZtOl7BbZ25YIY4m8BPZpmzzd4BXe8awcbQVxbFqrfNk3BMK2v79kEMhU208DaQObYRTpQ8H0Ij0
-libXcomposite.so.1()(64bit) >= set:he8ZpfYgDGrn02A0
-libXcursor.so.1()(64bit) >= set:jfd78dp5cR1qJenLD14UBF536i6S0TCt
-libXdamage.so.1()(64bit) >= set:he8Nm2J37p7
-libXext.so.6()(64bit) >= set:lhnnNiBuFwPSoRnEoxnhhviconmjE0Z6kD6j5
-libXfixes.so.3()(64bit) >= set:jg48ZveeeOQO6umm2
-libXi.so.6()(64bit) >= set:kga6p2q7hT26CMdTQgZtvhPPZnH7rncXZ8om9
-libXinerama.so.1()(64bit) >= set:hf45oga
-libXrandr.so.2()(64bit) >= set:kgufGZmgD39F4pBQ0FyFA4urO4ZmafPOEue
-libatk-1.0.so.0()(64bit) >= set:mfhTEOlj5caQZmKU9NOX4LT0Zpkl0wJ3F8tAEwTQsRQZduZe6IYzUj7duuNJjNgwAbN1ZLNkt5wSmaGd89fpawBfrc73n7xnP1JCmLoGZkONgHHJD6rlHrkQxpCCWZ8fytQbgWD9hrg3OZc5wI95wICX3hYs1Qta3oySGASU8xJQKCqa4PIIxwEH5
-libatk-bridge-2.0.so.0()(64bit) >= set:fem30
 libc.so.6(GLIBC_2.14)(64bit)  
 libc.so.6(GLIBC_2.2.5)(64bit)  
 libc.so.6(GLIBC_2.3)(64bit)  
 libc.so.6(GLIBC_2.3.4)(64bit)  
 libc.so.6(GLIBC_2.4)(64bit)  
-libcairo-gobject.so.2()(64bit) >= set:jgygltgx3h30
-libcairo.so.2()(64bit) >= set:metjTTC6y8L2C1Eq2wswsKE1ysyq1cMIlFueVI7tZfS4an2QcstFYptztoPPgwwDDMeqIGzypJ0UwQqpIEFyMevUcnQzdotf079NjRk55Gywz9KOdp0SjUsKJxHYmeYuhwbR6WrucnjfdL2GmaiWvQL5ZFC7T0X7ZGeZafpkCLI03TPHIa1UciD3uY05JDs4mWxaDd9oCXM3bMzb7RUCQ9Nfwe3AabUJ0MMQcoD3ge8fScJ6pF3UyNe2NAZ2ZklShbbjVxrgeSMnbQDWWfyMdp4MkjogW6p9h290yZ14OB3MUUY67fyeC5gs1BHpVZpAlZwakVR3VGhtZgqT2jdbzLxu5LiBZxZAtBnyI2JEwh7hdqeKwDAav2KYAKsrshD3KjEHZp0Pe
-libcolord.so.2()(64bit) >= set:lgixeaoKZApwNd0mFl4INuxWk7YhqRlTP2CM8babp97
-libcups.so.2()(64bit) >= set:ngdHvRhnvWZBN7OUYlTzEeE1Cd6N1EDZdaR8ZDxVXDYo7wrc4S9wrfX7nlzl1IKeRKnTVJ3MVqIOi50UvTsybvZH1G2bnCl6We6lF3JVmTrV0C61Ik8rbJRKOwbaWIYA3XLHOWAXMZtznDtYQjcTiwAj2JvgKyHYilZHwJl0fyQ1IxjBGFgLbcfdu3MAMpMOKm4u2dn1CiTkOb10
-libepoxy.so.0()(64bit) >= set:pimtdjoAHQIYQQ28MzhX0DlxtI5d8192ixQ6owaAnqFWO2VzZD67yPms0ZGI980WgjJ9gZKIQKlhapA9KvZ4Ngozp4UghY6xZ9BbOShIfPd70HuwDyFxxq3a7CwBoUNHKnYsggSMIW8Lo9B7CDicuqyXAhZ1GMiO6YfbbGnJsZCI0hAoE6aI6aV3g4H8PUOTOu7yYqslb6BLearmDZDMzzTyKMqhZadlQr7YRHIZ55ZJQbULInAorZcpJZj7N2Zt8HnBdLX3IzjSiYMZBurnOKf1e3kD6VcAwWUlddzUnZ1
-libfontconfig.so.1()(64bit) >= set:lj42EvZssU80
-libgdk_pixbuf-2.0.so.0()(64bit) >= set:keP7FwzxW4ZBMZd5eLtI8U7UC81a7UHFcJzhbUAIwJKb8slGTNEmmHQpZr8EsTOvLlmy6O2CYylKuKYtvSZIS2JbUflL8Qt5kpoVlhTM2AW0b1ZKSAMa36DF8oQP6TBZr3iJQ00
-libgio-2.0.so.0()(64bit) >= set:ofzMfiEvYMCfkrZEJudFXrnaGyWLmrVWcGSLdTWWYXxIZpnVelLJ3LgLgZpig5OP4fU9MhyhjSml48CoZmNEztZhliX0NCaEfyy3jlJkbIVs1FsIVoTeikhb168YjoEocCxi5qvcoH8LFWswGbWZ2ztzFJOUkWlh8YkZqaiyRdUa2Df65lAIKZEwasmRLc9sZ6VcZ9dNSG84RwElmZ2ojj7ZqShim5Edtv8PZaw7iTbiZsAx8vz56LS5IGNeyH2L068AuwgnAbm3wD9ZIH3nNEqMziCKdhhmyalZd1A2nNDVKKJg6DllVC8l8Y8iVp8pVsPcqBCg0JOaixE6ao64xjWgZrH8o3qFvZde7nBgQHEndwEhHj4eZ8hOpsCnZoZb0Tw8JbB3F2sF2gfNHc7zkAOzdG6Z6PeAYSfjBBepsS9VYdfZgZ33ZvX9STve8wE7NAA3O4WssftC9AJiZL1B6htLzWqQuoSH5Z2xN6eVkpw4dv68ZGnTUZItbaZcby4nSb0af6eaZxXfD7qZmJOZp4hA8jRQoMUCWfQ5p0OigKTUeDL4YKgcy8d3azRlQ1mnlRBu4CMZ48cSUbyv2awgrxYJ7uB1Qazf8NDqCvO6fzEfOq5pAZ9ZAt7NFzzZJZnSBHfrVYCi7iXE7qveO46WpFFenJHrA8gyLjtI5wMmQFGnTCNrL33bVRUvZv0HfkwJe7sZEo1Cet7XJXQb6bvhA0JK1HT6hE23GFH4eGCLHcpb5Vwk8lz6R7j9EBqYHhKaCbwzghuBH6v1HZoSCn4otjfYrlRZyZHgyMZwPoKtKZ1QZ74EYZaQTE71y4q3r9Mj0f8OwRuEkaN9W8GT0bEH5RdJUnZ14mWBQcJhEony3ZDqcgelDW3NRQAFcSUcBBMqrfZwe37uLkosGI2awSGWb91JeXuYdBjT1ZspZxZKS5PB9nd8zgcQ9YImolS9Zu9JcjnGLEHKSi5U1wu7E5UIVBgcX7
-libglib-2.0.so.0()(64bit) >= set:oe1i55k5Nh2mEmZAkkFscz6RrxmZoxTvqiH85nZEbFhZCqNLOVix7iBIdQWNTJ5I6YBZgs2gMrZ0SOeLAwM5pQ2pkLOcdq0n9OvzVJfW2GnSU6hfzeQlv02HmyjtAKqcCGuEic689oVwofn0auo7hIZdJYYDZ6ACg5gtkDIjVNWqyqbkuZy0aBJBZ1ZKcXZFqwWXktACuFF9Z3Z6evAaYRC9r4HseZxGxwl4cjybHG42300IFZsmedMMNjdeIwu67w1HMtIQ8iNy38e0wxMLxbQbgtdTymQwP1t4rgCzuyJ1NAIp298WdcWgX8Megycxa79u0ourLSdDzg3ZFKBuWmC0ZxBNaC0fanEcyHPTcA84wIBAlwBfMizl0RM0ZLYTQ11GLEA5NDTZAs1tD94rMx7VHnTnq45Zums0CzEhOw7qcoUmFbO1SjPabt8eepufHZCGeE7VUxIjloH2aF7aIOPjnWSQ6r2wx6JbtgkAYEpkbL7B07WPfgO9BIpMULDfvpykkKW6Nimh2fdFl9YnwSIQJ3GUwHvbefoHacY6OFwROMbO3M44yCWtr58qK0DAzwNMuA35kLXwI1Q8Msy8pzgsTy2USghQ8ZcX9ebGlVZ8x53c0rIzBsPTcsQ1AFhN4jiq7bZmtqiLyhYSrAgiGjtCZIJRkAfrwQa8SqjwVS7I64ZkBJ5qM1QVvBnmOCAxoJrIDb8ZFT02Ow8Y85VeFVbYi5BCZDM1hfpArSTsBcAwnWZrJ9rIrc7sE81RglDdOBnelNR228aBVfYOJged4Nvo6r6lOZ4GmdtOTmsBA45s0skIowo1mbAUZnQbJwxZ3ZkMXTgIZcniuAsKrp412dUwAybud2I9fQXuf0IgDFlyjGe2iqnjCZn3Xw0FAAWqehvoGjaRewLAJiCWK9kmatGMyl6dHy4nBWi1p93IxhUHh6f8y498WB0ZDQKoa2xo3GnXlxGSPPgLZEwFcAZwtnjZ5cLk35yuWozY8yXjBmdzqBWOo41shGUk6MHeffL86gvQgMNB90VdyqBKtTZKYf5Mtc59tDlsswnCfUgUy0kwffCGVqDFcYOMja5tuuHE4EMD1Ri2YfZrg77JqI128sFLpMGStg6d1infkOtev6OPKhaJ8FluqbSrPcobm3YS5pcR5F9mOS9UU2nEZIgs2pLD7QaZkaF9wzcLugbXd42td42otxriLftpOBx3igpsUwuykG8gNvsMTw10CDK96f1601YlVCWJnvzbZd08Or0rAlLMAs87wHaCtoq3z8PZlTEvAGB8JGtpRDbZ68J8WRNm5GZJ0zh2SanysZ2SBXmzyFmCGwrI0qG02JIb9zc2hmeCeKNwqicf2
-libgmodule-2.0.so.0()(64bit) >= set:heJjPMqjBSZbcRkvs
-libgobject-2.0.so.0()(64bit) >= set:mdXE7zPuR3adS9hXdx1e08XlLnZdyVASrjCOrOva5X3F5d0RJnxNvg33r4kGnMfjKONFt4PbVJ4C2K80Gw3XdZKYzgY8D3ni1ib7kNZ4BZuwIW5DbHgcXlMdxm1axi2l9THxNeIcMH9E25NjZkZkdY6v7RhZc5FIGJfP2CDegwS8w9CUMaCtVyFbh3xM3MmaZ1C38u0N2WA6QURc67bUCCfOgltmCK9HOI6w41UbajUwLpm3UpVCwZhPFkk10nMkFsGf6cr6UG7Joez0o4tA0XnIKozaOh4sDARkZgWBhgWPeEKpeWiGVHR8H2tcGtAMPXcnQCKRmhMqQF0lNmAv6Ud06lI6Bc02seUr4K6wJ8pZwvkFHVUQ7l032oBEdm7dPDvGa98Ot7rMD60Sj8sCFYmpDVaAnZpZptgjlLgLnIWp0uQAqcsFr7EPZ0rvwlasTdLDiZ5oWxcPNgIOFdl2lJxJSL7ud68LZ7MfeXK10ilWHqPPH7xTZbON5gVh28mrCXDncYw0QjqsoizAjeRgVarAK90OBHJTCm2
-libjson-glib-1.0.so.0()(64bit) >= set:lgaIxeIV7Z9EORZtP0HxkMkVpK0zb41vccG40XQlZoZHb
 libm.so.6(GLIBC_2.2.5)(64bit)  
-libpango-1.0.so.0()(64bit) >= set:meFYmQYoZwPoiik9OdpyOjw1U903ejjebC3uuBRSZoFfAiekQZoTkoHwBDVBqTpYrp1g7rEoR2t2QlXmjuT8PqZfKz8BuZkyJgg44kqshFgRZv5VJ0fjbxCYlrIlTvVvqpsdcytfKQ4v323XzkjWlTKEBrnEs8QWGequZoQgZ6aZeTnQUXtkNQuivEff1HbxYpTl0zUJ0Safbihjrl3IZDWJoV1GKMwRTwh4cWjcwcHdy8DlA1QpgXoZwVCvejBCunDG7mUJkpqMU59saY4uszO1EmJcixpH93GjOG5FXcAdsDZ8gXKUPSv9KQuHBiQhmxLyZe4lMnaIrYFNDsFS5vb6jCLJe6Y6bBv2a7q183J95RXQMEx6LFrIwmIMULl8r7CmTrZ5huyt9ctmiUjEJdBOJieILQGM3LPZDi4l2Oo0
-libpangocairo-1.0.so.0()(64bit) >= set:jfOrRtOc6qYbVQELVp4B9x9CU3
-libpangoft2-1.0.so.0()(64bit) >= set:kiheSeQ2
 libpthread.so.0(GLIBC_2.2.5)(64bit)  
-librest-0.7.so.0()(64bit) >= set:kgfc5NKIGDh1LxE6BwvlW7EVMFruS0
-librt.so.1()(64bit) >= set:jhyjl221
 librt.so.1(GLIBC_2.2.5)(64bit)  
-libwayland-client.so.0()(64bit) >= set:keed0sUM4ogPPRQfZf5U0xZeQ2ZojP2nmFbMH0ORDn5SXi1bfDFKfGNGLsOQYESS6iuweyqFFv
-libwayland-cursor.so.0()(64bit) >= set:gdOuegx24l1
-libwayland-egl.so.1()(64bit) >= set:gednthYZz
-libxkbcommon.so.0()(64bit) >= set:kfwQiLGa4R0MZknB9ZxHtRkoehXrUyNu6WhIKSwNVDu5ijZgXgIpWHdb7
 libxkbcommon.so.0(V_0.5.0)(64bit)  
 rpmlib(PayloadIsLzma)  
 rpmlib(PosttransFiletriggers)  
-rpmlib(SetVersions)  
 rtld(GNU_HASH)
Comment 2 Alexey Gladkov 2016-03-10 18:07:38 MSK
Простите за offtopic, но пользуясь случаем можно поинтересоваться (я без сарказма, совершенно серьёзно) какие типы символов извлекает lib.req ?

Объясню вопрос: в 2013 я пробовал переписать lib.{req,prov} на libelf и если в случае с prov всё более менее понятно, то с req я смог понять критериев отбора.
Comment 3 alexey.tourbin 2016-03-10 18:28:32 MSK
(In reply to comment #2)
> Простите за offtopic, но пользуясь случаем можно поинтересоваться (я без
> сарказма, совершенно серьёзно) какие типы символов извлекает lib.req ?

lib.req не извлекает символы. Вместо этого он запускает динамический линкер, который составляет полную карту разрешения символов. Чтобы было проще понять, считай, что это исполняемый файл и ты просто запускаешь его через execve c LD_BIND_NOW=1, только в самый последний момент вместо передачи управления в __libc_start_main он печатает карту разрешения символов и выходит.

$ /usr/lib/rpm/ldd --bindings /usr/bin/perl '' 2>&1 | grep /usr/bin/perl
     19804:     binding file /usr/bin/perl [0] to /usr/lib64/libperl-5.22.so [0]: normal symbol `boot_DynaLoader'
...
     19804:     binding file /usr/bin/perl [0] to /lib64/libc.so.6 [0]: normal symbol `exit' [GLIBC_2.2.5]

Дальше этот вывод немного рафинируется и делается join на прилинкованные библиотеки (с которыми слинкован /usr/bin/perl).  Так и получаются set-версионные зависимости.

> Объясню вопрос: в 2013 я пробовал переписать lib.{req,prov} на libelf и если в
> случае с prov всё более менее понятно, то с req я смог понять критериев отбора.

В общем, с помощью libelf нельзя легко "извлечь" символы, не реализовав при этом чего-то вроде ld.so, который подгружает разделяемые библиотеки и т.д.
Comment 4 Repository Robot 2016-03-10 20:00:27 MSK
rpm-4.0.4-alt100.90 -> sisyphus:

* Thu Mar 10 2016 Dmitry V. Levin <ldv@altlinux> 4.0.4-alt100.90
- lib.req: made "no symbol bindings" condition fatal.
- relative: fixed potential heap buffer overflow (by Gleb F-Malinovskiy).
- rpmrc.in: armv7: do not force FPU kind, rely on compiler defaults
  (by Sergey Bolshakov).

* Thu Mar 10 2016 Dmitry V. Levin <ldv@altlinux> 4.0.4-alt100.89.1
- ldd: reverted recent change (closes: #31870).