Request for Features: Ports Re-engineering
stephen at math.missouri.edu
Mon Dec 17 07:27:38 PST 2007
Alejandro Pulver wrote:
> On Mon, 17 Dec 2007 07:48:07 -0600
> Stephen Montgomery-Smith <stephen at math.missouri.edu> wrote:
>> One thing to look at is package building. I don't know how they build
>> the official packages, but my guess is that they build each one from a
>> clean system. But, for example, you have tons of little ports each
>> depending on xorg-server, and to rebuild xorg-server for each little
>> port must be a real burden.
> The packages are built in a clean system, which is a chroot environment
> (i.e. everything in / from a base install) recreated each time a port
> is built. Packages are used, they aren't rebuilt each time. See:
> /usr/ports/Tools/portbuild: the scripts running in pointyhat
> http://tinderbox.marcuscom.com/: based and synchronized with the other,
> but preferable for "user" builds (web interface, etc).
Ah, yes, that makes a lot of sense. So no wonder people are bothered by
the slow speeds of pkg_install.
> Auto-detection is certainly avoidable. Some for example only enable
> detection of MMX/SSE/etc instructions when not building in
> pointyhat/tinderbox. IIRC ports should respect the users' choice, but
> it's not easy with the current OPTIONS handling (some have knobs that
> can be set to on/off/auto).
> I think this could be solved (for both current and possible new system)
> like it's done with Python/wxWidgets/Apache/etc where there are port
> preference/user preference/auto detection/system default, in a properly
> fallback order. The problem is that there is no framework to do that
> with OPTIONS for individual ports.
I think that if a totally new system is created, it should be done in
such a way that the port creators are forced to use a systematic
approach for OPTIONS. This is currently done in many different ways.
> The messages in pkg-message are packaged with the description/etc in
> the generated package. However some ports just print text to the
> screen, and that isn't recorded. It mostly depends on the port, but a
> recording framework may be useful (i.e. echo to screen and pkg-message).
My point was not that ports sometimes generates messages that packages
don't. Rather it is that packages created using "make package" have
messages whereas those created with "pkg_create" don't. (Openoffice is
a good example of this.)
More information about the freebsd-ports