如何从源代码编译和使用 liboverlay-scrollbar?

如何从源代码编译和使用 liboverlay-scrollbar?

我正在尝试安装并使用liboverlay-scrollbar符合我个人偏好的修补版本。我已成功下载lp:ayatana-scrollbar./autogen.sh; make; sudo make install编辑它。

问题就在这里。看一下ldd /usr/bin/*,看起来似乎没有任何应用程序使用 liboverlay-scrollbar*.so.甚至当我使用类似的东西时:

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

我调用的使用滚动条的应用程序似乎会无视我的/usr/local/lib库并使用系统安装的 ayatana 滚动条。我的 GTK+ 库是 Ubuntu 的原版,因此我认为我不需要修补和重新编译图形工具包。

有人可以发布从源代码安装覆盖滚动条的逐步过程吗?

答案1

我并不完全确定,因为我对 C 语言不是很精通,但似乎 Ubuntu 用于加载滚动条的修补 GTK 已被硬编码为/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 软件包。

答案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
    
  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
    

相关内容