This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=a77d00af63a2c8084df991c360d84280e52428c5

commit a77d00af63a2c8084df991c360d84280e52428c5
Author: Guillem Jover <[email protected]>
AuthorDate: Sun Dec 28 04:56:52 2025 +0100

    scripts: Parse and validate Maintainer and Uploaders email addresses
    
    Make sure the data that we ingest follows the expected format, and that
    the data that we produce has been sanitized if necessary.
---
 scripts/dpkg-genchanges.pl |  5 +++++
 scripts/dpkg-gencontrol.pl |  5 +++++
 scripts/dpkg-source.pl     | 11 +++++++++++
 3 files changed, 21 insertions(+)

diff --git a/scripts/dpkg-genchanges.pl b/scripts/dpkg-genchanges.pl
index 6c7150a3a..0d8729c9d 100755
--- a/scripts/dpkg-genchanges.pl
+++ b/scripts/dpkg-genchanges.pl
@@ -517,6 +517,11 @@ if ($fields->{'Version'} ne 
$substvars->get('source:Version')) {
 $fields->{'Maintainer'} = $forcemaint if defined($forcemaint);
 $fields->{'Changed-By'} = $forcechangedby if defined($forcechangedby);
 
+if (defined $fields->{'Maintainer'}) {
+    my $maint = field_parse_maintainer($fields);
+    $fields->{'Maintainer'} = $maint->as_string();
+}
+
 for my $f (qw(Version Distribution Maintainer Changes)) {
     error(g_('missing information for critical output field %s'), $f)
         unless defined $fields->{$f};
diff --git a/scripts/dpkg-gencontrol.pl b/scripts/dpkg-gencontrol.pl
index 8cdb35e04..204f9385d 100755
--- a/scripts/dpkg-gencontrol.pl
+++ b/scripts/dpkg-gencontrol.pl
@@ -335,6 +335,11 @@ for my $f (qw(Priority)) {
     $fields->{$f} //= field_get_default_value($f);
 }
 
+if (defined $fields->{'Maintainer'}) {
+    my $maint = field_parse_maintainer($fields);
+    $fields->{'Maintainer'} = $maint->as_string();
+}
+
 my $pkg_type = $pkg->{'Package-Type'} ||
                $pkg->get_custom_field('Package-Type') || 'deb';
 
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index d78f4988a..373708ddd 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -442,6 +442,17 @@ if ($options{opmode} =~ 
/^(build|print-format|(before|after)-build|commit)$/) {
         }
     }
 
+    my $maint;
+    if (defined $fields->{'Maintainer'}) {
+        $maint = field_parse_maintainer($fields);
+        $fields->{'Maintainer'} = $maint->as_string();
+    }
+
+    if (defined $fields->{'Uploaders'}) {
+        my $uploaders = field_parse_uploaders($fields);
+        $fields->{'Uploaders'} = $uploaders->as_string();
+    }
+
     $fields->{'Binary'} = join(', ', @binarypackages);
     # Avoid overly long line by splitting over multiple lines.
     if (length($fields->{'Binary'}) > 980) {

-- 
Dpkg.Org's dpkg

Reply via email to