1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
#!/usr/bin/perl
$debdir = 'debian';
# parameter
$clean = grep( /^--clean$/, @ARGV );
$packagename = grep( /^-p.*$/, @ARGV );
$module = grep( /^--module$/, @ARGV );
$packagename = '' if ($packagename == 0);
$source = '';
open( FILE, "<$debdir/control" );
while( defined( $line = <FILE> ) && ( $source eq '' ) ) {
if ( $line =~ m/^Source:\s+(.*)$/ ) {
$source = $1;
}
}
close( FILE );
if ( $module ) {
# read kvers, kversdeb and kstem
$kvers = '';
$kversdeb = '';
$kstem = '';
open( FILE, "<$debdir/substvars" );
while( defined( $line = <FILE> ) && ( $kvers eq '' || $kversdeb eq '' || $kstem eq '' ) ) {
$kvers= $1 if ( $line =~ m/^kvers=(.*)$/ );
$kversdeb= $1 if ( $line =~ m/^kversdeb=(.*)$/ );
$kstem= $1 if ( $line =~ m/^kstem=(.*)$/ );
}
close( FILE );
# and read module package name (if $packagename is not set)
open( FILE, "<$debdir/control" );
while( defined( $line = <FILE> ) && ($packagename eq '') ) {
if ( $line =~ m/^Package: ([a-zA-Z0-9\_]+-modules-\$\{kvers\})/ ) {
$packagename = $1;
$packagename =~ s/\$\{kvers\}/$kvers/;
}
}
if ( $clean ) {
system( "rm", "-f", "$packagename.control" );
exit( 0 );
}
# create package specific control file
close( FILE );
open( FILE, "<$debdir/control" );
open( NFILE, ">$debdir/$packagename.control" );
while( defined( $line = <FILE> ) ) {
$line =~ s/\$\{kvers\}/$kvers/;
$line =~ s/\$\{kversdeb\}/$kversdeb/;
$line =~ s/\$\{kstem\}/$kstem/;
print( NFILE $line );
}
close( NFILE );
close( FILE );
print( "packagename: $packagename, kvers: $kvers, kversdeb: $kversdeb, kstem: $kstem\n" );
exit( 0 );
}
$name="$source";
#print( "$name\n$dir\n" );
opendir( DIR, $debdir );
while ( $file = readdir( DIR ) ) {
if ( $file =~ m/^(.*)\.modulecontrol$/ ) {
$package = $1;
# print( "package: $package\n" );
if ( ! -d "$debdir/$package/usr/src/modules/$name/debian" ) {
system( "install", "-d",
"$debdir/$package/usr/src/modules/$name/debian/scripts" );
}
if ( ! -e "$debdir/$package/usr/src/modules/$name/debian/scripts/".
"dh_modulecontrol" ) {
system( "cp", "$debdir/scripts/dh_modulecontrol",
"$debdir/$package/usr/src/modules/$name/debian/scripts/" );
}
open( OUT, ">$debdir/$package/usr/src/modules/$name/debian/control") ||
die "couldn't open $debdir/$package/usr/src/modules/$name/debian/".
"control";
open( FILE, "<$debdir/control" ) ||
die "couldn't open $debdir/control";
while( defined($line = <FILE>) && ( $line !~ m/^\s/ ) ) {
print( OUT $line )
if ( $line !~ m/Depends/ || $ENV{'DH_COMPAT'} < 2 );
}
close( FILE );
print( OUT "\n" );
open( FILE, "<$debdir/$package.modulecontrol" );
while( <FILE> ) {
print( OUT $_ );
}
close( FILE );
}
}
closedir( DIR );
|