[infra/devex] Linux RPM 打包 spec 使用 %files / 导致在 Fedora 上与 filesystem 包冲突无法安装
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- linux, rust
- Área
- build-system, devops
Línea de trabajo
Empieza por openless-all/app/scripts/package-linux-egui.sh, en la sección %files de openless.spec, y luego revisa openless-all/app/scripts/verify-linux-egui-packages.sh. Limita el manifiesto RPM a los archivos y directorios que pertenecen a OpenLess y añade una comprobación que excluya los directorios compartidos del sistema. El objetivo se alcanza cuando el manifiesto RPM generado omite esos directorios y el paquete se instala en Fedora 44.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
现象
- 触发条件:在 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实测验证可正常安装。
- Lenguaje dominante
- Rust
- Estrellas
- 3.7k
- Forks
- 349
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 98
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Open-Less/openless
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
[windows] 录音快捷键还不支持设置为ScrllLock键Posiblemente ocupada @HKLHaoBin la tomó hace 14 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Open-Less/openless#1241 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
area:ui bug P2
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
Todos los issues de Open-Less/openless
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
RustCrypto/utils#1597 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Non-`main` default branchesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
max-sixty/worktrunk#4727 · 7 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
carrick-sh/carrick#1859 ·
Los mantenedores suelen responder en 1 día