[2019] Advanced ports toolkit: near-perfect packing-list generation - Marc Espie
The OpenBSD ports tree uses an unique approach. Instead of ad-hoc scripts that manipulate textual information, we do have a semantic parser that creates objects for each element in the plist. The last year saw a complete rewrite of the most complicated piece of machinery, namely update-plist. There are lots of interesting challenges, specifically how to write a generic tool that will handle all the semantic annotations that currently figure in packing-lists with minimal special-casing: * variables that expand to nothing for some flavors, * ambiguous variable expansions, * directories that may not exist for python2 ports, * automatic dispatching to the right subpackage and fragment, * shared libraries, * smart file type handling for libraries, icon themes, etc Before and after comparison shows a new tool that requires minimal human intervention (perfect packing-list re-generation in over 95% of the cases), where the old update-plist required hand-holding over half the time. Marc E
βhttps://exquisite.tube/w/1RSJ3XuTsFLbTRMBTK1kJG