[opensuse-packaging] future libpng packaging (was: package name of libpng14)
Hi list, todays situation is as follows: libpng12-0 package has two subpackages, namely libpng3 and libpng-devel. The first one contains compatibility stuff and seems to be deprecated, as Christian Rodrígez pointed out yet, so only libpng-devel is relevant nowdays. libpng3 will be removed from libpng12-0 package. libpng-devel contains versioned and unversioned stuff, for example /usr/bin/libpng-config -> libpng12-config /usr/bin/libpng12-config /usr/include/libpng12 /usr/include/libpng12/png.h /usr/include/libpng12/pngconf.h /usr/include/png.h -> libpng12/png.h etc. While we are going to have libpng14-14 with 1.4 branch in addition to libpng12-0 I am forced to rework this package a bit. We propose (together with sbrabec) the following: The pair of main packages containing shared libraries will be libpng12-0 and libpng14-14 installable in parallel and independently from other four packages of course. There will be another pair of packages, libpng12-devel and libpng14-devel with versioned files (thanks to Jan Engelhardt to pointing this out). These packages will require libpng12-0 or libpng14-14 respectively. The last pair of packages form libpng12-compat-devel and libpng14-compat-devel containing the common files, like /usr/bin/libpng-config, /usr/include/png.h, etc. symlinks and man-pages (maybe we should have -doc package here?). These packages will require libpng12-devel and libpng14-devel respectively. BOTH will obsolete and provide libpng-devel symbol and BOTH will conflict with otherproviders(libpng-devel). Prefer: libpng14-compat-devel implies: 1. applications using 1.2 version only (-lpng12, etc.) should require libpng12-devel, 2. applications not checking for libpng version and failing with 1.4 branch should require libpng12-compat-devel, 3. applications building against 1.4 can depend on libpng-devel the same way as they do till now. With Prefer: libpng12-compat-devel in prjconf situation would be dual. One of questions is, if we should Prefer: libpng14-compat-devel or Prefer: libpng12-compat-devel in openSUSE 11.3. You can see packages in home:pgajdos:libpng14-14, I am using the latter Prefer: there. You can notice that spec files for both branches are the same except for -%define minor 2 -%define micro 43 +%define minor 4 +%define micro 1 %define branch %{major}%{minor} -Name: libpng%{branch}-0 +Name: libpng%{branch}-%{branch} What do you think? Any comments, suggestions, ...? Petr
On 2010-03-25 15:33:50 +0100, Petr Gajdos wrote:
The last pair of packages form libpng12-compat-devel and libpng14-compat-devel containing the common files, like /usr/bin/libpng-config, /usr/include/png.h, etc. symlinks and man-pages (maybe we should have -doc package here?). These packages will require libpng12-devel and libpng14-devel respectively. BOTH will obsolete and provide libpng-devel symbol and BOTH will conflict with otherproviders(libpng-devel).
update-alternatives might be worth a look here. then the main devel packages could be installed in parallel and you wouldnt need the additional packages. darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Thu, 25 Mar 2010, Marcus Rueckert wrote:
On 2010-03-25 15:33:50 +0100, Petr Gajdos wrote:
The last pair of packages form libpng12-compat-devel and libpng14-compat-devel containing the common files, like /usr/bin/libpng-config, /usr/include/png.h, etc. symlinks and man-pages (maybe we should have -doc package here?). These packages will require libpng12-devel and libpng14-devel respectively. BOTH will obsolete and provide libpng-devel symbol and BOTH will conflict with otherproviders(libpng-devel).
update-alternatives might be worth a look here. then the main devel packages could be installed in parallel and you wouldnt need the additional packages.
The easier solution is to not allow parallel installation of the devel packages. Either by dropping the older devel package completely (and thus only having one libpng-devel package in the repo for the newest libpng) or by adding proper conflicts (I'd really like to be able to do Provides: libpng-devel Conflicts: libpng-devel, but that doesn't work ...). All the non-standard (read: non-upstream) symlinking doesn't sound appealing to me. Richard. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Richard Guenther wrote:
On Thu, 25 Mar 2010, Marcus Rueckert wrote:
On 2010-03-25 15:33:50 +0100, Petr Gajdos wrote:
The last pair of packages form libpng12-compat-devel and libpng14-compat-devel containing the common files, like /usr/bin/libpng-config, /usr/include/png.h, etc. symlinks and man-pages (maybe we should have -doc package here?). These packages will require libpng12-devel and libpng14-devel respectively. BOTH will obsolete and provide libpng-devel symbol and BOTH will conflict with otherproviders(libpng-devel).
update-alternatives might be worth a look here. then the main devel packages could be installed in parallel and you wouldnt need the additional packages.
Using update-alternatives would require either uninstallation of the newer devel package or configuration change to compile package that links against unversioned libpng and requires libpng12. Imagine an application that links against unversioned libpng12 abd requires a library linked with libpng14. You would need libpng14 present, but unversioned files linked to libpng12. Will it work in OBS? Can you modify alternatives configuration before build start?
The easier solution is to not allow parallel installation of the devel packages. Either by dropping the older devel package completely (and thus only having one libpng-devel package in the repo for the newest libpng) or by adding proper conflicts (I'd really like to be able to do Provides: libpng-devel Conflicts: libpng-devel, but that doesn't work ...).
There is a lot packages that need porting. We can expect a longer period before all of them will be ported and even longer period for proprietary binaries support. Introducing full conflict does not look as a smart solution. Many projects link against properly versioned libpng files and both instances can co-exist in parallel. Only compatibility unversioned symlinks conflict.
All the non-standard (read: non-upstream) symlinking doesn't sound appealing to me.
This is a standard upstream symlinking. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.cz Lihovarská 1060/12 tel: +420 284 028 966, +49 911 740538747 190 00 Praha 9 fax: +420 284 028 951 Czech Republic http://www.suse.cz/ -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Fri, Mar 26, 2010 at 11:18:19AM +0100, Richard Guenther wrote:
(I'd really like to be able to do Provides: libpng-devel Conflicts: libpng-devel, but that doesn't work ...).
AFAIK you can express it with Provides: foo = %BUILDTIME Conflicts: foo != %BUILDTIME http://lists.opensuse.org/opensuse-packaging/2008-06/msg00031.html -- Martin Vidner, YaST developer http://en.opensuse.org/User:Mvidner Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
participants (5)
-
Marcus Rueckert
-
Martin Vidner
-
Petr Gajdos
-
Richard Guenther
-
Stanislav Brabec