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@xxxxxxxxxxxxxx> Date: 28 September 2013 14:58 Subject: Proposal for the static library problem in Arch To: arch-dev-public@xxxxxxxxxxxxx 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
Attachment:
boost-seperate-static-libs-1.54.0-3.patch
Description: Binary data