svn commit: r390724 - in head/ports-mgmt/pkg_tree: . files

Philip M. Gollucci pgollucci at FreeBSD.org
Sat Jun 27 19:32:40 UTC 2015


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 at hotmail.com
  Approved by:         maintainer timeout (edwin at 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 at 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;
++ at dirs=readdir DIR;
+ closedir DIR;
+ 
+ @dirs=grep !/^\./, at dirs;
++ at dirs=grep !/^pkgdb.db$/, at 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 at 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.


More information about the svn-ports-head mailing list