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);
다른 통화에도 동일한 수정 사항을 적용해야 할 수도 있습니다.