Bonjour,
Merci beaucoup pour votre aide, c'est mon premier RPM alors je galère pas mal. Je ne suis pas du tout développeur de SFML, par conséquent je n'ai pas la main sur le makefile ni sur les caractères de fin de ligne (peut être qu'un sed pourait résoudre le problème des \n?)
1. J'ai essayé de séparer doc header et libs mais j'ignore si je l'ai fait correctement
2. Non je n'ai pas de raisons particulières, j'ai suivi votre conseil et j'ai construit mon package a partir du SDK 1.6
3. OK, je l'ai supprimé
4. OK je les ai supprimés
5. Le make clean est necessaire à partir de la seconde fois ou on souhaite construire le rpm
6. Je n'ai pas la main sur le makefile, le problème est qu'il met les libs dans {un_truc}/usr/lib quelque soit l'architecture et non dans {un_truc}/usr/lib64 pour la version 64 bits. C'est crado mais je n'ai pas trouvé mieux (ou plutot plus simple)
7. Je les ai déplacés
L'ensemble complet du build est ici :
http://tentacule.is-a-geek.com/share/rpmbuild/
Si vous préferez télécharger tout en zip :
http://tentacule.is-a-geek.com/share/rpmbuild.zip
J'arrive pas a produire un log build -ba sfml-devel.spec 2>&1 /tmp/a.log écrit quand même sur la console.
Je n'ai pas réussi à trouver comment faire pour mettre les symboles de debugging, j'ai tenté : make %{?_smp_mflags} CFLAGS="%{optflags}" mais ca plante.
(c.f. la fin du log de la console à la fin de ce message)
Merci pour les explications sur les avertissements
--- SPEC ---
Name: sfml
Version: 1.6
Release: 1%{?dist}
Summary: SFML is a simple and fast multimedia library
Group: Development/Libraries
License: zlib
URL: [url]http://www.sfml-dev.org[/url]
#Source0: h ttps://sfml.svn.sourceforge.net/svnroot/sfml/trunk/
#BuildRoot: %%{_tmppath}/%%{name}-%%{version}-%%{release}-root-%%(%%{__id_u} -n)
Source0: [url]http://downloads.sourceforge.net/sfml/SFML-%version-sdk-linux-64.tar.gz[/url]
BuildRequires: freeglut-devel
BuildRequires: libX11-devel
BuildRequires: libXrandr-devel
BuildRequires: freetype-devel
BuildRequires: openal-soft-devel
BuildRequires: libsndfile-devel
#Requires: freeglut
#Requires: libX11
#Requires: libXrandr
#Requires: freetype
#Requires: openal-soft
#Requires: libsndfile
Provides: sfml
%description
SFML is a free multimedia C++ API
#that provides you low and high level access to graphics, input, audio, etc.
%package devel
Requires: sfml
Summary: SFML headers
%description devel
SFML development files, SFML is a free multimedia C++ API
%package doc
Requires: sfml
Summary: SFML documentation
%description doc
SFML documentation files, SFML is a free multimedia C++ API
%prep
#SDK VERSION
rm -f SFML-%version-sdk-linux-64.tar.gz
wget [url]http://downloads.sourceforge.net/sfml/SFML-%version-sdk-linux-64.tar.gz[/url]
tar -xvf SFML-%version-sdk-linux-64.tar.gz
cp -rpf SFML-%version/* ./
cp SFML-%version-sdk-linux-64.tar.gz %SOURCE0
#SVN VERSION
#svn co [url]https://sfml.svn.sourceforge.net/svnroot/sfml/trunk[/url] %%SOURCE0
#cp -rpf %%SOURCE0/* .
#rm -rf `find ./ | grep .svn`
%build
make clean
make
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
#lib
install -dp %{buildroot}/lib %buildroot/%{_libdir}
cp -pr %{buildroot}/lib/* %buildroot/%{_libdir}/
rm -rf %{buildroot}/lib
#include
install -dp %{buildroot}/include %buildroot/%{_includedir}
cp -pr %{buildroot}/include/* %buildroot/%{_includedir}/
rm -rf %{buildroot}/include
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%clean
make clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%{_libdir}/*
%files devel
%defattr(644,root,root,0755)
%{_includedir}/*
%files doc
%defattr(644,root,root,0755)
%doc doc/
%changelog
* Tue Apr 06 2010 Upstream release <laurent at, sfml-dev.org> 1.6
- see : [url]http://mac.softpedia.com/progChangelog/SFML-Changelog-49686.html[/url]
--- LOG (extrait) ERREUR LORS DU BUILD AVEC : make %{?_smp_mflags} CFLAGS="%{optflags}" ----
Exécution_de(%build): /bin/sh -e /var/tmp/rpm-tmp.Lkm3hB
+ umask 022
+ cd /home/makerpm/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ make clean
make[1]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/System'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/System'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Window'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Window'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Network'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Network'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Graphics'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Graphics'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Audio'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Audio'
make[1]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML'
make[1]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/ftp'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/ftp'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/opengl'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/opengl'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/pong'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/pong'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/post-fx'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/post-fx'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/qt'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/qt'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/sockets'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/sockets'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/sound'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/sound'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/sound_capture'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/sound_capture'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/voip'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/voip'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/window'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/window'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/wxwidgets'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/wxwidgets'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/samples/X11'
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples/X11'
make[1]: Leaving directory `/home/makerpm/rpmbuild/BUILD/samples'
+ make -j3 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'
make[1]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML'
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/System'
g++ -o Clock.o -c Clock.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Network'
g++ -o [url=http://Ftp.o]Ftp.o[/url] -c [url=http://Ftp.cpp]Ftp.cpp[/url] -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
make[2]: Entering directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Window'
g++ -o Context.o -c Context.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
Clock.cpp:29:36: error: SFML/System/Platform.hpp: No such file or directory
Clock.cpp: In member function 'float sf::Clock::GetElapsedTime() const':
Clock.cpp:48: error: 'sf::priv' has not been declared
Clock.cpp: In member function 'void sf::Clock::Reset()':
Clock.cpp:57: error: 'sf::priv' has not been declared
make[2]: *** [Clock.o] Error 1
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/System'
make[1]: *** [sfml-system] Error 2
make[1]: *** Waiting for unfinished jobs....
g++ -o Input.o -c Input.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
Context.cpp:29:38: error: SFML/Window/WindowImpl.hpp: No such file or directory
Context.cpp: In constructor 'sf::Context::Context()':
Context.cpp:46: error: incomplete type 'sf::priv::WindowImpl' used in nested name specifier
Context.cpp: In destructor 'sf::Context::~Context()':
Context.cpp:55: warning: possible problem detected in invocation of delete operator:
Context.cpp:55: warning: invalid use of incomplete type 'struct sf::priv::WindowImpl'
/usr/local/include/SFML/Window/Context.hpp:39: warning: forward declaration of 'struct sf::priv::WindowImpl'
Context.cpp:55: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.
Context.cpp: In member function 'void sf::Context::SetActive(bool)':
Context.cpp:64: error: invalid use of incomplete type 'struct sf::priv::WindowImpl'
/usr/local/include/SFML/Window/Context.hpp:39: error: forward declaration of 'struct sf::priv::WindowImpl'
Context.cpp: In static member function 'static bool sf::Context::IsContextActive()':
Context.cpp:73: error: incomplete type 'sf::priv::WindowImpl' used in nested name specifier
Context.cpp: At global scope:
Context.cpp:35: warning: '<unnamed>::Dummy' defined but not used
make[2]: *** [Context.o] Error 1
make[2]: *** Waiting for unfinished jobs....
g++ -o Http.o -c Http.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Window'
make[1]: *** [sfml-window] Error 2
g++ -o IPAddress.o -c IPAddress.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -o Packet.o -c Packet.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -o SelectorBase.o -c SelectorBase.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -o SocketTCP.o -c SocketTCP.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -o SocketUDP.o -c SocketUDP.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -o Unix/SocketHelper.o -c Unix/SocketHelper.cpp -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
g++ -shared -Wl,-soname,libsfml-network.so.1.6 -o ../../../lib/libsfml-network.so.1.6 [url=http://Ftp.o]Ftp.o[/url] Http.o IPAddress.o Packet.o SelectorBase.o SocketTCP.o SocketUDP.o ./Unix/SocketHelper.o
/usr/bin/ld: [url=http://Ftp.o]Ftp.o[/url]: relocation R_X86_64_32S against `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage' can not be used when making a shared object; recompile with -fPIC
[url=http://Ftp.o]Ftp.o[/url]: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libsfml-network.so] Error 1
make[2]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML/Network'
make[1]: *** [sfml-network] Error 2
make[1]: Leaving directory `/home/makerpm/rpmbuild/BUILD/src/SFML'
make: *** [sfml] Error 2
erreur: Mauvais status de sortie pour /var/tmp/rpm-tmp.Lkm3hB (%build)
Erreur de construction de RPM:
Mauvais status de sortie pour /var/tmp/rpm-tmp.Lkm3hB (%build)