Noticias semanales de Debian - Página de correo

Fecha: Dom, 10 de enero de 1999 13:31:09 -0500
De: Ben Collins <bmc@visi.net>
A: debian-devel@lists.debian.org
Cc: debian-dpkg@lists.debian.org
Asunto: Source-Depends implementation
X-Mailer: Mutt 0.95i
X-Mailing-List: <debian-devel@lists.debian.org> archive/latest/24697

Este es una pequeña adaptación en dpkg-source y controllib.pl para permitir
un campo Source-Depends -dependencias fuente- a la sección general del
archivo control. La gente la ha pedido, así que aquí está por si alguien
quiere escribir la política para usarla.

IMO -en mi opinión-, nada de las listas base debería estar en el campo
Source-Depends -dependencias fuente-. Sólo los -devs -de desarrollo- no
estándar y los paquetes binarios especiales (por ejemplo, sgml, tetex,
nasm). No hay versionado de Source-Depends porque consideré que no sería
necesario. Puede sentir que esto no debería ser así.

Todo lo que hace está incluido en el campo Source-Depends -dependencias
fuente- en el archivo .dsc. Esto puede ser usado con posterioridad por
dbuild/buildd para verificar que todos los paquetes necesarios para la
compilación están instalados. También hice que «dpkg-source -x» comprobara
la lista para asegurarse de que todo está instalado. En caso contrario,
sólo da un aviso.

El modo que usé para comprobar si un paquete estaba instalado es «dpkg -l
$buildpackage». Probablemente haya una manera mejor, así que siéntase libre
para arreglar esto. Tampoco comprobé los errores en el campo de contenido
(no indicación de «,» y demás)

El único cambio en controllib.pl fue que se necesitaba añadir el campo
Source-Depends -dependencias fuente- a la lista de campos que necesitaban
una segunda letra mayúscula.

Lo dejaré así para que la gente compruebe si se ajusta a nuestras
necesidades y para que Ian decida si lo incluye o no dentro de las fuentes
de dpkg.

--
-----    -- - -------- --------- ----  -------  -----  - - ---   --------
Ben Collins <b.m.collins@larc.nasa.gov>                  Debian GNU/Linux
UnixGroup Admin - Jordan Systems Inc.                 bcollins@debian.org
------ -- ----- - - -------   ------- -- The Choice of the GNU Generation

--- 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 <bcollins@debian.org>  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 @@

 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 && $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 {
                 &unknown("package's section of control info file");
@@ -155,7 +156,7 @@
             if (m/^Source$/) {
                 &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]./ ||
         &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 "") {
+		&warn("Source-Depends: $buildpackage is not installed");
+	    }
+	}
+    }
     $version= $fi{'S Version'};
     $version =~ m/[^-+:.0-9a-zA-Z]/ &&
         &error("version number contains illegal character \`$&'");

Para recibir este boletín semanalmente en su buzón, suscríbase a la lista de correo debian-news.

Puede conseguir ejemplares anteriores de este boletín.

Esta edición de las Noticias Semanales de Debian fue realizada por Joey Hess.