Translate/Übersetzung

Wednesday, 8 January 2014

Wie erstelle ich eine pspec.xml

Wie baue ich ein Pisi Paket

Paketbau

Dieses Dokument handelt speziell von der Erstellung einer pspec.xml
In diesem Dokument werden Sie eindeutig sehen wie eine pspec.xml aufgebaut ist und wie sie es schreiben müssen damit alles korrekt funktioniert..
Wenn Sie Pakete bauen möchten und/oder Pisi Linux unterstützen möchten sprechen Sie uns an.

Erstellen einer pspec.xml

Als erstes um eine pspec.xml zu erstellen legen Sie ein Verzeichnis des Paketnamens an in der Sie es erstellen.

Anlegen einer leeren pspec.xml

Um eine leere pspec.xml brauchen Sie nur die untenstehen Kommandos eingeben in dem Verzeichnis das Sie vorher angelegt haben mit dem Paketnamen das Sie erstellen möchten.
cd package-name
vi pspec.xml 
Natürlich können Sie auch PisiYaP oder Pisido benutzen welches Ihnen die meiste Arbeit natürlich abnimmt.
So sieht eine leere pspec.xml aus schauen Sie sich die Struktur ganz genau an
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
    <Name></Name>
    <Homepage>http://</Homepage>
    <Packager>
        <Name></Name>
        <Email></Email>
    </Packager>
    <ExcludeArch></ExcludeArch>
    <License>GPLv2</License>
    <Icon></Icon>
    <IsA></IsA>
    <Summary></Summary>
    <Description></Description>
    <Archive sha1sum="" type="">http://</Archive>
    <BuildDependencies>
        <Dependency></Dependency>
    </BuildDependencies>
    <Patches>
        <Patch level=""></Patch>
    </Patches>
</Source>

<Package>
    <Name></Name>
     <PartOf></PartOf>
     <BuildType></BuildType>
     <BuildFlags>
        <Flag></Flag>
    </BuildFlags>
    <RuntimeDependencies>
        <AnyDependency>
            <Dependency></Dependency>
        </AnyDependency>
        <Dependency versionFrom=""></Dependency>
    </RuntimeDependencies>
     <Conflicts>
        <Package versionTo=""></Package>
        <Package releaseTo=""></Package>
    </Conflicts>
    <Replaces>
        <Package></Package>
        <Package></Package>
    </Replaces>
    <Files>
        <Path fileType="config">/etc</Path>
        <Path fileType="executable">/usr/bin</Path>
        <Path fileType="header">/usr/include</Path>
        <Path fileType="library">/usr/lib</Path>
        <Path fileType="localedata">/usr/share/locale</Path>
        <Path fileType="man">/usr/share/man</Path>
        <Path fileType="doc">/usr/share/doc</Path>
        <Path fileType="data">/usr/share</Path>
    </Files>
    <AdditionalFiles>
        <AdditionalFile owner="root" permission="0644" target=""></AdditionalFile>
    </AdditionalFiles>
    <Provides>
        <COMAR script=""></COMAR>
    </Provides>
</Package>

<History>
    <Update release="" type="">
        <Date>YYYY-MM-DD</Date>
        <Version></Version>
        <Comment>First release.</Comment>
        <Requires>
            <Action>reverseDependencyUpdate</Action>
            <Action package="">reverseDependencyUpdate</Action>
            <Action package="">systemRestart</Action>
            <Action package="">serviceRestart</Action>
        </Requires>
        <Name></Name>
        <Email></Email>
    </Update>
</History>
</PISI>


Hier sehen Sie als Beispiel eine pspec.xml vom Pogo Audio Player.
Wenn Sie Pisi Linux benutzen können Sie es direkt vom >Github installieren:


Mit diesem einfachen Kommando ist es ganz leicht zu installieren:

sudo pisi bi https://github.com/pisilinux/playground/raw/master/groni/pogo/pspec.xml

So können Sie all fertigen Pakete vom Github direkt installieren


Hier die pspec.xml vom Pogo Audio Player von mir:
<?xml version="1.0" ?> 
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd"> 
<PISI> 
    <Source> 
        <Name>pogo</Name> 
        <Homepage>https://launchpad.net/pogo</Homepage> 
        <Packager> 
            <Name>Pisi Linux Community</Name> 
            <Email>admins@pisilinux.org</Email> 
        </Packager> 
        <License>GPLv2</License> 
        <IsA>app:gui</IsA> 
        <Summary>Probably the simplest and fastest audio player for Linux.</Summary> 
        <Description>Pogo's elementary-inspired design uses the screen-space very efficiently. It is especially well-suited for people who organize their music by albums on the harddrive. The main interface components are a directory tree and a playlist that groups albums in an innovative way.Supported file formats include Ogg Vorbis, MP3, FLAC, Musepack, Wavpack, and MPEG-4 AAC. Pogo is a fork of Decibel Audio Player.</Description> 
        <Archive sha1sum="a44435264d4f32ca6540f4482885ca47977fc2bb" type="targz">https://launchpad.net/pogo/trunk/0.8.2/+download/pogo-0.8.2.tar.gz</Archive> 
    </Source> 

    <Package> 
        <Name>pogo</Name> 
        <RuntimeDependencies> 
            <Dependency>python</Dependency> 
            <Dependency>python-gtk</Dependency> 
            <Dependency>gst-python</Dependency> 
            <Dependency>python-mutagen</Dependency> 
            <Dependency>python-imaging</Dependency> 
            <Dependency>notify-python</Dependency> 
            <Dependency>gst-plugins-base</Dependency> 
            <Dependency>gst-plugins-good</Dependency> 
        </RuntimeDependencies> 
        <Files> 
            <Path fileType="executable">/usr/bin</Path> 
            <Path fileType="data">/usr/share</Path> 
            <Path fileType="localedata">/usr/share/locale</Path> 
            <Path fileType="man">/usr/share/man</Path> 
            <Path fileType="doc">/usr/share/doc</Path> 
        </Files> 
    </Package> 

    <History> 
        <Update release="1"> 
            <Date>2013-12-22</Date> 
            <Version>0.8.2</Version> 
            <Comment>First release</Comment> 
            <Name>Stefan Gronewold(groni)</Name> 
            <Email>groni@pisilinux.org</Email> 
        </Update> 
    </History> 
</PISI>

Unterschiedliche pspec.xml Datei Tags

  1. <Source>: Dieser Haupt Tag wird gebraucht um Informationen über das Quell Paket zu haben.
    1. <Name>: Hier wird der Name des Paketes eigetragen der den Richtlinien des Package Naming Guideline entsprechen muss Es sollte übereinstimmen mit dem <Name> part of <Package> tag.
    2. <Homepage>: Hier wird die Webseite des Paketes eingetragen.
    3. <Packager>: Hier wird der Paketersteller eingetragen<Name>, und die email Adersse unter dem <Email> Teil.
    4. <ExcludeArch>: Wenn ein Paket nicht für eine spezifische Architektur kompiliert werden kann muss es in der pspec.xml Datei mit diesem Tag hinzugefügt werden.
    5. <License>: Die Lizenzen werden hier eingetragen Schauen Sie sich die Licensing Guidelines an.Es gibt unterschiedliche Lizenztypen,
    6. <Icon>: Wenn das Paket eine grafische Oberfläche hat wird hier der Name des Icon eingetragen
    7. <IsA>: Dieser Tag wird benutzt um uns anzugeben welche Typen das Paket beinhaltet.Es kann mehr als ein IsA type benutzt werden wenn es notwendig ist.
    8. Sie können die unterschiedlichen IsA Typen, hier sehen.
      Unterschiedliche IsA Typen die in Pisi Linux Paketen benutzt werden:



  • app
  • app:console
  • app:gui
  • app:web
  • library
  • service
  • data
  • kernel
  • driver
  • locale
  • locale:aa
  • locale:af
  • locale:am
  • locale:an
  • locale:ar
  • locale:as
  • locale:ast
  • locale:az
  • locale:be
  • locale:ber
  • locale:bg
  • locale:bn
  • locale:bn_IN
  • locale:bo
  • locale:br
  • locale:bs
  • locale:byn
  • locale:ca
  • locale:ca@valencia
  • locale:crh
  • locale:cs
  • locale:csb
  • locale:cy
  • locale:da
  • locale:de
  • locale:dz
  • locale:el
  • locale:en
  • locale:en_CA
  • locale:en_GB
  • locale:eo
  • locale:es
  • locale:et
  • locale:eu
  • locale:fa
  • locale:fi
  • locale:fil
  • locale:fo
  • locale:fr
  • locale:fur



  1. <Summary>: Eine kurze Beschreibung des Paketes fügen Sie hier ein.
  2. <Description>: Hier fügen sie eine ausführliche Beschreibung rein.
  3. <Archive>: Hier fügen sie den Download Link den Archiv Typen und die SHA-1 summe ein.
    sha1sum: Hier wird die sha1sum eingefügt. Der Prüfwert wird verwendet, um die Integrität einer Nachricht zu sichern. Wenn zwei Nachrichten den gleichen Prüfwert ergeben, soll die Gleichheit der Nachrichten nach normalem Ermessen garantiert sein, unbeschadet auch durch gezielte Manipulationen an den Nachrichten
    type: Hier wird der Archive Typ eingetragen Sie können unterschiedliche Archiv Typen haben. <!– attlist.Archive –> Dies sind die unterschiedlichen Archiv Typen die für Pisi Linux benutzt werden:
targz
  • tarbz2
  • tarlzma
  • tarxz
  • tarZ
  • tar
  • zip
  • gz
  • gzip
  • bz2
  • bzip2
  • lzma
  • xz
  • binary
Der Download Link wird zwischen den <Archive> Tags eingefügt so können die Spiegelserver benutzt werden.

    1. <BuildDependencies>: Dieser Teil wird dringend benötigt um ein Paket zu Bauen(Kompilieren).Die Abhängigkeiten können nicht automatisch gefunden werden.Dass beste ist ein Paket das Sie bauen möchten vorzukompilieren um zu sehen welche Abhängigkeiten braucht das Paket, denken Sie daran alles zu installieren was das Paket braucht sonst schlägt es fehl mit dem bauen.Die sogenannten dev oder Development Pakete brauchen Sie nicht als Bauabhängigkeit.Hier können Sie eine Liste von Paketen sehen die ignoriert werden here. Alle Abhängigkeiten fügen Sie dann in verschiedenen <Dependency> Tags ein. Sie können auch Mindest Versionen und Releases des Pakets angeben. Schauen Sie Hier link für details. Sie finden unterschiedliche dependency types, hier <!– attlist.VersionReleaseToFrom –>.
    2. <Patches>: Hier fügen Sie Patches rein Jeder Patch muss mit einem seperaten <Patch> tag vesehen sein und in der Reihenfolge wie Sie,sie erstellt haben.
    Der Level Parameter wird benötigt um den Patch richtig anzuwendenhe level parameter is needed in order to apply the patch properly. Es gibt eingehende Unterschiede des Patches und der Datei auf die sie angewandt werden soll
  1. <Package>: Der Haupt Tag wir benötigt um Informationen über das Paket zu geben wenn es im System installiert ist.
    1. <Name>: Name des Paketes nach der Package Naming Guideline. Es sollte übereinstimmen mit <Name> part of <Source> tag.
    2. <PartOf> Wenn eine Quelle mehr als ein Paket enthält, kann jedes Paket zu verschiedenen Komponenten gehören Diese Komponenten können Sie zwischen <PartOf> tag.eingeben
    3. <BuildType> Es können mehr als ein Paket aus eine Quelle gebaut werden Wenn es eine besondere Architektur braucht sollte es mit <BuildType>angegeben werden der wet kann „32bit oder 64bit“sein.
    4. <BuildFlags> Hier können Sie unterschiedliche build flags Typen, sehen <!– Flag –> part of pisi-spec.rng file.
      noDebug flag iwird benutzt um das bauen von einem debug paket abzuschalten.
      noDelta flag wird benutzt um das automatische Bauen von Delta Paketen abzuschaltens Es beeinflußt aber nicht den “pisi delta” Befehl.
    5. <BuildDependencies> Es kann vom gleichen Quellpaket mehr als ein Paket gebaut werden Wenn eines der Pakete spezielle Abhängigkeiten benötigt sollten Sie es zwischen den <BuildDependencies> tag eintragen.
    6. <RuntimeDependencies>: Hier tragen Sie alle Abhängigkeiten ein die das Paket braucht um ordnungsgemäß zu funktionieren Alle Abhängigkeiten müssen immer jeder für sich in einem <Dependency> tag. Eingetragen werden.
    7. <AnyDependency>: Hier tragen Sie alle Abhängigkeiten ein wenn das Paket andere Abhängigkeiten für eine spezifische Arbeit benötigt.
    8. <Conflicts>: Hier wir eingetragen zu ob es zwischen dem zu bauenden oder einem bestehenden Paket Konflikte gibt.
    9. <Replaces>: Hier wird eingetragen welches Paket durch dieses ersetzt wird.Wenn es hinzugefügt wird.
    10. <Files>: Hier tragen sie bitte die Pfade des Paketes ein Alle Pfade werden zwischen dem <Path fileType=”“> tag geschrieben.Und für jeden Pfad ein seperates <Path fileType=”“> tag.



      Hier die unterschiedlichen Pfade die in Pisi Linux benutzt werden:
      • config: Das wird benutzt für die configuration files und stehen im “/etc” pfad.
      • executable: Das sind die ausführbaren files und stehen im “/usr/bin” pfad.
      • header: Dieses sind die header files und stehen in “/usr/include” pfad.
      • library: Das sind die library files und stehen in “/usr/lib” pfad.
      • localedata:” Das sind die Sprachdateien und stehen im “/usr/share/locale” pfad.
      • man: Da sind die Anleitungen sie stehen im /usr/share/man pfad.
      • doc: Die Dokumentation files stehen im “/usr/share/doc” pfad.
      • data: Dieses sind die gemeinsam genutzten files und befinden sich im “/usr/share” pfad.
      • info: Dieses sind die informations files und befinden sich im “/user/share/info” pfad.
    1. <AdditionalFiles>: Hier werden Dateien reingeschrieben die sich im Quellpaket nicht befinden Dazu wird im Paket Verzeichnis in dem Sie bauen ein Ordner namens files angelegt welche direkt ins Sytem installiert werden mit dem Paket.Wir müssen aber beim Eintrag hier den Pfad, die Zugriffsrechte, Gruppe und Benutzer angeben.
      target: Dieses wird angegeben für den Pfad und Namen.
      permission: Diese gibt die Berechtigungen für das file an.
      owner: Hier steht der Eigentümer des files.
      group: Dieses wird für die richtige Gruppe benötigt. Der “groups” Befehl listet eine Liste auf vom tatsächlichen Eigentümer.
      Jedes file sollte so aussehen wie das nachfolgende Beispiel:
      <AdditionalFile owner="mpd" group="audio" permission="0640" target="/etc/mpd.conf">mpd.conf</AdditionalFile>
      The files is included under files directory of the pisi package.
    2. <Provides>: Dieser Teil wird benutzt für die COMAR scripts. Es gibt zwei Typen von Scripts die benutzt werden und diese files werden hier eingetragen.
  1. <History>: Dieser Teil gibt Informationen über die Updates von Paketen
    1. <Update>: Dieser Tag verfügt über sogenannte Unter Tags
      release: Die Release Nummer von Änderungen steht hier.
      type: Hier wird der Type angegeben es gibt zwei Typen von Änderungen in Pisi Linux Für Kritische Änderungen einfach critical schreiben und für Sicherheit value
    2. <Date>: Hier bitte das Datum der Änderung eintragen. Das Format sollte so aussehen “YYYY-MM-DD”.
    3. <Version>: Hier bitte die Versionsnummer des Paketes eintragen.
    4. <Comment>: Hier ein kurzer Kommentar über die Änderung.
    5. <Requires>: Es gibt drei verschiedene Typen von benötigt.
      • reverseDependencyUpdate: Diese Aktion sollte gewählt werden wenn das Paket installiert ist und ein Update gemacht werden soll.
        <Action package="module-fglrx-userspace">reverseDependencyUpdate</Action>
        <Action>reverseDependencyUpdate</Action>
      • systemRestart: Dieses bitte angeben wenn die Aktion ein Sytem Neustart braucht.T:
        <Action package="module-pae-nvidia-current">systemRestart</Action>
        <Action>systemRestart</Action>
      • serviceRestart: Und dieses bitte angeben wen ein Service Neugestartet werden muss:
        <Action package="dhcp">serviceRestart</Action>
        <Action>systemRestart</Action>
    6. <Name>: Der Name vom Paketersteller wenn Sie ein Paket updaten auch bitte ausfüllen
    7. <Email>: Und hier bitte die E-Mail Adresse eintragen

Erstellen einer translations.xml

Die translations.xml ist integriert in der pisi paket quelle und wird benötigt für die Übersetzung der Beschreibung des Paketes also für die kurze und lange Beschreibung
This is an empty translations.xml file:
<PISI>
    <Source>
        <Name></Name>
        <Summary xml:lang=""></Summary>
        <Description xml:lang=""></Description>
    </Source>
</PISI>
This is an example translations.xml file:
<PISI>
    <Source>
        <Name>texlive-core</Name>
        <Summary xml:lang="tr">TeX Live Dağıtımının Ana Parçası</Summary>
        <Description xml:lang="tr">texlive-core Tex Live dağıtımının ana parçasıdır.</Description>
        <Description xml:lang="fr">texlive-core est la partie essentielle de TeXLive.</Description>
    </Source>
</PISI>

Different translations.xml File Tags

  1. <Name>: Name des Paketes.
  2. <Summary>: Hier fügen Sie bitte die Übersetzung der summary einshould .
    Der Sprach Typ sollte als “xml:lang” attribut eingegeben werden siehe oben.
  3. <Description>: Und hier die Übersetzung der description.
    Auch hier sollte der Sprach Typ als “xml:lang” attribut eingegeben werden.

So das soll es gewesen sein bitte lassen Sie sich von dem ganzen nicht abschrecken.
Es ist einfacher als es aussieht.

Und wie schon erwähnt gibt es PisiYap und Pisido welches Ihnen eine große Hilfe sein werden.

Etwaige Rechtschreibfehler bitte ich zu entschuldigen und darüber hinweg zu sehen, ansonsten wünsche ich Ihnen viel Spass beim ausprobieren.