Date: Sat, 27 Jun 2015 19:32:38 +0000 (UTC) From: "Philip M. Gollucci" <pgollucci@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r390724 - in head/ports-mgmt/pkg_tree: . files Message-ID: <201506271932.t5RJWcSZ047449@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pgollucci Date: Sat Jun 27 19:32:38 2015 New Revision: 390724 URL: https://svnweb.freebsd.org/changeset/ports/390724 Log: ports-mgmt/pkg_tree: support pkg_* and pkg retrieve data from pkg info PR: 200730 Submitted by: tatsuki_makino@hotmail.com Approved by: maintainer timeout (edwin@mavetju.org ; 18 days) Added: head/ports-mgmt/pkg_tree/files/patch-pkg__tree (contents, props changed) head/ports-mgmt/pkg_tree/files/patch-pkg__tree.pod (contents, props changed) Deleted: head/ports-mgmt/pkg_tree/files/patch-pkg_tree Modified: head/ports-mgmt/pkg_tree/Makefile head/ports-mgmt/pkg_tree/files/patch-Makefile Modified: head/ports-mgmt/pkg_tree/Makefile ============================================================================== --- head/ports-mgmt/pkg_tree/Makefile Sat Jun 27 19:31:19 2015 (r390723) +++ head/ports-mgmt/pkg_tree/Makefile Sat Jun 27 19:32:38 2015 (r390724) @@ -3,7 +3,7 @@ PORTNAME= pkg_tree PORTVERSION= 1.1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= ports-mgmt MASTER_SITES= http://www.mavetju.org/download/ @@ -12,6 +12,8 @@ COMMENT= Get a 'graphical' tree-overview USES= perl5 +NO_ARCH= yes + PLIST_FILES= bin/pkg_tree man/man7/pkg_tree.7.gz post-patch: Modified: head/ports-mgmt/pkg_tree/files/patch-Makefile ============================================================================== --- head/ports-mgmt/pkg_tree/files/patch-Makefile Sat Jun 27 19:31:19 2015 (r390723) +++ head/ports-mgmt/pkg_tree/files/patch-Makefile Sat Jun 27 19:32:38 2015 (r390724) @@ -1,6 +1,6 @@ ---- Makefile.orig Wed Dec 12 23:06:13 2001 -+++ Makefile Wed Dec 12 23:07:35 2001 -@@ -11,8 +11,8 @@ +--- Makefile.orig 2001-12-12 11:44:40 UTC ++++ Makefile +@@ -11,8 +11,8 @@ pkg_tree.7: pkg_tree.pod --date="December 15, 2001" pkg_tree.pod > pkg_tree.7 install: Added: head/ports-mgmt/pkg_tree/files/patch-pkg__tree ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/ports-mgmt/pkg_tree/files/patch-pkg__tree Sat Jun 27 19:32:38 2015 (r390724) @@ -0,0 +1,141 @@ +--- pkg_tree.orig 2001-12-12 11:44:40 UTC ++++ pkg_tree +@@ -26,7 +26,7 @@ + # updated by a newer version. In case of tcl-8.3.3_3, this is tcl-8.3.3_4. + # + # PKG-TREE is (c) Edwin Groothuis, edwin@mavetju.org +-# For license issues, see the file LICESE. ++# For license issues, see the file LICENSE. + # For more information, see the website: http://www.mavetju.org + # + +@@ -34,31 +34,95 @@ use strict; + + use Getopt::Std; + +-use vars qw/ $opt_v /; ++use vars qw/ $opt_b $opt_q $opt_t $opt_v /; + + $opt_v=0; +-getopts("v"); ++$opt_t=0; ++$opt_b=0; ++$opt_q=0; ++getopts("bqtv"); ++ ++my @args=@ARGV; ++my $hasargs=$#ARGV>=0; ++ ++my %required; # this key is required by other packages ++my %requires; # this key requires other packages ++my @dirs; ++my $pkg; ++ ++`pkg -N 2>&1`; ++my $child_error_pkg_N = $?; ++ ++if ($child_error_pkg_N == 0) { # begin pkgng ++ ++ my $re_trim = qr/^\s+|\s+$/o; ++ my $re_rtrim = qr/:\s*$/o; ++ my $re_pkg = qr/^\s+/o; ++ my $line; ++ ++ $line = `pkg info -r -a`; ++ if ($? == 0) { ++ my @lines = split(/^/, $line); ++ $pkg = ''; ++ foreach $line (@lines) { ++ if ($line !~ $re_pkg) { ++ $pkg = $line; ++ $pkg =~ s/$re_rtrim//; ++ $required{$pkg}[0] = 0; ++ } elsif ($pkg ne '') { ++ $line =~ s/$re_trim//g; ++ $required{$pkg}[++$required{$pkg}[0]] = $line; ++ } ++ } ++ } ++ ++ $line = `pkg info -d -a`; ++ if ($? == 0) { ++ my @lines = split(/^/, $line); ++ $pkg = ''; ++ foreach $line (@lines) { ++ if ($line !~ $re_pkg) { ++ $pkg = $line; ++ $pkg =~ s/$re_rtrim//; ++ $requires{$pkg}[0] = 0; ++ } elsif ($pkg ne '') { ++ $line =~ s/$re_trim//g; ++ $requires{$pkg}[++$requires{$pkg}[0]] = $line; ++ } ++ } ++ } ++ ++ $line = `pkg info -q`; ++ if ($? == 0) { ++ @dirs = split(/^/, $line); ++ foreach $pkg (@dirs) { ++ $pkg =~ s/$re_trim//g; ++ unless (exists $required{$pkg}) { ++ $required{$pkg}[0] = 0; ++ } ++ unless (exists $requires{$pkg}) { ++ $requires{$pkg}[0] = 0; ++ } ++ } ++ } ++ ++} # end pkgng ++elsif (-e '/usr/sbin/pkg_info') { # begin pkg_install + + my $PKGDIR="/var/db/pkg"; + + opendir DIR,$PKGDIR or die "Couldn't open $PKGDIR"; +-my @dirs=readdir DIR; ++@dirs=readdir DIR; + closedir DIR; + + @dirs=grep !/^\./,@dirs; ++@dirs=grep !/^pkgdb.db$/,@dirs; + @dirs=sort @dirs; + +-my @args=@ARGV; +-my $hasargs=$#ARGV>=0; +- +-my %required; # this key is required by other packages +-my %requires; # this key requires other packages +- + # + # Read from every package the +REQUIRED_BY file. This file contains + # info about the packages which require this package. + # +-my $pkg; + foreach $pkg (@dirs) { + $required{$pkg}[0]=0; + if (open FILE,$PKGDIR."/".$pkg."/+REQUIRED_BY") { +@@ -101,6 +165,11 @@ foreach $pkg (@dirs) { + } + } + ++} # end pkg_install ++else { ++ die; ++} ++ + + # + # Print the dependancies (recursive) of the packages +@@ -150,8 +219,10 @@ foreach $pkg (@dirs) { + } + next if (!$found); + } ++ next if ($opt_t && $required{$pkg}[0]!=0); ++ next if ($opt_b && $requires{$pkg}[0]!=0); + print "$pkg\n"; +- if ($requires{$pkg}[0]!=0) { ++ if (!$opt_q && $requires{$pkg}[0]!=0) { + print_deps("|"," ",1,$pkg); + } + } Added: head/ports-mgmt/pkg_tree/files/patch-pkg__tree.pod ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/ports-mgmt/pkg_tree/files/patch-pkg__tree.pod Sat Jun 27 19:32:38 2015 (r390724) @@ -0,0 +1,15 @@ +--- pkg_tree.pod.orig 2001-12-12 11:44:40 UTC ++++ pkg_tree.pod +@@ -53,6 +53,12 @@ E<32>[~] edwin@k7E<gt>B<pkg_tree -v linu + |\__ freetype2-2.0.5 + \__ XFree86-libraries-4.1.0 (unknown) + ++Use the B<-t> parameter to show only top level packages, ++and B<-b> to show only bottom level packages. And B<-t> B<-q> ++together will give the list of top level packages without their ++dependencies, installing only these packages should install all ++currently installed packages. ++ + =head1 RETURN VALUES + + Always 0.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506271932.t5RJWcSZ047449>