Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Représenter Fedora au Capitole du Libre 2019

#1 10/12/2010 14:50:31

azmimik
Membre
Inscription : 27/07/2008
Messages : 2

Erreur de construction de RPM: Fichier introuvable après compilation

Bonjour,

Avec des amis nous sommes en train de développer un projet en Ocaml et nous voudrions faire un rpm.

J'ai suivis la documentation et je pense que l'erreur vient de la forme de notre makefile.

Voici le fichier SPECS :

Name:        cartographix    
Version:    4.2
Release:    4%{?dist}
Summary:    Un projet Ocaml de cartographie 3D

Group:        Applications/Multimedia        
License:    GNU/GPL
URL:        http://cartographix.mazikim.com
Source0:    carto1.tar
BuildRequires:    ocaml-lablgtk-devel,ocaml-lablgl-devel
Requires:    ocaml-lablgtk,ocaml-lablgl

%description

%prep
%setup -q

%build
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc

%changelog

lorsque j'exécute la commande :

# rpmbuild -bp SPECS/cartographix.spec

et

rpmbuild -bc --short-circuit SPECS/cartographix.spec

tout se passe correctement, la compilation à l'air de fonctionner

Par contre :

rpmbuild -bi --short-circuit SPECS/cartographix.spec

me renvois :

Exécution_de(%install): /bin/sh -e /var/tmp/rpm-tmp.hiP4xB
+ umask 022
+ cd /home/builder/rpmbuild/BUILD
+ '[' /home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386 '!=' / ']'
+ rm -rf /home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386
++ dirname /home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386
+ mkdir -p /home/builder/rpmbuild/BUILDROOT
+ mkdir /home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386
+ cd cartographix-4.2
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf /home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386
+ make install DESTDIR=/home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386
ln -s /usr/lib/libgtkgl-2.0.so.1 libgtkgl-2.0.so
ocamlopt.opt -I +lablgtk2 -I +lablGL -ccopt -L. -o Cartographix graphics.cmxa lablgl.cmxa lablgtk.cmxa lablgtkgl.cmxa -ccopt -L. str.cmxa unix.cmxa loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx quadgrille.cmx writeFile.cmx writeObj.cmx grille.cmx Main.cmx
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /home/builder/rpmbuild/BUILD/cartographix-4.2
find: `/home/builder/rpmbuild/BUILDROOT/cartographix-4.2-4.fc13.i386': No such file or directory
erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.hiP4xB (%install)


Erreur de construction de RPM:
    Mauvais status de sortie pour /var/tmp/rpm-tmp.hiP4xB (%install)

Je pense que cela est du au Makefile :

gl:libgtkgl-2.0.so loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx writeFile.cmx writeObj.cmx grille.cmx quadgrille.cmx Main.cmx
    ocamlopt.opt -I +lablgtk2 -I +lablGL -ccopt -L. -o Gl graphics.cmxa lablgl.cmxa lablgtk.cmxa lablgtkgl.cmxa -ccopt -L. str.cmxa unix.cmxa loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx quadgrille.cmx writeFile.cmx writeObj.cmx grille.cmx Main.cmx

all:gl

install:gl

clean:
    rm -rf *.cmi *.cmo *.o *.cmx *.mli *.so Gl

.SUFFIXES:.ml .cmx

.ml.cmx:
    ocamlopt.opt -I +lablgtk2 -I +lablGL lablgtkgl.cmxa -c $<

mli:
    ocamlopt.opt -i -I +lablGL Main.ml > Main.mli
    ocamlopt.opt -i -I +lablGL grille.ml > grille.mli

libgtkgl-2.0.so:
    ln -s /usr/lib/libgtkgl-2.0.so.1 libgtkgl-2.0.so
#END

J'ai essayer de faire quelques choses avec la variable $(DESTDIR) dans le makefile, mais sans résultat.

Merci d'avance de votre aide

Dernière modification par azmimik (10/12/2010 14:57:14)

Hors ligne

#2 10/12/2010 16:07:57

pingou
Fedora Addict
Lieu : Toulouse
Inscription : 30/03/2006
Messages : 3 843
Site Web

Re : Erreur de construction de RPM: Fichier introuvable après compilation

Si ton make install n'installe pas les fichiers alors c'est à toi de le faire par la commande install.

Grosso-modo, as-tu testé ton makefile (make, make install) avant d'essayer de faire le rpm ?


On a pas inventé l'électricité en cherchant à améliorer la bougie...
-- Si c'est pas sur le bugzilla, c'est pas un bug ! --

Hors ligne

#3 10/12/2010 19:56:51

azmimik
Membre
Inscription : 27/07/2008
Messages : 2

Re : Erreur de construction de RPM: Fichier introuvable après compilation

Oui ça compile ;).

En faite j'ai trouvé le problème. Il venait bien du faite que je n'utilisait pas $(DESTDIR)

En effet make install prends un paramètre et il faut le récpérer dans le makefile.

Voici mon nouveau makefile :

gl:libgtkgl-2.0.so loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx writeFile.cmx writeObj.cmx grille.cmx quadgrille.cmx Main.cmx
    ocamlopt.opt -I +lablgtk2 -I +lablGL -ccopt -L. -o Gl graphics.cmxa lablgl.cmxa lablgtk.cmxa lablgtkgl.cmxa -ccopt -L. str.cmxa unix.cmxa loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx quadgrille.cmx writeFile.cmx writeObj.cmx grille.cmx Main.cmx

all:gl

install:libgtkgl-2.0.so loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx writeFile.cmx writeObj.cmx grille.cmx quadgrille.cmx Main.cmx
    mkdir $(DESTDIR)
    ocamlopt.opt -I +lablgtk2 -I +lablGL -ccopt -L. -o $(DESTDIR)Gl graphics.cmxa lablgl.cmxa lablgtk.cmxa lablgtkgl.cmxa -ccopt -L. str.cmxa unix.cmxa loadFile.cmx loadObj.cmx FileOpp.cmx traitement.cmx troisd.cmx quadgrille.cmx writeFile.cmx writeObj.cmx grille.cmx Main.cmx

clean:
    rm -rf *.cmi *.cmo *.o *.cmx *.mli *.so Gl

.SUFFIXES:.ml .cmx

.ml.cmx:
    ocamlopt.opt -I +lablgtk2 -I +lablGL lablgtkgl.cmxa -c $<

mli:
    ocamlopt.opt -i -I +lablGL Main.ml > Main.mli
    ocamlopt.opt -i -I +lablGL grille.ml > grille.mli

libgtkgl-2.0.so:
    ln -s /usr/lib/libgtkgl-2.0.so.1 libgtkgl-2.0.so
#END

Voila. (enfin presque, mon rpm n'est toujours pas fonctionnel, mais je vais continuer à creuser !)

Hors ligne

Pied de page des forums