FreeBSD Bugzilla – Attachment 225439 Details for
Bug 256214
ports-mgmt/pkg_tree: retrieve data from pkg info in only one try
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for ports-mgmt/pkg_tree
patch-pkg_tree-1.1_4.diff (text/plain), 5.23 KB, created by
Tatsuki Makino
on 2021-06-01 06:58:09 UTC
(
hide
)
Description:
patch for ports-mgmt/pkg_tree
Filename:
MIME Type:
Creator:
Tatsuki Makino
Created:
2021-06-01 06:58:09 UTC
Size:
5.23 KB
patch
obsolete
>diff --git ports-mgmt/pkg_tree/Makefile ports-mgmt/pkg_tree/Makefile >index 735bc2bbe..364572d8e 100644 >--- ports-mgmt/pkg_tree/Makefile >+++ ports-mgmt/pkg_tree/Makefile >@@ -6,7 +6,7 @@ PORTREVISION= 4 > CATEGORIES= ports-mgmt > MASTER_SITES= http://www.mavetju.org/download/ > >-MAINTAINER= ports@FreeBSD.org >+MAINTAINER= tatsuki_makino@hotmail.com > COMMENT= Get a 'graphical' tree-overview of installed packages > > LICENSE= BSD2CLAUSE >diff --git ports-mgmt/pkg_tree/distinfo ports-mgmt/pkg_tree/distinfo >index ad21b36f3..6dc6ec5f9 100644 >--- ports-mgmt/pkg_tree/distinfo >+++ ports-mgmt/pkg_tree/distinfo >@@ -1,2 +1,3 @@ >+TIMESTAMP = 1622170800 > SHA256 (pkg_tree-1.1.tar.gz) = f82a68ab0fda053654cc35a0864b55a9529287f58017b4a1b500e91076a458be > SIZE (pkg_tree-1.1.tar.gz) = 5006 >diff --git ports-mgmt/pkg_tree/files/patch-pkg__tree ports-mgmt/pkg_tree/files/patch-pkg__tree >index 91635b956..2d4c511aa 100644 >--- ports-mgmt/pkg_tree/files/patch-pkg__tree >+++ ports-mgmt/pkg_tree/files/patch-pkg__tree >@@ -9,20 +9,21 @@ > # For more information, see the website: http://www.mavetju.org > # > >-@@ -34,31 +34,95 @@ use strict; >+@@ -34,31 +34,77 @@ use strict; > > use Getopt::Std; > > -use vars qw/ $opt_v /; >-+use vars qw/ $opt_b $opt_q $opt_t $opt_v /; >++use vars qw/ $opt_b $opt_q $opt_r $opt_t $opt_v /; > > $opt_v=0; > -getopts("v"); > +$opt_t=0; > +$opt_b=0; > +$opt_q=0; >-+getopts("bqtv"); >-+ >++$opt_r=0; >++getopts("bqrtv"); >+ > +my @args=@ARGV; > +my $hasargs=$#ARGV>=0; > + >@@ -37,59 +38,40 @@ > +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; >++ my $re_dep = qr/^Depends on :$/o; >++ my $re_req = qr/^Required by :$/o; >++ my($line, $r); > + >-+ $line = `pkg info -r -a`; >++ $line = `pkg info -d -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 '') { >++ if ($line =~ $re_dep) { >++ $r = \%requires; >++ } elsif ($line =~ $re_req) { >++ $r = \%required; >++ } elsif ($line =~ $re_pkg) { > + $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) { >++ ${$r}{$pkg}[++${$r}{$pkg}[0]] = $line; >++ } else { > + $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; >++ $pkg =~ s/$re_trim//g; >++ push(@dirs, $pkg); >++ 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"; >@@ -115,7 +97,7 @@ > foreach $pkg (@dirs) { > $required{$pkg}[0]=0; > if (open FILE,$PKGDIR."/".$pkg."/+REQUIRED_BY") { >-@@ -101,6 +165,11 @@ foreach $pkg (@dirs) { >+@@ -101,6 +147,10 @@ foreach $pkg (@dirs) { > } > } > >@@ -123,11 +105,22 @@ > +else { > + die; > +} >-+ > > # > # Print the dependancies (recursive) of the packages >-@@ -150,8 +219,10 @@ foreach $pkg (@dirs) { >+@@ -141,6 +191,11 @@ sub print_deps { >+ # Print all packages or, if there is a command line argument, the ones which >+ # matches one of the arguments. >+ # >++if ($opt_r) { >++ my %t = %required; >++ %required = %requires; >++ %requires = %t; >++} >+ foreach $pkg (@dirs) { >+ if ($hasargs) { >+ my $found=0; >+@@ -150,8 +205,10 @@ foreach $pkg (@dirs) { > } > next if (!$found); > } >diff --git ports-mgmt/pkg_tree/files/patch-pkg__tree.pod ports-mgmt/pkg_tree/files/patch-pkg__tree.pod >index 36dfa72c0..941f65b42 100644 >--- ports-mgmt/pkg_tree/files/patch-pkg__tree.pod >+++ ports-mgmt/pkg_tree/files/patch-pkg__tree.pod >@@ -1,15 +1,26 @@ > --- 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 >+@@ -8,7 +8,7 @@ B<pkg_tree> - Generate a graphical tree of packages an >+ >+ =head1 SYNOPSIS >+ >+-B<pkg_tree> [B<-v>] [I<package-prefix ...>] >++B<pkg_tree> [B<-bqrtv>] [I<package-prefix ...>] >+ >+ =head1 DESCRIPTION >+ >+@@ -52,6 +52,14 @@ E<32>[~] edwin@k7E<gt>B<pkg_tree -v linux-netscape> >+ |\__ imake-4.1.0 (unknown) > |\__ 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. > + >++Use the B<-r> parameter to show requirements relation. >+ > =head1 RETURN VALUES > >- Always 0.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
tatsuki_makino
:
maintainer-approval?
Actions:
View
|
Diff
Attachments on
bug 256214
:
225329
|
225330
| 225439