diff options
author | dreieck | 2023-01-09 16:12:35 +0100 |
---|---|---|
committer | dreieck | 2023-01-09 16:12:35 +0100 |
commit | 9823a4bf283370bb43635e3c748ea44d8b7adc27 (patch) | |
tree | e769cf07bbdcb20003795265399727c6e463df9d /PKGBUILD | |
download | aur-9823a4bf283370bb43635e3c748ea44d8b7adc27.tar.gz |
Initial Commit.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ab8504a2ee30 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,165 @@ +# Maintainer: dreieck (https://aur.archlinux.org/account/dreieck) + +_pkgname=open-av4ms +pkgname="${_pkgname}-git" +pkgver=1.5+1.r7.20181017.e7ac570 +pkgrel=1 +pkgdesc="Log and monitor the serial output of the MiMH/ NiCd battery chargers 'AV4m+'/ 'AV4ms'." +url='https://gitlab.com/corbolais/open-av4ms' +arch=( + 'any' +) +license=('GPL3') +provides=( + "${_pkgname}=${pkgver}" + "av4ms-server=${pkgver}" +) +conflicts=( + "${_pkgname}" + "av4ms-server" +) +makedepends=( + 'git' +) +depends=( + 'python2' + 'python2-daemon' + 'python2-netifaces' + 'python2-pyro3' + 'python2-pyserial' +) +optdepends=( + 'logrotate: To rotate the webserver logs.' + 'sysvinit: For system-V-style initscript.' + 'wget: For av4update Raspian(!) helper script.' +) +backup=( + 'etc/open-av4ms/av4server.conf' + 'etc/open-av4ms/Password.py' + 'etc/logrotate.d/av4server' +) +install='open-av4ms.install' +options=('emptydirs') +source=( + "${_pkgname}::git+${url}.git" + "arch-adaption.patch" + "${install}" +) +sha256sums=( + 'SKIP' + 'a0dffe4fab675aa5969d54edd8bf714e131754c14283e2a7640ca88f054344ab' + '01760fc8c5b37a86c4b37f48923bde6aaad302a94161f84bb253671d613beaf3' +) + +prepare() { + cd "${srcdir}/${_pkgname}" + + msg2 "Patching software Arch Linux ready ..." + patch -N -p1 --follow-symlinks -i "${srcdir}/arch-adaption.patch" + + #msg2 "Patching for Python 3 ..." + #patch -N -p1 --follow-symlinks -i "${srcdir}/python3.patch" + + printf '%s\n' "${url}" > "${srcdir}/website.url" +} + +pkgver() { + cd "${srcdir}/${_pkgname}" + + _ver="$(grep -E '^[[:space:]]*Version:[[:space:]]' 'debian/control' | awk '{print $2}' | tr '-' '+')" + _rev="$(git rev-list --count HEAD)" + _date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")" + _hash="$(git rev-parse --short HEAD)" + + if [ -z "${_ver}" ]; then + error "Version could not be determined." + return 1 + else + printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}" + fi +} + +# build() { +# cd "${srcdir}/${_pkgname}" +# } + +package() { + cd "${srcdir}/${_pkgname}" + + + ## The python version for site-packages: + _pythonversion="$(pacman -Qi python2 | grep -E '^[[:space:]]*Version[[:space:]]*:' | awk -F ':' '{print $2}' | tr -d '[[:space:]]' | awk -F. '{print $1"."$2}')" + + + ## User and group the webserver should run as: + _user="av4ms-server" + _group="${_user}" + + + ## Install helper executables: + for _bin in "usr/local/bin/av4config"; do + install -D -m755 -v "${_bin}" "${pkgdir}/usr/bin/$(basename "${_bin}")" + done + + + ## Install main executables: + for _pybin in "home/www"/{av4server.py,webserver.py}; do + install -D -m755 -v "${_pybin}" "${pkgdir}/usr/lib/${_pkgname}/$(basename "${_pybin}")" + done + ln -sv "${pkgdir}/usr/lib/${_pkgname}/av4server.py" "${pkgdir}/usr/bin/av4server" + ln -sv "${pkgdir}/usr/lib/${_pkgname}/webserver.py" "${pkgdir}/usr/bin/av4webserver" + + + ## Install python modules: + for _pymodule in "home/www"/{Pages.py,SockServer.py,Status.py,av4analyse.py,av4logbuch.py}; do + install -D -m644 -v "${_pymodule}" "${pkgdir}/usr/lib/python${_pythonversion}/site-packages/${_pkgname}/$(basename "${_pymodule}")" + done + for _odslib in "home/www/odslib"/*; do + install -D -m644 -v "${_odslib}" "${pkgdir}/usr/lib/python${_pythonversion}/site-packages/${_pkgname}/odslib/$(basename "${_odslib}")" + done + + + ## Install files to be served directly by the webserver: + for _static in "home/www/static"/*; do + install -D -m644 -v "${_static}" "${pkgdir}/usr/share/${_pkgname}/static/$(basename "${_static}")" + done + + + ## Install SysV initscripts: + install -D -m755 -v 'etc/init.d/av4server' "${pkgdir}/etc/rc.d/av4server" + install -D -m755 -v 'etc/init.d/webserver' "${pkgdir}/etc/rc.d/av4webserver" + + + ## Install configuration files: + install -D -m644 -v 'etc/av4server.conf' "${pkgdir}/etc/${_pkgname}/av4server.conf" + install -D -m644 -v "home/www/Password.py.dist" "${pkgdir}/etc/${_pkgname}/Password.py" + install -D -m644 -v 'etc/logrotate.d/av4server' "${pkgdir}/etc/logrotate.d/av4server" + + + ## Create logging and pidfile directories: + install -d -m755 -v "${pkgdir}/var/log/${_pkgname}" + install -d -m755 -v "${pkgdir}/var/log/${_pkgname}/av4server" + install -d -m755 -v "${pkgdir}/var/log/${_pkgname}/av4server/av4logs" + install -d -m755 -v "${pkgdir}/run/${_pkgname}" + install -d -m755 -v "${pkgdir}/run/${_pkgname}/av4server" + + + ## Install documentation: + for _docfile in README.md; do + install -D -m644 -v "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}" + done + + + ## Install further assets which are not needed or not safe to use: + install -D -m755 -v "usr/local/bin/av4update" "${pkgdir}/usr/share/doc/${_pkgname}/scripts/raspian/av4update" + install -D -m755 -v 'etc/cron.weekly/av4ms-version' "${pkgdir}/cron.weekly/av4ms-version" + for _sysvinit in 'etc/init.d'/pilocator; do + install -D -m755 -v "${_sysvinit}" "${pkgdir}/sysvinit/init.d/$(basename "${_sysvinit}")" + done + install -D -m644 -v "${srcdir}/website.url" "${pkgdir}/usr/share/doc/${_pkgname}/website.url" + + + ## Install license: + install -D -m644 -v 'LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" + ln -sv "/usr/share/licenses/${pkgname}/LICENSE.txt" "${pkgdir}/usr/share/doc/${_pkgname}/LICENSE.txt" +} |