Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
Re: audio/beets: update to 2.6.1; www/py-requests-cache update to 1.2.1; plus import required new dependencies
To:
Stuart Henderson <stu@spacehopper.org>
Cc:
Johan Huldtgren <johan+openbsd-ports@huldtgren.com>, <ports@openbsd.org>
Date:
Tue, 03 Feb 2026 22:12:07 +0100

Download raw body.

Thread
  • Kirill A. Korinsky:

    audio/beets: update to 2.6.1; www/py-requests-cache update to 1.2.1; plus import required n

  • On Tue, 03 Feb 2026 19:03:37 +0100,
    Stuart Henderson <stu@spacehopper.org> wrote:
    > 
    > [1  <text/plain; us-ascii (8bit)>]
    > and "." is also affected
    > 
    
    It can be done for PyPi only with not that ellegant solution.
    
    Tested with two distnames:
     - requests-cache-0.5.2
     - repoze.who-3.0.0
    
    with my diff it catch that
     - requests-cache-0.5.2 -> 1.3.0
     - repoze.who-3.0.0 -> 3.1.0
    
    The diff. If it's ok I'll update my PR.
    
    diff --git a/Portroach/SiteHandler/PyPI.pm b/Portroach/SiteHandler/PyPI.pm
    index 81898f1..9f26078 100644
    --- a/Portroach/SiteHandler/PyPI.pm
    +++ b/Portroach/SiteHandler/PyPI.pm
    @@ -116,6 +116,45 @@ sub GetFiles
     	    foreach my $url (@$urls) {
     		push(@$files, $url->{filename});
     	    }
    +
    +	    if ($port->{ver} && $json->{releases} && $json->{releases}->{$port->{ver}}) {
    +		my @distfiles = split ' ', ($port->{distfiles} || '');
    +		my %seen = map { $_ => 1 } @distfiles;
    +
    +		foreach my $rel (@{$json->{releases}->{$port->{ver}}}) {
    +		    next unless ($rel->{packagetype} && $rel->{packagetype} eq 'sdist');
    +		    next unless ($rel->{filename});
    +		    next if ($seen{$rel->{filename}});
    +		    push @distfiles, $rel->{filename};
    +		    $seen{$rel->{filename}} = 1;
    +		}
    +
    +		foreach my $distfile (@distfiles) {
    +		    next unless ($distfile =~ /^(.*?)\Q$port->{ver}\E(.*)$/);
    +		    my ($prefix, $suffix) = ($1, $2);
    +		    my ($name_prefix, $sep) = ($prefix, '');
    +		    if ($prefix =~ /^(.*?)([-_\.])$/) {
    +			($name_prefix, $sep) = ($1, $2);
    +		    }
    +
    +		    my %alts;
    +		    foreach my $ch ('-', '_', '.') {
    +			my $alt_prefix = $name_prefix;
    +			$alt_prefix =~ s/[-_.]+/$ch/g;
    +			$alts{$alt_prefix} = 1;
    +		    }
    +
    +		    foreach my $alt_prefix (keys %alts) {
    +			my $alt = $alt_prefix . $sep . $port->{ver} . $suffix;
    +			next if ($alt eq $distfile);
    +			next if ($seen{$alt});
    +			push @distfiles, $alt;
    +			$seen{$alt} = 1;
    +		    }
    +		}
    +
    +		$port->{distfiles} = join ' ', @distfiles if (@distfiles);
    +	    }
     	} else {
     	    _debug("GET failed: " . $resp->code);
     	    return 0;
    
    
    -- 
    wbr, Kirill
    
    
  • Kirill A. Korinsky:

    audio/beets: update to 2.6.1; www/py-requests-cache update to 1.2.1; plus import required n