Attention à la Pythoncalypse de macOS !

Apple l’avait annoncé depuis quelques temps déjà : le langage de programmation Python 2, intégré à macOS, devait être retiré définitivement et non remplacé. Et que croyez-vous qu’il arriva : c’est le cas depuis macOS Monterey 12.3. Les conséquences sont parfois importantes : en effet, certains packages d’installation utilisent parfois des scripts en Python.

De même, de nombreux scripts qui circulent sur le net utilisent des commandes en Python. Et pendant très longtemps, même Apple recommandait de passer par une commande Python pour récupérer le nom de l’utilisateur courant. J’avais d’ailleurs indiqué une commande alternative lors d’un article précédent.

Les administrateurs de parc Mac seront donc avisés de vérifier que leurs scripts n’utilisent désormais pas de Python, ou en tout cas, de savoir quelles fonctions y font appel. Pour cela, il existe quelques outils qui peuvent faciliter la donne.

Vérifier la présence de Python dans vos scripts Jamf

Mon indispensable Laurent Pertois a commis un script capable de vérifier la présence de la commande désormais honnie dans vos scripts. Le script se récupère sur son Github, et vous devrez fournir quelques informations en début de script pour le faire fonctionner correctement (URL du serveur, identifiant et mot de passe). Comme il repose sur l’API Jamf, il sera conseillé de créer un compte réservé à l’utilisation de l’API avec des droits restreints.

Vérifier la présence de Python dans vos packages

L’excellent Armin Brezel de l’excellent site Scripting OS X a lui aussi créé un script fort efficace pour traiter le problème des packages. Indiquez simplement un ou plusieurs packages, ou encore un dossier suivi d’un joker (ex : mondossierdepackages/*) comme argument(s) du script, et il se chargera de vérifier lesquels font référence à Python (et donc à tester en priorité, ou à remplacer si possible).

Installer Python 3

Une dernière alternative reste pour les administrateurs d’installer eux-même Python 3. Une version maintenue par la communauté MacAdmins se trouve ici. Il sera cependant indispensable de faire en sorte que vos scripts soient modifiés pour en tenir compte (ou de faire en sorte de pointer vers la nouvelle version de Python quand on appelle /usr/bin/python). Et évidemment, à vous d’en assurer la maintenance.