]> err.no Git - dpkg/commitdiff
Implement support for Homepage field.
authorGuillem Jover <guillem@debian.org>
Sun, 19 Aug 2007 21:10:08 +0000 (00:10 +0300)
committerGuillem Jover <guillem@debian.org>
Sun, 19 Aug 2007 21:10:08 +0000 (00:10 +0300)
ChangeLog
debian/changelog
dpkg-deb/build.c
man/ChangeLog
man/deb-control.5
man/dpkg-query.1
scripts/dpkg-genchanges.pl
scripts/dpkg-gencontrol.pl
scripts/dpkg-scanpackages.pl
scripts/dpkg-source.pl

index 929cf303fd7bef5d95c8805ddb3eb60f98492d33..dee1fdae32b5c7d5d378a44a613d235f67655ecd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2007-08-20  Guillem Jover  <guillem@debian.org>
+
+       * dpkg-deb/build.c (arbitrary_fields): New variable.
+       (known_arbitrary_field): New function.
+       (do_build): Call known_arbitrary_field to not warn on known arbitrary
+       fields.
+       * scripts/dpkg-genchanges.pl: Ignore Homepage field.
+       * scripts/dpkg-gencontrol.pl: Parse Homepage from source package
+       stanza.
+       (@control_fields): Add Homepage.
+       * scripts/dpkg-scanpackages.pl (@fieldpri): Add Homepage.
+       * scripts/dpkg-source.pl: Parse Homepage from source package stanza.
+       (@dsc_fields): Add Homepage.
+
 2007-08-18  Guillem Jover  <guillem@debian.org>
 
        * scripts/dpkg-divert.pl (infol): Check if parameters are defined
index 2a6c25c208f8930134e0dae2a379d262711061e5..89c2833175fd9d03bb6e236ee89b6d6ee3225e52 100644 (file)
@@ -37,6 +37,7 @@ dpkg (1.14.6) UNRELEASED; urgency=low
     Thanks to Ian Jackson.
   * Fix perl warnings:
     - When removing a non diverted file with dpkg-divert. Closes: #438416
+  * Implement support for Homepage field. Closes: #142324
 
   [ Updated scripts translations ]
   * French (Frédéric Bothamy, Christian Perrier).
index 0177a743da1be101fbb598a2ab99f64ca4302a97..be851efedda6e0fd8526d43653779d48836230c9 100644 (file)
@@ -56,6 +56,21 @@ struct _finfo {
   struct _finfo* next;
 };
 
+const char *arbitrary_fields[]= {
+  "Homepage",
+  NULL
+};
+
+static int known_arbitrary_field(const struct arbitraryfield *field) {
+  const char **known;
+
+  for (known= arbitrary_fields; *known; known++)
+    if (strcasecmp(field->name, *known) == 0)
+      return 1;
+
+  return 0;
+}
+
 /* Do a quick check if vstring is a valid versionnumber. Valid in this case
  * means it contains at least one digit. If an error is found increment
  * *errs.
@@ -223,6 +238,9 @@ void do_build(const char *const *argv) {
       warns++;
     }
     for (field= checkedinfo->available.arbs; field; field= field->next) {
+      if (known_arbitrary_field(field))
+        continue;
+
       fprintf(stderr, _("warning, `%s' contains user-defined field `%s'\n"),
               controlfile, field->name);
       warns++;
index 8a3ca54203f1b877a1c24cf7dcf67e7be598d478..46b078e4bd236c6de7603b30bba1b852bbe693af 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-20  Guillem Jover  <guillem@debian.org>
+
+       * deb-control.5: Document Homepage field.
+       * dpkg-query.1: Document Homepage as a recognized field.
+
 2007-08-18  Guillem Jover  <guillem@debian.org>
 
        * po/dpkg-man.pot: Regenerated.
index 3cde45c7f6cb4c0ae54f0a5b46f838c8a35491bb..c01c5b727aa900b37e39236d10ec244a31fe582a 100644 (file)
@@ -85,6 +85,9 @@ etc. Note that the
 option is meant for packages that are architecture independent. Some examples
 of this are shell and Perl scripts, and documentation.
 .TP
+.BR Homepage: " <url>"
+The upstream project home page URL.
+.TP
 .BR Source: " <source name>"
 The name of the source package that this binary package came from, if
 different than the name of the package itself.
index 9f03411ef70ad180f509c072905aaa3106234932..4f5bad7921e2a6c8e83f0b2cdc2661080af14d7c 100644 (file)
@@ -109,6 +109,7 @@ alignment will be used. The following \fIfield\fRs are recognised:
     \fBEnhances\fP
     \fBEssential\fP
     \fBFilename\fP
+    \fBHomepage\fP
     \fBInstalled\-Size\fP
     \fBMD5sum\fP
     \fBMSDOS\-Filename\fP
index 967eede4f8b8e9864f9a8d9c87011f9c1b640a39..ba50119e68ba9e02642a6fe8693aef37a37b135b 100755 (executable)
@@ -208,7 +208,7 @@ for $_ (keys %fi) {
        elsif (m/^Section$|^Priority$/i) { $sourcedefault{$_}= $v; }
        elsif (m/^Maintainer$/i) { $f{$_}= $v; }
        elsif (s/^X[BS]*C[BS]*-//i) { $f{$_}= $v; }
-       elsif (m/|^X[BS]+-|^Standards-Version$/i) { }
+       elsif (m/|^X[BS]+-|^Standards-Version$|^Homepage$/i) { }
        else { &unknown(_g('general section of control info file')); }
     } elsif (s/^C(\d+) //) {
        my $i = $1;
index bdaaa00ff7d90c64c889bfac4852ee921bcb51a5..98fb7c47d7ebf9df198983ae706af80eda8fbeb1 100755 (executable)
@@ -23,7 +23,7 @@ textdomain("dpkg-dev");
 
 my @control_fields = (qw(Package Source Version Architecture Essential Origin
                          Bugs Maintainer Installed-Size), @pkg_dep_fields,
-                      qw(Section Priority Description));
+                      qw(Section Priority Homepage Description));
 
 my $controlfile = 'debian/control';
 my $changelogfile = 'debian/changelog';
@@ -146,7 +146,7 @@ for $_ (keys %fi) {
 
     if (s/^C //) {
 #print STDERR "G key >$_< value >$v<\n";
-       if (m/^(Origin|Bugs|Maintainer)$/) {
+       if (m/^(Origin|Bugs|Maintainer|Homepage)$/) {
            $f{$_} = $v;
        } elsif (m/^Source$/) {
            setsourcepackage($v);
index fd4c1ce2aa585b3d3cb0a3e80729b7a06daef125..e1b35b507eb4cd4ce02d381348a184cb35c1c113 100755 (executable)
@@ -26,7 +26,7 @@ my %kmap= (optional         => 'suggests',
 
 my @fieldpri = (qw(Package Source Version Architecture Essential Origin Bugs
                    Maintainer Installed-Size), @pkg_dep_fields, qw(Filename
-                   Size MD5sum Section Priority Description));
+                   Size MD5sum Section Priority Homepage Description));
 
 # This maps the fields into the proper case
 my %field_case;
index 9706f23c449329106f1fbb356dcbebcf430d75c5..e2229fa78fe01fabb113a449bc1683fc8de19980 100755 (executable)
@@ -76,7 +76,8 @@ our @src_dep_fields;
 textdomain("dpkg-dev");
 
 my @dsc_fields = (qw(Format Source Binary Architecture Version Origin
-                     Maintainer Uploaders Standards-Version), @src_dep_fields);
+                     Maintainer Uploaders Homepage Standards-Version),
+                  @src_dep_fields);
 
 
 # Make sure patch doesn't get any funny ideas
@@ -238,8 +239,9 @@ if ($opmode eq 'build') {
         if (s/^C //) {
            if (m/^Source$/i) {
                setsourcepackage($v);
+           } elsif (m/^(Standards-Version|Origin|Maintainer|Homepage)$/i) {
+               $f{$_}= $v;
            }
-            elsif (m/^(Standards-Version|Origin|Maintainer)$/i) { $f{$_}= $v; }
            elsif (m/^Uploaders$/i) { ($f{$_}= $v) =~ s/[\r\n]//g; }
            elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
                my $dep = parsedep(substvars($v),1);