[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[rfr] webwml://News/weekly/1999/2/sourcedeps.wml



-- 
#use wml::debian::weeklynews::header PAGENAME="Courriel"
#use wml::debian::translation-check translation="1.3" maintainer="Nicolas Bertolissio"

<pre>
Date : Dim. 10 jan. 1999 13 h 31 ' 09 " -0500 
De : Ben Collins &lt;bmc@visi.net&gt; 
À : debian-devel@lists.debian.org 
Cc : debian-dpkg@lists.debian.org 
Sujet : Implantation des dépendances de source (Source-Depends)
X-Mailer: Mutt 0.95i 
X-Mailing-List: &lt;debian-devel@lists.debian.org&gt; archive/latest/24697 

Voici un petit correctif à dpkg-source et controllib.pl pour ajouter un
champ Source-Depends à la section générale du fichier control. Des gens
l'ont demandé, alors le voici, si quelqu'un veut bien écrire une charte
d'utilisation.

À mon humble avis, il ne devrait se trouver dans le champ Source-Depends
aucun des paquets de base, seul les paquets de développement non standards
et des paquets binaires particuliers (c'est-à-dire sgml, tetex, nasm). Il
n'y a pas non plus de gestion des version des dépendances de source car je
ne pense pas que se soit nécessaire. Vous pouvez penser le contraire.

Tout ce qu'il fait est d'inclure le champ Source-Depends dans le fichier
.dsc. Celui-ci peut ensuite être utilisé par apt ou dbuild et buildd pour
vérifier que tous les paquets nécessaires à la construction sont
installés. J'ai aussi fait vérifier la liste à « dpkg-source -x » pour
s'assurer que tout est installé, mais il ne fournit que des avertissement.

Le truc que j'utilise pour vérifier si un paquet est installé est « dpkg
-l $buildpackage ». Il y a sans doute un meilleur moyen, aussi n'hésitez
pas à corriger cela. Je n'ai pas non plus fait de vérification sur le
contenu du champ (manque de « , » et autres).

La seule modification à controllib.pl est l'ajout du champ Source-Depends
à la liste des champs qui ont besoin d'une deuxième lettre capitale.

Je vous laisse voir s'il correspond ou non à vos besoins et à Ian s'il
veut ou pas le faire entrer dans le source de dpkg.

--
-----    -- - -------- --------- ----  -------  -----  - - ---   --------
Ben Collins &lt;b.m.collins@larc.nasa.gov&gt;            Debian GNU/Linux
UnixGroup Admin - Jordan Systems Inc.                 bcollins@debian.org
------ -- ----- - - -------   ------- ----- Le choix de la génération GNU

--- dpkg-1.4.1/debian/changelog
+++ dpkg-1.4.1.1/debian/changelog
@@ -1,3 +1,9 @@
+dpkg (1.4.1.1) unstable; urgency=low
+
+  * Modified dpkg-source to enable using Source-Depends
+
+ -- Ben Collins &lt;bcollins@debian.org&gt;  Sun, 10 Jan 1999 11:36:15 -0500
+
 dpkg (1.4.1) unstable; urgency=low

   * Maintainer release by IWJ.
--- dpkg-1.4.1/scripts/controllib.pl
+++ dpkg-1.4.1.1/scripts/controllib.pl
@@ -1,7 +1,8 @@

 $parsechangelog= 'dpkg-parsechangelog';

-grep($capit{lc $_}=$_, qw(Pre-Depends Standards-Version Installed-Size));
+grep($capit{lc $_}=$_, qw(Pre-Depends Standards-Version Installed-Size
+     Source-Depends));

 $substvar{'Format'}= 1.5;
 $substvar{'Newline'}= "\n";
--- dpkg-1.4.1/scripts/dpkg-source.pl
+++ dpkg-1.4.1.1/scripts/dpkg-source.pl
@@ -1,7 +1,7 @@
 #! /usr/bin/perl

 my $dpkglibdir = ".";
-my $version = "1.3.0"; # This line modified by Makefile
+my $version = "1.3.1"; # This line modified by Makefile

 my @filesinarchive;
 my %dirincluded;
@@ -51,7 +51,8 @@

 $i = 100;
 grep ($fieldimps {$_} = $i--,
-      qw (Source Version Binary Maintainer Architecture Standards-Version));
+      qw (Source Version Binary Maintainer Architecture Standards-Version
+	  Source-Depends));

 while (@ARGV &amp;&amp; $ARGV[0] =~ m/^-/) {
     $_=shift(@ARGV);
@@ -146,7 +147,7 @@
                 $f{$_}= $v;
             } elsif (m/^(Package|Essential|Pre-Depends|Depends|Provides)$/ ||
                      m/^(Recommends|Suggests|Optional|Conflicts|Replaces)$/ ||
-                     m/^(Description|Section|Priority)$/ ||
+                     m/^(Description|Section|Priority|Source-Depends)$/ ||
                      m/^X[CS]+-/i) {
             } else {
                 &amp;unknown("package's section of control info file");
@@ -155,7 +156,7 @@
 #print STDERR "L key &gt;$_&lt; value &gt;$v&lt;\n";
             if (m/^Source$/) {
                 &amp;setsourcepackage;
-            } elsif (m/^Version$/) {
+            } elsif (m/^Version$|^Source-Depends$/) {
                 $f{$_}= $v;
             } elsif (s/^X[BS]*C[BS]*-//i) {
                 $f{$_}= $v;
@@ -476,6 +477,15 @@
     $sourcepackage =~ m/^[0-9a-z]./ ||
         &amp;error("source package name is too short or starts with non-alphanum");

+    $sourcedepends = $fi{'S Source-Depends'};
+    if ($sourcedepends ne "") {
+	for $buildpackage (split(',', $sourcedepends)) {
+	    $temp = `dpkg -l $buildpackage`;
+	    if ($temp eq "") {
+		&amp;warn("Source-Depends: $buildpackage is not installed");
+	    }
+	}
+    }
     $version= $fi{'S Version'};
     $version =~ m/[^-+:.0-9a-zA-Z]/ &amp;&amp;
         &amp;error("version number contains illegal character \`$&amp;'");
</pre>

#use wml::debian::weeklynews::footer

Attachment: signature.asc
Description: Digital signature


Reply to: