Fedora 34のパッケージに問題があり、修正できないエラーが発生するため、rpmbuild --rebuildを使用してFedora 22から34に再コンパイルすることはできません。
eggsmclient-dbus-gnome.c: In function 'sm_client_gdbus_get_interface_info':
eggsmclient-dbus-gnome.c:80:25: error: format not a string literal and no format arguments [-Werror=format-security]
80 | g_warning(err->message);
| ^~~~~~~~~
eggsmclient-dbus-gnome.c: In function 'sm_client_dbus_gnome_end_session':
eggsmclient-dbus-gnome.c:123:17: error: format not a string literal and no format arguments [-Werror=format-security]
123 | g_warning(err->message);
| ^~~~~~~~~
eggsmclient-dbus-gnome.c: In function 'egg_sm_client_dbus_gnome_new':
eggsmclient-dbus-gnome.c:163:17: error: format not a string literal and no format arguments [-Werror=format-security]
163 | g_warning(err->message);
| ^~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [Makefile:601: libeggsmclient_la-eggsmclient-dbus-gnome.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/root/rpmbuild/BUILD/im-chooser-1.6.4/libimchooseui'
make[1]: *** [Makefile:417: all-recursive] Error 1
make[1]: Leaving directory '/root/rpmbuild/BUILD/im-chooser-1.6.4'
make: *** [Makefile:348: all] Error 2
答え1
g_warning
最初の引数は型文字列であり、Fedora 34のビルドではこれは定数型文字列でなければなりません(形式文字列のバグを防ぐため)。eggsmclient-dbus-gnome.c
80、123、および163行を読み取ることができるようにパッチされました。
g_warning("%s", err->message);
他の通貨にも同じ修正を適用する必要があります。