Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Fedora 34 n'est plus maintenu

#1 07/11/2006 12:28:26

Guliver
Membre
Inscription : 23/05/2006
Messages : 104

Création de rpm pour vls

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-dvb

make %{?_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

#2 07/11/2006 13:10:36

Guliver
Membre
Inscription : 23/05/2006
Messages : 104

Re : Création de rpm pour vls

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

#3 07/11/2006 13:44:49

drpixel
Membre FedoraProject
Membre FedoraProject
Lieu : Maromme (76)
Inscription : 28/07/2004
Messages : 4 324
Site Web

Re : Création de rpm pour vls

Tout autre chose ...
Pour ta section %files, tu dois utiliser des macros

Hors ligne

#4 07/11/2006 13:49:34

Sat
King & his horse
Rédacteur Wiki
Lieu : Lyon
Inscription : 31/08/2004
Messages : 3 291
Site Web

Re : Création de rpm pour vls

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

#5 07/11/2006 15:58:27

Guliver
Membre
Inscription : 23/05/2006
Messages : 104

Re : Création de rpm pour vls

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

#6 07/11/2006 16:30:57

Sat
King & his horse
Rédacteur Wiki
Lieu : Lyon
Inscription : 31/08/2004
Messages : 3 291
Site Web

Re : Création de rpm pour vls

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

#7 07/11/2006 17:27:50

abompard
Membre FedoraProject
Membre FedoraProject
Inscription : 03/02/2006
Messages : 93

Re : Création de rpm pour vls

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

Pied de page des forums