poudriere distfiles - explain the process

Lars Engels lars.engels at 0x20.net
Mon Oct 21 10:39:07 UTC 2013

Am 10.10.2013 13:56, schrieb Bryan Drewery:
> On 10/10/2013 5:00 AM, Anton Shterenlikht wrote:
>> I've run poudriere distclean -n.
>> It took about an hour.
>> All the time /usr/ports/distfiles was empty,
>> which was confirmed at the end:
>> *skip*
>> OME}})
>> make: Fatal errors encountered -- cannot continue
>> clang: not found
>> make: "/pdr/ports/lang/v8/Makefile" line 24: warning: Couldn't read 
>> shell's output for "clang --version | /usr/bin/head -1 | /usr/bin/sed 
>> -e 's/.*clang version \([0-9]\)\.\([0-9]\).*/\1\2/'"
>> make: "/pdr/ports/mail/p5-Sendmail-Milter/Makefile" line 22: warning: 
>> Couldn't read shell's output for "/usr/local/bin/perl5.16.3 
>> -V:usethreads | /usr/bin/awk '/define/ { print "define"; exit }'"
>> ====>> Gathering list of actual distfiles
>> ====>> No stale distfiles to cleanup
>> #
>> So what was it doing all this time?
>> I think I probably misunderstand
>> the purpose of "poudriere distclean".
>> It's not just checking all exising
>> files under /usr/ports/distfiles
>> to see which are outdated, is it?
>> It's traversing the whole of the
>> ports tree, right? Why?
> It is looking at every port's Makefile you specify and then comparing 
> to
> the distfiles you have. Perhaps it can be optimized more.

Maybe that can be written to a sqlite database?
pkgng already uses them, so poudriere could do the same.
Add the distfiles on the first run of "distclean" and then update the 
every time "portsnap update" is run. Maybe even better if the database 
was part
of the ports tree, just like the INDEX files.

More information about the freebsd-ports mailing list