RPM peut maintenant �tre utilis� pour construire des paquetages pour intel 386, le Digital Alpha faisant tourner linux, et le Sparc. Il a �t� signal� qu'il fonctionnait aussi bien sur des stations de travail SGI et HP. De nombreuses options permettent de construire des paquetages sur toutes les plateformes facilement. La premi�re de celles-ci est la directive "optflags" dans /etc/rpmrc. Elle peut �tre utilis�e pour positionner des options utilis�s durant la compilation concernant des valeurs sp�cifiques � l'architecture. Elles peuvent �tre utilis�es pour faire diff�rentes choses qui d�pend de l'architecture sur laquelle vous compilez. Une fonctionnalit� est la directive "Exclude" dans le header.
La partie qui suit est extraite du fichier spec pour le paquetage fileutils. Il est param�tr� pour compiler aussi bien sur Alpha que sur Intel.
Summary: GNU File Utilities
Name: fileutils
Version: 3.16
Release: 1
Copyright: GPL
Group: Utilities/File
Source0: prep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gz
Source1: DIR_COLORS
Patch: fileutils-3.16-mktime.patch
%description
These are the GNU file management utilities. It includes programs
to copy, move, list, etc, files.
The ls program in this package now incorporates color ls!
%prep
%setup
%ifarch alpha
%patch -p1
autoconf
%endif
%build
configure --prefix=/usr --exec-prefix=/
make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS=-s
%install
rm -f /usr/info/fileutils*
make install
gzip -9nf /usr/info/fileutils*
Dans cet exemple, vous pouvez voir comment la directive "optflags" est utilis�e dans le /etc/rpmrc. Selon l'architecture sur laquelle vous compilez, la valeur est donn�e � RPM_OPT_FLAGS. Vous devez patcher le Makefile pour votre paquetage pour utiliser cette variable � la place des directives normales que vous utilisez probablement (comme -m486 et -O2). Vous pouvez obtenir un meilleur aspect de ce dont vous avez � faire par l'installation du paquetage source, la d�compression de celui-ci et l'examen du Makefile. Ensuite regardez au patch pour le Makefile et voyez les changements � faire.
la macro %ifarch est tr�s important pour tout cela. LA plupart du temps vous autre besoin de faire un patch ou deux qui sera sp�cifique � une architecture seulement. Dans ce cas, RPM va vous permettre d'appliquer ce patch uniquement sur cette architecture.
Dans l'exemple plus haut, fileutils a un patch pour les machines 64 bits. Manifestement, cela doit uniquement �tre appliqu� sur Alpha � ce jour. Donc, on ajoute une macro %ifarch pour le patch 64 bits comme suit:
%ifarch axp
%patch1 -p1
%endif
Cela garantira que le patch ne sera pas appliqu� sur une autre architecture que Alpha.Comme vous pouvez maintenir les RPMs sources dans un r�pertoire pour toutes les plateformes, nous avons impl�ment� la capacit� d'exclure des paquetages d'�tre compil�es sur certaines architectures. C'est ce que vous pouvez faire avec quelque chose comme
rpm --rebuild /usr/src/SRPMS/*.rpm
et vous obtenez les vrais paquetages compil�s. Si vous n'avez pas encore port� une application sur une certaine platefome, tout ce que vous devez faire est une ligne comme:
ExcludeArch: axp
� l'en-t�te du fichier spec des paquetages source. Ensuite recompilez les paquetages sur les plateformes sur lesquelles il compile. Vous aurez alors un paquetage source qui compile sur Intel et peut facilement �tre saut� sur Alpha.
Utilisez RPM pour construire des paquetages multi-architectures est habituellement plus simple � faire que d'obtenir du paquetage lui-m�me qu'il compile sur des architectures diff�rentes. Aussi plus les paquetages compilent difficilement plus vous obtiendrez de facilit� (Ndt: ?). Comme toujours, la meilleure aide quand la construction d'un RPM vous pose probl�me est de regarder un paquetage source similaire.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:15