keybase / keybase/client

build error with desktop client on arm64

Open
#23,605 6 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
9.2k
Forks
1.3k
Avg merge
12h 58m
Merged PRs (30d)
56

Description

The build_binaries.sh script tries to fetch electron even if it is found on the system. This breaks builds on aarch64 as those distfiles don't exist. I installed electron both globally and locally, and the build_binaries.sh script appears to find it, it just also appears not to care.

```
...
KB: Babel config detected caller: @babel/node
KB babel.config.js for Electron
Browserslist: caniuse-lite is outdated. Please run next command `yarn upgrade`
Missing 'saltpack.icns' from yarn package arguments. Need an icon to associate ".saltpack" files with Electron on macOS, Windows, and Linux.
Finding electron version
Found electron version: 8.0.2
Starting webpack build
Injecting __VERSION__: 5.4.0-20200409032345+09a8a753da
Flags: { isDev: false, isHot: false }
Injecting defines: { __DEV__: false,
__HOT__: false,
__STORYBOOK__: false,
__STORYSHOT__: false,
__VERSION__: '"5.4.0-20200409032345+09a8a753da"' }
Packaging to /home/fuzzy/.local/golang/path/src/github.com/keybase/client/shared/desktop/release/linux-arm64
{ HTTPError: Response code 404 (Not Found)
at EventEmitter.emitter.on.response (/home/fuzzy/.local/golang/path/src/github.com/keybase/client/shared/node_modules/got/source/as-stream.js:35:24)
at EventEmitter.emit (events.js:189:13)
at module.exports (/home/fuzzy/.local/golang/path/src/github.com/keybase/client/shared/node_modules/got/source/get-response.js:22:10)
at ClientRequest.handleResponse (/home/fuzzy/.local/golang/path/src/github.com/keybase/client/shared/node_modules/got/source/request-as-event-emitter.js:155:5)
at Object.onceWrapper (events.js:277:13)
at ClientRequest.emit (events.js:194:15)
at ClientRequest.origin.emit.args [as emit] (/home/fuzzy/.local/golang/path/src/github.com/keybase/client/shared/node_modules/@szmarczak/http-timer/source/index.js:37:11)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
at TLSSocket.socketOnData (_http_client.js:442:20)
at TLSSocket.emit (events.js:189:13)
at addChunk (_stream_readable.js:284:12)
at readableAddChunk (_stream_readable.js:265:11)
at TLSSocket.Readable.push (_stream_readable.js:220:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:94:17)
name: 'HTTPError',
host: 'kbelectron.keybase.pub',
hostname: 'kbelectron.keybase.pub',
method: 'GET',
path: '/electron-download/v8.0.2/electron-v8.0.2-linux-arm64.zip',
socketPath: undefined,
protocol: 'https:',
url:
'https://kbelectron.keybase.pub/electron-download/v8.0.2/electron-v8.0.2-linux-arm64.zip',
gotOptions:
{ path: '/electron-download/v8.0.2/electron-v8.0.2-linux-arm64.zip',
protocol: 'https:',
slashes: true,
auth: null,
host: 'kbelectron.keybase.pub',
port: null,
hostname: 'kbelectron.keybase.pub',
hash: null,
search: null,
query: null,
pathname: '/electron-download/v8.0.2/electron-v8.0.2-linux-arm64.zip',
href:
'https://kbelectron.keybase.pub/electron-download/v8.0.2/electron-v8.0.2-linux-arm64.zip',
retry:
{ retries: [Function],
methods: [Set],
statusCodes: [Set],
errorCodes: [Set] },
headers:
{ 'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
'accept-encoding': 'gzip, deflate' },
hooks:
{ beforeRequest: [],
beforeRedirect: [],
beforeRetry: [],
afterResponse: [],
beforeError: [],
init: [] },
decompress: true,
throwHttpErrors: true,
followRedirect: true,
stream: true,
form: false,
json: false,
cache: false,
useElectronNet: false,
method: 'GET' },
statusCode: 404,
statusMessage: 'Not Found',
headers:
{ date: 'Thu, 09 Apr 2020 03:33:13 GMT',
'content-type': 'text/plain; charset=utf-8',
'content-length': '9',
connection: 'close',
server: 'nginx/1.14.0 (Ubuntu)',
'content-security-policy': 'frame-ancestors https://keybase.pub',
'x-frame-options': 'ALLOW-FROM https://keybase.pub',
'x-xss-protection': '1; mode=block',
'x-content-type-options': 'nosniff',
'x-robots-tag': 'noarchive, nofollow',
etag: 'W/"9-0gXL1ngzMqISxa6S1zx3F4wtLyg"' },
body: undefined }
...
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with build_binaries.sh and trace how it detects the installed Electron version before packaging the linux-arm64 desktop client. Reproduce the arm64 build with Electron installed locally or globally, then verify that it reuses the found version instead of requesting the unavailable electron-v8.0.2-linux-arm64.zip URL.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, shell
Domain
build-system, desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.