Merge pull request #507 from omacom/cua-aquamarine-0151
Refresh Cua plugin profile for Aquamarine 0.15.1
This commit is contained in:
3 files changed
+34
-30
No files matched your search
@@ -4,18 +4,18 @@
|
|||||||
# shellcheck shell=bash disable=SC2034,SC2154
|
# shellcheck shell=bash disable=SC2034,SC2154
|
||||||
pkgname=cua-hyprland-plugin
|
pkgname=cua-hyprland-plugin
|
||||||
pkgver=0.26.1
|
pkgver=0.26.1
|
||||||
pkgrel=5
|
pkgrel=6
|
||||||
pkgdesc='Cua input candidate for reviewed profile omarchy-hyprland-0562r3-remaps'
|
pkgdesc='Cua input candidate for reviewed profile omarchy-hypr0562r3-aq0151-remaps'
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url='https://github.com/trycua/cua'
|
url='https://github.com/trycua/cua'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
depends=('hyprland=0.56.2-3' 'aquamarine=0.15.0-2' 'glibc=2.44+r24+g16be1518495f-1' 'hyprcursor=0.1.13-7' 'hyprgraphics=0.5.1-4' 'hyprlang=0.6.8-5' 'hyprutils=0.14.2-1' 'libgcc=16.2.1+r23+gd564253eb6c8-1' 'libstdc++=16.2.1+r23+gd564253eb6c8-1' 'libxkbcommon=1.13.2-1' 'wayland=1.26.0-1' 'python>=3.11' 'binutils')
|
depends=('hyprland=0.56.2-3' 'aquamarine=0.15.1-1' 'glibc=2.44+r24+g16be1518495f-1' 'hyprcursor=0.1.13-7' 'hyprgraphics=0.5.1-4' 'hyprlang=0.6.8-5' 'hyprutils=0.14.2-1' 'libgcc=16.2.1+r23+gd564253eb6c8-1' 'libstdc++=16.2.1+r23+gd564253eb6c8-1' 'libxkbcommon=1.13.2-1' 'wayland=1.26.0-1' 'python>=3.11' 'binutils')
|
||||||
makedepends=('cmake>=3.30' 'ninja' 'pkgconf' 'gcc' 'patch')
|
makedepends=('cmake>=3.30' 'ninja' 'pkgconf' 'gcc' 'patch')
|
||||||
options=('!strip' '!debug' '!lto')
|
options=('!strip' '!debug' '!lto')
|
||||||
_stem='cua-hyprland-plugin-0.26.1-cc54254464c0c9aebfd6547fe7e4a0ceaf0456d7'
|
_stem='cua-hyprland-plugin-0.26.1-cc54254464c0c9aebfd6547fe7e4a0ceaf0456d7'
|
||||||
_archive_sha256='47bca9e018f32f4fcfe683f91c7475c60368f3b65d318cc35c1f2de88a4ee9ab'
|
_archive_sha256='47bca9e018f32f4fcfe683f91c7475c60368f3b65d318cc35c1f2de88a4ee9ab'
|
||||||
_kit_sha256='089f447e11cacd8c2d3d6cd56528776417c51d353b9677c47c42bba1ef79c9f9'
|
_kit_sha256='819779b93655d603d9ebb0d33ea052326c3374674a1d473886106af25e0fffdd'
|
||||||
_profile_sha256='fc3034649af98f7f81178ef575660143c249664b9ff5d0e1ccaf79d7580df17b'
|
_profile_sha256='a2eade8b8195036be2c666788a1d28ac722403285a35987d92b3344e095f9a5e'
|
||||||
_verifier_sha256='480f649cbd35a0ddc7f49dc0a3a44785402c9e0ec9653b0f8ea4965d52d7f900'
|
_verifier_sha256='480f649cbd35a0ddc7f49dc0a3a44785402c9e0ec9653b0f8ea4965d52d7f900'
|
||||||
_cxx="${CUA_RELEASE_CXX:-/usr/bin/g++}"
|
_cxx="${CUA_RELEASE_CXX:-/usr/bin/g++}"
|
||||||
_download_name='cua-hyprland-plugin-0.26.1-cc54254464c0c9aebfd6547fe7e4a0ceaf0456d7-profile-omarchy-stable-20260910-kit-1.1.0-5dacea79a6a5927e59fca7b51e6c04e94fa45133ac1b8fb7f4e1f442d113eb9a-67f89ceb47edd973aa748820eadd02ddbfb3d3e4.tar.gz'
|
_download_name='cua-hyprland-plugin-0.26.1-cc54254464c0c9aebfd6547fe7e4a0ceaf0456d7-profile-omarchy-stable-20260910-kit-1.1.0-5dacea79a6a5927e59fca7b51e6c04e94fa45133ac1b8fb7f4e1f442d113eb9a-67f89ceb47edd973aa748820eadd02ddbfb3d3e4.tar.gz'
|
||||||
@@ -24,7 +24,7 @@ source=('https://github.com/trycua/cua/releases/download/cua-hyprland-kit-v1.1.0
|
|||||||
'PROFILE.json')
|
'PROFILE.json')
|
||||||
noextract=("$_download_name")
|
noextract=("$_download_name")
|
||||||
sha256sums=('a89bfa7f6490f598719dfabdd2a5badc137e27b0764fd25e6a05e1f969433520'
|
sha256sums=('a89bfa7f6490f598719dfabdd2a5badc137e27b0764fd25e6a05e1f969433520'
|
||||||
'fc3034649af98f7f81178ef575660143c249664b9ff5d0e1ccaf79d7580df17b')
|
'a2eade8b8195036be2c666788a1d28ac722403285a35987d92b3344e095f9a5e')
|
||||||
|
|
||||||
# Downstream inputs are also checked explicitly when makepkg integrity is skipped.
|
# Downstream inputs are also checked explicitly when makepkg integrity is skipped.
|
||||||
declare -gA _downstream_sha256=(
|
declare -gA _downstream_sha256=(
|
||||||
@@ -71,33 +71,34 @@ with tarfile.open(fileobj=io.BytesIO(data), mode='r:gz') as contents:
|
|||||||
require(digest(content) == expected[member.name], 'outer kit member checksum mismatch')
|
require(digest(content) == expected[member.name], 'outer kit member checksum mismatch')
|
||||||
payload[member.name] = content
|
payload[member.name] = content
|
||||||
require(payload.keys() == expected.keys(), 'outer kit inventory mismatch')
|
require(payload.keys() == expected.keys(), 'outer kit inventory mismatch')
|
||||||
# Arch's -3 package has the same compositor and all 498 headers/pkg-config
|
# Derive the reviewed Hyprland -3/Aquamarine 0.15.1 profile while preserving
|
||||||
# files as -2. Derive a version-only profile with the original source/tooling
|
# upstream source/tooling and compiler, compositor, header and runtime hashes.
|
||||||
# and byte checks intact; record its own profile and kit provenance digests.
|
|
||||||
profile_data = Path(profile_path).read_bytes()
|
profile_data = Path(profile_path).read_bytes()
|
||||||
require(digest(profile_data) == 'fc3034649af98f7f81178ef575660143c249664b9ff5d0e1ccaf79d7580df17b',
|
require(digest(profile_data) == 'a2eade8b8195036be2c666788a1d28ac722403285a35987d92b3344e095f9a5e',
|
||||||
'local profile checksum mismatch')
|
'local profile checksum mismatch')
|
||||||
profile = json.loads(payload['PROFILE.json'])
|
profile = json.loads(payload['PROFILE.json'])
|
||||||
profile.update(profile_id='omarchy-hyprland-0562r3-remaps', package_release=5)
|
profile.update(profile_id='omarchy-hypr0562r3-aq0151-remaps', package_release=6)
|
||||||
profile['hyprland']['package_version'] = '0.56.2-3'
|
profile['hyprland']['package_version'] = '0.56.2-3'
|
||||||
require(json.loads(profile_data) == profile, 'local profile changes more than the reviewed package revision')
|
profile['runtime']['packages']['aquamarine'] = '0.15.1-1'
|
||||||
|
require(json.loads(profile_data) == profile, 'local profile changes more than the reviewed package versions')
|
||||||
payload['PROFILE.json'] = profile_data
|
payload['PROFILE.json'] = profile_data
|
||||||
provenance = json.loads(payload['KIT-PROVENANCE.json'])
|
provenance = json.loads(payload['KIT-PROVENANCE.json'])
|
||||||
provenance['profile_sha256'] = digest(profile_data)
|
provenance['profile_sha256'] = digest(profile_data)
|
||||||
payload['KIT-PROVENANCE.json'] = (json.dumps(provenance, sort_keys=True, indent=2) + '\n').encode()
|
payload['KIT-PROVENANCE.json'] = (json.dumps(provenance, sort_keys=True, indent=2) + '\n').encode()
|
||||||
recipe = payload['PKGBUILD'].decode()
|
recipe = payload['PKGBUILD'].decode()
|
||||||
for old, new in [('pkgrel=2\n', 'pkgrel=5\n'), ('omarchy-stable-20260910', profile['profile_id']),
|
for old, new in [('pkgrel=2\n', 'pkgrel=6\n'), ('omarchy-stable-20260910', profile['profile_id']),
|
||||||
('hyprland=0.56.2-2', 'hyprland=0.56.2-3'),
|
('hyprland=0.56.2-2', 'hyprland=0.56.2-3'),
|
||||||
|
('aquamarine=0.15.0-2', 'aquamarine=0.15.1-1'),
|
||||||
('5dacea79a6a5927e59fca7b51e6c04e94fa45133ac1b8fb7f4e1f442d113eb9a', digest(profile_data)),
|
('5dacea79a6a5927e59fca7b51e6c04e94fa45133ac1b8fb7f4e1f442d113eb9a', digest(profile_data)),
|
||||||
('7beb736adfd334eed52e84070177634269e3a09f8bb25971b38606933ff4c997', digest(payload['KIT-PROVENANCE.json']))]:
|
('7beb736adfd334eed52e84070177634269e3a09f8bb25971b38606933ff4c997', digest(payload['KIT-PROVENANCE.json']))]:
|
||||||
recipe = recipe.replace(old, new)
|
recipe = recipe.replace(old, new)
|
||||||
payload['PKGBUILD'] = recipe.encode()
|
payload['PKGBUILD'] = recipe.encode()
|
||||||
payload['SHA256SUMS'] = ''.join(f'{digest(body)} {name}\n' for name, body in sorted(payload.items())
|
payload['SHA256SUMS'] = ''.join(f'{digest(body)} {name}\n' for name, body in sorted(payload.items())
|
||||||
if name != 'SHA256SUMS').encode()
|
if name != 'SHA256SUMS').encode()
|
||||||
expected.update({'PROFILE.json': 'fc3034649af98f7f81178ef575660143c249664b9ff5d0e1ccaf79d7580df17b',
|
expected.update({'PROFILE.json': 'a2eade8b8195036be2c666788a1d28ac722403285a35987d92b3344e095f9a5e',
|
||||||
'KIT-PROVENANCE.json': '089f447e11cacd8c2d3d6cd56528776417c51d353b9677c47c42bba1ef79c9f9',
|
'KIT-PROVENANCE.json': '819779b93655d603d9ebb0d33ea052326c3374674a1d473886106af25e0fffdd',
|
||||||
'PKGBUILD': '0cbf2cd34c3c5038a5ed51e6bf84acd81844e4c2bb08ad7203959201bba61da9',
|
'PKGBUILD': 'c3e4149eba3f7def10ef700b30b9d0abcea994e3dd32fb169014874a0b75687c',
|
||||||
'SHA256SUMS': 'd01b9e0be4c5bcf84cc2ecef9f11f44cedfc1ca5b31afbfcf52aa2efbd636a09'})
|
'SHA256SUMS': 'd9057a9534f7a820ee04cbf5d60db567c5072fa96d1f71030a6a85b4bb7ce881'})
|
||||||
for name, content in payload.items():
|
for name, content in payload.items():
|
||||||
require(digest(content) == expected[name], 'derived kit checksum mismatch: ' + name)
|
require(digest(content) == expected[name], 'derived kit checksum mismatch: ' + name)
|
||||||
require(srcdir.is_dir() and not srcdir.is_symlink(), 'srcdir must be a real directory')
|
require(srcdir.is_dir() and not srcdir.is_symlink(), 'srcdir must be a real directory')
|
||||||
|
|||||||
@@ -12,12 +12,12 @@
|
|||||||
"sha256": "da8fcacf347bcbed83edc40108c6e2298da095e22246bd764e9bb382786cebb2"
|
"sha256": "da8fcacf347bcbed83edc40108c6e2298da095e22246bd764e9bb382786cebb2"
|
||||||
},
|
},
|
||||||
"kit_version": "1.1.0",
|
"kit_version": "1.1.0",
|
||||||
"package_release": 5,
|
"package_release": 6,
|
||||||
"profile_id": "omarchy-hyprland-0562r3-remaps",
|
"profile_id": "omarchy-hypr0562r3-aq0151-remaps",
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"basename": "libstdc++.so.6.0.36",
|
"basename": "libstdc++.so.6.0.36",
|
||||||
"packages": {
|
"packages": {
|
||||||
"aquamarine": "0.15.0-2",
|
"aquamarine": "0.15.1-1",
|
||||||
"glibc": "2.44+r24+g16be1518495f-1",
|
"glibc": "2.44+r24+g16be1518495f-1",
|
||||||
"hyprcursor": "0.1.13-7",
|
"hyprcursor": "0.1.13-7",
|
||||||
"hyprgraphics": "0.5.1-4",
|
"hyprgraphics": "0.5.1-4",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# Optional Cua Hyprland plugin
|
# Optional Cua Hyprland plugin
|
||||||
|
|
||||||
This package targets **Omarchy stable x86_64**, with Inkscape `1.4.4-6` and two independent background-input lanes. Package release `5` includes the Omarchy patch for independent agent keymaps, operation-specific foreground checks, and compatible Num Lock state; the upstream native qualification below covers the unpatched source, not this change. Cua's native qualification is recorded in [the kit's qualification record](https://github.com/trycua/cua/releases/download/cua-hyprland-kit-v1.1.0-omarchy-stable-20260910/QUALIFICATION.md) and [Cua #3698](https://github.com/trycua/cua/pull/3698). Omabot replay and Omarchy's merge decision are recorded in [omarchy-pkgs #346](https://github.com/omacom/omarchy-pkgs/pull/346). Scheduling the recipe does not expand the qualified stable target.
|
This package targets **Omarchy x86_64**, with Inkscape `1.4.4-6` and two independent background-input lanes. Release `6` is an edge candidate for Aquamarine `0.15.1-1`; it retains the keyboard-remap patch introduced in release `5`, which includes the Omarchy patch for independent agent keymaps, operation-specific foreground checks, and compatible Num Lock state; the upstream native qualification below covers the unpatched source, not this change. Cua's native qualification is recorded in [the kit's qualification record](https://github.com/trycua/cua/releases/download/cua-hyprland-kit-v1.1.0-omarchy-stable-20260910/QUALIFICATION.md) and [Cua #3698](https://github.com/trycua/cua/pull/3698). Omabot replay and Omarchy's merge decision are recorded in [omarchy-pkgs #346](https://github.com/omacom/omarchy-pkgs/pull/346). Scheduling the recipe does not expand the qualified stable target.
|
||||||
|
|
||||||
The plugin is optional. Cua Driver works independently, and installation does not load the plugin or enable input. The package follows the normal edge-to-RC-to-stable promotion path instead of the fast release ring. Its PKGBUILD limits builds to x86_64; only stable x86_64 is a qualified target.
|
The plugin is optional. Cua Driver works independently, and installation does not load the plugin or enable input. The package follows the normal edge-to-RC-to-stable promotion path instead of the fast release ring. Its PKGBUILD limits builds to x86_64. The upstream qualification covers the original stable profile; the updated Aquamarine profile needs its own Omabot validation before promotion.
|
||||||
|
|
||||||
## Source and build profile
|
## Source and build profile
|
||||||
|
|
||||||
@@ -12,26 +12,23 @@ It is not a repackaging of the unmodified 0.24.0 plugin.
|
|||||||
|
|
||||||
The qualified upstream Driver pairing is `cua-driver-bin 0.27.0-1`, with input protocol v3. Driver 0.27.0 contains the bounded stale-geometry retry validated with the upstream module; its production plugin source is the base for the downstream patch used here. Discovery protocol v2 is separate. A newer Driver release is a changed pairing and requires affected replay before promotion.
|
The qualified upstream Driver pairing is `cua-driver-bin 0.27.0-1`, with input protocol v3. Driver 0.27.0 contains the bounded stale-geometry retry validated with the upstream module; its production plugin source is the base for the downstream patch used here. Discovery protocol v2 is separate. A newer Driver release is a changed pairing and requires affected replay before promotion.
|
||||||
|
|
||||||
Profile `omarchy-hyprland-0562r3-remaps`, kit tooling `1.1.0`, and package release `5` pin:
|
Profile `omarchy-hypr0562r3-aq0151-remaps`, kit tooling `1.1.0`, and package release `6` pin:
|
||||||
|
|
||||||
- Hyprland `0.56.2-3`, headers `0.56.2`, and measured executable/header hashes.
|
- Hyprland `0.56.2-3`, headers `0.56.2`, and measured executable/header hashes.
|
||||||
- GCC `16.2.1 20260810`, including compiler bytes and emitted ELF identity.
|
- GCC `16.2.1 20260810`, including compiler bytes and emitted ELF identity.
|
||||||
- Shared runtime `libstdc++.so.6.0.36`, its bytes, and exact ABI package versions.
|
- Shared runtime `libstdc++.so.6.0.36`, its bytes, and exact ABI package versions, including Aquamarine `0.15.1-1`.
|
||||||
|
|
||||||
This profile derives from Cua's `omarchy-stable-20260910` profile. Arch's
|
This profile derives from Cua's `omarchy-stable-20260910` profile. Arch's
|
||||||
Hyprland `-3` package splits out `hyprpm` and changes package dependencies;
|
Hyprland `-3` package splits out `hyprpm` and changes package dependencies;
|
||||||
its compositor executable and all 498 header/pkg-config files are byte-identical
|
its compositor executable and all 498 header/pkg-config files are byte-identical
|
||||||
to `-2`. Both executables have SHA-256
|
to `-2`. Both executables have SHA-256
|
||||||
`da8fcacf347bcbed83edc40108c6e2298da095e22246bd764e9bb382786cebb2`.
|
`da8fcacf347bcbed83edc40108c6e2298da095e22246bd764e9bb382786cebb2`.
|
||||||
The checked-in `PROFILE.json` changes only the profile name, package release,
|
The checked-in `PROFILE.json` changes only the profile name, package release, and exact Hyprland and Aquamarine package versions. Compiler, libstdc++ runtime, upstream source, compositor executable, and header identities remain unchanged; the separately recorded patch changes the build source. The download wrapper verifies the
|
||||||
and exact Hyprland package version. Compiler, runtime, upstream source, executable,
|
|
||||||
and header identities remain unchanged; the separately recorded patch changes the build source. The download wrapper verifies the
|
|
||||||
original kit before deriving the updated profile, recipe, and provenance,
|
original kit before deriving the updated profile, recipe, and provenance,
|
||||||
then verifies every derived member against its recorded digest.
|
then verifies every derived member against its recorded digest.
|
||||||
|
|
||||||
The native qualification below was recorded with package release `2` and
|
The native qualification below was recorded with package release `2` and
|
||||||
Hyprland `-2`. The downstream keymap change needs its own application and Driver replay before promotion. The `-3` dependency must reach a destination channel before
|
Hyprland `-2`. The downstream keymap change and Aquamarine update need their own application and Driver replay before promotion. Hyprland `0.56.2-3` and Aquamarine `0.15.1-1` must both reach a destination channel before this artifact can be installed there; publication still follows edge → RC → stable.
|
||||||
this artifact can be installed there; publication still follows edge → RC → stable.
|
|
||||||
|
|
||||||
The generated `PKGBUILD` identifies the immutable kit download, outer checksum,
|
The generated `PKGBUILD` identifies the immutable kit download, outer checksum,
|
||||||
and member checksums. The kit records the full source and tooling revisions,
|
and member checksums. The kit records the full source and tooling revisions,
|
||||||
@@ -48,6 +45,12 @@ Production input is built in; experimental signed input and tracing are off.
|
|||||||
|
|
||||||
The pristine upstream archive, manifest, and verifier remain unchanged. `independent-keymaps.patch` is applied to a separate source tree, and `DOWNSTREAM-PROVENANCE.json` pins the patch and every resulting source file. Build, check, and package revalidate both trees, including when makepkg integrity checks are skipped. `BUILD-PROVENANCE.json` records the upstream base under `source`, the applied change under `downstream`, and the final module digest; the downstream manifest and patch are installed beside it. This preserves the existing compiler, headers, runtime, and consumer checks without representing the modified module as an unmodified upstream build.
|
The pristine upstream archive, manifest, and verifier remain unchanged. `independent-keymaps.patch` is applied to a separate source tree, and `DOWNSTREAM-PROVENANCE.json` pins the patch and every resulting source file. Build, check, and package revalidate both trees, including when makepkg integrity checks are skipped. `BUILD-PROVENANCE.json` records the upstream base under `source`, the applied change under `downstream`, and the final module digest; the downstream manifest and patch are installed beside it. This preserves the existing compiler, headers, runtime, and consumer checks without representing the modified module as an unmodified upstream build.
|
||||||
|
|
||||||
|
## Aquamarine dependency refresh
|
||||||
|
|
||||||
|
Release `5` required Aquamarine `0.15.0-2`. When the edge mirror moved to `0.15.1-1`, pacman could no longer resolve that dependency, even after a full database refresh. Release `6` derives a new profile from the same verified upstream kit and pins `0.15.1-1` in both the package dependencies and the installed compatibility verifier. Source, patch, compiler, compositor, headers, and libstdc++ hashes remain pinned; the original upstream qualification does not establish compatibility with the changed Aquamarine package.
|
||||||
|
|
||||||
|
A package release bump alone cannot repair future dependency drift: the checked-in profile and derived kit checksums must agree with the new environment, and affected native checks must pass before publication. Do not remove exact dependencies or selectively downgrade a library to bypass a mismatch.
|
||||||
|
|
||||||
## Keyboard behavior
|
## Keyboard behavior
|
||||||
|
|
||||||
Each background lane owns a canonical US keymap and independent modifier state. The physical keyboard keeps its layout, Compose key, and remaps. No installation or activation step edits `input:kb_*`. Existing Driver keycodes are interpreted by the agent keyboard, so this does not add Unicode, IME, or new Driver text routes.
|
Each background lane owns a canonical US keymap and independent modifier state. The physical keyboard keeps its layout, Compose key, and remaps. No installation or activation step edits `input:kb_*`. Existing Driver keycodes are interpreted by the agent keyboard, so this does not add Unicode, IME, or new Driver text routes.
|
||||||
@@ -142,7 +145,7 @@ kit-provenance digest:
|
|||||||
```sh
|
```sh
|
||||||
python3 /usr/share/cua-hyprland-plugin/profile_verify.py \
|
python3 /usr/share/cua-hyprland-plugin/profile_verify.py \
|
||||||
--kit /usr/share/cua-hyprland-plugin \
|
--kit /usr/share/cua-hyprland-plugin \
|
||||||
--kit-sha256 089f447e11cacd8c2d3d6cd56528776417c51d353b9677c47c42bba1ef79c9f9 \
|
--kit-sha256 819779b93655d603d9ebb0d33ea052326c3374674a1d473886106af25e0fffdd \
|
||||||
--consumer /usr/lib/cua/hyprland/cua-hyprland-plugin.so
|
--consumer /usr/lib/cua/hyprland/cua-hyprland-plugin.so
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user