Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Oct 2014 21:22:23 -0700
From:      Alfred Perlstein <alfred@freebsd.org>
To:        freebsd-ports@freebsd.org
Subject:   Re: Reducing the size of the ports tree (brainstorm v2)
Message-ID:  <54545FFF.6070003@freebsd.org>
In-Reply-To: <20141031185621.GC15967@ivaldir.etoilebsd.net>
References:  <20141031185621.GC15967@ivaldir.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/31/14, 11:56 AM, 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
> EOD
>
> 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 :)
>
> regards,
> Bapt

Have you asked sjg about enhancing our make(1) to make HEREDOCs inside 
makefiles cleaner/nicer?

That would be best idea imo.  Then you could get rid of multiple files 
and merge into makefiles.  Maybe even eventually the patchfiles as well.

I had some basic thoughts on this, one trick would be to do like 
perl(1)'s DATA section of scripts.
http://stackoverflow.com/questions/13463509/the-data-syntax-in-perl

Other option is to make a separate shar(1)-like file to contain all meta 
data and add targets to deterministically create/delete this file, this 
file could include patches, description, plist and everything.  In fact 
it could contain the makefile itself...

Just some random thoughts that may/may-not find useful.

-Alfred



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54545FFF.6070003>