Reducing the size of the ports tree (brainstorm v2)

Matthew Seaman m.seaman at
Sat Nov 1 09:20:29 UTC 2014

On 31/10/2014 18:56, Baptiste Daroussin wrote:
> Hi all,
> tijl@ spotted an interesting point, distinfo and pkg-descr files files
> convenient are taking a lot of space for "free", we can reduce the size of the
> while ports tree by a factor 2 by simply merging them into one of the other
> files (Makefile and/or pkg-plist) from my testing it really devides
> significantly the size of the tree.
> Problem is how to merge them if we want to.
> What we do not want to loose:
> - Easyness of parsing distinfo
> - Easyness to get informations about the description
> so far I have not been able to figure out a user friendly way
> Ideas I got so far only concerns pkg-descr:
> Adding an entry in the Makefile for the WWW:
> WWW= bla
> or an entry in the plist: @www http...
> for the description the Makefile is not suitable as multi line entry in
> Makefiles are painful
> Maybe a new keyword:
> @descr <<EOD
> mydesc
> in 
> multiline
> which could easily be added to the plist parser in pkg. But I'm do not find that
> very friendly in particular for make(1) to extract the data.
> Concerning the distinfo I have no idea.
> so this mail is a call of ideas :), if nothing nice ideas is found we will just
> do nothing here :)

Most respondents in this thread are talking in terms of incorporating
the small files in a port into one or other of the larger files.  That's
an obvious first step.  However, I wonder if it wouldn't make more sense
to create one file which includes all of the other bits of port
infrastructure.  This should be a text format that people can read
easily and manipulate with a text editor or standard unix tools.
Something like UCL might be a good choice.

So the first step would be to pack Makefile, pkg-plist, pkg-descr,
distinfo into one file, and add a step to unpack the port contents as
the first thing when building a port.  Which should be something that
can be handled through the category and top-level Makefiles.  This
should achieve the aim of reducing inode consumption and the
fragmentation in the filesystem but retain backwards compatibility for
everything that uses the ports currently.

Ultimately though, I'd be happy to see the metadata not related to
actually building the port -- maintainer, comment, categories, license
info, even master sites and other information about distfiles moved out
of the Makefile and become variables in the port file.



Dr Matthew J Seaman MA, D.Phil.

JID: matthew at

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 971 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the freebsd-ports mailing list