[ivy-ocaml] création de paquet problème de compilation

Mise à jour / Création /debug de paquetages
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

[ivy-ocaml] création de paquet problème de compilation

Message par gael »

bonjour,

je voudrais compiler cette librairie et à terme pouvoir créer un PKGBUILD

ivy-ocaml

https://github.com/flixr/ivy-ocaml

mais lors du make j'ai cette erreur
alors que j'ai installé ivy-c (voir ce post viewtopic.php?f=13&t=16619
ivy-c est ici /usr/include/Ivy/ivy.h

Code : Tout sélectionner

cc -Wall -c -fPIC -I /opt/local/include/  -I `ocamlc -where` `pkg-config --cflags glib-2.0` civy.c
civy.c:86:35: erreur: unknown type name ‘IVY_HANDLE’
 void cb_write_channel(Channel ch, IVY_HANDLE fd, void *closure)
                                   ^
civy.c:90:34: erreur: unknown type name ‘IVY_HANDLE’
 void cb_read_channel(Channel ch, IVY_HANDLE fd, void *closure)
                                  ^
Makefile:138 : la recette pour la 
j'ai aussi testé avec une archive plutot que le SVN
http://www.eei.cena.fr/products/ivy/dow ... ource.html

ivyocaml.tgz

Code : Tout sélectionner

cc -Wall -c `pkg-config --cflags glib-2.0` civy.c
civy.c:5:17: erreur fatale: ivy.h : Aucun fichier ou dossier de ce type
 #include <ivy.h>

merci pour vos conseils
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

J'ai vu ton autre sujet, viewtopic.php?f=13&t=16619, je pense que tu n'utilises pas les headers fournis par ivy-c (dans /usr/include/Ivy/ ou quelque chose du genre).
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

FoolEcho a écrit :J'ai vu ton autre sujet, viewtopic.php?f=13&t=16619, je pense que tu n'utilises pas les headers fournis par ivy-c (dans /usr/include/Ivy/ ou quelque chose du genre).
euh je ne comprend pas tu peux détailler ?
merci pour ta réponse

mon objectif est de pouvoir créer un paquet archlinux pour le programme de pilotage de drone paparazzi

http://wiki.paparazziuav.org/wiki/Insta ... romScratch
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

Que tu as besoin d'indiquer à make d'aller chercher les headers de ton paquet ivy-c (ta trace montre un -I /opt/local/include/, mais ce serait plutôt -I /usr/include/Ivy/, ivy ou ivy-c... ou au moyen de pkgconfig selon ce que t'as fourni ton précédent paquet ivy-c). Tu n'as pas indiqué plus d'éléments de ton PKGBUILD ici donc je ne peux pas être beaucoup plus précis. :P
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [ivy-ocaml] création de paquet problème de compilation

Message par benjarobin »

@FoolEcho IVY_HANDLE est défini nul part dans les sources de ivy-c
Le type utilisé est tout simplement HANDLE et non IVY_HANDLE
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

Code : Tout sélectionner

pkgname=ivy-ocaml
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl')
makedepends=('cmake')
source=("http://www.eei.cena.fr/products/ivy/download/packages/ivyocaml.tgz")
md5sums=('5053f2449a3ef83ef079ddde33f2f1b5')

prepare() {
  cd "${srcdir}/${pkgname}"
  sed -i 's|lib$(PERHAPS64)|lib|' Makefile
  sed -i 's|mkdirhier|mkdir -p|g' Makefile
}

build() {
  cd "${srcdir}/${pkgname}"
  make
}

package() {
  cd "${srcdir}/${pkgname}"
  make PREFIX="/usr" DESTDIR="${pkgdir}" install
}


Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

benjarobin a écrit :@FoolEcho IVY_HANDLE est défini nul part dans les sources de ivy-c
Le type utilisé est tout simplement HANDLE et non IVY_HANDLE
Pas dans les sources utilisées dans l'autre sujet apparemment:
https://github.com/flixr/ivy-c/blob/mas ... ychannel.h

et sur lesquelles ivy-ocaml s'est aligné:
https://github.com/flixr/ivy-ocaml/comm ... 76e6b29587
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

du coup comment je fais pour rajouter ça dans mon PKGBUILD ?

Code : Tout sélectionner

-I /usr/include/Ivy/
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

Ah désolé... Il faut voir comment est fait le Makefile.

À vue de nez (pas vérifié), rajoute ceci dans la fonction prepare du PKGBUILD d'ivy-ocaml

Code : Tout sélectionner

sed -i 's|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include -I/usr/include/Ivy |' Makefile
Un patch serait préférable en faisant le += supplémentaire juste après le endif...

Tout ça tient au fait que ivy-c ne fournit pas de quoi utiliser pkgconfig donc à voir s'il ne manque pas d'autres include en dehors de glibc...
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

voici le nouveau PKGBUILD
mais l'erreur persiste

Code : Tout sélectionner

pkgname=ivy-ocaml
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'ivy-c')
makedepends=('cmake')
source=("http://www.eei.cena.fr/products/ivy/download/packages/ivyocaml.tgz")
md5sums=('5053f2449a3ef83ef079ddde33f2f1b5')

prepare() {
  cd "${srcdir}/${pkgname}"
  sed -i 's|lib$(PERHAPS64)|lib|' Makefile
  sed -i 's|mkdirhier|mkdir -p|g' Makefile

sed -i 's|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include -I/usr/include/Ivy |' Makefile
}

build() {
  cd "${srcdir}/${pkgname}"
  make PREFIX="/usr/include/Ivy/"
}

package() {
  cd "${srcdir}/${pkgname}"
  make PREFIX="/usr" DESTDIR="${pkgdir}" install
}


et voici le makefile

Code : Tout sélectionner

# $Id: Makefile,v 1.17 2005/04/29 07:43:09 brisset Exp $

DESTDIR = /

OCAMLC = ocamlc -g
OCAMLMLI = ocamlc
OCAMLOPT = ocamlopt -unsafe
OCAMLDEP=ocamldep
OCAMLFLAGS=
OCAMLOPTFLAGS=
CFLAGS=-Wall
GLIBINC=`pkg-config --cflags glib-2.0`

IVY = ivy.ml ivyLoop.ml

IVYCMO= $(IVY:.ml=.cmo)
IVYCMI= $(IVY:.ml=.cmi)
IVYMLI= $(IVY:.ml=.mli)
IVYCMX= $(IVY:.ml=.cmx)

GLIBIVY = ivy.ml glibIvy.ml

GLIBIVYCMO= $(GLIBIVY:.ml=.cmo)
GLIBIVYCMI= $(GLIBIVY:.ml=.cmi)
GLIBIVYCMX= $(GLIBIVY:.ml=.cmx)

TKIVY = ivy.ml tkIvy.ml

TKIVYCMO= $(TKIVY:.ml=.cmo)
TKIVYCMI= $(TKIVY:.ml=.cmi)
TKIVYCMX= $(TKIVY:.ml=.cmx)

LIBS = ivy-ocaml.cma ivy-ocaml.cmxa glibivy-ocaml.cma glibivy-ocaml.cmxa
# tkivy-ocaml.cma tkivy-ocaml.cmxa

all : $(LIBS)

deb :
	dpkg-buildpackage -rfakeroot

ivy : ivy-ocaml.cma ivy-ocaml.cmxa
glibivy : glibivy-ocaml.cma glibivy-ocaml.cmxa
tkivy : tkivy-ocaml.cma tkivy-ocaml.cmxa

INST_FILES = $(IVYCMI) $(IVYMLI) glibIvy.cmi $(LIBS) libivy-ocaml.a libglibivy-ocaml.a dllivy-ocaml.so dllglibivy-ocaml.so ivy-ocaml.a glibivy-ocaml.a
# tkIvy.cmi  libtkivy-ocaml.a  dlltkivy-ocaml.so tkivy-ocaml.a

install : $(LIBS)
	mkdir -p $(DESTDIR)/`ocamlc -where`
	cp $(INST_FILES) $(DESTDIR)/`ocamlc -where`

desinstall :
	cd `ocamlc -where`; rm -f $(INST_FILES)

ivy-ocaml.cma : $(IVYCMO) civy.o civyloop.o
	ocamlmklib -o ivy-ocaml $^ -livy

ivy-ocaml.cmxa : $(IVYCMX) civy.o civyloop.o
	ocamlmklib -o ivy-ocaml $^ -livy

glibivy-ocaml.cma : $(GLIBIVYCMO) civy.o cglibivy.o
	ocamlmklib -o glibivy-ocaml $^ -lglibivy `pkg-config --libs glib-2.0` -lpcre

glibivy-ocaml.cmxa : $(GLIBIVYCMX) civy.o cglibivy.o
	ocamlmklib -o glibivy-ocaml $^ -lglibivy `pkg-config --libs glib-2.0` -lpcre

tkivy-ocaml.cma : $(TKIVYCMO) civy.o ctkivy.o
	ocamlmklib -o tkivy-ocaml $^ -livy -ltclivy

tkivy-ocaml.cmxa : $(TKIVYCMX) civy.o ctkivy.o
	ocamlmklib -o tkivy-ocaml $^ -livy -ltclivy

.SUFFIXES:
.SUFFIXES: .ml .mli .mly .mll .cmi .cmo .cmx .c .o .out .opt

.ml.cmo :
	$(OCAMLC) $(OCAMLFLAGS) $(INCLUDES) -c $<
.c.o :
	$(CC) -Wall -c $(GLIBINC) $<
.mli.cmi :
	$(OCAMLMLI) $(OCAMLFLAGS) -c $<
.ml.cmx :
	$(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<
.mly.ml :
	ocamlyacc $<
.mll.ml :
	ocamllex $<
.cmo.out :
	$(OCAMLC) -custom -o $@ unix.cma -I . ivy-ocaml.cma $< -cclib -livy
.cmx.opt :
	$(OCAMLOPT) -o $@ unix.cmxa -I . ivy-ocaml.cmxa $< -cclib -livy

clean:
	\rm -f *.cm* *.o *.a .depend *~ *.out *.opt .depend *.so *_stamp

.depend:
	$(OCAMLDEP) $(INCLUDES) *.mli *.ml > .depend

include .depend
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

Ok... c'est parce que je me basais sur le MAKEFILE du svn...

Il faut alors quelque chose du genre

Code : Tout sélectionner

sed -i 's|GLIBINC=|GLIBINC=-I/usr/include/Ivy -I/usr/lib/ocaml |' Makefile
Mais après essai, il doit manquer au moins ivy-glib et ivy-tcl (au passage il manque ocaml dans les dépendances de ton PKGBUILD)... à supposer que ton lien direct ne soit pas trop vieux... :?
Et le passage au svn pose problème à cause du certificat du serveur (auto-signé, du coup ça fait hurler curl et il n'y a pas vraiment moyen de contourner puisque c'est à la charge de l'utilisateur...)... :evil:

(dans l'immédiat tu peux passer par

svn co https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk

et accepter temporairement le certificat pour continuer les tests de compilation...)

L'option restante serait de passer par les binaires précompilés... :(
http://www.eei.cena.fr/products/ivy/download/index.html
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

ok pour le moment donc ça donne ça

Code : Tout sélectionner

pkgname=ivy-ocaml
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'ivy-c'  'ocaml')
makedepends=('cmake')
source=()
md5sums=()

_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'

prepare() {
	cd "${srcdir}"

	svn co $_svntrunk
	cd "${srcdir}/trunk" 

	# sed -i 's|lib$(PERHAPS64)|lib|' Makefile
	#  sed -i 's|mkdirhier|mkdir -p|g' Makefile

	sed -i 's|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include -I/usr/include/Ivy |' Makefile
	sed -i 's|GLIBINC=|GLIBINC=-I/usr/include/Ivy -I/usr/lib/ocaml |' Makefile
}

build() {
  cd "${srcdir}/trunk"
  make PREFIX="/usr/include/Ivy/"
}

package() {
  cd "${srcdir}/trunk"
  make PREFIX="/usr" DESTDIR="${pkgdir}" install
}
avec comme résultat

Code : Tout sélectionner

==> Starting build()...
Package ivy-c was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-c.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-c' found
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
Package ivy-tcl was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-tcl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-tcl' found
ocamldep  *.mli *.ml > .depend
Package ivy-c was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-c.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-c' found
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
Package ivy-tcl was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-tcl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-tcl' found
ocamlc  -c ivy.mli
ocamlc   -c ivy.ml
File "ivy.ml", line 58, characters 10-23:
Warning 3: deprecated: String.create
Use Bytes.create instead.
File "ivy.ml", line 61, characters 4-34:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "ivy.ml", line 62, characters 4-39:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "ivy.ml", line 68, characters 10-23:
Warning 3: deprecated: String.create
Use Bytes.create instead.
File "ivy.ml", line 70, characters 4-69:
Warning 3: deprecated: String.set
Use Bytes.set instead.
ocamlc  -c ivyLoop.mli
ocamlc   -c ivyLoop.ml
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
cc -Wall -c -fPIC -I /usr/lib/ocaml  -I/usr/include/tcl -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  civy.c
civy.c:86:35: error: unknown type name 'IVY_HANDLE'
 void cb_write_channel(Channel ch, IVY_HANDLE fd, void *closure)
                                   ^
civy.c:90:34: error: unknown type name 'IVY_HANDLE'
 void cb_read_channel(Channel ch, IVY_HANDLE fd, void *closure)
                                  ^
Makefile:165: recipe for target 'civy.o' failed
make: *** [civy.o] Error 1

effectivement manque ivy-glib et ivy-tcl mais je ne vois pas comment obtenir ces librairies ....
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

ah ca progresse j'ai fait un PKGBUILD pour compiler la version svn de ivy-c
et du coup j'ai cette erreur a la compilation de ivy-ocaml-svn

Code : Tout sélectionner

==> Entering fakeroot environment...
==> Starting package()...
mv META.ivy META && ocamlfind install  ivy META ivy.mli ivyLoop.mli ivy.cmi ivyLoop.cmi ivy.cmx ivyLoop.cmx ivy-ocaml.cma ivy-ocaml.cmxa libivy-ocaml.a ivy-ocaml.a dllivy-ocaml.so && mv META META.ivy || (mv META META.ivy && exit 1)
ocamlfind: Cannot mkdir /usr/lib/ocaml/ivy: Permission denied
Makefile:122: recipe for target 'install' failed
make: *** [install] Error 1
==> ERROR: A failure occurred in package().
    Aborting...
le PKGBUILD de ivy-c-svn

Code : Tout sélectionner

pkgname=ivy-c-svn
pkgver=3.9.2
pkgrel=1
pkgdesc="ivy-c Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl')
conflicts=('ivy-svn')
makedepends=('cmake')

_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-c/trunk'


prepare() {


        cd "${srcdir}"

        svn co $_svntrunk
        cd "${srcdir}/trunk/src"

        sed -i 's|lib$(PERHAPS64)|lib|' Makefile
        sed -i 's|mkdirhier|mkdir -p|g' Makefile

}

build() {

        cd "${srcdir}/trunk/src"
  make PREFIX="/usr/include/Ivy/"
}

package() {
  cd "${srcdir}/trunk/src"
  make PREFIX="/usr" DESTDIR="${pkgdir}" install
}

et celui de ivy-ocaml-svn

Code : Tout sélectionner

pkgname=ivy-ocaml-svn
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'ivy-c-svn' 'ocaml')
makedepends=('cmake')
source=()
md5sums=()

_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'

prepare() {
  cd "${srcdir}"

  svn co $_svntrunk
  cd "${srcdir}/trunk"

# sed -i 's|lib$(PERHAPS64)|lib|' Makefile
#  sed -i 's|mkdirhier|mkdir -p|g' Makefile

sed -i 's|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include|IVY_CINC += -I$(OSX_MACPORTS_PREFIX)/include -I/usr/include/Ivy |' Makefile
sed -i 's|GLIBINC=|GLIBINC=-I/usr/include/Ivy -I/usr/lib/ocaml |' Makefile
}

build() {
  cd "${srcdir}/trunk"
  make PREFIX="/usr/include/Ivy/"
}

package() {
  cd "${srcdir}/trunk"
  make PREFIX="/usr" DESTDIR="${pkgdir}" install
}

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

Faut que je regarde...

Par contre le PREFIX de tes premiers make (dans build) n'a pas de sens.
Et il faut rajouter subversion dans les makedepends...
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

FoolEcho a écrit :Faut que je regarde...

Par contre le PREFIX de tes premiers make (dans build) n'a pas de sens.
Et il faut rajouter subversion dans les makedepends...

oui le prefix dans le paquet de ivy-c-svn il faut que je le rajoute
et ok aussi pour subversion
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

Voilà une mouture qui compile... À toi de voir si ça te sert:

Code : Tout sélectionner

pkgname=ivy-ocaml-svn
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'tk' 'ivy-c-svn' 'ocaml-findlib')
makedepends=('cmake' 'subversion')
source=()

_DESTDIR=$(ocamlfind printconf destdir)
_LDCONF=$(ocamlfind printconf ldconf)

_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'

prepare() {
  cd "${srcdir}"

  svn co $_svntrunk
  cd "${srcdir}/trunk"

   sed \
      -e "s|ocamlfind remove|ocamlfind remove -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
      -e "s|ocamlfind install|ocamlfind install -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
      -i Makefile
    
}

build() {
  cd "${srcdir}/trunk"
  make -j1
}

package() {
   mkdir -p $pkgdir$_DESTDIR
   touch $pkgdir$_DESTDIR/ld.conf

  cd "${srcdir}/trunk"
  make DESTDIR="${pkgdir}/usr" install
  
  rm $pkgdir$_DESTDIR/ld.conf
}
Il faudra s'occuper du numéro de version aussi vu que leur histoire de certificat oblige à contourner la manière propre d'user du PKGBUILD...

Tu peux t'inspirer de ce PKGBUILD pour ce qui manque: https://aur.archlinux.org/packages/apron-ocaml-svn/ (c'est d'ailleurs lui qui m'a permis de résoudre ce qui coinçait vu que je ne suis pas un as du caml et de la compilation autour :) ).

EDIT: ... note que j'ai dû passer un -j1 au make sans quoi la compilation foirait chez moi...
«The following statement is not true. The previous statement is true.» :nage:
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

ok merci ça fonctionne mais erreur à la compilation

Code : Tout sélectionner

sudo pacman -Syu ocaml-xml-light ocamlnet lablgtk2  pkg-config
mkdir paparazzi
cd paparazzi
git clone https://github.com/paparazzi/paparazzi.git
cd paparazzi/
git checkout v5.4
git checkout master
make
et voici le retour du make

Code : Tout sélectionner

DOWNLOAD: google maps version code
Updated google maps version to 167
-----------------------------------------------
make -C sw/lib/ocaml
make[1]: pkg-config : commande introuvable
OC http.ml
File "http.ml", line 5, characters 5-16:
Error: Unbound module Http_client
Makefile:129 : la recette pour la cible « http.cmo » a échouée
make[1]: *** [http.cmo] Erreur 2
Makefile:139 : la recette pour la cible « libpprz » a échouée
make: *** [libpprz] Erreur 2

FoolEcho a écrit :Voilà une mouture qui compile... À toi de voir si ça te sert:

Code : Tout sélectionner

pkgname=ivy-ocaml-svn
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'tk' 'ivy-c-svn' 'ocaml-findlib')
makedepends=('cmake' 'subversion')
source=()

_DESTDIR=$(ocamlfind printconf destdir)
_LDCONF=$(ocamlfind printconf ldconf)

_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'

prepare() {
  cd "${srcdir}"

  svn co $_svntrunk
  cd "${srcdir}/trunk"

   sed \
      -e "s|ocamlfind remove|ocamlfind remove -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
      -e "s|ocamlfind install|ocamlfind install -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
      -i Makefile
    
}

build() {
  cd "${srcdir}/trunk"
  make -j1
}

package() {
   mkdir -p $pkgdir$_DESTDIR
   touch $pkgdir$_DESTDIR/ld.conf

  cd "${srcdir}/trunk"
  make DESTDIR="${pkgdir}/usr" install
  
  rm $pkgdir$_DESTDIR/ld.conf
}
Il faudra s'occuper du numéro de version aussi vu que leur histoire de certificat oblige à contourner la manière propre d'user du PKGBUILD...

Tu peux t'inspirer de ce PKGBUILD pour ce qui manque: https://aur.archlinux.org/packages/apron-ocaml-svn/ (c'est d'ailleurs lui qui m'a permis de résoudre ce qui coinçait vu que je ne suis pas un as du caml et de la compilation autour :) ).

EDIT: ... note que j'ai dû passer un -j1 au make sans quoi la compilation foirait chez moi...
Dernière modification par gael le mar. 17 mars 2015, 15:29, modifié 3 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17563
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [ivy-ocaml] création de paquet problème de compilation

Message par benjarobin »

Quelle erreur ??
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
gael
yeomen
Messages : 251
Inscription : dim. 31 oct. 2010, 02:07

Re: [ivy-ocaml] création de paquet problème de compilation

Message par gael »

benjarobin a écrit :Quelle erreur ??

Code : Tout sélectionner

sudo pacman -Syu ocaml-xml-light ocamlnet lablgtk2  pkg-config ivy-c-svn ivy-ocaml-svn
mkdir paparazzi
cd paparazzi
git clone https://github.com/paparazzi/paparazzi.git
cd paparazzi/
git checkout v5.4
git checkout master
make
et voici le retour du make

Code : Tout sélectionner

make
------------------------------------------------------------
Building Paparazzi version v5.5_devel-348-g9216228
------------------------------------------------------------
make -C data/maps
-----------------------------------------------
DOWNLOAD: google maps version code
Updated google maps version to 167
-----------------------------------------------
make -C sw/lib/ocaml
OC http.ml
File "http.ml", line 5, characters 5-16:
Error: Unbound module Http_client
Makefile:129 : la recette pour la cible « http.cmo » a échouée
make[1]: *** [http.cmo] Erreur 2
Makefile:139 : la recette pour la cible « libpprz » a échouée
make: *** [libpprz] Erreur 2

Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [ivy-ocaml] création de paquet problème de compilation

Message par FoolEcho »

J'imagine qu'il s'agit du même type d'erreur qui t'empêchait de compiler ivy-ocaml... à savoir que le Makefile en l'état ne sait pas où trouver les modules manquants.

http://stackoverflow.com/questions/3848 ... s-in-ocaml
https://realworldocaml.org/v1/en/html/f ... grams.html

... à éplucher (je ne suis évidemment pas familier de la compilation de ocaml...).
«The following statement is not true. The previous statement is true.» :nage:
Répondre