[PATCH 00/13] Big CI update (and some bug fixes)

There's a lot happening here, but I did not find a way to split this any better. It all started with me wanting to switch from Ubuntu 20.04 to 24.04 and resulted in this. Firstly, Ubuntu 24.04 started to complain about a few things: 1) ASAN wasn't working (some missing .a archive). Fix is pending: https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/482 2) ASAN was complaining about some memleaks in qemuxmlconftest. When I tried to run the test locally under valgrind I found out I can't. This resulted in the first two patches. Mind you, after this, there are still some tests which are unable to run under valgrind (do NOT forget --trace-children=yes if the test binary uses mocks). Well, they may get fixes later. Firstly, I need to understand what really bother valgrind. 3) UBSAN complained about some undefined behavior. This was the hardest to make sense out of, for me. But part of the fix is bumping glib so yay! I guess. And, since I'm dropping AlmaLinux 8, we get to generate website on something newer. Finally, green pipeline with these patches applied: https://gitlab.com/MichalPrivoznik/libvirt/-/pipelines/1279666864 Michal Prívozník (13): domaincapsmock: Drop link time dependency on virQEMUCapsGet() qemuxml2argvmock: Drop link time dependency on qemuFDPassDirectNew() testutilsqemu: Don't leak struct testQemuArgs::vdpafds security: Fix return types of .probe callbacks meson: Disable -fsanitize=function gitlab-ci: Move website_job to Fedora 39 ci: Drop Fedora 38 ci: Drop Ubuntu 20.04 ci: Drop AlmaLinux 8 meson: Bump glib version to 2.58.0 ci: Introduce Fedora 40 ci: Introduce Ubuntu 24.04 ci: Introduce AlmaLinux 9 .gitlab-ci.yml | 6 +- .../{almalinux-8.sh => almalinux-9.sh} | 8 +- ci/buildenv/centos-stream-9.sh | 1 + ci/buildenv/debian-12-cross-aarch64.sh | 1 + ci/buildenv/debian-12-cross-armv6l.sh | 1 + ci/buildenv/debian-12-cross-armv7l.sh | 1 + ci/buildenv/debian-12-cross-i686.sh | 1 + ci/buildenv/debian-12-cross-mips64el.sh | 1 + ci/buildenv/debian-12-cross-mipsel.sh | 1 + ci/buildenv/debian-12-cross-ppc64le.sh | 1 + ci/buildenv/debian-12-cross-s390x.sh | 1 + ci/buildenv/debian-12.sh | 1 + ci/buildenv/debian-sid-cross-aarch64.sh | 1 + ci/buildenv/debian-sid-cross-armv6l.sh | 1 + ci/buildenv/debian-sid-cross-armv7l.sh | 1 + ci/buildenv/debian-sid-cross-i686.sh | 1 + ci/buildenv/debian-sid-cross-mips64el.sh | 1 + ci/buildenv/debian-sid-cross-ppc64le.sh | 1 + ci/buildenv/debian-sid-cross-s390x.sh | 1 + ci/buildenv/debian-sid.sh | 1 + ci/buildenv/fedora-39.sh | 1 + ...-mingw32.sh => fedora-40-cross-mingw32.sh} | 1 + ...-mingw64.sh => fedora-40-cross-mingw64.sh} | 1 + ci/buildenv/{fedora-38.sh => fedora-40.sh} | 1 + ci/buildenv/fedora-rawhide-cross-mingw32.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw64.sh | 1 + ci/buildenv/fedora-rawhide.sh | 1 + .../{ubuntu-2004.sh => ubuntu-2404.sh} | 8 +- ...ux-8.Dockerfile => almalinux-9.Dockerfile} | 10 +- ci/containers/centos-stream-9.Dockerfile | 1 + .../debian-12-cross-aarch64.Dockerfile | 1 + .../debian-12-cross-armv6l.Dockerfile | 1 + .../debian-12-cross-armv7l.Dockerfile | 1 + ci/containers/debian-12-cross-i686.Dockerfile | 1 + .../debian-12-cross-mips64el.Dockerfile | 1 + .../debian-12-cross-mipsel.Dockerfile | 1 + .../debian-12-cross-ppc64le.Dockerfile | 1 + .../debian-12-cross-s390x.Dockerfile | 1 + ci/containers/debian-12.Dockerfile | 1 + .../debian-sid-cross-aarch64.Dockerfile | 1 + .../debian-sid-cross-armv6l.Dockerfile | 1 + .../debian-sid-cross-armv7l.Dockerfile | 1 + .../debian-sid-cross-i686.Dockerfile | 1 + .../debian-sid-cross-mips64el.Dockerfile | 1 + .../debian-sid-cross-ppc64le.Dockerfile | 1 + .../debian-sid-cross-s390x.Dockerfile | 1 + ci/containers/debian-sid.Dockerfile | 1 + ci/containers/fedora-39.Dockerfile | 1 + ...ile => fedora-40-cross-mingw32.Dockerfile} | 3 +- ...ile => fedora-40-cross-mingw64.Dockerfile} | 3 +- ...ora-38.Dockerfile => fedora-40.Dockerfile} | 3 +- .../fedora-rawhide-cross-mingw32.Dockerfile | 1 + .../fedora-rawhide-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-rawhide.Dockerfile | 1 + ...2004.Dockerfile => ubuntu-2404.Dockerfile} | 11 +- ci/gitlab/builds.yml | 113 ++++++++-------- ci/gitlab/containers.yml | 54 ++++---- ci/integration.yml | 24 ---- ci/lcitool/projects/libvirt.yml | 1 + ci/manifest.yml | 40 +++--- meson.build | 15 ++- src/libvirt_private.syms | 1 - src/security/security_apparmor.c | 2 +- src/security/security_selinux.c | 2 +- src/util/glibcompat.c | 125 ------------------ src/util/glibcompat.h | 10 -- tests/domaincapsmock.c | 13 +- tests/qemuxml2argvmock.c | 8 +- tests/testutilsqemu.c | 1 + 69 files changed, 203 insertions(+), 305 deletions(-) rename ci/buildenv/{almalinux-8.sh => almalinux-9.sh} (93%) rename ci/buildenv/{fedora-38-cross-mingw32.sh => fedora-40-cross-mingw32.sh} (98%) rename ci/buildenv/{fedora-38-cross-mingw64.sh => fedora-40-cross-mingw64.sh} (98%) rename ci/buildenv/{fedora-38.sh => fedora-40.sh} (99%) rename ci/buildenv/{ubuntu-2004.sh => ubuntu-2404.sh} (94%) rename ci/containers/{almalinux-8.Dockerfile => almalinux-9.Dockerfile} (91%) rename ci/containers/{fedora-38-cross-mingw32.Dockerfile => fedora-40-cross-mingw32.Dockerfile} (97%) rename ci/containers/{fedora-38-cross-mingw64.Dockerfile => fedora-40-cross-mingw64.Dockerfile} (97%) rename ci/containers/{fedora-38.Dockerfile => fedora-40.Dockerfile} (97%) rename ci/containers/{ubuntu-2004.Dockerfile => ubuntu-2404.Dockerfile} (93%) -- 2.43.2

While Linux linker has no trouble resolving the symbols, valgrind does. It has probably something to do with the fact that we don't tell what symbols to export from mock libraries. Anyway, just resolve the symbol at runtime. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/domaincapsmock.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/domaincapsmock.c b/tests/domaincapsmock.c index 6ae0c4ad45..73ff992ebd 100644 --- a/tests/domaincapsmock.c +++ b/tests/domaincapsmock.c @@ -49,16 +49,19 @@ virHostCPUGetPhysAddrSize(const virArch hostArch, #if WITH_QEMU static bool (*real_virQEMUCapsGetKVMSupportsSecureGuest)(virQEMUCaps *qemuCaps); +static bool (*real_virQEMUCapsGet)(virQEMUCaps *qemuCaps, virQEMUCapsFlags flag); bool virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps) { - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT) && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST)) - return true; - - if (!real_virQEMUCapsGetKVMSupportsSecureGuest) + if (!real_virQEMUCapsGet) { + VIR_MOCK_REAL_INIT(virQEMUCapsGet); VIR_MOCK_REAL_INIT(virQEMUCapsGetKVMSupportsSecureGuest); + } + + if (real_virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT) && + real_virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST)) + return true; return real_virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps); } -- 2.43.2

On Mon, May 06, 2024 at 10:42:58AM +0200, Michal Privoznik wrote:
While Linux linker has no trouble resolving the symbols, valgrind does. It has probably something to do with the fact that we don't tell what symbols to export from mock libraries. Anyway, just resolve the symbol at runtime.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/domaincapsmock.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

While Linux linker has no trouble resolving the symbols, valgrind does. It has probably something to do with the fact that we don't tell what symbols to export from mock libraries. Anyway, just resolve the symbol at runtime. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/qemuxml2argvmock.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/qemuxml2argvmock.c b/tests/qemuxml2argvmock.c index 9cc97199c4..7bcad7284d 100644 --- a/tests/qemuxml2argvmock.c +++ b/tests/qemuxml2argvmock.c @@ -40,6 +40,8 @@ #define VIR_FROM_THIS VIR_FROM_NONE +static qemuFDPassDirect * (*real_qemuFDPassDirectNew)(const char *name, int *fd); + long virGetSystemPageSize(void) { return 4096; @@ -212,6 +214,10 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm G_GNUC_UNUSED, size_t vhostfdSize = net->driver.virtio.queues; size_t i; + if (!real_qemuFDPassDirectNew) { + VIR_MOCK_REAL_INIT(qemuFDPassDirectNew); + } + if (!vhostfdSize) vhostfdSize = 1; @@ -222,7 +228,7 @@ qemuInterfaceOpenVhostNet(virDomainObj *vm G_GNUC_UNUSED, g_autofree char *name = g_strdup_printf("vhostfd-%s%zu", net->info.alias, i); int fd = STDERR_FILENO + 42 + i; - netpriv->vhostfds = g_slist_prepend(netpriv->vhostfds, qemuFDPassDirectNew(name, &fd)); + netpriv->vhostfds = g_slist_prepend(netpriv->vhostfds, real_qemuFDPassDirectNew(name, &fd)); } netpriv->vhostfds = g_slist_reverse(netpriv->vhostfds); -- 2.43.2

On Mon, May 06, 2024 at 10:42:59AM +0200, Michal Privoznik wrote:
While Linux linker has no trouble resolving the symbols, valgrind does. It has probably something to do with the fact that we don't tell what symbols to export from mock libraries. Anyway, just resolve the symbol at runtime.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/qemuxml2argvmock.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Allocated in testQemuInfoSetArgs(), the vdpafds member of testQemuArgs is never freed. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/testutilsqemu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 9c12a165b1..d70850cb5d 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -966,6 +966,7 @@ testQemuInfoFree(testQemuInfo *info) g_clear_pointer(&info->args.fakeCapsAdd, virBitmapFree); g_clear_pointer(&info->args.fakeCapsDel, virBitmapFree); g_clear_pointer(&info->args.fds, g_hash_table_unref); + g_clear_pointer(&info->args.vdpafds, g_hash_table_unref); g_clear_object(&info->nbdkitCaps); g_clear_pointer(&info->args.fakeNbdkitCaps, virBitmapFree); g_free(info); -- 2.43.2

On Mon, May 06, 2024 at 10:43:00AM +0200, Michal Privoznik wrote:
Allocated in testQemuInfoSetArgs(), the vdpafds member of testQemuArgs is never freed.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- tests/testutilsqemu.c | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

The .probe member of virSecurityDriver struct is declared to return virSecurityDriverStatus enum. But there are two instances (AppArmorSecurityManagerProbe() and virSecuritySELinuxDriverProbe()) where callbacks are defined to return an integer. This is an undefined behavior because integer has strictly bigger space of possible values than the enum. Defined those aforementioned callbacks so that they return the correct enum instead of int. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/security/security_apparmor.c | 2 +- src/security/security_selinux.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c index c1dc859751..27184aef7f 100644 --- a/src/security/security_apparmor.c +++ b/src/security/security_apparmor.c @@ -315,7 +315,7 @@ AppArmorSetSecurityHostLabel(virSCSIVHostDevice *dev G_GNUC_UNUSED, } /* Called on libvirtd startup to see if AppArmor is available */ -static int +static virSecurityDriverStatus AppArmorSecurityManagerProbe(const char *virtDriver G_GNUC_UNUSED) { g_autofree char *template_qemu = NULL; diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index aaec34ff8b..e29f627bc2 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -1039,7 +1039,7 @@ virSecuritySELinuxReserveLabel(virSecurityManager *mgr, } -static int +static virSecurityDriverStatus virSecuritySELinuxDriverProbe(const char *virtDriver) { if (is_selinux_enabled() <= 0) -- 2.43.2

On Mon, May 06, 2024 at 10:43:01AM +0200, Michal Privoznik wrote:
The .probe member of virSecurityDriver struct is declared to return virSecurityDriverStatus enum. But there are two instances (AppArmorSecurityManagerProbe() and virSecuritySELinuxDriverProbe()) where callbacks are defined to return an integer. This is an undefined behavior because integer has strictly bigger space of possible values than the enum.
Defined those aforementioned callbacks so that they return the correct enum instead of int.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/security/security_apparmor.c | 2 +- src/security/security_selinux.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Strictly speaking, xdrproc_t is declared as following: typedef bool_t (*xdrproc_t)(XDR *, ...); But our rpcgen generates properly typed functions, e.g.: bool_t xdr_virNetMessageError(XDR *xdrs, virNetMessageError *objp) Now, these functions of ours are passed around as callbacks (via an argument of xdrproc_t type), for instance in virNetMessageEncodePayload(). But these two types are strictly different. We silence the compiler by typecasting the callbacks when passing them, but strictly speaking - calling such callback later, when a function of xdrproc_t is expected is an undefined behavior. Ideally, we would fix our rpcgen to generate proper function headers, but: a) my brain is too small to do that, and b) we would lose compiler protection if an xdr_*() function is called directly but argument of a wrong type is passed. Silence UBSAN for now. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/meson.build b/meson.build index e8b0094b91..cb374ab118 100644 --- a/meson.build +++ b/meson.build @@ -438,6 +438,19 @@ if cc.get_id() == 'clang' cc_flags += [ '-fsemantic-interposition' ] endif +if get_option('b_sanitize') != 'none' + # This is needed because of xdrproc_t. It's declared as a pointer to a + # function with variable arguments. But for catching type related problems at + # compile time, our rpcgen generates functions with proper types, say: + # + # bool_t xdr_TestEnum(XDR *, TestEnum *); + # + # But passing xdr_TestEnum as a callback where xdrproc_t type is expected is + # undefined behavior. Yet, we want the comfort of compile time checks, so + # just disable the sanitizer warning for now. It's a big hammer though. + cc_flags += [ '-fno-sanitize=function' ] +endif + supported_cc_flags = [] if get_option('warning_level') == '2' supported_cc_flags = cc.get_supported_arguments(cc_flags) -- 2.43.2

On Mon, May 06, 2024 at 10:43:02AM +0200, Michal Privoznik wrote:
Strictly speaking, xdrproc_t is declared as following:
typedef bool_t (*xdrproc_t)(XDR *, ...);
But our rpcgen generates properly typed functions, e.g.:
bool_t xdr_virNetMessageError(XDR *xdrs, virNetMessageError *objp)
Now, these functions of ours are passed around as callbacks (via an argument of xdrproc_t type), for instance in virNetMessageEncodePayload(). But these two types are strictly different. We silence the compiler by typecasting the callbacks when passing them, but strictly speaking - calling such callback later, when a function of xdrproc_t is expected is an undefined behavior.
Ideally, we would fix our rpcgen to generate proper function headers, but: a) my brain is too small to do that, and b) we would lose compiler protection if an xdr_*() function is called directly but argument of a wrong type is passed.
The right solution is to finish my previous work to throw away libtirpc, in favour of generating libvirt code that natively works with virNetMessage.
Silence UBSAN for now.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Currently, our website job depends on almalinux-8 container. Well, AlmaLinux 8 is going to be dropped soon. Therefore, switch the job to something newer. Fedora 39 was chosen by a roll of dice. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b879b88f74..da94332910 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,7 +67,7 @@ include: website_job: extends: .gitlab_native_build_job needs: - - job: x86_64-almalinux-8-container + - job: x86_64-fedora-39-container optional: true script: - source ci/jobs.sh @@ -83,8 +83,8 @@ website_job: paths: - website variables: - NAME: almalinux-8 - TARGET_BASE_IMAGE: docker.io/library/almalinux:8 + NAME: fedora-39 + TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:39 # On push to master publish the website from 'website_job' via gitlab pages pages: -- 2.43.2

On Mon, May 06, 2024 at 10:43:03AM +0200, Michal Privoznik wrote:
Currently, our website job depends on almalinux-8 container. Well, AlmaLinux 8 is going to be dropped soon. Therefore, switch the job to something newer. Fedora 39 was chosen by a roll of dice.
I'd suggest AlmaLinux 9 so that we don't have to update this again every 6-12 months
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b879b88f74..da94332910 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -67,7 +67,7 @@ include: website_job: extends: .gitlab_native_build_job needs: - - job: x86_64-almalinux-8-container + - job: x86_64-fedora-39-container optional: true script: - source ci/jobs.sh @@ -83,8 +83,8 @@ website_job: paths: - website variables: - NAME: almalinux-8 - TARGET_BASE_IMAGE: docker.io/library/almalinux:8 + NAME: fedora-39 + TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:39
# On push to master publish the website from 'website_job' via gitlab pages pages: -- 2.43.2 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org
With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 5/7/24 12:09, Daniel P. Berrangé wrote:
On Mon, May 06, 2024 at 10:43:03AM +0200, Michal Privoznik wrote:
Currently, our website job depends on almalinux-8 container. Well, AlmaLinux 8 is going to be dropped soon. Therefore, switch the job to something newer. Fedora 39 was chosen by a roll of dice.
I'd suggest AlmaLinux 9 so that we don't have to update this again every 6-12 months
Fair enough. But that requires reordering patches. I'll post that in v2. Michal

Since Fedora 40 was released recently, Fedora 38 is now unsupported. Remove it from our CI. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/fedora-38-cross-mingw32.sh | 77 ------------ ci/buildenv/fedora-38-cross-mingw64.sh | 77 ------------ ci/buildenv/fedora-38.sh | 98 ---------------- .../fedora-38-cross-mingw32.Dockerfile | 91 --------------- .../fedora-38-cross-mingw64.Dockerfile | 91 --------------- ci/containers/fedora-38.Dockerfile | 110 ------------------ ci/gitlab/builds.yml | 40 ------- ci/gitlab/containers.yml | 22 ---- ci/integration.yml | 24 ---- ci/manifest.yml | 13 --- 10 files changed, 643 deletions(-) delete mode 100644 ci/buildenv/fedora-38-cross-mingw32.sh delete mode 100644 ci/buildenv/fedora-38-cross-mingw64.sh delete mode 100644 ci/buildenv/fedora-38.sh delete mode 100644 ci/containers/fedora-38-cross-mingw32.Dockerfile delete mode 100644 ci/containers/fedora-38-cross-mingw64.Dockerfile delete mode 100644 ci/containers/fedora-38.Dockerfile diff --git a/ci/buildenv/fedora-38-cross-mingw32.sh b/ci/buildenv/fedora-38-cross-mingw32.sh deleted file mode 100644 index f349d1f60d..0000000000 --- a/ci/buildenv/fedora-38-cross-mingw32.sh +++ /dev/null @@ -1,77 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -function install_buildenv() { - dnf update -y - dnf install -y \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - codespell \ - cpp \ - cppi \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - gettext \ - git \ - glibc-langpack-en \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libnbd-devel \ - libxml2 \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numad \ - perl-base \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - rpm-build \ - sed \ - systemd-rpm-macros - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - dnf install -y \ - mingw32-curl \ - mingw32-dlfcn \ - mingw32-gcc \ - mingw32-gettext \ - mingw32-glib2 \ - mingw32-gnutls \ - mingw32-headers \ - mingw32-libssh2 \ - mingw32-libxml2 \ - mingw32-pkg-config \ - mingw32-portablexdr \ - mingw32-readline - rpm -qa | sort > /packages.txt - mkdir -p /usr/libexec/ccache-wrappers - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc -} - -export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" -export LANG="en_US.UTF-8" -export MAKE="/usr/bin/make" -export NINJA="/usr/bin/ninja" -export PYTHON="/usr/bin/python3" - -export ABI="i686-w64-mingw32" -export MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw32.meson" diff --git a/ci/buildenv/fedora-38-cross-mingw64.sh b/ci/buildenv/fedora-38-cross-mingw64.sh deleted file mode 100644 index fd20ff812b..0000000000 --- a/ci/buildenv/fedora-38-cross-mingw64.sh +++ /dev/null @@ -1,77 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -function install_buildenv() { - dnf update -y - dnf install -y \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - codespell \ - cpp \ - cppi \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - gettext \ - git \ - glibc-langpack-en \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libnbd-devel \ - libxml2 \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numad \ - perl-base \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - rpm-build \ - sed \ - systemd-rpm-macros - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - dnf install -y \ - mingw64-curl \ - mingw64-dlfcn \ - mingw64-gcc \ - mingw64-gettext \ - mingw64-glib2 \ - mingw64-gnutls \ - mingw64-headers \ - mingw64-libssh2 \ - mingw64-libxml2 \ - mingw64-pkg-config \ - mingw64-portablexdr \ - mingw64-readline - rpm -qa | sort > /packages.txt - mkdir -p /usr/libexec/ccache-wrappers - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc -} - -export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" -export LANG="en_US.UTF-8" -export MAKE="/usr/bin/make" -export NINJA="/usr/bin/ninja" -export PYTHON="/usr/bin/python3" - -export ABI="x86_64-w64-mingw32" -export MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson" diff --git a/ci/buildenv/fedora-38.sh b/ci/buildenv/fedora-38.sh deleted file mode 100644 index 0cce268050..0000000000 --- a/ci/buildenv/fedora-38.sh +++ /dev/null @@ -1,98 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -function install_buildenv() { - dnf update -y - dnf install -y \ - audit-libs-devel \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - clang \ - codespell \ - cpp \ - cppi \ - cyrus-sasl-devel \ - device-mapper-devel \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - fuse-devel \ - gcc \ - gettext \ - git \ - glib2-devel \ - glibc-devel \ - glibc-langpack-en \ - glusterfs-api-devel \ - gnutls-devel \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libacl-devel \ - libattr-devel \ - libblkid-devel \ - libcap-ng-devel \ - libcurl-devel \ - libiscsi-devel \ - libnbd-devel \ - libnl3-devel \ - libpcap-devel \ - libpciaccess-devel \ - librbd-devel \ - libselinux-devel \ - libssh-devel \ - libssh2-devel \ - libtirpc-devel \ - libwsman-devel \ - libxml2 \ - libxml2-devel \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numactl-devel \ - numad \ - parted-devel \ - perl-base \ - pkgconfig \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - readline-devel \ - rpm-build \ - sanlock-devel \ - sed \ - systemd-devel \ - systemd-rpm-macros \ - systemtap-sdt-devel \ - wireshark-devel \ - xen-devel \ - yajl-devel - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - rpm -qa | sort > /packages.txt - mkdir -p /usr/libexec/ccache-wrappers - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc -} - -export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" -export LANG="en_US.UTF-8" -export MAKE="/usr/bin/make" -export NINJA="/usr/bin/ninja" -export PYTHON="/usr/bin/python3" diff --git a/ci/containers/fedora-38-cross-mingw32.Dockerfile b/ci/containers/fedora-38-cross-mingw32.Dockerfile deleted file mode 100644 index 54eb714505..0000000000 --- a/ci/containers/fedora-38-cross-mingw32.Dockerfile +++ /dev/null @@ -1,91 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM registry.fedoraproject.org/fedora:38 - -RUN dnf install -y nosync && \ - printf '#!/bin/sh\n\ -if test -d /usr/lib64\n\ -then\n\ - export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ -else\n\ - export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ -fi\n\ -exec "$@"\n' > /usr/bin/nosync && \ - chmod +x /usr/bin/nosync && \ - nosync dnf update -y && \ - nosync dnf install -y \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - codespell \ - cpp \ - cppi \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - gettext \ - git \ - glibc-langpack-en \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libnbd-devel \ - libxml2 \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numad \ - perl-base \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - rpm-build \ - sed \ - systemd-rpm-macros && \ - nosync dnf autoremove -y && \ - nosync dnf clean all -y && \ - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" - -RUN nosync dnf install -y \ - mingw32-curl \ - mingw32-dlfcn \ - mingw32-gcc \ - mingw32-gettext \ - mingw32-glib2 \ - mingw32-gnutls \ - mingw32-headers \ - mingw32-libssh2 \ - mingw32-libxml2 \ - mingw32-pkg-config \ - mingw32-portablexdr \ - mingw32-readline && \ - nosync dnf clean all -y && \ - rpm -qa | sort > /packages.txt && \ - mkdir -p /usr/libexec/ccache-wrappers && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc - -ENV ABI "i686-w64-mingw32" -ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson" diff --git a/ci/containers/fedora-38-cross-mingw64.Dockerfile b/ci/containers/fedora-38-cross-mingw64.Dockerfile deleted file mode 100644 index 7578805c02..0000000000 --- a/ci/containers/fedora-38-cross-mingw64.Dockerfile +++ /dev/null @@ -1,91 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM registry.fedoraproject.org/fedora:38 - -RUN dnf install -y nosync && \ - printf '#!/bin/sh\n\ -if test -d /usr/lib64\n\ -then\n\ - export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ -else\n\ - export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ -fi\n\ -exec "$@"\n' > /usr/bin/nosync && \ - chmod +x /usr/bin/nosync && \ - nosync dnf update -y && \ - nosync dnf install -y \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - codespell \ - cpp \ - cppi \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - gettext \ - git \ - glibc-langpack-en \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libnbd-devel \ - libxml2 \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numad \ - perl-base \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - rpm-build \ - sed \ - systemd-rpm-macros && \ - nosync dnf autoremove -y && \ - nosync dnf clean all -y && \ - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" - -RUN nosync dnf install -y \ - mingw64-curl \ - mingw64-dlfcn \ - mingw64-gcc \ - mingw64-gettext \ - mingw64-glib2 \ - mingw64-gnutls \ - mingw64-headers \ - mingw64-libssh2 \ - mingw64-libxml2 \ - mingw64-pkg-config \ - mingw64-portablexdr \ - mingw64-readline && \ - nosync dnf clean all -y && \ - rpm -qa | sort > /packages.txt && \ - mkdir -p /usr/libexec/ccache-wrappers && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc - -ENV ABI "x86_64-w64-mingw32" -ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson" diff --git a/ci/containers/fedora-38.Dockerfile b/ci/containers/fedora-38.Dockerfile deleted file mode 100644 index fe06346cc6..0000000000 --- a/ci/containers/fedora-38.Dockerfile +++ /dev/null @@ -1,110 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM registry.fedoraproject.org/fedora:38 - -RUN dnf install -y nosync && \ - printf '#!/bin/sh\n\ -if test -d /usr/lib64\n\ -then\n\ - export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ -else\n\ - export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ -fi\n\ -exec "$@"\n' > /usr/bin/nosync && \ - chmod +x /usr/bin/nosync && \ - nosync dnf update -y && \ - nosync dnf install -y \ - audit-libs-devel \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - clang \ - codespell \ - cpp \ - cppi \ - cyrus-sasl-devel \ - device-mapper-devel \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - fuse-devel \ - gcc \ - gettext \ - git \ - glib2-devel \ - glibc-devel \ - glibc-langpack-en \ - glusterfs-api-devel \ - gnutls-devel \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libacl-devel \ - libattr-devel \ - libblkid-devel \ - libcap-ng-devel \ - libcurl-devel \ - libiscsi-devel \ - libnbd-devel \ - libnl3-devel \ - libpcap-devel \ - libpciaccess-devel \ - librbd-devel \ - libselinux-devel \ - libssh-devel \ - libssh2-devel \ - libtirpc-devel \ - libwsman-devel \ - libxml2 \ - libxml2-devel \ - libxslt \ - lvm2 \ - make \ - meson \ - nfs-utils \ - ninja-build \ - numactl-devel \ - numad \ - parted-devel \ - perl-base \ - pkgconfig \ - polkit \ - python3 \ - python3-black \ - python3-docutils \ - python3-flake8 \ - python3-pytest \ - qemu-img \ - readline-devel \ - rpm-build \ - sanlock-devel \ - sed \ - systemd-devel \ - systemd-rpm-macros \ - systemtap-sdt-devel \ - wireshark-devel \ - xen-devel \ - yajl-devel && \ - nosync dnf autoremove -y && \ - nosync dnf clean all -y && \ - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ - rpm -qa | sort > /packages.txt && \ - mkdir -p /usr/libexec/ccache-wrappers && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index 1629e02525..e17d83710c 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -127,21 +127,6 @@ x86_64-debian-sid: TARGET_BASE_IMAGE: docker.io/library/debian:sid-slim -x86_64-fedora-38: - extends: .native_build_job - needs: - - job: x86_64-fedora-38-container - optional: true - allow_failure: false - variables: - NAME: fedora-38 - TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:38 - artifacts: - expire_in: 1 day - paths: - - libvirt-rpms - - x86_64-fedora-39: extends: .native_build_job needs: @@ -547,31 +532,6 @@ s390x-debian-sid: TARGET_BASE_IMAGE: docker.io/library/debian:sid-slim -mingw32-fedora-38: - extends: .cross_build_job - needs: - - job: mingw32-fedora-38-container - optional: true - allow_failure: false - variables: - CROSS: mingw32 - JOB_OPTIONAL: 1 - NAME: fedora-38 - TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:38 - - -mingw64-fedora-38: - extends: .cross_build_job - needs: - - job: mingw64-fedora-38-container - optional: true - allow_failure: false - variables: - CROSS: mingw64 - NAME: fedora-38 - TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:38 - - mingw32-fedora-rawhide: extends: .cross_build_job needs: diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index b7ae60b10a..04516d8f55 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -57,13 +57,6 @@ x86_64-debian-sid-container: NAME: debian-sid -x86_64-fedora-38-container: - extends: .container_job - allow_failure: false - variables: - NAME: fedora-38 - - x86_64-fedora-39-container: extends: .container_job allow_failure: false @@ -292,21 +285,6 @@ s390x-debian-sid-container: NAME: debian-sid-cross-s390x -mingw32-fedora-38-container: - extends: .container_job - allow_failure: false - variables: - JOB_OPTIONAL: 1 - NAME: fedora-38-cross-mingw32 - - -mingw64-fedora-38-container: - extends: .container_job - allow_failure: false - variables: - NAME: fedora-38-cross-mingw64 - - mingw32-fedora-rawhide-container: extends: .container_job allow_failure: true diff --git a/ci/integration.yml b/ci/integration.yml index d3859c54e8..2fc8d02956 100644 --- a/ci/integration.yml +++ b/ci/integration.yml @@ -25,30 +25,6 @@ centos-stream-9-tests: ref: master artifacts: true -# NOTE The integration tests use artifacts produced by the libvirt-perl -# and libvirt-python CI jobs, so the new target needs to be introduced -# there before it can be used here. The VM template for the target -# also needs to be created on the runner host. -fedora-38-tests: - extends: .integration_tests - variables: - # needed by libvirt-gitlab-executor - DISTRO: fedora-38 - # can be overridden in forks to set a different runner tag - LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host - tags: - - $LIBVIRT_CI_INTEGRATION_RUNNER_TAG - needs: - - x86_64-fedora-38 - - project: libvirt/libvirt-perl - job: x86_64-fedora-38 - ref: master - artifacts: true - - project: libvirt/libvirt-python - job: x86_64-fedora-38 - ref: master - artifacts: true - # NOTE The integration tests use artifacts produced by the libvirt-perl # and libvirt-python CI jobs, so the new target needs to be introduced # there before it can be used here. The VM template for the target diff --git a/ci/manifest.yml b/ci/manifest.yml index 84d31866fc..d54276a25d 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -144,19 +144,6 @@ targets: containers: false builds: false - fedora-38: - jobs: - - arch: x86_64 - artifacts: - expire_in: 1 day - paths: - - libvirt-rpms - - - arch: mingw32 - builds: false - - - arch: mingw64 - fedora-39: jobs: - arch: x86_64 -- 2.43.2

On Mon, May 06, 2024 at 10:43:04AM +0200, Michal Privoznik wrote:
Since Fedora 40 was released recently, Fedora 38 is now unsupported. Remove it from our CI.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/fedora-38-cross-mingw32.sh | 77 ------------ ci/buildenv/fedora-38-cross-mingw64.sh | 77 ------------ ci/buildenv/fedora-38.sh | 98 ---------------- .../fedora-38-cross-mingw32.Dockerfile | 91 --------------- .../fedora-38-cross-mingw64.Dockerfile | 91 --------------- ci/containers/fedora-38.Dockerfile | 110 ------------------ ci/gitlab/builds.yml | 40 ------- ci/gitlab/containers.yml | 22 ---- ci/integration.yml | 24 ---- ci/manifest.yml | 13 --- 10 files changed, 643 deletions(-) delete mode 100644 ci/buildenv/fedora-38-cross-mingw32.sh delete mode 100644 ci/buildenv/fedora-38-cross-mingw64.sh delete mode 100644 ci/buildenv/fedora-38.sh delete mode 100644 ci/containers/fedora-38-cross-mingw32.Dockerfile delete mode 100644 ci/containers/fedora-38-cross-mingw64.Dockerfile delete mode 100644 ci/containers/fedora-38.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

It's now more than two years since Ubuntu 22.04 was released and per our support policy, Ubuntu 20.04 (the previous major release) is now not supported. Remove it from our CI testing. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/ubuntu-2004.sh | 103 -------------------------- ci/containers/ubuntu-2004.Dockerfile | 107 --------------------------- ci/gitlab/builds.yml | 28 ++----- ci/gitlab/containers.yml | 21 ++---- ci/manifest.yml | 8 -- 5 files changed, 14 insertions(+), 253 deletions(-) delete mode 100644 ci/buildenv/ubuntu-2004.sh delete mode 100644 ci/containers/ubuntu-2004.Dockerfile diff --git a/ci/buildenv/ubuntu-2004.sh b/ci/buildenv/ubuntu-2004.sh deleted file mode 100644 index e001fcf012..0000000000 --- a/ci/buildenv/ubuntu-2004.sh +++ /dev/null @@ -1,103 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -function install_buildenv() { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get dist-upgrade -y - apt-get install --no-install-recommends -y \ - augeas-lenses \ - augeas-tools \ - bash-completion \ - black \ - ca-certificates \ - ccache \ - clang \ - codespell \ - cpp \ - diffutils \ - dwarves \ - ebtables \ - flake8 \ - gcc \ - gettext \ - git \ - grep \ - iproute2 \ - iptables \ - kmod \ - libacl1-dev \ - libapparmor-dev \ - libattr1-dev \ - libaudit-dev \ - libblkid-dev \ - libc6-dev \ - libcap-ng-dev \ - libcurl4-gnutls-dev \ - libdevmapper-dev \ - libfuse-dev \ - libglib2.0-dev \ - libglusterfs-dev \ - libgnutls28-dev \ - libiscsi-dev \ - libnetcf-dev \ - libnl-3-dev \ - libnl-route-3-dev \ - libnuma-dev \ - libopenwsman-dev \ - libparted-dev \ - libpcap0.8-dev \ - libpciaccess-dev \ - librbd-dev \ - libreadline-dev \ - libsanlock-dev \ - libsasl2-dev \ - libselinux1-dev \ - libssh-dev \ - libssh2-1-dev \ - libtirpc-dev \ - libudev-dev \ - libxen-dev \ - libxml2-dev \ - libxml2-utils \ - libyajl-dev \ - locales \ - lvm2 \ - make \ - nfs-common \ - ninja-build \ - numad \ - open-iscsi \ - perl-base \ - pkgconf \ - policykit-1 \ - python3 \ - python3-docutils \ - python3-pip \ - python3-pytest \ - python3-setuptools \ - python3-wheel \ - qemu-utils \ - sed \ - systemtap-sdt-dev \ - wireshark-dev \ - xsltproc - sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen - dpkg-reconfigure locales - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt - mkdir -p /usr/libexec/ccache-wrappers - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - /usr/bin/pip3 install meson==0.56.0 -} - -export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" -export LANG="en_US.UTF-8" -export MAKE="/usr/bin/make" -export NINJA="/usr/bin/ninja" -export PYTHON="/usr/bin/python3" diff --git a/ci/containers/ubuntu-2004.Dockerfile b/ci/containers/ubuntu-2004.Dockerfile deleted file mode 100644 index b43b85873e..0000000000 --- a/ci/containers/ubuntu-2004.Dockerfile +++ /dev/null @@ -1,107 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM docker.io/library/ubuntu:20.04 - -RUN export DEBIAN_FRONTEND=noninteractive && \ - apt-get update && \ - apt-get install -y eatmydata && \ - eatmydata apt-get dist-upgrade -y && \ - eatmydata apt-get install --no-install-recommends -y \ - augeas-lenses \ - augeas-tools \ - bash-completion \ - black \ - ca-certificates \ - ccache \ - clang \ - codespell \ - cpp \ - diffutils \ - dwarves \ - ebtables \ - flake8 \ - gcc \ - gettext \ - git \ - grep \ - iproute2 \ - iptables \ - kmod \ - libacl1-dev \ - libapparmor-dev \ - libattr1-dev \ - libaudit-dev \ - libblkid-dev \ - libc6-dev \ - libcap-ng-dev \ - libcurl4-gnutls-dev \ - libdevmapper-dev \ - libfuse-dev \ - libglib2.0-dev \ - libglusterfs-dev \ - libgnutls28-dev \ - libiscsi-dev \ - libnetcf-dev \ - libnl-3-dev \ - libnl-route-3-dev \ - libnuma-dev \ - libopenwsman-dev \ - libparted-dev \ - libpcap0.8-dev \ - libpciaccess-dev \ - librbd-dev \ - libreadline-dev \ - libsanlock-dev \ - libsasl2-dev \ - libselinux1-dev \ - libssh-dev \ - libssh2-1-dev \ - libtirpc-dev \ - libudev-dev \ - libxen-dev \ - libxml2-dev \ - libxml2-utils \ - libyajl-dev \ - locales \ - lvm2 \ - make \ - nfs-common \ - ninja-build \ - numad \ - open-iscsi \ - perl-base \ - pkgconf \ - policykit-1 \ - python3 \ - python3-docutils \ - python3-pip \ - python3-pytest \ - python3-setuptools \ - python3-wheel \ - qemu-utils \ - sed \ - systemtap-sdt-dev \ - wireshark-dev \ - xsltproc && \ - eatmydata apt-get autoremove -y && \ - eatmydata apt-get autoclean -y && \ - sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ - dpkg-reconfigure locales && \ - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ - dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ - mkdir -p /usr/libexec/ccache-wrappers && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - -RUN /usr/bin/pip3 install meson==0.56.0 - -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index e17d83710c..ffad94aea5 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -191,20 +191,6 @@ x86_64-opensuse-tumbleweed: TARGET_BASE_IMAGE: registry.opensuse.org/opensuse/tumbleweed:latest -x86_64-ubuntu-2004: - extends: .native_build_job - needs: - - job: x86_64-ubuntu-2004-container - optional: true - allow_failure: false - variables: - ASAN_OPTIONS: verify_asan_link_order=0 - MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined - NAME: ubuntu-2004 - TARGET_BASE_IMAGE: docker.io/library/ubuntu:20.04 - UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1 - - x86_64-ubuntu-2204: extends: .native_build_job needs: @@ -446,7 +432,7 @@ aarch64-debian-sid: needs: - job: aarch64-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: aarch64 JOB_OPTIONAL: 1 @@ -459,7 +445,7 @@ armv6l-debian-sid: needs: - job: armv6l-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: armv6l JOB_OPTIONAL: 1 @@ -472,7 +458,7 @@ armv7l-debian-sid: needs: - job: armv7l-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: armv7l JOB_OPTIONAL: 1 @@ -485,7 +471,7 @@ i686-debian-sid: needs: - job: i686-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: i686 JOB_OPTIONAL: 1 @@ -498,7 +484,7 @@ mips64el-debian-sid: needs: - job: mips64el-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: mips64el JOB_OPTIONAL: 1 @@ -511,7 +497,7 @@ ppc64le-debian-sid: needs: - job: ppc64le-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: ppc64le JOB_OPTIONAL: 1 @@ -524,7 +510,7 @@ s390x-debian-sid: needs: - job: s390x-debian-sid-container optional: true - allow_failure: false + allow_failure: true variables: CROSS: s390x JOB_OPTIONAL: 1 diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index 04516d8f55..75104d2486 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -85,13 +85,6 @@ x86_64-opensuse-tumbleweed-container: NAME: opensuse-tumbleweed -x86_64-ubuntu-2004-container: - extends: .container_job - allow_failure: false - variables: - NAME: ubuntu-2004 - - x86_64-ubuntu-2204-container: extends: .container_job allow_failure: false @@ -231,7 +224,7 @@ s390x-debian-12-container: aarch64-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-aarch64 @@ -239,7 +232,7 @@ aarch64-debian-sid-container: armv6l-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-armv6l @@ -247,7 +240,7 @@ armv6l-debian-sid-container: armv7l-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-armv7l @@ -255,7 +248,7 @@ armv7l-debian-sid-container: i686-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-i686 @@ -263,7 +256,7 @@ i686-debian-sid-container: mips64el-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-mips64el @@ -271,7 +264,7 @@ mips64el-debian-sid-container: ppc64le-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-ppc64le @@ -279,7 +272,7 @@ ppc64le-debian-sid-container: s390x-debian-sid-container: extends: .container_job - allow_failure: false + allow_failure: true variables: JOB_OPTIONAL: 1 NAME: debian-sid-cross-s390x diff --git a/ci/manifest.yml b/ci/manifest.yml index d54276a25d..d51b7f7be1 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -204,14 +204,6 @@ targets: PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig - ubuntu-2004: - jobs: - - arch: x86_64 - variables: - ASAN_OPTIONS: verify_asan_link_order=0 - MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined - UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1 - ubuntu-2204: jobs: - arch: x86_64 -- 2.43.2

On Mon, May 06, 2024 at 10:43:05AM +0200, Michal Privoznik wrote:
It's now more than two years since Ubuntu 22.04 was released and per our support policy, Ubuntu 20.04 (the previous major release) is now not supported. Remove it from our CI testing.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/ubuntu-2004.sh | 103 -------------------------- ci/containers/ubuntu-2004.Dockerfile | 107 --------------------------- ci/gitlab/builds.yml | 28 ++----- ci/gitlab/containers.yml | 21 ++---- ci/manifest.yml | 8 -- 5 files changed, 14 insertions(+), 253 deletions(-) delete mode 100644 ci/buildenv/ubuntu-2004.sh delete mode 100644 ci/containers/ubuntu-2004.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> FYI, I'd really *not* splitting out the removal and addition into separate jobs. If you remove 20.04 and add 24.04 in the same commit, then git shows the rename and we get a tiny diff so we can see the interesting changes. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 5/7/24 12:11, Daniel P. Berrangé wrote:
On Mon, May 06, 2024 at 10:43:05AM +0200, Michal Privoznik wrote:
It's now more than two years since Ubuntu 22.04 was released and per our support policy, Ubuntu 20.04 (the previous major release) is now not supported. Remove it from our CI testing.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/ubuntu-2004.sh | 103 -------------------------- ci/containers/ubuntu-2004.Dockerfile | 107 --------------------------- ci/gitlab/builds.yml | 28 ++----- ci/gitlab/containers.yml | 21 ++---- ci/manifest.yml | 8 -- 5 files changed, 14 insertions(+), 253 deletions(-) delete mode 100644 ci/buildenv/ubuntu-2004.sh delete mode 100644 ci/containers/ubuntu-2004.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
FYI, I'd really *not* splitting out the removal and addition into separate jobs. If you remove 20.04 and add 24.04 in the same commit, then git shows the rename and we get a tiny diff so we can see the interesting changes.
Yeah, and that's how I've started. But then I realized I needed to bump glib version and Ubuntu 20.04 doesn't have it, but without the bump Ubuntu 24.04 build fails. But maybe Fedora and AlmaLinux can be done this way. Michal

On Tue, May 07, 2024 at 02:37:05PM +0200, Michal Prívozník wrote:
On 5/7/24 12:11, Daniel P. Berrangé wrote:
On Mon, May 06, 2024 at 10:43:05AM +0200, Michal Privoznik wrote:
It's now more than two years since Ubuntu 22.04 was released and per our support policy, Ubuntu 20.04 (the previous major release) is now not supported. Remove it from our CI testing.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/ubuntu-2004.sh | 103 -------------------------- ci/containers/ubuntu-2004.Dockerfile | 107 --------------------------- ci/gitlab/builds.yml | 28 ++----- ci/gitlab/containers.yml | 21 ++---- ci/manifest.yml | 8 -- 5 files changed, 14 insertions(+), 253 deletions(-) delete mode 100644 ci/buildenv/ubuntu-2004.sh delete mode 100644 ci/containers/ubuntu-2004.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
FYI, I'd really *not* splitting out the removal and addition into separate jobs. If you remove 20.04 and add 24.04 in the same commit, then git shows the rename and we get a tiny diff so we can see the interesting changes.
Yeah, and that's how I've started. But then I realized I needed to bump glib version and Ubuntu 20.04 doesn't have it, but without the bump Ubuntu 24.04 build fails. But maybe Fedora and AlmaLinux can be done this way.
I'd suggest just temporarily disabling -Werror warnings, or disabling UBSAN. That way you can * squash the forthcoming warning * update all the distros new/old in one go * update glib & re-enable the warning With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Tue, May 07, 2024 at 01:58:07PM GMT, Daniel P. Berrangé wrote:
On Tue, May 07, 2024 at 02:37:05PM +0200, Michal Prívozník wrote:
On 5/7/24 12:11, Daniel P. Berrangé wrote:
FYI, I'd really *not* splitting out the removal and addition into separate jobs. If you remove 20.04 and add 24.04 in the same commit, then git shows the rename and we get a tiny diff so we can see the interesting changes.
Yeah, and that's how I've started. But then I realized I needed to bump glib version and Ubuntu 20.04 doesn't have it, but without the bump Ubuntu 24.04 build fails. But maybe Fedora and AlmaLinux can be done this way.
I'd suggest just temporarily disabling -Werror warnings, or disabling UBSAN. That way you can
* squash the forthcoming warning * update all the distros new/old in one go * update glib & re-enable the warning
Is this dance really necessary? We obviously care about bisectability of the code itself, but IMO it's fine if the CI pipeline stops making sense for a bit in the middle of a series, as long as things are once again working by the end of it. -- Andrea Bolognani / Red Hat / Virtualization

On 5/7/24 18:40, Andrea Bolognani wrote:
On Tue, May 07, 2024 at 01:58:07PM GMT, Daniel P. Berrangé wrote:
On Tue, May 07, 2024 at 02:37:05PM +0200, Michal Prívozník wrote:
On 5/7/24 12:11, Daniel P. Berrangé wrote:
FYI, I'd really *not* splitting out the removal and addition into separate jobs. If you remove 20.04 and add 24.04 in the same commit, then git shows the rename and we get a tiny diff so we can see the interesting changes.
Yeah, and that's how I've started. But then I realized I needed to bump glib version and Ubuntu 20.04 doesn't have it, but without the bump Ubuntu 24.04 build fails. But maybe Fedora and AlmaLinux can be done this way.
I'd suggest just temporarily disabling -Werror warnings, or disabling UBSAN. That way you can
* squash the forthcoming warning * update all the distros new/old in one go * update glib & re-enable the warning
Is this dance really necessary? We obviously care about bisectability of the code itself, but IMO it's fine if the CI pipeline stops making sense for a bit in the middle of a series, as long as things are once again working by the end of it.
Well, I've picked the best of both worlds in my v2: patches that could be squashed together are, and that left me with just ubuntu where I needed to update glib in between. But now that I think about it more, maybe I could just have one patch where Ubuntu 20.04 is replaced with 24.04 WITHOUT ASAN/UBSAN; then bump glib version and finally enable ASAN/UBSAN on Ubuntu 24.04; Well, I should have thought of that couple of hours ago, before I sent v2. Michal

By the time of release, it's going to be more than two years since AlmaLinux 9 was released and per our support policy, AlmaLinux 8 (the previous major release) will be not supported. Remove it from our CI testing. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/almalinux-8.sh | 103 -------------------------- ci/containers/almalinux-8.Dockerfile | 106 --------------------------- ci/gitlab/builds.yml | 26 ------- ci/gitlab/containers.yml | 7 -- ci/manifest.yml | 13 ---- 5 files changed, 255 deletions(-) delete mode 100644 ci/buildenv/almalinux-8.sh delete mode 100644 ci/containers/almalinux-8.Dockerfile diff --git a/ci/buildenv/almalinux-8.sh b/ci/buildenv/almalinux-8.sh deleted file mode 100644 index a962576414..0000000000 --- a/ci/buildenv/almalinux-8.sh +++ /dev/null @@ -1,103 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -function install_buildenv() { - dnf update -y - dnf install 'dnf-command(config-manager)' -y - dnf config-manager --set-enabled -y powertools - dnf install -y centos-release-advanced-virtualization - dnf install -y epel-release - dnf install -y \ - audit-libs-devel \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - clang \ - cpp \ - cyrus-sasl-devel \ - device-mapper-devel \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - fuse-devel \ - gcc \ - gettext \ - git \ - glib2-devel \ - glibc-devel \ - glibc-langpack-en \ - glusterfs-api-devel \ - gnutls-devel \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libacl-devel \ - libattr-devel \ - libblkid-devel \ - libcap-ng-devel \ - libcurl-devel \ - libiscsi-devel \ - libnbd-devel \ - libnl3-devel \ - libpcap-devel \ - libpciaccess-devel \ - librbd-devel \ - libselinux-devel \ - libssh-devel \ - libssh2-devel \ - libtirpc-devel \ - libwsman-devel \ - libxml2 \ - libxml2-devel \ - libxslt \ - lvm2 \ - make \ - meson \ - netcf-devel \ - nfs-utils \ - ninja-build \ - numactl-devel \ - numad \ - parted-devel \ - perl \ - pkgconfig \ - polkit \ - python3 \ - python3-docutils \ - python3-flake8 \ - python3-pip \ - python3-pytest \ - python3-setuptools \ - python3-wheel \ - qemu-img \ - readline-devel \ - rpm-build \ - sanlock-devel \ - sed \ - systemd-devel \ - systemd-rpm-macros \ - systemtap-sdt-devel \ - wireshark-devel \ - yajl-devel - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED - rpm -qa | sort > /packages.txt - mkdir -p /usr/libexec/ccache-wrappers - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - /usr/bin/pip3 install black -} - -export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" -export LANG="en_US.UTF-8" -export MAKE="/usr/bin/make" -export NINJA="/usr/bin/ninja" -export PYTHON="/usr/bin/python3" diff --git a/ci/containers/almalinux-8.Dockerfile b/ci/containers/almalinux-8.Dockerfile deleted file mode 100644 index af8a7b24d4..0000000000 --- a/ci/containers/almalinux-8.Dockerfile +++ /dev/null @@ -1,106 +0,0 @@ -# THIS FILE WAS AUTO-GENERATED -# -# $ lcitool manifest ci/manifest.yml -# -# https://gitlab.com/libvirt/libvirt-ci - -FROM docker.io/library/almalinux:8 - -RUN dnf update -y && \ - dnf install 'dnf-command(config-manager)' -y && \ - dnf config-manager --set-enabled -y powertools && \ - dnf install -y centos-release-advanced-virtualization && \ - dnf install -y epel-release && \ - dnf install -y \ - audit-libs-devel \ - augeas \ - bash-completion \ - ca-certificates \ - ccache \ - clang \ - cpp \ - cyrus-sasl-devel \ - device-mapper-devel \ - diffutils \ - dwarves \ - ebtables \ - firewalld-filesystem \ - fuse-devel \ - gcc \ - gettext \ - git \ - glib2-devel \ - glibc-devel \ - glibc-langpack-en \ - glusterfs-api-devel \ - gnutls-devel \ - grep \ - iproute \ - iproute-tc \ - iptables \ - iscsi-initiator-utils \ - kmod \ - libacl-devel \ - libattr-devel \ - libblkid-devel \ - libcap-ng-devel \ - libcurl-devel \ - libiscsi-devel \ - libnbd-devel \ - libnl3-devel \ - libpcap-devel \ - libpciaccess-devel \ - librbd-devel \ - libselinux-devel \ - libssh-devel \ - libssh2-devel \ - libtirpc-devel \ - libwsman-devel \ - libxml2 \ - libxml2-devel \ - libxslt \ - lvm2 \ - make \ - meson \ - netcf-devel \ - nfs-utils \ - ninja-build \ - numactl-devel \ - numad \ - parted-devel \ - perl \ - pkgconfig \ - polkit \ - python3 \ - python3-docutils \ - python3-flake8 \ - python3-pip \ - python3-pytest \ - python3-setuptools \ - python3-wheel \ - qemu-img \ - readline-devel \ - rpm-build \ - sanlock-devel \ - sed \ - systemd-devel \ - systemd-rpm-macros \ - systemtap-sdt-devel \ - wireshark-devel \ - yajl-devel && \ - dnf autoremove -y && \ - dnf clean all -y && \ - rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ - rpm -qa | sort > /packages.txt && \ - mkdir -p /usr/libexec/ccache-wrappers && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ - ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc - -RUN /usr/bin/pip3 install black - -ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -ENV LANG "en_US.UTF-8" -ENV MAKE "/usr/bin/make" -ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index ffad94aea5..8d1a8141da 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -7,32 +7,6 @@ # Native build jobs -x86_64-almalinux-8: - extends: .native_build_job - needs: - - job: x86_64-almalinux-8-container - optional: true - allow_failure: false - variables: - JOB_OPTIONAL: 1 - NAME: almalinux-8 - RPM: skip - TARGET_BASE_IMAGE: docker.io/library/almalinux:8 - - -x86_64-almalinux-8-clang: - extends: .native_build_job - needs: - - job: x86_64-almalinux-8-container - optional: true - allow_failure: false - variables: - CC: clang - NAME: almalinux-8 - RPM: skip - TARGET_BASE_IMAGE: docker.io/library/almalinux:8 - - x86_64-alpine-319: extends: .native_build_job needs: diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index 75104d2486..9c9aeb5d3d 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -7,13 +7,6 @@ # Native container jobs -x86_64-almalinux-8-container: - extends: .container_job - allow_failure: false - variables: - NAME: almalinux-8 - - x86_64-alpine-319-container: extends: .container_job allow_failure: false diff --git a/ci/manifest.yml b/ci/manifest.yml index d51b7f7be1..03d03633ec 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -6,19 +6,6 @@ gitlab: project: libvirt targets: - almalinux-8: - jobs: - - arch: x86_64 - builds: false - variables: - RPM: skip - - - arch: x86_64 - suffix: -clang - variables: - RPM: skip - CC: clang - alpine-319: x86_64 alpine-edge: -- 2.43.2

On Mon, May 06, 2024 at 10:43:06AM +0200, Michal Privoznik wrote:
By the time of release, it's going to be more than two years since AlmaLinux 9 was released and per our support policy, AlmaLinux 8 (the previous major release) will be not supported. Remove it from our CI testing.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/almalinux-8.sh | 103 -------------------------- ci/containers/almalinux-8.Dockerfile | 106 --------------------------- ci/gitlab/builds.yml | 26 ------- ci/gitlab/containers.yml | 7 -- ci/manifest.yml | 13 ---- 5 files changed, 255 deletions(-) delete mode 100644 ci/buildenv/almalinux-8.sh delete mode 100644 ci/containers/almalinux-8.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Now that we don't have any distro stuck with glib-2.56.0, we can bump the glib version. In fact, this is needed, because of g_clear_pointer. Since v7.4.0-rc1~301 we declare at compile time what version of glib APIs we want to use (by setting GLIB_VERSION_MIN_REQUIRED = GLIB_VERSION_MAX_ALLOWED = 2.56.0), regardless of actual glib version in the host. And since we currently require glib-2.56.0 and force glib to use APIs of that version, some newer bits are slipping from us. For instance: regular function version of g_clear_pointer() is used instead of a fancy macro. So what? Well, g_clear_pointer() function typecasts passed free function to void (*)(void *) and then calls it. Well, this triggers UBSAN, understandably. But with glib-2.58.0 the g_clear_pointer() becomes a macro which calls the free function directly, with no typecasting and thus no undefined behavior. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- meson.build | 2 +- src/libvirt_private.syms | 1 - src/util/glibcompat.c | 125 --------------------------------------- src/util/glibcompat.h | 10 ---- 4 files changed, 1 insertion(+), 137 deletions(-) diff --git a/meson.build b/meson.build index cb374ab118..583383b0d3 100644 --- a/meson.build +++ b/meson.build @@ -978,7 +978,7 @@ else endif endif -glib_version = '2.56.0' +glib_version = '2.58.0' glib_dep = dependency('glib-2.0', version: '>=' + glib_version) gobject_dep = dependency('gobject-2.0', version: '>=' + glib_version) if host_machine.system() == 'windows' diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 3186dd6d23..214df35e87 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1848,7 +1848,6 @@ virStorageSourceUpdatePhysicalSize; # util/glibcompat.h -vir_g_canonicalize_filename; vir_g_fsync; vir_g_source_unref; vir_g_strdup_printf; diff --git a/src/util/glibcompat.c b/src/util/glibcompat.c index fdc32af5e2..d8912b323b 100644 --- a/src/util/glibcompat.c +++ b/src/util/glibcompat.c @@ -63,136 +63,11 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#undef g_canonicalize_filename -#undef g_hash_table_steal_extended #undef g_fsync #undef g_strdup_printf #undef g_strdup_vprintf -gchar * -vir_g_canonicalize_filename(const gchar *filename, - const gchar *relative_to) -{ -#if GLIB_CHECK_VERSION(2, 58, 0) - return g_canonicalize_filename(filename, relative_to); -#else /* ! GLIB_CHECK_VERSION(2, 58, 0) */ - gchar *canon, *start, *p, *q; - guint i; - - g_return_val_if_fail(relative_to == NULL || g_path_is_absolute(relative_to), NULL); - - if (!g_path_is_absolute(filename)) { - gchar *cwd_allocated = NULL; - const gchar *cwd; - - if (relative_to != NULL) - cwd = relative_to; - else - cwd = cwd_allocated = g_get_current_dir(); - - canon = g_build_filename(cwd, filename, NULL); - g_free(cwd_allocated); - } else { - canon = g_strdup(filename); - } - - start = (char *)g_path_skip_root(canon); - - if (start == NULL) { - /* This shouldn't really happen, as g_get_current_dir() should - return an absolute pathname, but bug 573843 shows this is - not always happening */ - g_free(canon); - return g_build_filename(G_DIR_SEPARATOR_S, filename, NULL); - } - - /* POSIX allows double slashes at the start to - * mean something special (as does windows too). - * So, "//" != "/", but more than two slashes - * is treated as "/". - */ - i = 0; - for (p = start - 1; - (p >= canon) && - G_IS_DIR_SEPARATOR(*p); - p--) - i++; - if (i > 2) { - i -= 1; - start -= i; - memmove(start, start+i, strlen(start+i) + 1); - } - - /* Make sure we're using the canonical dir separator */ - p++; - while (p < start && G_IS_DIR_SEPARATOR(*p)) - *p++ = G_DIR_SEPARATOR; - - p = start; - while (*p != 0) { - if (p[0] == '.' && (p[1] == 0 || G_IS_DIR_SEPARATOR(p[1]))) { - memmove(p, p+1, strlen(p+1)+1); - } else if (p[0] == '.' && p[1] == '.' && - (p[2] == 0 || G_IS_DIR_SEPARATOR(p[2]))) { - q = p + 2; - /* Skip previous separator */ - p = p - 2; - if (p < start) - p = start; - while (p > start && !G_IS_DIR_SEPARATOR(*p)) - p--; - if (G_IS_DIR_SEPARATOR(*p)) - *p++ = G_DIR_SEPARATOR; - memmove(p, q, strlen(q)+1); - } else { - /* Skip until next separator */ - while (*p != 0 && !G_IS_DIR_SEPARATOR(*p)) - p++; - - if (*p != 0) { - /* Canonicalize one separator */ - *p++ = G_DIR_SEPARATOR; - } - } - - /* Remove additional separators */ - q = p; - while (*q && G_IS_DIR_SEPARATOR(*q)) - q++; - - if (p != q) - memmove(p, q, strlen(q) + 1); - } - - /* Remove trailing slashes */ - if (p > start && G_IS_DIR_SEPARATOR(*(p-1))) - *(p-1) = 0; - - return canon; -#endif /* ! GLIB_CHECK_VERSION(2, 58, 0) */ -} - - -gboolean -vir_g_hash_table_steal_extended(GHashTable *hash_table, - gconstpointer lookup_key, - gpointer *stolen_key, - gpointer *stolen_value) -{ -#if GLIB_CHECK_VERSION(2, 58, 0) - return g_hash_table_steal_extended(hash_table, lookup_key, stolen_key, stolen_value); -#else /* ! GLIB_CHECK_VERSION(2, 58, 0) */ - if (!(g_hash_table_lookup_extended(hash_table, lookup_key, stolen_key, stolen_value))) - return FALSE; - - g_hash_table_steal(hash_table, lookup_key); - - return TRUE; -#endif /* ! GLIB_CHECK_VERSION(2, 58, 0) */ -} - - /* Drop when min glib >= 2.63.0 */ gint vir_g_fsync(gint fd) diff --git a/src/util/glibcompat.h b/src/util/glibcompat.h index 178fea3cf3..2542b4d5dc 100644 --- a/src/util/glibcompat.h +++ b/src/util/glibcompat.h @@ -68,15 +68,6 @@ #endif /* GLib < 2.67.0 */ -gchar * vir_g_canonicalize_filename(const gchar *filename, - const gchar *relative_to); - -gboolean -vir_g_hash_table_steal_extended(GHashTable *hash_table, - gconstpointer lookup_key, - gpointer *stolen_key, - gpointer *stolen_value); -#define g_hash_table_steal_extended vir_g_hash_table_steal_extended gint vir_g_fsync(gint fd); char *vir_g_strdup_printf(const char *msg, ...) @@ -89,7 +80,6 @@ char *vir_g_strdup_vprintf(const char *msg, va_list args) # define g_strdup_vprintf vir_g_strdup_vprintf #endif -#define g_canonicalize_filename vir_g_canonicalize_filename #undef g_fsync #define g_fsync vir_g_fsync -- 2.43.2

On Mon, May 06, 2024 at 10:43:07AM +0200, Michal Privoznik wrote:
Now that we don't have any distro stuck with glib-2.56.0, we can bump the glib version. In fact, this is needed, because of g_clear_pointer. Since v7.4.0-rc1~301 we declare at compile time what version of glib APIs we want to use (by setting GLIB_VERSION_MIN_REQUIRED = GLIB_VERSION_MAX_ALLOWED = 2.56.0), regardless of actual glib version in the host.
And since we currently require glib-2.56.0 and force glib to use APIs of that version, some newer bits are slipping from us. For instance: regular function version of g_clear_pointer() is used instead of a fancy macro. So what? Well, g_clear_pointer() function typecasts passed free function to void (*)(void *) and then calls it. Well, this triggers UBSAN, understandably. But with glib-2.58.0 the g_clear_pointer() becomes a macro which calls the free function directly, with no typecasting and thus no undefined behavior.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- meson.build | 2 +- src/libvirt_private.syms | 1 - src/util/glibcompat.c | 125 --------------------------------------- src/util/glibcompat.h | 10 ---- 4 files changed, 1 insertion(+), 137 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Fedora 40 was released recently. Add it to our CI. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/fedora-40-cross-mingw32.sh | 77 ++++++++++++ ci/buildenv/fedora-40-cross-mingw64.sh | 77 ++++++++++++ ci/buildenv/fedora-40.sh | 98 ++++++++++++++++ .../fedora-40-cross-mingw32.Dockerfile | 91 +++++++++++++++ .../fedora-40-cross-mingw64.Dockerfile | 91 +++++++++++++++ ci/containers/fedora-40.Dockerfile | 110 ++++++++++++++++++ ci/gitlab/builds.yml | 40 +++++++ ci/gitlab/containers.yml | 22 ++++ ci/manifest.yml | 13 +++ 9 files changed, 619 insertions(+) create mode 100644 ci/buildenv/fedora-40-cross-mingw32.sh create mode 100644 ci/buildenv/fedora-40-cross-mingw64.sh create mode 100644 ci/buildenv/fedora-40.sh create mode 100644 ci/containers/fedora-40-cross-mingw32.Dockerfile create mode 100644 ci/containers/fedora-40-cross-mingw64.Dockerfile create mode 100644 ci/containers/fedora-40.Dockerfile diff --git a/ci/buildenv/fedora-40-cross-mingw32.sh b/ci/buildenv/fedora-40-cross-mingw32.sh new file mode 100644 index 0000000000..f349d1f60d --- /dev/null +++ b/ci/buildenv/fedora-40-cross-mingw32.sh @@ -0,0 +1,77 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + dnf update -y + dnf install -y \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + codespell \ + cpp \ + cppi \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + gettext \ + git \ + glibc-langpack-en \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libnbd-devel \ + libxml2 \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numad \ + perl-base \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + rpm-build \ + sed \ + systemd-rpm-macros + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + dnf install -y \ + mingw32-curl \ + mingw32-dlfcn \ + mingw32-gcc \ + mingw32-gettext \ + mingw32-glib2 \ + mingw32-gnutls \ + mingw32-headers \ + mingw32-libssh2 \ + mingw32-libxml2 \ + mingw32-pkg-config \ + mingw32-portablexdr \ + mingw32-readline + rpm -qa | sort > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" +export NINJA="/usr/bin/ninja" +export PYTHON="/usr/bin/python3" + +export ABI="i686-w64-mingw32" +export MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw32.meson" diff --git a/ci/buildenv/fedora-40-cross-mingw64.sh b/ci/buildenv/fedora-40-cross-mingw64.sh new file mode 100644 index 0000000000..fd20ff812b --- /dev/null +++ b/ci/buildenv/fedora-40-cross-mingw64.sh @@ -0,0 +1,77 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + dnf update -y + dnf install -y \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + codespell \ + cpp \ + cppi \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + gettext \ + git \ + glibc-langpack-en \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libnbd-devel \ + libxml2 \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numad \ + perl-base \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + rpm-build \ + sed \ + systemd-rpm-macros + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + dnf install -y \ + mingw64-curl \ + mingw64-dlfcn \ + mingw64-gcc \ + mingw64-gettext \ + mingw64-glib2 \ + mingw64-gnutls \ + mingw64-headers \ + mingw64-libssh2 \ + mingw64-libxml2 \ + mingw64-pkg-config \ + mingw64-portablexdr \ + mingw64-readline + rpm -qa | sort > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" +export NINJA="/usr/bin/ninja" +export PYTHON="/usr/bin/python3" + +export ABI="x86_64-w64-mingw32" +export MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson" diff --git a/ci/buildenv/fedora-40.sh b/ci/buildenv/fedora-40.sh new file mode 100644 index 0000000000..0cce268050 --- /dev/null +++ b/ci/buildenv/fedora-40.sh @@ -0,0 +1,98 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + dnf update -y + dnf install -y \ + audit-libs-devel \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + codespell \ + cpp \ + cppi \ + cyrus-sasl-devel \ + device-mapper-devel \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + fuse-devel \ + gcc \ + gettext \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + glusterfs-api-devel \ + gnutls-devel \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libiscsi-devel \ + libnbd-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numactl-devel \ + numad \ + parted-devel \ + perl-base \ + pkgconfig \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + readline-devel \ + rpm-build \ + sanlock-devel \ + sed \ + systemd-devel \ + systemd-rpm-macros \ + systemtap-sdt-devel \ + wireshark-devel \ + xen-devel \ + yajl-devel + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + rpm -qa | sort > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" +export NINJA="/usr/bin/ninja" +export PYTHON="/usr/bin/python3" diff --git a/ci/containers/fedora-40-cross-mingw32.Dockerfile b/ci/containers/fedora-40-cross-mingw32.Dockerfile new file mode 100644 index 0000000000..9721481171 --- /dev/null +++ b/ci/containers/fedora-40-cross-mingw32.Dockerfile @@ -0,0 +1,91 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM registry.fedoraproject.org/fedora:40 + +RUN dnf install -y nosync && \ + printf '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"\n' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + codespell \ + cpp \ + cppi \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + gettext \ + git \ + glibc-langpack-en \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libnbd-devel \ + libxml2 \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numad \ + perl-base \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + rpm-build \ + sed \ + systemd-rpm-macros && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +RUN nosync dnf install -y \ + mingw32-curl \ + mingw32-dlfcn \ + mingw32-gcc \ + mingw32-gettext \ + mingw32-glib2 \ + mingw32-gnutls \ + mingw32-headers \ + mingw32-libssh2 \ + mingw32-libxml2 \ + mingw32-pkg-config \ + mingw32-portablexdr \ + mingw32-readline && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-gcc + +ENV ABI "i686-w64-mingw32" +ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw32.meson" diff --git a/ci/containers/fedora-40-cross-mingw64.Dockerfile b/ci/containers/fedora-40-cross-mingw64.Dockerfile new file mode 100644 index 0000000000..f25012abb6 --- /dev/null +++ b/ci/containers/fedora-40-cross-mingw64.Dockerfile @@ -0,0 +1,91 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM registry.fedoraproject.org/fedora:40 + +RUN dnf install -y nosync && \ + printf '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"\n' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + codespell \ + cpp \ + cppi \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + gettext \ + git \ + glibc-langpack-en \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libnbd-devel \ + libxml2 \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numad \ + perl-base \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + rpm-build \ + sed \ + systemd-rpm-macros && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" + +RUN nosync dnf install -y \ + mingw64-curl \ + mingw64-dlfcn \ + mingw64-gcc \ + mingw64-gettext \ + mingw64-glib2 \ + mingw64-gnutls \ + mingw64-headers \ + mingw64-libssh2 \ + mingw64-libxml2 \ + mingw64-pkg-config \ + mingw64-portablexdr \ + mingw64-readline && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc + +ENV ABI "x86_64-w64-mingw32" +ENV MESON_OPTS "--cross-file=/usr/share/mingw/toolchain-mingw64.meson" diff --git a/ci/containers/fedora-40.Dockerfile b/ci/containers/fedora-40.Dockerfile new file mode 100644 index 0000000000..32a9cdae12 --- /dev/null +++ b/ci/containers/fedora-40.Dockerfile @@ -0,0 +1,110 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM registry.fedoraproject.org/fedora:40 + +RUN dnf install -y nosync && \ + printf '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"\n' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + audit-libs-devel \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + codespell \ + cpp \ + cppi \ + cyrus-sasl-devel \ + device-mapper-devel \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + fuse-devel \ + gcc \ + gettext \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + glusterfs-api-devel \ + gnutls-devel \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libiscsi-devel \ + libnbd-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numactl-devel \ + numad \ + parted-devel \ + perl-base \ + pkgconfig \ + polkit \ + python3 \ + python3-black \ + python3-docutils \ + python3-flake8 \ + python3-pytest \ + qemu-img \ + readline-devel \ + rpm-build \ + sanlock-devel \ + sed \ + systemd-devel \ + systemd-rpm-macros \ + systemtap-sdt-devel \ + wireshark-devel \ + xen-devel \ + yajl-devel && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index 8d1a8141da..50ae89be77 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -116,6 +116,21 @@ x86_64-fedora-39: - libvirt-rpms +x86_64-fedora-40: + extends: .native_build_job + needs: + - job: x86_64-fedora-40-container + optional: true + allow_failure: false + variables: + NAME: fedora-40 + TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:40 + artifacts: + expire_in: 1 day + paths: + - libvirt-rpms + + x86_64-fedora-rawhide: extends: .native_build_job needs: @@ -492,6 +507,31 @@ s390x-debian-sid: TARGET_BASE_IMAGE: docker.io/library/debian:sid-slim +mingw32-fedora-40: + extends: .cross_build_job + needs: + - job: mingw32-fedora-40-container + optional: true + allow_failure: false + variables: + CROSS: mingw32 + JOB_OPTIONAL: 1 + NAME: fedora-40 + TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:40 + + +mingw64-fedora-40: + extends: .cross_build_job + needs: + - job: mingw64-fedora-40-container + optional: true + allow_failure: false + variables: + CROSS: mingw64 + NAME: fedora-40 + TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:40 + + mingw32-fedora-rawhide: extends: .cross_build_job needs: diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index 9c9aeb5d3d..7dc875fedb 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -57,6 +57,13 @@ x86_64-fedora-39-container: NAME: fedora-39 +x86_64-fedora-40-container: + extends: .container_job + allow_failure: false + variables: + NAME: fedora-40 + + x86_64-fedora-rawhide-container: extends: .container_job allow_failure: true @@ -271,6 +278,21 @@ s390x-debian-sid-container: NAME: debian-sid-cross-s390x +mingw32-fedora-40-container: + extends: .container_job + allow_failure: false + variables: + JOB_OPTIONAL: 1 + NAME: fedora-40-cross-mingw32 + + +mingw64-fedora-40-container: + extends: .container_job + allow_failure: false + variables: + NAME: fedora-40-cross-mingw64 + + mingw32-fedora-rawhide-container: extends: .container_job allow_failure: true diff --git a/ci/manifest.yml b/ci/manifest.yml index 03d03633ec..5f15e4ee9f 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -139,6 +139,19 @@ targets: paths: - libvirt-rpms + fedora-40: + jobs: + - arch: x86_64 + artifacts: + expire_in: 1 day + paths: + - libvirt-rpms + + - arch: mingw32 + builds: false + + - arch: mingw64 + fedora-rawhide: jobs: - arch: x86_64 -- 2.43.2

On Mon, May 06, 2024 at 10:43:08AM +0200, Michal Privoznik wrote:
Fedora 40 was released recently. Add it to our CI.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/fedora-40-cross-mingw32.sh | 77 ++++++++++++ ci/buildenv/fedora-40-cross-mingw64.sh | 77 ++++++++++++ ci/buildenv/fedora-40.sh | 98 ++++++++++++++++ .../fedora-40-cross-mingw32.Dockerfile | 91 +++++++++++++++ .../fedora-40-cross-mingw64.Dockerfile | 91 +++++++++++++++ ci/containers/fedora-40.Dockerfile | 110 ++++++++++++++++++ ci/gitlab/builds.yml | 40 +++++++ ci/gitlab/containers.yml | 22 ++++ ci/manifest.yml | 13 +++ 9 files changed, 619 insertions(+) create mode 100644 ci/buildenv/fedora-40-cross-mingw32.sh create mode 100644 ci/buildenv/fedora-40-cross-mingw64.sh create mode 100644 ci/buildenv/fedora-40.sh create mode 100644 ci/containers/fedora-40-cross-mingw32.Dockerfile create mode 100644 ci/containers/fedora-40-cross-mingw64.Dockerfile create mode 100644 ci/containers/fedora-40.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Ubuntu 24.04 was released recently. Add it to our CI. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/centos-stream-9.sh | 1 + ci/buildenv/debian-12-cross-aarch64.sh | 1 + ci/buildenv/debian-12-cross-armv6l.sh | 1 + ci/buildenv/debian-12-cross-armv7l.sh | 1 + ci/buildenv/debian-12-cross-i686.sh | 1 + ci/buildenv/debian-12-cross-mips64el.sh | 1 + ci/buildenv/debian-12-cross-mipsel.sh | 1 + ci/buildenv/debian-12-cross-ppc64le.sh | 1 + ci/buildenv/debian-12-cross-s390x.sh | 1 + ci/buildenv/debian-12.sh | 1 + ci/buildenv/debian-sid-cross-aarch64.sh | 1 + ci/buildenv/debian-sid-cross-armv6l.sh | 1 + ci/buildenv/debian-sid-cross-armv7l.sh | 1 + ci/buildenv/debian-sid-cross-i686.sh | 1 + ci/buildenv/debian-sid-cross-mips64el.sh | 1 + ci/buildenv/debian-sid-cross-ppc64le.sh | 1 + ci/buildenv/debian-sid-cross-s390x.sh | 1 + ci/buildenv/debian-sid.sh | 1 + ci/buildenv/fedora-39.sh | 1 + ci/buildenv/fedora-40-cross-mingw32.sh | 1 + ci/buildenv/fedora-40-cross-mingw64.sh | 1 + ci/buildenv/fedora-40.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw32.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw64.sh | 1 + ci/buildenv/fedora-rawhide.sh | 1 + ci/buildenv/ubuntu-2404.sh | 101 +++++++++++++++++ ci/containers/centos-stream-9.Dockerfile | 1 + .../debian-12-cross-aarch64.Dockerfile | 1 + .../debian-12-cross-armv6l.Dockerfile | 1 + .../debian-12-cross-armv7l.Dockerfile | 1 + ci/containers/debian-12-cross-i686.Dockerfile | 1 + .../debian-12-cross-mips64el.Dockerfile | 1 + .../debian-12-cross-mipsel.Dockerfile | 1 + .../debian-12-cross-ppc64le.Dockerfile | 1 + .../debian-12-cross-s390x.Dockerfile | 1 + ci/containers/debian-12.Dockerfile | 1 + .../debian-sid-cross-aarch64.Dockerfile | 1 + .../debian-sid-cross-armv6l.Dockerfile | 1 + .../debian-sid-cross-armv7l.Dockerfile | 1 + .../debian-sid-cross-i686.Dockerfile | 1 + .../debian-sid-cross-mips64el.Dockerfile | 1 + .../debian-sid-cross-ppc64le.Dockerfile | 1 + .../debian-sid-cross-s390x.Dockerfile | 1 + ci/containers/debian-sid.Dockerfile | 1 + ci/containers/fedora-39.Dockerfile | 1 + .../fedora-40-cross-mingw32.Dockerfile | 1 + .../fedora-40-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-40.Dockerfile | 1 + .../fedora-rawhide-cross-mingw32.Dockerfile | 1 + .../fedora-rawhide-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-rawhide.Dockerfile | 1 + ci/containers/ubuntu-2404.Dockerfile | 104 ++++++++++++++++++ ci/gitlab/builds.yml | 21 +++- ci/gitlab/containers.yml | 7 ++ ci/lcitool/projects/libvirt.yml | 1 + ci/manifest.yml | 4 + 56 files changed, 283 insertions(+), 5 deletions(-) create mode 100644 ci/buildenv/ubuntu-2404.sh create mode 100644 ci/containers/ubuntu-2404.Dockerfile diff --git a/ci/buildenv/centos-stream-9.sh b/ci/buildenv/centos-stream-9.sh index 8dabda22b3..c23c60e026 100644 --- a/ci/buildenv/centos-stream-9.sh +++ b/ci/buildenv/centos-stream-9.sh @@ -17,6 +17,7 @@ function install_buildenv() { ca-certificates \ ccache \ clang \ + compiler-rt \ cpp \ cyrus-sasl-devel \ device-mapper-devel \ diff --git a/ci/buildenv/debian-12-cross-aarch64.sh b/ci/buildenv/debian-12-cross-aarch64.sh index efe5548097..5fc7e8a801 100644 --- a/ci/buildenv/debian-12-cross-aarch64.sh +++ b/ci/buildenv/debian-12-cross-aarch64.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-armv6l.sh b/ci/buildenv/debian-12-cross-armv6l.sh index 0b3963f020..24d7d80380 100644 --- a/ci/buildenv/debian-12-cross-armv6l.sh +++ b/ci/buildenv/debian-12-cross-armv6l.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-armv7l.sh b/ci/buildenv/debian-12-cross-armv7l.sh index bc489c342a..35738e6bb2 100644 --- a/ci/buildenv/debian-12-cross-armv7l.sh +++ b/ci/buildenv/debian-12-cross-armv7l.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-i686.sh b/ci/buildenv/debian-12-cross-i686.sh index 66bdab1e71..dce90645c0 100644 --- a/ci/buildenv/debian-12-cross-i686.sh +++ b/ci/buildenv/debian-12-cross-i686.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-mips64el.sh b/ci/buildenv/debian-12-cross-mips64el.sh index 58d3822243..6d3e43aeb0 100644 --- a/ci/buildenv/debian-12-cross-mips64el.sh +++ b/ci/buildenv/debian-12-cross-mips64el.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-mipsel.sh b/ci/buildenv/debian-12-cross-mipsel.sh index 908e8ed543..b3a9ba1f40 100644 --- a/ci/buildenv/debian-12-cross-mipsel.sh +++ b/ci/buildenv/debian-12-cross-mipsel.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-ppc64le.sh b/ci/buildenv/debian-12-cross-ppc64le.sh index 171bc840fa..1cda4f7928 100644 --- a/ci/buildenv/debian-12-cross-ppc64le.sh +++ b/ci/buildenv/debian-12-cross-ppc64le.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12-cross-s390x.sh b/ci/buildenv/debian-12-cross-s390x.sh index cecc2ebffa..f0cbfad5a4 100644 --- a/ci/buildenv/debian-12-cross-s390x.sh +++ b/ci/buildenv/debian-12-cross-s390x.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-12.sh b/ci/buildenv/debian-12.sh index 96caa4ea0e..5f19ba7526 100644 --- a/ci/buildenv/debian-12.sh +++ b/ci/buildenv/debian-12.sh @@ -36,6 +36,7 @@ function install_buildenv() { libblkid-dev \ libc6-dev \ libcap-ng-dev \ + libclang-rt-dev \ libcurl4-gnutls-dev \ libdevmapper-dev \ libfuse-dev \ diff --git a/ci/buildenv/debian-sid-cross-aarch64.sh b/ci/buildenv/debian-sid-cross-aarch64.sh index efe5548097..5fc7e8a801 100644 --- a/ci/buildenv/debian-sid-cross-aarch64.sh +++ b/ci/buildenv/debian-sid-cross-aarch64.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-armv6l.sh b/ci/buildenv/debian-sid-cross-armv6l.sh index e5a8249f12..46e374ea88 100644 --- a/ci/buildenv/debian-sid-cross-armv6l.sh +++ b/ci/buildenv/debian-sid-cross-armv6l.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-armv7l.sh b/ci/buildenv/debian-sid-cross-armv7l.sh index 2f6cb045da..c8bb1b9539 100644 --- a/ci/buildenv/debian-sid-cross-armv7l.sh +++ b/ci/buildenv/debian-sid-cross-armv7l.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-i686.sh b/ci/buildenv/debian-sid-cross-i686.sh index a5d553c332..e74b2cee73 100644 --- a/ci/buildenv/debian-sid-cross-i686.sh +++ b/ci/buildenv/debian-sid-cross-i686.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-mips64el.sh b/ci/buildenv/debian-sid-cross-mips64el.sh index 58d3822243..6d3e43aeb0 100644 --- a/ci/buildenv/debian-sid-cross-mips64el.sh +++ b/ci/buildenv/debian-sid-cross-mips64el.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-ppc64le.sh b/ci/buildenv/debian-sid-cross-ppc64le.sh index 171bc840fa..1cda4f7928 100644 --- a/ci/buildenv/debian-sid-cross-ppc64le.sh +++ b/ci/buildenv/debian-sid-cross-ppc64le.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid-cross-s390x.sh b/ci/buildenv/debian-sid-cross-s390x.sh index cecc2ebffa..f0cbfad5a4 100644 --- a/ci/buildenv/debian-sid-cross-s390x.sh +++ b/ci/buildenv/debian-sid-cross-s390x.sh @@ -27,6 +27,7 @@ function install_buildenv() { iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/buildenv/debian-sid.sh b/ci/buildenv/debian-sid.sh index 96caa4ea0e..5f19ba7526 100644 --- a/ci/buildenv/debian-sid.sh +++ b/ci/buildenv/debian-sid.sh @@ -36,6 +36,7 @@ function install_buildenv() { libblkid-dev \ libc6-dev \ libcap-ng-dev \ + libclang-rt-dev \ libcurl4-gnutls-dev \ libdevmapper-dev \ libfuse-dev \ diff --git a/ci/buildenv/fedora-39.sh b/ci/buildenv/fedora-39.sh index 0cce268050..db9d88eff4 100644 --- a/ci/buildenv/fedora-39.sh +++ b/ci/buildenv/fedora-39.sh @@ -14,6 +14,7 @@ function install_buildenv() { ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/buildenv/fedora-40-cross-mingw32.sh b/ci/buildenv/fedora-40-cross-mingw32.sh index f349d1f60d..9104b2e20e 100644 --- a/ci/buildenv/fedora-40-cross-mingw32.sh +++ b/ci/buildenv/fedora-40-cross-mingw32.sh @@ -12,6 +12,7 @@ function install_buildenv() { ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/buildenv/fedora-40-cross-mingw64.sh b/ci/buildenv/fedora-40-cross-mingw64.sh index fd20ff812b..35120064ec 100644 --- a/ci/buildenv/fedora-40-cross-mingw64.sh +++ b/ci/buildenv/fedora-40-cross-mingw64.sh @@ -12,6 +12,7 @@ function install_buildenv() { ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/buildenv/fedora-40.sh b/ci/buildenv/fedora-40.sh index 0cce268050..db9d88eff4 100644 --- a/ci/buildenv/fedora-40.sh +++ b/ci/buildenv/fedora-40.sh @@ -14,6 +14,7 @@ function install_buildenv() { ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/buildenv/fedora-rawhide-cross-mingw32.sh b/ci/buildenv/fedora-rawhide-cross-mingw32.sh index de0f16222e..dadc40dc4e 100644 --- a/ci/buildenv/fedora-rawhide-cross-mingw32.sh +++ b/ci/buildenv/fedora-rawhide-cross-mingw32.sh @@ -13,6 +13,7 @@ function install_buildenv() { ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/buildenv/fedora-rawhide-cross-mingw64.sh b/ci/buildenv/fedora-rawhide-cross-mingw64.sh index 30d2654f0e..c484250272 100644 --- a/ci/buildenv/fedora-rawhide-cross-mingw64.sh +++ b/ci/buildenv/fedora-rawhide-cross-mingw64.sh @@ -13,6 +13,7 @@ function install_buildenv() { ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/buildenv/fedora-rawhide.sh b/ci/buildenv/fedora-rawhide.sh index 399b1bae97..f89a87ad63 100644 --- a/ci/buildenv/fedora-rawhide.sh +++ b/ci/buildenv/fedora-rawhide.sh @@ -15,6 +15,7 @@ function install_buildenv() { ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/buildenv/ubuntu-2404.sh b/ci/buildenv/ubuntu-2404.sh new file mode 100644 index 0000000000..3eacaa6cce --- /dev/null +++ b/ci/buildenv/ubuntu-2404.sh @@ -0,0 +1,101 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + export DEBIAN_FRONTEND=noninteractive + apt-get update + apt-get dist-upgrade -y + apt-get install --no-install-recommends -y \ + augeas-lenses \ + augeas-tools \ + bash-completion \ + black \ + ca-certificates \ + ccache \ + clang \ + codespell \ + cpp \ + diffutils \ + dwarves \ + ebtables \ + flake8 \ + gcc \ + gettext \ + git \ + grep \ + iproute2 \ + iptables \ + kmod \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libblkid-dev \ + libc6-dev \ + libcap-ng-dev \ + libclang-rt-dev \ + libcurl4-gnutls-dev \ + libdevmapper-dev \ + libfuse-dev \ + libglib2.0-dev \ + libglusterfs-dev \ + libgnutls28-dev \ + libiscsi-dev \ + libnbd-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libopenwsman-dev \ + libparted-dev \ + libpcap0.8-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + locales \ + lvm2 \ + make \ + meson \ + nfs-common \ + ninja-build \ + numad \ + open-iscsi \ + perl-base \ + pkgconf \ + policykit-1 \ + python3 \ + python3-docutils \ + python3-pytest \ + qemu-utils \ + sed \ + systemtap-sdt-dev \ + wireshark-dev \ + xsltproc + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen + dpkg-reconfigure locales + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" +export NINJA="/usr/bin/ninja" +export PYTHON="/usr/bin/python3" diff --git a/ci/containers/centos-stream-9.Dockerfile b/ci/containers/centos-stream-9.Dockerfile index 082b18d06f..93549eefad 100644 --- a/ci/containers/centos-stream-9.Dockerfile +++ b/ci/containers/centos-stream-9.Dockerfile @@ -18,6 +18,7 @@ RUN dnf distro-sync -y && \ ca-certificates \ ccache \ clang \ + compiler-rt \ cpp \ cyrus-sasl-devel \ device-mapper-devel \ diff --git a/ci/containers/debian-12-cross-aarch64.Dockerfile b/ci/containers/debian-12-cross-aarch64.Dockerfile index b8b6b47ad6..cc26cc2d11 100644 --- a/ci/containers/debian-12-cross-aarch64.Dockerfile +++ b/ci/containers/debian-12-cross-aarch64.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-armv6l.Dockerfile b/ci/containers/debian-12-cross-armv6l.Dockerfile index e01423cb33..28235d9ba1 100644 --- a/ci/containers/debian-12-cross-armv6l.Dockerfile +++ b/ci/containers/debian-12-cross-armv6l.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-armv7l.Dockerfile b/ci/containers/debian-12-cross-armv7l.Dockerfile index 0ef8a45788..56fbb73ebd 100644 --- a/ci/containers/debian-12-cross-armv7l.Dockerfile +++ b/ci/containers/debian-12-cross-armv7l.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-i686.Dockerfile b/ci/containers/debian-12-cross-i686.Dockerfile index bee9af8f08..4601cd297f 100644 --- a/ci/containers/debian-12-cross-i686.Dockerfile +++ b/ci/containers/debian-12-cross-i686.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-mips64el.Dockerfile b/ci/containers/debian-12-cross-mips64el.Dockerfile index 700c566f07..3d3c0615fa 100644 --- a/ci/containers/debian-12-cross-mips64el.Dockerfile +++ b/ci/containers/debian-12-cross-mips64el.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-mipsel.Dockerfile b/ci/containers/debian-12-cross-mipsel.Dockerfile index 67e032bbc9..a1e1167f56 100644 --- a/ci/containers/debian-12-cross-mipsel.Dockerfile +++ b/ci/containers/debian-12-cross-mipsel.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-ppc64le.Dockerfile b/ci/containers/debian-12-cross-ppc64le.Dockerfile index 5f91e15284..836b1c2ec5 100644 --- a/ci/containers/debian-12-cross-ppc64le.Dockerfile +++ b/ci/containers/debian-12-cross-ppc64le.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12-cross-s390x.Dockerfile b/ci/containers/debian-12-cross-s390x.Dockerfile index 29e76ebb80..000e357b97 100644 --- a/ci/containers/debian-12-cross-s390x.Dockerfile +++ b/ci/containers/debian-12-cross-s390x.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-12.Dockerfile b/ci/containers/debian-12.Dockerfile index 0df1d0190d..bacfd9ada4 100644 --- a/ci/containers/debian-12.Dockerfile +++ b/ci/containers/debian-12.Dockerfile @@ -38,6 +38,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ libblkid-dev \ libc6-dev \ libcap-ng-dev \ + libclang-rt-dev \ libcurl4-gnutls-dev \ libdevmapper-dev \ libfuse-dev \ diff --git a/ci/containers/debian-sid-cross-aarch64.Dockerfile b/ci/containers/debian-sid-cross-aarch64.Dockerfile index 211e35fad0..48335d5221 100644 --- a/ci/containers/debian-sid-cross-aarch64.Dockerfile +++ b/ci/containers/debian-sid-cross-aarch64.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-armv6l.Dockerfile b/ci/containers/debian-sid-cross-armv6l.Dockerfile index 45459bb896..b9cdd95548 100644 --- a/ci/containers/debian-sid-cross-armv6l.Dockerfile +++ b/ci/containers/debian-sid-cross-armv6l.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-armv7l.Dockerfile b/ci/containers/debian-sid-cross-armv7l.Dockerfile index 8c994cdcec..4787aea1cd 100644 --- a/ci/containers/debian-sid-cross-armv7l.Dockerfile +++ b/ci/containers/debian-sid-cross-armv7l.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-i686.Dockerfile b/ci/containers/debian-sid-cross-i686.Dockerfile index 0b2d35188b..66d84474dc 100644 --- a/ci/containers/debian-sid-cross-i686.Dockerfile +++ b/ci/containers/debian-sid-cross-i686.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-mips64el.Dockerfile b/ci/containers/debian-sid-cross-mips64el.Dockerfile index 7b58dfdbf3..4e325bf076 100644 --- a/ci/containers/debian-sid-cross-mips64el.Dockerfile +++ b/ci/containers/debian-sid-cross-mips64el.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-ppc64le.Dockerfile b/ci/containers/debian-sid-cross-ppc64le.Dockerfile index 5d247f80f7..8a53dd73bd 100644 --- a/ci/containers/debian-sid-cross-ppc64le.Dockerfile +++ b/ci/containers/debian-sid-cross-ppc64le.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid-cross-s390x.Dockerfile b/ci/containers/debian-sid-cross-s390x.Dockerfile index c9bbf0dfa2..f9c91d56de 100644 --- a/ci/containers/debian-sid-cross-s390x.Dockerfile +++ b/ci/containers/debian-sid-cross-s390x.Dockerfile @@ -29,6 +29,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ iproute2 \ iptables \ kmod \ + libclang-rt-dev \ libnbd-dev \ libxml2-utils \ locales \ diff --git a/ci/containers/debian-sid.Dockerfile b/ci/containers/debian-sid.Dockerfile index ddc220b45d..0084e418d3 100644 --- a/ci/containers/debian-sid.Dockerfile +++ b/ci/containers/debian-sid.Dockerfile @@ -38,6 +38,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ libblkid-dev \ libc6-dev \ libcap-ng-dev \ + libclang-rt-dev \ libcurl4-gnutls-dev \ libdevmapper-dev \ libfuse-dev \ diff --git a/ci/containers/fedora-39.Dockerfile b/ci/containers/fedora-39.Dockerfile index ec67082a35..91135bf15f 100644 --- a/ci/containers/fedora-39.Dockerfile +++ b/ci/containers/fedora-39.Dockerfile @@ -25,6 +25,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/containers/fedora-40-cross-mingw32.Dockerfile b/ci/containers/fedora-40-cross-mingw32.Dockerfile index 9721481171..ed8566f273 100644 --- a/ci/containers/fedora-40-cross-mingw32.Dockerfile +++ b/ci/containers/fedora-40-cross-mingw32.Dockerfile @@ -23,6 +23,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/containers/fedora-40-cross-mingw64.Dockerfile b/ci/containers/fedora-40-cross-mingw64.Dockerfile index f25012abb6..b030427e0c 100644 --- a/ci/containers/fedora-40-cross-mingw64.Dockerfile +++ b/ci/containers/fedora-40-cross-mingw64.Dockerfile @@ -23,6 +23,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/containers/fedora-40.Dockerfile b/ci/containers/fedora-40.Dockerfile index 32a9cdae12..97e1858473 100644 --- a/ci/containers/fedora-40.Dockerfile +++ b/ci/containers/fedora-40.Dockerfile @@ -25,6 +25,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile index 3c6653affd..4e679991ef 100644 --- a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile +++ b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile @@ -24,6 +24,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile index c668d9dcae..bd2641548a 100644 --- a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile +++ b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile @@ -24,6 +24,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ca-certificates \ ccache \ codespell \ + compiler-rt \ cpp \ cppi \ diffutils \ diff --git a/ci/containers/fedora-rawhide.Dockerfile b/ci/containers/fedora-rawhide.Dockerfile index 232d76b95a..6f06843985 100644 --- a/ci/containers/fedora-rawhide.Dockerfile +++ b/ci/containers/fedora-rawhide.Dockerfile @@ -26,6 +26,7 @@ exec "$@"\n' > /usr/bin/nosync && \ ccache \ clang \ codespell \ + compiler-rt \ cpp \ cppi \ cyrus-sasl-devel \ diff --git a/ci/containers/ubuntu-2404.Dockerfile b/ci/containers/ubuntu-2404.Dockerfile new file mode 100644 index 0000000000..4a6c63b5a4 --- /dev/null +++ b/ci/containers/ubuntu-2404.Dockerfile @@ -0,0 +1,104 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM docker.io/library/ubuntu:24.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + augeas-lenses \ + augeas-tools \ + bash-completion \ + black \ + ca-certificates \ + ccache \ + clang \ + codespell \ + cpp \ + diffutils \ + dwarves \ + ebtables \ + flake8 \ + gcc \ + gettext \ + git \ + grep \ + iproute2 \ + iptables \ + kmod \ + libacl1-dev \ + libapparmor-dev \ + libattr1-dev \ + libaudit-dev \ + libblkid-dev \ + libc6-dev \ + libcap-ng-dev \ + libclang-rt-dev \ + libcurl4-gnutls-dev \ + libdevmapper-dev \ + libfuse-dev \ + libglib2.0-dev \ + libglusterfs-dev \ + libgnutls28-dev \ + libiscsi-dev \ + libnbd-dev \ + libnl-3-dev \ + libnl-route-3-dev \ + libnuma-dev \ + libopenwsman-dev \ + libparted-dev \ + libpcap0.8-dev \ + libpciaccess-dev \ + librbd-dev \ + libreadline-dev \ + libsanlock-dev \ + libsasl2-dev \ + libselinux1-dev \ + libssh-dev \ + libssh2-1-dev \ + libtirpc-dev \ + libudev-dev \ + libxen-dev \ + libxml2-dev \ + libxml2-utils \ + libyajl-dev \ + locales \ + lvm2 \ + make \ + meson \ + nfs-common \ + ninja-build \ + numad \ + open-iscsi \ + perl-base \ + pkgconf \ + policykit-1 \ + python3 \ + python3-docutils \ + python3-pytest \ + qemu-utils \ + sed \ + systemtap-sdt-dev \ + wireshark-dev \ + xsltproc && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index 50ae89be77..a6a2d646b7 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -187,22 +187,33 @@ x86_64-ubuntu-2204: optional: true allow_failure: false variables: - JOB_OPTIONAL: 1 NAME: ubuntu-2204 TARGET_BASE_IMAGE: docker.io/library/ubuntu:22.04 -x86_64-ubuntu-2204-clang: +x86_64-ubuntu-2404: extends: .native_build_job needs: - - job: x86_64-ubuntu-2204-container + - job: x86_64-ubuntu-2404-container + optional: true + allow_failure: false + variables: + JOB_OPTIONAL: 1 + NAME: ubuntu-2404 + TARGET_BASE_IMAGE: docker.io/library/ubuntu:24.04 + + +x86_64-ubuntu-2404-clang: + extends: .native_build_job + needs: + - job: x86_64-ubuntu-2404-container optional: true allow_failure: false variables: CC: clang MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined - NAME: ubuntu-2204 - TARGET_BASE_IMAGE: docker.io/library/ubuntu:22.04 + NAME: ubuntu-2404 + TARGET_BASE_IMAGE: docker.io/library/ubuntu:24.04 UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1 diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index 7dc875fedb..dc8ea11f4e 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -92,6 +92,13 @@ x86_64-ubuntu-2204-container: NAME: ubuntu-2204 +x86_64-ubuntu-2404-container: + extends: .container_job + allow_failure: false + variables: + NAME: ubuntu-2404 + + # Cross container jobs diff --git a/ci/lcitool/projects/libvirt.yml b/ci/lcitool/projects/libvirt.yml index 66c1fb64f8..a5d2248437 100644 --- a/ci/lcitool/projects/libvirt.yml +++ b/ci/lcitool/projects/libvirt.yml @@ -36,6 +36,7 @@ packages: - libblkid - libc - libcap-ng + - libclang-rt-dev - libcurl - libiscsi - libnbd diff --git a/ci/manifest.yml b/ci/manifest.yml index 5f15e4ee9f..926a7a33d3 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -205,6 +205,10 @@ targets: PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig ubuntu-2204: + jobs: + - arch: x86_64 + + ubuntu-2404: jobs: - arch: x86_64 builds: false -- 2.43.2

On Mon, May 06, 2024 at 10:43:09AM +0200, Michal Privoznik wrote:
Ubuntu 24.04 was released recently. Add it to our CI.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/centos-stream-9.sh | 1 + ci/buildenv/debian-12-cross-aarch64.sh | 1 + ci/buildenv/debian-12-cross-armv6l.sh | 1 + ci/buildenv/debian-12-cross-armv7l.sh | 1 + ci/buildenv/debian-12-cross-i686.sh | 1 + ci/buildenv/debian-12-cross-mips64el.sh | 1 + ci/buildenv/debian-12-cross-mipsel.sh | 1 + ci/buildenv/debian-12-cross-ppc64le.sh | 1 + ci/buildenv/debian-12-cross-s390x.sh | 1 + ci/buildenv/debian-12.sh | 1 + ci/buildenv/debian-sid-cross-aarch64.sh | 1 + ci/buildenv/debian-sid-cross-armv6l.sh | 1 + ci/buildenv/debian-sid-cross-armv7l.sh | 1 + ci/buildenv/debian-sid-cross-i686.sh | 1 + ci/buildenv/debian-sid-cross-mips64el.sh | 1 + ci/buildenv/debian-sid-cross-ppc64le.sh | 1 + ci/buildenv/debian-sid-cross-s390x.sh | 1 + ci/buildenv/debian-sid.sh | 1 + ci/buildenv/fedora-39.sh | 1 + ci/buildenv/fedora-40-cross-mingw32.sh | 1 + ci/buildenv/fedora-40-cross-mingw64.sh | 1 + ci/buildenv/fedora-40.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw32.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw64.sh | 1 + ci/buildenv/fedora-rawhide.sh | 1 + ci/buildenv/ubuntu-2404.sh | 101 +++++++++++++++++ ci/containers/centos-stream-9.Dockerfile | 1 + .../debian-12-cross-aarch64.Dockerfile | 1 + .../debian-12-cross-armv6l.Dockerfile | 1 + .../debian-12-cross-armv7l.Dockerfile | 1 + ci/containers/debian-12-cross-i686.Dockerfile | 1 + .../debian-12-cross-mips64el.Dockerfile | 1 + .../debian-12-cross-mipsel.Dockerfile | 1 + .../debian-12-cross-ppc64le.Dockerfile | 1 + .../debian-12-cross-s390x.Dockerfile | 1 + ci/containers/debian-12.Dockerfile | 1 + .../debian-sid-cross-aarch64.Dockerfile | 1 + .../debian-sid-cross-armv6l.Dockerfile | 1 + .../debian-sid-cross-armv7l.Dockerfile | 1 + .../debian-sid-cross-i686.Dockerfile | 1 + .../debian-sid-cross-mips64el.Dockerfile | 1 + .../debian-sid-cross-ppc64le.Dockerfile | 1 + .../debian-sid-cross-s390x.Dockerfile | 1 + ci/containers/debian-sid.Dockerfile | 1 + ci/containers/fedora-39.Dockerfile | 1 + .../fedora-40-cross-mingw32.Dockerfile | 1 + .../fedora-40-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-40.Dockerfile | 1 + .../fedora-rawhide-cross-mingw32.Dockerfile | 1 + .../fedora-rawhide-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-rawhide.Dockerfile | 1 + ci/containers/ubuntu-2404.Dockerfile | 104 ++++++++++++++++++ ci/gitlab/builds.yml | 21 +++- ci/gitlab/containers.yml | 7 ++ ci/lcitool/projects/libvirt.yml | 1 + ci/manifest.yml | 4 + 56 files changed, 283 insertions(+), 5 deletions(-) create mode 100644 ci/buildenv/ubuntu-2404.sh create mode 100644 ci/containers/ubuntu-2404.Dockerfile
Something went wrong here, picking up many non-Ubuntu changes. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 5/7/24 12:20, Daniel P. Berrangé wrote:
On Mon, May 06, 2024 at 10:43:09AM +0200, Michal Privoznik wrote:
Ubuntu 24.04 was released recently. Add it to our CI.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/centos-stream-9.sh | 1 + ci/buildenv/debian-12-cross-aarch64.sh | 1 + ci/buildenv/debian-12-cross-armv6l.sh | 1 + ci/buildenv/debian-12-cross-armv7l.sh | 1 + ci/buildenv/debian-12-cross-i686.sh | 1 + ci/buildenv/debian-12-cross-mips64el.sh | 1 + ci/buildenv/debian-12-cross-mipsel.sh | 1 + ci/buildenv/debian-12-cross-ppc64le.sh | 1 + ci/buildenv/debian-12-cross-s390x.sh | 1 + ci/buildenv/debian-12.sh | 1 + ci/buildenv/debian-sid-cross-aarch64.sh | 1 + ci/buildenv/debian-sid-cross-armv6l.sh | 1 + ci/buildenv/debian-sid-cross-armv7l.sh | 1 + ci/buildenv/debian-sid-cross-i686.sh | 1 + ci/buildenv/debian-sid-cross-mips64el.sh | 1 + ci/buildenv/debian-sid-cross-ppc64le.sh | 1 + ci/buildenv/debian-sid-cross-s390x.sh | 1 + ci/buildenv/debian-sid.sh | 1 + ci/buildenv/fedora-39.sh | 1 + ci/buildenv/fedora-40-cross-mingw32.sh | 1 + ci/buildenv/fedora-40-cross-mingw64.sh | 1 + ci/buildenv/fedora-40.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw32.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw64.sh | 1 + ci/buildenv/fedora-rawhide.sh | 1 + ci/buildenv/ubuntu-2404.sh | 101 +++++++++++++++++ ci/containers/centos-stream-9.Dockerfile | 1 + .../debian-12-cross-aarch64.Dockerfile | 1 + .../debian-12-cross-armv6l.Dockerfile | 1 + .../debian-12-cross-armv7l.Dockerfile | 1 + ci/containers/debian-12-cross-i686.Dockerfile | 1 + .../debian-12-cross-mips64el.Dockerfile | 1 + .../debian-12-cross-mipsel.Dockerfile | 1 + .../debian-12-cross-ppc64le.Dockerfile | 1 + .../debian-12-cross-s390x.Dockerfile | 1 + ci/containers/debian-12.Dockerfile | 1 + .../debian-sid-cross-aarch64.Dockerfile | 1 + .../debian-sid-cross-armv6l.Dockerfile | 1 + .../debian-sid-cross-armv7l.Dockerfile | 1 + .../debian-sid-cross-i686.Dockerfile | 1 + .../debian-sid-cross-mips64el.Dockerfile | 1 + .../debian-sid-cross-ppc64le.Dockerfile | 1 + .../debian-sid-cross-s390x.Dockerfile | 1 + ci/containers/debian-sid.Dockerfile | 1 + ci/containers/fedora-39.Dockerfile | 1 + .../fedora-40-cross-mingw32.Dockerfile | 1 + .../fedora-40-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-40.Dockerfile | 1 + .../fedora-rawhide-cross-mingw32.Dockerfile | 1 + .../fedora-rawhide-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-rawhide.Dockerfile | 1 + ci/containers/ubuntu-2404.Dockerfile | 104 ++++++++++++++++++ ci/gitlab/builds.yml | 21 +++- ci/gitlab/containers.yml | 7 ++ ci/lcitool/projects/libvirt.yml | 1 + ci/manifest.yml | 4 + 56 files changed, 283 insertions(+), 5 deletions(-) create mode 100644 ci/buildenv/ubuntu-2404.sh create mode 100644 ci/containers/ubuntu-2404.Dockerfile
Something went wrong here, picking up many non-Ubuntu changes.
That's because I need to install clang's runtime. But let me see if I can split this change. Michal

On Tue, May 07, 2024 at 02:36:42PM +0200, Michal Prívozník wrote:
On 5/7/24 12:20, Daniel P. Berrangé wrote:
On Mon, May 06, 2024 at 10:43:09AM +0200, Michal Privoznik wrote:
Ubuntu 24.04 was released recently. Add it to our CI.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/centos-stream-9.sh | 1 + ci/buildenv/debian-12-cross-aarch64.sh | 1 + ci/buildenv/debian-12-cross-armv6l.sh | 1 + ci/buildenv/debian-12-cross-armv7l.sh | 1 + ci/buildenv/debian-12-cross-i686.sh | 1 + ci/buildenv/debian-12-cross-mips64el.sh | 1 + ci/buildenv/debian-12-cross-mipsel.sh | 1 + ci/buildenv/debian-12-cross-ppc64le.sh | 1 + ci/buildenv/debian-12-cross-s390x.sh | 1 + ci/buildenv/debian-12.sh | 1 + ci/buildenv/debian-sid-cross-aarch64.sh | 1 + ci/buildenv/debian-sid-cross-armv6l.sh | 1 + ci/buildenv/debian-sid-cross-armv7l.sh | 1 + ci/buildenv/debian-sid-cross-i686.sh | 1 + ci/buildenv/debian-sid-cross-mips64el.sh | 1 + ci/buildenv/debian-sid-cross-ppc64le.sh | 1 + ci/buildenv/debian-sid-cross-s390x.sh | 1 + ci/buildenv/debian-sid.sh | 1 + ci/buildenv/fedora-39.sh | 1 + ci/buildenv/fedora-40-cross-mingw32.sh | 1 + ci/buildenv/fedora-40-cross-mingw64.sh | 1 + ci/buildenv/fedora-40.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw32.sh | 1 + ci/buildenv/fedora-rawhide-cross-mingw64.sh | 1 + ci/buildenv/fedora-rawhide.sh | 1 + ci/buildenv/ubuntu-2404.sh | 101 +++++++++++++++++ ci/containers/centos-stream-9.Dockerfile | 1 + .../debian-12-cross-aarch64.Dockerfile | 1 + .../debian-12-cross-armv6l.Dockerfile | 1 + .../debian-12-cross-armv7l.Dockerfile | 1 + ci/containers/debian-12-cross-i686.Dockerfile | 1 + .../debian-12-cross-mips64el.Dockerfile | 1 + .../debian-12-cross-mipsel.Dockerfile | 1 + .../debian-12-cross-ppc64le.Dockerfile | 1 + .../debian-12-cross-s390x.Dockerfile | 1 + ci/containers/debian-12.Dockerfile | 1 + .../debian-sid-cross-aarch64.Dockerfile | 1 + .../debian-sid-cross-armv6l.Dockerfile | 1 + .../debian-sid-cross-armv7l.Dockerfile | 1 + .../debian-sid-cross-i686.Dockerfile | 1 + .../debian-sid-cross-mips64el.Dockerfile | 1 + .../debian-sid-cross-ppc64le.Dockerfile | 1 + .../debian-sid-cross-s390x.Dockerfile | 1 + ci/containers/debian-sid.Dockerfile | 1 + ci/containers/fedora-39.Dockerfile | 1 + .../fedora-40-cross-mingw32.Dockerfile | 1 + .../fedora-40-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-40.Dockerfile | 1 + .../fedora-rawhide-cross-mingw32.Dockerfile | 1 + .../fedora-rawhide-cross-mingw64.Dockerfile | 1 + ci/containers/fedora-rawhide.Dockerfile | 1 + ci/containers/ubuntu-2404.Dockerfile | 104 ++++++++++++++++++ ci/gitlab/builds.yml | 21 +++- ci/gitlab/containers.yml | 7 ++ ci/lcitool/projects/libvirt.yml | 1 + ci/manifest.yml | 4 + 56 files changed, 283 insertions(+), 5 deletions(-) create mode 100644 ci/buildenv/ubuntu-2404.sh create mode 100644 ci/containers/ubuntu-2404.Dockerfile
Something went wrong here, picking up many non-Ubuntu changes.
That's because I need to install clang's runtime. But let me see if I can split this change.
Oh right, because this is where you're syncing to a new libvirt-ci commit. Don't worry about splitting. Just add a comment to the commit message With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

AlmaLinux 9 was released a while ago, but for some reason it's missing in our CI. Add it there. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/almalinux-9.sh | 101 ++++++++++++++++++++++++++ ci/containers/almalinux-9.Dockerfile | 104 +++++++++++++++++++++++++++ ci/gitlab/builds.yml | 26 +++++++ ci/gitlab/containers.yml | 7 ++ ci/manifest.yml | 13 ++++ 5 files changed, 251 insertions(+) create mode 100644 ci/buildenv/almalinux-9.sh create mode 100644 ci/containers/almalinux-9.Dockerfile diff --git a/ci/buildenv/almalinux-9.sh b/ci/buildenv/almalinux-9.sh new file mode 100644 index 0000000000..f0826e1313 --- /dev/null +++ b/ci/buildenv/almalinux-9.sh @@ -0,0 +1,101 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +function install_buildenv() { + dnf update -y + dnf install 'dnf-command(config-manager)' -y + dnf config-manager --set-enabled -y crb + dnf install -y epel-release + dnf install -y \ + audit-libs-devel \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + clang-devel \ + cpp \ + cyrus-sasl-devel \ + device-mapper-devel \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + fuse-devel \ + gcc \ + gettext \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libiscsi-devel \ + libnbd-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numactl-devel \ + numad \ + parted-devel \ + perl-base \ + pkgconfig \ + polkit \ + python3 \ + python3-docutils \ + python3-flake8 \ + python3-pip \ + python3-pytest \ + python3-setuptools \ + python3-wheel \ + qemu-img \ + readline-devel \ + rpm-build \ + sanlock-devel \ + sed \ + systemd-devel \ + systemd-rpm-macros \ + systemtap-sdt-devel \ + wireshark-devel \ + yajl-devel + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED + rpm -qa | sort > /packages.txt + mkdir -p /usr/libexec/ccache-wrappers + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + /usr/bin/pip3 install black +} + +export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" +export LANG="en_US.UTF-8" +export MAKE="/usr/bin/make" +export NINJA="/usr/bin/ninja" +export PYTHON="/usr/bin/python3" diff --git a/ci/containers/almalinux-9.Dockerfile b/ci/containers/almalinux-9.Dockerfile new file mode 100644 index 0000000000..68608b12a9 --- /dev/null +++ b/ci/containers/almalinux-9.Dockerfile @@ -0,0 +1,104 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool manifest ci/manifest.yml +# +# https://gitlab.com/libvirt/libvirt-ci + +FROM docker.io/library/almalinux:9 + +RUN dnf update -y && \ + dnf install 'dnf-command(config-manager)' -y && \ + dnf config-manager --set-enabled -y crb && \ + dnf install -y epel-release && \ + dnf install -y \ + audit-libs-devel \ + augeas \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + clang-devel \ + cpp \ + cyrus-sasl-devel \ + device-mapper-devel \ + diffutils \ + dwarves \ + ebtables \ + firewalld-filesystem \ + fuse-devel \ + gcc \ + gettext \ + git \ + glib2-devel \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + grep \ + iproute \ + iproute-tc \ + iptables \ + iscsi-initiator-utils \ + kmod \ + libacl-devel \ + libattr-devel \ + libblkid-devel \ + libcap-ng-devel \ + libcurl-devel \ + libiscsi-devel \ + libnbd-devel \ + libnl3-devel \ + libpcap-devel \ + libpciaccess-devel \ + librbd-devel \ + libselinux-devel \ + libssh-devel \ + libssh2-devel \ + libtirpc-devel \ + libwsman-devel \ + libxml2 \ + libxml2-devel \ + libxslt \ + lvm2 \ + make \ + meson \ + nfs-utils \ + ninja-build \ + numactl-devel \ + numad \ + parted-devel \ + perl-base \ + pkgconfig \ + polkit \ + python3 \ + python3-docutils \ + python3-flake8 \ + python3-pip \ + python3-pytest \ + python3-setuptools \ + python3-wheel \ + qemu-img \ + readline-devel \ + rpm-build \ + sanlock-devel \ + sed \ + systemd-devel \ + systemd-rpm-macros \ + systemtap-sdt-devel \ + wireshark-devel \ + yajl-devel && \ + dnf autoremove -y && \ + dnf clean all -y && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc + +RUN /usr/bin/pip3 install black + +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV NINJA "/usr/bin/ninja" +ENV PYTHON "/usr/bin/python3" diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml index a6a2d646b7..a0a64c1ec1 100644 --- a/ci/gitlab/builds.yml +++ b/ci/gitlab/builds.yml @@ -7,6 +7,32 @@ # Native build jobs +x86_64-almalinux-9: + extends: .native_build_job + needs: + - job: x86_64-almalinux-9-container + optional: true + allow_failure: false + variables: + JOB_OPTIONAL: 1 + NAME: almalinux-9 + RPM: skip + TARGET_BASE_IMAGE: docker.io/library/almalinux:9 + + +x86_64-almalinux-9-clang: + extends: .native_build_job + needs: + - job: x86_64-almalinux-9-container + optional: true + allow_failure: false + variables: + CC: clang + NAME: almalinux-9 + RPM: skip + TARGET_BASE_IMAGE: docker.io/library/almalinux:9 + + x86_64-alpine-319: extends: .native_build_job needs: diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml index dc8ea11f4e..55137dc1c3 100644 --- a/ci/gitlab/containers.yml +++ b/ci/gitlab/containers.yml @@ -7,6 +7,13 @@ # Native container jobs +x86_64-almalinux-9-container: + extends: .container_job + allow_failure: false + variables: + NAME: almalinux-9 + + x86_64-alpine-319-container: extends: .container_job allow_failure: false diff --git a/ci/manifest.yml b/ci/manifest.yml index 926a7a33d3..647510ed2f 100644 --- a/ci/manifest.yml +++ b/ci/manifest.yml @@ -6,6 +6,19 @@ gitlab: project: libvirt targets: + almalinux-9: + jobs: + - arch: x86_64 + builds: false + variables: + RPM: skip + + - arch: x86_64 + suffix: -clang + variables: + RPM: skip + CC: clang + alpine-319: x86_64 alpine-edge: -- 2.43.2

On Mon, May 06, 2024 at 10:43:10AM +0200, Michal Privoznik wrote:
AlmaLinux 9 was released a while ago, but for some reason it's missing in our CI. Add it there.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- ci/buildenv/almalinux-9.sh | 101 ++++++++++++++++++++++++++ ci/containers/almalinux-9.Dockerfile | 104 +++++++++++++++++++++++++++ ci/gitlab/builds.yml | 26 +++++++ ci/gitlab/containers.yml | 7 ++ ci/manifest.yml | 13 ++++ 5 files changed, 251 insertions(+) create mode 100644 ci/buildenv/almalinux-9.sh create mode 100644 ci/containers/almalinux-9.Dockerfile
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (4)
-
Andrea Bolognani
-
Daniel P. Berrangé
-
Michal Privoznik
-
Michal Prívozník