~ubuntu-branches/ubuntu/oneiric/sbuild/oneiric

« back to all changes in this revision

Viewing changes to lib/Sbuild/Chroot.pm

  • Committer: Bazaar Package Importer
  • Author(s): Laurent Bigonville
  • Date: 2011-06-26 13:59:34 UTC
  • mfrom: (8.1.21 upstream) (3.3.19 sid)
  • Revision ID: james.westby@ubuntu.com-20110626135934-8blyh9rnoiiqflgt
Tags: 0.62.4-1ubuntu1
* Merge from debian unstable, Remaining changes:
  - debian/patches/do-not-install-debfoster-into-chroots.patch:
    do not install debfoster into the chroots because it is in universe and
    not needed for package building itself.
  - debian/patches/run-pre-build-hooks-as-root.patch:
    run pre-build hooks as root

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
    my $self = $class->SUPER::new($conf);
51
51
    bless($self, $class);
52
52
 
 
53
    my @filter;
 
54
    @filter = @{$self->get_conf('ENVIRONMENT_FILTER')}
 
55
        if (defined($self->get_conf('ENVIRONMENT_FILTER')));
 
56
 
53
57
    $self->set('Session ID', "");
54
58
    $self->set('Chroot ID', $chroot_id);
55
59
    $self->set('Defaults', {
57
61
        'INTCOMMAND' => [], # Private
58
62
        'EXPCOMMAND' => [], # Private
59
63
        'ENV' => {},
 
64
        'ENV_FILTER' => \@filter,
60
65
        'USER' => 'root',
61
66
        'CHROOT' => 1,
62
67
        'PRIORITY' => 0,
276
281
        $ENV{$_} = $commandenv->{$_};
277
282
    }
278
283
 
 
284
    my @filter;
 
285
    my $chrootfilter = $self->get('Defaults')->{'ENV_FILTER'};
 
286
    push(@filter, @{$chrootfilter});
 
287
 
 
288
    my $commandfilter = $options->{'ENV_FILTER'};
 
289
    push(@filter, @{$commandfilter}) if defined($commandfilter);
 
290
 
279
291
    # Sanitise environment
280
 
    if (defined $self->get_conf('ENVIRONMENT_FILTER')) {
281
 
        foreach my $var (keys %ENV) {
282
 
            my $match = 0;
283
 
            foreach my $regex (@{$self->get_conf('ENVIRONMENT_FILTER')}) {
284
 
                $match = 1 if
285
 
                    $var =~ m/($regex)/;
286
 
            }
287
 
            delete $ENV{$var} if
288
 
                $match == 0;
289
 
            if (!$match) {
290
 
                debug2("Environment filter: Deleted $var\n");
291
 
            } else {
292
 
                debug2("Environment filter: Kept $var\n");
293
 
            }
 
292
    foreach my $var (keys %ENV) {
 
293
        my $match = 0;
 
294
        foreach my $regex (@filter) {
 
295
            $match = 1 if
 
296
                $var =~ m/($regex)/;
 
297
        }
 
298
        delete $ENV{$var} if
 
299
            $match == 0;
 
300
        if (!$match) {
 
301
            debug2("Environment filter: Deleted $var\n");
 
302
        } else {
 
303
            debug2("Environment filter: Kept $var\n");
294
304
        }
295
305
    }
296
306