Patcher le paquet Debian de dolibarr

Le Thu 25 January 2018 Par pitchum  | Catégorie : misc

Tags : howto / kb /

 

Il y a (actuellement) 2 problèmes avec le paquet Debian pour dolibarr :

  • les scripts de migration SQL sont buggés (pour PostgreSQL uniquement)
  • un bug javascript causé par la version de jquery trop récente dans Debian (cf. https://bugs.debian.org/883418 )

Nous allons donc patcher le paquet Debian avant de l'installer. Tout cette procédure peut-être exécutée sur une machine différente de la machine qui hébergera Dolibarr. C'est même préférable puisque nous allons notamment installer des paquets qui ne seront plus utiles par la suite.

Ajouter un dépôt src (ici sid) dans /etc/apt/sources.list :

deb-src http://ftp.fr.debian.org/debian/ sid main

On aura besoin de la commande dch disponible dans le paquet devscripts

sudo apt update
sudo apt install devscripts

Puis télécharger le paquet source :

mkdir ~/deb_doli
cd ~/deb_doli
apt source dolibarr
cd dolibarr-5.0.4+dfsg3/

Créer le fichier debian/patches/fix-jquery-in-EDM.patch :

Description: Monkey-patch to make ECM work with jQuery version shipped in Debian
 Cf. https://bugs.debian.org/883418
Author: pitchum <pitchum@gramaton.org>
Forwarded: not-needed
Last-Update: 2018-01-25
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1145,6 +1145,7 @@ function top_htmlhead($head, $title='',
             // jQuery Layout (still used by ECM module)
             if (defined('REQUIRE_JQUERY_LAYOUT'))
             {
+                print '<script type="text/javascript">(function ($){$.fn.selector = { split: function() { return ""; }};})(jQuery);</script>'."\n";
                 print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/plugins/layout/jquery.layout.min.js'.($ext?'?'.$ext:'').'"></script>'."\n";
             }
             // jQuery jnotify

Puis :

echo fix-jquery-in-EDM.patch >> debian/patches/series
dch -i
# ajouter la ligne suivante
#   * Workaround a jquery compatibility issue (cf. #883418)

On récupère une copie des scripts SQL upstream :

git clone https://github.com/Dolibarr/dolibarr.git ~/doligit
cd ~/doligit
git checkout -b 5.0.7 5.0.7
rsync -av ~/doligit/htdocs/install/ ~/deb_doli/dolibarr-5.0.4+dfsg3/htdocs/install/
cd ~/deb_doli/dolibarr-5.0.4+dfsg3/
dpkg-source --commit
Description: Updated SQL migration from upstream 5.0.7
 Current SQL script are broken for PostgreSQL. They are already
 fixed upstream so this patch only apply those upstream fixes.
Author:  <pitchum@gramaton.org>

---
Forwarded: not-needed
Last-Update: 2018-02-15
...
debuild -us -uc

Le nouveau paquet est ../dolibarr_5.0.4+dfsg3-1.1_all.deb.