読者です 読者をやめる 読者になる 読者になる

以下省略!

タイダルウ(ry 毎日1記事執筆運動実施中。

なんか副作用が出たので解決のためいろいろビルドした話

f:id:abyssluke:20170325185517p:plain:w200:left先日行ったfcitx-qt5ビルドの関係でlibxkbcommonをビルドしてインストールしたのだが、これ以降、壁紙自動変更ソフトであるWallchの具合が悪くなった件。
詳しい内容としては、D-Busガーとかで起動しなくなったり、他のアプリなどで磁気カードリーダーから入力があるとWallchがsegfaultする。

前者については原因がよくわからなかったが、Wallchのソースをダウンロード、ビルドしバイナリをコピーすることでとりあえず解決。
後者はlibxkbcommonをx11サポート無しでビルドした関係でlibxkbcommon-x11がビルドされなかったため、すでにレポジトリからインストールされているlibxkbcommon-x11と独自ビルドでインストールしたlibxkbcommon相互のバージョン違いの関係でsegfaultしたと考えられる*1。なので必要なライブラリを導入しlibxkbcommonをx11サポートありでビルドしなおして解決。

とりあえずメモしておく。続きを読むから。

Wallch独自ビルド

以下の手順はすでに標準レポジトリからWallchを導入済みの場合の手順。

とりあえず必要な開発パッケージをbuild-depでぶっこんでおいて、ソースダウンロード。インストールスクリプトがあるがエラー出まくりのダメダメスクリプトなのでqmake→makeでとりあえずビルド。
その後バイナリを置き換える。

$ sudo apt-get build-dep wallch
$ wget --trust-server-names https://sourceforge.net/projects/wall-changer/files/wallch_4.15.tar.gz/download
$ tar xzvf wallch_4.15.tar.gz
$ cd wallch-4.15
$ qmake wallch.pro
$ make
$ sudo mv /usr/bin/wallch /usr/bin/wallch.orig
$ sudo cp wallch /usr/bin/

ちなみにwgetの--trust-server-namesはダウンロードされたファイル名をちゃんとwallch_4.15.tar.gzにするためのおまじない。

libxkbcommon(完全版) + libxcb + xcb-proto

まず必要なライブラリをビルド、インストールする。libxcbのビルドにはxcb-protoが必要なので先にxcb-protoからインストールすること。
xcb-protoはコンパイルが不要(普通にmakeしても何も起きない)なPythonモジュールなのでいきなりmake installしている。
もしかするとlibxcbの方は追加で開発パッケージが要るかもしれない。

$ wget https://xcb.freedesktop.org/dist/xcb-proto-1.12.tar.gz
$ wget https://xcb.freedesktop.org/dist/libxcb-1.12.tar.gz
$ tar xzvf xcb-proto-1.12.tar.gz
$ tar xzvf libxcb-1.12.tar.gz
$ cd xcb-proto-1.12
$ ./configure
$ sudo make install
$ cd ../libxcb-1.12
$ ./configure --enable-xinput
$ make
$ sudo make install

その後再度libxkbcommonをビルド、インストールする(すでにアーカイブはダウンロード済みで、一回ビルドしていることを想定)

$ cd ../libxkbcommon-0.7.1
$ ./configure
$ make clean;make
$ sudo make install
$ sudo ldconfig

蛇足

独自ビルドしたEncryptPadの磁気カードリーダーからの入力が変になる現象だが、Qt5.5でビルドしなおしたら直った。Qt5.6以降で発生している現象なのかもしれない。
念の為複数バイナリを/usr/binに置いておいてupdate-alternativesでオリジナル(PPA)版・Qt5.5版・Qt5.8版とで切り替えできるように設定したのは秘密。

*1:gdbでsegfaultの原因探っていたのは秘密

広告を非表示にする
実験中:よい子は次のアドレスにメールを絶対に送らないでください。場合によっては晒しあげされますよ。 ivyrush+htnb.20170313@rita-ch.com viande@rita-ch.com