[infra/devex] Linux RPM 打包 spec 使用 %files / 导致在 Fedora 上与 filesystem 包冲突无法安装
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- linux, rust
- 領域
- build-system, devops
調査の方向性
まず openless-all/app/scripts/package-linux-egui.sh の openless.spec の %files セクション付近を確認し、次に openless-all/app/scripts/verify-linux-egui-packages.sh を調べてください。RPM マニフェストを OpenLess が所有するファイルとディレクトリに限定し、共有システムディレクトリを除外するチェックを追加してください。生成された RPM マニフェストにそれらのディレクトリが含まれず、パッケージが Fedora 44 にインストールできれば完了です。
索引モデルが issue の本文から書いたものです。
説明
现象
- 触发条件:在 Fedora 44(x86_64)上使用
sudo dnf install安装官方发布的OpenLess-Linux-egui-2.0.2-Beta.4-150-x86_64.rpm(或OpenLess_linux_x86_64.rpm)。 - 当前表现:RPM 事务因
/usr/bin与/usr/lib64目录所有权/权限与系统基础包filesystem冲突而直接失败,无法完成安装。 - 证据:
- Fedora 44
dnf install实测报错:Running transaction Transaction failed: Rpm transaction failed. - file /usr/bin from install of openless-2.0.2.beta.4.150-1.x86_64 conflicts with file from package filesystem-3.18-52.fc44.x86_64 - file /usr/lib64 from install of openless-2.0.2.beta.4.150-1.x86_64 conflicts with file from package filesystem-3.18-52.fc44.x86_64 - RPM 包内目录清单检查(
rpm -qlv):
在 Fedora 等 RPM 发行版中,drwxr-xr-x 2 root root 0 Nov 6 20:48 / drwxr-xr-x 2 root root 0 Nov 6 20:48 /usr drwxr-xr-x 2 root root 0 Nov 6 20:48 /usr/bin drwxr-xr-x 2 root root 0 Nov 6 20:48 /usr/lib64 drwxr-xr-x 2 root root 0 Nov 6 20:48 /usr/share/usr/bin和/usr/lib64由filesystem包以0555权限拥有;openlessRPM 将这些系统标准目录以0755纳入自身文件清单导致冲突。 - 源码定位:
https://github.com/Open-Less/openless/blob/c002b56c38d81bcd5044ddb22597a4e78ff2a88d/openless-all/app/scripts/package-linux-egui.sh#L189-L190
package-linux-egui.sh生成的openless.spec中%files段直接写了/,导致rpmbuild递归声明了对/,/usr,/usr/bin,/usr/lib64,/usr/share等所有父级系统目录的所有权。
- Fedora 44
影响
- 所有使用 RPM 包管理器的目标发行版(Fedora / RHEL / openSUSE 等)用户均无法直接安装官方发布的
.rpm安装包。
建议接受标准
- 修改
openless-all/app/scripts/package-linux-egui.sh中openless.spec的%files清单,仅声明归属openless自身的文件与专属子目录(如/usr/bin/openless、/usr/lib64/fcitx5/libopenless.so、/usr/share/applications/openless.desktop、/usr/share/fcitx5/addon/openless.conf、/usr/share/icons/hicolor/*/apps/openless.png、/usr/share/metainfo/top.openless.OpenLess.metainfo.xml、%dir /usr/share/doc/openless、%dir /usr/share/openless等),不再声明/,/usr,/usr/bin,/usr/lib64,/usr/share等系统级共享目录。 - 在
openless-all/app/scripts/verify-linux-egui-packages.sh中增加对rpm -qlp输出的断言,确保生成的.rpm清单不包含/、/usr、/usr/bin、/usr/lib64、/usr/share等系统根目录条目。
TODO / 不确定项
- 无。在本地使用移除了系统目录声明的
%files重新执行rpmbuild后,生成的.rpm已在 Fedora 44 上通过sudo dnf install实测验证可正常安装。
- 主要言語
- Rust
- スター
- 3.7k
- フォーク
- 349
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 98
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Open-Less/openless のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
[windows] 录音快捷键还不支持设置为ScrllLock键対応中かも @HKLHaoBin が 14 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Open-Less/openless#1241 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
area:ui bug P2
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
メンテナーはふだん 1 日以内に返信
Open-Less/openless の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
RustCrypto/utils#1597 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
max-sixty/worktrunk#4727 · コメント 7 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信
-
follow-up
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
carrick-sh/carrick#1859 ·
メンテナーはふだん 1 日以内に返信