diff options
-rw-r--r-- | .SRCINFO | 24 | ||||
-rw-r--r-- | PKGBUILD | 71 | ||||
-rw-r--r-- | muffon.sh | 29 |
3 files changed, 124 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2d8d831181f5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,24 @@ +pkgbase = muffon-git + pkgdesc = Music streaming browser,retrieves audio, video and metadata from various Internet sources. + pkgver = 2.0.3.r26.g8952bb89 + pkgrel = 1 + url = https://muffon.netlify.app/ + arch = x86_64 + license = AGPL-3.0-only + makedepends = npm + makedepends = pnpm + makedepends = git + makedepends = nodejs + makedepends = gendesk + makedepends = base-devel + makedepends = gcc + makedepends = curl + depends = electron29 + provides = muffon=2.0.3 + conflicts = muffon + source = muffon.git::git+https://github.com/staniel359/muffon.git + source = muffon.sh + sha256sums = SKIP + sha256sums = 05762c556c85a4423b28600ccbbe7b7dcdd3d1be526ef4a588a510671fa6c62a + +pkgname = muffon-git diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..a6ac2dfe4694 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,71 @@ +# Maintainer: zxp19821005 <zxp19821005 at 163 dot com> +pkgname=muffon-git +pkgver=2.0.3.r26.g8952bb89 +_electronversion=29 +pkgrel=1 +pkgdesc="Music streaming browser,retrieves audio, video and metadata from various Internet sources." +arch=('x86_64') +url="https://muffon.netlify.app/" +_ghurl="https://github.com/staniel359/muffon" +license=("AGPL-3.0-only") +conflicts=("${pkgname%-git}") +provides=("${pkgname%-git}=${pkgver%.r*}") +depends=( + "electron${_electronversion}" +) +makedepends=( + 'npm' + 'pnpm' + 'git' + 'nodejs' + 'gendesk' + 'base-devel' + 'gcc' + 'curl' +) +source=( + "${pkgname//-/.}::git+${_ghurl}.git" + "${pkgname%-git}.sh") +sha256sums=('SKIP' + '05762c556c85a4423b28600ccbbe7b7dcdd3d1be526ef4a588a510671fa6c62a') +pkgver() { + cd "${srcdir}/${pkgname//-/.}" + git describe --long --tags | sed -E 's/^v//;s/([^-]*-g)/r\1/;s/-/./g' +} +build() { + sed -e "s|@electronversion@|${_electronversion}|" \ + -e "s|@appname@|${pkgname%-git}|g" \ + -e "s|@runname@|app.asar|g" \ + -e "s|@options@|env ELECTRON_OZONE_PLATFORM_HINT=auto|g" \ + -i "${srcdir}/${pkgname%-git}.sh" + gendesk -q -f -n --categories="AudioVideo" --name="${pkgname%-git}" --exec="${pkgname%-git} %U" + cd "${srcdir}/${pkgname//-/.}" + 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" + pnpm config set store-dir "${srcdir}/.pnpm_store" + pnpm config set cache-dir "${srcdir}/.pnpm_cache" + pnpm config set link-workspace-packages true + 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 + pnpm install + pnpm run build + pnpm run build:electron +} +package() { + install -Dm755 "${srcdir}/${pkgname%-git}.sh" "${pkgdir}/usr/bin/${pkgname%-git}" + install -Dm644 "${srcdir}/${pkgname//-/.}/package_electron/linux-"*/resources/app.asar -t "${pkgdir}/usr/lib/${pkgname%-git}" + cp -r "${srcdir}/${pkgname//-/.}/package_electron/linux-"*/resources/app.asar.unpacked "${pkgdir}/usr/lib/${pkgname%-git}" + install -Dm644 "${srcdir}/${pkgname//-/.}/build/logo.png" "${pkgdir}/usr/share/pixmaps/${pkgname%-git}.png" + install -Dm644 "${srcdir}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications" + install -Dm644 "${srcdir}/${pkgname//-/.}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" +}
\ No newline at end of file diff --git a/muffon.sh b/muffon.sh new file mode 100644 index 000000000000..5594e5380ba2 --- /dev/null +++ b/muffon.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e +_APPDIR="/usr/lib/@appname@" +_RUNNAME="${_APPDIR}/@runname@" +_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}" +_FLAGS_FILE="${XDG_CONFIG_HOME}/@appname@-flags.conf" +declare -a flags +if [[ -f "${_FLAGS_FILE}" ]]; then + mapfile -t < "${_FLAGS_FILE}" +fi +for line in "${MAPFILE[@]}"; do + if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then + flags+=("${line}") + fi +done +cd "${_APPDIR}" +if [[ "${EUID}" -ne 0 ]] || [[ "${ELECTRON_RUN_AS_NODE}" ]]; then + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" "${_USER_FLAGS}" "$@" || exit $? +else + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" --no-sandbox "${_USER_FLAGS}" "$@" || exit $? +fi
\ No newline at end of file |