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

Ricky G ricky1252 at
Fri Nov 20 23:11:10 UTC 2015

> Thank you very much for your script!
> I took a short look at it and have some questions/suggestions:
> Line 119/120:
> There you're burning an if. I have more skill in bash than in sh - but 
> is there no negation possible?

 Honestly, the main reason I started this is to just see what I could do. Feedback is most appreciated as improving my skills is one of my goals here. Bash and sh are extremely similar, this is most likely lack of knowledge on my part. Do you mind explaining further?
> Line 162:
> BUILD_LIST="`(cat ${PATCH_FILE} | grep -o '^Index:[ ].*' | sed 's/Index: 
> // ; s/Mk.*// ; s/Tools.*// ; s/Templates.*// ; s/Keywords.*//' | grep 
> -o -e '.*\/.*\/' | sed 's/.*\/.*\/files\/$// ; s/\/$//' | sort | awk 
> '!a[$0]++')`"
> This line is relative complicated. Is there any reason not to let svn do 
> the work? Like:
> BUILD_LIST="`${SVN} status | grep -o -e '.*\/.*\/' | awk '{ print $2 }'`> Your way is faster (and more accurate, since i'm currently too short on 
> time), but the other way would allow applying multiple patches and 
> manual changes without any problems. But i'm not sure if this is really 
> needed.
 Using the diff file instead of svn is of course faster because there has much less data to go through. I was considering adding multiple diff support. Going to take a closer look at this. Do you think its more important to focus on the diff file or the port tree for generating a build list? The main reason I didn't want to use the port tree, at least in my case, is because I have so many ports that are not sync'd with the current FreeBSD tree.
 The main reason that command is complicated is to strip many possible non-port files/folders so that the list wont contain something like Mk/Uses/. The build list you suggested would work, but most of the sed command is still needed to stripe non-ports. Looking at it again, I see where I could make it a bit shorter and easier to read. The sort and awk command at the end is just make it look nice and remove duplicates. Not really required.
> Line 201:
> svn revert -R would do the same, both of our approaches have a problem: 
> the ignore for example added files.
 Yeah, I agree. This is a big problem with added patchfiles. I added a "Hard Revert" (-R) option that I was considering making make the default that should fix this problem. Can you check and see if it does for you? I know some people maybe weary of the rm -rf command, It is also why I added so many checks on a properly set port tree. Do you think it would be better to just do this "Hard Revert" and remove the other option?
Thanks for the feedback! I'v already started working on 0.0.2! I just finished adding better failed patch output. Going to also add a option to override the scripts portsdir, and add support for multiple diff files, and take another look at my BUILD_LIST to make it simpler. Keep the feed back coming please! =]


More information about the freebsd-testing mailing list