Como eu compilo e uso o liboverlay-scrollbar do código-fonte?

5

Estou tentando instalar e usar uma versão corrigida de liboverlay-scrollbar que corresponda às minhas preferências pessoais. Eu fiz o download com êxito lp:ayatana-scrollbar e ./autogen.sh; make; sudo make install ed .

Aqui está o problema. Observando o ldd /usr/bin/* , ele não se parece com nenhum aplicativo realmente use liboverlay-scrollbar*.so . E mesmo quando eu uso algo como:

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

O aplicativo que utilizo da barra de rolagem que eu chamo parece ignorar abertamente minhas bibliotecas /usr/local/lib e usar as barras de rolagem ayatana instaladas pelo sistema. Meu GTK + libs é o Ubuntu, então estou assumindo que não preciso corrigir e recompilar o kit de ferramentas gráficas.

Alguém poderia postar um processo passo a passo para instalar barras de rolagem de sobreposição a partir do código-fonte?

    
por Jjed 18.01.2012 / 22:16

2 respostas

1

Você pode conferir um tutorial fácil no link

Aqui está um tutorial simples:

  1. Obtenha a barra de rolagem de sobreposição do Ubuntu

    bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev
    cd overlay-scrollbar.dev
    
  2. Faça algumas modificações
  3. Compile e instale

    ./autogen.sh
    make
    sudo make install
    
  4. Modifique um link simbólico

    sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
    
  5. (opcional) Documente a correção e crie um pacote

    dch -i
    bzr builddeb
    
por Vadim Rutkovsky 26.01.2012 / 15:09
5

Não tenho muita certeza, pois não sou muito fluente em C, mas parece que o GTK corrigido que o Ubuntu usa para carregar as barras de rolagem foi codificado para procurar apenas em /usr/lib/ .

Do 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 == '
+  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 == '%pre%' || *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;
' || *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;

Se eu fosse você, eu aplicaria o meu patch ao pacote fonte do liboverlay-scrollbar.

Agarre a fonte com bzr: bzr branch lp:ubuntu/overlay-scrollbar

Corrigir a fonte, editar debian/changelog (Você pode simplesmente adicionar um +myversion1 à string de versão existente ou adicionar uma nova entrada de changelog. O principal é ter certeza de que você tem um número de versão mais alto do pacote no arquivo). Então execute bzr builddeb para construir os pacotes Debian.

    
por andrewsomething 21.01.2012 / 00:24