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

Jje*_*jed 5 customization programming compiling overlay-scrollbars

我正在尝试安装和使用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
Run Code Online (Sandbox Code Playgroud)

我调用的使用滚动条的应用程序似乎无视我的/usr/local/lib库并使用系统安装的 ayatana 滚动条。我的 GTK+ 库是 Ubuntu 的股票,所以我假设我不需要修补和重新编译图形工具包。

任何人都可以发布从源代码安装覆盖滚动条的分步过程吗?

and*_*ing 5

我并不完全确定,因为我对 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;
Run Code Online (Sandbox Code Playgroud)

如果我是你,我会将我的补丁应用到 liboverlay-scrollbar 的源包中。

用 bzr 抓取源码: bzr branch lp:ubuntu/overlay-scrollbar

修补源代码,编辑debian/changelog(您可以+myversion1在现有版本字符串中添加一个或添加一个全新的更改日志条目。关键是确保存档中的包具有更高的版本号)。然后运行bzr builddeb以构建 Debian 软件包。


Vad*_*sky 1

您可以在http://developer.ubuntu.com/packaging/html/fixing-a-bug.html查看简单教程

这是一个简单的教程:

  1. 获取Ubuntu的覆盖滚动条

    bzr branch ubuntu:overlay-scrollbar overlay-scrollbar.dev
    cd overlay-scrollbar.dev
    
    Run Code Online (Sandbox Code Playgroud)
  2. 进行一些修改
  3. 编译安装

    ./autogen.sh
    make
    sudo make install
    
    Run Code Online (Sandbox Code Playgroud)
  4. 修改符号链接

    sudo ln -f -s /usr/lib/liboverlay-scrollbar-0.2.so.0 /usr/local/lib/liboverlay-scrollbar-0.2.so.0
    
    Run Code Online (Sandbox Code Playgroud)
  5. (可选)记录修复并构建包

    dch -i
    bzr builddeb
    
    Run Code Online (Sandbox Code Playgroud)