[packman] libsndfile splitting

Cristian Morales Vega cmorve69 at yahoo.es
Fri Jun 12 01:38:06 CEST 2009


2009/6/11 Toni <toni at links2linux.de>:
> Am Dienstag, 9. Juni 2009 schrieb Cristian Morales Vega:
>> Looking at the libsndfile spec file, there is
>>
>> Package sndfile
>> Provides: libsndfile = 1.0.17
>> Obsoletes: libsndfile <= 1.0.17
>>
>> Package libsndfile%{_SO_nr}
>> Provides: libsndfile:%{_libdir}/libsndfile.so.1
>>
>> that shows a package (libsndfile) splitting into two (sndfile and
>> libsndfile%{_SO_nr}). But the thing is that for all the supported
>> openSUSE versions (>=10.3) that isn't true.
>> sndfile provides the executables and man pages, but the openSUSE
>> package providing them is libsndfile-progs, not libsndfile.
>>
>> So "sndfile" is an update for libsndfile-progs and
>> "libsndfile%{_SO_nr}" is an update for libsndfile. With some Provides
>> and Obsoletes there would be enough, there is no need for the
>> split-alias (Provides: libsndfile:%{_libdir}/libsndfile.so.1).
>>
> new package uploaded with Obsoletes/Provides for libsndfile-progs

Thanks.
But this still triggers the zypper dup problem. To make ir clearer I
attach the patch I propose
- The "<=" from Obsoletes are changed to "<" following the advice from
http://en.opensuse.org/Upgrade_Dependencies#Renaming_a_package
- I change "1.0.17" for "%{version}" since it can also update a
libsndfile-progs 1.0.18/19 from, perhaps, openSUSE 11.2 when is
released.
- The libsnd* names aren't used in any supported openSUSE version, so
can be removed.
- The "Provides:	libsndfile:%{_libdir}/libsndfile.so.1" is for a
package split that doesn't exists (from any openSUSE supported
version), so can also be removed.

Also note that octave has been dropped from Factory, now lives in
Contrib. Not sure about the Packman policy about on which repos
packages can depend...


--- libsndfile.spec
+++ libsndfile.spec
@@ -45,12 +45,8 @@
 BuildRequires:	zlib-devel
 %endif

-Provides:		libsnd
-Obsoletes:		libsnd
-Provides:		libsndfile = 1.0.17
-Obsoletes:		libsndfile <= 1.0.17
-Provides:		libsndfile-progs = 1.0.17
-Obsoletes:		libsndfile-progs <= 1.0.17
+Provides:		libsndfile-progs = %{version}
+Obsoletes:		libsndfile-progs < %{version}

 # pmbs ...
 %if "%{_with_octave}" == "1"
@@ -68,9 +64,8 @@
 %package -n libsndfile%{_SO_nr}
 Summary:	Shared libraries for libsndfile
 Group:		System/Libraries
-#Provides:	libsndfile = 1.0.17
-#Obsoletes:	libsndfile <= 1.0.17
-Provides:	libsndfile:%{_libdir}/libsndfile.so.1
+Provides:	libsndfile = %{version}
+Obsoletes:	libsndfile < %{version}

 %description -n libsndfile%{_SO_nr}
 Libsndfile is a C library for reading and writing sound files such as
@@ -103,10 +98,8 @@
 Requires:	zlib-devel
 %endif
 Requires:	sqlite-devel
-Provides:	libsndd
-Obsoletes:	libsndd
-Provides:	libsndfile-devel = 1.0.17
-Obsoletes:	libsndfile-devel <= 1.0.17
+Provides:	libsndfile-devel = %{version}
+Obsoletes:	libsndfile-devel < %{version}

 %description devel
 Libsndfile is a C library for reading and writing sound files such as
@@ -132,8 +125,8 @@
 Group:		System/Libraries
 PreReq:		coreutils
 Requires:	octave
-Provides:	libsndfile-octave = 1.0.17
-Obsoletes:	libsndfile-octave <= 1.0.17
+Provides:	libsndfile-octave = %{version}
+Obsoletes:	libsndfile-octave < %{version}

 %description octave
 The libsndfile is a C library for reading and writing sound files such


More information about the Packman mailing list