diff options
-rw-r--r-- | .SRCINFO | 38 | ||||
-rw-r--r-- | PKGBUILD | 112 | ||||
-rw-r--r-- | github-desktop.sh | 16 |
3 files changed, 107 insertions, 59 deletions
@@ -1,31 +1,25 @@ pkgbase = github-desktop-git - pkgdesc = GUI for managing Git and GitHub. - pkgver = r26627.3461639c7 + pkgdesc = GUI for managing Git and GitHub.Use system-wide electron. + pkgver = release.2.9.10.r4415.ge315c497a1 pkgrel = 1 - url = https://desktop.github.com - arch = x86_64 + url = https://github.com/shiftkey/desktop + arch = any license = MIT - makedepends = xorg-server-xvfb - makedepends = nodejs>=10.16.0 + makedepends = npm makedepends = yarn - makedepends = python2 - makedepends = unzip - depends = gnome-keyring + makedepends = git + makedepends = nvm + makedepends = gendesk + makedepends = base-devel + makedepends = gcc + depends = electron28 + depends = perl depends = libsecret - depends = git - depends = curl - depends = libxss - depends = gconf - depends = nss - depends = nspr - depends = unzip - optdepends = hub: CLI interface for GitHub. - provides = github-desktop + provides = github-desktop=release.2.9.10 conflicts = github-desktop - source = git+https://github.com/shiftkey/desktop.git - source = github-desktop.desktop + source = github-desktop.git::git+https://github.com/shiftkey/desktop.git + source = github-desktop.sh sha256sums = SKIP - sha256sums = 932e4c456e8c6db03d27172cf0daa37806bf025bb560d8b3d758c0997d1a618c + sha256sums = dc0c5ca385ad81a08315a91655c7c064b5bf110eada55e61265633ae198b39f8 pkgname = github-desktop-git - @@ -1,47 +1,85 @@ -# Maintainer: Ian MacKay <immackay0@gmail.com> -# Prior Maintainer: Mikel Pintado <mikelaitornube2010@gmail.com> +# Maintainer: zxp19821005 <zxp19821005 at 163 dot com> +# Contributor: Ian MacKay <immackay0@gmail.com> +# Contributor: Mikel Pintado <mikelaitornube2010@gmail.com> # Contributor: Jiawen Geng - -_pkgname='github-desktop' -pkgname="${_pkgname}-git" -pkgver=r26627.3461639c7 -gitname="linux" +pkgname=github-desktop-git +_pkgname="GitHub Desktop" +pkgver=release.2.9.10.r4415.ge315c497a1 +_electronversion=28 +_nodeversion=18 pkgrel=1 -pkgdesc="GUI for managing Git and GitHub." -arch=('x86_64') -url="https://desktop.github.com" +pkgdesc="GUI for managing Git and GitHub.Use system-wide electron." +arch=('any') +url="https://github.com/shiftkey/desktop" license=('MIT') -depends=('gnome-keyring' 'libsecret' 'git' 'curl' 'libxss' 'gconf' 'nss' 'nspr' 'unzip') -optdepends=('hub: CLI interface for GitHub.') -makedepends=('xorg-server-xvfb' 'nodejs>=10.16.0' 'yarn' 'python2' 'unzip') -provides=(${_pkgname}) -conflicts=(${_pkgname}) -DLAGENTS=("https::/usr/bin/git clone --branch ${gitname} --single-branch %u") -source=( - git+https://github.com/shiftkey/desktop.git - ${_pkgname}.desktop +conflicts=("${pkgname%-git}") +provides=("${pkgname%-git}=${pkgver%.r*}") +depends=( + "electron${_electronversion}" + 'perl' + 'libsecret' ) -sha256sums=( - 'SKIP' - 932e4c456e8c6db03d27172cf0daa37806bf025bb560d8b3d758c0997d1a618c +makedepends=( + 'npm' + 'yarn' + 'git' + 'nvm' + 'gendesk' + 'base-devel' + 'gcc' ) +source=( + "${pkgname%-git}.git::git+${url}.git" + "${pkgname%-git}.sh") +sha256sums=('SKIP' + 'dc0c5ca385ad81a08315a91655c7c064b5bf110eada55e61265633ae198b39f8') pkgver() { - cd desktop - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" + cd "${srcdir}/${pkgname%-git}.git" + git describe --tags | sed 's/\w\+\///g;s/\([^-]*-g\)/r\1/;s/-/./g;s/v//g' +} +_ensure_local_nvm() { + export NVM_DIR="${srcdir}/.nvm" + source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]] + nvm install "${_nodeversion}" + nvm use "${_nodeversion}" } build() { - cd desktop - export DISPLAY=':99.0' - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & - yarn install - yarn build:prod + sed -e "s|@electronversion@|${_electronversion}|" \ + -e "s|@appname@|${pkgname%-git}|g" \ + -e "s|@runname@|app|g" \ + -e "s|@options@|env ELECTRON_OZONE_PLATFORM_HINT=auto|g" \ + -i "${srcdir}/${pkgname%-git}.sh" + _ensure_local_nvm + gendesk -q -f -n --categories="Utility" --name="${_pkgname}" --exec="${pkgname%-git} %U" + cd "${srcdir}/${pkgname%-git}.git" + 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}" + export npm_config_disturl=https://electronjs.org/headers + 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_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 + rm -rf dist node_mudules out + yarn install --cache-folder "${srcdir}/.yarn_cache" + yarn run build:prod } package() { - install -d "${pkgdir}/opt/${_pkgname}" - cp -r --preserve=mode desktop/dist/github-desktop-linux-x64/* "${pkgdir}/opt/${_pkgname}/" - install -Dm644 "${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop" - install -Dm644 "desktop/app/static/logos/1024x1024.png" "${pkgdir}/usr/share/icons/hicolor/1024x1024/apps/${_pkgname}.png" - install -Dm644 "desktop/app/static/logos/512x512.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/${_pkgname}.png" - install -Dm644 "desktop/app/static/logos/256x256.png" "${pkgdir}/usr/share/icons/hicolor/256x256/apps/${_pkgname}.png" - printf "#!/bin/sh\n\n/opt/${_pkgname}/github-desktop \"\$@\"\n" | install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${_pkgname}" -} + install -Dm755 "${srcdir}/${pkgname%-git}.sh" "${pkgdir}/usr/bin/${pkgname%-git}" + install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}" + cp -r "${srcdir}/${pkgname%-git}.git/dist/${pkgname%-git}-linux-"*/resources/app "${pkgdir}/usr/lib/${pkgname%-git}" + for _icons in 32x32 64x64 128x128 256x256 512x512 1024x1024;do + install -Dm644 "${srcdir}/${pkgname%-git}.git/app/static/linux/logos/${_icons}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png" + done + install -Dm644 "${srcdir}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications" + install -Dm644 "${srcdir}/${pkgname%-git}.git/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" +}
\ No newline at end of file diff --git a/github-desktop.sh b/github-desktop.sh new file mode 100644 index 000000000000..7ddcaab8d734 --- /dev/null +++ b/github-desktop.sh @@ -0,0 +1,16 @@ +#!/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 NODE_ENV=production +cd "${_APPDIR}" +if [[ $EUID -ne 0 ]] || [[ $ELECTRON_RUN_AS_NODE ]]; then + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" "$@" || exit $? +else + exec electron@electronversion@ "${_RUNNAME}" "${_OPTIONS}" --no-sandbox "$@" || exit $? +fi
\ No newline at end of file |