Notizen zu Arch Linux makepkg

Signature checking when using makepkg does NOT use pacman's keyring, but the build users keyring!

If a signature file (.sig or .asc) is part of the source array, makepkg automatically attempts to verify it.

nach dem buildvorgang ggf. makepkg --clean aufrufen

PKGBUILD für Qt

Damit qmake die gesetzten CFLAGS und CXXFLAGS und so honoriert, muss das da ins PKGBUILD:

PKGBUILD
... build() { cd "$srcdir/$_pkgname-$pkgver-src" qmake-qt4 "$srcdir/$_pkgname-$pkgver-src/$_pkgname.pro" \ PREFIX=/usr \ QMAKE_CFLAGS="${CFLAGS}" \ QMAKE_CXXFLAGS="${CXXFLAGS}" make } ... für das install directory MIT QMAKE: package() { cd "$srcdir/$_pkgname-$pkgver-src" make INSTALL_ROOT="$pkgdir" install }

und in das .pro file muss das da:

projekt.pro
... target.path = /usr/local/bin INSTALLS += target ...

Paketversion aus dem Source Git Repo heraus generieren

Wenn die Quelle des Pakets ein Git Repo ist, generiere ich die Paketversion aus den Angaben des Git Repos. Bei meinen Projekten ist es inzwischen ohnehin so, dass die Versionsnummer der Software ebenfalls aus Git heraus generiert wird.

PKGBUILD
pkgver() { cd "${srcdir}/${pkgname}" ( set -o pipefail git describe --long 2>/dev/null | sed 's/-/./g;s/v//g' || printf "v0r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" ) }

Wenn man der Zahl der commits ein "r" voranstellen möchte (wie in ettlichen Projekten üblich), verwendet man dies:

PKGBUILD
pkgver() { cd "${srcdir}/${pkgname}" ( set -o pipefail git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//g' || printf "v0r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" ) }