Request for Features: Ports Re-engineering

Stephen Montgomery-Smith 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.)

Stephen


More information about the freebsd-ports mailing list