Message ID | 20240328140607.2433889-5-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Switch to glib URI parsing code | expand |
On Thu, Mar 28, 2024 at 3:06 PM Thomas Huth <thuth@redhat.com> wrote: > > Now that we dropped support for CentOS 8 and Ubuntu 20.04, we can > look into bumping the glib version to a new minimum for further > clean-ups. According to repology.org, available versions are: > > CentOS Stream 9: 2.66.7 > Debian 11: 2.66.8 > Fedora 38: 2.74.1 > Freebsd: 2.78.4 > Homebrew: 2.80.0 > Openbsd: 2.78.4 > OpenSuse leap 15.5: 2.70.5 > pkgsrc_current: 2.78.4 > Ubuntu 22.04: 2.72.1 > > Thus it should be safe to bump the minimum glib version to 2.66 now. > Version 2.66 comes with new functions for URI parsing which will > allow further clean-ups in the following patches. Missing: diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c index b0e0b1d674f..cc1f5a708e4 100644 --- a/qga/commands-posix-ssh.c +++ b/qga/commands-posix-ssh.c @@ -288,7 +288,6 @@ qmp_guest_ssh_get_authorized_keys( } #ifdef QGA_BUILD_UNIT_TEST -#if GLIB_CHECK_VERSION(2, 60, 0) static const strList test_key2 = { .value = (char *)"algo key2 comments" }; @@ -484,11 +483,4 @@ int main(int argc, char *argv[]) return g_test_run(); } -#else -int main(int argc, char *argv[]) -{ - g_test_message("test skipped, needs glib >= 2.60"); - return 0; -} -#endif /* GLIB_2_60 */ #endif /* BUILD_UNIT_TEST */ Paolo
On 12/04/2024 12.16, Paolo Bonzini wrote: > On Thu, Mar 28, 2024 at 3:06 PM Thomas Huth <thuth@redhat.com> wrote: >> >> Now that we dropped support for CentOS 8 and Ubuntu 20.04, we can >> look into bumping the glib version to a new minimum for further >> clean-ups. According to repology.org, available versions are: >> >> CentOS Stream 9: 2.66.7 >> Debian 11: 2.66.8 >> Fedora 38: 2.74.1 >> Freebsd: 2.78.4 >> Homebrew: 2.80.0 >> Openbsd: 2.78.4 >> OpenSuse leap 15.5: 2.70.5 >> pkgsrc_current: 2.78.4 >> Ubuntu 22.04: 2.72.1 >> >> Thus it should be safe to bump the minimum glib version to 2.66 now. >> Version 2.66 comes with new functions for URI parsing which will >> allow further clean-ups in the following patches. > > Missing: > > diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c > index b0e0b1d674f..cc1f5a708e4 100644 > --- a/qga/commands-posix-ssh.c > +++ b/qga/commands-posix-ssh.c > @@ -288,7 +288,6 @@ qmp_guest_ssh_get_authorized_keys( > } > > #ifdef QGA_BUILD_UNIT_TEST > -#if GLIB_CHECK_VERSION(2, 60, 0) > static const strList test_key2 = { > .value = (char *)"algo key2 comments" > }; > @@ -484,11 +483,4 @@ int main(int argc, char *argv[]) > > return g_test_run(); > } > -#else > -int main(int argc, char *argv[]) > -{ > - g_test_message("test skipped, needs glib >= 2.60"); > - return 0; > -} > -#endif /* GLIB_2_60 */ > #endif /* BUILD_UNIT_TEST */ Indeed! And there seems to be another GLIB_CHECK_VERSION(2,62,0) check in util/error-report.c which we likely can clean up now, too! Thomas
On 4/12/24 12:58, Thomas Huth wrote: > On 12/04/2024 12.16, Paolo Bonzini wrote: >> On Thu, Mar 28, 2024 at 3:06 PM Thomas Huth <thuth@redhat.com> wrote: >>> >>> Now that we dropped support for CentOS 8 and Ubuntu 20.04, we can >>> look into bumping the glib version to a new minimum for further >>> clean-ups. According to repology.org, available versions are: >>> >>> CentOS Stream 9: 2.66.7 >>> Debian 11: 2.66.8 >>> Fedora 38: 2.74.1 >>> Freebsd: 2.78.4 >>> Homebrew: 2.80.0 >>> Openbsd: 2.78.4 >>> OpenSuse leap 15.5: 2.70.5 >>> pkgsrc_current: 2.78.4 >>> Ubuntu 22.04: 2.72.1 >>> >>> Thus it should be safe to bump the minimum glib version to 2.66 now. >>> Version 2.66 comes with new functions for URI parsing which will >>> allow further clean-ups in the following patches. >> >> Missing: >> >> diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c >> index b0e0b1d674f..cc1f5a708e4 100644 >> --- a/qga/commands-posix-ssh.c >> +++ b/qga/commands-posix-ssh.c >> @@ -288,7 +288,6 @@ qmp_guest_ssh_get_authorized_keys( >> } >> >> #ifdef QGA_BUILD_UNIT_TEST >> -#if GLIB_CHECK_VERSION(2, 60, 0) >> static const strList test_key2 = { >> .value = (char *)"algo key2 comments" >> }; >> @@ -484,11 +483,4 @@ int main(int argc, char *argv[]) >> >> return g_test_run(); >> } >> -#else >> -int main(int argc, char *argv[]) >> -{ >> - g_test_message("test skipped, needs glib >= 2.60"); >> - return 0; >> -} >> -#endif /* GLIB_2_60 */ >> #endif /* BUILD_UNIT_TEST */ > > Indeed! And there seems to be another GLIB_CHECK_VERSION(2,62,0) check > in util/error-report.c which we likely can clean up now, too! Ok, I'll squash the above and diff --git a/util/error-report.c b/util/error-report.c index 6e44a557321..1b17c11de19 100644 --- a/util/error-report.c +++ b/util/error-report.c @@ -172,18 +172,8 @@ static void print_loc(void) static char * real_time_iso8601(void) { -#if GLIB_CHECK_VERSION(2,62,0) g_autoptr(GDateTime) dt = g_date_time_new_now_utc(); - /* ignore deprecation warning, since GLIB_VERSION_MAX_ALLOWED is 2.56 */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" return g_date_time_format_iso8601(dt); -#pragma GCC diagnostic pop -#else - GTimeVal tv; - g_get_current_time(&tv); - return g_time_val_to_iso8601(&tv); -#endif } /* then. As an aside, we probably can also drop: /* * gtk_widget_set_double_buffered() was deprecated in 3.14. * It is required for opengl rendering on X11 though. A * proper replacement (native opengl support) is only * available in 3.16+. Silence the warning if possible. */ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE); #pragma GCC diagnostic pop and #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" /* * check if RBD image is a clone (= has a parent). * * rbd_get_parent_info is deprecated from Nautilus onwards, but the * replacement rbd_get_parent is not present in Luminous and Mimic. */ if (rbd_get_parent_info(s->image, NULL, 0, NULL, 0, NULL, 0) != -ENOENT) { return status; } #pragma GCC diagnostic pop (Nautilus is Ceph 14, it's in all of CentOS Stream 9, Ubuntu 20.04 and Debian 11) but I have no idea what the replacement would be. :/ Paolo
diff --git a/meson.build b/meson.build index c9c3217ba4..c0aaceffc0 100644 --- a/meson.build +++ b/meson.build @@ -865,7 +865,7 @@ have_xen_pci_passthrough = get_option('xen_pci_passthrough') \ # When bumping glib minimum version, please check also whether to increase # the _WIN32_WINNT setting in osdep.h according to the value from glib -glib_req_ver = '>=2.56.0' +glib_req_ver = '>=2.66.0' glib_pc = dependency('glib-2.0', version: glib_req_ver, required: true, method: 'pkg-config') glib_cflags = [] @@ -906,20 +906,6 @@ if not cc.compiles(''' to the right pkg-config files for your build target.''') endif -# Silence clang warnings triggered by glib < 2.57.2 -if not cc.compiles(''' - #include <glib.h> - typedef struct Foo { - int i; - } Foo; - static void foo_free(Foo *f) - { - g_free(f); - } - G_DEFINE_AUTOPTR_CLEANUP_FUNC(Foo, foo_free) - int main(void) { return 0; }''', dependencies: glib_pc, args: ['-Wunused-function', '-Werror']) - glib_cflags += cc.get_supported_arguments('-Wno-unused-function') -endif glib = declare_dependency(dependencies: [glib_pc, gmodule], compile_args: glib_cflags, version: glib_pc.version()) diff --git a/include/glib-compat.h b/include/glib-compat.h index 43a562974d..86be439ba0 100644 --- a/include/glib-compat.h +++ b/include/glib-compat.h @@ -19,12 +19,12 @@ /* Ask for warnings for anything that was marked deprecated in * the defined version, or before. It is a candidate for rewrite. */ -#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_56 +#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_66 /* Ask for warnings if code tries to use function that did not * exist in the defined version. These risk breaking builds */ -#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_56 +#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_66 #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -105,29 +105,6 @@ static inline gpointer g_memdup2_qemu(gconstpointer mem, gsize byte_size) } #define g_memdup2(m, s) g_memdup2_qemu(m, s) -#if defined(G_OS_UNIX) -/* - * Note: The fallback implementation is not MT-safe, and it returns a copy of - * the libc passwd (must be g_free() after use) but not the content. Because of - * these important differences the caller must be aware of, it's not #define for - * GLib API substitution. - */ -static inline struct passwd * -g_unix_get_passwd_entry_qemu(const gchar *user_name, GError **error) -{ -#if GLIB_CHECK_VERSION(2, 64, 0) - return g_unix_get_passwd_entry(user_name, error); -#else - struct passwd *p = getpwnam(user_name); - if (!p) { - g_set_error_literal(error, G_UNIX_ERROR, 0, g_strerror(errno)); - return NULL; - } - return (struct passwd *)g_memdup(p, sizeof(*p)); -#endif -} -#endif /* G_OS_UNIX */ - static inline bool qemu_g_test_slow(void) { diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c index 236f80de44..b0e0b1d674 100644 --- a/qga/commands-posix-ssh.c +++ b/qga/commands-posix-ssh.c @@ -35,7 +35,7 @@ test_get_passwd_entry(const gchar *user_name, GError **error) return p; } -#define g_unix_get_passwd_entry_qemu(username, err) \ +#define g_unix_get_passwd_entry(username, err) \ test_get_passwd_entry(username, err) #endif @@ -45,7 +45,7 @@ get_passwd_entry(const char *username, Error **errp) g_autoptr(GError) err = NULL; struct passwd *p; - p = g_unix_get_passwd_entry_qemu(username, &err); + p = g_unix_get_passwd_entry(username, &err); if (p == NULL) { error_setg(errp, "failed to lookup user '%s': %s", username, err->message);
Now that we dropped support for CentOS 8 and Ubuntu 20.04, we can look into bumping the glib version to a new minimum for further clean-ups. According to repology.org, available versions are: CentOS Stream 9: 2.66.7 Debian 11: 2.66.8 Fedora 38: 2.74.1 Freebsd: 2.78.4 Homebrew: 2.80.0 Openbsd: 2.78.4 OpenSuse leap 15.5: 2.70.5 pkgsrc_current: 2.78.4 Ubuntu 22.04: 2.72.1 Thus it should be safe to bump the minimum glib version to 2.66 now. Version 2.66 comes with new functions for URI parsing which will allow further clean-ups in the following patches. Signed-off-by: Thomas Huth <thuth@redhat.com> --- meson.build | 16 +--------------- include/glib-compat.h | 27 ++------------------------- qga/commands-posix-ssh.c | 4 ++-- 3 files changed, 5 insertions(+), 42 deletions(-)