The following very simple code shows that it's possible to figure out
most of the branches (new % format) automatically based on comparison
between fullpkgname and fullpkgpath.
There are a few "false positive" (innocuous). I'm going to check soon that
I have them all.
This ought to yield a "better" way to achieve pkg_add -z, assuming I get
some kind of nicer pkg_info output (just the stem/flavor + possible branch).
Of course, this relies on pkgpath and pkgnames basically matching in every
case that actually matters...
#! /usr/bin/perl
use OpenBSD::PackageName;
open my $fh, "cd /usr/ports && make dump-vars |";
while (<$fh>) {
next unless m/(.*)\.FULLPKGNAME=(.*)/;
$fullpkgpath = $1;
$fullpkgname = OpenBSD::PackageName->new_from_string($2);
$stem = $fullpkgname->{stem};
if ($fullpkgpath =~ m/\b\Q$stem\E\/(.*?)([,\/].*)?$/) {
$branch = $1;
print "$fullpkgname->{stem}%$branch\n";
}
}