Versión RPM 4.16

Despois dun ano de desenvolvemento tivo lugar versión do xestor de paquetes RPM 4.16.0. O proxecto RPM4 é desenvolvido por Red Hat e úsase en distribucións como RHEL (incluíndo proxectos derivados CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen e moitos outros. Equipo de desenvolvemento previamente independente desenvolvido proxecto RPM 5, que non está directamente relacionado con RPM4 e actualmente está abandonado (sen actualizar desde 2010). Código do proxecto distribuído por licenciado baixo GPLv2 e LGPLv2.

O máis salientable melloras en RPM 4.16:

  • Implementouse un novo backend para almacenar bases de datos no DBMS SQLite. Este backend empregarase en Fedora Linux 33 en lugar dun backend baseado en BerkeleyDB.
  • Implementouse un novo backend experimental para almacenar bases de datos en BDB (Oracle Berkeley DB), que funciona en modo de só lectura. A implementación está escrita desde cero e non usa código do backend de BerkeleyDB herdado, que quedou en desuso pero aínda está incluído por defecto.
  • Eliminouse o backend de base de datos experimental baseado en LMDB.
  • A base de datos de fondo baseada no almacenamento NDB declarouse estable.
  • Engadido soporte para macros e expresións "%if". operador tenar (%{expr:1==0?"yes":"non"}) e ofrece unha función de comparación de versións integrada ('%[v"3:1.2-1″ > v"2.0″]').
  • Implementouse o soporte para clasificar ficheiros en función dos tipos MIME do seu contido.
  • Engadida a posibilidade de xerar dependencias usando macros paramétricas.
  • Propúxose unha nova versión da API de análise e comparación para C e Python.
  • A paralelización da execución dos compoñentes de brp-strip e da suite de probas está garantida. Realizouse a optimización da paralelización do proceso de xeración de paquetes.
  • Para a utilidade rpmdb engadido opción "—salvagedb" para restaurar unha base de datos danada (funciona só co backend NDB).
  • Engadíronse novas macros %arm32, %arm64 e %riscv para a detección de arquitectura. Tamén engadiu unha macro integrada %{macrobody:...} para obter o contido das macros.
  • Está prohibido empregar palabras non separadas por comiñas nas expresións, é dicir. en lugar de 'a == b' agora cómpre escribir '"a" == "b"'.
  • O analizador de expresións implementa a sintaxe “%[...]” para executar unha expresión con expansión de macros (difire de “%{expr:...}” en que as macros execútanse primeiro).
  • Engadiuse soporte para a expansión curta dos operadores lóxicos e tenares nas expresións ("%[0 && 1 / 0]" trátase como 0 en lugar de provocar un erro debido ao intento de división por cero).
  • Engadido soporte para usar o operador lóxico NOT en contextos arbitrarios (!"%?foo").
  • Comportamento dos operadores "||". e "&&" está en liña con Perl/Python/Ruby, é dicir. En lugar de devolver un valor booleano, agora devolve o último valor calculado (por exemplo, "%[2 || 3]" devolverá 2).
  • Engadida a posibilidade de verificar formatos alternativos de sinaturas dixitais e hash.
  • Engadido soporte para metadependencias (Requires(meta): somepkg), que non afectan a orde de instalación e eliminación.
  • Engadida a opción "--rpmv3" a rpmsign para forzar o uso de sinaturas dixitais en formato RPM3.
  • Engadiuse a opción de instalación "--excludeartifacts" para omitir a instalación de documentación, ficheiros de configuración de exemplo e outros datos relacionados.
  • Compatibilidade obsoleta para RPMv3 e os backends criptográficos de beecrypt e NSS.
  • Engadido soporte para DSA2 (gcrypt) e EdDSA.

Fonte: opennet.ru

Engadir un comentario