Publication du gestionnaire de paquets RPM 4.15

Après près de deux ans de développement a eu lieu lancement 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. Auparavant, il a été développé par une équipe indépendante de développeurs s'est développé le projet RPM5, qui n'est pas directement lié à RPM4 et est actuellement abandonné (non mis à jour depuis 2010).

Les plus remarquables améliorations dans RPM 4.15 :

  • Ajout d'un support expérimental pour la compilation non privilégiée dans un environnement chroot ;
  • Mise en œuvre de support du parallélisme de la compilation des paquets sur des systèmes multicoeurs. La limite du nombre de threads est définie par le macro « %_smp_build_ncpus » et la variable $RPM_BUILD_NCPUS. Un macro « %getncpus » a été proposé pour déterminer le nombre de CPU ;
  • Dans les fichiers spec, un support pour les opérateurs conditionnels « %elif » (else if) a été ajouté ainsi que des variantes « %elifos » et « %elifarch » pour lier à la distribution et à l'architecture ;
  • Ajoutés nouvelles sections « %patchlist » et « %sourcelist », qui peuvent être utilisées pour ajouter des patchs et des sources en énumérant simplement les noms sans spécifier de numéros d'enregistrement (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é le support de la construction dynamique des dépendances avec leur inclusion dans src.rpm. Dans le fichier spec, 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).
  • l'opérateur de séquence optionnelle l'opérateur « ^ » pour vérifier les versions antérieures à une date donnée, effectuant une action contraire à l'opérateur « ~ ». Par exemple,
    « 1.1^20160101 » inclura la version 1.1 et les patches ajoutés après le 1er janvier 2016 ;
  • Ajout de l'option « —scm » pour activer le mode « %autosetup SCM » ;
  • Ajout du macro intégré « %{expr:…} » pour calculer des expressions arbitraires (il y a quelques jours, un a été proposé format « %[ expr ] ») ;
  • Assuré l'utilisation par défaut de l'encodage UTF-8 pour les données de chaîne dans les en-têtes ;
  • Ajout de macros globales %build_cflags, %build_cxxflags, %build_fflags et %build_ldflags avec des drapeaux pour le compilateur et l'éditeur de liens ;
  • Ajout du macro « %dnl » (Discard to Next Line) pour insérer des commentaires ;
  • Dans les liaisons pour Python 3, renvoi des chaînes sous forme de séquences échappées UTF-8 au lieu de données byte ;
  • Ajout d'un backend fictif de base de données pour améliorer le support des systèmes sans rpmdb (par exemple, Debian);
  • Amélioration de la définition de l'architecture ARM et ajout de la prise en charge de armv8 ;
  • Support transparent pour Lua 5.2-5.3, sans nécessiter de définitions compat dans le code.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster