| Index: third_party/dpkg-dev/scripts/Dpkg/BuildOptions.pm
|
| diff --git a/third_party/dpkg-dev/scripts/Dpkg/BuildOptions.pm b/third_party/dpkg-dev/scripts/Dpkg/BuildOptions.pm
|
| deleted file mode 100644
|
| index 90213aab0f40587677953fc796ef752ed169b203..0000000000000000000000000000000000000000
|
| --- a/third_party/dpkg-dev/scripts/Dpkg/BuildOptions.pm
|
| +++ /dev/null
|
| @@ -1,204 +0,0 @@
|
| -# Copyright © 2007 Frank Lichtenheld <djpig@debian.org>
|
| -# Copyright © 2010 Raphaël Hertzog <hertzog@debian.org>
|
| -#
|
| -# This program is free software; you can redistribute it and/or modify
|
| -# it under the terms of the GNU General Public License as published by
|
| -# the Free Software Foundation; either version 2 of the License, or
|
| -# (at your option) any later version.
|
| -#
|
| -# This program is distributed in the hope that it will be useful,
|
| -# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| -# GNU General Public License for more details.
|
| -#
|
| -# You should have received a copy of the GNU General Public License
|
| -# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
| -
|
| -package Dpkg::BuildOptions;
|
| -
|
| -use strict;
|
| -use warnings;
|
| -
|
| -our $VERSION = '1.01';
|
| -
|
| -use Dpkg::Gettext;
|
| -use Dpkg::ErrorHandling;
|
| -use Dpkg::BuildEnv;
|
| -
|
| -=encoding utf8
|
| -
|
| -=head1 NAME
|
| -
|
| -Dpkg::BuildOptions - parse and update build options
|
| -
|
| -=head1 DESCRIPTION
|
| -
|
| -The Dpkg::BuildOptions object can be used to manipulate options stored
|
| -in environment variables like DEB_BUILD_OPTIONS and
|
| -DEB_BUILD_MAINT_OPTIONS.
|
| -
|
| -=head1 FUNCTIONS
|
| -
|
| -=over 4
|
| -
|
| -=item my $bo = Dpkg::BuildOptions->new(%opts)
|
| -
|
| -Create a new Dpkg::BuildOptions object. It will be initialized based
|
| -on the value of the environment variable named $opts{envvar} (or
|
| -DEB_BUILD_OPTIONS if that option is not set).
|
| -
|
| -=cut
|
| -
|
| -sub new {
|
| - my ($this, %opts) = @_;
|
| - my $class = ref($this) || $this;
|
| -
|
| - my $self = {
|
| - options => {},
|
| - source => {},
|
| - envvar => $opts{envvar} // 'DEB_BUILD_OPTIONS',
|
| - };
|
| - bless $self, $class;
|
| - $self->merge(Dpkg::BuildEnv::get($self->{envvar}), $self->{envvar});
|
| - return $self;
|
| -}
|
| -
|
| -=item $bo->reset()
|
| -
|
| -Reset the object to not have any option (it's empty).
|
| -
|
| -=cut
|
| -
|
| -sub reset {
|
| - my ($self) = @_;
|
| - $self->{options} = {};
|
| - $self->{source} = {};
|
| -}
|
| -
|
| -=item $bo->merge($content, $source)
|
| -
|
| -Merge the options set in $content and record that they come from the
|
| -source $source. $source is mainly used in warning messages currently
|
| -to indicate where invalid options have been detected.
|
| -
|
| -$content is a space separated list of options with optional assigned
|
| -values like "nocheck parallel=2".
|
| -
|
| -=cut
|
| -
|
| -sub merge {
|
| - my ($self, $content, $source) = @_;
|
| - return 0 unless defined $content;
|
| - my $count = 0;
|
| - foreach (split(/\s+/, $content)) {
|
| - unless (/^([a-z][a-z0-9_-]*)(?:=(\S*))?$/) {
|
| - warning(_g('invalid flag in %s: %s'), $source, $_);
|
| - next;
|
| - }
|
| - $count += $self->set($1, $2, $source);
|
| - }
|
| - return $count;
|
| -}
|
| -
|
| -=item $bo->set($option, $value, [$source])
|
| -
|
| -Store the given option in the objet with the given value. It's legitimate
|
| -for a value to be undefined if the option is a simple boolean (its
|
| -presence means true, its absence means false). The $source is optional
|
| -and indicates where the option comes from.
|
| -
|
| -The known options have their values checked for sanity. Options without
|
| -values have their value removed and options with invalid values are
|
| -discarded.
|
| -
|
| -=cut
|
| -
|
| -sub set {
|
| - my ($self, $key, $value, $source) = @_;
|
| -
|
| - # Sanity checks
|
| - if ($key =~ /^(noopt|nostrip|nocheck)$/ && defined($value)) {
|
| - $value = undef;
|
| - } elsif ($key eq 'parallel') {
|
| - $value //= '';
|
| - return 0 if $value !~ /^\d*$/;
|
| - }
|
| -
|
| - $self->{options}{$key} = $value;
|
| - $self->{source}{$key} = $source;
|
| -
|
| - return 1;
|
| -}
|
| -
|
| -=item $bo->get($option)
|
| -
|
| -Return the value associated to the option. It might be undef even if the
|
| -option exists. You might want to check with $bo->has($option) to verify if
|
| -the option is stored in the object.
|
| -
|
| -=cut
|
| -
|
| -sub get {
|
| - my ($self, $key) = @_;
|
| - return $self->{options}{$key};
|
| -}
|
| -
|
| -=item $bo->has($option)
|
| -
|
| -Returns a boolean indicating whether the option is stored in the object.
|
| -
|
| -=cut
|
| -
|
| -sub has {
|
| - my ($self, $key) = @_;
|
| - return exists $self->{options}{$key};
|
| -}
|
| -
|
| -=item $string = $bo->output($fh)
|
| -
|
| -Return a string representation of the build options suitable to be
|
| -assigned to an environment variable. Can optionnaly output that string to
|
| -the given filehandle.
|
| -
|
| -=cut
|
| -
|
| -sub output {
|
| - my ($self, $fh) = @_;
|
| - my $o = $self->{options};
|
| - my $res = join(' ', map { defined($o->{$_}) ? $_ . '=' . $o->{$_} : $_ } sort keys %$o);
|
| - print { $fh } $res if defined $fh;
|
| - return $res;
|
| -}
|
| -
|
| -=item $bo->export([$var])
|
| -
|
| -Export the build options to the given environment variable. If omitted,
|
| -the environment variable defined at creation time is assumed. The value
|
| -set to the variable is also returned.
|
| -
|
| -=cut
|
| -
|
| -sub export {
|
| - my ($self, $var) = @_;
|
| - $var = $self->{envvar} unless defined $var;
|
| - my $content = $self->output();
|
| - Dpkg::BuildEnv::set($var, $content);
|
| - return $content;
|
| -}
|
| -
|
| -=back
|
| -
|
| -=head1 CHANGES
|
| -
|
| -=head2 Version 1.01
|
| -
|
| -Enable to use another environment variable instead of DEB_BUILD_OPTIONS.
|
| -Thus add support for the "envvar" option at creation time.
|
| -
|
| -=head1 AUTHOR
|
| -
|
| -Raphaël Hertzog <hertzog@debian.org>
|
| -
|
| -=cut
|
| -
|
| -1;
|
|
|