Version RPM 4.15

Après près de deux ans de développement a eu lieu version du gestionnaire de paquets RPM 4.15.0. Le projet RPM4 est développé par Red Hat et est utilisé dans des distributions telles que RHEL (y compris les projets dérivés CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen et bien d'autres. Équipe de développement auparavant indépendante développé projet RPM5, qui n'est pas directement lié à RPM4 et est actuellement abandonné (non mis à jour depuis 2010).

Le plus remarquable améliorations dans RPM 4.15 :

  • Ajout d'un support expérimental pour l'assemblage sans privilèges dans un environnement chroot ;
  • Mis en œuvre prise en charge de la parallélisation de l'assemblage de packages sur les systèmes multicœurs. La limite du nombre de threads est définie via la macro « %_smp_build_ncpus » et la variable $RPM_BUILD_NCPUS. Pour déterminer le nombre de CPU, la macro « %getncpus » est proposée ;
  • Les fichiers de spécifications prennent désormais en charge l'opérateur conditionnel « %elif » (else if), ainsi que les options « %elifos » et « %elifarch » pour la liaison à la distribution et à l'architecture ;
  • Ajoutée de nouvelles sections "%patchlist" et "%sourcelist", qui peuvent être utilisées pour ajouter des correctifs et des sources en listant simplement les noms sans spécifier les numéros d'entrée (par exemple, au lieu de
    "Patch0 : popt-1.16-pkgconfig.patch" dans la section %patchlist, vous pouvez spécifier "popt-1.16-pkgconfig.patch");

  • Dans RPMbuild ajoutée prise en charge de l'assemblage dynamique des dépendances avec leur inclusion dans src.rpm. Dans le fichier de spécification, le support de la section « %generate_buildrequires » a été ajouté, dont le contenu est traité comme une liste de dépendances (BuildRequires), nécessitant une vérification (si la dépendance est manquante, une erreur sera affichée).
  • Mis en œuvre L'opérateur "^" est utilisé pour vérifier les versions antérieures à une date donnée, en faisant l'opposé de l'opérateur "~". Par exemple,
    « 1.1^20160101 » couvrira la version 1.1 et les correctifs ajoutés après le 1er janvier 2016 ;

  • Ajout de l'option "--scm" pour activer le mode "%autosetup SCM" ;
  • Ajout de la macro intégrée "%{expr:...}" pour évaluer des expressions arbitraires (il y a quelques jours, il y avait aussi suggéré format "%[ expr ]");
  • Garantit que le codage par défaut est UTF-8 pour les données de chaîne dans les en-têtes ;
  • Ajout des macros globales %build_cflags, %build_cxxflags, %build_fflags et %build_ldflags avec des indicateurs pour le compilateur et l'éditeur de liens ;
  • Ajout de la macro « %dnl » (Rejeter à la ligne suivante) pour insérer des commentaires ;
  • Les liaisons pour Python 3 garantissent que les chaînes sont renvoyées sous forme de séquences UTF-8 échappées au lieu de données d'octets ;
  • Ajout d'un backend de base de données factice pour améliorer la prise en charge des systèmes sans rpmdb (par exemple Debian) ;
  • Détection améliorée de l'architecture ARM et prise en charge supplémentaire d'armv8 ;
  • Fournit une prise en charge transparente de Lua 5.2-5.3, qui ne nécessite pas de définitions de compatibilité dans le code.

Source: opennet.ru

Ajouter un commentaire