Me gustaría modificar un paquete de Fedora 15 ( gnome-shell-extensions-alternative-status-menu). Es una pequeña modificación (revertir esta confirmación ). Utilizando yumdownloaderpuedo descargar un SRPM ( gnome-shell-extensions-3.0.2-1.g63dd27cgit.fc15.src.rpm).
Después de esto, ¿cómo lo desempaquete y luego lo reconstruya?

Respuestas:
Lo que hago, como usuario ROOT:
Instale el SRPM como lo haría con cualquier otro paquete (
rpm --install [source-rpm-filename])Examine el
/root/rpmbuild/SPECSdirectorio y encuentre el archivo de especificaciones que coincida con su paqueterpmbuild -bb /root/rpmbuild/SPECS/[found-filename]Los paquetes binarios resultantes se ubican en el
/root/rpmbuild/RPMS/directorio que está listo para instalarse mediante elrpm --installcomando estándar .NOTA: Esto solo construye lo que está en el paquete binario estándar. Estoy publicando esto respondiendo la pregunta específica, no cómo hacer cambios en la fuente y generar nuevos paquetes.
Para hacer las modificaciones, puede proporcionar parches como entrada y cambiar el archivo SPECS ... o puede reemplazar el estándar
*.tar.bz2ubicado/root/rpmbuild/SOURCEScon el suyo por el cambio y luego realizar la compilación como se describió anteriormente.Tenga en cuenta que es posible que tenga que cambiar el paquete SPECS para que funcione (por lo general, retirando el parche y cambiando algunos nombres de archivo programados por el archivo SPECS).
EDITAR
Parece que construir rpms como root es una mala práctica ( fuente ). Funciona bien como usuario no root.
Instrucciones paso a paso para agregar un parche (desde aquí ):
rpmbuild/SOURCES.rpmbuild/SPECS/package.specy agregue unPatch0: mypatch.patchderecho después de laSource0: ...línea.%setup ...línea agregue una%patch0 -p1líneaAhora se construirá normalmente, es decir. con:
rpmbuild -ba SPECS/package.specfuente
sudo dnf install rpmdevtoolses necesario para el comando rpmbuild. Y la%patch0 -p1línea debe omitirse si el archivo de especificaciones usa una%autosetuplínea en lugar de una%setup(como se%autosetupaplica el parche automáticamente).sudo rpm -ivh --force your.rpmOpenSSL Package Rebuild CentOS 6.4 es un ejemplo detallado de una reconstrucción de paquete SRPM.
El ejemplo anterior usa Mock : el Jedi Light Saber de los creadores de paquetes.
Mock fue creado para poblar de manera confiable un chroot, luego reconstruir un paquete en ese chroot.
Para más información, consulte http://fedoraproject.org/wiki/Projects/Mock
En el ejemplo, el simulacro se usa 3 veces: una vez para "desempaquetar" el paquete, luego para reconstruir el archivo .src.rpm y finalmente para crear el archivo .rpm.
fuente