Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Unified Diff: third_party/dpkg-dev/scripts/Dpkg/Changelog/Parse.pm

Issue 2425693003: Revert of Linux build: Use sysroot when calculating dependencies (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/dpkg-dev/scripts/Dpkg/Changelog/Parse.pm
diff --git a/third_party/dpkg-dev/scripts/Dpkg/Changelog/Parse.pm b/third_party/dpkg-dev/scripts/Dpkg/Changelog/Parse.pm
deleted file mode 100644
index 41c4440d7e846d37606385c7556bb3848d2c430a..0000000000000000000000000000000000000000
--- a/third_party/dpkg-dev/scripts/Dpkg/Changelog/Parse.pm
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright © 2005, 2007 Frank Lichtenheld <frank@lichtenheld.de>
-# Copyright © 2009 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/>.
-
-=encoding utf8
-
-=head1 NAME
-
-Dpkg::Changelog::Parse - generic changelog parser for dpkg-parsechangelog
-
-=head1 DESCRIPTION
-
-This module provides a single function changelog_parse() which reproduces
-all the features of dpkg-parsechangelog.
-
-=head2 FUNCTIONS
-
-=cut
-
-package Dpkg::Changelog::Parse;
-
-use strict;
-use warnings;
-
-our $VERSION = '1.00';
-
-use Dpkg ();
-use Dpkg::Gettext;
-use Dpkg::ErrorHandling;
-use Dpkg::Control::Changelog;
-
-use Exporter qw(import);
-our @EXPORT = qw(changelog_parse);
-
-=over 4
-
-=item my $fields = changelog_parse(%opt)
-
-This function will parse a changelog. In list context, it return as many
-Dpkg::Control object as the parser did output. In scalar context, it will
-return only the first one. If the parser didn't return any data, it will
-return an empty in list context or undef on scalar context. If the parser
-failed, it will die.
-
-The parsing itself is done by an external program (searched in the
-following list of directories: $opt{libdir},
-F</usr/local/lib/dpkg/parsechangelog>, F</usr/lib/dpkg/parsechangelog>) That
-program is named according to the format that it's able to parse. By
-default it's either "debian" or the format name lookep up in the 40 last
-lines of the changelog itself (extracted with this perl regular expression
-"\schangelog-format:\s+([0-9a-z]+)\W"). But it can be overridden
-with $opt{changelogformat}. The program expects the content of the
-changelog file on its standard input.
-
-The changelog file that is parsed is F<debian/changelog> by default but it
-can be overridden with $opt{file}.
-
-All the other keys in %opt are forwarded as parameter to the external
-parser. If the key starts with "-", it's passed as is. If not, it's passed
-as "--<key>". If the value of the corresponding hash entry is defined, then
-it's passed as the parameter that follows.
-
-=cut
-
-sub changelog_parse {
- my (%options) = @_;
- my @parserpath = ('/usr/local/lib/dpkg/parsechangelog',
- "$Dpkg::LIBDIR/parsechangelog",
- '/usr/lib/dpkg/parsechangelog');
- my $format = 'debian';
- my $force = 0;
-
- # Extract and remove options that do not concern the changelog parser
- # itself (and that we shouldn't forward)
- if (exists $options{libdir}) {
- unshift @parserpath, $options{libdir};
- delete $options{libdir};
- }
- if (exists $options{changelogformat}) {
- $format = $options{changelogformat};
- delete $options{changelogformat};
- $force = 1;
- }
-
- # Set a default filename
- if (not exists $options{file}) {
- $options{file} = 'debian/changelog';
- }
- my $changelogfile = $options{file};
-
- # Extract the format from the changelog file if possible
- unless($force or ($changelogfile eq '-')) {
- open(my $format_fh, '-|', 'tail', '-n', '40', $changelogfile)
- or syserr(_g('cannot create pipe for %s'), 'tail');
- while (<$format_fh>) {
- $format = $1 if m/\schangelog-format:\s+([0-9a-z]+)\W/;
- }
- close($format_fh) or subprocerr(_g('tail of %s'), $changelogfile);
- }
-
- # Find the right changelog parser
- my $parser;
- foreach my $dir (@parserpath) {
- my $candidate = "$dir/$format";
- next if not -e $candidate;
- if (-x _) {
- $parser = $candidate;
- last;
- } else {
- warning(_g('format parser %s not executable'), $candidate);
- }
- }
- error(_g('changelog format %s is unknown'), $format) if not defined $parser;
-
- # Create the arguments for the changelog parser
- my @exec = ($parser, "-l$changelogfile");
- foreach (keys %options) {
- if (m/^-/) {
- # Options passed untouched
- push @exec, $_;
- } else {
- # Non-options are mapped to long options
- push @exec, "--$_";
- }
- push @exec, $options{$_} if defined($options{$_});
- }
-
- # Fork and call the parser
- my $pid = open(my $parser_fh, '-|');
- syserr(_g('cannot fork for %s'), $parser) unless defined $pid;
- if (not $pid) {
- exec(@exec) or syserr(_g('cannot exec format parser: %s'), $parser);
- }
-
- # Get the output into several Dpkg::Control objects
- my (@res, $fields);
- while (1) {
- $fields = Dpkg::Control::Changelog->new();
- last unless $fields->parse($parser_fh, _g('output of changelog parser'));
- push @res, $fields;
- }
- close($parser_fh) or subprocerr(_g('changelog parser %s'), $parser);
- if (wantarray) {
- return @res;
- } else {
- return $res[0] if (@res);
- return;
- }
-}
-
-=back
-
-=cut
-
-1;
« no previous file with comments | « third_party/dpkg-dev/scripts/Dpkg/Changelog/Entry/Debian.pm ('k') | third_party/dpkg-dev/scripts/Dpkg/Checksums.pm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698