Fedora 34 では im-chooser を再コンパイルできません。

Fedora 34 では im-chooser を再コンパイルできません。

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.c80、123、および163行を読み取ることができるようにパッチされました。

g_warning("%s", err->message);

他の通貨にも同じ修正を適用する必要があります。

関連情報