commit ee3c477202da1f584936f59a5d4ed4feb8f5b93921b24b599f58c55c20d051fd Author: Caleb Crane Date: Sat Jan 18 02:38:00 2025 +0000 - Update to version 1.13.0: * Bump version to v1.13.0 * Add and use openat_verbose() where reasonable * Revert "openat: Always annotate errors with filename" * Add --readonly flag * Add PassthroughFsRo as read-only variant * Add a note about the required FD state for --fd OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtiofsd?expand=0&rev=30 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/50-virtiofsd.json b/50-virtiofsd.json new file mode 100644 index 0000000..9eec755 --- /dev/null +++ b/50-virtiofsd.json @@ -0,0 +1,9 @@ +{ + "description": "virtiofsd vhost-user-fs", + "type": "fs", + "binary": "@@LIBEXECDIR@@/virtiofsd", + "features": [ + "migrate-precopy", + "separate-options" + ] +} diff --git a/_service b/_service new file mode 100644 index 0000000..739db38 --- /dev/null +++ b/_service @@ -0,0 +1,27 @@ + + + https://gitlab.com/virtio-fs/virtiofsd.git + git + virtiofsd + v1.13.0 + @PARENT_TAG@ + [v]?([^\+]+)(.*) + \1 + enable + + + + + + + + *.tar + xz + + + + virtiofsd + xz + true + + diff --git a/vendor.tar.xz b/vendor.tar.xz new file mode 100644 index 0000000..031c962 --- /dev/null +++ b/vendor.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f36d091e4396edf7891a65114330160df6396609c0108e5af341bb2454527080 +size 13294008 diff --git a/virtiofsd-1.10.1.tar.xz b/virtiofsd-1.10.1.tar.xz new file mode 100644 index 0000000..5925667 --- /dev/null +++ b/virtiofsd-1.10.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b52b3d59f43140dca7d56e6dc8d88a0f894eeb0de69d0003b72115be71627154 +size 97376 diff --git a/virtiofsd-1.11.1.tar.xz b/virtiofsd-1.11.1.tar.xz new file mode 100644 index 0000000..2085e50 --- /dev/null +++ b/virtiofsd-1.11.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a311d0762bdf0904fdbd36fac47a1a382250ce49bf5e9041da5c21ce0d5d4129 +size 117492 diff --git a/virtiofsd-1.12.0.tar.xz b/virtiofsd-1.12.0.tar.xz new file mode 100644 index 0000000..4b02812 --- /dev/null +++ b/virtiofsd-1.12.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:213df73a935768ce863362dd4ad5b3abe4b8676883820ec559abbb54e196b611 +size 129248 diff --git a/virtiofsd-1.13.0.tar.xz b/virtiofsd-1.13.0.tar.xz new file mode 100644 index 0000000..bbf494b --- /dev/null +++ b/virtiofsd-1.13.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d22548c99686becf0d2941a6c903e2ec50c0ec4cc41e1c8f7f6335cf42b7d06 +size 142728 diff --git a/virtiofsd.changes b/virtiofsd.changes new file mode 100644 index 0000000..3337766 --- /dev/null +++ b/virtiofsd.changes @@ -0,0 +1,164 @@ +------------------------------------------------------------------- +Wed Jan 15 10:56:47 UTC 2025 - ddiss@suse.de + +- Update to version 1.13.0: + * Bump version to v1.13.0 + * Add and use openat_verbose() where reasonable + * Revert "openat: Always annotate errors with filename" + * Add --readonly flag + * Add PassthroughFsRo as read-only variant + * Add a note about the required FD state for --fd + +------------------------------------------------------------------- +Wed Oct 16 17:24:41 UTC 2024 - caleb.crane@suse.com + +- Update to version 1.12.0: + * Bump version to v1.12.0 + * Add file-handles migration mode + * Serialize mount FD map + * Deserialize file handles + * Build mount FD map on deserialization + * Add MigrationMode::FileHandles + * PassthroughFsV2 + * Allow deserializing serializable file handles + * Extract serialized::Inode.deserialize_root_node() + +------------------------------------------------------------------- +Thu Oct 3 18:55:20 UTC 2024 - Caleb Crane + +- Spec: Add direct dependency on cargo in addition to cargo-packaging. + This fixes build errors on 15SP7 where the inherited version of Rust + is too old + +------------------------------------------------------------------- +Thu Aug 8 19:57:34 UTC 2024 - Caleb Crane + +- Service: Remove deprecated cargo_config and cargo_audit services, both + are now handled by the cargo_vendor service +- Add new upstream features for the libvirt/virtiofsd interop config + +------------------------------------------------------------------- +Thu Aug 08 08:13:17 UTC 2024 - Xiaoguang Wang + +- Fix build failure after update to Rust 1.80 (bsc#1228972) +- Update to version 1.11.1: + * Changes since 1.11.0: + * Add "separate-options" capability + * Force-call DESTROY on INIT + * Do not require --shared-dir to print capabilities + * Enable notification on vring failure + * Bump version to v1.11.0 + * deps: Update to the latest rust-vmm crates + * deps: Update to the latest libc + * Note migration capability + * README: Document new migration switches + * Introduce --migration-mode switch + * Introduce --migration-confirm-paths + * PassthroughFs::init: Point to NegotiatedOpts + * Implement device state deserialization + * Add get_path_by_fd()/printable_fd() functions + * Implement device state serialization + * Implement preserialization/premigration + * Define our serialized device state + * Introduce serializable file handles + * Introduce --migration-verify-handles + * Introduce --migration-on-error switch + * Allow explicitly invalid inodes and handles + * Split try_lookup() off of do_lookup() + * Add ReadDir::new_no_seek() + * Put open_root_node() into own function + * Add type for strong inode references + * Hide InodeStore locking + * Remove `&Inode` indirection + * Add device state infrastructure + * Add ErrorContext, ResultErrorContext traits + * Add other_io_error() utility function + * Add support for dirty memory logging + * opt: Introduce --allow-mmap flag + * fuse: Enable DIRECT_IO_ALLOW_MMAP with --allow-mmap + * Add '--shared-dir' as required if '-o' is missing + * Close the listener in the parent process + * Check if the socket parent directory exists + * Check if the shared directory exists + * deps: Bump syslog version + * Increase maximum virtqueue size to 32768 + * Allow multiple uid/gid maps + * Hide clippy warning in readdir + * Shorten `std::result::Result` where possible + * Remove redundant Result imports + * deps: Bump vhost and vhost-user-backend versions + * Remove virtio-bindings feature + * Directly write uid/gidmap where possible + * Fix clippy warning: Complicated `match` condition + * Fix clippy warning: Skip converting to owned + * Fix clippy warning: Make use of `.cloned()` + * Fix new compiler warnings + +------------------------------------------------------------------- +Thu Mar 7 14:03:20 UTC 2024 - Ben Greiner + +- Fix libexecdir move: rpm cannot replace a directory with a single + file on upgrades -- boo#1220592 + * Add pre scriptlet removing the directory on Tumbleweed during + upgrades + * Don't own plain %_libexecdir on Tumbleweed + +------------------------------------------------------------------- +Wed Feb 28 15:08:19 UTC 2024 - Caleb Crane + +- Spec: More tweaks to libexecdir path issues on SLE and Tumbleweed + +------------------------------------------------------------------- +Mon Feb 26 14:16:30 UTC 2024 - Caleb Crane + +- Spec: We don't want /usr/libexec to be namespaced like it is with /usr/lib (bsc#1220304) + +------------------------------------------------------------------- +Thu Feb 22 03:02:23 UTC 2024 - Caleb Crane + +- Spec: Adjust libvirt/virtiofsd interop config file to handle differences in + the definition of libexecdir macro on SLE and Tumbleweed (bsc#1219772) + +------------------------------------------------------------------- +Tue Jan 30 17:09:25 UTC 2024 - caleb.crane@suse.com + +- Fix CVE-2023-50711: vmm-sys-util: out of bounds memory accesses (bsc#1218502, bsc#1218500) +- Update to version 1.10.1: + * Bump version to v1.10.1 + * Fix mandatory user namespaces + * Don't drop supplemental groups in unprivileged user namespace + * Bump version to v1.10.0 + * Update rust-vmm dependencies (bsc#1218500) + * Bump version to v1.9.0 +- Spec: switch to using the upstream virtio-fs config file for qemu +- Spec: switch back to greedy cargo updates of vendored dependencies + +------------------------------------------------------------------- +Thu Aug 31 20:28:08 UTC 2023 - Caleb Crane + +- Update to upstream version v1.7.2 (jsc#PED-4980) + - Add supplementary group extension support + - Prevent EPERM failures with O_NOATIME + - Fix cache timeouts + - seccomp: Allow SYS_sched_yield + - Allow to provide the same argument multiple times + - Add the -V/--version options +- Upgrade vendored dependencies + +------------------------------------------------------------------- +Fri Jun 2 15:40:06 UTC 2023 - Caleb Crane + +- Add qemu config file to ensure qemu is aware of the virtiofsd executable +- https://www.reddit.com/r/suse/comments/13xmote/vm_with_virtiofs_does_not_start_unable_to_find_a/ + +------------------------------------------------------------------- +Thu May 25 02:33:51 UTC 2023 - Caleb Crane + +- Remove exclusive arch, only disable for 32-bit archs (i586 and armv7l) +- Add package conflict with the previous implementation of virtiofsd inside + older versions of the qemu-tools package (qemu-tools < 8) + +------------------------------------------------------------------- +Tue May 23 13:30:11 UTC 2023 - Caleb Crane + +- Initial release of virtiofsd v1.6.1 diff --git a/virtiofsd.spec b/virtiofsd.spec new file mode 100644 index 0000000..c1a3b0d --- /dev/null +++ b/virtiofsd.spec @@ -0,0 +1,75 @@ +# +# spec file for package virtiofsd +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} > 1500 + %define _virtiofsd_libexecdir %{_libexecdir} +%else + %define _virtiofsd_libexecdir %{_libexecdir}/%{name} +%endif + +Name: virtiofsd +Version: 1.13.0 +Release: 0 +Summary: A vhost-user virtio-fs device backend written in Rust +Group: Development/Libraries/Rust +License: Apache-2.0 +URL: https://gitlab.com/virtio-fs/virtiofsd +Source0: %{name}-%{version}.tar.xz +Source1: vendor.tar.xz +Source2: 50-virtiofsd.json +BuildRequires: cargo +BuildRequires: cargo-packaging +BuildRequires: libcap-ng-devel +BuildRequires: libseccomp-devel +Conflicts: qemu-tools < 8 +ExcludeArch: %ix86 %arm + +%description +A vhost-user virtio-fs device backend written in Rust + +%prep +%autosetup -a1 +# Adjust libvirt/virtiofsd interop config file to handle differences in +# the definition of libexecdir macro on SLE and Tumbleweed (bsc#1219772) +sed -i 's#@@LIBEXECDIR@@#%{_virtiofsd_libexecdir}#' %{SOURCE2} + +%build +%{cargo_build} + +%install +mkdir -p %{buildroot}%{_virtiofsd_libexecdir} +install -D -p -m 0755 %{_builddir}/%{name}-%{version}/target/release/virtiofsd %{buildroot}%{_virtiofsd_libexecdir}/virtiofsd +install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/qemu/vhost-user/50-virtiofsd.json + +%check +%{cargo_test} + +%if 0%{?suse_version} > 1500 +# transition from old subdirectory to single file: rpm can't replace a directory on upgrades, force delete +%pre +[ ! -d %{_libexecdir}/%{name} ] || rm -r %{_libexecdir}/%{name} +%endif + +%files +%doc README.md +%{_libexecdir}/virtiofsd +%dir %{_datadir}/qemu +%dir %{_datadir}/qemu/vhost-user +%{_datadir}/qemu/vhost-user/50-virtiofsd.json + +%changelog