[Fedora-packaging] static subpackages (was: sparse 0.2, headers and static lib)
Matt Domsch
Matt_Domsch at dell.com
Wed Dec 6 04:44:18 UTC 2006
On Tue, Dec 05, 2006 at 03:59:32PM -0800, Toshio Kuratomi wrote:
> On Wed, 2006-12-06 at 00:32 +0100, Axel Thimm wrote:
> > On Tue, Dec 05, 2006 at 04:34:28PM -0600, Matt Domsch wrote:
> >> 1) need -devel have a Requires: %{name}-%{version}-${release} if that
> >> doesn't include a shared library? I wouldn't think so, but it's a
> >> "Must" in the guidelines.
>
> What's in the %{name} package?
$ rpm -qpl sparse-0.2-1.x86_64.rpm
/usr/bin/cgcc
/usr/bin/sparse
/usr/share/doc/sparse-0.2
/usr/share/doc/sparse-0.2/FAQ
/usr/share/doc/sparse-0.2/LICENSE
/usr/share/doc/sparse-0.2/README
i.e. no libsparse.so, and nothing that a -devel package needs. So I
don't see the need for a dependency here.
> > > 2) need I create a -static package for the static library?
> > >
> Yes.
> >
> > > 3) if yes, should -static have a Requires:
> > > %{name}-devel-%{version}-%{release}? Should this go in the
> > > recommendations for all -static packages?
> >
> I would think yes. Does anyone see a problem with doing that?
So 3 is yes, no real problem there. Here's what -devel provides:
$ rpm -qpl sparse-devel-0.2-1.x86_64.rpm
/usr/include/sparse
/usr/include/sparse/allocate.h
/usr/include/sparse/bitmap.h
/usr/include/sparse/compat.h
/usr/include/sparse/dissect.h
/usr/include/sparse/expression.h
/usr/include/sparse/flow.h
/usr/include/sparse/ident-list.h
/usr/include/sparse/lib.h
/usr/include/sparse/linearize.h
/usr/include/sparse/parse.h
/usr/include/sparse/ptrlist.h
/usr/include/sparse/scope.h
/usr/include/sparse/storage.h
/usr/include/sparse/symbol.h
/usr/include/sparse/target.h
/usr/include/sparse/token.h
/usr/lib64/libsparse.a
/usr/lib64/pkgconfig/sparse.pc
/usr/share/doc/sparse-devel-0.2
/usr/share/doc/sparse-devel-0.2/LICENSE
but I'll move libsparse.a into its own -static package.
> You also need to writeup your reasons for having a static library in the
> first place and presenting it to FESCo. The fact that Jeff Garzik wants
> to use it is a two edged sword -- on the one hand it means there is a
> need for the library. OTOH, it means that the library is going to be
> used by multiple programs which is what leads to the security and other
> problems.
as noted, it's not a big security concern for this development app usage.
> The use of -static package names is supposed to help us deal with this
> but we know it's not a complete job.
>
> Jeff's comment that maybe the library is special and shouldn't be
> subjected to the same ABI tests as the majority of libraries has merit.
> But we don't have any guidelines in place for that... I don't think we
> even have guidelines that forbid having that kind of ABI unstable
> library in the first place.
It's the instability of the API/ABI that keeps the project from
wanting to expose a versioned shared library. That's more work than
it's ready to maintain; Jeff's fine with it being fluid and changing
his own app accordingly. I hadn't packaged the shared lib in earlier
versions because nothing else needed it; now that something does, that
doesn't mean the API needs to be versioned, except that shared libs
would require that overhead.
Thanks,
Matt
--
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
More information about the Fedora-packaging
mailing list