Date: Tuesday, September 7, 2021 @ 00:44:08 Author: tensor5 Revision: 1011902
archrelease: copy trunk to community-staging-x86_64 Added: keybase/repos/community-staging-x86_64/ keybase/repos/community-staging-x86_64/0001-Don-t-use-electron-to-build.patch (from rev 1011901, keybase/trunk/0001-Don-t-use-electron-to-build.patch) keybase/repos/community-staging-x86_64/0001-Maintain-current-contextIsolation-behavior-across-el.patch (from rev 1011901, keybase/trunk/0001-Maintain-current-contextIsolation-behavior-across-el.patch) keybase/repos/community-staging-x86_64/PKGBUILD (from rev 1011901, keybase/trunk/PKGBUILD) keybase/repos/community-staging-x86_64/kbfs.install (from rev 1011901, keybase/trunk/kbfs.install) keybase/repos/community-staging-x86_64/keybase-gui (from rev 1011901, keybase/trunk/keybase-gui) -----------------------------------------------------------------+ 0001-Don-t-use-electron-to-build.patch | 67 ++++ 0001-Maintain-current-contextIsolation-behavior-across-el.patch | 67 ++++ PKGBUILD | 144 ++++++++++ kbfs.install | 15 + keybase-gui | 18 + 5 files changed, 311 insertions(+) Copied: keybase/repos/community-staging-x86_64/0001-Don-t-use-electron-to-build.patch (from rev 1011901, keybase/trunk/0001-Don-t-use-electron-to-build.patch) =================================================================== --- community-staging-x86_64/0001-Don-t-use-electron-to-build.patch (rev 0) +++ community-staging-x86_64/0001-Don-t-use-electron-to-build.patch 2021-09-07 00:44:08 UTC (rev 1011902) @@ -0,0 +1,67 @@ +From f13853908947e47a7853125865c98a406cd7772f Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwart...@gmail.com> +Date: Thu, 21 Jun 2018 05:00:37 -0400 +Subject: [PATCH] Don't use electron to build + +--- + shared/desktop/package.desktop.tsx | 4 ++-- + shared/desktop/yarn-helper/index.tsx | 2 -- + shared/package.json | 1 - + 3 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/shared/desktop/package.desktop.tsx b/shared/desktop/package.desktop.tsx +index b10bb10295..f4b5fc3e6a 100644 +--- a/shared/desktop/package.desktop.tsx ++++ b/shared/desktop/package.desktop.tsx +@@ -133,7 +133,7 @@ function main() { + // use the same version as the currently-installed electron + console.log('Finding electron version') + try { +- packagerOpts.electronVersion = require('../package.json').devDependencies.electron ++ packagerOpts.electronVersion = 'unused string' + console.log('Found electron version:', packagerOpts.electronVersion) + } catch (err) { + console.log("Couldn't parse yarn list to find electron:", err) +@@ -181,7 +181,7 @@ function startPack() { + .catch(postPackError) + }) + }) +- } else { ++ } else if (false) { + pack(platform, arch) + .then(postPack(platform, arch)) + .catch(postPackError) +diff --git a/shared/desktop/yarn-helper/index.tsx b/shared/desktop/yarn-helper/index.tsx +index c7b04af258..a752ccd8bc 100644 +--- a/shared/desktop/yarn-helper/index.tsx ++++ b/shared/desktop/yarn-helper/index.tsx +@@ -1,6 +1,5 @@ + // Helper for cross platform yarn run script commands + import buildCommands from './build' +-import electronComands from './electron' + import fontCommands from './font' + import prettierCommands from './prettier' + import {execSync} from 'child_process' +@@ -14,7 +13,6 @@ const [, , command, ...rest] = process.argv + const commands = { + ...buildCommands, + ...fontCommands, +- ...electronComands, + ...prettierCommands, + help: { + code: () => { +diff --git a/shared/package.json b/shared/package.json +index 84e9247190..e5a9045157 100644 +--- a/shared/package.json ++++ b/shared/package.json +@@ -201,7 +201,6 @@ + "cross-env": "7.0.2", + "css-loader": "3.2.0", + "del": "3.0.0", +- "electron": "10.1.1", + "electron-packager": "14.0.6", + "eslint": "6.4.0", + "eslint-plugin-filenames": "1.3.2", +-- +2.28.0 + Copied: keybase/repos/community-staging-x86_64/0001-Maintain-current-contextIsolation-behavior-across-el.patch (from rev 1011901, keybase/trunk/0001-Maintain-current-contextIsolation-behavior-across-el.patch) =================================================================== --- community-staging-x86_64/0001-Maintain-current-contextIsolation-behavior-across-el.patch (rev 0) +++ community-staging-x86_64/0001-Maintain-current-contextIsolation-behavior-across-el.patch 2021-09-07 00:44:08 UTC (rev 1011902) @@ -0,0 +1,67 @@ +From c9f8ba2091da223fa703923e36afa4ba5f1731aa Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwa...@archlinux.org> +Date: Wed, 23 Jun 2021 19:06:12 -0400 +Subject: [PATCH] Maintain current contextIsolation behavior across electron 11 + vs. >=12 + +For what this does, see: + +https://www.electronjs.org/docs/breaking-changes#default-changed-contextisolation-defaults-to-true +https://github.com/electron/electron/blob/main/docs/tutorial/context-isolation.md + +In electron 11, this logged: + +> The default of contextIsolation is deprecated and will be changing from +> false to true in a future release of Electron. + +In electron 12, Keybase refused to start. Explicitly specifying the old +behavior makes Keybase run again. + +"for the security of your application" Keybase may wish in future to +restructure and support context isolation, but that would be in the +future. +--- + shared/desktop/app/main-window.desktop.tsx | 1 + + shared/desktop/app/menu-bar.desktop.tsx | 1 + + shared/desktop/app/node.desktop.tsx | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/shared/desktop/app/main-window.desktop.tsx b/shared/desktop/app/main-window.desktop.tsx +index a93ffa11a7..9ef4f6f288 100644 +--- a/shared/desktop/app/main-window.desktop.tsx ++++ b/shared/desktop/app/main-window.desktop.tsx +@@ -275,6 +275,7 @@ export default () => { + minWidth: 740, + show: false, + webPreferences: { ++ contextIsolation: false, + backgroundThrottling: false, + devTools: showDevTools, + enableRemoteModule: true, +diff --git a/shared/desktop/app/menu-bar.desktop.tsx b/shared/desktop/app/menu-bar.desktop.tsx +index 1597c020bd..e1aa62a854 100644 +--- a/shared/desktop/app/menu-bar.desktop.tsx ++++ b/shared/desktop/app/menu-bar.desktop.tsx +@@ -40,6 +40,7 @@ export default (menubarWindowIDCallback: (id: number) => void) => { + resizable: false, + transparent: true, + webPreferences: { ++ contextIsolation: false, + enableRemoteModule: true, + nodeIntegration: true, + nodeIntegrationInWorker: false, +diff --git a/shared/desktop/app/node.desktop.tsx b/shared/desktop/app/node.desktop.tsx +index 6368bc18b9..7c8c4a34d5 100644 +--- a/shared/desktop/app/node.desktop.tsx ++++ b/shared/desktop/app/node.desktop.tsx +@@ -365,6 +365,7 @@ const plumbEvents = () => { + show: false, // Start hidden and show when we actually get props + titleBarStyle: 'customButtonsOnHover' as const, + webPreferences: { ++ contextIsolation: false, + enableRemoteModule: true, + nodeIntegration: true, + nodeIntegrationInWorker: false, +-- +2.32.0 + Copied: keybase/repos/community-staging-x86_64/PKGBUILD (from rev 1011901, keybase/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2021-09-07 00:44:08 UTC (rev 1011902) @@ -0,0 +1,144 @@ +# Maintainer: Eli Schwartz <eschwa...@archlinux.org> +# Contributor: Felix Yan <felixonm...@archlinux.org> +# Contributor: Michael Hansen <zrax0111 gmail com> + +pkgbase=keybase +pkgname=('keybase' 'kbfs' 'keybase-gui') +pkgdesc='CLI tool for GPG with keybase.io' +pkgver=5.7.1 +pkgrel=3 +arch=('x86_64') +url='https://keybase.io/' +license=('BSD') +# git is needed for yarn... +makedepends=('git' 'go' 'yarn') +source=("https://github.com/keybase/client/releases/download/v${pkgver}/${pkgbase}-v${pkgver}.tar.xz"{,.sig} + "keybase-gui" + "0001-Maintain-current-contextIsolation-behavior-across-el.patch" + "0001-Don-t-use-electron-to-build.patch") +sha512sums=('1cdf93a2e52e16eedd7fe4544a2b1f0e6f6d47802e17e029ae08b19302c44d5cca0b297aa827332a62202045f91c7c6b1d9d627f2915fcdb4cc2a77076adbd0d' + 'SKIP' + 'bdecad57f8703eb6011b0c9ff238b9f3d78192031adfb5a27a7e6910119c600726b87aaacada88877eaeddcd6134fbe72b014bcaeb6cc7563c3753fcb33c52c9' + '5cb3d93c4bb468fd47e1670f73cc3b8be14977ccf563a47d776285b6b9d96042647062427e58bd981727362caa23d17acdc0152dfd915efeeb6c4e76ca76ca65' + 'f759f69b774200261687842c66902a3c45638bb012ced9bd83d27491c8a0bbc0bc744dbb83ad7672d443f32d7303c15aeb0ded7a1a0d7ab56e7b1c1b64e263c3') +b2sums=('8f2501c3db8f0d3f82a5a597d1654af69a7d603b96d6143dc7df443290eb6b2ee299cc300f41061236b2738bc2a54018bc55705ddb903df326fd8850c12c506f' + 'SKIP' + '1ecf08e4a0b2836828fc4f9283a69e1fbda6f268195ae56433050d54070038aacf1ae3057202324c678b242c88345cc8f453c7798129753f083c33db256517a4' + '67f416c59b549606d037167c796c5b99f0ca9158fb767d52c101f41db6d31927b57618efb4d6eaf590cbd3c7aab4dd71a64bc3b52580e2383f5389c95264a499' + '02d7876fb0d68b05e9ee262925a063049bfa2e5e063789008c4c74e406084d4441d2c860ecb2b08596f9d9a8c9a6e9136a2cdbd8312bcbf376d9d6e6c811bcfc') +validpgpkeys=('222B85B0F90BE2D24CFEB93F47484E50656D16C7') # Keybase.io Code Signing (v1) <c...@keybase.io> + +prepare() { + cd client-v${pkgver} + + export GOPATH="${srcdir}/.gopath" + mkdir -p "${GOPATH}"/src/github.com/keybase + ln -sf "${PWD}" "${GOPATH}"/src/github.com/keybase/client + + # Fix paths to run electron /path/to/app (or our minimal wrapper script). + # Also wire up "hideWindow" when running as a service or via XDG autostart. + sed -i 's@/opt/keybase/Keybase@/usr/bin/electron13 /usr/share/keybase-app@' \ + packaging/linux/systemd/keybase.gui.service + sed -i 's/run_keybase/keybase-gui/g' \ + packaging/linux/keybase.desktop go/install/install_unix.go + + patch -p1 -i ../0001-Don-t-use-electron-to-build.patch + # New versions of electron tighten sandboxing and applications need to adapt. + # Keybase did not, so loosen this back to pre v12 levels + # https://github.com/keybase/client/pull/24551 + patch -p1 -i ../0001-Maintain-current-contextIsolation-behavior-across-el.patch +} + +build() { + cd client-v${pkgver}/go/keybase + + # None of this should be necessary, but we duplicate the work of + # makepkg.conf here since golang CGO can't be bothered to respect + # standardized CFLAGS and we don't have native packaging integration for + # either this or the go-specific flags. Must be done here to make sure + # we're using debug or !buildflags. + + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" + + export GO111MODULE=off + + export GOPATH="${srcdir}/.gopath" + go build -a -tags production -o ../bin/keybase github.com/keybase/client/go/keybase + go build -a -tags production -o ../bin/kbnm github.com/keybase/client/go/kbnm + go build -a -tags production -o ../bin/kbfsfuse github.com/keybase/client/go/kbfs/kbfsfuse + go build -a -tags production -o ../bin/git-remote-keybase github.com/keybase/client/go/kbfs/kbfsgit/git-remote-keybase + + cd ../../shared + yarn install + yarn run package --appVersion $pkgver +} + +package_keybase() { + depends=('gnupg') + optdepends=('kbfs: for the fuse-based fileystem and the encryption subcommand') + + cd client-v${pkgver} + + install -Dm755 -t "${pkgdir}"/usr/bin/ go/bin/{keybase,kbnm} + + # native messaging whitelists + KBNM_INSTALL_ROOT=1 KBNM_INSTALL_OVERLAY="${pkgdir}" "${pkgdir}/usr/bin/kbnm" install + # systemd activation + install -Dm644 packaging/linux/systemd/keybase.service "${pkgdir}"/usr/lib/systemd/user/keybase.service + install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE +} + +package_kbfs() { + pkgdesc="The Keybase filesystem" + url="https://keybase.io/docs/kbfs" + depends=('fuse' 'keybase') + install=kbfs.install + + cd client-v${pkgver} + + install -Dm755 -t "${pkgdir}"/usr/bin/ go/bin/{kbfsfuse,git-remote-keybase} + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + # more systemd activation + install -Dm644 packaging/linux/systemd/kbfs.service "$pkgdir"/usr/lib/systemd/user/kbfs.service +} + +package_keybase-gui() { + pkgdesc="GUI frontend for GPG with keybase.io" + depends=('electron13' 'keybase' 'kbfs') + + cd client-v${pkgver}/ + + install -Dm644 packaging/linux/x-saltpack.xml \ + "${pkgdir}"/usr/share/mime/packages/x-saltpack.xml + install -Dm644 packaging/linux/keybase.desktop \ + "${pkgdir}"/usr/share/applications/keybase.desktop + # more systemd activation + install -Dm644 packaging/linux/systemd/keybase.gui.service \ + "${pkgdir}"/usr/lib/systemd/user/keybase.gui.service + # wrapper for electron + install -Dm755 "${srcdir}"/keybase-gui "${pkgdir}"/usr/bin/keybase-gui + + install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + + for i in 16 32 128 256 512 ; do + install -Dm644 media/icons/Keybase.iconset/icon_${i}x${i}.png \ + "${pkgdir}"/usr/share/icons/hicolor/${i}x${i}/apps/keybase.png + install -Dm644 media/icons/Saltpack.iconset/icon_${i}x${i}.png \ + "${pkgdir}"/usr/share/icons/hicolor/${i}x${i}/mimetypes/application-x-saltpack.png + done + # ??? + install -Dm644 media/icons/Keybase.iconset/icon_32...@2x.png \ + "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/keybase.png + install -Dm644 media/icons/Keybase.iconset/icon_512x...@2x.png \ + "${pkgdir}"/usr/share/icons/hicolor/1024x1024/apps/keybase.png + + # the app itself + cd shared/desktop/build + rm -rf desktop/sourcemaps/ + mkdir -p "${pkgdir}"/usr/share/keybase-app + cp -r * "${pkgdir}"/usr/share/keybase-app/ +} Copied: keybase/repos/community-staging-x86_64/kbfs.install (from rev 1011901, keybase/trunk/kbfs.install) =================================================================== --- community-staging-x86_64/kbfs.install (rev 0) +++ community-staging-x86_64/kbfs.install 2021-09-07 00:44:08 UTC (rev 1011902) @@ -0,0 +1,15 @@ +post_install() { + cat << '__EOF__' +warning: the keybase-redirector is not included, so you will need to define +your `keybase config` mountdir to something you like (or install the +redirector on your own). + +See: https://github.com/keybase/client/issues/19840#issuecomment-533842074 +__EOF__ +} + +post_upgrade() { + if (( $(vercmp 4.7.1-1 $2) > 0 )); then + post_install + fi +} Copied: keybase/repos/community-staging-x86_64/keybase-gui (from rev 1011901, keybase/trunk/keybase-gui) =================================================================== --- community-staging-x86_64/keybase-gui (rev 0) +++ community-staging-x86_64/keybase-gui 2021-09-07 00:44:08 UTC (rev 1011902) @@ -0,0 +1,18 @@ +#!/bin/sh + +keybase ctl init + +if ! keybase version --assert-matching >/dev/null 2>&1; then + echo "restarting outdated services..." + systemctl --user daemon-reload + systemctl --user restart keybase kbfs +else + systemctl --user start keybase kbfs +fi + +if [ $# -gt 0 ] || systemctl --user is-active --quiet keybase.gui; then + exec electron13 /usr/share/keybase-app "$@" +else + systemctl --user import-environment KEYBASE_AUTOSTART + exec systemctl start --user --wait keybase.gui +fi