web-dev-qa-db-ja.com

ソースからliboverlay-scrollbarをコンパイルして使用するにはどうすればよいですか?

私の個人設定に一致するliboverlay-scrollbarのパッチバージョンをインストールして使用しようとしています。 lp:ayatana-scrollbar および./autogen.sh; make; Sudo make installedをダウンロードしました。

ここに問題があります。 ldd /usr/bin/*を見ると、実際にはどのアプリケーションにも似ていませんuseliboverlay-scrollbar*.so。そして、私が次のようなものを使用するときでも:

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

私が呼び出すスクロールバーを使用するアプリケーションは、私の/usr/local/libライブラリを気楽に無視し、システムにインストールされたayatanaスクロールバーを使用するようです。私のGTK +ライブラリは標準のUbuntuなので、グラフィカルツールキットにパッチを適用して再コンパイルする必要はないと想定しています。

誰かがソースからオーバーレイスクロールバーをインストールするための段階的なプロセスを投稿できますか?

5
Jjed

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
    
1
Vadim Rutkovsky

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パッケージをビルドします。

5
andrewsomething