.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "EMGRIP 1" .TH EMGRIP 1 "2013-05-17" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Emgrip – konvertiert ein ».deb« auf die Schnelle zu Emdebian\-Grip .SH "ÜBERSICHT" .IX Header "ÜBERSICHT" .Vb 2 \& DEB_BUILD_OPTIONS=\*(Aqusegrip\*(Aq emgrip [\-v|\-\-verbose] [\-q|\-\-quiet] \& [\-\-vendor VENDOR] [\-o|\-\-outdir DIRECTORY] FILENAME .Ve .PP wobei \s-1DATEINAME\s0 ein ».dsc«, ein ».changes« oder ein ».deb« ist .PP .Vb 1 \& emgrip \-?|\-h|\-\-help|\-\-version .Ve .SH "Beschreibung" .IX Header "Beschreibung" Converts a .deb package to Emdebian Grip by unpacking, pruning particular classes of files (determined by \s-1DEB_BUILD_OPTIONS\s0 or the dpkg vendor support) and repacking with a shortened description and the em1 version suffix. .PP For the Debian buildd, the unstable-grip vendor omits generation of Emdebian TDebs and changes the suite name to use the \-grip suffix. .PP Wenn ein öffentliches Emdebian-Grip-Depot erstellt wird, ist es dringend empfohlen ».changes« oder ».dsc«\-Dateien anzugeben, um das Generieren von Emdebian-TDebs aus dem Quellpaket zu erlauben, ebenso wie das Quellpaket selbst in das Depot einzuschießen. .PP Im .dsc\-Modus verarbeitet \f(CW\*(C`emgrip\*(C'\fR ab Version 3.0.0 nur das Quellpaket. .PP Falls eine Datei mit dem gleichen Namen im Ausgabeverzeichnis existiert, wird sie überschrieben. .SH "Copyright und Lizenz" .IX Header "Copyright und Lizenz" .Vb 7 \& Copyright (C) 1997\-2000 Roman Hodek \& Copyright (C) 2000\-2002 Colin Watson \& Copyright (C) 2002\-2004 David Schleef \& Copyright (C) 2004 Nikita Youshchenko \& Copyright (C) 2004 Raphael Bossek \& Copyright (C) 2007\-2011 Neil Williams \& Copyright (C) 2005 Joey Hess \& \& Dieses Paket ist freie Software; Sie können es unter den Bedingungen der \& »GNU General Public License«, wie sie von der »Free Software Foundation« \& entweder in Version 3 der Lizenz oder (optional) in einer späteren Version \& veröffentlicht wurde, weiterverteilen und/oder verändern. \& Dieses Programm wird inder Hoffnung verteilt, dass es nützlich sein wird, \& aber OHNE JEGLICHE GEWÄHRLEISTUNG, auch ohne die inbegriffene \& Gewährleistung von MARKTGÄNGIGKEIT und EIGNUNG FÜR EINEN SPEZIELLEN ZWECK. \& Lesen Sie die »GNU General Public License«, um weitere Einzelheiten zu \& erhalten. \& Sie sollten mit diesem Programm eine Kopie der »GNU General Public License \& erhalten haben. Falls nicht, lesen Sie . .Ve .SH "Emdebian-Grip" .IX Header "Emdebian-Grip" Die Idee basiert hier auf Dpkg-Cross: .PP .Vb 9 \& 1. ».deb« oder ».changes« als Befehlszeilenoption erhalten \& 2. DEB_BUILD_OPTIONS auswerten \& 3. das ».deb« entpacken, da Dpkg\-cross \& 4. Dateien per DEB_BUILD_OPTIONS entfernt \& 5. das ».deb« mit einem Emdebian\-Versionssuffix neu packen. \& 6. neue ».deb« erstellen und ».changes« überarbeiten, so dass die \& Originalquelle beibehalten werden kann. \& 7. Die gegrippten Pakete in einen lokalen Spiegel einfügen, um die Größe \& der »Packages.gz« und des Spiegels selbst zu verkleinern. .Ve .PP So wenige Abhängigkeiten wie möglich – dieses Skript sollte ein neues Paket bekommen und eine neue Zusammenstellung von Lintian\-Prüfungen haben, um Perl etc. zu erlauben. .PP \&\s-1KEINE\s0 \s-1FUNKTIONALEN\s0 ÄNDERUNGEN \s-1IM\s0 \s-1FERTIGEN\s0 .DEB! .PP Conversion of Debian translations to Emdebian TDebs (where supported by the build options) needs to be done inside the source package so a .changes file is needed for this step. If the .changes file references a Debian TDeb, emgrip will run 'em_installtdeb \-\-no\-sign' inside the source package. .PP Bei individuellen Paketen, die Übersetzungsdateien enthalten werden die Übersetzungsdateien entfernt und die Debian-TDebs übersprungen. .PP Future versions may also understand Dpkg Classes but until those are implemented, this uses brute force. .PP Setzen Sie die Erstellungsoptionen, indem Sie eine Datei in \&\fI/etc/dpkg/origins/\fR platzieren, die die Erstellungsoptionen in einem Feld enthält, das \f(CW\*(C`Grip\-Build\-Option\*(C'\fR genannt wird und rufen Sie \f(CW\*(C`Emgrip\*(C'\fR mit der Option \f(CW\*(C`\-\-vendor\*(C'\fR oder der Umgebungsvariable \f(CW\*(C`DEB_VENDOR\*(C'\fR auf. .PP »Dpkg\-vendor«\-Felder, die von Emgrip mit Standardwerten benutzt werden: .PP .Vb 4 \& Vendor: emdebian\-grip \& Vendor\-Name: Emdebian Grip \& Grip\-Build\-Option: usegrip \& Short\-Desc\-Suffix: gripped .Ve .PP Die \f(CW\*(C`Short\-Desc\-Suffix\*(C'\fR wird in Klammern gesetzt und an die Kurzbeschreibung anghängt [Vorgabe ist »gripped«] .SH "DEB_BUILD_OPTIONS" .IX Header "DEB_BUILD_OPTIONS" Falls keine dieser Optionen gesetzt sind, tut Emgrip nichts. .PP .Vb 1 \& nodocs .Ve .PP Entfernen Sie allen Inhalt in /usr/share/doc/*/ außer der Copyright-Datei und komprimieren Sie die Copyright-Datei selbst. Entfernen Sie Handbuch\- und Infoseiten (übersetzt oder nicht). Entfernen Sie außerdem »doc\-base«\-Dateien die die Dokumentation beschreiben, die nicht länger existiert. .PP .Vb 1 \& nohelp .Ve .PP Entfernen Sie sogar Hilfedateien aus allen Paketen einschließlich der »\-doc«\-Pakete. Dies schließt das Entfernen von /usr/share/gtk\-doc/html und /usr/share/gnome/help/\e$package ein. Trotz des Entfernens der Hilfedateien werden Abhängigkeiten für Dateihilfswerkzeuge wie Scrollkeeper bestehen bleiben, zumindest für Lenny. .PP .Vb 1 \& noessential .Ve .PP Entfernen Sie die Kennzeichnung »Essential: yes« aus »DEBIAN/control« – dies ist ein Entfernen mit roher Gewalt, es werden keine zusätzlichen Abhängigkeiten generiert (keine Patches), so dass hier Vorsicht geboten ist. .PP .Vb 1 \& nolintian .Ve .PP Entfernen Sie alle Dateien aus /usr/share/lintian/overrides und /usr/share/linda/overrides – spart bis zu 1 Mb. .PP .Vb 1 \& usegrip .Ve .PP Kombinationsschalter, der alle \s-1DEB_BUILD_OPTIONS\s0 für Emdebian-Grip setzt – »noessential«, »nohelp«, »nodocs«, »nolintian« .PP .Vb 1 \& debiangrip .Ve .PP Debian-only flag which omits processing of TDebs, even for .changes files then changes the distribution to match the Emdebian suites in Debian. Other processing remains the same as the usegrip option. .PP .Vb 1 \& nosymbols .Ve .PP Wird derzeit getestet – die Idee besteht darin, »DEBIAN/symbols«\-Dateien wegzulassen, aber dies könnte unvorhersehbare Effekte bei der Paketerstellung auf einem System haben, dem diese Symbole fehlen. Der durch das Weglassen dieser Dateien eingesparte Platz könnte die Kosten nicht Wert sein, da »usegrip« noch nicht »nosymbols« aktiviert. Dies könnte für Crush geeignet sein, für Grip möglicherweise nicht. .PP .Vb 1 \& noperl .Ve .PP Jede Datei entfernen, die als Perl-Skripttext von »file« gefunden wurde – von Crush benutzt. .PP .Vb 1 \& usecrush .Ve .PP Kombinationsschalter, der »nosymbols« und »noperl« zu Usegrip hinzufügt. .PP .Vb 1 \& noscripts .Ve .PP lässt alle Paketbetreuerskripte unabhängig von Skripttyp aus allen Paketen weg. Dies schließt das Entfernen von Debconf-Schablonen und Konfigurationsskripten ein. Außerdem werden Md5sums\-Dateien und Trigger entfernt. Skripte werden in das Unterverzeichnis \fIscripts/\fR des von \&\f(CW\*(C`emgrip\*(C'\fR benutzten Ausgabeverzeichnisses verschoben. .PP .Vb 1 \& usebaked .Ve .PP Kombinationsschalter, der »noscripts« und »nosymbols« zu Usegrip hinzufügt. Fügen Sie \f(CW\*(C`noperl\*(C'\fR hinzu, um Baked für Crush zu verwenden. .SH "Feldentfernung" .IX Header "Feldentfernung" Funktionale Steuerungsfelder werden beibehalten, aber es stellt sich die Frage: .PP .Vb 1 \& Wer definiert, was funktional ist? .Ve .PP Gut, für die derzeitigen Zwecke von Emdebian-Grip schließt »funktional« nur die folgenden Steuerungsfelder ein: .PP .Vb 10 \& Package \& Source \& Version \& Architecture \& Maintainer \& Installed\-Size \& Depends \& Pre\-Depends \& Multi\-Arch \& Conflicts \& Replaces \& Section \& Priority \& Description \& Task \& XS\-Python\-Version .Ve .PP »Recommends« wird explizit verworfen, genauso wie »Suggests« – es wird erwartet, dass Emdebian-Grip »Install\-Recommends« in Apt sowieso ausschaltet, so dass gegrippte Pakete mit Debian oder lokal erstellten Paketen gemischt werden können. .PP Beachten Sie außerdem, dass »Essential« nicht aufbewahrt wird. .PP Homepage, VCS* und alle »X\-«\-Steuerungsfelder werden weggelassen. .PP Das reine Ergebnis ist eine (potentiell) wesentlich sauberere Dpkg-Datenbank. .PP Die Beschreibung wird auf vier Zeilen gekürzt (oder drei, falls die vierte Zeile leer ist). .SH "Automatisierung" .IX Header "Automatisierung" Relativ einfach, aber ein paar Prüfungen werden für den Fall benötigt, dass Ihre Liste möglicher Pakete Pakete enthält, die bereits von Dpkg-Cross verarbeitet werden. .PP .Vb 2 \& #!/bin/sh \& set \-e \& \& DIR=/tmp/myrepo/ \& for deb in \`ls /var/cache/apt/archives/*.deb\`; do \& cross=\`echo $deb | grep "\e\-.*\-cross" || true\` \& if [ ! \-z "$cross" ]; then \& echo "Dpkg\-cross\-Paket wird übersprungen: $deb" \& continue \& fi \& DEB_BUILD_OPTIONS="nodocs nohelp usegrip" ./emgrip \-o $DIR $deb \& done .Ve .PP Bei Unterstützung von \f(CW\*(C`dpkg\-vendor\*(C'\fR können die \s-1DEB_BUILD_OPTIONS\s0 durch Setzen des Anbieters erstzt werden. .PP Ein ähnliches Skript sollte in der Lage sein, mit erhaltenen ».changes«\-Dateien zurecht zu kommen, um die Quellpakete aufzubewahren. .PP Obwohl intern Dcut benutzt wird, ist Emgrip nicht eingerichtet, um ».changes«\-Dateien direkt von http://incoming.debian.org zu erhalten, es ist ein Adapterskript nötig. .PP Es wird wahrscheinlich ein zusätzlicher Adapter benötigt, um einem Emdebian-Grip-Depot zu erlauben, mit existierenden Debian-Spiegeln »gleichzuziehen«, z.B. falls das erste Hochladen zum Grip-Depot ein rein binäres Hochladen ohne ein referenziertes ».orig.tar.gz« ist. .PP Emgrip stellt sicher, dass das ».tar.gz« in das Ausgabeverzeichnis kopiert wird und Reprepro die relevanten Dateien finden kann, falls die Option »\-\-ignore=missingfile« übergeben wird. Leider ist diese Funktionalität nicht im »processincoming«\-Modus von Reprepro erhalten geblieben. .PP Um den Prozess des »Grippings« eines existierenden Spiegels zu erleichtern, hängt das Paket »emdebian\-grip\-server« von »reprepro« ab, um einen gefilterten Debian-Spiegel zu erstellen, der aktuell gehalten werden kann, Metadaten für Emdebian-Grip generiert, damit behandelte Pakete in einem »incoming/«\-Verzeichnis erstellt und die Pakete im fertigen Emdebian-Grip-Depot einfügt. .PP Sobald ein Paket »gegrippt« wurde, könnte das Binärpaket vom gefilterten Spiegel entfernt werden – die Quellpakete (besonders die ».orig.tar.gz«) werden wahrscheinlich am Besten auf dem gefilterten Spiegel aufbewahrt.