Your message dated Sun, 07 Dec 2008 17:17:03 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#506663: fixed in devscripts 2.10.42
has caused the Debian Bug report #506663,
regarding [debi] option to only upgrade already-installed packages
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
506663: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506663
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: devscripts
Version: 2.10.41
Severity: wishlist
Tags: patch

For complex multi-binary packages, I don't always want to install all
the binaries when testing my latest build. For example, ssh-krb5 is a
transitional package that rarely changes and that I don't need to have
installed myself, but I want to test the rest of openssh. Until now I've
just used 'dpkg -l' to remind myself of which binaries I have installed
and then used 'sudo dpkg -i' to install them by hand, but it would be
nice if debi could work that out for me.

The attached patch adds a new option, --upgrade, that uses dpkg-query to
figure out which packages are half-installed or better, and installs
only those.

Thanks,

-- 
Colin Watson                                       [EMAIL PROTECTED]
Index: scripts/debi.pl
===================================================================
--- scripts/debi.pl	(revision 1743)
+++ scripts/debi.pl	(working copy)
@@ -30,6 +30,9 @@
 use File::Basename;
 use filetest 'access';
 use Cwd;
+use File::Spec;
+use IPC::Open3;
+use Symbol 'gensym';
 
 my $progname = basename($0,'.pl');  # the '.pl' is for when we're debugging
 my $modified_conf_msg;
@@ -48,6 +51,7 @@
     --debs-dir DIR    Look for the changes and debs files in DIR instead of
                       the parent of the current package directory
     --multi           Search for multiarch .changes file made by dpkg-cross
+    --upgrade         Only upgrade packages; don't install new ones.
     --check-dirname-level N
                       How much to check directory names:
                       N=0   never
@@ -171,6 +175,7 @@
 
 # Command line options next
 my ($opt_help, $opt_version, $opt_a, $opt_t, $opt_debsdir, $opt_multi);
+my $opt_upgrade;
 my ($opt_ignore, $opt_level, $opt_regex, $opt_noconf);
 GetOptions("help" => \$opt_help,
 	   "version" => \$opt_version,
@@ -178,6 +183,7 @@
 	   "t=s" => \$opt_t,
 	   "debs-dir=s" => \$opt_debsdir,
 	   "multi" => \$opt_multi,
+	   "upgrade" => \$opt_upgrade,
 	   "ignore-dirname" => \$opt_ignore,
 	   "check-dirname-level=s" => \$opt_level,
 	   "check-dirname-regex=s" => \$opt_regex,
@@ -379,6 +385,42 @@
 }
 close CHANGES;
 
+if ($progname eq 'debi' and $opt_upgrade and @debs) {
+    my %installed;
+    my @cmd = ('dpkg-query', '-W', '-f', '${Package} ${Status}\n');
+    for my $deb (@debs) {
+	(my $pkg = $deb) =~ s/_.*//;
+	push @cmd, $pkg;
+    }
+    local (*NULL, *QUERY);
+    open NULL, '>', File::Spec->devnull;
+    my $pid = open3(gensym, \*QUERY, '>&NULL', @cmd)
+	or die "$progname: dpkg-query failed\n";
+    while (<QUERY>) {
+	my ($pkg, $want, $eflag, $status) = split;
+	if ($status and $status ne 'not-installed' and
+	    $status ne 'config-files') {
+	    $installed{$pkg} = 1;
+	}
+    }
+    close QUERY;
+    waitpid $pid, 0;
+    my @new_debs;
+    for my $deb (@debs) {
+	(my $pkg = $deb) =~ s/_.*//;
+	if ($installed{$pkg}) {
+	    push @new_debs, $deb;
+	} elsif (@ARGV) {
+	    if (exists $pkgs{$pkg}) {
+		$pkgs{$pkg}--;
+	    } elsif (exists $pkgs{$deb}) {
+		$pkgs{$deb}--;
+	    }
+	}
+    }
+    @debs = @new_debs;
+}
+
 if (! @debs) {
     die "$progname: no appropriate .debs found in the changes file $changes!\n";
 }
Index: scripts/debi.1
===================================================================
--- scripts/debi.1	(revision 1743)
+++ scripts/debi.1	(working copy)
@@ -76,6 +76,12 @@
 either be an absolute path or relative to the top of the source
 directory.
 .TP
+\fB\-\-upgrade\fR
+Only upgrade packages already installed on the system, rather than
+installing all packages listed in the \fI.changes\fR file.
+Useful for multi-binary packages when you don't want to have all the
+binaries installed at once.
+.TP
 \fB\-\-check-dirname-level\fR \fIN\fR
 See the above section "Directory name checking" for an explanation of
 this option.

--- End Message ---
--- Begin Message ---
Source: devscripts
Source-Version: 2.10.42

We believe that the bug you reported is fixed in the latest version of
devscripts, which is due to be installed in the Debian FTP archive:

devscripts_2.10.42.dsc
  to pool/main/d/devscripts/devscripts_2.10.42.dsc
devscripts_2.10.42.tar.gz
  to pool/main/d/devscripts/devscripts_2.10.42.tar.gz
devscripts_2.10.42_amd64.deb
  to pool/main/d/devscripts/devscripts_2.10.42_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Adam D. Barratt <[EMAIL PROTECTED]> (supplier of updated devscripts package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 07 Dec 2008 17:04:52 +0000
Source: devscripts
Binary: devscripts
Architecture: source amd64
Version: 2.10.42
Distribution: unstable
Urgency: low
Maintainer: Devscripts Devel Team <[email protected]>
Changed-By: Adam D. Barratt <[EMAIL PROTECTED]>
Description: 
 devscripts - scripts to make the life of a Debian Package maintainer easier
Closes: 506663 506975 507479 507482 507672
Changes: 
 devscripts (2.10.42) unstable; urgency=low
 .
   [ Adam D. Barratt ]
   * checkbashisms: Fix a variable redeclaration warning. Thanks,
     Neutron Soutmun. (Closes: #506975)
   * cvs-deb{i,release}: Use mktemp rather than a temporary directory
     name based on the process ID.
   * debi: Add an "upgrade" option indicating that only those packages
     already installed on the system should be installed, rather than
     all packages listed in the .changes file. Thanks, Colin Watson.
     (Closes: #506663)
   * debsign:
     + Use mktemp rather than a temporary directory name based on the
       process ID. (Closes: #507482)
     + Use temporary files rather than redirecting gpg's stdin and stdout,
       enabling the use of pinentry-gtk2. (Closes: #507479)
   * uscan:
     + Remove the downloads.sourceforge.net example from the manpage.
       It no longer works due to changes in the website structure. Thanks,
       Alexander Block.
     + Be more intelligent with redirects and relative filenames. This should
       help in situations where the watchfile contains http://example.com/foo
       which is a redirect to http://example.com/foo/, with the latter
       containing relative filenames.
   * uupdate: Use mktemp rather than a temporary directory name based on
     the process ID.
 .
   [ Christoph Berg ]
   * rmadison: Add debug.debian.net.
 .
   [ Patrick Schoenfeld ]
   * dget: Fix misspelt wget option (should be --no-cache instead of
     --no-chache) (Closes: #507672)
 .
   [ James Vega ]
   * debcheckout: Use B<> and I<> to denote the different options sections
     instead of =head2/=head3 since the latter cause pod2usage not to display
     any options when running debcheckout -h.
Checksums-Sha1: 
 25ec7cac0acbcadd1b170d4f5b0fcbf75828b0f4 1363 devscripts_2.10.42.dsc
 717d224d1dfd9842c71882ab1c1cc32eff731d2f 632907 devscripts_2.10.42.tar.gz
 6f3c4ec0eca01a1efd6058d6a0b6b42cfad0009a 543678 devscripts_2.10.42_amd64.deb
Checksums-Sha256: 
 2ffd539581731f9149adb38f2d16ae5eb229fac1c728f24d2dbef9c787ac94d0 1363 
devscripts_2.10.42.dsc
 9ebc6e8d7fd54ba37687bf872c2c96106777c83cae36e2ac1075c7b3a97170bc 632907 
devscripts_2.10.42.tar.gz
 c0e67ac6e484e37dd0d9f08fb86c93187c75a72081300c44a78ff4b11c12d341 543678 
devscripts_2.10.42_amd64.deb
Files: 
 3192966ebb8a80c504f7115b25660d3b 1363 devel optional devscripts_2.10.42.dsc
 093293e7398e0b99fd2ef7f439f9c82a 632907 devel optional 
devscripts_2.10.42.tar.gz
 8719a7c3018020a202ce265ca580110c 543678 devel optional 
devscripts_2.10.42_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkk8A2oACgkQokcE1TReOoU09ACfXg2xSN9mMntYoc3OEJt1/iEV
b6EAn2k7NC/LXfdGsnplhRsnwQmIcvGu
=U9pc
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to