14 Commits
Author SHA1 Message Date
Siddarth Kumar 0f7aa219a9 pcscd: auto exit and use a lockfile
fixes `libusb` being busy when app is closed and started again.
```
starting pcscd with /tmp/.mount_StatusKDpnfI/usr/bin/pcscd -f &
00000000 [136864157226944] ccid_usb.c:672:OpenUSBByName() Can't claim interface 3/5: LIBUSB_ERROR_BUSY
00000172 [136864157226944] ifdhandler.c:160:CreateChannelByNameOrChannel() failed
00000003 [136864157226944] ../src/readerfactory.c:1132:RFInitializeReader() Open Port 0x200000 Failed (usb:058f/9540:libudev:0:/dev/bus/usb/003/005)
00000003 [136864157226944] ../src/readerfactory.c:371:RFAddReader() Alcor Micro AU9540 init failed.
00000043 [136864157226944] ../src/hotplug_libudev.c:517:HPAddDevice() Failed adding USB device: Alcor Micro AU9540
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
```

https://man.freebsd.org/cgi/man.cgi?query=pcscd&sektion=8&manpath=freebsd-release-ports#end

<img width="713" height="153" alt="Screenshot 2025-09-04 at 12 11 18 PM" src="https://github.com/user-attachments/assets/78aa1104-7791-4e6e-9a7f-391466b089d2" />

fixes: https://github.com/status-im/status-desktop/issues/18635
2025-11-28 21:45:25 -05:00
Lukáš Tinkl 93ffeafed8 feat: new language service and selector
- introduce a new, pure QML component for selecting from available
languages/translations (`StatusLanguageSelector`) and a thin
`LanguageService/Model` for setting/discovering the translation(s)
- the discovery/setting works on a simple list of language codes; the
metadata for the language model is added by `QLocale`
- make it possible to switch the language right from the
onboarding/login screen
- adjust Settings/Language to use the new language selector
- adjust the current `LanguageStore` to use the existing
`localAppSettings` for storage, and `LanguageService` singleton for
discovery
- add `StatusLanguageSelector` to Storybook
- cleanup old NIM code

Fixes #18330
Fixes #18884
2025-09-29 18:03:36 +02:00
Siddarth Kumar f5d90e5dc4 browser: enable sandbox and fix v8 snapshot
To fix Qt WebEngine errors like :
[0912/162517.794426:FATAL:v8_initializer.cc(625)] Error loading V8 startup snapshot file
and
Render process exited with code 1002 (abnormal exit)
2025-09-12 21:02:16 +05:30
jakub c5d2abbe3a fix(appimage): bundle dash shell for xdg-open wrapper
This fixes an error on NixOS when trying to Connect a dApp via Status Connector
which should open the Status Wallet Connector chrome plugin page but fails with:
```
/nix/store/1q9lw4r2mbap8rsr8cja46nap6wvrw2p-bash-interactive-5.2p37/bin/bash: symbol lookup error:
/nix/store/1q9lw4r2mbap8rsr8cja46nap6wvrw2p-bash-interactive-5.2p37/bin/bash: undefined symbol: rl_trim_arg_from_keyseq
```
Resolves:
https://github.com/status-im/status-desktop/issues/18451

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2025-07-29 15:19:05 +02:00
Siddarth Kumar 17f3b83cac ci: upgrade to QT6 and Ubuntu 22.04
- `QT6` setup runs the newer ubuntu `22.04` linux image
- `QT6` setup also uses a newer `linuxdeployqt` from here https://github.com/probonopd/linuxdeployqt/releases/tag/continuous
- `E2E` tests were updated to work with QT `6.9.0`.
- introduce a `DummyCompatImports.qml` to fix runtime issues on `linux`.
- introduced `STATUSQ_SANITY_CHECKER_EXCLUDE_FILES ` to exclude `qml` files from sanity checker.
- unused `cpp` jobs have been deleted

related issue : https://github.com/status-im/status-desktop/issues/17639
2025-06-26 18:21:56 +05:30
Siddarth Kumar c30b5475e7 feat(keycard): use bundled pcscd and psclite 2025-04-02 16:52:33 +04:00
Alex Jbanca 92d8d601e5 fix: Enable WebEngineLoader qml tests 2024-10-10 10:29:12 +03:00
Alex Jbanca 0c0b2292bc fix: WebEngineView with qt 5.15.2
Adding `--disable-seccomp-filter-sandbox` flag to chromium as a workaround for https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1944468
2024-10-10 10:29:12 +03:00
Anton Iakimov 6e276b605f ci: fix more nix build issues 2024-06-27 12:16:31 +02:00
Michael Bradley, Jr 37c51cc25f build: use same container as Jenkins CI for local packaged builds on Linux
Make the docker-related logic for doing a local packaged build on Linux match
with the Jenkins CI build for Linux.

Also fix the problems with packaged builds for Linux (local or CI) where
gstreamer errors were displayed in the terminal shortly after app start/login
and there was no sound output.
2021-04-27 13:49:46 -05:00
Richard Ramos 3e2b5360be fix: set default language 2021-02-22 09:57:56 -05:00
Michael Bradley, Jr f77b27854d build: set QT_QPA_PLATFORM in AppRun of packaged builds for Linux 2021-02-01 12:02:07 -05:00
Michael Bradley, Jr ce7e6b8d51 chore: refactor Linux and macOS build/packaging steps
Replaces PR #105.

Implement a `pkg-macos` target that ultimately results in `Status.dmg` being
written to `pkg/`. Due to [limitations][limits] of the OpenSSL `.dylib`s in
`/usr/lib/` on macOS, `libssl.a` and `libcrypto.a` are statically linked into
`bin/nim_status_client` from a [Homebrew][brew] "bottle" that is compatible
with macOS 10.13 (the oldest macOS version compatible with Qt v5.14).

`pkg-macos` creates an `.app` bundle layout in `tmp/macos/dist` based partly on
information in a very helpful [StackOverflow answer][so-answer]. Note the part
of the answer (toward the end) that explains a problem with the working
directory and how to fix it. That's the reason for the `nim_status_client.sh`
script introduced in this commit (it gets copied into the bundle). It's also
the reason for having `Info.plist` copied into the bundle before `macdeployqt`
is run (see below) and then overwriting it with `Info.runner.plist` before
creating the `.dmg` file. The app icons file `status-icon.icns` was taken from
`deployment/macos/` in the [status-react][sr] repo.

The [`macdeployqt`][macdeployqt] tool is used to copy the needed portions of Qt
into the bundle; it automatically updates `rpath`, etc. so the
`nim_status_client` executable in the bundle can locate the libs within the
bundle.

`macdeployqt` is run twice, for the "outer" and "inner" `.app` bundles,
because of an apparent bug in `macdeployqt` that results in QtWebEngine related
resources not being processed correctly on the first pass. This results in some
bloat in the final bundle but it seems unavoidable at present.

The [create-dmg][cdmg] tool is used to package the bundle into a `.dmg`
file. There are two reasons for this:
1. It produces a nice looking icon for the `.dmg` that overlays the Status logo
on an external disk icon.
2. `Info.plist` needs to be overwritten after running `macdeployqt` (see
explanation above) but before creating the `.dmg` file. If we passed the `-dmg`
cli option to `macdeployqt` to have it generate the `.dmg` file then it
wouldn't be possible to overwrite `Info.plist`.

So there is a cosmetic reason and a practical reason for using another
tool. Probably the biggest downside is that `create-dmg` is implemented in
Node.js so it needs to be installed with `npm`; that's the reason this commit
introduces `package.json`, etc. Note that zero code from `node_modules` ends up
in the `.app` bundle or the `.dmg` file.

Code signing of the macOS `.app` bundle and `.dmg` is attempted if the
environment variable `MACOS_CODESIGN_IDENT` is defined. In that case, the
environment variable `MACOS_KEYCHAIN_OPT` may optionally be defined with the
path to a preferred keychain database file.

Refactor a number of sections in the Makefile for consistency's sake, e.g. the
`appimage` target becomes `pkg-linux` and ultimately results in
`NimStatusClient-x86_64.AppImage` being written to `pkg/`.

Make a number of changes to bring the Linux packaging steps up-to-date and use
the `-qmlimport` cli option of `linuxdeployqt` to simplify resolution of Qt
plugins.

Note that `make pkg` will correctly resolve to `make pkg-linux` or `make
pkg-macos` depending on the OS in use.

Consistently use lower-case "c" in the name of *components* directories and
imports.

[limits]: https://developer.apple.com/forums/thread/124782
[brew]: https://brew.sh/
[so-answer]: https://stackoverflow.com/a/3251285
[sr]: https://github.com/status-im/status-react/tree/develop/deployment/macos
[macdeployqt]: https://doc.qt.io/qt-5/macos-deployment.html
[cdmg]: https://github.com/sindresorhus/create-dmg
2020-06-22 10:53:57 -05:00
Richard Ramos 5710ad8079 ft: AppImage 2020-05-15 18:03:55 -04:00