summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD155
1 files changed, 127 insertions, 28 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 17d060368556..9a1ec3143941 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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