From 281103897b1002c3372028398aa83541f32a9c52 Mon Sep 17 00:00:00 2001 From: mosi0815 Date: Fri, 19 Jun 2026 13:54:14 +0200 Subject: [PATCH 1/3] gitkraken: register gitkraken:// and gk:// URL handlers The hand-written GitKraken.desktop carried no scheme MimeType, so the gitkraken:// and gk:// URL handlers never registered and OAuth callback links broke. Fix this on the existing tarball instead of switching the source to the .deb (which only adds these few text files but would cost a /usr/share->/opt relocation and CI rework). - adopt upstream's launcher contents from the deb in GitKraken.desktop (kept under that name so existing favorites/pins stay valid), and add the gitkraken-url-handler and gk-cli-url-handler entries, which register the two schemes and open them via /usr/bin/gitkraken --uri=%U - drop the deb launcher's MimeType=text/plain, which wrongly associated GitKraken with all plaintext files (#260); the launcher carries no MimeType, so the two --uri handlers own the schemes - symlink /usr/bin/gitkraken to the tarball's resources/bin/gitkraken.sh instead of shipping our own wrapper; drop gitkraken.sh - chmod 4755 chrome-sandbox so Electron's SUID sandbox works (cp drops it) - bump pkgrel to 2 so existing 12.2.1 users get the fix --- gitkraken-aur/.SRCINFO | 10 ++++--- gitkraken-aur/GitKraken.desktop | 5 ++-- gitkraken-aur/PKGBUILD | 33 +++++++++++++++++---- gitkraken-aur/gitkraken-url-handler.desktop | 12 ++++++++ gitkraken-aur/gitkraken.sh | 7 ----- gitkraken-aur/gk-cli-url-handler.desktop | 12 ++++++++ 6 files changed, 59 insertions(+), 20 deletions(-) mode change 100755 => 100644 gitkraken-aur/GitKraken.desktop create mode 100644 gitkraken-aur/gitkraken-url-handler.desktop delete mode 100755 gitkraken-aur/gitkraken.sh create mode 100644 gitkraken-aur/gk-cli-url-handler.desktop diff --git a/gitkraken-aur/.SRCINFO b/gitkraken-aur/.SRCINFO index 8c8a2d6..548dba3 100644 --- a/gitkraken-aur/.SRCINFO +++ b/gitkraken-aur/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = gitkraken pkgdesc = The intuitive, fast, and beautiful cross-platform Git client. pkgver = 12.2.1 - pkgrel = 1 + pkgrel = 2 url = https://www.gitkraken.com/ arch = x86_64 arch = aarch64 @@ -16,11 +16,13 @@ pkgbase = gitkraken options = !strip options = !debug source = GitKraken.desktop + source = gitkraken-url-handler.desktop + source = gk-cli-url-handler.desktop source = eula.html - source = gitkraken.sh - sha256sums = 078fa2cdf6826d956bf73387fb2ef147b1aca5f4a7a3cb4be8c71e6105fc9c6c + sha256sums = 17f8af55ea43dcbe7840f35ed4192be7f13fb6a6c9cd3ef15f686c03bb072aec + sha256sums = 3d42f9ef0ef05d8d145f2dddecb32db5c5d56f13b8233d5f761f85f92bdd1a4f + sha256sums = ad4cc27cc6bbb825765eb0c2c2991de14961ac02ff5859799f28cd179d17ada8 sha256sums = 5b7b39b331bc32a606e1e79c695df4519c9b220225be00fb34ef368c3af319a6 - sha256sums = c78ef86324946f856cc5c11549990722155a5e883dc94f92a95169c7ab5fb63e source_x86_64 = gitkraken-12.2.1-x86_64.tar.gz::https://api.gitkraken.dev/releases/production/linux/x64/12.2.1/gitkraken-amd64.tar.gz sha256sums_x86_64 = 939aa5dbffde7e76e8bff922f2b5febdcf01cc037e7770400c49e2523d8f132f source_aarch64 = gitkraken-12.2.1-aarch64.tar.gz::https://api.gitkraken.dev/releases/production/linux/arm64/12.2.1/gitkraken-aarch64.tar.gz diff --git a/gitkraken-aur/GitKraken.desktop b/gitkraken-aur/GitKraken.desktop old mode 100755 new mode 100644 index a49cb98..54a9739 --- a/gitkraken-aur/GitKraken.desktop +++ b/gitkraken-aur/GitKraken.desktop @@ -2,9 +2,8 @@ Name=GitKraken Comment=Unleash your repo GenericName=Git Client -Exec=gitkraken %f -Icon=gitkraken -Terminal=false +Exec=/opt/gitkraken/gitkraken %U +Icon=/usr/share/pixmaps/gitkraken.png Type=Application StartupNotify=true Categories=GNOME;GTK;Development;RevisionControl; diff --git a/gitkraken-aur/PKGBUILD b/gitkraken-aur/PKGBUILD index 4d59a9b..53dd1ff 100644 --- a/gitkraken-aur/PKGBUILD +++ b/gitkraken-aur/PKGBUILD @@ -8,9 +8,10 @@ # Contributor: Jeff Moody # Contributor: KokaKiwi # Contributor: iBernd81 +# Contributor: mosi0815 pkgname=gitkraken -pkgrel=1 +pkgrel=2 pkgver=12.2.1 pkgdesc="The intuitive, fast, and beautiful cross-platform Git client." url="https://www.gitkraken.com/" @@ -25,14 +26,16 @@ backup=() install='' source=( "GitKraken.desktop" + "gitkraken-url-handler.desktop" + "gk-cli-url-handler.desktop" "eula.html" - "gitkraken.sh" ) source_x86_64=("${pkgname}-${pkgver}-x86_64.tar.gz::https://api.gitkraken.dev/releases/production/linux/x64/${pkgver}/gitkraken-amd64.tar.gz") source_aarch64=("${pkgname}-${pkgver}-aarch64.tar.gz::https://api.gitkraken.dev/releases/production/linux/arm64/${pkgver}/gitkraken-aarch64.tar.gz") -sha256sums=('078fa2cdf6826d956bf73387fb2ef147b1aca5f4a7a3cb4be8c71e6105fc9c6c' - '5b7b39b331bc32a606e1e79c695df4519c9b220225be00fb34ef368c3af319a6' - 'c78ef86324946f856cc5c11549990722155a5e883dc94f92a95169c7ab5fb63e') +sha256sums=('17f8af55ea43dcbe7840f35ed4192be7f13fb6a6c9cd3ef15f686c03bb072aec' + '3d42f9ef0ef05d8d145f2dddecb32db5c5d56f13b8233d5f761f85f92bdd1a4f' + 'ad4cc27cc6bbb825765eb0c2c2991de14961ac02ff5859799f28cd179d17ada8' + '5b7b39b331bc32a606e1e79c695df4519c9b220225be00fb34ef368c3af319a6') sha256sums_x86_64=('939aa5dbffde7e76e8bff922f2b5febdcf01cc037e7770400c49e2523d8f132f') sha256sums_aarch64=('48c142f9ca2a75a121e881b99fedc08482774d70b27efa09c121128fe325660d') options=('!strip' '!debug') @@ -41,10 +44,28 @@ package() { install -d "$pkgdir"/opt cp -R "$srcdir"/gitkraken "$pkgdir"/opt/gitkraken + # chrome-sandbox must be setuid root for Electron's SUID sandbox; cp drops the + # bit. Restore it to match upstream's deb. namcap will flag this as a setuid + # binary -- that warning is expected and intentional, not a packaging mistake. + chmod 4755 "$pkgdir"/opt/gitkraken/chrome-sandbox + install -d "$pkgdir"/usr/bin + # CLI and URL entrypoint. Symlink to the launcher bundled in the tarball (as + # the upstream deb does) instead of carrying our own wrapper; it resolves its + # own real path, so it works unchanged from /opt. The URL-handler entries + # invoke this via `--uri=`. + ln -s /opt/gitkraken/resources/bin/gitkraken.sh "$pkgdir"/usr/bin/gitkraken - install -D -m755 "./gitkraken.sh" "${pkgdir}/usr/bin/gitkraken" install -D -m644 "./eula.html" "${pkgdir}/usr/share/licenses/${pkgname}/eula.html" + + # Desktop entries taken from upstream's deb: the visible launcher plus the two + # scheme handlers that make gitkraken:// and gk:// links (e.g. OAuth callbacks) + # register and open via `/usr/bin/gitkraken --uri=`. The launcher drops the + # deb's MimeType=text/plain, which wrongly associated GitKraken with every + # plaintext file (issue #260). install -D -m644 "./GitKraken.desktop" "${pkgdir}/usr/share/applications/GitKraken.desktop" + install -D -m644 "./gitkraken-url-handler.desktop" "${pkgdir}/usr/share/applications/gitkraken-url-handler.desktop" + install -D -m644 "./gk-cli-url-handler.desktop" "${pkgdir}/usr/share/applications/gk-cli-url-handler.desktop" + install -D -m644 "$pkgdir/opt/gitkraken/gitkraken.png" "$pkgdir/usr/share/pixmaps/gitkraken.png" } diff --git a/gitkraken-aur/gitkraken-url-handler.desktop b/gitkraken-aur/gitkraken-url-handler.desktop new file mode 100644 index 0000000..d61499f --- /dev/null +++ b/gitkraken-aur/gitkraken-url-handler.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=GitKraken +Comment=Unleash your repo +GenericName=Git Client +Exec=/usr/bin/gitkraken --uri=%U +Icon=/usr/share/pixmaps/gitkraken.png +Type=Application +NoDisplay=true +StartupNotify=true +Categories=GNOME;GTK;Development;RevisionControl; +MimeType=x-scheme-handler/gitkraken; +StartupWMClass=gitkraken diff --git a/gitkraken-aur/gitkraken.sh b/gitkraken-aur/gitkraken.sh deleted file mode 100755 index a609c9a..0000000 --- a/gitkraken-aur/gitkraken.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -if [[ "$#" == '1' && "${1:0:1}" != '-' ]]; then - exec /opt/gitkraken/gitkraken -p "$1" -else - exec /opt/gitkraken/gitkraken "$@" -fi diff --git a/gitkraken-aur/gk-cli-url-handler.desktop b/gitkraken-aur/gk-cli-url-handler.desktop new file mode 100644 index 0000000..e2de1c5 --- /dev/null +++ b/gitkraken-aur/gk-cli-url-handler.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=GitKraken +Comment=Unleash your repo +GenericName=Git Client +Exec=/usr/bin/gitkraken --uri=%U +Icon=/usr/share/pixmaps/gitkraken.png +Type=Application +NoDisplay=true +StartupNotify=true +Categories=GNOME;GTK;Development;RevisionControl; +MimeType=x-scheme-handler/gk; +StartupWMClass=gk From 13a97c9a95616a742d062a7d109b85e0d938e86b Mon Sep 17 00:00:00 2001 From: mosi0815 Date: Mon, 22 Jun 2026 15:08:52 +0200 Subject: [PATCH 2/3] Changed Icon from path to just the name. --- gitkraken-aur/GitKraken.desktop | 2 +- gitkraken-aur/PKGBUILD | 6 +++--- gitkraken-aur/gitkraken-url-handler.desktop | 2 +- gitkraken-aur/gk-cli-url-handler.desktop | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gitkraken-aur/GitKraken.desktop b/gitkraken-aur/GitKraken.desktop index 54a9739..6ec7ec6 100644 --- a/gitkraken-aur/GitKraken.desktop +++ b/gitkraken-aur/GitKraken.desktop @@ -3,7 +3,7 @@ Name=GitKraken Comment=Unleash your repo GenericName=Git Client Exec=/opt/gitkraken/gitkraken %U -Icon=/usr/share/pixmaps/gitkraken.png +Icon=gitkraken Type=Application StartupNotify=true Categories=GNOME;GTK;Development;RevisionControl; diff --git a/gitkraken-aur/PKGBUILD b/gitkraken-aur/PKGBUILD index 53dd1ff..ca500db 100644 --- a/gitkraken-aur/PKGBUILD +++ b/gitkraken-aur/PKGBUILD @@ -32,9 +32,9 @@ source=( ) source_x86_64=("${pkgname}-${pkgver}-x86_64.tar.gz::https://api.gitkraken.dev/releases/production/linux/x64/${pkgver}/gitkraken-amd64.tar.gz") source_aarch64=("${pkgname}-${pkgver}-aarch64.tar.gz::https://api.gitkraken.dev/releases/production/linux/arm64/${pkgver}/gitkraken-aarch64.tar.gz") -sha256sums=('17f8af55ea43dcbe7840f35ed4192be7f13fb6a6c9cd3ef15f686c03bb072aec' - '3d42f9ef0ef05d8d145f2dddecb32db5c5d56f13b8233d5f761f85f92bdd1a4f' - 'ad4cc27cc6bbb825765eb0c2c2991de14961ac02ff5859799f28cd179d17ada8' +sha256sums=('af2d2e5a44ec6e543c34f94cfb89fe34b6c05d2baf6ca9db5b6d332e4a5686e5' + '4342596839114228740e5d61cdc49fbe9e98d05d1aabe2694ffe9d48ffd4082e' + '4b3eaf932b79e8f1d6a6a6efd030e73cb544d3d0fbe6bf7b61b884f4c6042b0a' '5b7b39b331bc32a606e1e79c695df4519c9b220225be00fb34ef368c3af319a6') sha256sums_x86_64=('939aa5dbffde7e76e8bff922f2b5febdcf01cc037e7770400c49e2523d8f132f') sha256sums_aarch64=('48c142f9ca2a75a121e881b99fedc08482774d70b27efa09c121128fe325660d') diff --git a/gitkraken-aur/gitkraken-url-handler.desktop b/gitkraken-aur/gitkraken-url-handler.desktop index d61499f..23ea380 100644 --- a/gitkraken-aur/gitkraken-url-handler.desktop +++ b/gitkraken-aur/gitkraken-url-handler.desktop @@ -3,7 +3,7 @@ Name=GitKraken Comment=Unleash your repo GenericName=Git Client Exec=/usr/bin/gitkraken --uri=%U -Icon=/usr/share/pixmaps/gitkraken.png +Icon=gitkraken Type=Application NoDisplay=true StartupNotify=true diff --git a/gitkraken-aur/gk-cli-url-handler.desktop b/gitkraken-aur/gk-cli-url-handler.desktop index e2de1c5..d42f31c 100644 --- a/gitkraken-aur/gk-cli-url-handler.desktop +++ b/gitkraken-aur/gk-cli-url-handler.desktop @@ -3,7 +3,7 @@ Name=GitKraken Comment=Unleash your repo GenericName=Git Client Exec=/usr/bin/gitkraken --uri=%U -Icon=/usr/share/pixmaps/gitkraken.png +Icon=gitkraken Type=Application NoDisplay=true StartupNotify=true From dd7f574016e374e2f358581abfb73773f3fd2eb2 Mon Sep 17 00:00:00 2001 From: mosi0815 Date: Mon, 22 Jun 2026 20:11:55 +0200 Subject: [PATCH 3/3] Fixed .SRCINFO --- gitkraken-aur/.SRCINFO | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gitkraken-aur/.SRCINFO b/gitkraken-aur/.SRCINFO index 548dba3..7b17db4 100644 --- a/gitkraken-aur/.SRCINFO +++ b/gitkraken-aur/.SRCINFO @@ -19,9 +19,9 @@ pkgbase = gitkraken source = gitkraken-url-handler.desktop source = gk-cli-url-handler.desktop source = eula.html - sha256sums = 17f8af55ea43dcbe7840f35ed4192be7f13fb6a6c9cd3ef15f686c03bb072aec - sha256sums = 3d42f9ef0ef05d8d145f2dddecb32db5c5d56f13b8233d5f761f85f92bdd1a4f - sha256sums = ad4cc27cc6bbb825765eb0c2c2991de14961ac02ff5859799f28cd179d17ada8 + sha256sums = af2d2e5a44ec6e543c34f94cfb89fe34b6c05d2baf6ca9db5b6d332e4a5686e5 + sha256sums = 4342596839114228740e5d61cdc49fbe9e98d05d1aabe2694ffe9d48ffd4082e + sha256sums = 4b3eaf932b79e8f1d6a6a6efd030e73cb544d3d0fbe6bf7b61b884f4c6042b0a sha256sums = 5b7b39b331bc32a606e1e79c695df4519c9b220225be00fb34ef368c3af319a6 source_x86_64 = gitkraken-12.2.1-x86_64.tar.gz::https://api.gitkraken.dev/releases/production/linux/x64/12.2.1/gitkraken-amd64.tar.gz sha256sums_x86_64 = 939aa5dbffde7e76e8bff922f2b5febdcf01cc037e7770400c49e2523d8f132f