Call for Help: need script for patching ports tree, building with poudriere

Torsten Zühlsdorff mailinglists at
Sat Nov 7 17:56:56 UTC 2015

Hello Craig,

> I've been working on some advanced scripting with Eitan Adler.
> We are interested in experimenting with integrating Jenkins + Phabricator
> using:
> For starters, we want to see what we can accomplish with ports.
> Can someone provide a script that does the following:
> (1)  Takes a patch file
> (2)  Applies the patch file to a checked out ports tree
> (3)  If patching fails, quit and report an error
> (4)  If patch succeeds, do a simple guess to figure out which ports were
> affected
> (5)  Create a file build.ports.txt which lists these ports, and can be used
> as input
>       to poudriere, by invoking:
>            poudriere bulk -f build.ports.txt
> (6)  In addition, run portlint, port test, and any other appropriate
> scripts to
>       test that the patched ports following the porting style guidelines.
> For example, if the patch in this review was submitted:
> then a build.ports.txt file with this content would be created:
> [List of ports]
> and poudriere would be invoked to build those ports.
> Does such a script exist?

I wrote myself a similar script, but it is very basic (and PHP).

- assumes that patches are generated against /usr/ports (which makes 
applying much easier)
- apply the patches
- get the ports affected by the diff with svn diff
- runs portlint
- runs poudriere for many versions...
- reset every change made to the portstree

There are many glitches and it is not this fast, but it safe much time 
while i wrote port updates. I get a very simple report if everything is 
fine and then i submit my PR. But of course any other workflow is possible.

I aimed to support multiple poudriere server to speed up the process. 
But i have way more ideas than time... ;)

> If not, would someone by interested in working on such a script, and
> providing it
> via GitHub at ?

I will help you, but currently (which means till the end of the year) i 
am very short on time.

Are there any requirements to the script in language, performance, etc. ?


More information about the freebsd-testing mailing list