summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2022-08-12 20:53:01 +0000
committerrillig <rillig@pkgsrc.org>2022-08-12 20:53:01 +0000
commit27965dbe11b2d5a959d98d08689a43636d05269b (patch)
tree0a7d5b364babec5de7df138b6576b204e5b873cc
parent18d927219b0356811e201a12d0db4f4c78a476d3 (diff)
downloadpkgsrc-27965dbe11b2d5a959d98d08689a43636d05269b.tar.gz
lintpkgsrc: clean up Pkgs type
-rwxr-xr-xpkgtools/lintpkgsrc/files/lintpkgsrc.pl38
-rw-r--r--pkgtools/lintpkgsrc/files/t/packages.t9
2 files changed, 21 insertions, 26 deletions
diff --git a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
index 68cafe843d8..6d49c11ccdb 100755
--- a/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
+++ b/pkgtools/lintpkgsrc/files/lintpkgsrc.pl
@@ -1,6 +1,6 @@
#!@PERL5@
-# $NetBSD: lintpkgsrc.pl,v 1.76 2022/08/11 18:55:35 rillig Exp $
+# $NetBSD: lintpkgsrc.pl,v 1.77 2022/08/12 20:53:01 rillig Exp $
# Written by David Brownlee <abs@netbsd.org>.
#
@@ -17,11 +17,11 @@ use v5.36;
use locale;
use strict;
use warnings;
-use Getopt::Std;
-use File::Find;
+use Cwd 'realpath', 'getcwd';
use File::Basename;
+use File::Find;
+use Getopt::Std;
use IPC::Open3;
-use Cwd 'realpath', 'getcwd';
# PkgVer is a PKGBASE + PKGVERSION, including some of the variables that
# have been extracted from the package Makefile.
@@ -49,10 +49,10 @@ sub pkgname($self) {
$self->pkgbase . '-' . $self->pkgversion;
}
-sub var($self, $key, $val = undef) {
- defined $val
- ? ($self->{vars}->{$key} = $val)
- : $self->{vars}->{$key};
+sub var($self, $name, $value = undef) {
+ defined $value
+ ? ($self->{vars}->{$name} = $value)
+ : $self->{vars}->{$name};
}
sub vars($self) {
@@ -87,20 +87,14 @@ sub add($self, $pkgbase, $pkgversion) {
$self->{pkgvers}->{$pkgversion} = PkgVer->new($pkgbase, $pkgversion);
}
-# pkgver() returns all PkgVers of this pkgbase, in decreasing alphabetical(!)
-# version order.
-#
-# pkgver($pkgversion) returns the PkgVer, or undef.
-sub pkgver($self, $pkgversion = undef) {
+# All PkgVers of this pkgbase, in decreasing alphabetical(!) version order.
+sub pkgvers_all($self) {
my $pkgvers = $self->{pkgvers};
- defined $pkgversion
- ? $pkgvers->{$pkgversion}
- : sort { $b->pkgversion cmp $a->pkgversion } values %$pkgvers;
+ sort { $b->pkgversion cmp $a->pkgversion } values %$pkgvers;
}
-# XXX: Returns the alphabetically(!) highest PkgVer.
-sub latestver($self) {
- ($self->pkgver)[0];
+sub pkgver($self, $pkgversion) {
+ $self->{pkgvers}->{$pkgversion}
}
# PkgDb is a small database of all packages in pkgsrc.
@@ -120,14 +114,14 @@ sub add($self, $pkgbase, $pkgversion) {
# All PkgVers, sorted by pkgbase, then by version in decreasing
# alphabetical(!) order.
sub pkgvers_all($self) {
- map { $_->pkgver } $self->pkgs;
+ map { $_->pkgvers_all } $self->pkgs;
}
# All PkgVers of the given pkgbase, sorted by version in decreasing
# alphabetical(!) order.
sub pkgvers_by_pkgbase($self, $pkgbase) {
my $pkgs = $self->{$pkgbase};
- defined $pkgs ? $pkgs->pkgver : ();
+ defined $pkgs ? $pkgs->pkgvers_all : ();
}
sub pkgver($self, $pkgbase, $pkgversion) {
@@ -1315,7 +1309,7 @@ sub check_prebuilt_packages() {
}
# Pick probably the last version
- $pkgver = $pkgs->latestver;
+ $pkgver = ($pkgs->pkgvers_all)[0];
}
if ($opt{R} && $pkgver->var('RESTRICTED')) {
diff --git a/pkgtools/lintpkgsrc/files/t/packages.t b/pkgtools/lintpkgsrc/files/t/packages.t
index 72e185d4160..dec2af2a629 100644
--- a/pkgtools/lintpkgsrc/files/t/packages.t
+++ b/pkgtools/lintpkgsrc/files/t/packages.t
@@ -1,4 +1,4 @@
-# $NetBSD: packages.t,v 1.12 2022/08/11 07:18:47 rillig Exp $
+# $NetBSD: packages.t,v 1.13 2022/08/12 20:53:01 rillig Exp $
use strict;
use warnings;
@@ -25,13 +25,14 @@ sub test_pkgs() {
$pkgs->add('base', '1.0nb4');
- ok(($pkgs->pkgver)[0]->pkgbase, 'base');
- ok(($pkgs->pkgver)[0]->pkgversion, '1.0nb4');
+ ok(($pkgs->pkgvers_all)[0]->pkgname, 'base-1.0nb4');
$pkgs->add('base', '1.0nb20');
# FIXME: The latest version is actually 1.0nb20, not 1.0nb4.
- ok($pkgs->latestver->pkgversion, '1.0nb4');
+ # As of 2022-08-12, [0] is the alphabetically(!) largest version.
+ ok(($pkgs->pkgvers_all)[0]->pkgname, 'base-1.0nb4');
+ ok(($pkgs->pkgvers_all)[1]->pkgname, 'base-1.0nb20');
}
sub test_pkgdb() {