-foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
- $TMP=tmpdir($PACKAGE);
- doit("dpkg","--build",$TMP,"$dh{DESTDIR}/$dh{FILENAME}",@{$dh{U_PARAMS}});
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $pid=fork();
+ if (! defined $pid) {
+ error("fork failed! $!");
+ }
+ if ($pid) { # parent
+ $processes++;
+ reap while $processes > $max_procs;
+ next;
+ }
+
+ # child
+ my $tmp=tmpdir($package);
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
+ if (! compat(5)) {
+ complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf");
+ }
+ else {
+ # Old broken code here for compatibility. Does not
+ # remove everything.
+ complex_doit("find $tmp -name $_ | xargs rm -rf")
+ foreach split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ }
+ }
+ if (! is_udeb($package)) {
+ doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
+ }
+ else {
+ my $filename=$dh{FILENAME};
+ if (! $filename) {
+ $filename="/".udeb_filename($package);
+ }
+ doit("dpkg-deb", "-z1", "-Zxz", "-Sextreme",
+ @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$filename);
+ }
+ exit 0;