summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO38
-rw-r--r--PKGBUILD112
-rw-r--r--github-desktop.sh16
3 files changed, 107 insertions, 59 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 67358f38efe6..45e86ae849b1 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index f454fa325b1d..f7701c3c1032 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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