Messages in this thread | | | Subject | Re: package managers [was: FatELF patches...] | From | Valdis.Kletnieks@vt ... | Date | Wed, 04 Nov 2009 15:02:29 -0500 |
| |
On Wed, 04 Nov 2009 19:46:44 +0100, Mikulas Patocka said:
> When I did it (from Etch to Lenny), two programs that I have compiled > manually ("vim" and "links") stopped working because Etch and Lenny have > binary-incompatible libgpm. > > If some library cannot keep binary compatibility, it should be linked > staticaly, dynamic version shouldn't even exists on the system --- so that > no one can create incompatible binaries.
No, all they need to do is bump the .so version number.
I have a creeping-horror binary that was linked against an older audit shared library. Fedora shipped a newer one. The fix? Upgraded the lib, then snarfed the old version off backups (you *do* make backups, right?)
% ls -l /lib64/libaudit* lrwxrwxrwx 1 root root 17 2009-09-26 16:47 /lib64/libaudit.so.0 -> libaudit.so.0.0.0 -rwxr-xr-x 1 root root 107304 2009-04-03 15:47 /lib64/libaudit.so.0.0.0 lrwxrwxrwx 1 root root 17 2009-09-30 11:09 /lib64/libaudit.so.1 -> libaudit.so.1.0.0 -rwxr-xr-x 1 root root 103208 2009-09-28 16:00 /lib64/libaudit.so.1.0.0
They happily co-exist. My creeping horror references libaudit.so.0, the rest of the system references libaudit.so.1 and everybody is happy.
And some distros even pre-package the previous set of libraries for some packages:
% yum list 'compat*' Loaded plugins: dellsysidplugin2, downloadonly, refresh-packagekit, refresh-updatesd Installed Packages compat-expat1.x86_64 1.95.8-6 @rawhide compat-readline5.i686 5.2-17.fc12 @rawhide compat-readline5.x86_64 5.2-17.fc12 @rawhide Available Packages compat-db.x86_64 4.6.21-5.fc10 rawhide compat-db45.x86_64 4.5.20-5.fc10 rawhide compat-db46.x86_64 4.6.21-5.fc10 rawhide compat-erlang.x86_64 R10B-15.12.fc12 rawhide compat-expat1.i686 1.95.8-6 rawhide compat-flex.x86_64 2.5.4a-6.fc12 rawhide compat-gcc-34.x86_64 3.4.6-18 rawhide compat-gcc-34-c++.x86_64 3.4.6-18 rawhide compat-gcc-34-g77.x86_64 3.4.6-18 rawhide compat-guichan05.i686 0.5.0-10.fc12 rawhide compat-guichan05.x86_64 0.5.0-10.fc12 rawhide compat-guichan05-devel.i686 0.5.0-10.fc12 rawhide compat-guichan05-devel.x86_64 0.5.0-10.fc12 rawhide compat-libf2c-34.i686 3.4.6-18 rawhide compat-libf2c-34.x86_64 3.4.6-18 rawhide compat-libgda.i686 3.1.2-3.fc12 rawhide compat-libgda.x86_64 3.1.2-3.fc12 rawhide compat-libgda-devel.i686 3.1.2-3.fc12 rawhide compat-libgda-devel.x86_64 3.1.2-3.fc12 rawhide compat-libgda-sqlite.x86_64 3.1.2-3.fc12 rawhide compat-libgda-sqlite-devel.i686 3.1.2-3.fc12 rawhide compat-libgda-sqlite-devel.x86_64 3.1.2-3.fc12 rawhide compat-libgdamm.i686 3.0.1-4.fc12 rawhide compat-libgdamm.x86_64 3.0.1-4.fc12 rawhide compat-libgdamm-devel.i686 3.0.1-4.fc12 rawhide compat-libgdamm-devel.x86_64 3.0.1-4.fc12 rawhide compat-libgfortran-41.i686 4.1.2-38 rawhide compat-libgfortran-41.x86_64 4.1.2-38 rawhide compat-libstdc++-296.i686 2.96-143 rawhide compat-libstdc++-33.i686 3.2.3-68 rawhide compat-libstdc++-33.x86_64 3.2.3-68 rawhide compat-readline5-devel.i686 5.2-17.fc12 rawhide compat-readline5-devel.x86_64 5.2-17.fc12 rawhide compat-readline5-static.x86_64 5.2-17.fc12 rawhide [unhandled content-type:application/pgp-signature] | |