File: dh_modulecontrol

package info (click to toggle)
em8300 0.16.0-2
  • links: PTS
  • area: contrib
  • in suites: etch, etch-m68k
  • size: 2,024 kB
  • ctags: 1,492
  • sloc: ansic: 11,554; sh: 3,849; perl: 1,353; makefile: 429
file content (98 lines) | stat: -rw-r--r-- 2,831 bytes parent folder | download | duplicates (2)
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 );