On Mon, Sep 21, 2026 at 02:25:56PM -0700, Thomas Frohwein wrote: > On Thu, 6 Jun 2024 18:16:54 +0100 > Fabien ROMANO <[email protected]> wrote: > > > As example I took archivers/blosc2 (GH_*) & archives/zpaqfranz > > (DIST_TUPLE). Main difference are mastersites & distfiles from > > portroach.db : > > > > archivers/blosc2 = > > https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.14.3/ + > > c-blosc2-2.14.3.tar.gz archives/zpaqfranz = https://github.com/ + > > fcorbelli/zpaqfranz/archive/refs/tags/59.5.tar.gz > > > > Portroach use the first one (mastersites) which does not contain > > project/name on DIST_TUPLE. If we append distfiles to mastersites > > before GetFiles then SiteHandler can find new version of zpaqfranz. > > For me it's not clear yet if this should be changed somewhere > > downside (mk implementation, sqlports, portroach build). > > Based on some conversations in hackroom, I'd like to revisit this diff > from Fabien. It seems the back and forth between DIST_TUPLE=github... > and GH_* variables is whiplash-inducing, and the only reason that GH_* > has been seeing more adoption again is portroach. > > Can someone more knowledgeable about portroach give an opinion on this, > or advise how to test that the output is valid? > > Slightly adjusted diff (REVISION to 9 now) below.
I am very not knowledgeable about portroach, not even sure how to actually test it. However, looking at the example ROACH_SITES/ROACH_URL in the example zpaqfranz port, I think this bodge should work. It seems like we should be building `$site` with: $site = URI->new($ROACH_URL)->abs($ROACH_SITES); which, afaict, would do what is desired here. $ perl -MURI -E 'say URI->new(`make show=ROACH_URL`)->abs(`make show=ROACH_SITES`)' https://github.com/fcorbelli/zpaqfranz/archive/refs/tags/64.8.tar.gz I didn't look at where we get `$site` in this context though. > > > > > I checked quickly how SiteHandler use url and, except Mozilla.pm (but > > does it match any port ?), including distfile into url should not be > > a problem. But to be safe, I choose to implement a fallback, first > > try with only mastersite and if GetFiles failed then try harder with > > distfiles. > > > > I do not run portroach in prod and I just discovered it (& perl), > > this diff was only lightly tested on this small example. I will > > experiment further but maybe this small diff is enough, sry if I > > screw up something. > > > > [zpaqfranz ] VersionCheck() > > [zpaqfranz ] Checking site: https://github.com/ > > [zpaqfranz ] [https://github.com/ ] > > Using dedicated site handler for site. [zpaqfranz > > ] [https://github.com/ ] UPDATE 59.5 -> 59.7 [zpaqfranz > > ] Done [blosc2 ] VersionCheck() > > [blosc2 ] Checking site: > > https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.14.3/ [blosc2 > > ] [https://gith...s/tags/v2.14.3/] Using > > dedicated site handler for site. [blosc2 ] > > [https://gith...s/tags/v2.14.3/] UPDATE 2.14.3 -> 2.14.4 [blosc2 > > ] Done > > > > > > Index: Makefile > > =================================================================== > > RCS file: /cvs/ports/misc/portroach/Makefile,v > > diff -u -p -r1.40 Makefile > > --- Makefile 11 Sep 2023 14:45:35 -0000 1.40 > > +++ Makefile 6 Jun 2024 17:07:13 -0000 > > @@ -3,7 +3,7 @@ COMMENT= OpenBSD ports distfile version > > GH_ACCOUNT= jasperla > > GH_PROJECT= portroach > > GH_TAGNAME= 2.0.11 > > -REVISION= 7 > > +REVISION= 8 > > > > CATEGORIES= misc > > > > Index: patches/patch-portroach_pl > > =================================================================== > > RCS file: patches/patch-portroach_pl > > diff -N patches/patch-portroach_pl > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ patches/patch-portroach_pl 6 Jun 2024 17:07:13 -0000 > > @@ -0,0 +1,30 @@ > > +Index: portroach.pl > > +--- portroach.pl.orig > > ++++ portroach.pl > > +@@ -503,12 +503,21 @@ sub VersionCheck > > + if (my $sh = > > Portroach::SiteHandler->FindHandler($site)) > > + { > > + info(0, $k, $site, 'Using dedicated site > > handler for site.'); +- > > +- if (!$sh->GetFiles($site, $port, \@files)) { > > +- info(0, $k, $site, > > 'SiteHandler::GetFiles() failed for ' . $site); +- > > next; +- } else { > > ++ if ($sh->GetFiles($site, $port, \@files)) { > > + $method = METHOD_HANDLER; > > ++ } else { > > ++ foreach my $distfile (split ' ', > > $port->{distfiles}) ++ { > > ++ my $uri = > > URI->new($distfile)->abs($site); ++ > > if ($sh->GetFiles($uri, $port, \@files)) { ++ > > $method = METHOD_HANDLER; ++ > > last; ++ > > } ++ } > > ++ } > > ++ if ($method != METHOD_HANDLER) { > > ++ info(0, $k, $site, > > 'SiteHandler::GetFiles() failed for ' . $port->{distfiles}); > > ++ next; > > + } > > + } > > + elsif ($site->scheme eq 'ftp') > > > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/misc/portroach/Makefile,v > diff -u -p -r1.40 Makefile > --- Makefile 11 Sep 2023 14:45:35 -0000 1.40 > +++ Makefile 6 Jun 2024 17:07:13 -0000 > @@ -3,7 +3,7 @@ COMMENT= OpenBSD ports distfile version > GH_ACCOUNT= jasperla > GH_PROJECT= portroach > GH_TAGNAME= 2.0.11 > -REVISION= 8 > +REVISION= 9 > > CATEGORIES= misc > > Index: patches/patch-portroach_pl > =================================================================== > RCS file: patches/patch-portroach_pl > diff -N patches/patch-portroach_pl > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-portroach_pl 6 Jun 2024 17:07:13 -0000 > @@ -0,0 +1,30 @@ > +Index: portroach.pl > +--- portroach.pl.orig > ++++ portroach.pl > +@@ -503,12 +503,21 @@ sub VersionCheck > + if (my $sh = Portroach::SiteHandler->FindHandler($site)) > + { > + info(0, $k, $site, 'Using dedicated site handler for > site.'); > +- > +- if (!$sh->GetFiles($site, $port, \@files)) { > +- info(0, $k, $site, 'SiteHandler::GetFiles() > failed for ' . $site); > +- next; > +- } else { > ++ if ($sh->GetFiles($site, $port, \@files)) { > + $method = METHOD_HANDLER; > ++ } else { > ++ foreach my $distfile (split ' ', > $port->{distfiles}) > ++ { > ++ my $uri = > URI->new($distfile)->abs($site); > ++ if ($sh->GetFiles($uri, $port, > \@files)) { > ++ $method = METHOD_HANDLER; > ++ last; > ++ } > ++ } > ++ } > ++ if ($method != METHOD_HANDLER) { > ++ info(0, $k, $site, 'SiteHandler::GetFiles() > failed for ' . $port->{distfiles}); > ++ next; > + } > + } > + elsif ($site->scheme eq 'ftp') > -- andrew "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." -- Rich Cook
