2017-06-21 2 views
0

Fondamentalement, je travaille sur le portage d'un programme d'être emballé avec RPM en utilisant setup.py pour l'empaqueter comme une roue. Ma question centrale est de savoir s'il existe un guide ou un outil sur la façon de faire cette conversion.Comment faire pour convertir les dépendances de fichiers spec RPM en Python setup.py?

Le problème principal est que je cherche à convertir les dépendances spécifiées par le fichier spec de RPM en setup.py et ne trouve aucune information en ligne sur la façon de procéder.

+0

Etes-vous sûr que le RPM n'a pas été créé à l'origine à l'aide d'un 'setup.py'. La plupart des paquets python distribués en RPM sont (étaient?) En utilisant 'python setup.py bdist_rpm'. Cela ne garantit pas qu'il y ait un 'setup.py' dans le RPM avec lequel vous commencez, mais vous devriez au moins le décompresser. – Anthon

+0

Ouais j'ai accès à la source, il n'y a pas de fichier setup.py, c'est du code hérité qui a été empaqueté avec RPM en utilisant un fichier spec. – Humford

+0

Étant donné la flexibilité de ce que vous pouvez faire avec des scripts de (pré-) installation dans un RPM, je ne pense pas que vous trouviez une solution générique. Peut-être que vous pouvez publier le contenu de '.spec' (ou une version simplifiée) afin que les gens ici familiers avec RPM et' setup.py' aient une chance de trouver des "règles de traduction" – Anthon

Répondre

0

Toute réponse dépend probablement de la distribution pour laquelle le RPM a été construit. Une approche générique, quoique manuelle, devrait commencer par rpm -q --requires $PACKAGE mais comme vous avez déjà le fichier spec, vous pouvez simplement rpmspec -q --requires *spec pour obtenir la même information. Recherchez les packages fournissant des ressources Python, par exemple, python3-requests. Vous devrez traduire chacun d'entre eux dans le nom du package Python, par exemple, 'requests' pour votre fichier setup.py. Vous pouvez trouver que rpm -q --provides python3-requests pour être utile à cette étape; peut être pas.