Skip to content

Commit b376e8f

Browse files
binarypieclaude
andauthored
pkg(zellij): fix COPR build by disabling vendored OpenSSL (#218)
## Problem The COPR build of `zellij-0.44.3` [failed](https://copr.fedorainfracloud.org/coprs/binarypie/hypercube/build/10657369/) in `%install` on both `fedora-43` and `fedora-44` chroots. A transitive dependency enabled the `openssl-sys` crate's `vendored` feature, so cargo tried to compile its own OpenSSL from source. OpenSSL's `./Configure` is a perl script that needs `FindBin.pm`, which isn't present in the minimal mock chroot: ``` Can't locate FindBin.pm in @inc ... at ./Configure line 15. BEGIN failed--compilation aborted at ./Configure line 15. ``` ## Fix - **`packages/zellij/zellij.spec`**: set `OPENSSL_NO_VENDOR=1` in `%install` so `openssl-sys` links the chroot's system OpenSSL (already provided by `BuildRequires: pkgconfig(openssl)`) instead of vendoring its own copy. This also skips compiling OpenSSL from source entirely. Release bumped 1 → 2 with a changelog entry. - **`scripts/packages/config.sh`**: wire `zellij` into `PACKAGE_REPOS`, `PACKAGE_DEPS`, and `BUILD_BATCHES` (batch 1). It had a package dir and a `packages/README.md` entry but was missing from the config that drives both GitHub Actions workflows — so it was never checked for new upstream releases (`Check Package Versions`) and, despite spec changes being *detected*, was never actually submitted to COPR (`Build COPR Packages` only submits packages present in `BUILD_BATCHES`). ## Verification - `get-spec-version.sh zellij` → `0.44.3-2` - `get-upstream-version.sh zellij` → `0.44.3` (matches → no spurious bump PR) - `config.sh` passes `bash -n`; zellij resolves in all three maps Merging triggers `Build COPR Packages` (via the `packages/**` path filter), which will now submit the fixed zellij build to COPR. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent db398b2 commit b376e8f

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

packages/zellij/zellij.spec

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
Name: zellij
77
Version: 0.44.3
8-
Release: 1%{?dist}
8+
Release: 2%{?dist}
99
Summary: A terminal workspace and multiplexer
1010

1111
License: MIT
@@ -38,6 +38,14 @@ export RUSTUP_HOME=%{_builddir}/.rustup
3838
export CARGO_HOME=%{_builddir}/.cargo
3939
export PATH="${CARGO_HOME}/bin:${PATH}"
4040

41+
# Link against the chroot's system OpenSSL (pulled in via BuildRequires:
42+
# pkgconfig(openssl)) instead of letting the openssl-sys crate vendor and
43+
# compile its own copy. The vendored build runs OpenSSL's ./Configure, whose
44+
# perl needs FindBin.pm — not present in the minimal mock chroot — so it fails
45+
# with "Can't locate FindBin.pm in @INC". Using the system lib also skips
46+
# compiling OpenSSL from source entirely, which is faster.
47+
export OPENSSL_NO_VENDOR=1
48+
4149
# Read the Rust channel this release pins (rust-toolchain.toml, currently
4250
# "1.92.0") and install exactly that with rustup. Reading it from the source
4351
# tree means bumping Version above is all it takes to follow a new zellij — the
@@ -75,6 +83,11 @@ mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d
7583
%{_datadir}/fish/vendor_completions.d/%{name}.fish
7684

7785
%changelog
86+
* Sun Jun 28 2026 Hypercube <hypercube@binarypie.dev> - 0.44.3-2
87+
- Set OPENSSL_NO_VENDOR=1 so openssl-sys links the chroot's system OpenSSL
88+
instead of vendoring its own copy, which failed to configure (missing
89+
perl FindBin.pm in the minimal mock chroot)
90+
7891
* Wed Jun 24 2026 Hypercube <hypercube@binarypie.dev> - 0.44.3-1
7992
- Initial package for Hypercube
8093
- Build with rustup-managed toolchain (per upstream rust-toolchain.toml) so the

scripts/packages/config.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ declare -gA PACKAGE_REPOS=(
3535
[lazyjournal]="Lifailon/lazyjournal"
3636
[lazysql]="jorgerojas26/lazysql"
3737
[resterm]="unkn0wn-root/resterm"
38+
[zellij]="zellij-org/zellij"
3839

3940
# Other
4041
[glaze]="stephenberry/glaze"
@@ -73,6 +74,7 @@ declare -gA PACKAGE_DEPS=(
7374
[lazyjournal]=""
7475
[lazysql]=""
7576
[resterm]=""
77+
[zellij]=""
7678
[lua55]=""
7779

7880
# Packages with dependencies
@@ -93,7 +95,7 @@ declare -gA PACKAGE_DEPS=(
9395

9496
# Build batches (packages in same batch can build in parallel)
9597
declare -gA BUILD_BATCHES=(
96-
[1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm lua55"
98+
[1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm zellij lua55"
9799
[2]="hyprlang hyprgraphics aquamarine"
98100
[3]="hyprcursor hyprland-qt-support"
99101
[4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit"

0 commit comments

Comments
 (0)