[SCM] Debian package checker branch, lab-refactor, updated. 2.5.3-57-g8a197df
The following commit has been merged in the lab-refactor branch:
commit 8a197df5893ab0aa42e6879cd1b805b7c443cb26
Author: Niels Thykier <niels@thykier.net>
Date: Sat Sep 24 19:52:10 2011 +0200
Migrate to the new Lab modules
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/frontend/lintian b/frontend/lintian
index 87adfdd..d540831 100755
--- a/frontend/lintian
+++ b/frontend/lintian
@@ -739,7 +739,7 @@ if (-d "$LINTIAN_ROOT/locale/en_US.UTF-8") {
# {{{ Loading lintian's own libraries (now LINTIAN_ROOT is known)
unshift @INC, "$opt{'LINTIAN_ROOT'}/lib";
-require Lab;
+require Lintian::Lab;
require Util;
import Util;
@@ -867,7 +867,7 @@ $SIG{'QUIT'} = \&interrupted;
# {{{ Create/Maintain Lab and add any specified Debian Archives (*.debs)
-$LAB = Lab->new( $opt{'LINTIAN_LAB'} );
+$LAB = Lintian::Lab->new( $opt{'LINTIAN_LAB'} );
#######################################
# Process -S option
@@ -876,7 +876,7 @@ if ($action eq 'setup-lab') {
warning('ignoring additional command line arguments');
}
- $LAB->setup_static()
+ $LAB->create_lab()
or fail('There was an error while setting up the static lab.');
exit 0;
@@ -888,7 +888,7 @@ if ($action eq 'setup-lab') {
warning('ignoring additional command line arguments');
}
- $LAB->delete_static()
+ $LAB->remove_lab()
or fail('There was an error while removing the static lab.');
exit 0;
@@ -900,13 +900,19 @@ if ($action eq 'setup-lab') {
fail("bad action $action specified");
}
-# sanity check:
-fail('lintian lab has not been set up correctly (perhaps you forgot to run lintian --setup-lab?)')
- unless $LAB->is_lab();
+if ($LAB->dir) {
+ # sanity check:
+ fail('lintian lab has not been set up correctly (perhaps you forgot to run lintian --setup-lab?)')
+ unless $LAB->lab_exists;
+} else {
+ $LAB->create_lab ( {'keep-lab' => $keep_lab} );
+}
-#XXX: There has to be a cleaner way to do this
-# Update the ENV var as well
-$ENV{'LINTIAN_LAB'} = $opt{'LINTIAN_LAB'} = $LAB->{dir};
+$LAB->open_lab;
+
+# Update the ENV var as well - unlike the original values,
+# $LAB->dir is always absolute
+$ENV{'LINTIAN_LAB'} = $opt{'LINTIAN_LAB'} = $LAB->dir;
# }}}
@@ -1101,8 +1107,7 @@ if($action eq 'remove'){
my $pkg_path = $proc->pkg_path();
my $pkg_arch = $proc->pkg_arch();
eval{
- $lpkg = $LAB->get_lab_package($pkg_name, $pkg_ver, $pkg_arch,
- $pkg_type, $pkg_path);
+ $lpkg = $LAB->get_package($proc);
};
if(!defined($lpkg)){
my $err = '.';
@@ -1122,7 +1127,7 @@ if($action eq 'remove'){
}
$TAGS->file_end();
# Write the lab state to the disk, so it remembers they are gone.
- $LAB->write_state();
+ $LAB->close_lab();
exit $exit_code;
}
# }}}
@@ -1283,7 +1288,7 @@ foreach my $gname (sort $pool->get_group_names()) {
}
# Write the lab state to the disk, so it remembers the new packages
-$LAB->write_state();
+$LAB->close_lab();
$TAGS->file_end();
if ($action eq 'check' and not $opt{'no-override'} and not $opt{'show-overrides'}) {
@@ -1499,8 +1504,7 @@ sub auto_clean_package {
"skipping cleanup of $pkg_type package $pkg_name");
return 0;
}
- unlink("$base/.${coll}-$ci->{'version'}")
- or fail("failed to remove status file of collect info $coll about package $pkg_name");
+ $lpkg->_clear_coll_status ($coll);
}
}
return 1;
@@ -1553,8 +1557,7 @@ sub unpack_group {
my $base;
my $info;
eval{
- $lpkg = $LAB->get_lab_package($pkg_name, $pkg_ver, $pkg_arch,
- $pkg_type, $pkg_path);
+ $lpkg = $LAB->get_package($proc);
};
if(!defined($lpkg)){
my $err = '.';
@@ -1593,7 +1596,7 @@ sub unpack_group {
}
# check if it has been run previously
- if ($lpkg->_is_coll_finished($coll, $ci->{'version'})) {
+ if ($lpkg->is_coll_finished($coll, $ci->{'version'})) {
$collmap->satisfy($req);
next;
}
@@ -1602,9 +1605,6 @@ sub unpack_group {
# collect info
$collmap->select($req);
- unless ($lpkg->remove_status_file()) {
- warning("cannot remove status file $pkg_name: $!");
- }
debug_msg(1, "Collecting info: $coll ...");
my $script = "$opt{'LINTIAN_ROOT'}/collection/$ci->{'script'}";
my $cmd = Lintian::Command::Simple->new();
@@ -1800,7 +1800,7 @@ sub END {
%running_jobs = ();
}
- $LAB->delete() if $LAB and not $keep_lab;
+ $LAB->close_lab if $LAB;
}
sub interrupted {
diff --git a/lib/Lintian/ProcessablePool.pm b/lib/Lintian/ProcessablePool.pm
index c03b274..418768b 100644
--- a/lib/Lintian/ProcessablePool.pm
+++ b/lib/Lintian/ProcessablePool.pm
@@ -229,7 +229,7 @@ sub _get_group_id{
my ($self, $pkg) = @_;
my $id = $pkg->pkg_src;
my $lab = $self->{'lab'};
- $id .= '_' . $pkg->pkg_src_version if $lab && $lab->_supports_multiple_versions;
+ $id .= '_' . $pkg->pkg_src_version;
return $id;
}
@@ -239,8 +239,8 @@ sub _get_proc_id {
my ($self, $pkg) = @_;
my $id = $pkg->pkg_name;
my $lab = $self->{'lab'};
- $id .= '_' . $pkg->pkg_version if $lab && $lab->_supports_multiple_versions;
- $id .= '_' . $pkg->pkg_arch if $lab && $lab->_supports_multiple_architectures;
+ $id .= '_' . $pkg->pkg_version;
+ $id .= '_' . $pkg->pkg_arch;
return $id;
}
--
Debian package checker
Reply to: