Después de casi dos años de desarrollo lanzamiento del administrador de paquetes El proyecto RPM4 es desarrollado por Red Hat y se utiliza en distribuciones como RHEL (incluidos proyectos derivados). CentOS, Científico LinuxAsiaLinuxBandera roja Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT LinuxOpenMandriva, Mageia, PCLinuxSistemas operativos, Tizen y muchos otros. Anteriormente, un equipo de desarrollo independiente. proyecto , que no está directamente relacionado con RPM4 y actualmente está abandonado (no actualizado desde 2010).
Lo mas notable en RPM 4.15:
- Se agregó soporte experimental para ensamblaje sin privilegios en un entorno chroot;
- soporte para la paralelización del ensamblaje de paquetes en sistemas multinúcleo. El límite en la cantidad de subprocesos se establece a través de la macro “%_smp_build_ncpus” y la variable $RPM_BUILD_NCPUS. Para determinar el número de CPU se propone la macro “%getncpus”;
- Los archivos de especificaciones ahora admiten el operador condicional “%elif” (si no), así como las opciones “%elifos” y “%elifarch” para vincularse a la distribución y la arquitectura;
- nuevas secciones "%patchlist" y "%sourcelist", que se pueden usar para agregar parches y fuentes simplemente enumerando nombres sin especificar números de entrada (por ejemplo, en lugar de
“Patch0: popt-1.16-pkgconfig.patch” en la sección %patchlist puede especificar “popt-1.16-pkgconfig.patch”); - En rpmbuild soporte para ensamblaje dinámico de dependencias con su inclusión en src.rpm. En el archivo de especificaciones, se agregó soporte para la sección "%generate_buildrequires", cuyo contenido se procesa como una lista de dependencias (BuildRequires), que requieren verificación (si falta la dependencia, se mostrará un error).
- El operador "^" se utiliza para comprobar si hay versiones anteriores a una fecha determinada, haciendo lo contrario del operador "~". Por ejemplo,
"1.1^20160101" cubrirá la versión 1.1 y los parches agregados después del 1 de enero de 2016; - Se agregó la opción "--scm" para habilitar el modo "%autosetup SCM";
- Se agregó la macro incorporada "%{expr:...}" para evaluar expresiones arbitrarias (hace unos días también hubo formato "%[ expr ]");
- Garantiza que la codificación predeterminada sea UTF-8 para los datos de cadena en los encabezados;
- Se agregaron macros globales %build_cflags, %build_cxxflags, %build_fflags y %build_ldflags con indicadores para el compilador y el vinculador;
- Se agregó la macro “%dnl” (Descartar en la siguiente línea) para insertar comentarios;
- Los enlaces para Python 3 garantizan que las cadenas se devuelvan como secuencias UTF-8 escapadas en lugar de datos de bytes;
- Se agregó un backend de base de datos ficticio para mejorar la compatibilidad con sistemas sin rpmdb (por ejemplo, Debian);
- Detección de arquitectura ARM mejorada y soporte agregado para armv8;
- Proporciona soporte perfecto para Lua 5.2-5.3, que no requiere definiciones de compatibilidad en el código.
Fuente: opennet.ru
