summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authordreieck2023-01-09 16:12:35 +0100
committerdreieck2023-01-09 16:12:35 +0100
commit9823a4bf283370bb43635e3c748ea44d8b7adc27 (patch)
treee769cf07bbdcb20003795265399727c6e463df9d /PKGBUILD
downloadaur-9823a4bf283370bb43635e3c748ea44d8b7adc27.tar.gz
Initial Commit.
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD165
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"
+}