- Fedora-Fr
- À propos de Fedora-Fr
- Historique
- Statistiques
- Télécharger
- Obtenir Fedora
- Toutes les méthodes de téléchargement
- Support
- Aide sur IRC
- Forums
- Documentation
- Sous-projets
- Plateforme de blog
Dernière news : Fedora 34 n'est plus maintenu
Pages : 1
Bonjour,
J'essaye de créer un rpm pour vls (fichier spec en bas). Mais quand je lance
> rpmbuild -bb rpmbuild/SPECS/vls.spec
J'ai des erreurs pendant le ./configure. Résultat, la compilation échoue.
configure: WARNING: fcntl.h: present but cannot be compiled
configure: WARNING: fcntl.h: check for missing prerequisite headers?
configure: WARNING: fcntl.h: see the Autoconf documentation
configure: WARNING: fcntl.h: section "Present But Cannot Be Compiled"
configure: WARNING: fcntl.h: proceeding with the preprocessor's result
configure: WARNING: fcntl.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for fcntl.h... yes
Par contre, si je le fait directement, je peux faire l'installe sans problème. Pour reproduire le bug, il faut que je fasse in export de CXXFLAGS (tourver dans le fichier temporaire de rpmbuild)
>CXXFLAGS="${CXXFLAGS:--O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables}" ; export CXXFLAGS ;
Donc ma question comment empêcher le rpmbuild de positionner cet variable ou de faire en sorte que ca ne gêne pas? J'ai mis des unset un peu partout dans le fichier spec sans résultat.
Merci
Summary: VideoLAN is a free streaming software solution.
Name: vls
Version: 0.5.6
Release: 1
License: GPL
Group: Applications/Multimedia
Source: vls-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Provides: vls
Requires: libdvdread,libdvbpsi,libdvb
BuildRequires: libdvdread-devel,libdvbpsi-devel,libdvb,gcc,gcc-c++%description
VideoLAN is a free streaming software solution developed by
students from the Ecole Centrale Paris and developers from all over the
World.
The VideoLAN Server can stream MPEG content from several sources
(MPEG 1 or 2 files, DVDs, satellite cards, digital terrestial television
cards, real time MPEG encoding cards) over an IP network in unicast or
multicast.
You may install vls-dvd to allow DVD streaming and/or vls-dvb to be able
to stream digital unencrypted satellite channels and digital unencrypted
terrestial television channels from a DVB device.%prep
%setup -q%build
%configure --disable-debug --enable-dvbmake %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT%clean
rm -rf $RPM_BUILD_ROOT%files
%{_bindir}/vls
%{_bindir}/vlsd
%{_libdir}/videolan/vls/dvdreader.so
%{_libdir}/videolan/vls/dvbinput.so
%{_libdir}/videolan/vls/dvbreader.so
%{_sysconfdir}/videolan/vls/vls.cfg%changelog
edit : mise à jour du fichier spec
Dernière modification par Guliver (07/11/2006 16:07:59)
Hors ligne
Bon j'ai trouvé, c'est juste que g++ était en version 3.4 et pas en 4.1. Les options doivent correspondre a un gcc 4.1.
Hors ligne
Hors ligne
Est-ce que tu as besoin particulièrement de vls ? ou bien c'est pour t'exercer à la création de paquets ?
Parce que vls n'est plus supporté, et que la plupart de ses fonctionnalités ont été déporté dans vlc
http://www.videolan.org/vlc/streaming.html
Quelques remarques rapides à vue d'oeil:
- au lieu de taper les chemins en dur, préfére utiliser les macros
ex: %{_libdir} au lieu de /usr/lib
- Source: vls-%{version}.tar.gz
- remplir le changelog
- le tag packager doit être dans un fichier .rpmmacros
- les buildrequires ?
I don't fight because i want to win, i fight because i have to win.
Hors ligne
Merci pour les remarques, je vais améliorer ca.
buildrequires est t'il indispensable si je fait que le rpm et pas le source rpm ?
Dans change log je met quoi ? Les modifications du fichier spec ou les modifications du package en lui même ?
Sinon, j'ai effectivement besoin vls en particulier et comme je dois faire un déploiements sur un 10zaine de machine, je me suis dit qu'un rpm serais pas mal. En plus ca permet de m'exercer à la création de paquet sur quelque chose de relativement simple ;)
edit : J'ai mis à jour le fichier spec dans mon premier post
Dernière modification par Guliver (07/11/2006 16:08:42)
Hors ligne
Les BR permettent à rpm de détecter comme un grand les dépendances -enfin, faut pas s'y fier aveuglément non plus-, rendant inutiles certains Requires, ça facile ton travail de maintenance lors des recompilations en repérant rapidement les dépendances de compilation manquantes.
Via le changelog, tu pourras suivre ton travail effectué sur ton paquet.
Exemple d'entrée de changelog
* Tue Nov 07 2006 moi <mon_mail@gmail.com> - 0.5.6-1
- first packaging
PS: tu es sur que vlc ne contient déjà pas les fonctionnalités dont tu as besoin ?
I don't fight because i want to win, i fight because i have to win.
Hors ligne
En fait, les BuildRequires et les Requires c'est très différent. Les BuildRequires se sont les packages qui doivent être installés au moment où le package est compilé, alors que les Requires sont les packages qui doivent être installés au moment où le package est installé (donc sur la machine cible finale).
Avant la création du package binaire, rpm fait (entre autres) un ldd sur les binaires, et trouve donc tout seul de quelles libraries ton package a besoin. Ce qui fait qu'il est assez rare finalement d'avoir des lignes "Requires" dans les fichiers specs.
Par contre, sur les serveurs de compilation de Fedora, le package sera construit dans une installe hyper-minimale de Fedora. Elle ne contient que les packages de base (dont la liste est là : http://fedoraproject.org/wiki/Packaging … xceptions). Donc si un package additionel est nécessaire pour construire le rpm, il faut le mettre dans les BuildRequires, ou ça compilera pas.
Hors ligne
Pages : 1