# Maintainer: Michael Schantl # Upstream authors: Tom Keffer, Matthew Wall and contributors # Supports automatic update checking pkgbase=weewx pkgname=("weewx" "weewx-docs") _MAJOR=5 _MINOR=0 _PATCH=2 pkgver=$_MAJOR.$_MINOR.$_PATCH function _dl_url { echo "https://github.com/weewx/weewx/archive/refs/tags/v$1.$2.$3.tar.gz" } pkgrel=4 pkgdesc="Software for logging data from weather stations" arch=("any") url="http://www.weewx.com/" license=("GPL-3.0-or-later") makedepends=("mkdocs" "mkdocs-material" "mkdocs-material-extensions" "python" "python-cheetah3" "python-configobj") source=("$pkgbase-$pkgver.tar.xz::$(_dl_url $_MAJOR $_MINOR $_PATCH)" "weewx.sysusers" "weewx.tmpfiles") sha512sums=('520ba2a394c91b66997969695552d9aa8ebbd440b192e0cf8064c36d6a3691a670ce431f688373cf3c51c27933180f8202793163e5a034916eec52e3e1ad3ef2' '6015b870143f6b8ae094b3f94ad53323be8a083f11c177dc508315fb3bbc20dd318124e6ccd41ba9d0388828e18c4b4ae6ce7c4a35ac0cab442eca9e8bbbca2d' 'e97b287acf53c55d30f4e1a4d533fe5c649fac44080095fa1052f6f1cc9a55b6b0592d63c63a4a241e7007894e882648d5c4c4a221da69666e284637c5a3e15e') _watch="http://www.weewx.com/downloads/" build() { cd "$srcdir/${pkgbase}-${pkgver}" echo "Compiling Python bytecode" python -m compileall -q "src" echo "Compiling documentation" make --quiet build-docs } _install() { local dest="$1" local mode="$2" shift 2 local sources=("$@") mkdir -p "$dest" cp -RL ${sources[@]} "$dest" chmod -R $mode "$dest" find "$dest" -type d -exec chmod a+x {} + } package_weewx() { depends=("python" "python-cheetah3" "python-configobj" "python-pillow") optdepends=("python-pyserial: serial port support" "python-pyusb: USB port support" "python-pyephem: extended celestial information" "python-pymysql: MySQL or MariaDB support") backup=("etc/weewx/weewx.conf") cd "$srcdir/${pkgbase}-${pkgver}" local PYTHON='python' local weewx_bindir='/usr/lib/weewx' local weewx_sharedir="/usr/share/weewx" local weewx_etcdir="/etc/weewx" local weewx_vardir="/var/lib/weewx" local entrypoints=('weewxd' 'weectl') local bindir="$pkgdir/usr/bin" local libdir="${pkgdir}${weewx_bindir}" local sharedir="${pkgdir}${weewx_sharedir}" local licensedir="$pkgdir/usr/share/licenses/weewx" local etcdir="${pkgdir}${weewx_etcdir}" local unitdir="$pkgdir/usr/lib/systemd/system" local sysusersdir="$pkgdir/usr/lib/sysusers.d" local tmpfilesdir="$pkgdir/usr/lib/tmpfiles.d" local udevdir="$pkgdir/usr/lib/udev/rules.d" echo "Copying source files" [[ -d "$libdir" ]] || mkdir -p "$libdir" _install "$libdir" 644 "src"/* _install "$libdir" 755 "src/weewx_data/bin" echo "Creating entrypoints" [[ -d "$bindir" ]] || mkdir -p "$bindir" for f in ${entrypoints[@]}; do echo "Creating entrypoint $f" sed \ -e "s%WEEWX_BINDIR=.*%WEEWX_BINDIR=\"${weewx_bindir}\"%" \ -e "s%WEEWX_PYTHON=.*%WEEWX_PYTHON=\"${PYTHON}\"%" \ "bin/$f" > "$bindir/$f" chmod 755 "$bindir/$f" done echo "Copying license and copyright" install -Dm644 "docs_src/copyright.md" "$licensedir/copyright.md" install -Dm644 "LICENSE.txt" "$licensedir/LICENSE.txt" echo "Copying skins" [[ -d "$sharedir" ]] || mkdir -p "$sharedir" _install "$sharedir" 644 "src/weewx_data/skins" echo "Copying ancillary files" _install "$sharedir" 644 "src/weewx_data/examples" _install "$sharedir" 644 "src/weewx_data/util/import" _install "$sharedir" 644 "src/weewx_data/util/logwatch" _install "$sharedir" 644 "src/weewx_data/util/systemd" _install "$sharedir" 644 "src/weewx_data/util/udev" echo "Creating configuration file" [[ -d "$etcdir" ]] || mkdir -p "$etcdir" sed \ -e "/log_failure =.*/aWEEWX_ROOT = $weewx_bindir" \ -e "s%SKIN_ROOT =.*%SKIN_ROOT = $weewx_sharedir/skins%" \ -e "s%HTML_ROOT = public_html%HTML_ROOT = $weewx_vardir/www%" \ -e "s%SQLITE_ROOT = .*%SQLITE_ROOT = $weewx_vardir%" \ "src/weewx_data/weewx.conf" > "$etcdir/weewx.conf" chmod 644 "$etcdir/weewx.conf" echo "Creating systemd unit" [[ -d "$unitdir" ]] || mkdir -p "$unitdir" sed \ -e "s%StandardError=journal+console%StandardError=journal%" \ "$srcdir/$pkgbase-$pkgver/pkg/etc/systemd/system/weewx.service" > "$unitdir/weewx.service" chmod 644 "$unitdir/weewx.service" sed \ -e "s%StandardError=journal+console%StandardError=journal%" \ "$srcdir/$pkgbase-$pkgver/pkg/etc/systemd/system/weewx@.service" > "$unitdir/weewx@.service" chmod 644 "$unitdir/weewx@.service" echo "Creating system user definition" install -Dm644 "$srcdir/weewx.sysusers" "$sysusersdir/weewx.conf" echo "Creating tmpfiles definition" install -Dm644 "$srcdir/weewx.tmpfiles" "$tmpfilesdir/weewx.conf" echo "Creating udev ruleset" install -Dm644 "src/weewx_data/util/udev/rules.d/weewx.rules" "$udevdir/weewx.rules" } package_weewx-docs() { pkgdesc="Documentation for WeeWX" cd "$srcdir/${pkgbase}-${pkgver}" local docdir="$pkgdir/usr/share/doc/weewx" echo "Copying documentation" [[ -d "$docdir" ]] || mkdir -p "$docdir" _install "$docdir" 644 "build/docs"/* }