Roger Oberholtzer wrote:
On Tue, 2013-02-12 at 17:30 -0300, Cristian Rodríguez wrote:
El 12/02/13 06:48, Roger Oberholtzer escribió:
When I make a library on Linux (GNU tools), I can leave things undefined. Yes you can, however you should not do this unless you have a very compelling reason or we, packagers will hate you foreva :-)
We do not do this. Our Makefiles are used to generate both Linux and Windows binaries (MinGW). So they do what is needed to work for both. So, we specify libraries when making libraries.
If you want to build for portability, that's the way to go. If you want Tivoize a system that makes it difficult or impossible for a user to upgrade, but can be upgraded by the "suse-build-tools" (if you have access to them -- for some people they don't work, but that's presuming your access wasn't cut off for some reason), then you use signed binaries that all interlink with versions now, but later, checks of the signatures. MS already has this option -- but it's not ever used with user systems that I know of. In fact MS has gone the extra mile to make sure that multiple versions of the same libraries can live side by side, because in real life -- people are still running XP apps on Win 7 and probably win8. Opensuse is guaranteeing the obsolescence of each release by making it binary incompatible with previous releases. Christian said this: See, all dependencies on system libraries must be known by the package manager, the build system etc.. so, all needed libraries get installed or recommended and the build system knows when and how to rebuild stuff.. problem is.. RPM does not account for dynamically loaded libraries/modules.. so esentially you are on your own. --- Sounds like a bug in RPM. In fact, the biggest bug in RPM, appears to be your claim that you can't have multiple version of the same software installed on a machine and have software link with the appropriate version at run time. I don't see why you don't hard code the load time library version number you want into the link phase. Just stop linking with libc.so.6 or libperl.so Why can't you do this: -rwxr-xr-x 1 1960896 Jul 15 2012 /lib64/libc-2.15.so* -rwxr-xr-x 1 1966974 Oct 11 23:35 /lib64/libc-2.16.so* -rwxr-xr-x 1 10160535 Jan 16 17:24 /lib64/libc-2.17.so* lrwxrwxrwx 1 12 Jan 30 02:15 /lib64/libc.so.6 -> libc-2.17.so* --- Let multiple version of a library install -- and if your code need a specific version, then link to the non-generic name. Same with perl. You would be loads better off than you are now -- because now, you are embedding those specific versions into each generic and linking all your apps with the generic name, guaranteeing that a user can't update *their* system libraries without the distro having a hissy-fit. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org