<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://uname.pingveno.net/blog/index.php/feed/rss2/xslt" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title># uname -a - Mot-clé - compile</title>
    <link>https://uname.pingveno.net/blog/index.php/</link>
    <atom:link href="https://uname.pingveno.net/blog/index.php/feed/tag/compile/rss2" rel="self" type="application/rss+xml" />
    <description>Le blog de uname.pingveno.net</description>
    <language>fr</language>
    <pubDate>Wed, 01 Apr 2026 16:19:15 +0200</pubDate>
    <copyright>Mathieu Pellegrin</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <item>
        <title>Maman, j'ai patché Debian</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2020/03/19/Maman-j-ai-patch%C3%A9-Debian</link>
        <guid isPermaLink="false">urn:md5:71a75a5565e36a22a1a7aac2045ae2d7</guid>
        <pubDate>Thu, 19 Mar 2020 15:33:00 +0100</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Hacks</category>
                          <category>compile</category>
                  <category>debian</category>
                  <category>debuild</category>
                  <category>package</category>
                  <category>patch</category>
                <description>          &lt;p&gt;Un billet en forme de note à moi-même sur ce qu'il faut faire pour correctement :&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Récupérer un package depuis upstream&lt;/li&gt;
	&lt;li&gt;Appliquer un ou plusieurs patches&lt;/li&gt;
	&lt;li&gt;Le signer et le re-déployer en production&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Préparer l'environnement&lt;/h3&gt;

&lt;p&gt;Pour compiler et signer un paquet simplement il vous faut :&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Un utilisateur (non root)&lt;/li&gt;
	&lt;li&gt;Une clé GPG&lt;/li&gt;
	&lt;li&gt;Les build-essentials et les devscripts (parce qu'on est feignasse)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Créez un utilisateur non-root et loguez-vous avec. N'utilisez pas &quot;su&quot; à partir de root, parce que sinon GPG ne pourra pas vous demander la phrase de passe (des histoires de droits sur les TTY).&lt;/p&gt;

&lt;p&gt;Créez une clé GPG, et paramétrez-la :&lt;/p&gt;

&lt;pre&gt;
gpg --full-generate-key&lt;/pre&gt;

&lt;p&gt;Récupérez l'identifiant de clé à la fin de la procédure, ou avec &lt;strong&gt;gpg&amp;nbsp;--list-keys&lt;/strong&gt; si vous l'avez loupé.&lt;/p&gt;

&lt;p&gt;Modifiez ou créez le fichier &lt;strong&gt;~/.devscripts&lt;/strong&gt; et ajoutez :&lt;/p&gt;

&lt;pre&gt;
DEBUILD_SET_ENVVAR_DEBSIGN_KEYID=xxxxxxxx
&lt;/pre&gt;

&lt;p&gt;Avec le xxxxxx qui correspond à votre identifiant de clé.&lt;/p&gt;

&lt;h3&gt;Récupérer le paquet et les dépendances de compilation&lt;/h3&gt;

&lt;p&gt;Le plus simple c'est quand le paquet existe déjà et qu'il faut simplement patcher. S'il n'existe aucun paquet, il faut créer un nouveau paquet, éventuellement debianizer la configuration, et c'est une autre paire de manches (et c'est pas le sujet ici).&lt;/p&gt;

&lt;p&gt;Pour récupérer le paquet upstream :&lt;/p&gt;

&lt;pre&gt;
apt-get source nomdupaquet&lt;/pre&gt;

&lt;p&gt;Si le paquet est introuvable, ajoutez les dépôts src à votre sources.list :&lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;deb-src&lt;/strong&gt; http://deb.debian.org/debian/ buster main contrib
&lt;strong&gt;deb-src&lt;/strong&gt; http://security.debian.org/debian-security buster/updates main contrib
&lt;strong&gt;deb-src&lt;/strong&gt; http://deb.debian.org/debian/ buster-updates main contrib&lt;/pre&gt;

&lt;p&gt;Il faut ensuite récupérer les paquets nécessaires à la compilation. Coup de bol, si vous avez pu avoir le paquet source à l'étape précédente, c'est facile :&lt;/p&gt;

&lt;pre&gt;
apt-get build-dep nomdupaquet&lt;/pre&gt;

&lt;h3&gt;Patcher le paquet&lt;/h3&gt;

&lt;p&gt;Le format dpatch est obsolète, en principe votre package utilise quilt comme tout paquet récent. Il suffit de télécharger le patch depuis git et le placer dans le dossier &lt;strong&gt;debian/patches&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ensuite, ajoutez le nom du fichier que vous avez ajouté au fichier &lt;strong&gt;debian/patches/series&lt;/strong&gt; . Attention, l'ordre dans series est important.&lt;/p&gt;

&lt;h3&gt;Déclarer les changements&lt;/h3&gt;

&lt;p&gt;Ce n'est pas nécessaire la première fois, mais si vous re-compilez un paquet, il faut ajouter un commentaire dans le Changelog. Le plus simple : utilisez la commande &lt;strong&gt;dch -i&amp;nbsp; &lt;/strong&gt;et modifiez la ligne de changelog, en changeant bien la version du paquet pour qu'elle soit consécutive à la précédente.&lt;/p&gt;

&lt;h3&gt;Compiler le paquet&lt;/h3&gt;

&lt;p&gt;Rendez-vous dans le dossier du paquet, et lancez la commande &lt;strong&gt;debuild&lt;/strong&gt; . C'est tout. Rentrez votre phrase de passe pour la clé à la fin de la procédure.&lt;/p&gt;

&lt;h3&gt;Déployer en production&lt;/h3&gt;

&lt;p&gt;Pour déployer un paquet, deux solutions :&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Envoyer le paquet puis l'installer avec &lt;strong&gt;dpkg -i lefichier.deb&lt;/strong&gt; ou un outil d'orchestration&lt;/li&gt;
	&lt;li&gt;Installer un DPA (Debian Private Repository) et l'ajouter au sources.list&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L'installation du serveur DPA fera l'objet d'un autre billet (un jour).&lt;/p&gt;

&lt;h3&gt;Sources&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://help.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key&quot;&gt;Create GPG KEY&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://wiki.debian.org/debian/patches&quot;&gt;Patch a Debian package&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://www.debian.org/doc/manuals/maint-guide/build.en.html&quot;&gt;Build a Debian package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
        
              </item>
          <item>
        <title>How to compile Kurso de Esperanto from source with Debian and Ubuntu</title>
        <link>https://uname.pingveno.net/blog/index.php/post/2013/06/23/How-to-compile-Kurso-de-Esperanto-from-source-with-Debian-and-Ubuntu</link>
        <guid isPermaLink="false">urn:md5:b23ba2b184f3b590b65f95362509ca9c</guid>
        <pubDate>Sun, 23 Jun 2013 14:58:00 +0200</pubDate>
        <dc:creator>Mathieu</dc:creator>
                  <category>Hacks</category>
                          <category>compile</category>
                  <category>kurso</category>
                  <category>Kurso de Esperanto</category>
                  <category>kurso4</category>
                  <category>Qt</category>
                  <category>Qt4</category>
                <description>&lt;p style=&quot;font-size:1.4em; border: solid thin #00c0ff; background-color: #e0e0ff; padding: 0.5em; margin-bottom: 2em; text-align: center;&quot;&gt;Pre-compiled version for Ubuntu 16.04 : &lt;a href=&quot;https://launchpad.net/~mathieu-pellegrin/+archive/ubuntu/kurso-de-esperanto&quot;&gt;Ubuntu PPA&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;Because there is no documentation on how to compile &lt;a href=&quot;http://www.kurso.com.br/elshuto.php?en&quot; hreflang=&quot;en&quot;&gt;Kurso de Esperanto&lt;/a&gt; from source, here is how to do it.&lt;/p&gt;

&lt;p&gt;This tutorial works with Ubuntu and Debian, if you run windows you probably wouldn't do it that way &lt;img src=&quot;/blog/themes/mathedit_material3/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot;&gt; .&lt;/p&gt;

&lt;p&gt;Read also : [&lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/06/23/Compiler-Kurso-de-Esperanto-version-4-sous-Debian-et-Ubuntu-depuis-les-sources&quot;&gt;In French&lt;/a&gt;] - [&lt;a href=&quot;https://uname.pingveno.net/blog/index.php/post/2013/06/23/Kompili-Kurso-de-Esperanto-4-kun-Debian-kaj-Ubuntu-surbaze-de-fontoj&quot;&gt;In Esperanto&lt;/a&gt;]&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;Download source from : &lt;a href=&quot;http://www.kurso.com.br/elshuto.php?en&quot; hreflang=&quot;en&quot;&gt;http://www.kurso.com.br/elshuto.php?en&lt;/a&gt;&lt;br /&gt;
	(Command line : &lt;code&gt;wget &lt;a href=&quot;http://kurso.com.br/kurso4_source.tar.gz&quot;&gt;http://kurso.com.br/kurso4_source.tar.gz&lt;/a&gt;&lt;/code&gt; )&lt;/li&gt;
	&lt;li&gt;Extract tarball :&amp;nbsp;&lt;code&gt;tar -xzf kurso4_source.tar.gz&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Install dependencies&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;Install Qt header files, compiler, and compilation tools : &lt;code&gt;sudo apt-get install build-essential qt4-qmake libqt4-dev g++ make libphonon-dev libqt4-xml-dev libqt4-opengl-dev&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Particular case : Ubuntu 12.04&lt;/h3&gt;

&lt;p&gt;To compile with Ubuntu 12.04, you need to install Qt module &lt;code&gt;mobility&lt;/code&gt; in order to us the Qt module &lt;code&gt;multimedia&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Add &lt;code&gt;qtmobility-dev&lt;/code&gt; to dependencies : &lt;code&gt;sudo apt-get install qtmobility-dev&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Make the following symbolic link (as root) : &lt;code&gt;sudo ln -s /usr/include/QtMultimediaKit/ /usr/include/QtMultimedia&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Edit the file kurso4.pro from source folder :&lt;br /&gt;
	Find :
	&lt;blockquote&gt;
	&lt;p&gt;&lt;code&gt;QT += core gui phonon&amp;nbsp; multimedia&lt;/code&gt;&lt;/p&gt;
	&lt;/blockquote&gt;
	Replace with :

	&lt;blockquote&gt;
	&lt;p&gt;&lt;code&gt;QT += core gui phonon&lt;br /&gt;
	CONFIG += mobility&lt;br /&gt;
	MOBILITY += multimedia&lt;/code&gt;&lt;/p&gt;
	&lt;/blockquote&gt;
	&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Compile program&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;Enter in source folder : &lt;code&gt;cd kurso4&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Run command &lt;code&gt;qt4-qmake&lt;/code&gt; to generate the Makefile.&lt;/li&gt;
	&lt;li&gt;Run command &lt;code&gt;make&lt;/code&gt; to compile the program.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Run program&lt;/h3&gt;

&lt;p&gt;To run the program, simply run the file &lt;strong&gt;kurso4&lt;/strong&gt; wich is now in your source folder, or install it by running the command &lt;code&gt;make install&lt;/code&gt; .&lt;/p&gt;

&lt;p&gt;Note that you will need the Qt executable libraries in order to run the program (the libraries are dynamically linked) (&lt;code&gt;sudo apt-get install libqt4 phonon qtmobility libqtcore4 libqt4-dbus libqt4-xml libqt4-opengl&lt;/code&gt;)&lt;/p&gt;

&lt;h3&gt;The program is crashing at startup (segmentation fault)&lt;/h3&gt;

&lt;p&gt;The source archive &lt;strong&gt;does not contains audio and video files&lt;/strong&gt;, (&lt;code&gt;sonoj&lt;/code&gt; and &lt;code&gt;video&lt;/code&gt; folders). The program is crashing while trying to say &quot;hello&quot; at startup. You have to get these directories in an other archive (the executable versions of Kurso de Esperanto from the &lt;a href=&quot;http://www.kurso.com.br/elshuto.php?en&quot; hreflang=&quot;en&quot;&gt;download page&lt;/a&gt;), and copy these directories in the source folder before starting kurso4.&lt;/p&gt;

&lt;p&gt;That's all ! If you encounter any problem while trying to compile Kurso, don't hesitate to comment that post.&lt;/p&gt;</description>
        
              </item>
      </channel>
</rss>
