From owner-svn-ports-all@freebsd.org Tue Apr 12 05:54:19 2016 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 797EEB0CF59; Tue, 12 Apr 2016 05:54:19 +0000 (UTC) (envelope-from mandree@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 52BBD1964; Tue, 12 Apr 2016 05:54:19 +0000 (UTC) (envelope-from mandree@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3C5sIji061386; Tue, 12 Apr 2016 05:54:18 GMT (envelope-from mandree@FreeBSD.org) Received: (from mandree@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3C5sIqw061380; Tue, 12 Apr 2016 05:54:18 GMT (envelope-from mandree@FreeBSD.org) Message-Id: <201604120554.u3C5sIqw061380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mandree set sender to mandree@FreeBSD.org using -f From: Matthias Andree Date: Tue, 12 Apr 2016 05:54:18 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r413097 - in head: Tools/scripts databases/db48 databases/db5 databases/db6 deskutils/docear sysutils/busybox X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Apr 2016 05:54:19 -0000 Author: mandree Date: Tue Apr 12 05:54:17 2016 New Revision: 413097 URL: https://svnweb.freebsd.org/changeset/ports/413097 Log: Drop maintainership. If portmgr@ needs to commit against better advise, two years after this was first discussed without any motion of the upstream. Drop a few more maintainerships along the way. Modified: head/Tools/scripts/bump_revision.pl head/databases/db48/Makefile head/databases/db5/Makefile head/databases/db6/Makefile head/deskutils/docear/Makefile head/sysutils/busybox/Makefile Modified: head/Tools/scripts/bump_revision.pl ============================================================================== --- head/Tools/scripts/bump_revision.pl Tue Apr 12 05:43:16 2016 (r413096) +++ head/Tools/scripts/bump_revision.pl Tue Apr 12 05:54:17 2016 (r413097) @@ -1,33 +1,53 @@ -#!/usr/bin/env perl -w +#!/usr/bin/env perl -wT # $FreeBSD$ # +# This Perl script helps with bumping the PORTREVISION of all ports +# that depend on a set of ports, for instance, when in the latter set +# one of the port bumped the .so library version. +# +# It is best executed with the working directory set to the base of a +# ports tree, usually /usr/ports. +# +# You must use either the -l (shaLlow, avoid grandparent dependencies, +# slower) or -g option (include grandparend dependencies) option. +# # MAINTAINER= gerald@FreeBSD.org # -use Getopt::Std; use strict; +use Getopt::Std; +use Carp 'verbose'; use Cwd; use Data::Dumper; use File::Basename; -use vars qw/$opt_c $opt_n $opt_i $opt_u/; +use vars qw/$opt_c $opt_n $opt_i $opt_u $opt_l $opt_g/; + +$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin'; sub usage { print </] - -c - Just check - -n - No tmpdir, just use dirname(INDEX) - -u - Your freebsd.org username. Defaults to \$ENV{USER}. - -i - Use this for INDEX name. Defaults to /usr/ports/INDEX. +Mandatory flags: + -l - shaLlow, only bump ports with direct dependencies. + -g - Grandchildren, also bump for indirect dependencies. + +Optional flags: + -c - Check only (dry-run), do not change Makefiles. + -n - No tmpdir, just use the directory where INDEX resides. + -i - Use this for INDEX name. Defaults to /usr/ports/INDEX-n, + where n is the major version of the OS, or /usr/ports/INDEX if missing. Improvements, suggestions,questions -> gerald\@FreeBSD.org EOF exit 1; } +$| = 1; + sub bumpMakefile { my ($p) = @_; @@ -39,6 +59,7 @@ sub bumpMakefile { next; } my @lines = <$fin>; + if ($!) { die "Error while reading $makefile: $!. Aborting"; } close($fin) or die "Can't close $makefile b/c $!"; chomp(@lines); @@ -50,7 +71,7 @@ sub bumpMakefile { } my $printedrev = 0; - open(my $fout, '>', "$makefile"); + open(my $fout, '>', "$makefile.bumped"); foreach my $line (@lines) { if (!$printedrev) { if ($line =~ /^CATEGORIES??=/ || $line =~ /^PORTEPOCH??=/) { @@ -72,23 +93,40 @@ sub bumpMakefile { print $fout "$line\n"; } close($fout) or die "Can't close $makefile b/c $!"; + rename "$makefile.bumped", $makefile or die "Can't rename $makefile.bumped to $makefile: $!"; } -my $INDEX = "/usr/ports/INDEX"; -my $USER = $ENV{USER}; +my $osversion = `uname -r`; +chomp $osversion; +$osversion =~ s/\..*//; + +my $INDEX = "/usr/ports/INDEX-$osversion"; +if (!-f $INDEX) { $INDEX = "/usr/ports/INDEX"; } + +my $shallow = 0; { $opt_i = ""; $opt_u = ""; - getopts("cni:u:"); + getopts("cgi:lnu:"); $INDEX = $opt_i if ($opt_i); - $USER = $opt_u if ($opt_u); + $shallow = $opt_l if $opt_l; + if (not $opt_l and not $opt_g) { + die "Neither -g nor -l given. Aborting"; + } - die "$INDEX doesn't seem to exist. Please check the value supplied with -i or use -i." unless(-f $INDEX); + die "$INDEX doesn't seem to exist. Please check the value supplied with -i, or use -i /path/to/INDEX." unless(-f $INDEX); } -my $PORT = $ARGV[0]; -usage() unless($PORT); +usage() unless(@ARGV); -my $CVSROOT = $ENV{CVSROOT} // ':ext:$USER\@pcvs.freebsd.org:/home/pcvs'; +my $TMPDIR = File::Basename::dirname($INDEX); + +# +# Sanity checking +# +if (-d "$TMPDIR/.svn" and not $opt_n and not $opt_c) { + print "$TMPDIR/.svn exists, do you want to use the -n option? Press Ctrl-C to abort.\n"; + sleep 5; +} # # Read the index, save some interesting keys @@ -98,89 +136,113 @@ my %index = (); print "Reading $INDEX\n"; open(my $fin, '<', "$INDEX") or die "Cannot open $INDEX for reading."; my @lines = <$fin>; + if ($!) { die "Error while reading $INDEX: $! Aborting"; } chomp(@lines); close($fin); - foreach my $line (@lines) { - my @a = split(/\|/, $line); - my @b = split(/\//, $a[1]); - - my $port = $b[-2]."/".$b[-1]; - - $index{$port}{portname} = $b[-1]; - $index{$port}{portnameversion} = $a[0]; - $index{$port}{portdir} = $a[1]; - $index{$port}{comment} = $a[3]; - $index{$port}{deps} = (); + my @a; + my @b; + my $port; + map { + @a = split(/\|/, $_); + @b = split(/\//, $a[1]); + + $port = $b[-2]."/".$b[-1]; + + @{ $index{$port} }{'portname', 'portnameversion', 'portdir', 'comment', 'deps'} + = ($b[-1], $a[0], $a[1], $a[3], ()); if ($a[8]) { @b = split(" ", $a[8]); - foreach my $b (@b) { - $index{$port}{deps}{$b} = 1; - } + @{ $index{$port}{deps} }{@b} = (1) x @b; } - } - my @k = keys(%index); - print "- Processed ", $#k+1, " entries.\n"; + + } @lines; + print "- Processed ", scalar keys(%index), " entries.\n"; } -# -# See if the port does really exists. -# If specified as category/portname, that should be enough. -# If specified as portname, check all indexes for existence or duplicates. -# -unless (defined $index{$PORT}) { - my $count = 0; - my $n = ""; - foreach my $p (keys(%index)) { - if ($p =~ /\/$PORT$/) { - $n .= " " if ($n); - $n .= $p; - $count++; +my %DEPPORTS = (); + +foreach my $PORT (@ARGV) { + # + # See if the port does really exists. + # If specified as category/portname, that should be enough. + # If specified as portname, check all indexes for existence or duplicates. + # + unless (defined $index{$PORT}) { + my @found = grep /\/$PORT$/, keys(%index); + my $count = @found; + + if ($count == 0) { + die "Cannot find ${PORT} in ${INDEX}."; + } elsif ($count == 1) { + $PORT = $found[0]; + } else { + my $n = join(" ", @found); + die "Found ${PORT} more than once in ${INDEX}: $n. Try category/$PORT.\nAborting"; } } - if ($count == 0) { - die "Cannot find ${PORT} in ${INDEX}."; - } elsif ($count == 1) { - $PORT = $n; - } else { - die "Found ${PORT} more than once in ${INDEX}: $n. Try category/portname."; + + my $PORTNAMEVERSION = $index{$PORT}{portnameversion}; + print "Found $PORT as $PORTNAMEVERSION\n"; + + # + # Figure out all the ports depending on this one. + # + { + print "Searching for ports depending on $PORT\n"; + + foreach my $p (keys(%index)) { + if (defined $index{$p}{'deps'}{$PORTNAMEVERSION}) { + $DEPPORTS{$p} = 1; + } + } + print "- Found ", scalar keys(%DEPPORTS), " ports depending on $PORT.\n"; } } -my $PORTNAMEVERSION = $index{$PORT}{portnameversion}; -print "Found $PORT as $PORTNAMEVERSION\n"; - # -# Figure out all the ports depending on this one. +# In shallow mode, strip all those who don't have a direct dependency # -my %DEPPORTS = (); -my $ports = ""; -{ - print "Searching for ports depending on $PORT\n"; - foreach my $p (keys(%index)) { - if (defined $index{$p}{deps}{$PORTNAMEVERSION}) { - $DEPPORTS{$p} = 1; - $ports .= " " if ($ports); - $ports .= "ports/$p"; +sub direct_dependence($@) { + my ($port, @requisites) = @_; + open F, '-|', '/usr/bin/make', '-C', $port, qw/-V _RUN_DEPENDS -V _LIB_DEPENDS/ or die "cannot launch make: $!"; + my @lines = ; + chomp @lines; + my $deps = join(" ", @lines); + my %deps = map { $_ =~ s[/usr/ports/][]; ($_ => 1) } split " ", $deps; + if ($!) { die "cannot read depends from make: $!"; } + close F or die "cannot read depends from make: $!"; + my $required = grep { $_ } map { defined $deps{$_} } @requisites; + return $required; +} +if ($shallow) { + my $n = keys %DEPPORTS; + my $idx = 1; + foreach my $p (keys %DEPPORTS) { + print "- Checking requisites of port $idx/$n...\r"; + ++$idx; + unless (direct_dependence($p, @ARGV)) { + delete $DEPPORTS{$p}; } } - my @k = keys(%DEPPORTS); - print "- Found ", $#k+1, " ports depending on it.\n"; + print "- Found ", scalar keys(%DEPPORTS), " ports depending directly on either of @ARGV.\n"; } +my $ports = join(" ", keys %DEPPORTS); + # # Create a temp directory and cvs checkout the ports # (don't do error checking, too complicated right now) # - -my $TMPDIR = File::Basename::dirname($INDEX); -unless ($opt_n) { - $TMPDIR = getcwd() . "/.tmpdir.$$"; +unless ($opt_n or $opt_c) { + $TMPDIR = ".bump_rev_tmpdir.$$"; + print "svn checkout into $TMPDIR...\n"; mkdir($TMPDIR, 0755); chdir($TMPDIR); - system "cvs -d $CVSROOT co -T $ports"; - chdir($TMPDIR); + system "svn checkout --depth=immediates svn+ssh://svn.freebsd.org/ports/head/ ports" and die "SVN checkout failed (wait value $?), aborting"; + chdir('ports'); + system "svn update --set-depth=infinity $ports" and die "SVN checkout failed (wait value $?), aborting"; } # @@ -188,7 +250,7 @@ unless ($opt_n) { # { print "Updating Makefiles\n"; - foreach my $p (keys(%DEPPORTS)) { + foreach my $p (sort keys(%DEPPORTS)) { print "- Updating Makefile of $p\n"; next if $opt_c; bumpMakefile "$p"; Modified: head/databases/db48/Makefile ============================================================================== --- head/databases/db48/Makefile Tue Apr 12 05:43:16 2016 (r413096) +++ head/databases/db48/Makefile Tue Apr 12 05:54:17 2016 (r413097) @@ -10,7 +10,7 @@ PKGNAMEPREFIX?= DISTNAME= db-${PORTVERSION:R} DIST_SUBDIR= bdb -MAINTAINER= mandree@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Berkeley DB package, revision 4.8 LICENSE= BSD3CLAUSE Modified: head/databases/db5/Makefile ============================================================================== --- head/databases/db5/Makefile Tue Apr 12 05:43:16 2016 (r413096) +++ head/databases/db5/Makefile Tue Apr 12 05:54:17 2016 (r413097) @@ -12,7 +12,7 @@ PKGNAMEPREFIX?= DISTNAME= db-${PORTVERSION} DIST_SUBDIR= bdb -MAINTAINER= mandree@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= The Oracle Berkeley DB, revision ${BDBVER} BDBVER= ${PORTVERSION:R} Modified: head/databases/db6/Makefile ============================================================================== --- head/databases/db6/Makefile Tue Apr 12 05:43:16 2016 (r413096) +++ head/databases/db6/Makefile Tue Apr 12 05:54:17 2016 (r413097) @@ -10,7 +10,7 @@ PKGNAMEPREFIX?= DISTNAME= db-${PORTVERSION} DIST_SUBDIR= bdb -MAINTAINER= mandree@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= The Oracle Berkeley DB, revision ${BDBVER} LICENSE= AGPLv3 Modified: head/deskutils/docear/Makefile ============================================================================== --- head/deskutils/docear/Makefile Tue Apr 12 05:43:16 2016 (r413096) +++ head/deskutils/docear/Makefile Tue Apr 12 05:54:17 2016 (r413097) @@ -11,7 +11,7 @@ MASTER_SITES= http://docear.org/download DISTNAME= docear_linux DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}${_suffix} -MAINTAINER= mandree@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Mind Mapping tool with Reference, Library, and PDF Management LICENSE= GPLv2 Modified: head/sysutils/busybox/Makefile ============================================================================== --- head/sysutils/busybox/Makefile Tue Apr 12 05:43:16 2016 (r413096) +++ head/sysutils/busybox/Makefile Tue Apr 12 05:54:17 2016 (r413097) @@ -9,7 +9,7 @@ MASTER_SITES= http://www.busybox.net/dow PATCH_SITES= http://www.busybox.net/downloads/fixes-${PORTVERSION}/ PATCH_DIST_STRIP= -p1 -MAINTAINER= mandree@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Busybox for FreeBSD LICENSE= GPLv2