Scroll to navigation

EMGRIP(1) User Contributed Perl Documentation EMGRIP(1)

NAME

Emgrip X konvertiert ein X.debX auf die Schnelle zu Emdebian-Grip

UeBERSICHT

 DEB_BUILD_OPTIONS='usegrip' emgrip [-v|--verbose] [-q|--quiet] [-o|--outdir VERZEICHNIS] DATEINAME
wobei DATEINAME ein X.dscX, ein X.changesX oder ein X.debX ist
 emgrip -?|-h|--help|--version

Beschreibung

Konvertiert ein X.debX-Paket durch Entpacken, kuerzen bestimmter Dateiklassen (durch DEB_BUILD_OPTIONS festgelegt) und erneutes Verpacken mit einer gekuerzten Beschreibung und einem Xem1X-Versionssuffix nach Emdebian-Grip.
Wenn ein oeffentliches Emdebian-Grip-Depot erstellt wird, ist es dringend empfohlen X.changesX oder X.dscX-Dateien anzugeben, um das Generieren von Emdebian-TDebs aus dem Quellpaket zu erlauben, ebenso wie das Quellpaket selbst in das Depot einzuschiessen.
In .dsc mode, "emgrip" only processes the source package, as of version 3.0.0
Falls eine Datei mit dem gleichen Namen im Ausgabeverzeichnis existiert, wird sie ueberschrieben.

Copyright und Lizenz

 Copyright (C) 1997-2000  Roman Hodek <roman@hodek.net>
 Copyright (C) 2000-2002  Colin Watson <cjwatson@debian.org>
 Copyright (C) 2002-2004  David Schleef <ds@schleef.org>
 Copyright (C) 2004  Nikita Youshchenko <yoush@cs.msu.su>
 Copyright (C) 2004  Raphael Bossek <bossekr@debian.org>
 Copyright (C) 2007-2010  Neil Williams <codehelp@debian.org>
 Copyright (C) 2005 Joey Hess <joeyh@debian.org>
 Dieses Paket ist freie Software; Sie koennen es unter den Bedingungen der
 XGNU General Public LicenseX, wie sie von der XFree Software FoundationX
 entweder in Version 3 der Lizenz oder (optional) in einer spaeteren Version
 veroeffentlicht wurde, weiterverteilen und/oder veraendern.
 Dieses Programm wird inder Hoffnung verteilt, dass es nuetzlich sein wird,
 aber OHNE JEGLICHE GEWAeHRLEISTUNG, auch ohne die inbegriffene
 Gewaehrleistung von MARKTGAeNGIGKEIT und EIGNUNG FUeR EINEN SPEZIELLEN ZWECK.
 Lesen Sie die XGNU General Public LicenseX, um weitere Einzelheiten zu
 erhalten.
 Sie sollten mit diesem Programm eine Kopie der XGNU General Public License
 erhalten haben. Falls nicht, lesen Sie <http://www.gnu.org/licenses/>.

Emdebian-Grip

Die Idee basiert hier auf Dpkg-Cross:
 1. X.debX oder X.changesX als Befehlszeilenoption erhalten
 2. DEB_BUILD_OPTIONS auswerten
 3. das X.debX entpacken, da Dpkg-cross
 4. Dateien per DEB_BUILD_OPTIONS entfernt
 5. das X.debX mit einem Emdebian-Versionssuffix neu packen.
 6. neue X.debX erstellen und X.changesX ueberarbeiten, so dass die
     Originalquelle beibehalten werden kann.
 7. Die gegrippten Pakete in einen lokalen Spiegel einfuegen, um die Groesse
     der XPackages.gzX und des Spiegels selbst zu verkleinern.
So wenige Abhaengigkeiten wie moeglich X dieses Skript sollte ein neues Paket bekommen und eine neue Zusammenstellung von Lintian-Pruefungen haben, um Perl etc. zu erlauben.
KEINE FUNKTIONALEN AeNDERUNGEN IM FERTIGEN .DEB!
Conversion of Debian TDebs to Emdebian TDebs 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.
Bei individuellen Paketen, die Uebersetzungsdateien enthalten werden die Uebersetzungsdateien entfernt und die Debian-TDebs uebersprungen.
Zukuenftige Versionen werden ausserdem XDpkg-ClassesX verstehen muessen, bis diese jedoch implementiert sind, wendet diese Funktion rohe Gewalt an.
Setzen Sie die Erstellungsoptionen, indem Sie eine Datei in /etc/dpkg/origins/ platzieren, die die Erstellungsoptionen in einem Feld enthaelt, das "Grip-Build-Option" genannt wird und rufen Sie "Emgrip" mit der Option "--vendor" oder der Umgebungsvariable "DEB_VENDOR" auf.
XDpkg-vendorX-Felder, die von Emgrip mit Standardwerten benutzt werden:
 Vendor: emdebian-grip
 Vendor-Name: Emdebian Grip
 Grip-Build-Option: usegrip
 Short-Desc-Suffix: gripped
Die "Short-Desc-Suffix" wird in Klammern gesetzt und an die Kurzbeschreibung anghaengt [Vorgabe ist XgrippedX]

DEB_BUILD_OPTIONS

Falls keine dieser Optionen gesetzt sind, tut Emgrip nichts.
 nodocs
Entfernen Sie allen Inhalt in /usr/share/doc/*/ ausser der Copyright-Datei und komprimieren Sie die Copyright-Datei selbst. Entfernen Sie Handbuch- und Infoseiten (uebersetzt oder nicht). Entfernen Sie ausserdem Xdoc-baseX-Dateien die die Dokumentation beschreiben, die nicht laenger existiert.
 nohelp
Entfernen Sie sogar Hilfedateien aus allen Paketen einschliesslich der X-docX-Pakete. Dies schliesst das Entfernen von /usr/share/gtk-doc/html und /usr/share/gnome/help/\$package ein. Trotz des Entfernens der Hilfedateien werden Abhaengigkeiten fuer Dateihilfswerkzeuge wie Scrollkeeper bestehen bleiben, zumindest fuer Lenny.
 noessential
Entfernen Sie die Kennzeichnung XEssential: yesX aus XDEBIAN/controlX X dies ist ein Entfernen mit roher Gewalt, es werden keine zusaetzlichen Abhaengigkeiten generiert (keine Patches), so dass hier Vorsicht geboten ist.
 nolintian
Entfernen Sie alle Dateien aus /usr/share/lintian/overrides und /usr/share/linda/overrides X spart bis zu 1 Mb.
 usegrip
Kombinationsschalter, der alle DEB_BUILD_OPTIONS fuer Emdebian-Grip setzt X XnoessentialX, XnohelpX, XnodocsX, XnolintianX
 nosymbols
Wird derzeit getestet X die Idee besteht darin, XDEBIAN/symbolsX-Dateien wegzulassen, aber dies koennte unvorhersehbare Effekte bei der Paketerstellung auf einem System haben, dem diese Symbole fehlen. Der durch das Weglassen dieser Dateien eingesparte Platz koennte die Kosten nicht Wert sein, da XusegripX noch nicht XnosymbolsX aktiviert. Dies koennte fuer Crush geeignet sein, fuer Grip moeglicherweise nicht.
 noperl
Jede Datei entfernen, die als Perl-Skripttext von XfileX gefunden wurde X von Crush benutzt.
 usecrush
Kombinationsschalter, der XnosymbolsX und XnoperlX zu Usegrip hinzufuegt.
 noscripts
Drop all maintainer scripts from all packages irrespective of the type of script. Includes removing debconf templates and config scripts. md5sums files and triggers are also removed. Scripts are moved to a scripts/ subdirectory of the output directory used by "emgrip".
 usebaked
Combination flag that adds noscripts and nosymbols to usegrip. Add "noperl" to use Baked for Crush.

Feldentfernung

Functional control fields are retained but the question arises:
 Who defines functional?
Gut, fuer die derzeitigen Zwecke von Emdebian-Grip schliesst XfunktionalX nur die folgenden Steuerungsfelder ein:
 Package
 Source
 Version
 Architecture
 Maintainer
 Installed-Size
 Depends
 Pre-Depends
 Conflicts
 Replaces
 Section
 Priority
 Description
 Task
 XS-Python-Version
XRecommendsX wird explizit verworfen, genauso wie XSuggestsX X es wird erwartet, dass Emdebian-Grip XInstall-RecommendsX in Apt sowieso ausschaltet, so dass gegrippte Pakete mit Debian oder lokal erstellten Paketen gemischt werden koennen.
Note also that 'Essential' is not preserved.
Homepage, VCS* und alle XX-X-Steuerungsfelder werden weggelassen.
Das reine Ergebnis ist eine (potentiell) wesentlich sauberere Dpkg-Datenbank.
Die Beschreibung wird auf vier Zeilen gekuerzt (oder drei, falls die vierte Zeile leer ist).

Automatisierung

Relativ einfach, aber ein paar Pruefungen werden fuer den Fall benoetigt, dass Ihre Liste moeglicher Pakete Pakete enthaelt, die bereits von Dpkg-Cross verarbeitet werden.
 #!/bin/sh
 set -e
 DIR=/tmp/myrepo/
 for deb in `ls /var/cache/apt/archives/*.deb`; do
    cross=`echo $deb | grep "\-.*-cross" || true`
    if [ ! -z "$cross" ]; then
        echo "Dpkg-cross-Paket wird uebersprungen: $deb"
        continue
    fi
    DEB_BUILD_OPTIONS="nodocs nohelp usegrip" ./emgrip -o $DIR $deb
 done
Bei Unterstuetzung von "dpkg-vendor" koennen die DEB_BUILD_OPTIONS durch Setzen des Anbieters erstzt werden.
Ein aehnliches Skript sollte in der Lage sein, mit erhaltenen X.changesX-Dateien zurecht zu kommen, um die Quellpakete aufzubewahren.
Obwohl intern Dcut benutzt wird, ist Emgrip nicht eingerichtet, um X.changesX-Dateien direkt von http://incoming.debian.org zu erhalten, es ist ein Adapterskript noetig.
Es wird wahrscheinlich ein zusaetzlicher Adapter benoetigt, um einem Emdebian-Grip-Depot zu erlauben, mit existierenden Debian-Spiegeln XgleichzuziehenX, z.B. falls das erste Hochladen zum Grip-Depot ein rein binaeres Hochladen ohne ein referenziertes X.orig.tar.gzX ist.
Emgrip stellt sicher, dass das X.tar.gzX in das Ausgabeverzeichnis kopiert wird und Reprepro die relevanten Dateien finden kann, falls die Option X--ignore=missingfileX uebergeben wird. Leider ist diese Funktionalitaet nicht im XprocessincomingX-Modus von Reprepro erhalten geblieben.
To ease the process of gripping an existing mirror, the emdebian-grip-server package depends on 'reprepro' to create a filtered Debian mirror that can be kept up to date, generates meta-data for Emdebian Grip, builds gripped packages in an 'incoming/' directory and includes the packages into the final Emdebian Grip repository.
Sobald ein Paket XgegripptX wurde, koennte das Binaerpaket vom gefilterten Spiegel entfernt werden X die Quellpakete (besonders die X.orig.tar.gzX) werden wahrscheinlich am Besten auf dem gefilterten Spiegel aufbewahrt.
2011-06-19 perl v5.12.3