diff --git a/.kres.yaml b/.kres.yaml index 006e113c1..05533171a 100644 --- a/.kres.yaml +++ b/.kres.yaml @@ -71,6 +71,7 @@ spec: - mellanox-mstflint-pkg - nvidia-open-gpu-kernel-modules-lts-pkg - nvidia-open-gpu-kernel-modules-production-pkg + - px-fuse-pkg - tenstorrent-pkg - xdma-driver-pkg - zfs-pkg diff --git a/Makefile b/Makefile index 39eca72b2..75e8f5505 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-12-31T09:52:12Z by kres 8a4aebf. +# Generated on 2026-01-23T13:35:39Z by kres 1ffefb6. # common variables @@ -113,6 +113,7 @@ TARGETS += hailort-pkg TARGETS += mellanox-mstflint-pkg TARGETS += nvidia-open-gpu-kernel-modules-lts-pkg TARGETS += nvidia-open-gpu-kernel-modules-production-pkg +TARGETS += px-fuse-pkg TARGETS += tenstorrent-pkg TARGETS += xdma-driver-pkg TARGETS += zfs-pkg diff --git a/Pkgfile b/Pkgfile index 8aa5604b9..aa464bd64 100644 --- a/Pkgfile +++ b/Pkgfile @@ -232,6 +232,11 @@ vars: pigz_sha256: eb872b4f0e1f0ebe59c9f7bd8c506c4204893ba6a8492de31df416f0d5170fd0 pigz_sha512: ae3d9d593e1645d65f9ab77aa828600c9af4bb30d0a073da7ae3dd805e65b87efaf6a0efb980f2d0168e475ae506eba194547d6479956dabb9d88293a9078a7f + # renovate: datasource=git-refs versioning=git depName=https://github.com/portworx/px-fuse.git + px_fuse_ref: 1f67ff84c8a5b90fe3eef7ad0a212d06637e3ba5 + px_fuse_sha256: 6010f481e102b7ec4ec0564fa45c8f6153aeac75c16f3fa158de06966dbea3ef + px_fuse_sha512: 4a46253025ae01e305b509e3d108f640ccc9b757020e2a985ecea23f5ced3663e05ae11f38c1036b3004e47e903e5bbc2026289e3fc3e1c5e44648b2fd21f8d6 + # renovate: datasource=git-tags depName=https://gitlab.gnome.org/GNOME/glib.git glib_version: 2.87.2 glib_sha256: d6eb74a4f4ffc0b56df79ae3a939463b1d92c623f6c167d51aab24e303a851f3 diff --git a/px-fuse/patches/idr.patch b/px-fuse/patches/idr.patch new file mode 100644 index 000000000..a9aca5a00 --- /dev/null +++ b/px-fuse/patches/idr.patch @@ -0,0 +1,44 @@ +--- a/pxd.c 2025-12-01 16:09:31.000000000 +0000 ++++ b/pxd.c 2026-01-23 14:55:53.110206851 +0000 +@@ -1549,9 +1549,11 @@ + spin_lock_init(&pxd_dev->lock); + spin_lock_init(&pxd_dev->qlock); + +- new_minor = ida_simple_get(&pxd_minor_ida, +- 1, 1 << MINORBITS, +- GFP_KERNEL); ++ new_minor = ida_alloc_range(&pxd_minor_ida, ++ 1, ++ (1 << MINORBITS) - 1, ++ GFP_KERNEL); ++ + if (new_minor < 0) { + err = new_minor; + goto out_module; +@@ -1623,7 +1625,7 @@ + out_fp: + pxd_fastpath_cleanup(pxd_dev); + out_id: +- ida_simple_remove(&pxd_minor_ida, new_minor); ++ ida_free(&pxd_minor_ida, new_minor); + out_module: + if (pxd_dev) + kfree(pxd_dev); +@@ -1693,7 +1695,7 @@ + list_del(&pxd_dev->node); + --ctx->num_devices; + pxd_dev->exported = false; +- ida_simple_remove(&pxd_minor_ida, pxd_dev->minor); ++ ida_free(&pxd_minor_ida, pxd_dev->minor); + spin_unlock(&pxd_dev->lock); + spin_unlock(&ctx->lock); + kfree(pxd_dev); +@@ -2551,7 +2553,7 @@ + struct pxd_device *pxd_dev = dev_to_pxd_dev(dev); + + pxd_free_disk(pxd_dev); +- ida_simple_remove(&pxd_minor_ida, pxd_dev->minor); ++ ida_free(&pxd_minor_ida, pxd_dev->minor); + pxd_mem_printk("freeing dev %llu pxd device %px\n", pxd_dev->dev_id, pxd_dev); + pxd_dev->magic = PXD_POISON; + kfree(pxd_dev); diff --git a/px-fuse/pkg.yaml b/px-fuse/pkg.yaml new file mode 100644 index 000000000..2714ae4b0 --- /dev/null +++ b/px-fuse/pkg.yaml @@ -0,0 +1,42 @@ +name: px-fuse-pkg +variant: scratch +shell: /bin/bash +dependencies: + - stage: base + - stage: kernel-build +steps: + - sources: + - url: https://github.com/portworx/px-fuse/archive/{{ .px_fuse_ref }}.tar.gz + destination: px-fuse.tar.gz + sha256: "{{ .px_fuse_sha256 }}" + sha512: "{{ .px_fuse_sha512 }}" + env: + ARCH: {{ if eq .ARCH "aarch64"}}arm64{{ else if eq .ARCH "x86_64" }}x86_64{{ else }}unsupported{{ end }} + prepare: + - | + tar xf px-fuse.tar.gz --strip-components=1 + - | + patch -p1 < /pkg/patches/idr.patch + - | + autoreconf + ./configure + build: + - | + make -j $(nproc) KERNELPATH=/src + install: + - | + mkdir -p /rootfs/usr/lib/modules/$(cat /src/include/config/kernel.release)/ + cp /src/modules.order /rootfs/usr/lib/modules/$(cat /src/include/config/kernel.release)/ + cp /src/modules.builtin /rootfs/usr/lib/modules/$(cat /src/include/config/kernel.release)/ + cp /src/modules.builtin.modinfo /rootfs/usr/lib/modules/$(cat /src/include/config/kernel.release)/ + + make -C /src M=$(pwd) modules_install INSTALL_MOD_PATH=/rootfs/usr INSTALL_MOD_DIR=extras INSTALL_MOD_STRIP=1 + test: + - | + # https://www.kernel.org/doc/html/v4.15/admin-guide/module-signing.html#signed-modules-and-stripping + find /rootfs/usr/lib/modules -name '*.ko' -exec grep -FL '~Module signature appended~' {} \+ + - | + fhs-validator /rootfs +finalize: + - from: /rootfs + to: /