Преглед изворни кода

Implement support for Tag field

Guillem Jover пре 19 година
родитељ
комит
d8ce44bf7c

+ 9 - 0
ChangeLog

@@ -1,3 +1,12 @@
+2007-08-31  Guillem Jover  <guillem@debian.org>
+
+	* dpkg-deb/build.c (arbitrary_fields): Add Tag.
+	* scripts/dpkg-genchanges.pl: Ignore Tag field.
+	* scripts/dpkg-gencontrol.pl: Parse Tag from binary package stanza.
+	(@control_fields): Add Tag.
+	* scripts/dpkg-scanpackages.pl (@fieldpri): Add Tag.
+	* scripts/dpkg-source.pl: Ignore Tag field from binary package stanza.
+
 2007-08-31  Guillem Jover  <guillem@debian.org>
 
 	* scripts/dpkg-genchanges.pl: Ignore Vcs-Browser, Vcs-Arch, Vcs-Bzr,

+ 0 - 2
TODO

@@ -18,8 +18,6 @@ lenny
    - Add field Package-Type and friends.
    - Generate proper Packages files. (#383916)
 
- * Support Tag field.
-
 1.14.y
 ------
 

+ 1 - 0
debian/changelog

@@ -45,6 +45,7 @@ dpkg (1.14.6) UNRELEASED; urgency=low
   * Implement support for Vcs-Browser, Vcs-Arch, Vcs-Bzr, Vcs-Cvs, Vcs-Darcs,
     Vcs-Git, Vcs-Hg, Vcs-Mtn and Vcs-Svn fields in control file source
     package stanza.
+  * Implement support for Tag field.
 
   [ Updated scripts translations ]
   * French (Frédéric Bothamy, Christian Perrier).

+ 1 - 0
dpkg-deb/build.c

@@ -58,6 +58,7 @@ struct _finfo {
 
 const char *arbitrary_fields[]= {
   "Homepage",
+  "Tag",
   NULL
 };
 

+ 5 - 0
man/ChangeLog

@@ -1,3 +1,8 @@
+2007-08-31  Guillem Jover  <guillem@debian.org>
+
+	* deb-control.5: Document Tag field.
+	* dpkg-query.1: Document Tag as a recognized field.
+
 2007-08-25  Peter Karlsson  <peterk@debian.org>
 
 	* po/sv.po: Updated to 1285t.

+ 6 - 1
man/deb-control.5

@@ -1,6 +1,6 @@
 .\" Author: Raul Miller
 .\" Includes text from the debian Guidelines by Ian Jackson, Ian Murdock
-.TH deb\-control 5 "2007-05-15" "Debian Project" "Debian"
+.TH deb\-control 5 "2007-08-31" "Debian Project" "Debian"
 .SH NAME
 deb\-control \- Debian packages' master control file format
 .
@@ -88,6 +88,10 @@ of this are shell and Perl scripts, and documentation.
 .BR Homepage: " <url>"
 The upstream project home page URL.
 .TP
+.BR Tag: " <tag list>"
+List of tags describing the qualities of the package. The description and
+list of supported tags can be found in the \fBdebtags\fP package.
+.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.
@@ -216,5 +220,6 @@ Description: GNU grep, egrep and fgrep.
 .
 .SH SEE ALSO
 .BR deb (5),
+.BR debtags (1),
 .BR dpkg (1),
 .BR dpkg-deb (1).

+ 1 - 0
man/dpkg-query.1

@@ -127,6 +127,7 @@ alignment will be used. The following \fIfield\fRs are recognised:
     \fBSource\fP
     \fBStatus\fP
     \fBSuggests\fP
+    \fBTag\fP
     \fBVersion\fP
 .fi
 

+ 1 - 0
scripts/dpkg-genchanges.pl

@@ -256,6 +256,7 @@ for $_ (keys %fi) {
 		push(@archvalues,$v) unless !$v || $archadded{$v}++;
 	    } elsif (m/^(Package|Essential|Pre-Depends|Depends|Provides)$/ ||
 		     m/^(Recommends|Suggests|Enhances|Optional|Conflicts|Breaks|Replaces)$/ ||
+		     m/^Tag$/i ||
 		     m/^X[BS]+-/i) {
 	    } else {
 		&unknown(_g("package's section of control info file"));

+ 2 - 2
scripts/dpkg-gencontrol.pl

@@ -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 Homepage Description));
+                      qw(Section Priority Homepage Description Tag));
 
 my $controlfile = 'debian/control';
 my $changelogfile = 'debian/changelog';
@@ -161,7 +161,7 @@ for $_ (keys %fi) {
         else { $_ = "C $_"; &unknown(_g('general section of control info file')); }
     } elsif (s/^C$myindex //) {
 #print STDERR "P key >$_< value >$v<\n";
-        if (m/^(Package|Description|Homepage|Essential|Optional)$/) {
+        if (m/^(Package|Description|Homepage|Tag|Essential|Optional)$/) {
             $f{$_}= $v;
         } elsif (exists($pkg_dep_fields{$_})) {
 	    # Delay the parsing until later

+ 1 - 1
scripts/dpkg-scanpackages.pl

@@ -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 Homepage Description));
+                   Size MD5sum Section Priority Homepage Description Tag));
 
 # This maps the fields into the proper case
 my %field_case;

+ 1 - 1
scripts/dpkg-source.pl

@@ -286,7 +286,7 @@ if ($opmode eq 'build') {
                 $f{$_}= $v;
             } elsif (m/^(Package|Essential|Pre-Depends|Depends|Provides)$/i ||
                      m/^(Recommends|Suggests|Optional|Conflicts|Replaces)$/i ||
-                     m/^(Breaks|Enhances|Description|Section|Priority)$/i ||
+                     m/^(Breaks|Enhances|Description|Tag|Section|Priority)$/i ||
                      m/^X[BC]+-/i) {
             } else {
                 &unknown(_g("package's section of control info file"));