[packman] libsndfile splitting

Toni toni at links2linux.de
Mon Jun 15 22:41:46 CEST 2009


Am Freitag, 12. Juni 2009 schrieb Cristian Morales Vega:
> 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
should work with <= too, In the past I had often trouble with "<" (gstreamer 
packages and others) I guess it is a typo in the above link. But I'm not 
sure ...

> - 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.
Attention: %{version} is the actual version of the package !

> - 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.
those names where the old names of the packman packages, so I needed them. 
They will be deleted with the next SuSE version.

> 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...
ok, so this will be a problem for the next release, I'll drop this sub-package 
then.

Perhaps a rule is missing how to name the packages containing some binaries to 
use with a library (soundtouch, sndfile, jack, and many others...) And as 
always everybody make his own rules in nameing those sub-packages: *-tools or 
*-progs or a single unrelated name...

As long there are no clear rules for this case (and as packman has often the 
first package and/or always the leading one): So I rase the question: Why not 
following the packman name scheme if splitting packages ? 
There are a lot of samples and I ask me often why should we always change our 
package layouts to follow others ? 


> --- 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



-- 
have fun
Toni




More information about the Packman mailing list