Compare commits

..

19 Commits

Author SHA1 Message Date
Michael Telatynski
13157b6a72 Merge branch 'develop' of ssh://github.com/vector-im/element-desktop into renovate/electron-builder
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	package.json
#	yarn.lock
2025-12-04 15:34:04 +00:00
Michael Telatynski
1d236b691f Update to electron-builder 26.3.4
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-12-04 15:31:54 +00:00
Michael Telatynski
3dbcc4233b Merge conflict 2025-12-02 14:10:17 +00:00
Michael Telatynski
0d800f9999 Try with yarn berry 2025-12-02 14:07:21 +00:00
Michael Telatynski
d7a95473df Update to 26.3.3
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-12-02 09:56:45 +00:00
Michael Telatynski
22b5cc730e Revert back to yarn classic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-28 09:34:36 +00:00
Michael Telatynski
62546482f7 Bump electron-builder to 26.3.2
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-28 09:09:20 +00:00
Michael Telatynski
e84aa49d86 Fix Windows test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 12:49:00 +00:00
Michael Telatynski
e9547d1a83 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 12:27:46 +00:00
Michael Telatynski
ff44baaf96 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 12:14:57 +00:00
Michael Telatynski
a485adb121 Bump corepack on windows
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:58:59 +00:00
Michael Telatynski
ce5cb414a3 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:53:20 +00:00
Michael Telatynski
201a5005a8 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:45:57 +00:00
Michael Telatynski
639ac560ec Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:22:06 +00:00
Michael Telatynski
360fddeac8 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:12:57 +00:00
Michael Telatynski
9bddd89d7d Run corepack enable in CI
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 11:03:24 +00:00
Michael Telatynski
85b165069c Merge branch 'develop' of ssh://github.com/vector-im/element-desktop into renovate/electron-builder
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	yarn.lock
2025-11-27 10:58:53 +00:00
Michael Telatynski
48c771414d Migrate to yarn berry
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-11-27 10:48:18 +00:00
renovate[bot]
746f4aa30f Update electron-builder to v26.3.0 2025-11-27 10:18:01 +00:00
30 changed files with 10196 additions and 7719 deletions

View File

@@ -53,9 +53,10 @@ jobs:
runs-on: ubuntu-24.04
if: ${{ !cancelled() }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
cache: "yarn"
node-version: "lts/*"

View File

@@ -105,7 +105,7 @@ jobs:
}
}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
with:
repository: element-hq/element-desktop
ref: ${{ inputs.ref }}
@@ -122,7 +122,8 @@ jobs:
path: |
./.hak
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -75,7 +75,7 @@ jobs:
runs-on: macos-14 # M1
environment: ${{ inputs.sign && 'packages.element.io' || '' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
with:
repository: element-hq/element-desktop
ref: ${{ inputs.ref }}
@@ -105,7 +105,8 @@ jobs:
with:
python-version: "3.13"
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -54,9 +54,10 @@ jobs:
outputs:
nightly-version: ${{ steps.versions.outputs.nightly }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -36,11 +36,15 @@ jobs:
name: Test ${{ inputs.project }}
runs-on: ${{ inputs.runs-on }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
with:
repository: ${{ github.repository == 'element-hq/element-web-pro' && 'element-hq/element-desktop' || github.repository }}
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
# https://github.com/actions/setup-node/issues/480#issuecomment-2907867335
- run: npm install -g corepack@0.34.5 --force
if: runner.os == 'Windows'
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -108,7 +108,7 @@ jobs:
}
}
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
with:
repository: element-hq/element-desktop
ref: ${{ inputs.ref }}
@@ -148,7 +148,10 @@ jobs:
rustup default stable
rustup target add ${{ steps.config.outputs.target }}
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
# https://github.com/actions/setup-node/issues/480#issuecomment-2907867335
- run: npm install -g corepack@0.34.5 --force
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: .node-version
cache: "yarn"

View File

@@ -19,7 +19,7 @@ jobs:
contents: read
packages: write
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3
@@ -52,7 +52,7 @@ jobs:
- name: Extract metadata for Docker
id: meta
if: github.event_name != 'pull_request'
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5
uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |

View File

@@ -9,9 +9,10 @@ jobs:
name: "Typescript Syntax Check"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -25,7 +26,7 @@ jobs:
i18n_lint:
name: "i18n Check"
uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@main
uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@t3chguy/corepack
permissions:
pull-requests: read
with:
@@ -35,9 +36,10 @@ jobs:
name: "ESLint"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -53,9 +55,10 @@ jobs:
name: "Workflow Lint"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: package.json
cache: "yarn"
@@ -71,9 +74,10 @@ jobs:
name: "Analyse Dead Code"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
- run: corepack enable
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6
with:
node-version-file: package.json
cache: "yarn"

View File

@@ -12,7 +12,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10
- uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10
with:
operations-per-run: 250
days-before-issue-stale: -1

1
.gitignore vendored
View File

@@ -19,3 +19,4 @@ yarn-error.log
/scripts/hak/**/*.js
.DS_Store
/playwright-report
/.yarn/install-state.gz

1
.yarnrc.yml Normal file
View File

@@ -0,0 +1 @@
nodeLinker: node-modules

View File

@@ -1,53 +1,3 @@
Changes in [1.12.7](https://github.com/element-hq/element-desktop/releases/tag/v1.12.7) (2025-12-16)
====================================================================================================
## ✨ Features
* Replace legacy icons with compound ([#31424](https://github.com/element-hq/element-web/pull/31424)). Contributed by @t3chguy.
* Update polls UX to match EX Mobile and improve accessibility ([#31245](https://github.com/element-hq/element-web/pull/31245)). Contributed by @langleyd.
* Add option to enable read receipt and marker when user interact with UI ([#31353](https://github.com/element-hq/element-web/pull/31353)). Contributed by @florianduros.
* Introduce a hook to auto dispose view models ([#31178](https://github.com/element-hq/element-web/pull/31178)). Contributed by @MidhunSureshR.
* Update settings toggles to use consistent design across app. ([#30169](https://github.com/element-hq/element-web/pull/30169)). Contributed by @Half-Shot.
* Add ability to the room view to hide widgets ([#31400](https://github.com/element-hq/element-web/pull/31400)). Contributed by @langleyd.
* call: Pass the echo cancellation and noise suppression settings to EC ([#31317](https://github.com/element-hq/element-web/pull/31317)). Contributed by @BillCarsonFr.
* Tweak rendering of icons for a11y ([#31358](https://github.com/element-hq/element-web/pull/31358)). Contributed by @t3chguy.
* Implement new `renderNotificationDecoration` from module API ([#31389](https://github.com/element-hq/element-web/pull/31389)). Contributed by @MidhunSureshR.
* Replace more icons with compound ([#31381](https://github.com/element-hq/element-web/pull/31381)). Contributed by @t3chguy.
* Replace more icons with compound ([#31378](https://github.com/element-hq/element-web/pull/31378)). Contributed by @t3chguy.
* `<Banner/>`: Hide `Dismiss` button if `onClose` handler is not provided. ([#31362](https://github.com/element-hq/element-web/pull/31362)). Contributed by @kaylendog.
* Replace batch of legacy icons with compound design tokens ([#31360](https://github.com/element-hq/element-web/pull/31360)). Contributed by @t3chguy.
* MSC4380: Invite blocking ([#31268](https://github.com/element-hq/element-web/pull/31268)). Contributed by @richvdh.
* Tweak rendering of icons for accessibility ([#31346](https://github.com/element-hq/element-web/pull/31346)). Contributed by @t3chguy.
* Implement a shared `Banner` component. ([#31266](https://github.com/element-hq/element-web/pull/31266)). Contributed by @kaylendog.
* Allow the Login screen to use the dark theme ([#31293](https://github.com/element-hq/element-web/pull/31293)). Contributed by @richvdh.
## 🐛 Bug Fixes
* [Backport staging] Amend e2e normal icon from lock-solid to info ([#31559](https://github.com/element-hq/element-web/pull/31559)). Contributed by @t3chguy.
* [Backport staging] Fix CSS specificity causing icon issues in e2e verification ([#31548](https://github.com/element-hq/element-web/pull/31548)). Contributed by @RiotRobot.
* [Backport staging] Fix e2e icons in CompleteSecurity \& SetupEncryptionBody ([#31522](https://github.com/element-hq/element-web/pull/31522)). Contributed by @RiotRobot.
* [Backport staging] Remove an extra paragraph in advanced room settings ([#31511](https://github.com/element-hq/element-web/pull/31511)). Contributed by @RiotRobot.
* [Backport staging] Don't show the key storage out of sync toast when backup disabled ([#31507](https://github.com/element-hq/element-web/pull/31507)). Contributed by @RiotRobot.
* Fix composer button visibility in contrast colour mode ([#31255](https://github.com/element-hq/element-web/pull/31255)). Contributed by @t3chguy.
* Ensure correct room version is used and permissions are appropriately sert when creating rooms ([#31464](https://github.com/element-hq/element-web/pull/31464)). Contributed by @Half-Shot.
* Fix e2e icon rendering ([#31454](https://github.com/element-hq/element-web/pull/31454)). Contributed by @t3chguy.
* EventIndexer: ensure we add initial checkpoints when the db is first opened ([#31448](https://github.com/element-hq/element-web/pull/31448)). Contributed by @richvdh.
* Fix `/join <alias>` command failing due to race condition ([#31433](https://github.com/element-hq/element-web/pull/31433)). Contributed by @MidhunSureshR.
* MessageEventIndexDialog: distinguish indexed rooms ([#31436](https://github.com/element-hq/element-web/pull/31436)). Contributed by @richvdh.
* Move `EditInPlace` out of `Form` (Fixes: reloading EW on EC url update) ([#31434](https://github.com/element-hq/element-web/pull/31434)). Contributed by @toger5.
* Fixes issue where cursor would jump to the beginning of the input field after converting Japanese text and pressing Tab ([#31432](https://github.com/element-hq/element-web/pull/31432)). Contributed by @shinaoka.
* Fix widgets getting stuck in loading states ([#31314](https://github.com/element-hq/element-web/pull/31314)). Contributed by @robintown.
* Room list: fix room options remaining on room item after mouse leaving ([#31414](https://github.com/element-hq/element-web/pull/31414)). Contributed by @florianduros.
* Make `RoomList.showMessagePreview` configurable by `config.json` ([#31419](https://github.com/element-hq/element-web/pull/31419)). Contributed by @florianduros.
* Fix bug which caused app not to load correctly when `force_verification` is enabled ([#31265](https://github.com/element-hq/element-web/pull/31265)). Contributed by @richvdh.
* Room list: display the menu option on the room list item when clicked/opened ([#31380](https://github.com/element-hq/element-web/pull/31380)). Contributed by @florianduros.
* Fix handling of SVGs ([#31359](https://github.com/element-hq/element-web/pull/31359)). Contributed by @t3chguy.
* Fix word wrapping in expanded left panel buttons ([#31377](https://github.com/element-hq/element-web/pull/31377)). Contributed by @t3chguy.
* Fix aspect ratio on error view background ([#31361](https://github.com/element-hq/element-web/pull/31361)). Contributed by @t3chguy.
* Fix failure to request persistent storage perms ([#31299](https://github.com/element-hq/element-web/pull/31299)). Contributed by @richvdh.
* Fix calls sometimes not knowing that they're presented ([#31313](https://github.com/element-hq/element-web/pull/31313)). Contributed by @robintown.
Changes in [1.12.6](https://github.com/element-hq/element-desktop/releases/tag/v1.12.6) (2025-12-03)
====================================================================================================
This release fixes a bug where 1:1 calling was incorrectly not available if no Element Call focus was set.

View File

@@ -52,9 +52,7 @@ If you only want to run the app locally and don't need to build packages, you ca
provide the `webapp` directory directly:
```
# Assuming you've checked out and built a copy of element-web in ../element-web.
# Note that you will not be able to `yarn build` after this, but `yarn start`
# will work fine.
# Assuming you've checked out and built a copy of element-web in ../element-web
ln -s ../element-web/webapp ./
```

View File

@@ -1,10 +1,9 @@
# Docker image to facilitate building Element Desktop's native bits using a glibc version (2.31)
# with broader compatibility, down to Debian bullseye & Ubuntu focal.
FROM rust:bullseye@sha256:f02c249a0dd84eda8a3403b6fb1a4a59fee86157f1657cb1f8baaf3d89fe2d88
FROM rust:bullseye@sha256:4886b155a84b46ad61df6a2249905bea8c61fc1eaa903398713233858ff6306b
ENV DEBIAN_FRONTEND=noninteractive
RUN curl --proto "=https" -L https://yarnpkg.com/latest.tar.gz | tar xvz && mv yarn-* /yarn && ln -s /yarn/bin/yarn /usr/bin/yarn
RUN apt-get -qq update && apt-get -y -qq dist-upgrade && \
apt-get -y -qq install --no-install-recommends \
# tclsh is required for building SQLite as part of SQLCipher
@@ -16,6 +15,7 @@ RUN ln -s /usr/bin/python3 /usr/bin/python & ln -s /usr/bin/pip3 /usr/bin/pip
ENV DEBUG_COLORS=true
ENV FORCE_COLOR=true
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
WORKDIR /project

View File

@@ -9,3 +9,4 @@ ARCH="${archMap["$TARGETARCH"]}"
NODE_VERSION=$(cat /.node-version | sed -e 's/^v//')
curl --proto "=https" -L "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$TARGETOS-$ARCH.tar.gz" | tar xz -C /usr/local --strip-components=1 && \
unlink /usr/local/CHANGELOG.md && unlink /usr/local/LICENSE && unlink /usr/local/README.md
corepack enable

View File

@@ -13,35 +13,12 @@ custom build of Element without installing the various build tools required.
The process is automated by [vector-im/element-builder](https://github.com/vector-im/element-builder)
when releasing.
## Use docker
If you are building for Linux, you can build the native modules with:
```
yarn docker:setup
yarn docker:install
INDOCKER_SQLCIPHER_BUNDLED=1 yarn docker:build:native
```
The above will build `matrix-seshat` in
`docker/node_modules/matrix-seshat`. You can then either run `yarn docker:build`
to build the app inside docker, or:
```
yarn --cwd docker/node_modules/matrix-seshat link
yarn link matrix-seshat
```
... and build the app with `yarn build` or run it with `yarn start`.
(See also https://github.com/element-hq/element-desktop#docker.)
## Building
Install the pre-requisites for your system:
- [Windows pre-requisites](https://github.com/vector-im/element-desktop/blob/develop/docs/windows-requirements.md)
- Linux: TODO. Using the docker environment as above is recommended.
- Linux: TODO
- OS X: TODO
Then optionally, [add seshat and dependencies to support search in E2E rooms](#adding-seshat-for-search-in-e2e-encrypted-rooms).
@@ -79,8 +56,7 @@ This is also needed to when pulling in changes to Seshat using `yarn link`.
Recompiling Seshat itself can be done like so:
ELECTRON_VERSION=$(electron --version)
yarn run electron-build-env -- --electron ${ELECTRON_VERSION#v} -- neon build matrix-seshat --release
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
Please make sure to include all the `--` as well as the `--release` command line
switch at the end. Modify your electron version accordingly depending on the

View File

@@ -17,7 +17,8 @@ export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Prom
}
console.log("Running yarn install");
await hakEnv.spawn("yarn", ["install"], {
await hakEnv.spawn("corepack", ["yarn@1.22.22", "install"], {
cwd: moduleInfo.moduleBuildDir,
env,
shell: true,
@@ -26,7 +27,7 @@ export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Prom
const buildTarget = hakEnv.wantsStaticSqlCipher() ? "build-bundled" : "build";
console.log("Running yarn build");
await hakEnv.spawn("yarn", ["run", buildTarget], {
await hakEnv.spawn("corepack", ["yarn@1.22.22", "run", buildTarget], {
cwd: moduleInfo.moduleBuildDir,
env,
shell: true,

View File

@@ -3,7 +3,7 @@
"productName": "Element",
"main": "lib/electron-main.js",
"exports": "./lib/electron-main.js",
"version": "1.12.7",
"version": "1.12.6",
"description": "Element: the future of secure communication",
"author": {
"name": "Element",
@@ -85,12 +85,12 @@
"@types/pacote": "^11.1.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"app-builder-lib": "26.2.0",
"app-builder-lib": "26.3.4",
"chokidar": "^5.0.0",
"detect-libc": "^2.0.0",
"electron": "39.2.6",
"electron-builder": "26.2.0",
"electron-builder-squirrel-windows": "26.2.0",
"electron": "39.2.3",
"electron-builder": "26.3.4",
"electron-builder-squirrel-windows": "26.3.4",
"electron-devtools-installer": "^4.0.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",
@@ -121,5 +121,6 @@
"@types/node": "18.19.130",
"config-file-ts": "0.2.8-rc1",
"node-abi": "4.24.0"
}
},
"packageManager": "yarn@4.12.0"
}

View File

@@ -40,7 +40,7 @@ the npm 'install' phase - modules that do this will typically end up with native
targeted to the build platform and the node that npm/yarn is using, which is no good for an
electron app.
It does this by installing it with `--ignore-scripts` and then using `yarn link` to keep the
It does this by installing it with `--mode=skip-build` and then using `yarn link` to keep the
dependency module separate so yarn doesn't try to run its install / postinstall script
at other points (eg. whenever you `yarn add` a random other dependency).

View File

@@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details.
*/
import fsProm from "node:fs/promises";
import pacote from "pacote";
import pacote, { type Packument } from "pacote";
import type HakEnv from "./hakEnv.js";
import type { DependencyInfo } from "./dep.js";
@@ -25,13 +25,13 @@ export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo):
console.log("Fetching " + moduleInfo.name + "@" + moduleInfo.version);
const packumentCache = new Map();
const packumentCache = new Map<string, Packument>();
await pacote.extract(`${moduleInfo.name}@${moduleInfo.version}`, moduleInfo.moduleBuildDir, {
packumentCache,
});
console.log("Running yarn install in " + moduleInfo.moduleBuildDir);
await hakEnv.spawn("yarn", ["install", "--ignore-scripts"], {
await hakEnv.spawn("corepack", ["yarn@1.22.22", "install", "--mode=skip-build"], {
cwd: moduleInfo.moduleBuildDir,
});
@@ -45,6 +45,7 @@ export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo):
// actual runtime dependencies will have to be added to the main app's
// dependencies. We can't tell what dependencies are real runtime deps
// and which are just used for native module building.
console.log("@@ Pacote2", moduleInfo.moduleOutDir);
await pacote.extract(`${moduleInfo.name}@${moduleInfo.version}`, moduleInfo.moduleOutDir, {
packumentCache,
});

View File

@@ -84,6 +84,7 @@ export default class HakEnv {
npm_config_target: this.runtimeVersion,
npm_config_build_from_source: "true",
npm_config_devdir: path.join(os.homedir(), ".electron-gyp"),
COREPACK_ENABLE_DOWNLOAD_PROMPT: "0",
};
}

View File

@@ -7,17 +7,42 @@ Please see LICENSE files in the repository root for full details.
*/
import path from "node:path";
import os from "node:os";
import fsProm from "node:fs/promises";
import type HakEnv from "./hakEnv.js";
import { type DependencyInfo } from "./dep.js";
export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const linkFolder = path.join(hakEnv.dotHakDir, "links");
await hakEnv.spawn("yarn", ["link", "--link-folder", linkFolder], {
const yarnrc = path.join(hakEnv.projectRoot, ".yarnrc");
// this is fairly terrible but it's reasonably clunky to either parse a yarnrc
// properly or get yarn to do it, so this will probably suffice for now.
// We just check to see if there is a local .yarnrc at all, and assume that
// if you've put one there yourself, you probably know what you're doing and
// we won't meddle with it.
// Also we do this for each module which is unnecessary, but meh.
try {
await fsProm.stat(yarnrc);
} catch {
await fsProm.writeFile(
yarnrc,
// XXX: 1. This must be absolute, as yarn will resolve link directories
// relative to the closest project root, which means when we run it
// in the dependency project, it will put the link directory in its
// own project folder rather than the main project.
// 2. The parser gets very confused by strings with colons in them
// (ie. Windows absolute paths) but strings in quotes get parsed as
// JSON so need to be valid JSON encoded strings (ie. have the
// backslashes escaped). JSON.stringify will add quotes and escape.
"--link-folder " + JSON.stringify(path.join(hakEnv.dotHakDir, "links")) + os.EOL,
);
}
console.log("@@", moduleInfo.moduleOutDir);
await hakEnv.spawn("corepack", ["yarn@1.22.22", "link"], {
cwd: moduleInfo.moduleOutDir,
});
await hakEnv.spawn("yarn", ["link", "--link-folder", linkFolder, moduleInfo.name], {
await hakEnv.spawn("corepack", ["yarn@1.22.22", "link", moduleInfo.name], {
cwd: hakEnv.projectRoot,
});
}

View File

@@ -1,9 +1,5 @@
#!/bin/bash
set -e
cd $(dirname "$0")/..
IMAGE=${DOCKER_IMAGE_NAME:-"element-desktop-dockerbuild"}
docker inspect "$IMAGE" 2> /dev/null > /dev/null
@@ -12,8 +8,6 @@ if [ $? != 0 ]; then
exit 1
fi
mkdir -p docker/node_modules docker/.hak docker/.gnupg
# Taken from https://www.electron.build/multi-platform-build#docker
# Pass through any vars prefixed with INDOCKER_, removing the prefix
docker run --rm -ti \

View File

@@ -504,18 +504,11 @@ app.on("ready", async () => {
});
global.mainWindow.webContents.on("before-input-event", (event: Event, input: Input): void => {
const shouldWarnBeforeExit = store.get("warnBeforeExit", true);
const exitShortcutPressed =
input.type === "keyDown" && exitShortcuts.some((shortcutFn) => shortcutFn(input, process.platform));
// We only care about the exit shortcuts here
if (!exitShortcutPressed || !global.mainWindow) return;
// Prevent the default behaviour
event.preventDefault();
// Let's ask the user if they really want to exit the app
const shouldWarnBeforeExit = store.get("warnBeforeExit", true);
if (shouldWarnBeforeExit) {
if (shouldWarnBeforeExit && exitShortcutPressed && global.mainWindow) {
const shouldCancelCloseRequest =
dialog.showMessageBoxSync(global.mainWindow, {
type: "question",
@@ -529,11 +522,11 @@ app.on("ready", async () => {
defaultId: 1,
cancelId: 0,
}) === 0;
if (shouldCancelCloseRequest) return;
}
// Exit the app
app.exit();
if (shouldCancelCloseRequest) {
event.preventDefault();
}
}
});
global.mainWindow.on("closed", () => {

View File

@@ -1,74 +0,0 @@
{
"action": {
"cancel": "Afbryd",
"close": "Luk",
"close_brand": "Luk %(brand)s",
"copy": "Kopiér",
"cut": "Klip",
"delete": "Slet",
"edit": "Rediger",
"minimise": "Minimér",
"paste": "Indsæt",
"paste_match_style": "Indsæt og match stil",
"quit": "Luk",
"redo": "Omgør",
"select_all": "Vælg alle",
"show_hide": "Vis/skjul",
"undo": "Fortryd",
"zoom_in": "Zoom ind",
"zoom_out": "Zoom ud"
},
"common": {
"about": "Om",
"brand_help": "%(brand)sHjælp",
"help": "Hjælp",
"no": "Nej",
"preferences": "Indstillinger",
"yes": "Ja"
},
"confirm_quit": "Er du sikker på, du vil afslutte?",
"edit_menu": {
"speech": "Tale",
"speech_start_speaking": "Begynd at tale",
"speech_stop_speaking": "Stop med at tale"
},
"file_menu": {
"label": "Fil"
},
"icon_overlay": {
"description_error": "Fejl"
},
"menu": {
"hide": "Skjul",
"hide_others": "Skjul andre",
"services": "Tjenester",
"unhide": "Vis"
},
"right_click_menu": {
"add_to_dictionary": "Tilføj til ordbog",
"copy_email": "Kopier e-mailadresse",
"copy_image": "Kopier billede",
"copy_image_url": "Kopier billed-adresse",
"copy_link_url": "Kopier linkadresse",
"save_image_as": "Gem billede som...",
"save_image_as_error_description": "Billedet kunne ikke gemmes",
"save_image_as_error_title": "Kunne ikke gemme billedet"
},
"store": {
"error": {
"backend_no_encryption": "Dit system har en understøttet nøglering, men kryptering er ikke tilgængelig.",
"unsupported_keyring": "Dit system har en ikke-understøttet nøglering, hvilket betyder at databasen ikke kan åbnes."
}
},
"view_menu": {
"actual_size": "Faktisk størrelse",
"toggle_developer_tools": "Skift udviklerværktøjer",
"toggle_full_screen": "Skift fuld skærm",
"view": "Vis"
},
"window_menu": {
"bring_all_to_front": "Bring alt i front",
"label": "Vindue",
"zoom": "Zoom"
}
}

View File

@@ -22,9 +22,7 @@
"about": "Acerca de",
"brand_help": "Ayuda sobre %(brand)s",
"help": "Ayuda",
"no": "No",
"preferences": "Preferencias",
"yes": "Sí"
"preferences": "Preferencias"
},
"confirm_quit": "¿Quieres salir?",
"edit_menu": {
@@ -59,7 +57,6 @@
},
"window_menu": {
"bring_all_to_front": "Traer todas al primer plano",
"label": "Ventana",
"zoom": "Acercamiento"
"label": "Ventana"
}
}

View File

@@ -1,91 +0,0 @@
{
"action": {
"cancel": "취소",
"close": "닫기",
"close_brand": "%(brand)s 닫기",
"copy": "복사하기",
"cut": "잘라내기",
"delete": "삭제",
"edit": "편집",
"minimise": "최소화",
"paste": "붙여넣기",
"paste_match_style": "붙여넣고 스타일 일치",
"quit": "종료",
"redo": "되돌리기",
"select_all": "전체 선택",
"show_hide": "보이기/숨기기",
"undo": "실행 취소",
"zoom_in": "확대",
"zoom_out": "축소"
},
"common": {
"about": "정보",
"brand_help": "%(brand)s 도움말",
"help": "도움말",
"no": "아니오",
"preferences": "환경 설정",
"yes": "예"
},
"confirm_quit": "종료하시겠습니까?",
"edit_menu": {
"speech": "음성",
"speech_start_speaking": "말하기 시작하기",
"speech_stop_speaking": "말하기 중단하기"
},
"eol": {
"no_more_updates": "현재 지원되지 않는 macOS 버전을 사용 중입니다. %(brand)s 업데이트를 계속 받으시려면 운영 체제를 업그레이드해 주세요.",
"title": "시스템이 지원되지 않습니다",
"warning": "현재 지원되지 않는 macOS 버전을 사용 중입니다. %(brand)s을(를) 계속 사용하시려면 운영 체제를 업그레이드해야 합니다."
},
"file_menu": {
"label": "파일"
},
"icon_overlay": {
"description_error": "오류",
"description_notifications": {
"other": "읽지 않은 알림 %(count)s개가 있습니다"
}
},
"menu": {
"hide": "숨기기",
"hide_others": "다른 사람 숨기기",
"services": "서비스",
"unhide": "숨기기 취소"
},
"right_click_menu": {
"add_to_dictionary": "사전에 추가",
"copy_email": "이메일 주소 복사",
"copy_image": "이미지 복사",
"copy_image_url": "이미지 주소 복사",
"copy_link_url": "링크 주소 복사",
"save_image_as": "다음으로 이미지 저장...",
"save_image_as_error_description": "이미지 저장 실패",
"save_image_as_error_title": "이미지 저장 실패"
},
"store": {
"error": {
"backend_changed": "데이터를 지우고 다시 로드하시겠습니까?",
"backend_changed_detail": "시스템 키링에서 비밀에 접근할 수 없습니다. 변경된 것으로 보입니다.",
"backend_changed_title": "데이터베이스 로드에 실패했습니다",
"backend_no_encryption": "시스템에 지원되는 키링이 있지만 암호화를 사용할 수 없습니다.",
"backend_no_encryption_detail": "Electron이 키링 %(backend)s에서 암호화를 사용할 수 없음을 감지했습니다. 키링이 설치되어 있는지 확인하세요. 이미 설치되어 있다면, 시스템을 재부팅한 후 다시 시도해 주세요. 선택적으로 %(brand)s가 약한 형태의 암호화를 사용하도록 허용할 수 있습니다",
"backend_no_encryption_title": "암호화를 지원 안함",
"unsupported_keyring": "시스템에 지원되지 않는 키링이 존재하여 데이터베이스를 열 수 없습니다.",
"unsupported_keyring_detail": "Electron의 키링 감지 기능이 지원되는 백엔드를 찾지 못했습니다. 명령줄 인수를 사용하여 %(brand)s 를 시작함으로써 백엔드를 수동으로 구성해 볼 수 있습니다. 이는 일회성 작업입니다. 자세한 내용은 %(link)s 를 참조하십시오.",
"unsupported_keyring_title": "시스템이 지원되지 않습니다",
"unsupported_keyring_use_basic_text": "암호화 수준 낮게 사용",
"unsupported_keyring_use_plaintext": "암호화를 사용하지 마십시오"
}
},
"view_menu": {
"actual_size": "실제 크기",
"toggle_developer_tools": "개발자 도구 전환",
"toggle_full_screen": "전체 화면으로 전환",
"view": "보기"
},
"window_menu": {
"bring_all_to_front": "모두 맨 앞으로 가져오기",
"label": "창",
"zoom": "확대/축소"
}
}

View File

@@ -73,7 +73,7 @@
"backend_no_encryption_detail": "Elektron wykrył, że szyfrowanie nie jest dostępne w twoim keyring'u %(backend)s. Upewnij się, że keyring został zainstalowany. Jeśli tak, uruchom ponownie urządzenie i spróbuj ponownie. Opcjonalnie, zezwól %(brand)s, aby korzystał ze słabszego szyfrowania.",
"backend_no_encryption_title": "Szyfrowanie nie jest obsługiwane",
"unsupported_keyring": "System zawiera niewspierany keyring, nie można otworzyć bazy danych.",
"unsupported_keyring_detail": "Wykrywanie breloków firmy Electron nie znalazło obsługiwanego zaplecza. Możesz spróbować ręcznie skonfigurować zaplecze, zaczynając od argumentu %(brand)s wiersza polecenia, operacji jednorazowej. Widzieć%(link)s.",
"unsupported_keyring_detail": "Wykrywanie keyringu Electron nie znalazł wspieranego backendu. Możesz spróbować ręcznie ustawić backed, uruchamiając %(brand)s za pomocą wiesza poleceń. Zobacz %(link)s.",
"unsupported_keyring_title": "System niewspierany",
"unsupported_keyring_use_basic_text": "Użyj słabszego szyfrowania",
"unsupported_keyring_use_plaintext": "Nie używaj szyfrowania"

View File

@@ -32,11 +32,6 @@
"speech_start_speaking": "Почати говорити",
"speech_stop_speaking": "Припинити говорити"
},
"eol": {
"no_more_updates": "Ви використовуєте непідтримувану версію macOS. Оновіть її, щоб отримати оновлення %(brand)s.",
"title": "Система не підтримується",
"warning": "Ви використовуєте непідтримувану версію macOS. Оновіть систему, щоб забезпечити безперебійну роботу %(brand)s."
},
"file_menu": {
"label": "Файл"
},

17498
yarn.lock
View File

File diff suppressed because it is too large Load Diff