Ubuntu で notify-rust を使おうとしたらエラーになった

Rust から OS の通知を使ってみようと思って notify-rust を動かそうとしたらエラーが出たのに対処したメモ。
発生したエラーは以下のやつ。(/home/mihyaeru/tmp/notification はプロジェクトディレクトリ)

1
2
3
4
5
6
7
8
$ cargo build
Compiling libdbus-sys v0.2.1
error: failed to run custom build command for `libdbus-sys v0.2.1`

Caused by:
process didn't exit successfully: `/home/mihyaeru/tmp/notification/target/debug/build/libdbus-sys-bb7c2267590697eb/build-script-build` (exit code: 101)
--- stderrthread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Failure { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"dbus-1\" \"dbus-1 >= 1.6\"", output: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "Package dbus-1 was not found in the pkg-config search path.\nPerhaps you should add the directory containing `dbus-1.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'dbus-1\' found\nPackage dbus-1 was not found in the pkg-config search path.\nPerhaps you should add the directory containing `dbus-1.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'dbus-1\' found\n" } }', src/libcore/result.rs:1084:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

↓も確かにエラーになる。

1
2
3
4
5
$ pkg-config --libs --cflags dbus-1
Package dbus-1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `dbus-1.pc'
to the PKG_CONFIG_PATH environment variable
No package 'dbus-1' found

dbus って何だろう?と思って調べたら Unix 系の OS で IPC するやつだった。
notify-rust の依存ライブラリの dbus-rs が出力しているエラーで、 libdbus-1-dev というパッケージを入れる必要があった。
以下で入れたら通るようになった。

1
$ sudo apt install libdbus-1-dev

もちろん pkg-config の方も。

1
2
$ pkg-config --libs --cflags dbus-1
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -ldbus-1

このライブラリを使うとめっちゃ簡単にデスクトップの通知を投げられて便利っぽい。