treewide: update sandboxroot to fedora 40, nix to 24.05

We didn't bump our sandboxroot in a long time, this updates it to fedora
 40
 and updates the nix shell to nixpkgs-24.05. It also bumps rules_oci to
 the current version.

Change-Id: I9ffb6f4dcd1a95be48b52015df987824dbb169f6
Reviewed-on: https://review.monogon.dev/c/monogon/+/3205
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/third_party/qemu/patches/linux-headers-update.patch b/third_party/qemu/patches/linux-headers-update.patch
new file mode 100644
index 0000000..f7d2580
--- /dev/null
+++ b/third_party/qemu/patches/linux-headers-update.patch
@@ -0,0 +1,132 @@
+From 9aee9f1af189d9026c06609386f5f034d08b73e1 Mon Sep 17 00:00:00 2001
+From: Tim Windelschmidt <tim@monogon.tech>
+Date: Thu, 4 Jul 2024 22:47:00 +0200
+Subject: [PATCH] update VFIO enum names
+
+---
+ hw/vfio/common.c    |  8 ++++----
+ hw/vfio/migration.c | 27 +++++++++++++++------------
+ 2 files changed, 19 insertions(+), 16 deletions(-)
+
+diff --git a/hw/vfio/common.c b/hw/vfio/common.c
+index 6ff1daa763..2ad5a3346b 100644
+--- a/hw/vfio/common.c
++++ b/hw/vfio/common.c
+@@ -329,9 +329,9 @@ static bool vfio_devices_all_saving(VFIOContainer *container)
+                 return false;
+             }
+
+-            if (migration->device_state & VFIO_DEVICE_STATE_SAVING) {
++            if (migration->device_state & VFIO_DEVICE_STATE_V1_SAVING) {
+                 if ((vbasedev->pre_copy_dirty_page_tracking == ON_OFF_AUTO_OFF)
+-                    && (migration->device_state & VFIO_DEVICE_STATE_RUNNING)) {
++                    && (migration->device_state & VFIO_DEVICE_STATE_V1_RUNNING)) {
+                         return false;
+                 }
+                 continue;
+@@ -361,8 +361,8 @@ static bool vfio_devices_all_running_and_saving(VFIOContainer *container)
+                 return false;
+             }
+
+-            if ((migration->device_state & VFIO_DEVICE_STATE_SAVING) &&
+-                (migration->device_state & VFIO_DEVICE_STATE_RUNNING)) {
++            if ((migration->device_state & VFIO_DEVICE_STATE_V1_SAVING) &&
++                (migration->device_state & VFIO_DEVICE_STATE_V1_RUNNING)) {
+                 continue;
+             } else {
+                 return false;
+diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
+index 00daa50ed8..a56b7d6a7a 100644
+--- a/hw/vfio/migration.c
++++ b/hw/vfio/migration.c
+@@ -405,7 +405,7 @@ static int vfio_set_dirty_page_tracking(VFIODevice *vbasedev, bool start)
+     };
+
+     if (start) {
+-        if (migration->device_state & VFIO_DEVICE_STATE_SAVING) {
++        if (migration->device_state & VFIO_DEVICE_STATE_V1_SAVING) {
+             dirty.flags = VFIO_IOMMU_DIRTY_PAGES_FLAG_START;
+         } else {
+             return -EINVAL;
+@@ -463,7 +463,7 @@ static int vfio_save_setup(QEMUFile *f, void *opaque)
+     }
+
+     ret = vfio_migration_set_state(vbasedev, VFIO_DEVICE_STATE_MASK,
+-                                   VFIO_DEVICE_STATE_SAVING);
++                                   VFIO_DEVICE_STATE_V1_SAVING);
+     if (ret) {
+         error_report("%s: Failed to set state SAVING", vbasedev->name);
+         return ret;
+@@ -567,8 +567,8 @@ static int vfio_save_complete_precopy(QEMUFile *f, void *opaque)
+     uint64_t data_size;
+     int ret;
+
+-    ret = vfio_migration_set_state(vbasedev, ~VFIO_DEVICE_STATE_RUNNING,
+-                                   VFIO_DEVICE_STATE_SAVING);
++    ret = vfio_migration_set_state(vbasedev, ~VFIO_DEVICE_STATE_V1_RUNNING,
++                                   VFIO_DEVICE_STATE_V1_SAVING);
+     if (ret) {
+         error_report("%s: Failed to set state STOP and SAVING",
+                      vbasedev->name);
+@@ -610,7 +610,7 @@ static int vfio_save_complete_precopy(QEMUFile *f, void *opaque)
+         return ret;
+     }
+
+-    ret = vfio_migration_set_state(vbasedev, ~VFIO_DEVICE_STATE_SAVING, 0);
++    ret = vfio_migration_set_state(vbasedev, ~VFIO_DEVICE_STATE_V1_SAVING, 0);
+     if (ret) {
+         error_report("%s: Failed to set state STOPPED", vbasedev->name);
+         return ret;
+@@ -637,7 +637,7 @@ static int vfio_load_setup(QEMUFile *f, void *opaque)
+     }
+
+     ret = vfio_migration_set_state(vbasedev, ~VFIO_DEVICE_STATE_MASK,
+-                                   VFIO_DEVICE_STATE_RESUMING);
++                                   VFIO_DEVICE_STATE_V1_RESUMING);
+     if (ret) {
+         error_report("%s: Failed to set state RESUMING", vbasedev->name);
+         if (migration->region.mmaps) {
+@@ -748,13 +748,13 @@ static void vfio_vmstate_change(void *opaque, int running, RunState state)
+          * In both the above cases, set _RUNNING bit.
+          */
+         mask = ~VFIO_DEVICE_STATE_MASK;
+-        value = VFIO_DEVICE_STATE_RUNNING;
++        value = VFIO_DEVICE_STATE_V1_RUNNING;
+     } else {
+         /*
+          * Here device state could be either _RUNNING or _SAVING|_RUNNING. Reset
+          * _RUNNING bit
+          */
+-        mask = ~VFIO_DEVICE_STATE_RUNNING;
++        mask = ~VFIO_DEVICE_STATE_V1_RUNNING;
+         value = 0;
+     }
+
+@@ -790,8 +790,9 @@ static void vfio_migration_state_notifier(Notifier *notifier, void *data)
+     case MIGRATION_STATUS_FAILED:
+         bytes_transferred = 0;
+         ret = vfio_migration_set_state(vbasedev,
+-                      ~(VFIO_DEVICE_STATE_SAVING | VFIO_DEVICE_STATE_RESUMING),
+-                      VFIO_DEVICE_STATE_RUNNING);
++                                       ~(VFIO_DEVICE_STATE_V1_SAVING |
++                                         VFIO_DEVICE_STATE_V1_RESUMING),
++                                       VFIO_DEVICE_STATE_V1_RUNNING);
+         if (ret) {
+             error_report("%s: Failed to set state RUNNING", vbasedev->name);
+         }
+@@ -886,8 +887,10 @@ int vfio_migration_probe(VFIODevice *vbasedev, Error **errp)
+         goto add_blocker;
+     }
+
+-    ret = vfio_get_dev_region_info(vbasedev, VFIO_REGION_TYPE_MIGRATION,
+-                                   VFIO_REGION_SUBTYPE_MIGRATION, &info);
++    ret = vfio_get_dev_region_info(vbasedev,
++                                   VFIO_REGION_TYPE_MIGRATION_DEPRECATED,
++                                   VFIO_REGION_SUBTYPE_MIGRATION_DEPRECATED,
++                                   &info);
+     if (ret) {
+         goto add_blocker;
+     }
+--
+2.44.1
+