rpm depuis giac_xx.deb

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

rpm depuis giac_xx.deb

Message par leo » lun. oct. 22, 2012 4:32 pm

Bonjour
Je poste ici, dans ce je pense être la rubrique la plus appropriée.

J'ai l'habitude de faire mes giac-xx.rpm avec l'aide d'alien à partir du giac_xx.deb qu'on trouve dans les dépôts ...
Or aujourd'hui, échec à l'installation. J'ai téléchargé giac_0.9.9-1_amd64.deb, et construit le rpm avec alien.
L'installation échoue ; des librairies sont manquantes comme
libblas.so.3gf() ,
toutes se terminant par une paire de parenthèses. Ce que trouve curieux.

Même problème avec giac_0.9.8-1_amd64.deb.

Le dernier que j'ai installé via alien, giac_0.9.5-1_amd64.deb, ne m'avait pas posé ces problèmes.

Y aurait-l une solution ?

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: rpm depuis giac_xx.deb

Message par parisse » lun. oct. 22, 2012 5:30 pm

peut-etre qu'il faut avoir les librairies installées sur son système, en tout cas, j'ai réussi à générer un rpm 64 bits avec alien sur une machine ubuntu, je l'ai mis là:
http://www-fourier.ujf-grenoble.fr/~par ... x86_64.rpm

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » lun. oct. 22, 2012 5:46 pm

Même problème qu'avec le mien.

Code : Tout sélectionner

urpmi giac-0.9.9-2.x86_64\(1\).rpm
Le paquetage demandé ne peut pas être installé :
giac-0.9.9-2.x86_64 (car liblapack.so.3gf()(64bit) est non satisfait)
Désirez-vous tout de même continuer ? (O/n)
J'ai bien liblapack.so.3gf en 64 bits sur ma machine, mais pas liblapack.so.3gf().
L'installation réclame si on insiste des lib dont le nom se termine par "()", comme libgmp.so.3().
Ce que je trouve curieux.
Le paquetage pour debian doit réclamer ces mêmes librairies, non ?

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: rpm depuis giac_xx.deb

Message par parisse » lun. oct. 22, 2012 6:20 pm

Désolé, je n'ai pas d'idées là-dessus, en tout cas je n'ai pas le sentiment d'avoir changé quoi que ce soit à ce niveau. N'est-il pas possible de forcer quand même ou d'installer directement un .deb sur une machine rpm (l'inverse est dans certains cas possible)?

frederic han
Messages : 1137
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: rpm depuis giac_xx.deb

Message par frederic han » lun. oct. 22, 2012 6:45 pm

J'ai essaye une fois de regarder le fichier spec fait par ce monsieur:
https://build.opensuse.org/package/show ... honghuaren

Je l'ai modifie pour qu'il compile avec le fltk de bernard, mais le probleme est que sous fedora 17 je n'avais que
gcc-4.7 qui ne permet pas de compiler giac completement, ca plantait a la compilation.
Donc je ne l'ai pas teste jusqu'au bout, mais ca allait loin j'ai bon espoir.

voici le giac.spec (il y a 2 fichiers a telecharger)
J'en ai mis une copie la:
http://www.math.jussieu.fr/~han/xcas/giac.spec

rpmbuild -ba giac.spec

Name: giac
Summary: Computer algebra system
Version: 0.9.9
Release: 1
License: see /usr/share/doc/giac/copyright
Group: Applications/Engineering
Source0: http://www-fourier.ujf-grenoble.fr/~par ... 3.0.tar.gz
Source1: http://www-fourier.ujf-grenoble.fr/~par ... n}.tar.bz2
URL: http://www-fourier.ujf-grenoble.fr/~parisse/giac.html
Vendor: Bernard Parisse
##BuildRequires: compat-gcc-34-c++
BuildRequires: gcc-c++
BuildRequires: readline-devel, mpfr-devel, gmp-devel, gsl-devel, mesa-libGL-devel, ntl-devel, pari-devel
##BuildRequires: fltk-devel
BuildRequires: atlas-devel

%description
Giac Is A Cas (computer algebra system). It is under active development and
consists of:
- a C++ library (libgiac)
- a command line interpreter (icas)
- a FLTK-based GUI (xcas)
Bernard Parisse is the main author of the CAS of HP40G and HP49G calculators.

%package devel
Summary: Development files for libgiac
Requires: %{name}

%description devel
Development files for libgiac.

%prep
%setup -b 1
sed -i 's|$(prefix)|$(DESTDIR)$(prefix)|' `find . -name Makefile.in`
sed -i 's|$(includedir)/giac|$(DESTDIR)$(includedir)/giac|' Makefile.in
TMPFLTK=%_builddir/fltk-1.3.0
export TMPFLTK
cd $TMPFLTK &&./configure --prefix=$TMPFLTK && make
%build
TMPFLTK=%_builddir/fltk-1.3.0
export TMPFLTK
CPPFLAGS+=-I$TMPFLTK
export CPPFLAGS
LDFLAGS+=-L$TMPFLTK/lib
export LDFLAGS
%configure
%__make

%install
%__rm -rf $RPM_BUILD_ROOT
%__make DESTDIR=$RPM_BUILD_ROOT install

%clean
%__rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%{_bindir}/*
%{_datadir}/doc/giac
%{_datadir}/giac
%{_datadir}/info/giac_*.info.gz
%{_datadir}/locale/*/LC_MESSAGES/giac.mo
%{_bindir}/x*
##%{_datadir}/info/dir
%{_datadir}/applications/xcas.desktop
%{_datadir}/application-registry/xcas.applications
%{_datadir}/pixmaps/xcas.xpm
##%{_datadir}/man/man1/*

%files devel
%defattr(-,root,root)
%{_includedir}/giac
%{_libdir}/libgiac.a
%{_libdir}/libgiac.la
%{_libdir}/libgiac.so*

%changelog
* Tue Jul 03 2012 Huaren Zhong <huaren.zhong@gmail.com> - 0.9.8
- Rebuild for Fedora

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mar. oct. 23, 2012 2:41 pm

J'ai modifié le fichier giac.spec pour l'adapter à mageia. Les dépendances ne portent pas les mêmes nom que pour Fedora. Pas de problèmes pour ça.
Par contre j'ai l'erreur suivante sur la fin de compilation :

Code : Tout sélectionner

libtool: Version mismatch error.  This is libtool 2.4.2, but the
libtool: definition of this LT_INIT comes from libtool 2.2.4.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
Un problème de version de libtool.
J'ai la version libtool-2.4.2-6 installée.

Comment rectifier ça ?

frederic han
Messages : 1137
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: rpm depuis giac_xx.deb

Message par frederic han » mar. oct. 23, 2012 3:38 pm

Bonjour,
vous pouvez peut etre essayer
autoreconf dans le repertoire giac-0.9.9

puis recreer le tar.bz2 et tenter le rpmbuild avec ce nouveau source.

ou compiler avec les bons parametres pour tenir compte du fltk-1.3.0
Frederic

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mar. oct. 23, 2012 6:57 pm

J'ai testé un autoreconf, avec le même résultat.

Code : Tout sélectionner

libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
Il me faudrait refaire les macros; Mais quelles macros ?

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mar. oct. 23, 2012 8:02 pm

Rectification. autoreconf règle le problème de libtool.

Maintenant j'ai une série d'erreurs liées semble-t-il à fltk. Un extrait :

Code : Tout sélectionner

History.cc:1584:61: error: format not a string literal and no format arguments [-Werror=format-security]
History.cc:1584:61: warning: 'int fl_ask(const char*, ...)' is deprecated (declared at /home/leo/rpm/BUILD/fltk-1.3.0/FL/fl_ask.H:56) [-Wdeprecated-declarations]
...
...
History.cc:2973:110: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result]
cc1plus: some warnings being treated as errors
make[2]: *** [History.lo] Erreur 1
make[2] : on quitte le répertoire « /home/leo/rpm/BUILD/giac-0.9.9/src »
make[1]: *** [all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/leo/rpm/BUILD/giac-0.9.9 »
make: *** [all] Erreur 2
erreur: Mauvais status de sortie pour /home/leo/rpm/tmp/rpm-tmp.8Xk8o1 (%build)
Et là je ne vois pas quoi faire.

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: rpm depuis giac_xx.deb

Message par parisse » mer. oct. 24, 2012 6:07 am

s'il s'agit de warning traités comme erreurs, il doit suffire de fixer CXXFLAGS à -O2 par exemple (je ne sais pas comment ça se fait dans les spécifications rpm)

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mer. oct. 24, 2012 11:03 am

Avec export CXXFLAGS=-02 dans le fichier spec, plus de problèmes avec fltk, mais j'ai cette fois :
checking how to hardcode library paths into programs... unsupported
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... no
checking for standard C++ header files... no
configure: error: Standard ISO C++ 98 headers are missing

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mer. oct. 24, 2012 11:16 am

Avec export CXXFLAGS=-g, cette fois encore erreur :
/usr/bin/ld: /home/dom/rpm/BUILD/fltk-1.3.0/lib/libfltk.a(fl_read_image.o): undefined reference to symbol 'XGetImage'
/usr/bin/ld: note: 'XGetImage' is defined in DSO /usr/lib64/libX11.so.6 so try adding it to the linker command line
/usr/lib64/libX11.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [icas] Erreur 1

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: rpm depuis giac_xx.deb

Message par parisse » mer. oct. 24, 2012 11:19 am

Si vous avez un log de la compilation precedente, recherchez toutes les options -Iquelquechose (par exemple -I. -I.. -I/usr/local/include) et rajoutez les a CXXFLAGS, par exwmple
export CXXFLAGS='-O2 -I. -I..'

leo
Messages : 18
Inscription : lun. oct. 22, 2012 3:34 pm

Re: rpm depuis giac_xx.deb

Message par leo » mer. oct. 24, 2012 12:21 pm

Avec export CXXFLAGS='-02 -I/home/leo/rpm/BUILD/fltk-1.3.0' , j'ai la même erreur qu'avec export CXXFLAGS=-02
checking for standard C++ header files... no
configure: error: Standard ISO C++ 98 headers are missing

parisse
Messages : 5743
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: rpm depuis giac_xx.deb

Message par parisse » mer. oct. 24, 2012 12:37 pm

bon, de toutes facons, il ralait pour les headers standard, pas pour fltk, il faudrait regarder le config.log alors, mais je suis a peu pres certain qu'il manque un -Iquelquechose, qui etait automatiquement rajoute lorsque CXXFLAGS n'etait pas defini. Pour le voir il faudrait faire
unset CXXFLAGS
relancer la creation du rpm, interrompre des qu'il y a une ligne de commande g++ ... et copier tous les -Ixxx.
Ou alors c'est autoreconf qui s'est plante...

Répondre