<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Club LinuX Nord-Pas de Calais</title>
	<link>https://clx.asso.fr/spip/</link>
	<description>Association loi 1901 de promotion des logiciels libres en r&#233;gion Nord-Pas de Calais depuis 1999.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Club LinuX Nord-Pas de Calais</title>
		<url>https://clx.asso.fr/spip/local/cache-vignettes/L144xH21/siteon0-86bed.png?1759523095</url>
		<link>https://clx.asso.fr/spip/</link>
		<height>21</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>5- RPM : Faites-le vous m&#234;me !</title>
		<link>https://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme</guid>
		<dc:date>2005-01-25T11:34:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Pr&#233;sentaiton de quelques outils alternatifs ou compl&#233;mentaires et &#233;num&#233;ration de sites faisant r&#233;f&#233;rence en la mati&#218;re de fabrication de RPM.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton266-9129b.png?1759527529' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;outils accessoires et liens&lt;/h2&gt;
&lt;p&gt;Plusieurs outils sont g&#233;n&#233;ralement cit&#233;s en mati&#232;re de cr&#233;ation de RPM. &lt;/p&gt;
&lt;p&gt;Il y a RpmLint dont l'objectif est de v&#233;rifier si votre fichier SPEC respecte les r&#232;gles de l'art. Il vous fournira un rapport tr&#232;s d&#233;taill&#233;. De l'essentiel au d&#233;tail, le nombre de remarques sera cons&#233;quent.&lt;/p&gt;
&lt;p&gt;Alien est souvent cit&#233; car il permet de passer d'un format &#224; un autre assez facilement (de deb &#224; rpm, de tar.gz &#224; deb, inversement, etc).&lt;/p&gt;
&lt;p&gt;D'autres outils viennent apporter une interface conviviale &#224; rpm ou simplifient la ligne de commande (kpackage, rpmbuilder...) sans r&#233;volutionner le syst&#232;me.&lt;/p&gt;
&lt;p&gt;Pour aller plus loin, voici les liens qui nous ont aid&#233; :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://genetikayos.com/code/repos/rpm-tutorial/trunk/rpm-tutorial.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://genetikayos.com/code/repos/r...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://cvs.mandriva.com/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://cvs.mandriva.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://club.mandriva.com/xwiki/bin/KB/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/MandrivaRpmHowToAdvanced&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://club.mandriva.com/xwiki/bin/...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://rikers.org/rpmbook/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://rikers.org/rpmbook/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://c.laloy.free.fr/howtos/linux/admin/urpm.html#srpms_compil&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://c.laloy.free.fr/howtos/linux...&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Voil&#224;, la cr&#233;ation d'un RPM devrait maintenant &#234;tre bien moins myst&#233;rieuse...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Retour &#224; la 4&#218;me partie : &lt;a href='https://clx.asso.fr/spip/?4-Quelques-exemples' class=&#034;spip_in&#034;&gt;Des exemples&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>4- Quelques exemples</title>
		<link>https://clx.asso.fr/spip/?4-Quelques-exemples</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?4-Quelques-exemples</guid>
		<dc:date>2005-01-25T11:33:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Des exemples de &#034;specfile&#034; pour la cr&#233;ation de RPM.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton265-eeea5.png?1759529201' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;exemples v&#233;cus&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Le RPM du fain&#233;ant&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Auteur d'un &lt;a href=&#034;http://www.vbeuselinck.freesurf.fr/logiciels/page0003.htm#bztarot&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;jeu de tarot&lt;/a&gt; initialement pour Windows con&#231;u sous &lt;a href=&#034;http://www.borland.fr/delphi/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Delphi&lt;/a&gt; de Borland, j'ai proc&#233;d&#233; &#224; son transfert vers Linux &#224; l'aide de &lt;a href=&#034;http://www.borland.fr/kylix/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Kylix&lt;/a&gt; (EDI Delphi sous Linux con&#231;u par Borland. Kylix n'est pas libre. Il existe n&#233;anmoins une version &lt;a href=&#034;http://www.borland.fr/kylix/open/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&#034;open edition&#034;&lt;/a&gt; gratuite ).&lt;/p&gt;
&lt;p&gt;Dans un premier temps je l'ai diffus&#233; sous la forme d'un tar.gz contenant les binaires et d'un autre contenant les sources. Je me suis alors lanc&#233; dans sa eRP&#233;Misation et j'ai &#233;clus&#233; les howtos et autres sites persos sur le th&#232;me. Remarquons tout de suite &lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/MandrivaRpmHowTo&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;celui de Mandriva&lt;/a&gt; (d&#233;sormais disponible en Fran&#231;ais).&lt;/p&gt;
&lt;p&gt;Pas grand chose &#224; la port&#233;e d'un anglophobe au vocabulaire limit&#233; &#224; quelques dizaines de mots. &lt;br class='autobr' /&gt;
J'avais n&#233;anmoins compris quelques trucs : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la structure obligatoire des r&#233;pertoires &#224; mettre en place ; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'existence d'un script d'&lt;i&gt;eRP&#233;Misation&lt;/i&gt; ; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la possibilit&#233; de &#034;tricher&#034; sur des scripts existants en allant sur le &lt;a href=&#034;http://cvs.mandriva.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CVS de Mandriva&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) Les dossiers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans votre dossier personnel, vous avez cr&#233;&#233; les dossiers suivants :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; RPM&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; RPM/SOURCES o&#249; il faut mettre les fichiers sources compress&#233;s&lt;/li&gt;&lt;li&gt; RPM/SPECS o&#249; il faut cr&#233;er son fichier de sp&#233;cifications&lt;/li&gt;&lt;li&gt; RPM/RPMS qui contient un dossier par plateforme
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; RPM/RPMS/i586 o&#249; sera cr&#233;&#233; votre RPM pour Pentium&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; RPM/SRPMS o&#249; sera cr&#233;&#233; le &#034;SRC.RPM&#034; qui permet de refaire le RPM selon la m&#233;thode d&#233;crite plus bas&lt;/li&gt;&lt;li&gt; RPM/tmp o&#249; sera stock&#233;e votre application compil&#233;e pendant la production du RPM&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2) le fichier SPEC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est un fichier texte qui d&#233;finit comment va &#234;tre cr&#233;&#233; votre RPM. Celui qui suit est une version &#8220;Fain&#233;ant&#8221; ! Il ne compile rien mais se contente de recopier les fichiers &#224; la mani&#232;re d'un &lt;i&gt;tar.gz&lt;/i&gt; &#224; l'emplacement identique. J'ai fait cela car je n'arrivais pas &#224; ma&#238;triser le compilateur en ligne Kylix (entretemps, je me suis soign&#233;) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='40' class='spip_cadre spip_cadre_block' dir='ltr'&gt;_ %define name bztarot _ %define version 1.01 _ %define release 9 _ Name: %{name} _ Summary: Jeu de tarot a 4 sous environnement graphique _ Version: %{version} _ Release: %{release} _ License: GPL _ Group: Games/Cards _ URL: http://www.beuselinck.com _ Provides: %{name} = %{version}-%{release} _ Source: bztarot-1.01.tar.bz2 _ %description _ Ce jeu de tarot vous permet de jouer seul contre l'ordinateur dans des parties a 4. Respecte la reglementation de la Federation Francaise de Tarot. _ %install _ %post _ %{update_menus} _ %postun _ %{clean_menus} _ %files _ /usr/bin/bztarot-1.01 _ /usr/bin/bztarot _ /usr/lib/libborqt* _ /usr/share/icons/bztarot.png _ &#034;/usr/share/applnk-mdk/More applications/Games/Cards/bztarot.desktop&#034; _ %changelog _ * Mon Oct 12 2004 Vincent Beuselinck &lt;vincent@beuselinck.com&gt; 1.01 _ - ajout d'un &#233;cran d'accueil _ - correction d'un bug (sigserv 11) _ - rajout d'une entr&#233;e de menu oubli&#233;e _ - compatibilit&#233; noyau 2.6 _ - aide integr&#233;e _ - modifications pour empaquetage RPM&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION :&lt;/strong&gt; Ce fichier SPEC n'est pas techniquement un bon mod&#232;le : il ne r&#233;alise pas la compilation mais se contente de recopier les binaires (Horreur !). L'entr&#233;e de menu qu'il cr&#233;e a des r&#233;sultats curieux selon les versions de MandrakeLinux&lt;/p&gt;
&lt;p&gt;Dans un premier temps, j'avais accentu&#233; mes descriptions. Avec les commandes &lt;strong&gt;urpmi&lt;/strong&gt; et &lt;i&gt;(rpm&lt;/strong&gt;, j'obtenais le r&#233;sultat escompt&#233; mais dans rpmdrake les rubriques avec accent ou c&#233;dille disparaissaient. J'ai d&#233;pos&#233; un rapport de bogue et la r&#233;ponse a &#233;t&#233; en substance qu'il fallait faire &#231;a en UTF8 (???) pour que &#231;a marche.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) &#034;Tricher&#034; sur des fichiers specs existants&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une solution simple pour examiner un fichier SPEC existant est de t&#233;l&#233;charger le SRC.RPM d'un logiciel et d'en extraire le fichier *.spec.&lt;/p&gt;
&lt;p&gt;Personnellement, j'utilise &lt;a href=&#034;http://www.ibiblio.org/mc/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;mc&lt;/i&gt;&lt;/a&gt; , une application &#034;console&#034; qui lit dans les paquetages RPM comme s'il s'agissait de tar.gz. Il est alors facile d'en extraire ou consulter un fichier texte quelconque.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4)Second essai&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Apr&#232;s nos travaux communs d'apprentissage, mon fichier SPEC a &#233;volu&#233; ainsi :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='105' class='spip_cadre spip_cadre_block' dir='ltr'&gt;_ %define name bztarot _ # Pour pas &#233;crire 10 fois le titre dans le spec, on d&#233;finit une variable &#034;name&#034; _ # qui contient le nom du logiciel, ici c'est bztarot. _ # idem avec les variables d&#233;clar&#233;es ci-dessous : _ %define version 1.02 _ %define release 11mdk _ %define section Amusement/Cards _ %define title BzTarot _ Name: %{name} _ Summary: Jeu de tarot a 4 sous environnement graphique _ Version: %{version} _ Release: %{release} _ License: GPL _ Group: Games/Cards _ URL: http://www.beuselinck.com _ Provides: %{name} = %{version}-%{release} _ Source0: %name-%version.tar.bz2 _ Source1: %name-icons.tar.bz2 _ Packager: V.Beuselinck &lt;vincent@beuselinck.com&gt; _ BuildRoot: %_tmppath/%name-buildroot _ %description _ Ce jeu de tarot vous permet de jouer seul contre l'ordinateur dans des parties a 4. Respecte la reglementation de la Federation Francaise de Tarot. _ # L&#224;, j'ai d&#251; enlever les accents car pour rpm et urpmi &#231;a va mais pour rpmdrake, &#231;a n'affichait plus rien. _ %prep _ %setup -q _ %setup -q -T -D -a1 # unpack icons _ #%patch1 -p0 _ # Dans cette section, on dit &#224; RPM de d&#233;compresser les sources. Pour la premi&#232;re ligne, le -a0 de la source0 est implicite. Mais pour les autres sources, il faut num&#233;roter... _ %build _ dcc tarot.dpr _ # Dans cette section, on effectue la compilation en lan&#231;ant le compilateur en ligne Kylix, &#224; savoir dcc, sur le projet tarot.dpr _ %install _ rm -rf %buildroot _ %__install -D -m 755 tarot %buildroot/%_bindir/&lt;HTML&gt;%{name}&lt;/HTML&gt; _ # un petit nettoyage de &#034;buildroot&#034; puis on y installe le fichier compil&#233; dans le virtuel /usr/bin _ # Menu _ mkdir -p %buildroot/%_menudir _ cat &gt; %buildroot/%_menudir/%name &lt;&lt; EOF _ ?package(%name): \ _ command=&#034;%_bindir/%name&#034; \ _ needs=&#034;X11&#034; \ _ icon=&#034;%name.png&#034; \ _ section=&#034;%section&#034; \ _ title=&#034;%title&#034; \ _ longtitle=&#034;%Summary&#034; _ EOF _ #Ci-dessus, on cr&#233;e les entr&#233;es de menu pour les menus mandrake. _ # icones et librairies _ %__install -D -m 644 %{name}48.png %buildroot/%_liconsdir/%name.png _ %__install -D -m 644 %{name}32.png %buildroot/%_iconsdir/%name.png _ %__install -D -m 644 %{name}16.png %buildroot/%_miconsdir/%name.png _ %__install -D -m 755 /usr/lib/libborqt* %buildroot/usr/lib/ _ # on installe &#233;galement dans le syst&#232;me de fichiers virtuel les icones et librairies _ %post _ %{update_menus} _ #&#231;a, &#231;a marche pas, mais j'ai d&#233;j&#224; rep&#233;r&#233; des syntaxes diff&#233;rentes, j'irai &#224; la p&#234;che pour trouver la bonne syntaxe. Le but est de demander au gestionnaire de fen&#234;tres d'actualiser son menu puisqu'on vient d'y mettre une nouvelle entr&#233;e. Sinon, il faut attendre le prochain boot pour que &#231;a apparaisse. _ %postun _ %{clean_menus} _ %files _ %defattr(0755,root,root,0755) _ %_bindir/* _ /usr/lib/libborqt* _ %defattr(0644,root,root,0755) _ #%doc COPYING LICENSE README INSTALL Changelog AUTHORS _ %_menudir/* _ %_miconsdir/* _ %_iconsdir/* _ %_liconsdir/* _ # Et l&#224;, on dit &#224; RPM : tout ce que j'ai mis dans le syst&#232;me de fichier virtuel, tu _l'installeras au m&#234;me endroit mais dans le vrai syst&#232;me de fichier, quand quelqu'un te demandera d'installer le RPM _ %changelog _ * Mon Nov 13 2004 Vincent Beuselinck &lt;vincent@beuselinck.com&gt; 1.02-11mdk _ - correctif d'une erreur en quittant le jeu _ [..]&lt;/textarea&gt;
&lt;p&gt;YAHooouuuuuuuuuuuuuu ! Voil&#224; mon RPM est fait.&lt;/p&gt;
&lt;p&gt;Prochaines &#233;tapes : s&#233;parer les librairies, franciser dans les r&#232;gles de l'art le RPM, faire que la mise &#224; jour des menus soit imm&#233;diate, mettre le compilateur Borland dcc comme &#171; BuildRequires &#187;, c'est-&#224;-dire n&#233;cessaire pour compiler les sources...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Derni&#232;re partie : &lt;a href='https://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme' class=&#034;spip_in&#034;&gt;Accessoires et conclusion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour &#224; la 3&#232;me partie : &lt;a href='https://clx.asso.fr/spip/?3-La-demarche' class=&#034;spip_in&#034;&gt;La d&#233;marche&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>3- La d&#233;marche</title>
		<link>https://clx.asso.fr/spip/?3-La-demarche</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?3-La-demarche</guid>
		<dc:date>2005-01-16T19:31:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;La d&#233;marche pour cr&#233;er ses RPM : installer les outils, les configurer, cr&#233;er le fichier SPEC et compiler le RPM&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton264-98cc2.png?1759546984' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;En pratique&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1) Pr&#233;requis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tout d'abord, vous devez installer quelques paquetages : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpm&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpm-build&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;spec-helper&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;libtool&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpmlint&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le paquetage rpm est probablement d&#233;j&#224; install&#233; ;)&lt;br class='autobr' /&gt;
Pour les autres paquetages, ouvrez une console en se &#034;&lt;i&gt;loguant&lt;/i&gt;&#034; en root, tapez cette commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;urpmi rpm-build spec-helper libtool rpmlint&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il faut bien s&#251;r accepter l'installation des d&#233;pendances que l'utilitaire &lt;i&gt;urpmi&lt;/i&gt; vous&lt;br class='autobr' /&gt;
r&#233;clame.&lt;/p&gt;
&lt;p&gt;D&#233;cidez maintenant quel utilisateur (ici monpseudo) va compiler le paquet : &#231;a ne doit jamais&lt;br class='autobr' /&gt;
&#234;tre root !&lt;/p&gt;
&lt;p&gt;Passez donc sous ce login en tapant :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;su monpseudo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ensuite une deuxi&#232;me commande va installer les r&#233;pertoires utiles.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION :&lt;/strong&gt; Remplacez &lt;strong&gt;i586&lt;/strong&gt; par votre architecture.&lt;br class='autobr' /&gt;
Ces r&#233;pertoires sont install&#233;s dans votre r&#233;pertoire personnel (/home/monpseudo selon l'exemple choisi).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) La configuration g&#233;n&#233;rale&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En &#034;standard&#034; sur Mandrake 10, vous trouverez les fichiers suivants :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;~/.rpmrc : buildarchtranslate: i386: i586 buildarchtranslate: i486: i586 buildarchtranslate: i586: i586 buildarchtranslate: i686: i586 ~/.rpmmacros : %_topdir $HOME/rpm %_tmppath $HOME/rpm/tmp %_signature gpg %_gpg_name Mandrakelinux %_gpg_path ~/.gnupg %distribution Mandrakelinux %vendor Mandrakesoft&lt;/textarea&gt;
&lt;p&gt;Ces deux fichiers se trouvent dans le r&#233;pertoire &lt;i&gt;$HOME&lt;/i&gt; de l'utilisateur. Comme vous le&lt;br class='autobr' /&gt;
voyez, le premier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.rpmrc&lt;/code&gt; donne une s&#233;rie&lt;br class='autobr' /&gt;
d'&#233;quivalences. les d&#233;veloppeurs de &lt;a href=&#034;http://www.mandriva.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mandriva&lt;/a&gt; ont pris comme plate-forme de&lt;br class='autobr' /&gt;
r&#233;f&#233;rence le i586.&lt;/p&gt;
&lt;p&gt;Le second fichier contient des variables g&#233;n&#233;rales, &#224; savoir :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;topdir&lt;/code&gt;&lt;/strong&gt; contient le chemin vers le dossier rpm donc&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/monpseudo/rpm&lt;/code&gt;.&lt;br class='manualbr' /&gt;C'est &#224; partir de cet endroit que RPM s'attend &#224; trouver les sous-dossiers&lt;br class='autobr' /&gt;
n&#233;cessaires &#224; la fabrication d'un rpm (voir les pr&#233;requis).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tmppath&lt;/code&gt;&lt;/strong&gt; d&#233;signe le dossier dans lequel RPM copiera ses fichiers&lt;br class='autobr' /&gt; temporaires pendant la fabrication de l'archive.&lt;br class='manualbr' /&gt;# Les variables ci-dessous ne sont utiles que pour le r&#233;f&#233;rencement Mandrake.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;signature&lt;/code&gt;&lt;/strong&gt;, c'est le logiciel GPG qui servira &#224; authentifier&lt;br class='autobr' /&gt; votre paquet.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gpg name&lt;/code&gt;&lt;/strong&gt;, la cl&#233; de MandrakeSoft servira &#224; signer le paquet qui sera propos&#233; sur leur serveur&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;La mise en oeuvre se fera par Mandrakesoft si les d&#233;veloppeurs responsables (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gpg path&lt;/code&gt;&lt;/strong&gt;, vos fichiers de configuration gpg se trouvent l&#224;&lt;br class='autobr' /&gt; (ici, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/.gnupg&lt;/code&gt; signifie dans le dossier $HOME (le &lt;i&gt; &lt;/i&gt;), sous-dossier cach&#233;&lt;br class='autobr' /&gt; gnupg.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;distribution&lt;/code&gt;&lt;/strong&gt; la distribution pour laquelle votre paquet est&lt;br class='autobr' /&gt; con&#231;u.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vendor&lt;/code&gt;&lt;/strong&gt; c'est vous si vous ne travaillez pas pour&lt;br class='autobr' /&gt; Mandrakesoft.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) Les fichiers SPECs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le fichier SPEC est un fichier texte (donc votre &#233;diteur de texte pr&#233;f&#233;r&#233; fera l'affaire) qui indique &#224; l'application RPM comment construire votre rpm. Il se d&#233;coupe en &#034;sections&#034;. Voici des extraits comment&#233;s du squelette propos&#233; par&lt;br class='autobr' /&gt;
Mandrakeclub que nous avons comment&#233;s :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='155' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# D'abord on d&#233;finit quelques variables (name, version et release) # c'est plus simple lorsque l'on change de nom ou version de n'avoir qu'un seul endroit &#224; changer %define name skel %define version 0.1 %define release 8mdk # Pour les Applications X, les menus Mandriva comportent une classification # (donc l'endroit de l'arborescence o&#249; poser le raccourci). %define section menu mandrake/sous-menu mandrake # la liste est sur http://qa.mandriva.com/twiki/bin/view/Main/MenuSystem_Fr %define title Skel # Le nom du logiciel avec la premi&#232;re lettre en capitale pour qu'il apparaisse comme &#231;a dans les menus Mandrake # SUMMARY courte description en 60 caract&#232;res # Pas d'accents. Inutile de r&#233;p&#233;ter le nom du logiciel %define Summary ma description Summary: %Summary Name: %name Version: %version Release: %release License: GPL Group: Groupe/Sousgroupe # Group d&#233;finit l'arborescence de pr&#233;sentation dans RPMDRAKE &#034;choix Mandrake&#034;. # La liste est sur http://qa.mandriva.com/twiki/bin/view/Main/MandrivaGroups_Fr URL: http://la.homepage.de.mon.appli.com # il est bien de rajouter &#233;galement en commentaire le lien direct vers l'URL # de t&#233;l&#233;chargement Source0: %name-%version.tar.bz2 # La source 0 est g&#233;n&#233;ralement un tar.bz2 contenant un dossier du nom de # l'appli et la version (ici : on aura donc un dossier skel-0.1 ). Dedans, # se trouvent les fichiers sources pr&#234;ts &#224; &#234;tre compil&#233;s. # La source 1 contient souvent 3 ic&#244;nes nomm&#233;s skel-16.png skel-32.png # skel-48.png (rappel skel = nom de mon appli) o&#249; le chiffre donne la taille # de l'ic&#244;ne (tar -cjf %name-icons.tar.bz2 *png permet de cr&#233;er cette source) Source1: %name-icons.tar.bz2 # Vous pouvez aussi avoir des source2,3,4... Buildroot: %_tmppath/%name-buildroot # La notion de buildroot est tr&#232;s importante : c'est l&#224; que RPM cr&#233;era un # pseudo syst&#232;me de fichier racine &#224; l'int&#233;rieur duquel il pourra mettre un # pseudo /usr/bin, un pseudo /etc bref faire sembler de travailler sur / sans # risquer de mettre en danger le vrai / Buildrequires: foo-devel bar-devel Requires: foo # Utilisez ldd pour conna&#238;tre les d&#233;pendances n&#233;cessaires au # logiciel (Requires) ou &#224; sa compilation (buildrequires). # NE METTEZ PAS des d&#233;pendances implicites. Exemple: # Buildrequires: gtk+-devel XFree86-devel &lt;- Mauvais ! # Puisque gtk+-devel a d&#233;j&#224; besoin de XFree86-devel, vous n'avez pas besoin # d'ajouter cette seconde d&#233;pendance pour votre logiciel. # Si RPM trouve les librairies (lisez la derni&#232;re partie de la sortie console) # lui-m&#234;me, vous n'avez rien &#224; ajouter non plus. %description # Ici, vous allez mettre une description plus longue # La section &#034;prep&#034; (pour &#034;preparation&#034;) commence ici : %prep %setup -q %setup -q -T -D -a1 # unpack icons #%patch1 -p0 # setup est une macro de d&#233;compression et installation des sources # c'est l&#224; que vous patcherez &#233;ventuellement vos sources au besoin %build %configure %make %install %__rm -rf %buildroot %makeinstall # Menu # Voil&#224; la macro qui cr&#233;e les entr&#233;e dans les menus Mandrake # CAT cr&#233;e dans un fichier tout ce qu'il y a entre EOF et EOF # install le pose o&#249; &#231;a va bien %__install -d %buildroot/%_menudir %__cat &lt;&lt; EOF &gt; %buildroot/%_menudir/%name package(%name): \ command=&#034;%_bindir/%name&#034; \ needs=&#034;X11&#034; \ icon=&#034;%name.png&#034; \ section=&#034;%section&#034; \ title=&#034;%title&#034; \ longtitle=&#034;%Summary&#034; EOF # icon # ici ce sont les ic&#244;nes qui sont install&#233;s l&#224; o&#249; menudrake saura aller les # chercher en fonction de la taille &#233;cran. %__install -D -m 644 %{name}-48.png %buildroot/%_liconsdir/%name.png %__install -D -m 644 %{name}-32.png %buildroot/%_iconsdir/%name.png %__install -D -m 644 %{name}-16.png %buildroot/%_miconsdir/%name.png %pre %post %{update_menus} # On demande &#224; votre environnement graphique de mettre &#224; jour son menu pour _ # notre nouveau logiciel y apparaisse tout de suite (sans attendre un reboot) %postun %{clean_menus} # m&#234;me chose en cas de d&#233;sinstallation %clean %__rm -rf %buildroot # la section ci-dessous consiste &#224; installer les fichiers &#224; partir de buildroot # vers le v&#233;ritable syst&#232;me de fichier donc &#224; leur place d&#233;finitive %files -f %name.lang %defattr(0755,root,root,0755) # Les fichiers d&#233;sign&#233;s ci-dessous seront ex&#233;cutables # tous ceux qui sont dans &#034;bindir&#034;) donc on leur met le chmod +X (ex&#233;cutable) %_bindir/* %defattr(0644,root,root,0755) # &#224; partir d'ici ce sont les non-ex&#233;cutables donc pas de chmod +X %doc COPYING LICENSE README INSTALL Changelog AUTHORS %_menudir/* %_miconsdir/* %_iconsdir/* %_liconsdir/* %_datadir/%name/* %_mandir/man1/%name.1* # Ci-dessous, on d&#233;crit ce qui change d'une version &#224; l'autre, cela apparaitra # dans rpmdrake %changelog Sat Nov 1 2003 Han Boetes &lt;han@linux-mandrake.com&gt; 0.1-8mdk - more macros and other little improvements.&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;4) La compilation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Selon les cas, la compilation se fera de plusieurs fa&#231;ons. &lt;br class='autobr' /&gt;
Si vous d&#233;marrez d'un fichier src.rpm (ou &#034;srpm&#034;),il vous faudra taper simplement :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm --rebuild lenomdemonfichier.src.rpm&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et si tout va bien, vous obtendrez au final une archive lenomdemonfichier.i586.rpm (ou une autre architecture, &#231;a d&#233;pend de votre besoin exprim&#233; dans vos fichiers de configuration)&lt;/p&gt;
&lt;p&gt;Si vous partez d'un tar.bz2, il vous faut taper :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; rpm -ba lenomdemonfichier.spec&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;
&lt;br /&gt;&#8212; C'est tout ? &lt;br /&gt;&#8212; Oui, c'est tout ! &lt;br /&gt;&#8212; T'es s&#251;r ? &lt;br /&gt;&#8212; Bon si vous insistez, voil&#224; d'autres possibilit&#233;s... &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -ba&lt;/code&gt;&lt;/strong&gt; fait toute la compilation (a signifiant &#034;all&#034;, en&lt;br class='autobr' /&gt; fran&#231;ais &#034;tout&#034;) mais elle peut &#234;tre d&#233;compos&#233;e en &#233;tapes :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bp&lt;/code&gt;&lt;/strong&gt; ne fait par exemple que la pr&#233;paration avant&lt;br class='autobr' /&gt; compilation
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bc&lt;/code&gt;&lt;/strong&gt; va jusque la compilation mais n'installe rien dans&lt;br class='autobr' /&gt; buildroot
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bi&lt;/code&gt;&lt;/strong&gt; va jusqu'&#224; l'installation dans buildroot mais ne&lt;br class='autobr' /&gt; cr&#233;e pas les rpm
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bb&lt;/code&gt;&lt;/strong&gt; construit juste le i586.rpm mais pas le src.rpm (les&lt;br class='autobr' /&gt; &#233;tapes pr&#233;c&#233;dentes sont donc faites)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bs&lt;/code&gt;&lt;/strong&gt; construit le src.rpm mais pas le i586.rpm
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bl&lt;/code&gt;&lt;/strong&gt; v&#233;rifie la pr&#233;sence des fichiers dont il aura besoin&lt;br class='autobr' /&gt; pour l'installation (il faut donc &#034;construire&#034; avant).&lt;/p&gt;
&lt;p&gt;Dans tous les cas, on indique en param&#232;tre le fichier spec et l'endroit o&#249; il&lt;br class='autobr' /&gt;
se trouve. Parfois celui-ci est directement dans le dossier &#034;tar&#233;&#034; des sources&lt;br class='autobr' /&gt;
(le sources.tar.bz2), on peut alors soit extraire ce fichier SPEC pour pouvoir&lt;br class='autobr' /&gt;
lancer notre compilation par &lt;i&gt;rpm -ba&lt;/i&gt; soit remplacer le B de &lt;i&gt;rpm -ba&lt;/i&gt; par un&lt;br class='autobr' /&gt;
T (&lt;i&gt;rpm -ta&lt;/i&gt;) qui demande &#224; rpm d'aller chercher le SPEC dans le fichier tar&lt;br class='autobr' /&gt;
des sources.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;La mise en oeuvre se fera par Mandrakesoft si les d&#233;veloppeurs responsables des archives d&#233;cident d'int&#232;grer votre paquet &#224; la distribution. Cf &lt;a href=&#034;http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo#Send_your_work&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://qa.mandriva.com/twiki/bin/vi...&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;4&#218;me partie : &lt;a href='https://clx.asso.fr/spip/?4-Quelques-exemples' class=&#034;spip_in&#034;&gt;Quelques exemples&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour &#224; la 2&#218;me partie : &lt;a href='https://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM' class=&#034;spip_in&#034;&gt;Les principes de cr&#233;ation d'un RPM&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>2- Les principes de la cr&#233;ation d'un RPM</title>
		<link>https://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM</guid>
		<dc:date>2005-01-16T19:29:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Cette parte montre les grandes lignes de la construction d'un RPM : qu'est-ce que le buildroot, a quoi sert le fichier SPEC, qu'est-ce qu'un fichier SRPM...&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton263-f6462.png?1759552845' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Les principes&lt;/h2&gt;
&lt;p&gt;Pour comprendre comment construire un RPM, il est plus&lt;br class='autobr' /&gt;
simple de conna&#238;tre d'abord les grandes lignes de la cr&#233;ation d'un RPM...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPM travaille proprement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lorsque vous installez un logiciel &#224; partir&lt;br class='autobr' /&gt;
de son code source, vous devez d'abord d&#233;compresser l'archive correspondante qui porte le plus souvent l'extension &lt;i&gt;.tar.gz&lt;/i&gt; ou &lt;i&gt;.tar.bz2&lt;/i&gt;. En effet, le code source est souvent&lt;br class='autobr' /&gt;
fourni sous la forme d'une archive compress&#233;. &lt;br class='autobr' /&gt;
Il faut donc d&#233;compresser l'archive &lt;br class='autobr' /&gt;
dans un dossier pr&#233;alablement choisi (ou bien copier l'archive dans un dossier particulier et l'y&lt;br class='autobr' /&gt;
d&#233;compresser, ce qui revient au m&#234;me).&lt;br class='autobr' /&gt;
Puis, il faut pr&#233;parer la compilation du programme en adaptant un fichier de configuration (&lt;i&gt;Makefile&lt;/i&gt;) en fonction de votre architecture, des biblioth&#232;ques de fonctions pr&#233;sentes sur votre syst&#232;me, &lt;i&gt;etc.&lt;/i&gt; Pour cela, vous utilisez la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./configure&lt;/code&gt;. Vous lancez ensuite la compilation, via un programme sp&#233;cifique &#8212;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;make&lt;/code&gt; &#8212; et enfin&lt;br class='autobr' /&gt;
l'installation dans les dossiers de destination&lt;br class='autobr' /&gt;
finale&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;pour les pages man ; pour beaucoup de logiciels ; pour les fichiers (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; est effectu&#233; via la commande &lt;i&gt;make install&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Or, vous avez s&#251;rement remarqu&#233; que ces op&#233;rations ne sont pas n&#233;cessaires avec un RPM. En effet, Il n'y a pas de&lt;br class='autobr' /&gt;
manipulation pr&#233;alable &#224; l'installation d'un RPM,&lt;br class='autobr' /&gt;
ni de commandes &#224; lancer pour terminer&lt;br class='autobr' /&gt;
celle-ci. Le fichier SPEC &#233;labor&#233; lors de la construction du RPM s'occupe de r&#233;aliser toutes ces op&#233;rations. Tout comme &lt;i&gt;urpmi&lt;/i&gt; installe automatiquement un RPM en t&#233;l&#233;chargeant et installant les d&#233;pendances n&#233;cessaires, etc. &lt;br class='autobr' /&gt;
Le principe de construction d'un RPM consiste donc &#224; configurer un fichier de mani&#232;re &#224; ce que toutes ces op&#233;rations soient effectu&#233;es. C'est en cela que RPM fonctionne proprement.&lt;/p&gt;
&lt;p&gt;Mais ce n'est pas le seul principe de &#034;propret&#233;&#034;&lt;br class='autobr' /&gt;
du RPM. Lors de la cr&#233;ation d'un RPM, l&#224; encore, le&lt;br class='autobr' /&gt;
principe de propret&#233; pr&#233;vaut. RPM va travailler dans un dossier que vous lui aurez&lt;br class='autobr' /&gt;
d&#233;sign&#233; et il faudra y cr&#233;er plusieurs&lt;br class='autobr' /&gt;
sous-dossiers dans lesquels il rangera les&lt;br class='autobr' /&gt;
fichiers par cat&#233;gorie : les sources, les specs,&lt;br class='autobr' /&gt;
les binaires (par architecture), les fichiers temporaires...&lt;/p&gt;
&lt;p&gt;Et parmi ces repertoires, le dossier &#034;&lt;i&gt;buildroot&lt;/i&gt;&#034; est&lt;br class='autobr' /&gt;
l&#224; pour servir de pseudo-racine du syst&#232;me. En&lt;br class='autobr' /&gt;
effet, s'il est n&#233;cessaire d'agir dans d'autres&lt;br class='autobr' /&gt;
dossiers lors de l'installation&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir plus haut ; et note 1.&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; (avant d'obtenir le RPM final, il faut faire quelques exp&#233;rimentations), il est&lt;br class='autobr' /&gt;
inacceptable que RPM puisse agir sur le syst&#232;me d'exploitation&lt;br class='autobr' /&gt;
Linux et ainsi le rendre instable &#224; cause d'une&lt;br class='autobr' /&gt;
exp&#233;rience au r&#233;sultat surprenant (suppressions ou&lt;br class='autobr' /&gt;
modifications de fichiers par exemple). C'est la&lt;br class='autobr' /&gt;
raison pour laquelle RPM utilise le buildroot :&lt;br class='autobr' /&gt;
une fausse arborescence racine dans laquelle il&lt;br class='autobr' /&gt;
reproduira les dossiers n&#233;cessaires propres &#224; Linux : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/bin&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc&lt;/code&gt;, ...&lt;/p&gt;
&lt;p&gt;Ainsi, si la fabrication du RPM n'a pas le&lt;br class='autobr' /&gt;
r&#233;sultat escompt&#233;, RPM ayant travaill&#233; dans un&lt;br class='autobr' /&gt;
dossier s&#233;par&#233;, votre syst&#232;me Linux ne sera pas&lt;br class='autobr' /&gt;
encombr&#233; par des fichiers inutiles ou dangereux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPM est une polka.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est-&#224;-dire que l'on peut clairement distinguer&lt;br class='autobr' /&gt;
deux temps dans sa fa&#231;on de construire une archive.&lt;/p&gt;
&lt;p&gt;Tout d'abord, RPM d&#233;compresse les fichiers sources&lt;br class='autobr' /&gt;
&#224; partir du dossier RPM/SOURCES. Attention, il&lt;br class='autobr' /&gt;
faut pr&#233;voir que ces sources soient compress&#233;s&lt;br class='autobr' /&gt;
dans un sous-dossier du nom (nom et version) de&lt;br class='autobr' /&gt;
votre logiciel pour que la d&#233;compression se fasse&lt;br class='autobr' /&gt;
dans RPM/SOURCES/logiciel_version. Par exemple, l'archive TAR de BzTarot contient un r&#233;pertoire bztarot-1.02 qui contient les sources. C'est&lt;br class='autobr' /&gt;
g&#233;n&#233;ralement le cas avec les sources que vous irez&lt;br class='autobr' /&gt;
chercher sur le Net.&lt;/p&gt;
&lt;p&gt;Ensuite, il va compiler le logiciel, utilisant&lt;br class='autobr' /&gt;
pour cela votre dossier temporaire. Si la&lt;br class='autobr' /&gt;
compilation se passe bien, le tout sera install&#233;&lt;br class='autobr' /&gt;
dans RPM/BUILD. Et pour finir cette premi&#232;re&lt;br class='autobr' /&gt;
p&#233;riode, il va installer les fichiers dans le&lt;br class='autobr' /&gt;
buildroot pour simuler l'installation. Les tests,&lt;br class='autobr' /&gt;
v&#233;rifications et pr&#233;parations sont termin&#233;es, le&lt;br class='autobr' /&gt;
second temps est celui de la fabrication des RPM&lt;br class='autobr' /&gt;
eux-m&#234;me.&lt;/p&gt;
&lt;p&gt;Il va cr&#233;er le SRPM, un RPM particulier qui&lt;br class='autobr' /&gt;
contiendra les sources, le spec, la description,&lt;br class='autobr' /&gt;
bref tout ce qu'il faut pour quelqu'un qui&lt;br class='autobr' /&gt;
voudrait recr&#233;er le RPM. Ce paquet n'est&lt;br class='autobr' /&gt;
absolument pas exploitable, dans le sens o&#249; son&lt;br class='autobr' /&gt;
installation ne permettra pas d'utiliser le&lt;br class='autobr' /&gt;
logiciel. Enfin, il va cr&#233;er le RPM qui contiendra&lt;br class='autobr' /&gt;
tous les fichiers n&#233;cessaires au fonctionnement et&lt;br class='autobr' /&gt;
&#224; l'installation du logiciel, mais pas les&lt;br class='autobr' /&gt;
&#233;l&#233;ments qui permettraient de refaire un RPM (pas&lt;br class='autobr' /&gt;
de spec, ni source).&lt;/p&gt;
&lt;p&gt;Certains estiment qu'il y a entre ses deux&lt;br class='autobr' /&gt;
p&#233;riodes, une p&#233;riode interm&#233;diaire de d&#233;bogage,&lt;br class='autobr' /&gt;
correctifs, modifications, jurons et multiples&lt;br class='autobr' /&gt;
essais. C'est peut-&#234;tre exact mais en scrutant aux&lt;br class='autobr' /&gt;
rayons X les RPM et SRPM, cela ne se voit pas...&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/share/man&lt;/code&gt; pour les&lt;br class='autobr' /&gt;
pages man ; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/bin&lt;/code&gt; pour beaucoup de&lt;br class='autobr' /&gt;
logiciels ; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc&lt;/code&gt; pour les fichiers&lt;br class='autobr' /&gt;
communs de configuration ; etc.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Voir plus haut ;&lt;br class='autobr' /&gt;
et note 1.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;3&#218;me partie : &lt;a href='https://clx.asso.fr/spip/?3-La-demarche' class=&#034;spip_in&#034;&gt;La d&#233;marche&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour sur la 1&#218;re partie : &lt;a href='https://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages' class=&#034;spip_in&#034;&gt;Pourquoi cr&#233;er ses propres paquetages&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>1- Pourquoi cr&#233;er ses propres paquetages</title>
		<link>https://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages</link>
		<guid isPermaLink="true">https://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages</guid>
		<dc:date>2005-01-07T03:11:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Pourquoi cr&#233;er des RPM pour sa distribution pr&#233;f&#233;r&#233;e, ici une Mandrake ? Cet article regroupe quelques raisons d'aborder la construction de paquetages personnalis&#233;s.&lt;/p&gt;

-
&lt;a href="https://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="https://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="https://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton262-152a7.png?1759530124' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Avant de commencer &#224; attaquer le vif du sujet, voici en quelques points, les raisons qui peuvent vous pousser &#224; construire un paquetage pour votre distribution pr&#233;f&#233;r&#233;e.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Des raisons de cr&#233;er ses RPM&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs raisons pour lesquelles vous&lt;br class='autobr' /&gt;
pouvez avoir envie de faire vos RPM. Si vous&lt;br class='autobr' /&gt;
consultez cette page Web, c'est peut-&#234;tre que vous&lt;br class='autobr' /&gt;
avez d&#233;j&#224; une raison de construire votre RPM. Et&lt;br class='autobr' /&gt;
bien, vous allez en d&#233;couvrir plusieurs autres.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) Un logiciel dont vous &#234;tes le h&#233;ros (je veux dire &lt;i&gt;l'auteur&lt;/i&gt;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eh oui, vous n'avez pas oubli&#233; qu'au si&#232;cle&lt;br class='autobr' /&gt;
dernier, vous &#233;tiez fier de pr&#233;senter votre&lt;br class='autobr' /&gt;
application sous la forme d'un logiciel&lt;br class='autobr' /&gt;
auto-installable sous Windows construit &#224; l'aide d'&lt;a href=&#034;http://www.jrsoftware.org/isinfo.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Inno Setup&lt;/a&gt; ou&lt;br class='autobr' /&gt;
d'&lt;a href=&#034;http://www.installshield.com/products/x/express/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;InstallShield Express&lt;/a&gt;. Alors maintenant que vous&lt;br class='autobr' /&gt;
&#234;tes pass&#233; au libre, pr&#233;senter votre logiciel sous&lt;br class='autobr' /&gt;
la forme d'un RPM, cela va de soi !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) Un logiciel qui n'est pas disponible pour votre plate-forme&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vous poss&#233;dez un Mac ? Un AMD 64 ? un Athlon ?&lt;br class='autobr' /&gt;
Bref, une architecturee non-Intel et vous aimeriez&lt;br class='autobr' /&gt;
bien que ce logiciel trouv&#233; sur le Net fonctionne sur votre ordinateur. Vous avez &#224; votre disposition le paquet RPM pour architecture Intel (processeur Pentium et autre, i386, i686...) et&lt;br class='autobr' /&gt;
le paquet RPM contenant les sources du programme. La solution est de&lt;br class='autobr' /&gt;
d&#233;marrer du &#171; SRPM &#187; (ou &lt;i&gt;src.rpm&lt;/i&gt;) et de compiler&lt;br class='autobr' /&gt;
le logiciel pour votre plate-forme. Vous cr&#233;erez&lt;br class='autobr' /&gt;
ainsi un &lt;i&gt;ppc.rpm&lt;/i&gt; ou un &lt;i&gt;amd64.rpm&lt;/i&gt; !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) Un logiciel qui n'existe qu'en archive compress&#233;e&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ha la la, cette fois c'est pire encore ! Vous&lt;br class='autobr' /&gt;
n'avez trouv&#233; que les sources en &lt;i&gt;tar.gz&lt;/i&gt; ou en &lt;i&gt;tar.bz2&lt;/i&gt; contenant les sources&lt;br class='autobr' /&gt; ? Allez-vous le compiler pour votre plateforme ?&lt;br class='autobr' /&gt;
H&#233; bien faites-en un RPM afin d'en faire profiter&lt;br class='autobr' /&gt;
votre entourage dans un premier temps puis, bien plus de monde encore.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4) Un RPM qui existe mais contenant un programme qui ne fonctionne pas sur votre PC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eh oui ! &#199;a arrive aussi ! Erreur dans le RPM ou&lt;br class='autobr' /&gt;
bien configuration exorbitante exig&#233;e par&lt;br class='autobr' /&gt;
l'auteur du paquet...&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Je vous livre ici une anecdote : J'ai install&#233; le&lt;br class='autobr' /&gt;
RPM de &lt;a href=&#034;http://www.tobias-nopper.de/BillardGL/download-en.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;BillardGL&lt;/a&gt; (jeu de billard comme son nom&lt;br class='autobr' /&gt;
l'indique) sur mon ordinateur familial car il&lt;br class='autobr' /&gt;
refusait de s'installer sur mon portable. Urpmi&lt;br class='autobr' /&gt;
indiquait comme d&#233;pendance un noyau supportant les&lt;br class='autobr' /&gt;
pilotes vid&#233;o non libres nVidia acc&#233;l&#233;r&#233; avec son&lt;br class='autobr' /&gt;
module GLX. J'ai donc install&#233; un noyau&lt;br class='autobr' /&gt;
suppl&#233;mentaire adapt&#233; pour installer BillardGL.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Par erreur, j'ai lanc&#233; l'ex&#233;cutable et quelle surprise !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le lendemain, j'ai rallum&#233; la machine en d&#233;marrant sur le&lt;br class='autobr' /&gt;
noyau original (non-nVidia) de ma distribution. Via SSH, j'ai voulu configurer en fran&#231;ais ce jeu &#224; partir de&lt;br class='autobr' /&gt;
mon PC portable (oui je suis un grand flemmard et&lt;br class='autobr' /&gt;
monter un &#233;tage pour modifier un fichier de&lt;br class='autobr' /&gt;
configuration &#233;tait trop dur).&lt;/p&gt;
&lt;p&gt;Par erreur, j'ai lanc&#233; l'ex&#233;cutable et quelle&lt;br class='autobr' /&gt;
surprise de voir qu'il est apparu sur l'&#233;cran de&lt;br class='autobr' /&gt;
mon portable ! C'&#233;tait &#171; impossible &#187;, pour deux raisons :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le PC familial ne tournait pas avec&lt;br class='autobr' /&gt;
le noyau sp&#233;cialement compil&#233; pour le support des cartes nVidia, et &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le portable dispose d'une&lt;br class='autobr' /&gt;
carte graphique Intel845 de base, ne disposant pas d'acc&#233;l&#233;ration&lt;br class='autobr' /&gt;
graphique.&lt;/p&gt;
&lt;p&gt;Apr&#232;s quelques&lt;br class='autobr' /&gt;
recherches, j'ai compris que l'auteur du paquet&lt;br class='autobr' /&gt;
RPM a impos&#233; l'exigence d'une carte nVidia et de&lt;br class='autobr' /&gt;
son pilote &#034;Full Patate&#034; l&#224; o&#249; ce jeu&lt;br class='autobr' /&gt;
fonctionnerait sur bien d'autres machines&lt;br class='autobr' /&gt;
graphiquement moins performantes ! Apr&#232;s l'avoir&lt;br class='autobr' /&gt;
install&#233; de force sur mon portable, j'ai recommenc&#233; la&lt;br class='autobr' /&gt;
m&#234;me exp&#233;rience avec un autre jeu de billard :&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://foobillard.sunsite.dk&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Foobillard&lt;/a&gt;. M&#234;me constat : il fonctionne&lt;br class='autobr' /&gt;
honorablement sur mon portable qui ne remplit&lt;br class='autobr' /&gt;
pourtant pas les exigences graphiques impos&#233;es par&lt;br class='autobr' /&gt;
le RPM. Donc, il est possible de construire un paquet RPM &lt;br class='autobr' /&gt;
qui n'exige pas le support des acc&#233;l&#233;rations de la carte&lt;br class='autobr' /&gt;
graphique.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;De quoi avoir envie de mener ses propres&lt;br class='autobr' /&gt;
exp&#233;riences RPM non ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;2&#218;me partie : &lt;a href='https://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM' class=&#034;spip_in&#034;&gt;Les principes de la cr&#233;ation d'un RPM&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
