diff options
-rw-r--r-- | .SRCINFO | 31 | ||||
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | PKGBUILD | 129 | ||||
-rw-r--r-- | sonixd | 3 | ||||
-rw-r--r-- | sonixd.desktop | 7 | ||||
-rw-r--r-- | sonixd.sh | 29 |
6 files changed, 118 insertions, 90 deletions
@@ -1,22 +1,23 @@ pkgbase = sonixd - pkgdesc = A full-featured Subsonic/Jellyfin compatible desktop music player - pkgver = 0.15.2 - pkgrel = 1 + pkgdesc = A full-featured Subsonic/Jellyfin compatible desktop client + pkgver = 0.15.5 + pkgrel = 4 url = https://github.com/jeffvli/sonixd arch = x86_64 - license = GPL3 + license = GPL-3.0-only makedepends = yarn makedepends = nvm - makedepends = asar - depends = electron13 - depends = nodejs - conflicts = sonixd-appimage - replaces = sonixd-appimage - source = sonixd-0.15.2.tar.gz::https://github.com/jeffvli/sonixd/archive/refs/tags/v0.15.2.tar.gz - source = sonixd - source = sonixd.desktop - sha256sums = 297d32e384f668e81308af8b112c35bb2a062264676caac0f9f06b22fa5d5629 - sha256sums = 89039f59dc58490cc5a2e05bb38b3645448df56b2e763d6170facb64e73241d0 - sha256sums = 9e2e1cce47b594b75b8df7a1cf3a5a6da340dda9d0cfdf2aa305d097fc0bbc7a + makedepends = npm + makedepends = python>=3 + makedepends = base-devel + makedepends = gcc + makedepends = gendesk + makedepends = curl + depends = electron22 + conflicts = sonixd + source = sonixd-0.15.5.tar.gz::https://github.com/jeffvli/sonixd/archive/refs/tags/v0.15.5.tar.gz + source = sonixd.sh + sha256sums = 1de05c325a0e86c24f1c917c33f577645481e898d842134e7d5f8e6650916d5e + sha256sums = 41b6d61dffef064762b3eec3dfeca7a3e1f57cbcb6dce9a6940c06797a0eae9d pkgname = sonixd diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 50ee41fec863..000000000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -* - -!.gitignore -!PKGBUILD -!.SRCINFO -!*.patch -!*.diff -!sonixd -!*.desktop @@ -1,64 +1,81 @@ -# Maintainer: j.r <j.r@jugendhacker.de> +# Maintainer: zxp19821005 <zxp19821005 at 163 dot com> +# Contributor: j.r <j.r@jugendhacker.de> pkgname=sonixd -pkgver=0.15.2 -pkgrel=1 -pkgdesc="A full-featured Subsonic/Jellyfin compatible desktop music player" +_pkgname=Sonixd +pkgver=0.15.5 +_electronversion=22 +_nodeversion=16 +pkgrel=4 +pkgdesc="A full-featured Subsonic/Jellyfin compatible desktop client" arch=('x86_64') url="https://github.com/jeffvli/sonixd" -license=('GPL3') -depends=('electron13' 'nodejs') -makedepends=('yarn' 'nvm' 'asar') -conflicts=("$pkgname-appimage") -replaces=("$pkgname-appimage") -source=("$pkgname-$pkgver.tar.gz::https://github.com/jeffvli/sonixd/archive/refs/tags/v$pkgver.tar.gz" - "$pkgname" - "$pkgname.desktop") -sha256sums=('297d32e384f668e81308af8b112c35bb2a062264676caac0f9f06b22fa5d5629' - '89039f59dc58490cc5a2e05bb38b3645448df56b2e763d6170facb64e73241d0' - '9e2e1cce47b594b75b8df7a1cf3a5a6da340dda9d0cfdf2aa305d097fc0bbc7a') - +license=('GPL-3.0-only') +conflicts=("${pkgname}") +depends=( + "electron${_electronversion}" +) +makedepends=( + 'yarn' + 'nvm' + 'npm' + 'python>=3' + 'base-devel' + 'gcc' + 'gendesk' + 'curl' +) +source=( + "${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz" + "${pkgname}.sh" +) +sha256sums=('1de05c325a0e86c24f1c917c33f577645481e898d842134e7d5f8e6650916d5e' + '41b6d61dffef064762b3eec3dfeca7a3e1f57cbcb6dce9a6940c06797a0eae9d') _ensure_local_nvm() { - which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload - export NVM_DIR="$srcdir/.nvm" - - source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]] + export NVM_DIR="${srcdir}/.nvm" + source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]] + nvm install "${_nodeversion}" + nvm use "${_nodeversion}" } - -prepare() { - mkdir -p "$srcdir/.nvm" - cd "$pkgname-$pkgver" - - _ensure_local_nvm - nvm install --no-progress 16 - - _ver="$(</usr/lib/electron13/version)" - yarn upgrade --cache-folder="$srcdir/yarn-cache" "electron@$_ver" -} - build() { - cd "$pkgname-$pkgver" - - _ver="$(</usr/lib/electron13/version)" - _ensure_local_nvm - local i686=ia32 x86_64=x64 - export NODE_ENV=production - yarn build --cache-folder="$srcdir/yarn-cache" - yarn run --cache-folder="$srcdir/yarn-cache" \ - electron-builder --linux --"${!CARCH}" --dir \ - -c.electronDist=/usr/lib/electron13 \ - -c.electronVersion="$_ver" + sed -e "s|@electronversion@|${_electronversion}|" \ + -e "s|@appname@|${pkgname}|g" \ + -e "s|@runname@|app.asar|g" \ + -e "s|@cfgdirname@|${_pkgname}|g" \ + -e "s|@options@||g" \ + -i "${srcdir}/${pkgname}.sh" + _ensure_local_nvm + gendesk -q -f -n --categories="Development" --name="${_pkgname}" --exec="${pkgname} %U" + cd "${srcdir}/${pkgname}-${pkgver}" + export npm_config_build_from_source=true + #export ELECTRON_SKIP_BINARY_DOWNLOAD=1 + #export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')" + #export npm_config_target="${SYSTEM_ELECTRON_VERSION}" + #export ELECTRONVERSION="${_electronversion}" + HOME="${srcdir}/.electron-gyp" + mkdir -p "${srcdir}/.electron-gyp" + touch "${srcdir}/.electron-gyp/.yarnrc" + if [ `curl -s ipinfo.io/country | grep CN | wc -l ` -ge 1 ];then + export npm_config_registry=https://registry.npmmirror.com + export npm_config_disturl=https://registry.npmmirror.com/-/binary/node/ + export npm_config_electron_mirror=https://registry.npmmirror.com/-/binary/electron/ + export npm_config_electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/ + else + echo "Your network is OK." + fi + sed '/"AppImage",/d;s|"tar.xz"|"dir"|g' -i package.json + yarn install --cache-folder "${srcdir}/.yarn_cache" + yarn run package + asar e "${srcdir}/${pkgname}-${pkgver}/release/linux-"*/resources/app.asar "${srcdir}/app.asar.unpacked" + sed "s|process.resourcesPath,\"assets\"|\"\/usr\/lib\/${pkgname%-bin}\",\"assets\"|g" -i "${srcdir}/app.asar.unpacked/main.prod.js" + asar p "${srcdir}/app.asar.unpacked" "${srcdir}/app.asar" } - package() { - install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname" - install -Dm755 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop" - - cd "$pkgname-$pkgver" - local i686=linux-ia32-unpacked x86_64=linux-unpacked - - install -d "$pkgdir/usr/lib/$pkgname/" - - install -Dm644 "release/${!CARCH}/resources/assets/icons/512x512.png" "$pkgdir/usr/share/pixmaps/$pkgname.png" - cp -r "release/${!CARCH}/resources/assets" "$pkgdir/usr/lib/$pkgname" - asar e "release/${!CARCH}/resources/app.asar" "$pkgdir/usr/lib/$pkgname/$pkgname/" -} + install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}" + install -Dm644 "${srcdir}/app.asar" -t "${pkgdir}/usr/lib/${pkgname}" + cp -r "${srcdir}/${pkgname}-${pkgver}/release/linux-"*/resources/{app.asar.unpacked,assets} "${pkgdir}/usr/lib/${pkgname}" + for _icons in 16x16 24x24 32x32 48x48 64x64 96x96 128x128 256x256 512x512 1024x1024;do + install -Dm644 "${srcdir}/${pkgname}-${pkgver}/assets/icons/${_icons}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname}.png" + done + install -Dm644 "${srcdir}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications" +}
\ No newline at end of file diff --git a/sonixd b/sonixd deleted file mode 100644 index 255b083a804e..000000000000 --- a/sonixd +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec electron13 /usr/lib/sonixd/sonixd/ "$@" diff --git a/sonixd.desktop b/sonixd.desktop deleted file mode 100644 index 840548ffded1..000000000000 --- a/sonixd.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Name=Sonixd -Exec=sonixd -Terminal=false -Type=Application -Icon=sonixd -Categories=Audio;AudioVideo diff --git a/sonixd.sh b/sonixd.sh new file mode 100644 index 000000000000..398398461fee --- /dev/null +++ b/sonixd.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -o pipefail +_APPDIR="/usr/lib/@appname@" +_RUNNAME="${_APPDIR}/@runname@" +_CFGDIR="@cfgdirname@/" +_OPTIONS="@options@" +export PATH="${_APPDIR}:${PATH}" +export LD_LIBRARY_PATH="${_APPDIR}/swiftshader:${_APPDIR}/lib:${LD_LIBRARY_PATH}" +export ELECTRON_IS_DEV=0 +export ELECTRON_FORCE_IS_PACKAGED=true +export ELECTRON_DISABLE_SECURITY_WARNINGS=true +export ELECTRON_OVERRIDE_DIST_PATH="/usr/bin/electron@electronversion@" +export NODE_ENV=production +export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +export _FLAGS_FILE="${XDG_CONFIG_HOME}/${_CFGDIR}@appname@-flags.conf" +declare -a _USER_FLAGS +if [[ -f "${_FLAGS_FILE}" ]]; then + while read -r line; do + if [[ ! "${line}" =~ ^[[:space:]]*#.* ]]; then + _USER_FLAGS+=("${line}") + fi + done < "${_FLAGS_FILE}" +fi +cd "${_APPDIR}" +if [[ "${EUID}" -ne 0 ]] || [[ "${ELECTRON_RUN_AS_NODE}" ]]; then + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" "${_USER_FLAGS[@]}" "$@" +else + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" --no-sandbox "${_USER_FLAGS[@]}" "$@" +fi
\ No newline at end of file |