5

I'm trying to install and use a patched version of liboverlay-scrollbar that matches my personal preferences. I've successfully downloaded lp:ayatana-scrollbar and ./autogen.sh; make; sudo make installed it.

Here's the problem. Taking a look at ldd /usr/bin/*, it doesn't look like any applications actually use liboverlay-scrollbar*.so. And even when I use something like:

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

The scrollbar-using application I call seems to blithely ignore my /usr/local/lib libraries and use the system-installed ayatana scrollbars. My GTK+ libs are stock Ubuntu, so I'm assuming I don't need to patch and recompile the graphical toolkit.

Could anyone post a step-by-step process for installing overlay scrollbars from source?

Jjed
  • 14,064

2 Answers2

5

I'm not entirely certain, as I'm not very fluent in C, but it seems like the patched GTK that Ubuntu uses to load the scrollbars has been hardcoded to look in /usr/lib/ only.

From the 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;

If I were you, I apply my patch to the source package of liboverlay-scrollbar.

Grab the source with bzr: bzr branch lp:ubuntu/overlay-scrollbar

Patch the source, edit debian/changelog (You can just add a +myversion1 to the existing version string or add a whole new changelog entry. The key thing is to make sure you have a higher version number the package in the archive). Then run bzr builddeb to build the Debian packages.

1

You may check out an easy tutorial at http://developer.ubuntu.com/packaging/html/fixing-a-bug.html

Here is a simple tutorial:

  1. Get Ubuntu's overlay scrollbar

    bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev
    cd overlay-scrollbar.dev
    
  2. Make some modifications
  3. Compile and install

    ./autogen.sh
    make
    sudo make install
    
  4. Modify a symlink

    sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
    
  5. (optional) Document the fix and build a package

    dch -i
    bzr builddeb