diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 155 |
1 files changed, 127 insertions, 28 deletions
@@ -1,36 +1,135 @@ -# Maintainer: Konstantin Stepanov <me@kstep.me> -pkgname=systemd-cron-next -pkgver=1.0.1 -_gitver=1.0.1 -pkgrel=2 -pkgdesc="systemd generator to generate timers/services from crontab and anacrontab files" +# Maintainer: +# Contributor: Ahmad Hasan Mubashshir <ahmubashshir@gmail.com> +# Contributor: Konstantin Stepanov <me@kstep.me> + +# options +: ${CARGO_HOME:=${SRCDEST:-${startdir:?}}/cargo} + +#: ${_pkgtype:=git} + +# basic info +_pkgname="systemd-cron-next" +pkgname="$_pkgname${_pkgtype:+-$_pkgtype}" +pkgver=1.0.2 +pkgrel=1 +pkgdesc="Systemd generator to generate timers/services from crontab and anacrontab files" url="https://github.com/systemd-cron/systemd-cron-next" -arch=('i686' 'x86_64') license=('MIT') -depends=('systemd>=217' 'run-parts') -optdepends=('smtp-forwarder: sending emails') -makedepends=('rust>=1.4.0' 'cargo>=0.6.0') -provides=('cron' 'anacron') -conflicts=('cron' 'anacron') -replaces=('cron' 'anacron') -source=("https://github.com/systemd-cron/systemd-crontab-generator/archive/v${_gitver}.zip") -md5sums=('fe6150aba32ba2cc4fd33a12a84044d9') +arch=('i686' 'x86_64') -build() { - cd "${srcdir}/${pkgname}-${_gitver}" - if which multirust; then - multirust override stable - else - if which rustup; then - rustup override add stable - fi +# main package +_main_package() { + depends=( + 'run-parts' + 'systemd' + ) + makedepends=( + 'rust' + ) + optdepends=( + 'smtp-forwarder: sending emails' + ) + + provides=( + 'anacron' + 'cron' + 'systemd-cron' + ) + conflicts=( + 'anacron' + 'cron' + ) + + if [ x"$pkgname" == x"$_pkgname" ] ; then + _main_stable + else + _main_git + fi +} + +# stable package +_main_stable() { + _pkgsrc="$_pkgname-${pkgver%.r*}" + _pkgext="zip" + source+=( + "$_pkgsrc.$_pkgext"::"https://github.com/systemd-cron/systemd-crontab-generator/archive/v${pkgver%%.r*}.$_pkgext" + "0001-makefile-stable.patch" + ) + sha256sums+=( + '455d1ea09ecb29efaec44255f6439794d2118d63133936b389fd3afd9c60cc2f' + 'a3944b5069f3012044c97ef9eac300b6c7a5b58254c89644f659e3350025c82a' + ) + pkgver() { + local _pkgver="${pkgver%%.r*}" + echo "${_pkgver:?}" + } +} + +# git package +_main_git() { + makedepends+=('git') + + provides+=("$_pkgname") + conflicts+=("$_pkgname") + + _pkgsrc="$_pkgname" + source+=( + "$_pkgsrc"::"git+$url.git" + "0001-makefile-git.patch" + ) + sha256sums+=( + 'SKIP' + '095f20fd780717da18c0251df0ff702a5953816120f3040a317ccc9dc3e1572b' + ) + + pkgver() ( + cd "$_pkgsrc" + local _pkgver=$( + git describe --long --tags --exclude='*[a-zA-Z][a-zA-Z]*' 2>/dev/null \ + | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g' + ) + echo "${_pkgver:?}" + ) +} + +# common functions +prepare() { + cd "$_pkgsrc" + + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + src="${src%.zst}" + if [[ $src == *.patch ]] ; then + printf '\nApplying patch: %s\n' "$src" + patch -Np1 -F100 -i "${srcdir:?}/$src" fi - ./configure --prefix="/usr" --confdir="/etc" - DESTDIR="${pkgdir}" make build + done + + sed -E 's@^(\s*rustc-serialize) = \S+\s*$@\1 = "0.3.20"@' -i Cargo.toml + + export RUSTUP_TOOLCHAIN=stable + cargo fetch --target "$CARCH-unknown-linux-gnu" +} + +build() { + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR="${srcdir:?}/target" + + cd "$_pkgsrc" + ./configure --prefix="/usr" --confdir="/etc" + DESTDIR="${pkgdir:?}" make build } package() { - cd "${srcdir}/${pkgname}-${_gitver}" - DESTDIR="${pkgdir}" make install - install -d -m 775 ${pkgdir}/var/spool/cron + cd "$_pkgsrc" + DESTDIR="${pkgdir:?}" make install + + install -dm775 "${pkgdir:?}/var/spool/cron" + + install -Dm644 LICENSE -t "${pkgdir:?}/usr/share/licenses/$pkgname/" } + +# execute +_main_package |