From owner-freebsd-ports Thu Jan 18 7:47:29 2001 Delivered-To: freebsd-ports@freebsd.org Received: from imr1.ericy.com (imr1.ericy.com [208.237.135.240]) by hub.freebsd.org (Postfix) with ESMTP id 34FE437B400 for ; Thu, 18 Jan 2001 07:47:04 -0800 (PST) Received: from mr4u3.ericy.com (mr4u3.ericy.com [208.237.135.127]) by imr1.ericy.com (8.10.2/8.10.2) with ESMTP id f0IFkwK18593; Thu, 18 Jan 2001 09:46:59 -0600 (CST) Received: from noah.lmc.ericsson.se (noah.lmc.ericsson.se [142.133.1.1]) by mr4u3.ericy.com (8.10.2/8.10.2) with ESMTP id f0IFkuH14092; Thu, 18 Jan 2001 09:46:56 -0600 (CST) Received: from lmc35.lmc.ericsson.se (lmc35.lmc.ericsson.se [142.133.16.175]) by noah.lmc.ericsson.se (8.11.2/8.9.2) with ESMTP id f0IFkq723495; Thu, 18 Jan 2001 10:46:53 -0500 (EST) Received: by lmc35.lmc.ericsson.se with Internet Mail Service (5.5.2653.19) id ; Thu, 18 Jan 2001 10:46:51 -0500 Received: from lmc.ericsson.se (lmcpc100455.pc.lmc.ericsson.se [142.133.23.150]) by LMC37.lmc.ericsson.se with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id CYMX5MRT; Thu, 18 Jan 2001 10:46:44 -0500 From: "Antoine Beaupre (LMC)" To: ports@freebsd.org Cc: anarcat@tao.ca Message-ID: <3A670FE1.48BD9D2B@lmc.ericsson.se> Date: Thu, 18 Jan 2001 10:46:41 -0500 Organization: LMC, Ericsson Research Canada X-Mailer: Mozilla 4.7 [en]C-CCK-MCD (WinNT; U) X-Accept-Language: en,fr-CA,fr MIME-Version: 1.0 Subject: RFC: Virtual ports and various debian stuff Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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