[arch-general] Fwd: Proposal for the static library problem in Arch

Delcypher delcypher at gmail.com
Sat Sep 28 10:26:56 EDT 2013


Hi,

Apparently I cannot post to arch-dev-public so I'm posting this here.
This is a proposal for making separate packages for static libraries
(with a patch for Boost C++ libraries as an example). Please see
below...

---------- Forwarded message ----------
From: Daniel Liew <daniel.liew at imperial.ac.uk>
Date: 28 September 2013 14:58
Subject: Proposal for the static library problem in Arch
To: arch-dev-public at archlinux.org


Hi All,

I've noticed recently that there have been problems with static
libraries being removed from packages. E.g.

https://bugs.archlinux.org/task/35257

https://bugs.archlinux.org/task/34491

https://mailman.archlinux.org/pipermail/arch-general/2010-September/016152.html

https://mailman.archlinux.org/pipermail/arch-dev-public/2013-March/024552.html

I've only just joined to mailing list so I couldn't find a way to
reply to the emails I have never received so I thought I'd just start
a new thread (apologies).

I see both sides of the argument as valid:

- Lots of people don't need the static libraries so why include them
in packages, they are wasting space.

On the other hand...

- Some developers need static libraries to build their projects.

In my case I needed to build a static library that has dependencies on
the Boost library. I do not want unresolved symbols to Boost C++
library functions in there.

I really don't think that completely removing static libraries from
the repositories is the correct approach because it I believe the
choice of whether or not to have static libraries on your system
should be down to the user and not the distro (yes I'm aware I could
compile boost myself... that's what I'm doing right now but what
happened to "Keep it Simple"? If I wanted to compile loads of stuff
from scratch I'd be using Gentoo).

So my proposal is this:

For popular packages that have can build static libraries and shared
libraries, build both but put the static libraries into their own
"*-staticlibs" package and the *-libs" packages should contain only
shared libraries. For example for boost you would have

boost : Development headers + other files
boost-libs : Boost shared libraries
boost-static-libs : Boost static libraries

The boost package dependencies would be set to be dependent on boost-libs but
**not** boost-staticlibs so the static libraries would only be
installed if the user explicitly installed them.

So everybody wins. Static libraries are not installed by default
saving disk space but the static libraries are available as packages
should the user decide they need them.

Looking at the PKGBUILD syntax this looked quite trivial to do so I've
done it for Boost and the patch is attached (apply against boost 1.54.0-3
PKGBUILD)

Thoughts?

Thanks,
Dan Liew
-------------- next part --------------
A non-text attachment was scrubbed...
Name: boost-seperate-static-libs-1.54.0-3.patch
Type: application/octet-stream
Size: 1733 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-general/attachments/20130928/01d813bf/attachment.obj>


More information about the arch-general mailing list