Tagesaktuell

Es gibt Gründe, Pakete aus den offiziellen Repositories leicht abgewandelt auf dem eigenen Rechner neu zu übersetzen. So richtig stellt das Arch Build System seine Leistungsfähigkeit bei Paketen unter Beweis, deren Quellcode aus einem Versionsmanagementsystem stammt. Hier lohnt es sich, den Compiler öfters, vielleicht sogar täglich anzuwerfen. Solche Pakete finden sich naturgemäß nicht in den stabilen Repositorys, aber im AUR stehen viele bereit.

Pacman 4.1 ersetzt dabei das frühere, etwas undurchsichtige Verfahren, bei dem makepkg bei allen Paketen, deren Name auf -git, -svn, -hg, -darcs oder -bzr endete, das aktuelle Datum als Versionsnummer verwendet hat.

Bei diesem neuen Verfahren ist es nicht einmal mehr nötig, die Befehle für den Checkout oder Update des Quellcodes in das Build-Skript zu schreiben. Vielmehr akzeptiert makepkg nun direkt im Array source URLs, die auf ein Repository deuten und automatisiert den Checkout ähnlich dem Auspacken von Archiven mit Quellcode.

Listing 2

pkgname=audacious-git
pkgver=0
pkgrel=1
pkgdesc='Lightweight, advanced audio player focused on audio quality'
url='http://audacious-media-player.org/'
license=('custom:BSD')
arch=('i686' 'x86_64')
depends=('gtk3' 'dbus-glib' 'libguess' 'libsm' 'hicolor-icon-theme' 'desktop-file-utils')
makedepends=('git')
optdepends=('unzip: zipped skins support')
provides=('audacious')
conflicts=('audacious' 'audacious-player-hg')
source=('git://github.com/audacious-media-player/audacious.git')
install=$pkgname.install
sha256sums=('SKIP')
pkgver() {
  cd "$srcdir/audacious"
  git describe --always | sed 's|-|.|g'
}
build() {
    cd "$srcdir/audacious"
    autoreconf
    ./configure --prefix=/usr --with-buildstamp="$(date +%x)"
    make
}
package() {
    cd "$srcdir/audacious"
    make DESTDIR="${pkgdir}" install
    install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

Version für Version

Listing 2 zeigt als Beispiel das PKGBUILD für eine Git-Version von Audacious. Die offensichtlichste Änderung im Vergleich zur auf einem statischen Tar-Archiv basierenden Fassung (Listing 1) besteht in der Git-URL in source (Zeile 14). Anhand des Protokolls erkennt makepkg das Versionskontrollsystem und sorgt dafür, dass der Quellcode vor dem Aufruf von build() in der neuesten Version vorliegt.

Nach wie vor darf source mehrere Quellen bündeln und dabei statische und versionierte Elemente mischen. Da Checksummen bei letzteren keine Sinn ergeben, lautet der zugehörige Eintrag sha256sums schlicht SKIP. Falls Sie statt des Git-eigenen Protokolls lieber Git über HTTP verwenden möchten, beginnt die URL mit git+http.

Hinzugekommen ist außerdem die Funktion pkgver() (Zeile 18). Sie gibt im vorliegenden Fall den Hash des aktuellen Checkins zurück [2]. makepkg verwendet den Rückgabewert als Paketversion. Das erlaubt es, jedes neu übersetzte Paket einzuordnen. Aus diesem Grund darf die Variable pkgver mit einem beliebigen Wert starten.

Über makepkg --holdver stoßen Sie ein Neukompilieren ohne Update des Quellcodes an. Dies ist aber nur beim Testen während des Schreiben von PKGBUILD-Dateien erforderlich, da ein Neubau des Pakets andere, bereits erzeugte Versionen nicht überschreibt. Solange Sie diese nicht löschen, bleibt daher immer die Option auf ein Downgrade zu einer Versionen aus einem früheren Aufruf.

Eine kleine Änderung ergibt sich beim Wechsel in das Quellcode-Verzeichnis am Anfang der drei Funktionen: Während makepkg den Ordner explizit nach dem Paketnamen und der Versionsnummer benennt, wenn es ein Tar auspackt, ergibt sich der Verzeichnisnahme hier beim Checkout, den Namen audacious gibt das Versionsrepository vor.

Vor dem Aufruf von Configure in build() muss autoreconf das Skript erst noch erzeugen, da es nicht üblich ist, es ins Rrepository einzuchecken. Darüber hinaus passen Sie das Array conflicts an, das die Deinstallation des offiziellen Audacious-Pakets erzwingt. Es enthält in Konflikt stehende Dateien.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Einfach Handhabung und volle Flexibilität in einer Distribution vereint
    Die Distribution Arch Linux verbindet Vorteile aus anderen Konzepten zu einem Gesamtsystem. Dieser Artikel zeigt Ihnen, wie Sie das System von der Heft-CD richtig installieren und danach effektiv nutzen.
  • Volle Kontrolle
    Arch Linux gibt Ihnen mehr als nur die Möglichkeit, unter die Motorhaube des Systems zu schauen: Sie sitzen Sie selbst am Steuer und fahren ohne Autopilot.
  • Mein Linux: Arch Linux
    Arch Linux ist auf Basis von LFS (Linux From Scratch) komplett neu entwickelt worden. Die Distribution orientiert sich am Aufbau von Slackware, der Paketverwaltung von Debian, dem Build-System von Gentoo und an BSD.
  • Die Arch-Derivate Antergos und Manjaro in der Praxis
    Arch Linux will eine einfache, anfängertaugliche Linux-Distribution sein. Die Derivate Manjaro und Antergos legen gar noch eine Scheibe drauf.
  • Guten Appetit
    Als Rolling-Release-Distribution steht Arch Linux vor der Herausforderung, täglich neue Anwendungen und Updates verwalten zu müssen. Der Arch-Paketmanager Pacman stemmt die Arbeit ohne Murren und Knurren. Den offiziellen Paketquellen steht das Arch User Repository zur Seite.
Kommentare

Infos zur Publikation

LU 09/2015: Paketverwaltung

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 2 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Scanner EPSON Perfection V 300 photo und VueScan
Roland Welcker, 19.08.2015 09:04, 1 Antworten
Verehrte Linux-Freunde, ich habe VueScan in /usr/local/src/vuex_3295/VueScan installiert, dazu d...
Empfehlung gesucht Welche Dist als Wirt für VM ?
Roland Fischer, 31.07.2015 20:53, 2 Antworten
Wer kann mir Empfehlungen geben welche Distribution gut geeignet ist als Wirt für eine VM für Win...
Plugins bei OPERA - Linux Mint 17.1
Christoph-J. Walter, 23.07.2015 08:32, 3 Antworten
Beim Versuch Video-Sequenzen an zu schauen kommt die Meldung -Plug-ins und Shockwave abgestürzt-....
Wird Windows 10 update/upgrade mein Grub zerstören ?
daniel s, 22.07.2015 08:31, 7 Antworten
oder rührt Windows den Bootloader nicht an? das ist auch alles was Google mir nicht beantw...
Z FUER Y UND ANDERE EINGABEFEHLER AUF DER TASTATUR
heide marie voigt, 10.07.2015 13:53, 2 Antworten
BISHER konnte ich fehlerfrei schreiben ... nun ist einiges drucheinander geraten ... ich war bei...