On 2013-01-15 07:16, David Halko wrote:
What is the reason for "-devel" packages under Linux?
Is there a need for such a thing under another OS family?


From my experience and expectations, I'd say yes these are needed.

I believe, similar separation did have place in Sun packages with
their "root", "usr" and "header" subdivision, but I did never really
make out what stood for what. IIRC it was not a consistent scheme
between various packages and the descriptions were certainly not
helpful to figure out whether I want a "root" or an "usr" one...

As I recently posted, sometimes pieces of software are only needed
for the shared libraries it delivers to the end-systems (not even
the headers as might be needed on the build systems), and not the
binary programs unless they are the API as happens for some script
invoked projects.

For that particular post, I needed to link with OpenLDAP because
the opensource project I was building was only written to work
with that API. As such, I needed the package to deliver maybe 30
files to the build host and half-a-dozen to runtime hosts - not
five screenfuls list of docs, programs, config samples, manifests
and methods to hook into SMF, and other resources that are certainly
useful when I set up an OpenLDAP server as such.

Okay, maybe with this one it is more of a nit, the package requiring
some 10Mb of space overall, but when dependencies come into play -
such overheads accumulate. For each zone and OS image. This is more
files to update, more to backup or verify for fingerprints - for
zero received usefulness from them. "Only a liability" as they say ;)
Given that OS image installations might go onto more performant
hardware (say SSDs today) with smaller size and higher $/GB ratio,
every such wasted gigabyte is also a monetary loss of space that
you have to buy and not use, or that you could've used better to
actually gain some efficiency from the bits you do read often.

A binary MySQL client might today require the full 180Mb MySQL server
installation into its zone - because there is no smaller package for
Solaris, even if a single-megabyte lib is all that's needed...

For example, with dependencies as they are, if I wanted to link a
program with some graphics libraries (an image converter perhaps),
I'd need to set up most of the GNOME desktop environment and audio
and USB to boot. All for the ability to read and interpret a few
image formats ;)

Now, improper dependencies are known to be the Achiles' foot of many
packaging systems, and Sun distros were too notorious for that - so
we had lists of what packages to mark for installation and ignore
complaints from the installer program about unsatisfied dependencies -
but I believe that such intent-driven sub-packaging does make sense,
should be maintained, and pointers to sub-packages (or facets) should
be in the "I need" dependency manifests (what do you need: project's
libs to fulfil an ABI? libs+client programs for a command-line API?
lib+h for a compiled API? All the docs and bells and whistles and
the sbin for a full distro to use that project itself?)

My2c, //Jim Klimov



-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com

Reply via email to