[Cdd-commits] r249 - cdd/trunk/cdd
Andreas Tille
debian-custom@lists.debian.org
Tue, 13 Jul 2004 08:55:50 -0600
Author: tille
Date: Tue Jul 13 08:55:49 2004
New Revision: 249
Modified:
cdd/trunk/cdd/cdd-gen-control
Log:
Dependencies of #CDD#-common file checked and versionized
Modified: cdd/trunk/cdd/cdd-gen-control
==============================================================================
--- cdd/trunk/cdd/cdd-gen-control (original)
+++ cdd/trunk/cdd/cdd-gen-control Tue Jul 13 08:55:49 2004
@@ -23,8 +23,13 @@
my $aptsources = "/etc/cdd/sources.list";
my $tmpaptsources = "" ;
+
+my %commondepends ;
+$commondepends{"adduser"} = "0" ;
+$commondepends{"debconf"} = "1.2" ;
+$commondepends{"menu"} = "2.1.14" ;
# the VERSION variable is replaced in the dist target of debian/rules
-my $version = "#VERSION#" ;
+$commondepends{"cdd-common"} = "#VERSION#" ;
getopts("cdaemis:", \%opts);
@@ -166,17 +171,44 @@
# if there is a file common/control append this to control file
if ( -s "common/control" && open(COMMON, "common/control") ) {
my $dependsflag = 0;
+ my @finaldeps ;
+ my $cdep ;
while ( <COMMON> ) {
- if ( m/Depends:/ ) {
- print "Depends: adduser, debconf (>= 1.2), menu (>= 2.1.14), cdd-common (>= $version)\n" ;
+ if ( m/Depends:\s*(.*)/ ) {
+ my $dep ;
+ my @deps = split(/\s*,\s*/, $1) ;
+ @finaldeps = () ;
+ foreach $dep ( @deps ) {
+ my $version = "0" ;
+
+ if ( $dep =~ /([^\s]+)\s*\(\s*>*=+\s*([\d\.]*)\s*\)/ ) {
+ $version = $2;
+ $dep = $1;
+ }
+ foreach $cdep ( keys %commondepends ) {
+ if ( $dep =~ $cdep ) {
+ if ( ! system("dpkg --compare-versions $version lt $commondepends{$cdep}") ) {
+ $version = $commondepends{$cdep} ;
+ }
+ last ;
+ }
+ }
+ unless ( $version =~ /^0$/ ) { @finaldeps = (@finaldeps, "$dep (>= $version)") ; }
+ else { @finaldeps = (@finaldeps, "$dep") ; }
+ }
+ print "Depends: " . join(", ", @finaldeps) . "\n";
$dependsflag = 1;
next ;
}
if ( m/Description:/ ) {
if ( $dependsflag == 0 ) {
- print "Depends: adduser, debconf (>= 1.2), menu (>= 2.1.14), cdd-common (>= $version)\n" ;
+ @finaldeps = () ;
+ for $cdep (keys %commondepends) {
+ unless ( $commondepends{$cdep} =~ /^0$/ ) { @finaldeps = (@finaldeps, "$cdep (>= $commondepends{$cdep})") ; }
+ else { @finaldeps = (@finaldeps, "$cdep") ; }
+ }
+ print "Depends: " . join(", ", @finaldeps) . "\n";
$dependsflag = 1;
- next ;
}
}
print ;