<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?action=history&amp;feed=atom&amp;title=FR_patch</id>
		<title>FR patch - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?action=history&amp;feed=atom&amp;title=FR_patch"/>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;action=history"/>
		<updated>2026-05-02T01:37:04Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4836&amp;oldid=prev</id>
		<title>Zorroargh at 18:41, 4 June 2018</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4836&amp;oldid=prev"/>
				<updated>2018-06-04T18:41:31Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 18:41, 4 June 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{migrated to|:fr:Patch}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tabLang|EN|DE patch|EN patch|ES patch|FR_patch|RU patch}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{tabLang|EN|DE patch|EN patch|ES patch|FR_patch|RU patch}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zorroargh</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4424&amp;oldid=prev</id>
		<title>Deed at 20:47, 11 November 2016</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4424&amp;oldid=prev"/>
				<updated>2016-11-11T20:47:31Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;amp;diff=4424&amp;amp;oldid=4423&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Deed</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4423&amp;oldid=prev</id>
		<title>Deed at 20:40, 11 November 2016</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4423&amp;oldid=prev"/>
				<updated>2016-11-11T20:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:40, 11 November 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{tabLang|EN|DE patch|EN patch|ES patch|FR_patch|RU patch}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{toTrad|DE}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{toTrad|ES}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{toTrad|RU}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{TPInWikiRyzom}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:EN]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Tutorials]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Deed</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4422&amp;oldid=prev</id>
		<title>Deed: Created page with &quot;   =  Installation d'un serveur de patchs  =  Les patches permettent de mettre à jour les données de votre client de jeu, et se téléchargent en lançant celui-ci, de faço...&quot;</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_patch&amp;diff=4422&amp;oldid=prev"/>
				<updated>2016-11-11T20:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;   =  Installation d&amp;#039;un serveur de patchs  =  Les patches permettent de mettre à jour les données de votre client de jeu, et se téléchargent en lançant celui-ci, de faço...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=  Installation d'un serveur de patchs  =&lt;br /&gt;
&lt;br /&gt;
Les patches permettent de mettre à jour les données de votre client de jeu, et se téléchargent en lançant celui-ci, de façon à vous installer les fichiers les plus récents.&lt;br /&gt;
Une procédure est prévue pour créer les fichiers prenant en charge ces opérations, et un service dédié (via Apache) doit être mis en place pour que les clients puissent s'y connecter.&lt;br /&gt;
&lt;br /&gt;
==  Création des patchs  ==&lt;br /&gt;
===  Préalable  ===&lt;br /&gt;
Votre serveur doit avoir les paquets suivants installés :&lt;br /&gt;
# lzma&lt;br /&gt;
# xdelta&lt;br /&gt;
&lt;br /&gt;
L'installation se fait rapidement :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/$ sudo aptitude install lzma xdelta&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La compilation des outils NeL de Ryzom Core nous a doté d'un utilitaire en ligne de commande nommé ''patch_gen''. C'est avec lui que nous travaillerons.&lt;br /&gt;
&lt;br /&gt;
Il faut également avoir les fichiers .bnp, qui servent à organiser les datas du jeu, et qui sont manipulés par l'exécutable ''bnp_make'' des outils NeL de Ryzom Core. Une autre section vous explique en détail la gestion des fichiers .bnp : [[en_make_bnp|Manipuler les données du client avec les .bnp]].&lt;br /&gt;
&lt;br /&gt;
===  Mise en place de la hiérarchie des données  ===&lt;br /&gt;
&lt;br /&gt;
Il faut tout d'abord se placer dans un endroit dans lequel nous générerons les patchs. Une de ces zones sera ouverte par le serveur Apache pour servir par le web les clients.&lt;br /&gt;
&lt;br /&gt;
Nous allons nous placer dans le répertoire ''patch_service'' dans notre répertoire ''home'' :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/$ mkdir ~/patch_service&lt;br /&gt;
~/$ cd ~/patch_service&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis installer tout ce dont nous avons besoin pour le serveur de patchs :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ patch_gen createNewProduct patch_game/ryzom.xml&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela va mettre en place fichiers et dossiers essentiels :&lt;br /&gt;
* patch_service/&lt;br /&gt;
** bnp/&lt;br /&gt;
** patch/&lt;br /&gt;
** ref/&lt;br /&gt;
** ryzom.xml&lt;br /&gt;
&lt;br /&gt;
Nous allons ensuite copier nos fichiers bnp dans le répertoire qui leur est assigné (dont on imagine qu'ils sont stockés dans un répertoire ''~/bnp'' :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ cp ~/bnp/*.bnp patch_game/bnp/&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour notre exemple, il n'y aura qu'un fichier indiqué par la suite, appelé ''patch_lirria.bnp''&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite créer un fichier vide, qui servira à l'indexation des patchs. Il est formé du nom du shard (nous prendrons Lirria comme exemple ici, vu que c'est le nom du shard de développement de Khaganat), suivi de .version, et sera placé dans le répertoire ''patch_game'' :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ touch patch_game/Lirria.version&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
===  Configuration du serveur de patchs  ===&lt;br /&gt;
Il faut ensuite éditer le fichier ''patch_service/ryzom.xml'' :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ nano patch_game/ryzom.xml&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des explications détaillées sur la syntaxe de ce fichier sont données dans un autre article ([[fr:Syntaxexmlpatchserver|La syntaxe du fichier xml du serveur de patch]]), et nous nous contenterons de créer ici la mise en place du seul  ''patch_lirria.bnp'', prévu pour copier dans le sous-répertoire du client ''/user'' des données pour faire des tests.&lt;br /&gt;
&lt;br /&gt;
Notre fichier de configuration ressemblera donc à ça :&lt;br /&gt;
&amp;lt;code xml ryzom.xml&amp;gt;&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
	&amp;lt;_Categories&amp;gt;&lt;br /&gt;
		&amp;lt;_Category&amp;gt;&lt;br /&gt;
			&amp;lt;_Name type=&amp;quot;STRING&amp;quot; value=&amp;quot;khanat_lirria&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;_IsOptional type=&amp;quot;SINT32&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;_UnpackTo type=&amp;quot;STRING&amp;quot; value=&amp;quot;./user/&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;_IsIncremental type=&amp;quot;SINT32&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;_Files type=&amp;quot;STRING&amp;quot; value=&amp;quot;patch_lirria.bnp&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/_Category&amp;gt;&lt;br /&gt;
	&amp;lt;/_Categories&amp;gt;&lt;br /&gt;
	&amp;lt;_IndexFileName type=&amp;quot;STRING&amp;quot; value=&amp;quot;ryzom.hist&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;_PatchDirectory type=&amp;quot;STRING&amp;quot; value=&amp;quot;patch_game/patch/&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;_BnpDirectory type=&amp;quot;STRING&amp;quot; value=&amp;quot;patch_game/bnp/&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;_RefDirectory type=&amp;quot;STRING&amp;quot; value=&amp;quot;patch_game/ref/&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;_NextVersionFile type=&amp;quot;STRING&amp;quot; value=&amp;quot;patch_game/Lirria.version&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;_ClientIndexFileName type=&amp;quot;STRING&amp;quot; value=&amp;quot;ryzom&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les paramètres indiqués permettront d'incrémenter peu à peu le contenu de notre .bnp, en y ajoutant de nouveaux fichiers, et le fichier bnp, après avoir été téléchargé par le client, sera dépaqueté dans ''/user'' pour y être pris en compte en dernier (pour écraser d'anciennes versions de fichiers par exemple, bien pratique pour faire des tests).&lt;br /&gt;
&lt;br /&gt;
===  Activation du serveur de patch au niveau de la base de données  ===&lt;br /&gt;
&lt;br /&gt;
Le système se basant sur une base de données, il faut lui faire savoir que nous activons le serveur de patch. Pour cela, nous allons utiliser des commandes dans MySQL.&lt;br /&gt;
&lt;br /&gt;
Nous partons du principe que le numéro de votre domaine est 12, dans le cas contraire, changez la valeur.&lt;br /&gt;
D'abord activer le serveur de patch (en mettant la valeur de ''patch_version'' à 1 au lieu de 0, par défaut)&lt;br /&gt;
&amp;lt;code sql&amp;gt;&lt;br /&gt;
USE nel;&lt;br /&gt;
UPDATE domain SET patch_version=1 WHERE domain_id=12;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
Puis indiquer l'adresse du serveur dans le champs ''patch_urls'':&lt;br /&gt;
&amp;lt;code sql&amp;gt;&lt;br /&gt;
USE nel;&lt;br /&gt;
UPDATE domain SET patch_urls='http:''lirria.khaganat.net/patch' WHERE domain_id=12;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Création du premier patch  ===&lt;br /&gt;
&lt;br /&gt;
Il nous faut désormais créer le premier patch, qui fournira le bnp dans son état originel au client.Nous réutilisons la même commande, mais avec une instruction différente cette fois :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ patch_gen updateProduct patch_game/ryzom.xml&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;WRAP center round info 90%&amp;gt;&lt;br /&gt;
Il est possible que vous ayez un warning durant cette opération, mais cela semble sans gravité. &lt;br /&gt;
&lt;br /&gt;
WRN a8ded740 patch_gen_common.cpp 59 GeneratePatch &amp;lt;Unknown&amp;gt; : 'xdelta delta patch_game/empty patch_game/bnp/patch_lirria.bnp patch_game/patch/00001/patch_v1_00001.patch' failed with error code 256&lt;br /&gt;
&lt;br /&gt;
L'essentiel est d'arriver au bout : ''Generating client index: patch_game/patch/00001/ryzom.idx...''&lt;br /&gt;
&amp;lt;/WRAP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====  Création de la Release Note  ====&lt;br /&gt;
On peut créer un fichier à la racine de ''patch'' qui servira à diffuser des informations sur les données patchées. Ce peut-être un fichier php, qui peut recevoir de la part du client plusieurs informations :&lt;br /&gt;
* version : la version du patch ;&lt;br /&gt;
* lang : la langue du client ;&lt;br /&gt;
* ca : le Shard de connexion&lt;br /&gt;
* startPage : &amp;lt;wrap tip&amp;gt;à définir&amp;lt;/wrap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Imaginons que nous créons un fichier html tout simple.&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ nano patch_game/patch/index.php&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&amp;lt;code html index.php&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  ======De nouvelles données de test======&lt;br /&gt;
  &amp;lt;p&amp;gt;Nous installons de nouvelles données de test dans le répertoire /user de votre client de jeu. Merci de nous aider à tester le déploiement d'un serveur de MMORPG libre&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le contenu est désormais prêt à être diffusé, reste à le faire savoir aux clients.&lt;br /&gt;
&lt;br /&gt;
==  Configuration du serveur Apache  ==&lt;br /&gt;
&lt;br /&gt;
Nous partons de l'hypothèse que vous possédez déjà un serveur Apache fonctionnel, et qu'il s'agit juste de créer un nouveau VirtualHost. Si le répertoire ''home'' de l'utilisateur qui gère le serveur est nommé ''gameserver'', il devra avoir ces paramètres (sinon adaptez selon vos paramètres) :&lt;br /&gt;
&lt;br /&gt;
Notre souhait est d'avoir une adresse simple, sans port pour le serveur de patch, qui sera donc de la forme ''http:''lirria.khaganat.net/patch'' (notre serveur de jeu étant installé à ''http:''lirria.khaganat.net'').&lt;br /&gt;
&lt;br /&gt;
Il nous faut donc d'abord installer certains modules pour Apache (si ce n'est déjà fait par avance) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ sudo a2enmod proxy&lt;br /&gt;
~/patch_service$ sudo a2enmod proxy_http&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous ajoutons ensuite dans le VirtualHost qui écoute le port 80 la ligne :&lt;br /&gt;
&amp;lt;code conf&amp;gt;&lt;br /&gt;
ProxyPass       /patch/ http:''lirria.khaganat.net:43435/&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis nous définissons notre Virtual host dédié ainsi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code conf&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:43435&amp;gt;&lt;br /&gt;
ServerName lirria.khaganat.net&lt;br /&gt;
DocumentRoot /home/gameserver/patch_service/patch_game/patch/&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/home/gameserver/patch_service/patch_game/patch&amp;quot;&amp;gt;&lt;br /&gt;
     Options -Indexes &lt;br /&gt;
     AllowOverride All&lt;br /&gt;
     Require all granted&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'Option ''-Indexes'' bloque l'affichage des répertoires par défaut par souci de sécurité.&lt;br /&gt;
&lt;br /&gt;
Ouvrir le port 43435 dans Apache&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Listen 43435&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
Une fois tout cela terminé, on relance le service Apache :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ sudo service apache2 restart&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Annoncer la mise à disposition du patch  ==&lt;br /&gt;
&lt;br /&gt;
Il faut ensuite avertir les clients que ce patch numéro 1 est prêt à être distribué, on le fera à l'aide d'un nouveau fichier ''Lirria.version'' (il y en aura donc deux avec celui précédemment créé) situé dans le répertoire ''patch'' servi par Apache :&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
~/patch_service$ nano patch_game/patch/Lirria.version&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
Il suffit d'y indiquer juste (1 - espace 1 - retour chariot):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
, pour dire que le patch numéro 1 est prêt. À l'avenir, il suffira de mettre 2 pour servir le patch 2 etc.&lt;br /&gt;
&lt;br /&gt;
Le second chiffre est celui qui est passé à la page php pour ''version'', on le change en même temps donc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configuration du client  ==&lt;br /&gt;
&lt;br /&gt;
Pour que le client puisse accéder aux patchs, il existe deux cas.&lt;br /&gt;
&lt;br /&gt;
===  Client DEV  ===&lt;br /&gt;
&lt;br /&gt;
Il est mieux de lui indiquer les paramètres dans son client_default.cfg. On veillera donc à la présence des ces lignes :&lt;br /&gt;
&amp;lt;code xml|client_default.cfg&amp;gt;&lt;br /&gt;
PatchWanted          = 1;&lt;br /&gt;
PatchUrl = &amp;quot;http:''lirria.khaganat.net/patch&amp;quot;;&lt;br /&gt;
RingReleaseNotePath = &amp;quot;http:''lirria.khaganat.net/patch/index.php&amp;quot;;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&amp;lt;WRAP center round tip 90%&amp;gt;&lt;br /&gt;
Il s'agit bien désormais de ''PatchUrl'' et non plus ''PatchServer'', qui est obsolète.&lt;br /&gt;
&amp;lt;/WRAP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La dernière renvoie vers le fichier que nous avons créé pour les [[#creation_de_la_release_note|Release Notes.]]&lt;br /&gt;
&lt;br /&gt;
===  Client FV  ===&lt;br /&gt;
&lt;br /&gt;
Le client FV doit être compilé avec l'option ''WITH_RYZOM_PATCH'' pour avoir accès au serveur de patch. Sans aucune autre option indiquée, il se connectera automatiquement sur le serveur de patch indiqué par le serveur (noté ci-dessus dans la base MySQL).&lt;br /&gt;
&lt;br /&gt;
Il ira chercher les releases notes aux adresses hardcodées suivantes :&lt;br /&gt;
&amp;lt;code cpp&amp;gt;&lt;br /&gt;
RingReleaseNotePath = &amp;quot;http:''&amp;quot; + WebIgMainDomain + &amp;quot;/releasenotes_ring/index.php&amp;quot;;&lt;br /&gt;
ReleaseNotePath = &amp;quot;http:''&amp;quot; + WebIgMainDomain + &amp;quot;/releasenotes/index.php&amp;quot;;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faudra donc bien veiller à ce que l'adresse ''WebIgMainDomain'' soit correctement renseignée dans le client_defaut.cfg&lt;br /&gt;
&lt;br /&gt;
SI le client FV a reçu aussi l'option ''WITH_RYZOM_CUSTOM_PATCH_SERVER'', il se comportera comme le client DEV et devra se voir dôté des lignes nécessaires dans son client_default.cfg :&lt;br /&gt;
&amp;lt;code xml|client_default.cfg&amp;gt;&lt;br /&gt;
PatchWanted          = 1;&lt;br /&gt;
PatchUrl = &amp;quot;http:''lirria.khaganat.net/patch&amp;quot;;&lt;br /&gt;
RingReleaseNotePath = &amp;quot;http:''lirria.khaganat.net/patch/index.php&amp;quot;;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Enjoy !  ==&lt;br /&gt;
&lt;br /&gt;
Avec cette configuration, veillez bien à ce que votre répertoire ''unpack'' soit vide de tout fichier ''.version'' ou ''.idx'' pour ce premier patch. Par la suite, le système conservera trace des patchs reçus dans ce répertoire, veillez donc bien à conserver ces fichiers (sous peine de devoir repatcher votre client de 0). Avec notre exemple, les nouveaux éléments seront automatiquement décompressés dans votre ''user'' lors du redémarrage du client après le téléchargement.&lt;br /&gt;
&lt;br /&gt;
Il ne vous reste plus qu'à lancer votre client de jeu et le voir se patcher !&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;serveur tuto shard}}&lt;/div&gt;</summary>
		<author><name>Deed</name></author>	</entry>

	</feed>