This  is a patch that should close this little issue.

-- 
-gaspa-
-----------------------------------------------
-------- https://launchpad.net/~gaspa ---------
------ HomePage: iogaspa.altervista.org -------
-Il lunedi'dell'arrampicatore: www.lunedi.org -
diff -Nru /tmp/pFIiDXSYFF/apt-build-0.12.29/apt-build /tmp/9zYSrkIzeX/apt-build-0.12.30/apt-build
--- /tmp/pFIiDXSYFF/apt-build-0.12.29/apt-build	2007-11-26 18:16:51.000000000 +0100
+++ /tmp/9zYSrkIzeX/apt-build-0.12.30/apt-build	2007-12-05 14:54:46.000000000 +0100
@@ -40,7 +40,7 @@
 
 
 # Initial
-my $VERSION = "unreleased";
+my $VERSION = "0.12.30";
 my ($conf, %conf, @builddep, @apt_args);
 
 @apt_args = qw/--yes/;     # and DEFAULT => 1, down in parse_config()
@@ -389,7 +389,7 @@
     }
     
     print STDERR "-----> Installing build dependencies (for $pkg) <-----";
-    !system $conf->apt_get . " @apt_args build-dep $pkg"
+    !system $conf->apt_get . " @apt_args build-dep $pkg";
 }
 
 
@@ -431,12 +431,20 @@
 sub get_pkg_version
 {
     my $pkg_name = shift;
+    my $release  = shift || "";
     my $pkg_version;
 
     # Look for candidate version
     open APTCIN, "LANGUAGE=C " . $conf->apt_cache . " policy $pkg_name |";
     while(<APTCIN>)
-    { $pkg_version = $1 if(/^\s+Candidate: (.*)$/); }
+    {
+        $pkg_version = $1 if(/^\s+Candidate: (.*)$/ and $release eq "" );
+        if( $release )
+        {
+            last if ( /$release/ ); ## quit from while,but keep the version from the row before
+            $pkg_version = $2 if( /^\s(\*\*\*)?\s+(.*) \d/ );
+        }
+    }
     close(APTCIN);
 
     return $pkg_version;
@@ -458,21 +466,30 @@
 }
 
 sub install
-{   
+{
     my (@packages, @pkgs, $buildpkg);
-    my (@pkglist) = @_;
+    my @pkglist = ();
     my $nopkgs_okay = 0;
     my $special_srcver = 0;
-    
+
     for (@_)
     {
 	my $pkg_name = $_;
-	my ($pkg_version, $src_name, $src_version, $deb_file);
+	my ($pkg_version, $src_name, $src_version, $deb_file,$release);
 	
-	$pkg_version = &get_pkg_version($pkg_name);
+    ($pkg_name,$release)=($1,$2) if ( $pkg_name =~ /(.*)\/(.*)/ );
+    if( $pkg_name =~ /(.*)=(.*)/ )
+    {
+        ($pkg_name,$pkg_version)=($1,$2);
+    } else {
+        # release is ignored if empty
+        $pkg_version = &get_pkg_version($pkg_name,$release);
+    }
 	$src_version = &get_src_version($pkg_name, $pkg_version);
 	$src_name = &get_src_name($pkg_name, $src_version);
 
+    push ( @pkglist, $pkg_name );
+
 	if (!$src_name && $src_version =~ /\+/) {
 		$src_version =~ s/\+.*$//;
 		$src_name = &get_src_name($pkg_name, $src_version);
diff -Nru /tmp/pFIiDXSYFF/apt-build-0.12.29/debian/changelog /tmp/9zYSrkIzeX/apt-build-0.12.30/debian/changelog
--- /tmp/pFIiDXSYFF/apt-build-0.12.29/debian/changelog	2007-11-26 18:19:45.000000000 +0100
+++ /tmp/9zYSrkIzeX/apt-build-0.12.30/debian/changelog	2007-12-05 14:59:51.000000000 +0100
@@ -1,3 +1,10 @@
+apt-build (0.12.30) unstable; urgency=low
+
+  * apt-build: Support specific version/distribution for packages to
+    install ( Closes: #454472 )
+
+ -- Andrea Gasparini <[EMAIL PROTECTED]>  Wed, 05 Dec 2007 14:45:14 +0100
+
 apt-build (0.12.29) unstable; urgency=low
 
   * Don't touch sources.list anymore (Closes: #446074)

Reply via email to