[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