Hi,
Currently, when out-of-date(1) is used, with packages installed from "mystuff"
directory, these packages are reported as "not found in the official ports
tree".
I don't know if I miss-used out-of-date or not... In doubt I ask. Feel free to
correct me if need.
Here, a naive proposal to include support of mystuff directory in
out-of-date(1).
Index: out-of-date
===================================================================
RCS file: /cvs/ports/infrastructure/bin/out-of-date,v
retrieving revision 1.5
diff -u -p -r1.5 out-of-date
--- out-of-date 7 May 2012 15:57:51 -0000 1.5
+++ out-of-date 16 Dec 2012 10:56:36 -0000
@@ -82,6 +82,8 @@ sub collect_port_versions
my ($dir) = split(/,/, $subdir);
if (-d "$portsdir/$dir") {
push(@subdirs, $subdir);
+ } elsif (-d "$portsdir/mystuff/$dir") {
+ push(@subdirs, $subdir);
} else {
push(@$notfound, $subdir);
}
An other proposal is to skip any directory existence test, and push $subdir in
@$notfound, during the parsing of make output. It would allow to used
out-of-date(1) in conjonction with some customized mk.conf (usage of
PORTSDIR_PATH for example, and "mystuff" directory in particular).
Index: out-of-date
===================================================================
RCS file: /cvs/ports/infrastructure/bin/out-of-date,v
retrieving revision 1.5
diff -u -p -r1.5 out-of-date
--- out-of-date 7 May 2012 15:57:51 -0000 1.5
+++ out-of-date 16 Dec 2012 13:10:55 -0000
@@ -77,24 +77,14 @@ sub collect_port_versions
{
my ($pkg, $portsdir, $notfound) = @_;
- my @subdirs = ();
- for my $subdir (keys %$pkg) {
- my ($dir) = split(/,/, $subdir);
- if (-d "$portsdir/$dir") {
- push(@subdirs, $subdir);
- } else {
- push(@$notfound, $subdir);
- }
- }
-
- my $cmd = "cd $portsdir && SUBDIR=\"".join(' ', @subdirs)
+ my $cmd = "cd $portsdir && SUBDIR=\"".join(' ', keys %$pkg)
."\" FULLPATH=Yes REPORT_PROBLEM=true make
".'show=FULLPKGNAME\${SUBPACKAGE} '
."2>&1";
my $port = {};
my $error = {};
my $count = 0;
- my $total = scalar @subdirs;
+ my $total = scalar keys %$pkg;
$state->progress->set_header("Collecting port versions");
my $fh = open_cmd($cmd);
@@ -105,6 +95,12 @@ sub collect_port_versions
$subdir = $1;
$count++;
$state->progress->show($count, $total);
+ next;
+ }
+ if (/^\>\> Broken dependency:\s+(\S+)\s+non existent/) {
+ $count++;
+ $state->progress->show($count, $total);
+ push(@$notfound, $1);
next;
}
next unless $_ or $subdir;
--
Sébastien Marie