eponyme wrote:Donc je confirme bien que tu n'as pas été assez précis dans le %files ^^.

Commence par la doc dont je t'ai donné le lien, ca te fera reprendre quelques petites choses, on pourra continuer ensuite

ps : la page man doit etre dans les files aussi.

epo
ok la je suis a remplir les BUILD REQUIRES et REQUIRES

me faudrait dans les build requires cette librairie
http://download.osgeo.org/proj/proj-4.7.0.tar.gz

est ce que c'est possible de l'intégrer sans que cela soit un rpm ?
dans ce cas comment je fais ?
en attendant j'ai mi une librairie toute simple : libtool

voici mon SPEC
Name:           geos
Version:        3.2.2
Release:        1%{?dist}
Summary:        libgeos pour geoserver

Group:          Development/Libraries
License:        GPL
URL:            http://trac.osgeo.org/geos/
Source0:        http://download.osgeo.org/geos/geos-3.2.2.tar.bz2
BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  libtool
Requires:    libtool

%description


%prep
%setup -q


%build
configure
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT


%clean
rm -rf $RPM_BUILD_ROOT
voici le resultat pas de compilation en vue ni de paquet
rpmbuild -bp geos.spec 
Exécution_de(%prep): /bin/sh -e /var/tmp/rpm-tmp.31902
+ umask 022
+ cd /home/builder/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /home/builder/rpmbuild/BUILD
+ rm -rf geos-3.2.2
+ /usr/bin/bzip2 -dc /home/builder/rpmbuild/SOURCES/geos-3.2.2.tar.bz2
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd geos-3.2.2
++ /usr/bin/id -u
+ '[' 502 = 0 ']'
++ /usr/bin/id -u
+ '[' 502 = 0 ']'
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0


merci 🙂

BuildRequires: proj 

c'est le nom du rpm qu'il faut mettre. Il faut bien entendu que la dependance soit package pour fedora
pascalp wrote:

BuildRequires: proj 

c'est le nom du rpm qu'il faut mettre. Il faut bien entendu que la dependance soit package pour fedora

oki et du coup si la dependance n'est pas packagée ?
d'autre part mon fichier est en tar.bz2 et non tar.gz et je trouve bizarre qu'il m'indique ...
/usr/bin/gzip -dc /home/builder/rpmbuild/SOURCES/geos-3.2.2.tar.bz2
Name:           geos
Version:        3.2.2
Release:        1%{?dist}
Summary:        libgeos pour geoserver

Group:          Development/Libraries
License:        GPL
URL:            http://trac.osgeo.org/geos/
Source0:        http://avalon/geos-3.2.2.tar.bz2
BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  libtool
Requires:    libtool

%description


%prep
%setup -q


%build
./configure
make

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT


%clean
rm -rf $RPM_BUILD_ROOT
Si un programme n'est pas packagé ... alors il faut le packager 😃
ok bon pour le moment voici mon fichier de spec
pour le moment je met un peu de cote l'histoire des dependances


*******************************************************************************
ERROR 0002: file '/usr/local/lib/libgeos_c.so.1.6.2' contains an invalid rpath '/usr/local/lib' in [/usr/local/lib]



%define _topdir         /home/xxx/libgeos
%define name            geos
%define release         1
%define version         3.2.2
%define buildroot %{_topdir}/%{name}-%{version}-root

BuildRoot:    %{buildroot}
Summary:                GNU libgeos
License:                GPL
Name:                   %{name}
Version:                %{version}
Release:                %{release}
Source:                 %{name}-%{version}.tar.bz2
Prefix:                 /usr/local
Group:                  Development/Tools

%description
Librairie GEOS

%prep
%setup -q
./configure
%build
make

%install
make install prefix=$RPM_BUILD_ROOT/usr/local

%files
%defattr(-,root,root)
/usr/local/lib/geos


Salut,

quelques remarques :

Pour le configure, tu devrais plutot utiliser la macro %configure, plutot que d'appeller directement le script, car la macro passera en plus des options de compilation de fedora.

Tu as retiré l'option smp_flags à make, c'est que ca ne pase pas avec ?

Pourquoi installe tu dans /usr/local ? les rpm doivent installer dans /usr directement.

Pour le pb de rpath : http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath

epo
eponyme wrote:Salut,

quelques remarques :

Pour le configure, tu devrais plutot utiliser la macro %configure, plutot que d'appeller directement le script, car la macro passera en plus des options de compilation de fedora.

Tu as retiré l'option smp_flags à make, c'est que ca ne pase pas avec ?

Pourquoi installe tu dans /usr/local ? les rpm doivent installer dans /usr directement.

Pour le pb de rpath : http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath

epo
ok mais pour le local je suis obligé sinon j'ai cett reponse
libtool: install: error: cannot install `libgeos_c.la' to a directory not ending in /usr/local/lib
j'ai fais aussi un test sur la libxml
avec ce SPEC
  GNU nano 1.3.12                                Fichier : libxml2.spec                                                                     
%define _topdir         /home/xxxx/libxml2
%define name                    libxml2
%define release         1
%define version         2.7.6
%define buildroot %{_topdir}/%{name}-%{version}-root

BuildRoot:    %{buildroot}
Summary:                GNU libxml2
License:                GPL
Name:                   %{name}
Version:                %{version}
Release:                %{release}
Source:                 %{name}-%{version}.tar.gz
Prefix:                 /usr/local
Group:                  Development/Tools

%description
The GNU wget program downloads files from the Internet using the command-line.

%prep
%setup -q

%build
./configure --prefix=/usr
make

%install
make install prefix=$RPM_BUILD_ROOT/usr/local

%files
%defattr(-,root,root)
#/usr/local/bin/wget

%doc %attr(0444,root,root) /usr/local/share/man/man1/wget.1

avec cette erreur
libtool: install: error: cannot install `libxml2mod.la' to a directory not ending in /usr/lib/python2.4/site-packages
bon là j'ai tout reprises en faisant virtualisation sous fedora 13
ça se passe beaucoup
mieux
me reste une petite erreur
RPM build errors:
    File not found: /home/builder/rpmbuild/BUILDROOT/libxml2-2.7.6-1.fc13.x86_64/usr/share/bin
et voici mes path dans le spec

%files
%defattr(-,root,root,-)
%doc
%{_libdir}/*.so.*
%{_datadir}/doc/
%{_datadir}/gtk-doc/
%{_datadir}/man/


enb fait je bloque notamment sur ça
RPM build errors:
    Installed (but unpackaged) file(s) found:
   /usr/bin/xml2-config
   /usr/bin/xmlcatalog
   /usr/bin/xmllint
   /usr/lib64/pkgconfig/libxml-2.0.pc
   /usr/lib64/xml2Conf.sh
   /usr/share/aclocal/libxml.m4
> j'ai fais aussi un test sur la libxml avec ce SPEC
Pourquoi ne pas prendre celui qui existe ?

On apprends beaucoup en lisant (et essayant de comprendre) des spec existant.

Enfin... moi c'est comme ça que j'ai appris.

+
remi wrote:> j'ai fais aussi un test sur la libxml avec ce SPEC
Pourquoi ne pas prendre celui qui existe ?

On apprends beaucoup en lisant (et essayant de comprendre) des spec existant.

Enfin... moi c'est comme ça que j'ai appris.

+
oui je suis d'accord avec toi c'est pour m'entrainer car j'aimerais créer un dépot pour installation speciale sous red hat qui ne possede pas par defaut celel librairie dans cette version
et bon d'ailleurs j'y suis arrivé
maintenant j'essaie de preparer une autre librairie qui est la librairie geos


et je retrouve cette super erreur
ERROR   0001: file '/usr/lib64/libgeos_c.so.1.6.2' contains a standard rpath '/usr/lib64' in [/usr/lib64]

j'ai essayé avec cette commande
QA_RPATHS=$[ 0x0001|0x0010 ] rpmbuild -ba geos.spec 
pas d'erreur mais pas de RPM crée :p


et avec un fichier spec que j'ai pu trouve ici
http://dries.ulyssis.org/ayo/packages/geos/geos-spec.html

on me dit qu'il faut exclure ce fichier mais je ne trouve pas comment ?

merci 🙂
trasher wrote:le coup de rpath, c'est documenté :
http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath
ok je l'ai bien lu
j'ai rajoute ces lignes pour exclure les r_path
%configure
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
en revanche quand j'essaie d'installer le rpm j'ai cette reponse
 rpm -ivh geos-3.2.2-1.x86_64.rpm 
error: Failed dependencies:
    libgeos-3.2.2.so()(64bit) is needed by geos-3.2.2-1.x86_64
et voici une partie du spec
%prep
%setup

%build
%configure
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__make} %{?_smp_mflags}

%install
%{__rm} -rf %{buildroot}
%{__make} install DESTDIR="%{buildroot}"

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%clean
%{__rm} -rf %{buildroot}

%files
%defattr(-, root, root, 0755)
%doc AUTHORS ChangeLog COPYING INSTALL NEWS README TODO
%{_libdir}/libgeos*.so.*

%files devel
%{_bindir}/geos-config

%{_includedir}/geos*.h
%{_includedir}/geos/
%{_libdir}/libgeos*.so
%exclude %{_libdir}/libgeos*.a
%exclude %{_libdir}/libgeos*.la

%changelog
* Mon Jul 23 2007 Dayne Broderson  - 2.2.3-1
- Initial package, based on a spec file made by Mapping Hacks.