From 966725c72071e13bddf92136001ffcd4722cb736 Mon Sep 17 00:00:00 2001 From: abs Date: Tue, 26 Sep 2000 15:57:05 +0000 Subject: Update pkglint to 2.25. If this keeps on I'm going to have to start using odd numbers for 'development' versions... lintpkgsrc: Rename set_pkgsrcdir to parse_mk_conf, and also extract PACKAGES as well as PKGSRCDIR. Update check_prebuilt_packages to handle the new package data structure that allos mulitple versions of the same package to be valid (for -current packages etc) - Missed in previous changes. --- pkgtools/pkglint/Makefile | 4 +-- pkgtools/pkglint/files/lintpkgsrc.pl | 69 +++++++++++++++++------------------- 2 files changed, 35 insertions(+), 38 deletions(-) (limited to 'pkgtools') diff --git a/pkgtools/pkglint/Makefile b/pkgtools/pkglint/Makefile index 06b68f3d804..2c7af2cb004 100644 --- a/pkgtools/pkglint/Makefile +++ b/pkgtools/pkglint/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.62 2000/09/22 22:41:07 abs Exp $ +# $NetBSD: Makefile,v 1.63 2000/09/26 15:57:05 abs Exp $ # -DISTNAME= pkglint-2.24 +DISTNAME= pkglint-2.25 CATEGORIES= pkgtools devel MASTER_SITES= # empty DISTFILES= # empty diff --git a/pkgtools/pkglint/files/lintpkgsrc.pl b/pkgtools/pkglint/files/lintpkgsrc.pl index 90ac46d77f1..46adf85a891 100755 --- a/pkgtools/pkglint/files/lintpkgsrc.pl +++ b/pkgtools/pkglint/files/lintpkgsrc.pl @@ -1,6 +1,6 @@ #!/usr/bin/env perl -# $NetBSD: lintpkgsrc.pl,v 1.33 2000/09/22 22:41:08 abs Exp $ +# $NetBSD: lintpkgsrc.pl,v 1.34 2000/09/26 15:57:05 abs Exp $ # Written by David Brownlee . # @@ -17,7 +17,7 @@ $^W = 1; use strict; use Getopt::Std; use File::Find; -my( $pkgsrcdir, # Base of pkgsrc tree +my( $pkgvars, # ->{'PACKAGES'}, ->{'PKGSRCDIR'} $pkgdistdir, # Distfiles directory %pkg, # pkgname ->{'restricted'} and ->{'ver'} %default_makefile_vars, # Default vars set for Makefiles @@ -63,15 +63,14 @@ if ($opt{'D'} && @ARGV) my($pkglint_flags); $pkglint_flags = '-v'; + $pkgvars = &parse_mk_conf(); if ($opt{'P'}) - { $pkgsrcdir = $opt{'P'}; } # Check /etc/mk.conf for PKGSRCDIR - else - { $pkgsrcdir = &set_pkgsrcdir; } # Check /etc/mk.conf for PKGSRCDIR + { $pkgvars->{'PKGSRCDIR'} = $opt{'P'}; } if ($opt{'M'}) { $pkgdistdir = $opt{'M'}; } # override distfile dir else - { $pkgdistdir = "$pkgsrcdir/distfiles"; } # default + { $pkgdistdir = "$pkgvars->{'PKGSRCDIR'}/distfiles"; } # default if ($opt{'r'} && !$opt{'o'} && !$opt{'m'} && !$opt{'p'}) @@ -80,8 +79,8 @@ if ($opt{'D'} && @ARGV) { my(@baddist); - @baddist = &scan_pkgsrc_distfiles_vs_md5($pkgsrcdir, $opt{'o'}, - $opt{'m'}); + @baddist = &scan_pkgsrc_distfiles_vs_md5($pkgvars->{'PKGSRCDIR'}, + $opt{'o'}, $opt{'m'}); if ($opt{'r'}) { &safe_chdir("$pkgdistdir"); @@ -95,15 +94,11 @@ if ($opt{'D'} && @ARGV) # if ($opt{'p'} || $opt{'R'}) { - my($binpkgdir); - if (!%pkg) - { &scan_pkgsrc_makefiles($pkgsrcdir); } + { &scan_pkgsrc_makefiles($pkgvars->{'PKGSRCDIR'}); } if ($opt{'K'}) - { $binpkgdir = $opt{'K'}; } - else - { $binpkgdir = "$pkgsrcdir/packages"; } - @prebuilt_pkgdirs = ($binpkgdir); + { $pkgvars->{'PACKAGES'} = $opt{'K'}; } + @prebuilt_pkgdirs = ($pkgvars->{'PACKAGES'}); while (@prebuilt_pkgdirs) { find(\&check_prebuilt_packages, shift @prebuilt_pkgdirs); } if ($opt{'r'}) @@ -117,17 +112,16 @@ if ($opt{'D'} && @ARGV) if ($opt{'d'}) { if (!%pkg) - { &scan_pkgsrc_makefiles($pkgsrcdir); } + { &scan_pkgsrc_makefiles($pkgvars->{'PKGSRCDIR'}); } &pkgsrc_check_depends; } - if ($opt{'i'} || $opt{'u'}) { my(@pkgs, @bad, $pkg); @pkgs = &list_installed_packages; if (!%pkg) - { &scan_pkgsrc_makefiles($pkgsrcdir); } + { &scan_pkgsrc_makefiles($pkgvars->{'PKGSRCDIR'}); } foreach $pkg ( @pkgs ) { if ( $_ = &invalid_version($pkg) ) @@ -147,14 +141,14 @@ if ($opt{'D'} && @ARGV) if (!defined($pkgdir)) { &fail("Unable to determine directory for '$pkg'"); } - print "$pkgsrcdir/$pkgdir\n"; - safe_chdir("$pkgsrcdir/$pkgdir"); + print "$pkgvars->{'PKGSRCDIR'}/$pkgdir\n"; + safe_chdir("$pkgvars->{'PKGSRCDIR'}/$pkgdir"); system('make fetch-list | sh'); } } } if ($opt{'l'}) - { &pkglint_all_pkgsrc($pkgsrcdir, $pkglint_flags); } + { &pkglint_all_pkgsrc($pkgvars->{'PKGSRCDIR'}, $pkglint_flags); } } exit; @@ -162,15 +156,15 @@ sub check_prebuilt_packages { if ($_ eq 'distfiles') { $File::Find::prune = 1; } - elsif (/(.*)\.tgz$/) + elsif (/(.+)-(\d.*)\.tgz$/) { - if (!defined $pkg{$1}) + if (!defined $pkg{$1}{$2}) { if ($opt{'p'}) { print "$File::Find::dir/$_\n"; } push(@old_prebuiltpackages, "$File::Find::dir/$_"); } - elsif (defined $pkg{$1}->{'restricted'}) # XXX + elsif (defined $pkg{$1}{$2}->{'restricted'}) # XXX { if ($opt{'R'}) { print "$File::Find::dir/$_\n"; } @@ -327,11 +321,11 @@ sub list_pkgsrc_categories # sub list_pkgsrc_pkgdirs { - my($cat) = @_; + my($pkgsrcdir, $cat) = @_; my(@pkgdirs); if (! opendir(CAT, "$pkgsrcdir/$cat")) - { die("Unable to opendir($pkgsrcdir/$cat): $!"); } + { die("Unable to opendir($pkgsrcdir/cat): $!"); } @pkgdirs = sort grep($_ ne 'Makefile' && $_ ne 'pkg' && $_ ne 'CVS' && substr($_, 0, 1) ne '.', readdir(CAT)); close(CAT); @@ -738,7 +732,7 @@ sub pkglint_all_pkgsrc foreach $cat ( sort @categories ) { &safe_chdir("$pkgsrcdir/$cat"); - foreach $pkgdir (&list_pkgsrc_pkgdirs($cat)) + foreach $pkgdir (&list_pkgsrc_pkgdirs($pkgsrcdir, $cat)) { if (-f "$pkgdir/Makefile") { @@ -783,7 +777,7 @@ sub scan_pkgsrc_makefiles foreach $cat ( sort @categories ) { - foreach $pkgdir (&list_pkgsrc_pkgdirs($cat)) + foreach $pkgdir (&list_pkgsrc_pkgdirs($pkgsrcdir, $cat)) { my($vars); ($pkgname, $vars) = @@ -844,7 +838,7 @@ sub scan_pkgsrc_distfiles_vs_md5 $numpkg = 0; foreach $cat ( sort @categories ) { - foreach $pkgdir (&list_pkgsrc_pkgdirs($cat)) + foreach $pkgdir (&list_pkgsrc_pkgdirs($pkgsrcdir, $cat)) { if (open(MD5, "$pkgsrcdir/$cat/$pkgdir/files/md5")) { @@ -909,15 +903,18 @@ sub scan_pkgsrc_distfiles_vs_md5 @bad_distfiles; } -sub set_pkgsrcdir # Parse /etc/mk.conf (if present) for PKGSRCDIR +sub parse_mk_conf # Parse /etc/mk.conf (if present) for PKGSRCDIR and PACKAGES { - my($pkgsrcdir, $vars); - my($vars); + my($vars); - if (-f '/etc/mk.conf' && ($vars = &parse_makefile_vars('/etc/mk.conf'))) - { $pkgsrcdir = $vars->{'PKGSRCDIR'}; } - $pkgsrcdir ||= '/usr/pkgsrc'; - $pkgsrcdir; + if (! -f '/etc/mk.conf' || !($vars = &parse_makefile_vars('/etc/mk.conf'))) + { + my(%emptyvars); + $vars = \%emptyvars; + } + $vars->{'PKGSRCDIR'} ||= '/usr/pkgsrc'; + $vars->{'PACKAGES'} ||= "$vars->{'PKGSRCDIR'}/packages"; + $vars; } # Remember to update manual page when modifying option list -- cgit v1.2.3