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

Reply via email to