Как мне скомпилировать и использовать liboverlay-scrollbar из исходного кода?

Я пытаюсь установить и использовать исправленную версию liboverlay-scrollbar, которая соответствует моим личным предпочтениям. Я успешно загрузил lp:ayatana-scrollbar и ./autogen.sh; make; sudo make install ed it.

Вот проблема. Если взглянуть на ldd /usr/bin/*, то не похоже, что какие-либо приложения на самом деле используют liboverlay-scrollbar*.so. И даже когда я использую что-то вроде:

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

Приложение, использующее полосы прокрутки, которое я вызываю, кажется, беспечно игнорирует мои библиотеки /usr/local/lib и использует установленные на прокрутке аятаны. Мои библиотеки GTK + являются стандартной Ubuntu, поэтому я полагаю, что мне не нужно исправлять и перекомпилировать графический инструментарий.

Может ли кто-нибудь опубликовать пошаговый процесс установки оверлейных полос прокрутки из источника?

5
задан 20 January 2012 в 03:33

2 ответа

Вы можете проверить простое руководство на http://developer.ubuntu.com/packaging/html/fixing-a-bug.html

Вот простое руководство:

  1. Получить оверлейную полосу прокрутки Ubuntu

    bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev
    cd overlay-scrollbar.dev
    
  2. Внести некоторые изменения
  3. Скомпилировать и установить

    ./autogen.sh
    make
    sudo make install
    
    [ 117]
  4. Измените символическую ссылку

    sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
    
  5. (необязательно) Документируйте исправление и соберите пакет

    dch -i
    bzr builddeb
    
0
ответ дан 20 January 2012 в 03:33

Я не совсем уверен, так как я не очень хорошо владею C, но похоже, что исправленный GTK, который Ubuntu использует для загрузки полос прокрутки, жестко задан для просмотра только в /usr/lib/.

Из патча :

+  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;

На вашем месте я применяю свой патч к исходному пакету liboverlay-scrollbar.

Захватите источник с помощью bzr: bzr branch lp:ubuntu/overlay-scrollbar

Исправьте источник, отредактируйте debian/changelog (Вы можете просто добавить +myversion1 в строку существующей версии или добавить новую запись в журнале изменений. Ключ нужно убедиться, что у вас есть более высокий номер версии пакета в архиве). Затем запустите bzr builddeb для сборки пакетов Debian.

0
ответ дан 20 January 2012 в 03:33

Другие вопросы по тегам:

Похожие вопросы: