web-dev-qa-db-fra.com

Comment compiler et utiliser liboverlay-scrollbar depuis la source?

J'essaie d'installer et d'utiliser une version corrigée de liboverlay-scrollbar qui correspond à mes préférences personnelles. J'ai téléchargé avec succès lp:ayatana-scrollbar et ./autogen.sh; make; Sudo make install ed it.

Voici le problème. Jetez un oeil à ldd /usr/bin/*, il ne ressemble à aucune application utilise liboverlay-scrollbar*.so. Et même lorsque j'utilise quelque chose comme:

export LD_LIBRARY_PATH="/usr/local/lib/:/usr/lib/"
export LIBOVERLAY_SCROLLBAR=1
gedit

L'application utilisant la barre de défilement que j'appelle semble ignorer allègrement mon /usr/local/lib bibliothèques et utilisez les barres de défilement ayatana installées par le système. Mes bibliothèques GTK + sont stockées sous Ubuntu, donc je suppose que je n'ai pas besoin de patcher et de recompiler la boîte à outils graphique.

Quelqu'un pourrait-il publier un processus étape par étape pour installer les barres de défilement de superposition à partir de la source?

5
Jjed

Vous pouvez consulter un tutoriel simple sur http://developer.ubuntu.com/packaging/html/fixing-a-bug.html

Voici un tutoriel simple:

  1. Obtenez la barre de défilement de superposition d'Ubuntu

    bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev
    cd overlay-scrollbar.dev
    
  2. Faites quelques modifications
  3. Compiler et installer

    ./autogen.sh
    make
    Sudo make install
    
  4. Modifier un lien symbolique

    Sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
    
  5. (facultatif) Documentez le correctif et créez un package

    dch -i
    bzr builddeb
    
1
Vadim Rutkovsky

Je ne suis pas tout à fait certain, car je ne parle pas très bien le C, mais il semble que le GTK corrigé qu'Ubuntu utilise pour charger les barres de défilement ait été codé en dur pour regarder dans /usr/lib/ seulement.

à partir du patch :

+  gchar *flag = (gchar*) g_getenv ("LIBOVERLAY_SCROLLBAR");    
+   
+  /* check if LIBOVERLAY_SCROLLBAR is set to 0 or an empty value   
+     and disable the feature in this case */   
+  if (flag != NULL && (*flag == '\0' || *flag == '0')) 
+    return;    
+   
+  /* default extension library to use for this release */  
+  gchar *path = "/usr/lib/liboverlay-scrollbar-0.2.so.0";  
+   
+  module = g_module_open (path, G_MODULE_BIND_LOCAL);  
+  if (module == NULL)  
+    return;

Si j'étais vous, j'applique mon patch au paquet source de liboverlay-scrollbar.

Récupérez la source avec bzr: bzr branch lp:ubuntu/overlay-scrollbar

Corrigez la source, éditez debian/changelog (Vous pouvez simplement ajouter un +myversion1 à la chaîne de version existante ou ajoutez une toute nouvelle entrée de journal des modifications. L'essentiel est de vous assurer que vous avez un numéro de version plus élevé le package dans l'archive). Exécutez ensuite bzr builddeb pour construire les paquets Debian.

5
andrewsomething