Debian Weekly News - E-Mail-Seite
Datum: Son, 10. Jan 1999 13:31:09 -0500 Von: Ben Collins <bmc@visi.net> An: debian-devel@lists.debian.org Cc: debian-dpkg@lists.debian.org Betreff: Source-Depends-Implementation X-Mailer: Mutt 0.95i X-Mailing-List: <debian-devel@lists.debian.org> archive/latest/24697 Dies ist ein kleiner Hack an dpkg-source und controllib.pl, um ein Source-Depends-Feld im allgemeinen Teil der »control«-Datei zu ermöglichen. Ich bin danach gefragt worden und hier ist es somit, falls jemand die Richtlinien für die Verwendung schreiben möchte. Meiner Meinung nach sollte nichts von der »base«-Liste im Source-Depends-Feld auftauchen. Nur nicht-Standard -devs und spezielle Binärpakete (z.B. sgml, tetex, nasm). Es gibt auch keine Versionierung im Source-Depends-Feld, da ich nicht glaubte, dass dies notwendig sei. Sie mögen es anders empfinden. Die gesamte Funktionalität besteht darin, das Source-Depends-Feld in die .dsc-Datei aufzunehmen. Dies kann später von apt oder dbuild/buildd dazu verwendet werden zu verifizieren, dass alle zum Bau benötigten Pakete installiert sind. Ich lasse auch »dpkg-source -x« die Liste überprüfen, um sicherzustellen, dass alles installiert ist; andernfalls wird nur eine Warnung ausgegeben. Den Hack den ich zum Überprüfen, ob ein Paket installiert ist, verwendet habe, ist »dpkg -l $buildpackage«. Es gibt wahrscheinlich eine bessere Methode, also tun Sie sich keinen Zwang bei der Korrektur an. Auch habe ich keine Fehlerüberprüfung für den Feld-Inhalt (fehlende »,« und so etwas) eingebaut. Die einzige notwendige Änderung in controllib.pl bestand darin, das Source-Depends-Feld zu der Liste der Felder, die ein zweiten Großbuchstaben brauchten, hinzuzufügen. Ich überlasse es Euch Leuten, ob dies Ihre Bedürfnisse erfüllt oder nicht, und Ian, ob dies den Weg in die Quellen von dpkg findet oder nicht. -- ----- -- - -------- --------- ---- ------- ----- - - --- -------- Ben Collins <b.m.collins@larc.nasa.gov> Debian GNU/Linux UnixGroup Admin - Jordan Systems Inc. bcollins@debian.org ------ -- ----- - - ------- ------- -- Die Wahl der 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 \`$&'");
Wenn Sie diesen Newsletter wöchentlich in Ihrer Mailbox haben wollen, abonnieren Sie die Mailingliste debian-news-german.
Hier gibt es ältere Ausgaben dieser Nachrichtenseite.
Diese Ausgabe der wöchentlichen Debian-Nachrichten wurde von Joey Hess erstellt.