Packaging system effort

Chuck Robey chuckr at chuckr.org
Fri Feb 27 16:06:31 PST 2004


Enemy God wrote:

Can't find the exact piece to quote, but I think it
was Simon that didn't like that ports should be installed
in /usr/...
So what about installing them in /opt ???

Is that too much Solaris (or too little BSD) ???



       Jasse -- Installing Solaris/x86 right now, DF later...

 

I probably should keep silent, I haven't contributed up to now, but you 
*really* shouldn't force *any* base install location, because it will be 
wrong for some folks.  For any particular disk allocation, there are 
*bound* to be some really wrong choices, which are fine and 
recommendable in other cases.  I know, from seeing how many other 
packaging efforts *do* handle this, that it's not something that's 
needed to do, so why force it in this case?

Let the user do it.

You can stop reading at this point, 'cause I want to add a rant over 
dependency checking, and you should be warned you don't have to read the 
rest.  In my own opinion, one of the most egregious problems that most 
other packaging systems impose is their broken dependency checking.  
This causes 3 different forms of problems:

1) In very strict cases, where the dependency checking is done *solely* 
and strictly by the use of a private database, it forces a user to be 
willing to use *only* those packages supplied by the system, and only 
done in those ways.  It usually means that a user then cannot take any 
advantage of packages that are new, until they become available by your 
system.
2) If your package system becomes popular, like RPM is, then you get a 
very severe problem of dependency lists being different for the same 
application, either because one porter believes that a audio helper app 
is needed, and another author doesn't agree, or because of other 
philosophical differences.  This causes horrible dependency traps, and 
anyone who has used rpms from more than one source can tell you this.  
I've been recently forced to learn Linux (an employer forced it), and 
rpm dependency problems are huge.
3) Because of dependency checking, ports are often set up very 
ambitiously.  I will use again the example of audio: what about the 
folks who have no audio cards, don['t want one, and are made to miss 
applications that simply will not build without a specified dependency 
on audio apps?

What I am asking is, you will make things much better for one class of 
folks, if you allow one form of dependency checking to exist: I will 
call that form "rational" dependency checking ... I'm horrible at 
naming, so please don't read too much into it.  What I'm getting at it, 
the dependency checking should have a mode where the checking is done by 
the actual filesystem contents, and kernel.  If a dependency on a 
particular library must exist, have an app that compiles a test prog, 
gets and tests the symbol (or maybe just links?), and doesn't depend on 
a history of your own dependency being installed.  Let outside software 
allow to be installed.

Also, allow folks to decide that all the possible functionality of a 
system need not be chosen to be installed.

Who will benefit most?  Probably, the guys who know how to fix it 
themselves, us programmers.  Sure would be nice to have at least one 
system that doesn't try to force birth to death control on apps.  If you 
do this, you can easily crank up a better naming system where the name 
of chosen extensions can be tacked onto the package name.  It won't get 
rid of outsiders ability to pick a particular binary package to install, 
although it might mean a larger set of packages to build to get a full 
build for one particular app.

OK, had my say, and I won't bother you again over it.





More information about the Kernel mailing list