Makfile

Asked by JulioJu

Bonjour,

Jean-Vincent, je viens de remarquer que vous aviez proposé une modification de la version du Makefile.local, sur laquelle vous êtes revenu. J'en profite pour présenter un patch que j'ai été obligé de créer sur le Makefile.

J'ai créé des PKGBUILD (semblable aux ports BSD) pour Archlinux . Sous Archlinux, le système de compilation n'est pas le même que sous Debian. Il n'utilise pas d'environnement chrooté : le « make install » doit provoquer la copie des fichiers dans un dossier qui n'est pas le dossier dont le chemin est celui où sera installé Marionnet. Or, actuellement la variable « $$prefix » est utilisée à la fois pour donner le chemin absolu dans lequel trouver les fichiers nécessaires au logiciel attribué lors du make ( /usr/local/share/marionnel), mais aussi pour les copies effectuées dans le « make install ».

Pour pallier à ce problème, j'ai été obligé de patcher le Makefile (disponible https://github.com/JulioJu/Marionnet_ArchLinux_Installer). Ainsi, si des modifications sont faites dans le Makefile, il est possible que cela rende impossible l'application du patch. Le mieux serait bien sûr de prendre en compte cette problématique dans le Makefile d'origine.

Bien cordialement,

Julio

Question information

Language:
French Edit question
Status:
Expired
For:
marionnet Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jean-Vincent Loddo (loddo) said :
#1

Bonjour,
Le Makefile de marionnet change très rarement, mais ça pourrait justement être le cas prochainement. En plus votre patch est intéressant et vous faites bien de me le signaler. Je vais étudier son intégration dans le trunk.
Jean-Vincent

Revision history for this message
Jean-Vincent Loddo (loddo) said :
#2

Après lecture du patch et du code, il semblerait qu'on ait besoin de deux paramètres, un préfixe "à temps d'exécution" et un "à temps d'installation" :

- prefix_runtime (l'actuel prefix), et
- prefix_installtime (le prefixInstall du patch)

Bien sûr, dans une grande partie des cas, mais pas avec Archlinux (et certainement d'autres distributions), les deux coïncident. Je me pose cependant la question de savoir s'il doit y avoir un troisième paramètre *aussi* pour la désinstallation. Autrement dit, votre patch indique implicitement que prefix_uninstalltime = prefix_installtime, mais dans le cas où prefix_runtime<>prefix_installtime cela revient à neutraliser la désinstallation (ce qui me semble toutefois acceptable).
Pour vous ajouter aux remerciements en tête du fichier, il me faudrait votre nom et prénom, mais je peux aussi mettre votre identifiant github/launchpad, cela ne me gêne pas, à vous de me dire ce que vous préférez.
J.V.

Revision history for this message
JulioJu (juanes0890) said :
#3

Bonjour,

Sous ArchLinux, la désinstallation est prise en charge par le PackageManager. Le processus d'empaquetage permet de conserver en mémoire la liste des fichiers, ainsi que leur emplacement. La désinstallation provoque la suppression de ces paquets. Cependant, excusez-moi, mais je n'ai pas compris ce que vous entendiez par « neutraliser la désinstallation ». Selon moi, le faite que prefix_uninstalltime = prefix_installtime permet la suppression des fichiers à l'endroit où ils ont été copiés.

J'ai regardé rapidement le bug https://answers.launchpad.net/marionnet/+question/295159, mais je ne comprends pas pourquoi.

J'ai vu seulement quelques petits détails qui ne devraient pas poser problème.

J'ai conçu le processus d'empaquetage de Marionnet Trunk d'une autre manière que vous. D'un côté, un CONFIGME pour Marionnet, de l'autre, un CONFIGME pour OcamlBricks.

Personnellement, je n'ai pas du tout patché le Makefile de Ocamlbricks, vu qu'il ne sert que lors du processus de compilation, donc il n'y a qu'à avoir le « prefix_installtime ». Pour l'installation d'Archlinux, c'est ce que j'ai fait, et ça marchait, je l'ai testé plusieurs fois.

De plus, pour le CONFIGME de Marionnet, petit détail mineur (qui ne devrait pas poser problème vu que prefix==prefix-install)
1200 configurationprefix=\$prefix/etc
1201 documentationprefix=\$prefix/share/doc
1202 localeprefix=\$prefix/share/locale
--> should become
1200 configurationprefix=\$prefix_install/etc
1201 documentationprefix=\$prefix_install/share/doc
1202 localeprefix=\$prefix_install/share/locale

Dans le CONFIGME, peut-être une modification mineure.
51 localeprefix=${prefix}/share/locale
55 documentationprefix=${prefix}/share/doc
--> should become
51 localeprefix=${prefix_install}/share/locale
55 documentationprefix=${prefix_install}/share/doc

De plus à la ligne 44 du configme on a le problème de
configurationprefix=/etc
En effet, il faudrait le mettre dans configurationprefix=${prefix_install}/../../etc, car si on veut juste empaqueter ça pose problème :-).
Sous Archlinux, j'ai simplement ./${pkgsrc}/etc, et le make install provoque une copie dans ./${pkgsrc}/usr/share (sans local).

Vous n'étiez pas obligé de me remercier pour mon apport, c'est rien par rapport à ce que vous avez conçu :-). En plus, apparemment ça pose des problème que je ne comprends pas. Mais merci,

Je pourrai regarder ce problème de compilation après mes partiels,

Bien cordialement,

Julio

Revision history for this message
Launchpad Janitor (janitor) said :
#4

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
JulioJu (juanes0890) said :
#5

Up !

Revision history for this message
Launchpad Janitor (janitor) said :
#6

This question was expired because it remained in the 'Open' state without activity for the last 15 days.