Performances et concurrence
Homebrew 7.0.0 introduit une exécution parallèle des étapes de téléchargement, de préparation et d’installation. Les commandes brew install, brew reinstall et brew upgrade partagent désormais le travail de préparation, ce qui élimine les temps d’attente entre les paquets et permet à un Brewfile de profiter du même lot d’opérations. brew config collecte simultanément les informations du compilateur, du système d’exploitation et des dépôts, évitant ainsi les séquences bloquantes de sous‑processus. De même, brew tap-info --installed --json=v1 interroge plusieurs dépôts en parallèle, réduisant la latence des requêtes réseau tout en conservant l’ordre de sortie attendu par les scripts. Le nettoyage (brew cleanup) ne parcourt plus le cache à chaque exécution, ce qui accélère les environnements contenant de nombreux paquets. Enfin, brew fetch lit les métadonnées API pour les bouteilles et les casks, lançant les téléchargements sans charger la définition complète du paquet, et brew update pré‑prépare les caches Ruby afin que les commandes suivantes démarrent plus rapidement.
Renforcement du sandboxing et sécurité
La version 7.0.0 corrige plusieurs vulnérabilités répertoriées sous les identifiants GHSA. Le correctif GHSA‑rg9r‑ppxp‑87hm (niveau High) supprime le code de récupération de métadonnées non signé qui pouvait être exécuté avec les privilèges sudo. Les CVE GHSA‑5263‑whxq‑77hp et GHSA‑hqpg‑hjr9‑c7j8 (niveau Moderate) limitent respectivement l’exécution de code hors du bac à sable macOS via LaunchServices et l’utilisation de configurations Git malveillantes lors de l’installation du système. Les correctifs de bas niveau (GHSA‑x82f‑cj53‑gqfr, GHSA‑3m5g‑jfx7‑3p65, GHSA‑r9gp‑p4vv‑f93x, GHSA‑9g4r‑vmj2‑j2gj, GHSA‑r7qx‑325v‑4ccx) renforcent les contrôles sur les redirections HTTP, les URL externes Subversion et les chemins de correctifs, empêchant les fuites hors du répertoire source. Homebrew renforce également le sandboxing : les lectures du répertoire personnel sont bloquées par défaut, les caches de dépendances deviennent en lecture‑seule après le téléchargement, et les identifiants d’utilisateur réel et effectif sont comparés avant toute lecture de configuration. Ces mesures limitent les dommages accidentels tout en conservant la capacité d’exécuter des paquets non signés sous les privilèges de l’utilisateur.
Nouvelles commandes et options de configuration
Plusieurs ajouts facilitent le diagnostic et la gestion des environnements.
brew install --dry-run <formula> affiche un aperçu combiné des formules et des casks avant l’installation. brew list --no-installed-on-request identifie les paquets installés uniquement comme dépendances, tandis que brew info utilise les symboles ⊘ et ✘ pour distinguer les paquets désinstallables et les exigences d’OS ou d’architecture non satisfaites. Le service brew services lit désormais les surcharges persistantes depuis $HOMEBREW_USER_CONFIG_HOME/services/, garantissant que les paramètres survivent aux mises à jour. brew doctor --json fournit un diagnostic structuré exploitable par des scripts d’automatisation, et brew deps --brewfile analyse les dépendances d’un Brewfile avant de lancer une installation massive. Les variables d’environnement HOMEBREW_AUTO_UPDATE_QUIET et la suppression de l’exportation de BUNDLER_VERSION réduisent le bruit de sortie et évitent les conflits de version lors de la construction de formules.Compatibilité et fin de support
Homebrew 7.0.0 abandonne le support de macOS 10.15 et reclassifie les Macs Intel en « Tier 3 », ce qui impacte les builds qui dépendaient de ces plateformes. La migration des téléchargements de dépendances vers une phase de fetch distincte se poursuit, garantissant que les caches restent en lecture‑seule après le téléchargement. Les utilisateurs de versions antérieures doivent exécuter brew update ou désactiver l’auto‑mise à jour via $HOMEBREW_NO_AUTO_UPDATE pour éviter des incompatibilités. Malgré les améliorations de sandboxing, Homebrew rappelle que les paquets non signés exécutés avec les privilèges de l’utilisateur restent potentiellement dangereux, notamment les installateurs .pkg qui requièrent sudo.