[infra/devex] Linux RPM 打包 spec 使用 %files / 导致在 Fedora 上与 filesystem 包冲突无法安装
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- linux, rust
- Domaine
- build-system, devops
Piste de recherche
Commencez par openless-all/app/scripts/package-linux-egui.sh, autour de la section %files de openless.spec, puis examinez openless-all/app/scripts/verify-linux-egui-packages.sh. Limitez le manifeste RPM aux fichiers et répertoires appartenant à OpenLess, et ajoutez une vérification qui exclut les répertoires système partagés. Le résultat attendu est que le manifeste RPM généré omette ces répertoires et que le paquet s’installe sur Fedora 44.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
现象
- 触发条件:在 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实测验证可正常安装。
- Langage dominant
- Rust
- Étoiles
- 3.7k
- Forks
- 349
- Merge moyen
- 1 j 13 h
- PR mergées (30 j)
- 98
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Open-Less/openless
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
[windows] 录音快捷键还不支持设置为ScrllLock键Peut-être pris @HKLHaoBin l’a pris il y a 14 jours. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Open-Less/openless#1241 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
area:ui bug P2
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de Open-Less/openless
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
RustCrypto/utils#1597 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Non-`main` default branchesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
max-sixty/worktrunk#4727 · 7 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 1 jour
-
follow-up
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
carrick-sh/carrick#1859 ·
Les mainteneurs répondent en général sous 1 jour