<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Koji%2FUtilisation</id>
	<title>Koji/Utilisation - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.home.tartarefr.eu/index.php?action=history&amp;feed=atom&amp;title=Koji%2FUtilisation"/>
	<link rel="alternate" type="text/html" href="https://wiki.home.tartarefr.eu/index.php?title=Koji/Utilisation&amp;action=history"/>
	<updated>2026-07-07T13:09:25Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.home.tartarefr.eu/index.php?title=Koji/Utilisation&amp;diff=149&amp;oldid=prev</id>
		<title>Didier : Page créée avec « droite  == Généralités ==  === Ajout d&#039;un paquet au repository === Un admin du koji ajoute le paquet et le place sous la responsabil... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.home.tartarefr.eu/index.php?title=Koji/Utilisation&amp;diff=149&amp;oldid=prev"/>
		<updated>2017-04-20T10:20:01Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/index.php/Fichier:LogoKoji.svg&quot; title=&quot;Fichier:LogoKoji.svg&quot;&gt;sans_cadre|droite&lt;/a&gt;  == Généralités ==  === Ajout d&amp;#039;un paquet au repository === Un admin du koji ajoute le paquet et le place sous la responsabil... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Fichier:LogoKoji.svg|sans_cadre|droite]]&lt;br /&gt;
&lt;br /&gt;
== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Ajout d&amp;#039;un paquet au repository ===&lt;br /&gt;
Un admin du koji ajoute le paquet et le place sous la responsabilité d&amp;#039;un utilisateur Koji&lt;br /&gt;
 koji add-pkg --owner didier centos-5 didier-release&lt;br /&gt;
{{Admon/tip|Construction d&amp;#039;un paquet scratch|&lt;br /&gt;
Koji permet de construire des paquets sans qu&amp;#039;il soit nécessaire de les ajouter au repository: c&amp;#039;est le &amp;#039;&amp;#039;&amp;#039;scratch build&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
La commande de construction devient donc&lt;br /&gt;
&amp;lt;pre&amp;gt;koji build --scratch centos-5 didier-release-1.0.0-1.fc17.src.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Toutefois cette méthode n&amp;#039;est pas recommandé si on cherche à construire un paquet pour notre dépôt (hors test).}}&lt;br /&gt;
&lt;br /&gt;
=== Construction d&amp;#039;un paquet ===&lt;br /&gt;
&lt;br /&gt;
==== Depuis un paquet source ====&lt;br /&gt;
 koji build centos-5 didier-release-1.0.0-1.fc17.src.rpm&lt;br /&gt;
&lt;br /&gt;
==== Depuis un système de contrôle de version ====&lt;br /&gt;
&lt;br /&gt;
Il faut tout d&amp;#039;abord autoriser le serveur et le dépôt sur &amp;#039;&amp;#039;&amp;#039;tous les constructeurs&amp;#039;&amp;#039;&amp;#039; koji ( kojid ).&lt;br /&gt;
&lt;br /&gt;
Ici on déclare deux dépôts de sources:&lt;br /&gt;
* dépôt &amp;#039;&amp;#039;&amp;#039;GIT&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;git://didier.tartarefr.eu/rpm&amp;#039;&amp;#039;&lt;br /&gt;
* dépôt &amp;#039;&amp;#039;&amp;#039;SVN&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;http://didier.tartarefr.eu/svn/rpm&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;Celui-ci étant composé d&amp;#039;un arbre SVN standard, on déclare le répertoire &amp;#039;&amp;#039;trunk&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;#039;&amp;#039;&lt;br /&gt;
Extrait du fichier &amp;lt;path&amp;gt;/etc/kojid/kojid.conf&amp;lt;/path&amp;gt;&lt;br /&gt;
 ; A space-separated list of hostname:repository[:use_common] tuples that kojid is authorized to checkout from (no quotes).&lt;br /&gt;
 ; Wildcards (as supported by fnmatch) are allowed.&lt;br /&gt;
 ; If use_common is specified and is one of &amp;quot;false&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;off&amp;quot;, or &amp;quot;0&amp;quot; (without quotes), then kojid will not attempt to checkout&lt;br /&gt;
 ; a common/ dir when checking out sources from the source control system.  Otherwise, it will attempt to checkout a common/&lt;br /&gt;
 ; dir, and will raise an exception if it cannot.&lt;br /&gt;
 allowed_scms=didier.tartarefr.eu:/rpm:no didier.tartarefr.eu:/svn/rpm/trunk:yes&lt;br /&gt;
{{Admon/warning|Paramètre &amp;#039;&amp;#039;use_common&amp;#039;&amp;#039;|Il semble y avoir un bug avec le paramètre &amp;#039;&amp;#039;use_common&amp;#039;&amp;#039; et l&amp;#039;utilisation d&amp;#039;un dépôt git.&lt;br /&gt;
&lt;br /&gt;
En effet quelque soit la valeur de ce paramètre, un dépôt &amp;#039;&amp;#039;common&amp;#039;&amp;#039; sera téléchargé.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work-Around&amp;#039;&amp;#039;&amp;#039;: Créer un dépôt &amp;#039;&amp;#039;common&amp;#039;&amp;#039; vide sur le serveur git.}}&lt;br /&gt;
&lt;br /&gt;
Le système doit fournir un Makefile qui contient une cible sources, dont la tâche est de fournir les sources via une commande de téléchargement. Si celles-ci sont incluses dans le SCM, la cible doit être vide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;make&amp;quot;&amp;gt;&lt;br /&gt;
# Common Makefile&lt;br /&gt;
sources:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&amp;#039;à lancer la construction depuis &amp;lt;app&amp;gt;koji&amp;lt;/app&amp;gt;&lt;br /&gt;
&lt;br /&gt;
avec SVN&lt;br /&gt;
 koji build centos-5 &amp;lt;nowiki&amp;gt;svn+http://didier.tartarefr.eu/svn/rpm/trunk?didier-release#head&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
avec git&lt;br /&gt;
 koji build centos-5 git://didier.tartarefr.eu/rpm?didier-release#5153396fc3bf204b74e745759eee33ed5dad0ffe&lt;br /&gt;
{{Admon/important|Différence entre les SCM|* Avec svn, le &amp;#039;&amp;#039;&amp;#039;répertoire&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;common&amp;#039;&amp;#039; sera téléchargé en plus de celui du paquet en cours&lt;br /&gt;
* Avec git c&amp;#039;est un &amp;#039;&amp;#039;&amp;#039;dépôt&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;common&amp;#039;&amp;#039; qui sera ajouté et l&amp;#039;intégralité du dépôt rpm sera téléchargé.}}&lt;br /&gt;
&lt;br /&gt;
== Interface Web ==&lt;br /&gt;
[[Fichier:KojiwebScreenshot.png||800px]]&lt;br /&gt;
&lt;br /&gt;
== Dépôt B2PWeb ==&lt;br /&gt;
&lt;br /&gt;
=== Importer des paquets sources et binaires ===&lt;br /&gt;
{{Admon/warning|Import|Il est impératif d&amp;#039;importer les paquets RPM pour chaque architecture gérée (intel 32/64 bits, etc ...). De plus le paquet SRPM (RPM source) devra être importer en premier.&lt;br /&gt;
Il y a donc au minimum import de deux paquets RPM.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;package&amp;gt;Koji&amp;lt;/package&amp;gt; &amp;#039;&amp;#039;&amp;#039;n&amp;#039;accepte pas facilement l&amp;#039;import de paquet RPM binaire sans paquet RPM source correspondant.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Import standard ====&lt;br /&gt;
&lt;br /&gt;
Comme nous n&amp;#039;avons que deux architectures définies :&lt;br /&gt;
* i386 ou i686 ( suivant la version de la distribution )&lt;br /&gt;
* x86_64&lt;br /&gt;
&lt;br /&gt;
Afin de maintenir une certaine homogénéité dans le dépôt, il faudra importer les paquets RPM binaires pour les deux architectures.&lt;br /&gt;
&lt;br /&gt;
Le SRPM est obligatoirement importé en premier.&lt;br /&gt;
&lt;br /&gt;
# Import du paquet RPM source&amp;lt;pre&amp;gt;koji add-pkg centos-5 foo.src.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Import des paquets RPM binaires&lt;br /&gt;
#* Paquet 32 bits&amp;lt;pre&amp;gt;koji add-pkg centos-5 foo.i386.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* Paquet 64 bits&amp;lt;pre&amp;gt;koji add-pkg centos-5 foo.x86_64.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Import sans SRPM ====&lt;br /&gt;
&lt;br /&gt;
Exemple en intégrant les paquets pour une base Oracle.&lt;br /&gt;
# Téléchargement des RPM depuis le site Oracle dans le dossier &amp;lt;path&amp;gt;/mnt/koji/externals&amp;lt;/path&amp;gt;&lt;br /&gt;
#* oracle-instantclient12.1-basic-12.1.0.1.0-1.i386.rpm&lt;br /&gt;
#* oracle-instantclient12.1-devel-12.1.0.1.0-1.i386.rpm&lt;br /&gt;
#* oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.i386.rpm&lt;br /&gt;
#* oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm&lt;br /&gt;
#* oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm&lt;br /&gt;
#* oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm&lt;br /&gt;
# Ajout des paquets au {{package|Koji}}&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji add-pkg centos-6 --owner didier oracle-instantclient12.1-basic&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji add-pkg centos-6 --owner didier oracle-instantclient12.1-devel&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji add-pkg centos-6 --owner didier oracle-instantclient12.1-sqlplus&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Import des paquets dans le {{package|Koji}}&amp;lt;pre&amp;gt;koji import --create-build /mnt/koji/externals/oracle*.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Comme les paquets sont juste importés, il est nécessaire de les taggués. On commmence par visualiser les paquets non taggués&amp;lt;pre&amp;gt;koji list-untagged&amp;lt;/pre&amp;gt;Comme on s&amp;#039;y attend, trois paquets ne sont pas taggués&lt;br /&gt;
#* oracle-instantclient12.1-basic-12.1.0.1.0-1&lt;br /&gt;
#* oracle-instantclient12.1-devel-12.1.0.1.0-1&lt;br /&gt;
#* oracle-instantclient12.1-sqlplus-12.1.0.1.0-1&lt;br /&gt;
# Tag des paquets précédemment importés en centos-6-build&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji tag-pkg centos-6 oracle-instantclient12.1-basic-12.1.0.1.0-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji tag-pkg centos-6 oracle-instantclient12.1-devel-12.1.0.1.0-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;koji tag-pkg centos-6 oracle-instantclient12.1-sqlplus-12.1.0.1.0-1&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Régénération du dépôt&amp;lt;pre&amp;gt;koji regen-repo centos-6-build&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ajout de paquets sources ===&lt;br /&gt;
Il faut tout d&amp;#039;abord avoir une copie de travail du dépôt des sources, accessible en lecture/écriture.&lt;br /&gt;
&lt;br /&gt;
Pour cela il faut disposer d&amp;#039;un compte associé à une paire de clés ( publique et privée ) &amp;lt;app&amp;gt;ssh&amp;lt;/app&amp;gt;.&lt;br /&gt;
# Génération de la paire de clé&lt;br /&gt;
#* Sous GNU/Linux, il suffit de lancer la commande&amp;lt;pre&amp;gt; ssh-keygen -t rsa&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* Sous Windows il faut utiliser le programme &amp;lt;app&amp;gt;puttygen.exe&amp;lt;/app&amp;gt; pour générer la paire de clé. La clé publique porte l&amp;#039;extension &amp;#039;&amp;#039;&amp;#039;pub&amp;#039;&amp;#039;&amp;#039; et la clé privé &amp;#039;&amp;#039;&amp;#039;ppk&amp;#039;&amp;#039;&amp;#039;.&amp;lt;br&amp;gt;Il faut ensuite utiliser un agent ( ex: &amp;lt;app&amp;gt;pageant.exe&amp;lt;/app&amp;gt; )&lt;br /&gt;
#Puis il faut insérer le contenu de la clé publique ( à la suite des autres ) dans le fichier &amp;lt;path&amp;gt;/var/lib/git/.ssh/authorized_keys&amp;lt;/path&amp;gt; sur le serveur.&amp;lt;br&amp;gt;Afin de tester avant le checkout, on doit pouvoir se connecter au serveur sans mot de passe&amp;lt;pre&amp;gt; ssh git@didier.tartarefr.eu&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Si le login est possible, on peut alors obtenir une copie du dépôt&amp;lt;pre&amp;gt;git clone git@didier.tartarefr.eu/rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ajout d&amp;#039;un paquet ===&lt;br /&gt;
{{Admon/todo}}&lt;br /&gt;
=== Mise à jour d&amp;#039;un paquet ===&lt;br /&gt;
{{Admon/todo}}&lt;br /&gt;
&lt;br /&gt;
== Mise à jour du koji ==&lt;br /&gt;
&lt;br /&gt;
La mise à jour du koji est sensible. En effet, les versions doivent correspondre entre le hub, le web, et même les builders.&lt;br /&gt;
&lt;br /&gt;
Si les composants sont sur des machines virtuelles, il est préférable de sauvegarder la vm (a minima de faire un snapshot, ou bien un export) avant de lancer la mise à jour.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
&lt;br /&gt;
=== Comment supprimer un paquet sans aucun build associé ===&lt;br /&gt;
Pour un problème de nom incorrect de paquet ou pour d&amp;#039;autre raisons, il est nécessaire de modifier directement la base de données, car aucune commande existe.&lt;br /&gt;
&lt;br /&gt;
Si aucun build n&amp;#039;est associé à ce paquet, il n&amp;#039;est référencé que dans deux tables:&lt;br /&gt;
* package&lt;br /&gt;
* tag_packages&lt;br /&gt;
&lt;br /&gt;
On se place sur le serveur &amp;lt;package&amp;gt;Koji&amp;lt;/package&amp;gt; et on se loggue avec l&amp;#039;utilisateur koji&lt;br /&gt;
&lt;br /&gt;
 # su - koji&lt;br /&gt;
 $ psql -U koji koji&lt;br /&gt;
&lt;br /&gt;
Remplacer commit par rollback si quelque chose ne se passe pas bien, afin d&amp;#039;annuler la transaction.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
begin;&lt;br /&gt;
delete from tag_packages where package_id = (select id from package where name = &amp;#039;SOME-TYPO&amp;#039;);&lt;br /&gt;
delete from package where name = &amp;#039;SOME-TYPO&amp;#039;;&lt;br /&gt;
commit;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildrootError: could not init mock buildroot, mock exited with status 30 ===&lt;br /&gt;
&lt;br /&gt;
Et dans le fichier &amp;lt;path&amp;gt;root.log&amp;lt;/path&amp;gt; associé au build, on retrouve l&amp;#039;erreur: &amp;#039;&amp;#039;Package does not match intended download&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Il faut lancer manuellement la régénération du dépôt&lt;br /&gt;
 koji regen-repo centos-6-build&lt;br /&gt;
&lt;br /&gt;
=== Construction du SRPM en erreur ===&lt;br /&gt;
&lt;br /&gt;
* Il faut regarder que le répertoire ne contient pas de fichier nommé &amp;lt;path&amp;gt;sources&amp;lt;/path&amp;gt;, car koji télécharge les sources en faisant &amp;lt;pre&amp;gt;make sources&amp;lt;/pre&amp;gt;et la cible du Makefile est donc à jour.&lt;br /&gt;
* Le paquet n&amp;#039;est pas inclus au dépôt. Il faut l&amp;#039;inclure comme ceci&amp;lt;pre&amp;gt;koji add-pkg centos-6 --owner didier &amp;lt;MON PAQUET&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utilisation du repository ==&lt;br /&gt;
&lt;br /&gt;
Il suffit de renseigné &amp;lt;package&amp;gt;yum&amp;lt;/package&amp;gt; pour qu&amp;#039;il pointe sur le repository&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://koji.tartarefr.eu/kojifiles/repos/centos-6-build/latest/$basearch&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skins ==&lt;br /&gt;
Modification à partir du thème osg&amp;lt;ref&amp;gt;https://github.com/djw8605/osg-koji-theme&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Références ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Didier</name></author>
	</entry>
</feed>