commit 8a560c31c6c45961c818340e12fffa01d155410e Author: Jason Nader Date: Sat Feb 24 17:27:46 2024 +0900 first commit diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..fbab4c7 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,30 @@ +pkgbase = audiobookshelf + pkgdesc = Self-hosted audiobook server for managing and playing audiobooks + pkgver = v2.8.0.r0.g85fecbd1 + pkgrel = 1 + url = https://github.com/advplyr/audiobookshelf + arch = any + license = GPL3 + makedepends = nodejs + makedepends = npm + makedepends = git + depends = ffmpeg + optdepends = tone-bin + provides = audiobookshelf + conflicts = audiobookshelf + options = !strip + backup = etc/conf.d/audiobookshelf + source = git+https://github.com/advplyr/audiobookshelf#tag=v2.8.0.r0.g85fecbd1 + source = audiobookshelf.conf.d + source = audiobookshelf.hook + source = audiobookshelf.service + source = audiobookshelf.sysusers + source = audiobookshelf.tmpfiles + md5sums = SKIP + md5sums = de5fab845f7f96b49956c7dc21268593 + md5sums = 749322fc2b48a839a79a638d879e77a4 + md5sums = ce89e5d2ce27de70b5e6b53cbaf595f0 + md5sums = 63619dfc5bb5b2dbecfb1d6037095338 + md5sums = 90e34ac4e5a79f71af3eaab8cebf1198 + +pkgname = audiobookshelf diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..a44535c --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: jason.nader@protonmail.com +# Based on PKGBUILD by Kevin S +pkgname=audiobookshelf +pkgver=v2.8.0.r0.g85fecbd1 +pkgrel=1 +pkgdesc="Self-hosted audiobook server for managing and playing audiobooks" +arch=('any') +url="https://github.com/advplyr/audiobookshelf" +license=('GPL3') +depends=('ffmpeg') +makedepends=('nodejs' 'npm' 'git') +optdepends=('tone-bin') +provides=("audiobookshelf") +conflicts=("audiobookshelf") +backup=('etc/conf.d/audiobookshelf') +options=(!strip) + +source=( + "git+${url}#tag=${pkgver}" + 'audiobookshelf.conf.d' + 'audiobookshelf.hook' + 'audiobookshelf.service' + 'audiobookshelf.sysusers' + 'audiobookshelf.tmpfiles' +) + +md5sums=( + 'SKIP' + 'de5fab845f7f96b49956c7dc21268593' + '749322fc2b48a839a79a638d879e77a4' + 'ce89e5d2ce27de70b5e6b53cbaf595f0' + '63619dfc5bb5b2dbecfb1d6037095338' + '90e34ac4e5a79f71af3eaab8cebf1198' +) + +pkgver() { + cd "$pkgname" + git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g' +} + +prepare() { + cd "${srcdir}/${pkgname}" + # install build dependencies + npm install pkg +} + +build() { + cd "${srcdir}/${pkgname}" + echo ">>> Building Client" + echo "--------------------" + + cd client + rm -rf node_modules + npm ci --unsafe-perm=true --allow-root + NODE_OPTIONS=--openssl-legacy-provider npm run generate + cd .. + + echo ">>> Building Server" + echo "--------------------" + + rm -rf node_modules + npm ci --unsafe-perm=true --allow-root +} + +package() { + cd "${srcdir}/${pkgname}" + + install -d -m 755 "${pkgdir}/usr/share/audiobookshelf/" + "${srcdir}/${pkgname}"/node_modules/.bin/pkg -t node16-linux -o "${pkgdir}/usr/share/audiobookshelf/audiobookshelf" . + install -D -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + install -D -m 644 "${srcdir}/audiobookshelf.conf.d" "${pkgdir}/etc/conf.d/audiobookshelf" + install -D -m 644 "${srcdir}/audiobookshelf.service" "${pkgdir}/usr/lib/systemd/system/audiobookshelf.service" + install -D -m 644 "${srcdir}/audiobookshelf.sysusers" "${pkgdir}/usr/lib/sysusers.d/audiobookshelf.conf" + install -D -m 644 "${srcdir}/audiobookshelf.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/audiobookshelf.conf" + install -D -m 644 "${srcdir}/audiobookshelf.hook" "${pkgdir}/usr/share/doc/${pkgname}/audiobookshelf.hook" +} diff --git a/audiobookshelf.conf.d b/audiobookshelf.conf.d new file mode 100644 index 0000000..8cef035 --- /dev/null +++ b/audiobookshelf.conf.d @@ -0,0 +1,7 @@ +METADATA_PATH=/usr/share/audiobookshelf/metadata +CONFIG_PATH=/usr/share/audiobookshelf/config +FFMPEG_PATH=/usr/bin/ffmpeg +FFPROBE_PATH=/usr/bin/ffprobe +TONE_PATH=/usr/bin/tone +PORT=13378 +HOST=0.0.0.0 diff --git a/audiobookshelf.hook b/audiobookshelf.hook new file mode 100644 index 0000000..f74d1e9 --- /dev/null +++ b/audiobookshelf.hook @@ -0,0 +1,11 @@ +# Copy, move or symlink this file in /etc/pacman.d/hooks to force a restart when audiobookshelf is updated. + +[Trigger] +Operation = Upgrade +Type = Package +Target = audiobookshelf-git + +[Action] +Description = Restarting audiobookshelf... +When = PostTransaction +Exec = /usr/bin/systemctl try-restart audiobookshelf.service diff --git a/audiobookshelf.service b/audiobookshelf.service new file mode 100644 index 0000000..8e98085 --- /dev/null +++ b/audiobookshelf.service @@ -0,0 +1,16 @@ +[Unit] +Description=Self-hosted audiobook server for managing and playing audiobooks +Requires=network.target + +[Service] +Type=simple +EnvironmentFile=/etc/conf.d/audiobookshelf +WorkingDirectory=/usr/share/audiobookshelf +ExecStart=/usr/share/audiobookshelf/audiobookshelf +ExecReload=/bin/kill -HUP $MAINPID +Restart=always +User=audiobookshelf +Group=audiobookshelf + +[Install] +WantedBy=multi-user.target diff --git a/audiobookshelf.sysusers b/audiobookshelf.sysusers new file mode 100644 index 0000000..ac99559 --- /dev/null +++ b/audiobookshelf.sysusers @@ -0,0 +1,2 @@ +u audiobookshelf - - /usr/share/audiobookshelf +g audiobookshelf - diff --git a/audiobookshelf.tmpfiles b/audiobookshelf.tmpfiles new file mode 100644 index 0000000..f9f3204 --- /dev/null +++ b/audiobookshelf.tmpfiles @@ -0,0 +1,2 @@ +d /usr/share/audiobookshelf 0755 audiobookshelf audiobookshelf +Z /usr/share/audiobookshelf - audiobookshelf audiobookshelf