Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jan 2001 10:46:41 -0500
From:      "Antoine Beaupre (LMC)" <lmcabea@lmc.ericsson.se>
To:        ports@freebsd.org
Cc:        anarcat@tao.ca
Subject:   RFC: Virtual ports and various debian stuff
Message-ID:  <3A670FE1.48BD9D2B@lmc.ericsson.se>

next in thread | raw e-mail | index | archive | help
Hello!

[please CC: me, not on the list]

I would like to know if some of you guys have been looking at the debian
package system. There's a few concepts there we might just put into
freebsd.

For those of you who do not know, the debian (linux distro) possesses a
quite extensive package collection (a bit like fbsd's packages system,
only better ;), nothing comparable to the ports, though) which is very
efficient. It includes a few concepts like virtual packages, in which a
certain program *provides* a certain function (heck, we only need ONE
smtpd!), conflicts management, etc...

Doc: http://www.debian.org/doc/packaging-manuals/packaging.html/
http://www.debian.org/doc/debian-policy/

The one interesting me for now is the virtual packages. Apart from
helping orienting the admin in managing the 4000-item port collection,
it could be a particularly useful thing to have when managing
dependencies. "This is so that, for example, supposing we have 

       Package: vm
       Depends: emacs

and someone else releases an xemacs package they can say 

       Package: xemacs
       Provides: emacs
"

so that installing "vm" won't install "emacs" if you already have
"xemacs" installed! This could be extended to also provide versionning
for the dependency. For example:

Package: kde-2
Depends: qt-2

Package: qt-2
Provides: qt-2

well, you get the picture...

It would be very nice to be able to:

$ cd /usr/ports/mail/pop3d
$ make install clean

Of course, there would be the mandatory array of warnings and buzzers
starting up saying that "THIS IS NOT FBSD'S FREAKING POP3D AND WE DO NOT
ASSUME RESPONSIBILITY IF IT RUINS YOUR LIFE!" and mesages saying exactly
which package is installing. 

I don't think this would be very hard to implement in the ports. I could
already see a few applications:

java/jdk
www/client
www/server
irc/client
irc/server

etc, etc...

One could simply make these ports install a "www-client" binary that
would be a link to (say) w3m and a irc-client link to (say) ircII. The
port collection is capable of checking the existence of these files for
dependencies.

One might also consider debian's classification of software... It is not
clear wether this is really part of their package system, but anyways,
it could be applied to freebsd as well. It's the concept of Priority I'm
talking about here. They have 5 levels: required, important, standard,
optional, extra. "Required" could be considered as "in the base tree"
for freebsd. "Important" might also qualify for the main tree in
freebsd, but are not "required" for proper operation. "Standard" is a
"default" all round "let's-get-everyone-happy" category. "optional" is
stuff like X, and "extra" is stuff that might make conflicts.

We could avoid a so complex classification, but it might be a good idea
to at least _have_ one. I read threads about moving to an all-round
package system for freebsd, I mean, some of the base tree stuff could be
made into "required" stuff and other into "important". For example, I
would put the current "bin" distrib into a "required" "bin" package.
"sys" would be a (very!) "important" "sys" package. You get the picture. 

I am willing to work on this, I have a moderate, user-level knowledge of
the port system (I made ports myself) and I could start making virtual
ports soon enough. But I would like to hear you guys out first. 

A.

--
La sémantique est la gravité de l'abstraction.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A670FE1.48BD9D2B>