SHA256
3
0
forked from pool/libguestfs

Accepting request 1277117 from Virtualization

OBS-URL: https://build.opensuse.org/request/show/1277117
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libguestfs?expand=0&rev=118
This commit is contained in:
2025-05-13 18:05:32 +00:00
committed by Git OBS Bridge
7 changed files with 242 additions and 22 deletions

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e860954936ca05429c6b81bebc7400aaf9eeaef50181aa3a4ec5604cabc99e6b
size 18998424

View File

@@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCgAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmgMtOcRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKCOUQ/+KZY1hlrzPDoT3d/lqrAtDLI9yLTObbi/
7IKj1hk6GKJayCp2fmtKMbXuQG/J6XKt6cA31NRDiojewXPvUnUd8pR9ExeR1O8a
4fVlfvma/ds+PjoFBJYBOzQy1nTmlEZMqacL6I+czvIke1QKB9VzUoUeCz9AWd0n
5Ev7AQIhwF/9PpVaTFLzCjmxZLOy3/kdEPjoEeTJOOwc1CTEdOGjjsjdcnDUU3xX
a+kqcXD6Sljd7pwbCBTLYeinkJWr5FZqQHhiaMbI0pQZc57wQHQ6RVcHftTKkvMd
NHBlL9/hnYE84DUftUD/gDZv85mp7hkODNmyhr5w+C6UNSgZnOzfSfb0om+1nEWm
L2G8Ocwre8smBv4TBTpaEWJSanffL6qHd66dCLyemn/s03hqrDE7mcm4/DY60PMl
he++ny2tIW7LlW+VB/6Pnauw/+EbYTzh1FMpHbDpphWT2tsNwPpz8Rtx6CasWt1k
nsNbaMm1bSQJNyOO6MQKu+TT7fkgEZf175XOFnelAMMJ55WlQTOeZkhlDJevBvI1
0QJt1/nj2iyc0I6xd46KCX5T8xFd3OvQ4+0EyQ7v8CuRscn/abwyIV2KQtTtUsIv
x2GAUWRGjwuDp5PgqD+4k5Jk/V2zGk8uTCEjBkeePJl8BM+riUwXNBByQ+BHvvrr
+H0ykYoo4Vk=
=Ld2P
-----END PGP SIGNATURE-----

BIN
libguestfs-1.55.8.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCgAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmfu0rERHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKC18g//YFKSlhrBUv2ChlMteYj3ZeKpYCxKbZPO
NHEs1Td1yIGeLo3PVwwiklMJYOFL7fSUONRzi9icRqALlVx3wzhYRkGmAutjFeMa
QIWC9RI2ZHT+hm1eU1S4LKYrvJBSA2WpPJEvCpWYZg7YjT1S3KUnT/dcF540K0/i
WrdOTc2Aq7Di+8qj5sNbUR+VBokzSpCCpbvmfl91mQOS7GDW6m0vYQciXOn076Pb
WtK60gXb+XFEvHCx3/ZzmHPE8lhOXUpIz4rkv7+bmX29nY9HGQIrlD2v8Z8OxvbM
rIYWrkKpKc7Aj6ri7JJCC/o5CxYuxbzcdz3C3zmizbVYMF+IOOqYTDJNMRrRxEuw
QA2mwRVvx/oEAwj9q5gnXIDSiMCFgw7UoQvnRcII6Gaz04N28ZciH7LKLAfP6wg1
VFc9rAlKmMpyq1b38x1Gvc/piAedim0LLDHp3DoBzsBxOCZrG5OOk5cTtcp3OykY
TQOaGfqxbcc5+j6gcNmv3HDLJm1xN5Fd6f1HcuX3Tk7UTLcftIZqbwSgoIAD9QgB
o6Z0+RNqvXvlSQfZXLDoxaah8/HcPCLQgrGnnvCRmvFnigTHu1IVlQ8q66Z5TJdy
qy9zbbnFxd7INLTxwrWRfyxjTY9HihOTFyvtoybtFmKE9Uln6pk/IdetZUN8QUWw
8jPvAV7qsmA=
=N9eJ
-----END PGP SIGNATURE-----

View File

@@ -1,3 +1,32 @@
-------------------------------------------------------------------
Mon May 12 14:17:21 UTC 2025 - Dominique Leuenberger <dimstar@opensuse.org>
- Use FUSE3 starting with suse_version 1600 (aka CODE16): Release
CODE16 from the beginning without relying on FUSE 2.
- Do not add the patch conditionally to the .src.rpm, but only
apply the patch conditionally: allows to reuse src.rpm across
codestreams.
-------------------------------------------------------------------
Wed Apr 30 14:41:53 MDT 2025 - carnold@suse.com
- bsc#1242082 - libguestfs: migration to fuse 3 and deprecation of
fuse (1)
use-fuse3-for-build.patch
- Update to version 1.55.10 (jsc#PED-8910)
* mltools: decouple and simplify osinfo device support checks
* mlcustomize: disable `--inject-virtio-win osinfo`
* mltools: Fix de-oUnit-ized tests
* mltools: Unreference various objects
* Revert "mltools: Unreference various objects"
* generator: Implement struct FDevice type
* mltools: Fix memory leak in OCaml binding of libosinfo
* mlstdutils: Implement String.implode
* daemon: Rewrite {pvs,vgs,lvs}-full APIs in OCaml
* daemon: inspect: Resolve Ubuntu 22+ /dev/disk/by-id/dm-uuid-LVM-... in fstab
* Various build improvements
* daemon/fstrim.c: Issue sync_disks after fstri
-------------------------------------------------------------------
Thu Apr 3 15:04:42 MDT 2025 - carnold@suse.com

View File

@@ -18,7 +18,7 @@
Name: libguestfs
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64 riscv64
Version: 1.55.8
Version: 1.55.10
Release: 0
Summary: Access and modify virtual machine disk images
License: GPL-2.0-or-later
@@ -33,6 +33,7 @@ Source101: README
# Patches
Patch1: use-rtc-driftfix-slew-for-x86-only.patch
Patch100: use-fuse3-for-build.patch
BuildRequires: bison
BuildRequires: file-devel
@@ -61,7 +62,11 @@ BuildRequires: perl(Pod::Usage)
BuildRequires: perl(Test::More)
BuildRequires: pkgconfig(augeas)
BuildRequires: pkgconfig(bash-completion)
%if 0%{?suse_version} >= 1600
BuildRequires: pkgconfig(fuse3)
%else
BuildRequires: pkgconfig(fuse)
%endif
BuildRequires: pkgconfig(hivex)
BuildRequires: pkgconfig(jansson)
BuildRequires: pkgconfig(libacl)
@@ -91,7 +96,11 @@ to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition
schemes, qcow, qcow2, vmdk.
%prep
%autosetup -p1
%autosetup -N
%autopatch -p1 -M 99
%if 0%{?suse_version} >= 1600
%autopatch -p1 -m 100
%endif
sed -i 's|RPMVSF_MASK_NOSIGNATURES|_RPMVSF_NOSIGNATURES|' daemon/rpm-c.c
sed -i 's/tar zcf/tar -zcf/' appliance/Makefile.am
@@ -276,7 +285,11 @@ tar -czf %{buildroot}%{_libdir}/guestfs/supermin.d/zz-winsupport.tar.gz .
popd
cat > %{buildroot}%{_libdir}/guestfs/supermin.d/zz-packages-winsupport << EOF
%if 0%{?suse_version} >= 1600
libfuse3
%else
libfuse2
%endif
hwinfo
EOF

178
use-fuse3-for-build.patch Normal file
View File

@@ -0,0 +1,178 @@
References: bsc#1242082 - libguestfs: migration to fuse 3 and
deprecation of fuse (1)
See also spec file changes to use fuse3
Index: libguestfs-1.55.10/m4/guestfs-fuse.m4
===================================================================
--- libguestfs-1.55.10.orig/m4/guestfs-fuse.m4
+++ libguestfs-1.55.10/m4/guestfs-fuse.m4
@@ -21,7 +21,7 @@ AC_ARG_ENABLE([fuse],
[],
[enable_fuse=yes])
AS_IF([test "x$enable_fuse" != "xno"],[
- PKG_CHECK_MODULES([FUSE],[fuse],[
+ PKG_CHECK_MODULES([FUSE],[fuse3],[
AC_SUBST([FUSE_CFLAGS])
AC_SUBST([FUSE_LIBS])
AC_DEFINE([HAVE_FUSE],[1],[Define to 1 if you have FUSE.])
Index: libguestfs-1.55.10/lib/fuse.c
===================================================================
--- libguestfs-1.55.10.orig/lib/fuse.c
+++ libguestfs-1.55.10/lib/fuse.c
@@ -40,7 +40,7 @@
#define ENOATTR ENODATA
#endif
-#define FUSE_USE_VERSION 26
+#define FUSE_USE_VERSION 30
#include <fuse.h>
#include <fuse_lowlevel.h>
@@ -115,7 +115,7 @@ copy_xattr_list (guestfs_h *g, const str
static int
mount_local_readdir (const char *path, void *buf, fuse_fill_dir_t filler,
- off_t offset, struct fuse_file_info *fi)
+ off_t offset, struct fuse_file_info *fi, enum fuse_readdir_flags flags)
{
time_t now;
size_t i;
@@ -154,7 +154,7 @@ mount_local_readdir (const char *path, v
* not quite sure how this is ever supposed to work on large
* directories. XXX
*/
- if (filler (buf, ents->val[i].name, &stat, 0))
+ if (filler (buf, ents->val[i].name, &stat, 0, flags))
break;
}
@@ -250,7 +250,7 @@ mount_local_readdir (const char *path, v
}
static int
-mount_local_getattr (const char *path, struct stat *statbuf)
+mount_local_getattr (const char *path, struct stat *statbuf, struct fuse_file_info *fi)
{
const struct stat *buf;
CLEANUP_FREE_STAT struct guestfs_statns *r = NULL;
@@ -304,6 +304,7 @@ mount_local_access (const char *path, in
struct stat statbuf;
int r;
struct fuse_context *fuse;
+ struct fuse_file_info fi;
int ok = 1;
DECL_G ();
DEBUG_CALL ("%s, %d", path, mask);
@@ -311,7 +312,7 @@ mount_local_access (const char *path, in
if (g->ml_read_only && (mask & W_OK))
return -EROFS;
- r = mount_local_getattr (path, &statbuf);
+ r = mount_local_getattr (path, &statbuf, &fi);
if (r < 0 || mask == F_OK) {
debug (g, "%s: mount_local_getattr returned r = %d", path, r);
return r;
@@ -490,7 +491,7 @@ mount_local_symlink (const char *from, c
}
static int
-mount_local_rename (const char *from, const char *to)
+mount_local_rename (const char *from, const char *to, unsigned int flags)
{
int r;
DECL_G ();
@@ -528,7 +529,7 @@ mount_local_link (const char *from, cons
}
static int
-mount_local_chmod (const char *path, mode_t mode)
+mount_local_chmod (const char *path, mode_t mode, struct fuse_file_info *fi)
{
int r;
DECL_G ();
@@ -546,7 +547,7 @@ mount_local_chmod (const char *path, mod
}
static int
-mount_local_chown (const char *path, uid_t uid, gid_t gid)
+mount_local_chown (const char *path, uid_t uid, gid_t gid, struct fuse_file_info *fi)
{
int r;
DECL_G ();
@@ -564,7 +565,7 @@ mount_local_chown (const char *path, uid
}
static int
-mount_local_truncate (const char *path, off_t size)
+mount_local_truncate (const char *path, off_t size, struct fuse_file_info *fi)
{
int r;
DECL_G ();
@@ -582,7 +583,7 @@ mount_local_truncate (const char *path,
}
static int
-mount_local_utimens (const char *path, const struct timespec ts[2])
+mount_local_utimens (const char *path, const struct timespec ts[2], struct fuse_file_info *fi)
{
int r;
time_t atsecs, mtsecs;
@@ -1005,32 +1006,26 @@ guestfs_impl_mount_local (guestfs_h *g,
goto arg_error;
}
- debug (g, "%s: fuse_mount %s", __func__, localmountpoint);
-
- /* Create the FUSE mountpoint. */
- ch = fuse_mount (localmountpoint, &args);
- if (ch == NULL) {
- error (g, _("fuse_mount failed: %s, see error messages above"),
- localmountpoint);
- fuse_opt_free_args (&args);
- guestfs_int_free_fuse (g);
- return -1;
- }
-
- /* Set F_CLOEXEC on the channel. XXX libfuse should do this. */
- fd = fuse_chan_fd (ch);
- if (fd >= 0)
- set_cloexec_flag (fd, 1);
-
debug (g, "%s: fuse_new", __func__);
/* Create the FUSE handle. */
- g->fuse = fuse_new (ch, &args,
+ g->fuse = fuse_new (&args,
&mount_local_operations, sizeof mount_local_operations,
g);
if (!g->fuse) {
perrorf (g, _("fuse_new: %s"), localmountpoint);
- fuse_unmount (localmountpoint, ch);
+ fuse_opt_free_args (&args);
+ guestfs_int_free_fuse (g);
+ return -1;
+ }
+
+ debug (g, "%s: fuse_mount %s", __func__, localmountpoint);
+
+ /* Create the FUSE mountpoint. */
+ if (fuse_mount (g->fuse, localmountpoint) == -1) {
+ error (g, _("fuse_mount failed: %s, see error messages above"),
+ localmountpoint);
+ fuse_destroy(g->fuse);
fuse_opt_free_args (&args);
guestfs_int_free_fuse (g);
return -1;
Index: libguestfs-1.55.10/fuse/guestmount.c
===================================================================
--- libguestfs-1.55.10.orig/fuse/guestmount.c
+++ libguestfs-1.55.10/fuse/guestmount.c
@@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#define FUSE_USE_VERSION 26
+#define FUSE_USE_VERSION 30
#include <config.h>