Bug #622
compile libprelude à partir des souces avec freebsd
0%
Description
Bonjour,
J'essaye de compiler libprelude 1.2.5 à partir des sources et j'obtiens une erreur au moment de la compilation de libpreludedb. Voici comment j'ai procédé :
Installation des packages suivant :**
gnutls, pkgconf, libgcrypt, wget, perl 5.18 python27, mysql55-server et création du fichier `/usr/local/bin/libgnutls-config` :
Téléchargement des sources puis
./configure
- Dumping configuration ***
- Generate documentation : no
- LUA binding : no
- Perl binding : yes
- Python2.x binding : yes
- Python3.x binding : no
- Ruby binding : no
- Easy bindings : yes
Je fais make puis make install, et tout se passe bien, aucune erreur de compil
j'ai également verifié que le fichier /usr/local/bin/libprelude-config était présent (c'est le cas) et j'ai bien déclaré les variables environnement avec la commande setenv LD_LIBRARY_PATH /usr/local/lib
Les fichiers `libprelude.a`, `libprelude.la`, `libpreludecpp.a` et `libpreludecpp.la` on été crées dans `/usr/local/lib`, et les headers ont bien été placés dans `/usr/local/include`
lorsque je tente l'installation de libpreludedb ou prelude-LML, j'ai systématiquement ce même message d'erreur
checking for libprelude-config... /usr/local/bin/libprelude-configchecking for libprelude - version >= 1.2.5... no
- Could not run libprelude test program, checking why...
- The test program failed to compile or link. See the file config.log for the
- exact error that occured. This usually means LIBPRELUDE was incorrectly installed
- or that you have moved LIBPRELUDE since it was installed. In the latter case, you
- may want to edit the libprelude-config script: /usr/local/bin/libprelude-config
configure: error: Cannot find libprelude: Is libprelude-config in the path?
Si je compile à partir des ports via la commande portmaster, cela fonctionne mais je n'ai que la version 1.0.1 et j'aimerais profité des dernières mises à jour.
Merci
History
#1 Updated by patrick moulin over 8 years ago
Problème réglé. Pour ceux qui rencontreraient le même problème, il suffit d'éditer le fichier libprelude-config et remplacer "thread_set=no" par "thread_set=yes"
Par contre je rencontre un autre soucis quand à l'installation de prewikka qui par ailleurs se deroule parfaitement bien sauf que lorsque je lance
/usr/local/bin/prewikka-httpd
J'obtiens
18 Sep 11:16:15 (process:9371) WARNING: /usr/local/lib/libpreludedb/plugins/formats/classic: file not found. 18 Sep 11:16:15 (process:9371) WARNING: /usr/local/lib/libpreludedb/plugins/formats/libclassic: file not found. 18 Sep 11:16:15 (process:9371) WARNING: /usr/local/lib/libpreludedb/plugins/sql/libmysql: file not found. 18 Sep 11:16:15 (process:9371) WARNING: /usr/local/lib/libpreludedb/plugins/sql/mysql: file not found. Traceback (most recent call last): File "/usr/local/bin/prewikka-httpd", line 162, in <module> core = Core.get_core_from_config(config) File "/usr/local/lib/python2.7/site-packages/prewikka/Core.py", line 70, in get_core_from_config _core_cache[path] = Core(path) File "/usr/local/lib/python2.7/site-packages/prewikka/Core.py", line 125, in __init__ self._initDatabase() File "/usr/local/lib/python2.7/site-packages/prewikka/Core.py", line 143, in _initDatabase self._env.db = Database.Database(config) File "/usr/local/lib/python2.7/site-packages/prewikka/Database.py", line 86, in __init__ self._sql = preludedb_sql_new(db_type.encode("utf8"), settings) preludedb.PreludeDBError: Could not load sql plugin 'mysql'
J'ai bien déclaré les varibles :
setenv PYTHONPATH /usr/local/lib/python2.7/site-packages:/usr/local/bin/prewikka-httpd
Dans "/usr/local/lib/libpreludedb/plugins/formats/" j'ai bien les librairies suivantes :
-classic.la
-libclassic.so
Et dans "/usr/local/lib/libpreludedb/plugins/sql"
-mysql.la
-libmysql.so
Merci
#2 Updated by Antoine LUONG over 8 years ago
- Status changed from New to Assigned
- Assignee set to Antoine LUONG
Hello,
-- Nous répondons en anglais car il s'agit d'un tracker international. --
Thanks for reporting this error. Could you try using ldd on the .so file?
Please note that the latest Prelude version is 1.2.6.
Regards
#3 Updated by patrick moulin over 8 years ago
Merci pour votre réponse,
Pourriez vous être plus précis concernant cette procédure "Could you try using ldd on the .so file" ?
#4 Updated by patrick moulin over 8 years ago
Bonjour,
Je suis désolé de ne pouvoir vous répondre en anglais, celui ci étant très pauvre. Je pense avoir compris ce message d'erreur tout simplement parce que j'ai le fichier linmysql.so dans "/usr/local/lib/libpreludedb/plugins/sql" alors que je devrai avoir le fichier "mysql.so".
Au moment de la configuration de libpreludedb j'ai bien
Enable MySQL plugin : yes
Il doit me manquer un package mais lequel?
Merci
#5 Updated by patrick moulin over 8 years ago
Edit :
root@patrick:/ # ldd /usr/local/lib/libpreludedb/plugins/sql/libmysql.so
ldd: /usr/local/lib/libpreludedb/plugins/sql/libmysql.so: not a dynamic executable
#6 Updated by Antoine LUONG over 8 years ago
Hello,
Please try to change execution permissions on the file(s).
#7 Updated by patrick moulin over 8 years ago
hello,
J'ai repris l'installation depuis le début considérant que le soucis provenait de libprelude. J'obtiens bien les lignes suivantes :
- Dumping configuration ***
- Generate documentation : no
- LUA binding : no
- Perl binding : yes
- Python binding : yes
- Ruby binding : no
- Easy bindings : yes
make puis make install, tout se passe bien sans aucune erreur. Ensuite "/sbin/ldconfig -m /usr/local/lib" puis "setenv LD_LIBRARY_PATH /usr/local/lib"
Je vais ensuite regarder mon dossier /usr/local/lib et là je constate que seuls les 4 fichiers suivant sont présents :
libpreludecpp.la
libpreludecpp.a
libprelude.la
libprelude.a
Je décide par ailleurs de faire une autre install mais cette fois avec les ports de freebsd et avec la commande "portmaster" sauf que la version installée est la 1.0.1. .Encore une fois tout se passe bien mais cette fois en vérifiant mon dossier /usr/local/lib j'obtient les fichiers suivants:
libpreludecpp.la
libpreludecpp.a
libprelude.la
libprelude.a
libpreludecpp.so
libpreludecpp.so.0
libprelude.so
libprelude.so.2
libprelude.so.2.19.1
Voila à mon avis ou se situe l'erreur, visiblement la librairie ne s'est pas compilée correctement avec les sources 1.2.6. Si vous avec une idée... Dans l'eventualité ou il s'agirait d'une impossibilité d'installer les dernières sources, est ce que la version 1.0.1 reste encore aujourd'hui suffisamment "actuelle" pour etre installé sur un serveur?
Merci
#8 Updated by Antoine LUONG over 8 years ago
Hello,
Les fichiers .so ont-ils été créés dans l'arborescence de sources ? Si non, pouvez-vous fournir la sortie de la commande make ?
#9 Updated by patrick moulin over 8 years ago
Hello,
Non les fichiers .so n'ont pas été créés et voici ce que me donne le retour de la commande make
root@apache:/tmp/libprelude-1.2.6 # make make all-recursive Making all in libltdl make all-am Making all in libmissing make all-recursive Making all in tests make all-recursive Making all in . Making all in m4 Making all in src make all-recursive Making all in libprelude-error make all-am Making all in include Making all in prelude-admin Making all in bindings Making all in c++ Making all in include Making all in lua Making all in python CC="c++" /usr/local/bin/python2.7 setup.py build running build running build_py running build_ext Making all in ruby Making all in docs Making all in api Making all in manpages Making all in tests root@apache:/tmp/libprelude-1.2.6 #
Merci
#10 Updated by Antoine LUONG over 8 years ago
Le problème semble venir de ces lignes du configure :
configure:16116: checking if libtool supports shared libraries configure:16118: result: no configure:16121: checking whether to build shared libraries configure:16142: result: no
Voir par exemple http://lists.freebsd.org/pipermail/freebsd-current/2013-March/040460.html pour un problème similaire.
#11 Updated by patrick moulin over 8 years ago
En suivant l'idée et le lien que vous m'avez donné, il semblerait que cela pourrait effectivement venir du configure qui ne prendrait pas en compte la version 10 de freebsd. J'ai donc essayé sur la version 9.3 de freebsd.
./configure
par contre au moment de taper make, j'ai l'erreur suivante :
"Makefile", line 2306: Need an operator make: fatal errors encountered -- cannot continue
En regardant le fichier Makefile, je constate que c'est la ligne "-include $(top_srcdir)/git.mk" qui pose probleme
J'installe alors gmake puis gmake install cela fonctionne et j'ai enfin ma librairie de fichiers
libpreludecpp.so.3 libpreludecpp.so libpreludecpp.la libprelude.so.22 libprelude.so libprelude.la
Je compile egalement libprelude db et j'ai enfinfin mon plugin "mysql.so" dans "/usr/local/lib/libpreludedb/plugins/sql/"
Enfin lorsque je tape :
root@prelude:/ # ldd /usr/local/lib/libpreludedb/plugins/sql/mysql.so /usr/local/lib/libpreludedb/plugins/sql/mysql.so: libpreludedb.so.4 => /usr/local/lib/libpreludedb.so.4 (0x801204000) libprelude.so.22 => /usr/local/lib/libprelude.so.22 (0x801414000) libthr.so.3 => /lib/libthr.so.3 (0x8017ec000) libgnutls.so.28 => /usr/local/lib/libgnutls.so.28 (0x801a0f000) libgcrypt.so.20 => /usr/local/lib/libgcrypt.so.20 (0x801d2c000) libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0x801fd9000) libmysqlclient.so.18 => /usr/local/lib/mysql/libmysqlclient.so.18 (0x8021ea000) libz.so.6 => /lib/libz.so.6 (0x802729000) libm.so.5 => /lib/libm.so.5 (0x80293d000) libc.so.7 => /lib/libc.so.7 (0x80081b000) libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x802b5e000) libp11-kit.so.0 => /usr/local/lib/libp11-kit.so.0 (0x802e5a000) libtspi.so.1 => /usr/local/lib/libtspi.so.1 (0x8030ab000) libtasn1.so.6 => /usr/local/lib/libtasn1.so.6 (0x80331b000) libnettle.so.4 => /usr/local/lib/libnettle.so.4 (0x80352d000) libhogweed.so.2 => /usr/local/lib/libhogweed.so.2 (0x80375a000) libgmp.so.10 => /usr/local/lib/libgmp.so.10 (0x803988000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x803bfd000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x803e08000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x80410f000) libffi.so.6 => /usr/local/lib/libffi.so.6 (0x80431d000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x804524000)
En résumé cela fonctionne avec freebsd 9.3 et gmake et cela ne fonctionne pas avec freebsd 10.1 même avec gmake
Merci
#12 Updated by Antoine LUONG over 8 years ago
- Status changed from Assigned to Resolved