diff --git a/.SRCINFO b/.SRCINFO index 8373391..4309e23 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,25 +1,25 @@ pkgbase = audiobookshelf pkgdesc = Self-hosted audiobook server for managing and playing audiobooks - pkgver = v2.17.5 + pkgver = 2.17.7 pkgrel = 1 url = https://github.com/advplyr/audiobookshelf arch = x86_64 + arch = aarch64 license = GPL-3.0-only - makedepends = nodejs makedepends = npm - makedepends = git depends = ffmpeg + depends = libnusqlite3 + depends = nodejs options = !debug - options = !strip backup = etc/conf.d/audiobookshelf - source = git+https://github.com/advplyr/audiobookshelf#tag=v2.17.5 + source = audiobookshelf-2.17.7.tar.gz::https://github.com/advplyr/audiobookshelf/archive/refs/tags/v2.17.7.tar.gz source = audiobookshelf.conf source = audiobookshelf.hook source = audiobookshelf.service source = audiobookshelf.sysusers source = audiobookshelf.tmpfiles - sha256sums = e7139ced439a5e622a9191f0c50178b9e3b495888e1574de1cfd3a561e58c908 - sha256sums = 839c778b8ae951d82a602d370452d702ad9b1d8ab6844984c934a3d2af0b710a + sha256sums = f889909ecd2324fa355ccc02b72c21da592afa07c70f56b82c2da9cff72993ad + sha256sums = 642deac39c60d849d0cfdfa718c4da4ea6728585b1b55141f6bb1445fa90bff5 sha256sums = 91d00bbc9800f80cde439fd9b5343cf031b6a09557f03172c92d40f2f0775c2b sha256sums = 4f37d8e407eda555231dc23d1cd35d329075ae6686acbb89d0b4612a824d594d sha256sums = cd5db44865de6f7401093b60869f937703213f196220e8c3325fa7f1b02db1fa diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9e5742f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/pkg +/src +*.tar.gz +*.pkg.tar.* diff --git a/PKGBUILD b/PKGBUILD index 555891f..c043872 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,65 +1,53 @@ # Maintainer: jason.nader@protonmail.com +# Maintainer: devome # Based on PKGBUILD by Kevin S + pkgname=audiobookshelf -pkgver=v2.17.5 +pkgver=2.17.7 pkgrel=1 pkgdesc="Self-hosted audiobook server for managing and playing audiobooks" -arch=('x86_64') -url="https://github.com/advplyr/audiobookshelf" +arch=("x86_64" "aarch64") +url="https://github.com/advplyr/${pkgname}" license=('GPL-3.0-only') -depends=('ffmpeg') -makedepends=('nodejs' 'npm' 'git') -backup=('etc/conf.d/audiobookshelf') -options=(!debug !strip) - -source=( - "git+${url}#tag=${pkgver}" - 'audiobookshelf.conf' - 'audiobookshelf.hook' - 'audiobookshelf.service' - 'audiobookshelf.sysusers' - 'audiobookshelf.tmpfiles' -) - -sha256sums=('e7139ced439a5e622a9191f0c50178b9e3b495888e1574de1cfd3a561e58c908' - '839c778b8ae951d82a602d370452d702ad9b1d8ab6844984c934a3d2af0b710a' +depends=("ffmpeg" "libnusqlite3" "nodejs") +makedepends=("npm") +backup=("etc/conf.d/${pkgname}") +options=("!debug") +source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz" + "${pkgname}.conf" + "${pkgname}.hook" + "${pkgname}.service" + "${pkgname}.sysusers" + "${pkgname}.tmpfiles") +sha256sums=('f889909ecd2324fa355ccc02b72c21da592afa07c70f56b82c2da9cff72993ad' + '642deac39c60d849d0cfdfa718c4da4ea6728585b1b55141f6bb1445fa90bff5' '91d00bbc9800f80cde439fd9b5343cf031b6a09557f03172c92d40f2f0775c2b' '4f37d8e407eda555231dc23d1cd35d329075ae6686acbb89d0b4612a824d594d' 'cd5db44865de6f7401093b60869f937703213f196220e8c3325fa7f1b02db1fa' 'ec04988b13dd049fbd021a51275c92120179f74f1e71fd9141bd720633e5f99f') -prepare() { - cd "${srcdir}/${pkgname}" - # install build dependencies - npm install @yao-pkg/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 --only=production + cd "${pkgname}-${pkgver}" + npm run client + npm ci --only=production + find {client/dist,node_modules,server} -type f -name "*.map" | xargs rm -rf + sed -i '1i #!/usr/bin/node\n' prod.js } package() { - cd "${srcdir}/${pkgname}" + install -Dm644 "${pkgname}.conf" "${pkgdir}/etc/conf.d/${pkgname}" + install -Dm644 "${pkgname}.hook" "${pkgdir}/usr/share/doc/${pkgname}/${pkgname}.hook" + install -Dm644 "${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" + install -Dm644 "${pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + install -Dm644 "${pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" - "${srcdir}/${pkgname}"/node_modules/.bin/pkg -t node20-linux-x64 -o "${pkgdir}/usr/bin/audiobookshelf" . - install -D -m 644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - install -D -m 644 "${srcdir}/audiobookshelf.conf" "${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" + cd "${pkgname}-${pkgver}" + install -Dm644 readme.md "${pkgdir}/usr/share/doc/${pkgname}/readme.md" + install -Dm644 *.json -t "${pkgdir}/usr/lib/${pkgname}" + install -Dm755 prod.js -t "${pkgdir}/usr/lib/${pkgname}" + mv node_modules "${pkgdir}/usr/lib/${pkgname}" + find {client/dist,server} -type f | + xargs -I {} install -Dm644 {} "${pkgdir}/usr/lib/${pkgname}/"{} + install -dm755 "${pkgdir}/usr/bin" + ln -s "/usr/lib/${pkgname}/prod.js" "${pkgdir}/usr/bin/${pkgname}" } diff --git a/audiobookshelf.conf b/audiobookshelf.conf index 2669cac..001fede 100644 --- a/audiobookshelf.conf +++ b/audiobookshelf.conf @@ -1,7 +1,10 @@ METADATA_PATH=/var/lib/audiobookshelf/metadata CONFIG_PATH=/var/lib/audiobookshelf/config +SOURCE=archlinux FFMPEG_PATH=/usr/bin/ffmpeg FFPROBE_PATH=/usr/bin/ffprobe +NUSQLITE3_PATH=/usr/lib/libnusqlite3.so SKIP_BINARIES_CHECK=1 PORT=13378 HOST=0.0.0.0 +# ROUTER_BASE_PATH=""