Ticket #1089: gen-build-deps.patch
File gen-build-deps.patch, 2.0 KB (added by jdreed, 11 years ago) |
---|
-
gen-build-deps
18 18 return @a; 19 19 } 20 20 21 # For each source package, add its build-deps to the list 21 22 open(DPKG, '-|', "zcat $ENV{DEBATHENA_APT}/dists/$psuite/*/source/Sources.gz | dpkg-awk -f - -- Package Build-Depends") or die; 22 23 my %src_deps = (); 23 24 while (<DPKG>) { … … 34 35 } 35 36 } 36 37 close DPKG; 37 open(DPKG, '-|', "zcat $ENV{DEBATHENA_APT}/dists/$psuite/debathena/binary-amd64/Packages.gz | dpkg-awk -f - -- Package Source Provides") or die; 38 39 # For each binary package, add itself as a source and provider. If 40 # there are actually different Sources and Provides for the package, 41 # use them instead. Note: This will fail miserably if we ever build 42 # packages only for one architecture. 43 open(DPKG, '-|', "zcat $ENV{DEBATHENA_APT}/dists/$psuite/debathena/binary-amd64/Packages.gz | dpkg-awk -f - -- Package Source Provides Depends") or die; 38 44 my %pkg_src = (); 39 45 my %pkg_provider = (); 46 my %pkg_deps=(); 40 47 while (<DPKG>) { 41 48 last if /^$/; 42 49 my ($package) = /^Package: (.*)$/ or die; 43 50 $pkg_src{$package} = $package; 44 51 $pkg_provider{$package} = $package; 52 @{$pkg_deps{$package}} = (); 45 53 while (<DPKG>) { 46 54 last if ($_ eq "\n"); 47 55 if (my ($source) = /^Source: (.*)$/) { 48 56 $pkg_src{$package} = $source; 49 57 } elsif (my ($provides) = /^Provides: (.*)$/) { 50 58 $pkg_provider{$_} = $package for (list($provides)); 59 } elsif (my ($depends) = /^Depends: (.*)$/) { 60 push @{$pkg_deps{$package}}, $_ for (list($depends)); 51 61 } else { 52 62 die; 53 63 } 54 64 } 55 65 } 66 56 67 for my $source (keys %src_deps) { 57 68 print "build-all: \$(call package,$source)\n"; 58 69 if ($source ne "debathena-build-depends") { … … 60 71 } 61 72 for (@{$src_deps{$source}}) { 62 73 print "\$(call package,$source): \$(call package,$pkg_src{$pkg_provider{$_}})\n" if (defined $pkg_provider{$_}); 74 foreach my $dep (@{$pkg_deps{$_}}) { 75 print "\$(call package,$source): \$(call package,$pkg_src{$dep})\n" if (defined $pkg_provider{$dep}); 76 } 63 77 } 64 78 }