SHA256
1
0
forked from pool/fuse3

Accepting request 1064198 from filesystems

- Update to release 3.13.1

OBS-URL: https://build.opensuse.org/request/show/1064198
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fuse3?expand=0&rev=23
This commit is contained in:
Dominique Leuenberger 2023-02-11 20:55:55 +00:00 committed by Git OBS Bridge
commit 37b06b545c
7 changed files with 290 additions and 23 deletions

View File

@ -0,0 +1,255 @@
From d7560cc9916b086bfe5d86459cc9f04033edd904 Mon Sep 17 00:00:00 2001
From: Bernd Schubert <bschubert@ddn.com>
Date: Tue, 7 Feb 2023 23:06:42 +0100
Subject: [PATCH] Split config.h into private and public config
This addresses https://github.com/libfuse/libfuse/issues/729
commit db35a37def14b72181f3630efeea0e0433103c41 introduced a public
config.h (rename to fuse_config.h to avoid conflicts) that
was installed with the package and included by libfuse users
through fuse_common.h. Probablem is that this file does not have
unique defines so that they are unique to libfuse - on including
the file conflicts with libfuse users came up.
In principle all defines could be prefixed, but then most of them
are internal for libfuse compilation only. So this splits out
publically required defines to a new file 'libfuse_config.h'
and changes back to include of "fuse_config.h" only when
HAVE_LIBFUSE_PRIVATE_CONFIG_H is defined.
This also renames HAVE_LIBC_VERSIONED_SYMBOLS to
LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS, as it actually
better explains for libfuse users what that variable
is for.
---
include/fuse.h | 10 ++++-----
include/fuse_common.h | 5 +++++
include/fuse_lowlevel.h | 4 ++--
lib/compat.c | 2 +-
lib/fuse_misc.h | 2 +-
lib/meson.build | 2 +-
meson.build | 47 ++++++++++++++++++++++++++++-------------
7 files changed, 47 insertions(+), 25 deletions(-)
diff --git a/include/fuse.h b/include/fuse.h
index 2888d2b..6f162dd 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -948,15 +948,15 @@ struct fuse *fuse_new_30(struct fuse_args *args, const struct fuse_operations *o
size_t op_size, void *private_data);
#define fuse_new(args, op, size, data) fuse_new_30(args, op, size, data)
#else
-#if (defined(HAVE_LIBC_VERSIONED_SYMBOLS))
+#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
struct fuse *fuse_new(struct fuse_args *args, const struct fuse_operations *op,
size_t op_size, void *private_data);
-#else /* HAVE_LIBC_VERSIONED_SYMBOLS */
+#else /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
struct fuse *fuse_new_31(struct fuse_args *args,
const struct fuse_operations *op,
size_t op_size, void *user_data);
#define fuse_new(args, op, size, data) fuse_new_31(args, op, size, data)
-#endif /* HAVE_LIBC_VERSIONED_SYMBOLS */
+#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
#endif
/**
@@ -1053,11 +1053,11 @@ int fuse_loop_mt_32(struct fuse *f, struct fuse_loop_config *config);
*
* See also: fuse_loop()
*/
-#if (defined(HAVE_LIBC_VERSIONED_SYMBOLS))
+#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
int fuse_loop_mt(struct fuse *f, struct fuse_loop_config *config);
#else
#define fuse_loop_mt(f, config) fuse_loop_mt_312(f, config)
-#endif /* HAVE_LIBC_VERSIONED_SYMBOLS */
+#endif /* LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS */
#endif
diff --git a/include/fuse_common.h b/include/fuse_common.h
index 1d050bb..8ee1a34 100644
--- a/include/fuse_common.h
+++ b/include/fuse_common.h
@@ -14,7 +14,12 @@
#ifndef FUSE_COMMON_H_
#define FUSE_COMMON_H_
+#ifdef HAVE_LIBFUSE_PRIVATE_CONFIG_H
#include "fuse_config.h"
+#endif
+
+#include "libfuse_config.h"
+
#include "fuse_opt.h"
#include "fuse_log.h"
#include <stdint.h>
diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
index 96088d7..9099e45 100644
--- a/include/fuse_lowlevel.h
+++ b/include/fuse_lowlevel.h
@@ -1958,7 +1958,7 @@ struct fuse_cmdline_opts {
* @param opts output argument for parsed options
* @return 0 on success, -1 on failure
*/
-#if (defined(HAVE_LIBC_VERSIONED_SYMBOLS))
+#if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
int fuse_parse_cmdline(struct fuse_args *args,
struct fuse_cmdline_opts *opts);
#else
@@ -2076,7 +2076,7 @@ int fuse_session_loop(struct fuse_session *se);
int fuse_session_loop_mt_32(struct fuse_session *se, struct fuse_loop_config *config);
#define fuse_session_loop_mt(se, config) fuse_session_loop_mt_32(se, config)
#else
- #if (defined(HAVE_LIBC_VERSIONED_SYMBOLS))
+ #if (defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
/**
* Enter a multi-threaded event loop.
*
diff --git a/lib/compat.c b/lib/compat.c
index cab6cbf..0bac39e 100644
--- a/lib/compat.c
+++ b/lib/compat.c
@@ -34,7 +34,7 @@
/**
* Compatibility ABI symbol for systems that do not support version symboling
*/
-#if (!defined(HAVE_LIBC_VERSIONED_SYMBOLS))
+#if (!defined(LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS))
/* With current libfuse fuse_parse_cmdline is a macro pointing to the
* versioned function. Here in this file we need to provide the ABI symbol
* and the redirecting macro is conflicting.
diff --git a/lib/fuse_misc.h b/lib/fuse_misc.h
index 37e3635..855edc3 100644
--- a/lib/fuse_misc.h
+++ b/lib/fuse_misc.h
@@ -15,7 +15,7 @@
Note: "@@" denotes the default symbol, "@" is binary a compat version.
*/
-#ifdef HAVE_LIBC_VERSIONED_SYMBOLS
+#ifdef LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS
# if HAVE_SYMVER_ATTRIBUTE
# define FUSE_SYMVER(sym1, sym2) __attribute__ ((symver (sym2)))
# else
diff --git a/lib/meson.build b/lib/meson.build
index 54d0759..9044630 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -11,7 +11,7 @@ else
endif
deps = [ thread_dep ]
-if cfg.get('HAVE_ICONV')
+if private_cfg.get('HAVE_ICONV')
libfuse_sources += [ 'modules/iconv.c' ]
libiconv = cc.find_library('iconv', required: false)
if libiconv.found()
diff --git a/meson.build b/meson.build
index eb7b477..fb6451a 100644
--- a/meson.build
+++ b/meson.build
@@ -16,12 +16,23 @@ elif platform == 'cygwin' or platform == 'windows'
'Take a look at http://www.secfs.net/winfsp/ instead')
endif
-#
-# Feature detection
-#
-cfg = configuration_data()
cc = meson.get_compiler('c')
+#
+# Feature detection, only available at libfuse compilation time,
+# but not for application linking to libfuse.
+#
+private_cfg = configuration_data()
+
+#
+# Feature detection, the resulting config file is installed
+# with the package.
+# Note: Symbols need to be care fully named, to avoid conflicts
+# with applications linking to libfuse and including
+# this config.
+#
+public_cfg = configuration_data()
+
# Default includes when checking for presence of functions and
# struct members
include_default = '''
@@ -35,27 +46,27 @@ include_default = '''
'''
args_default = [ '-D_GNU_SOURCE' ]
-cfg.set_quoted('PACKAGE_VERSION', meson.project_version())
+private_cfg.set_quoted('PACKAGE_VERSION', meson.project_version())
# Test for presence of some functions
test_funcs = [ 'fork', 'fstatat', 'openat', 'readlinkat', 'pipe2',
'splice', 'vmsplice', 'posix_fallocate', 'fdatasync',
'utimensat', 'copy_file_range', 'fallocate' ]
foreach func : test_funcs
- cfg.set('HAVE_' + func.to_upper(),
+ private_cfg.set('HAVE_' + func.to_upper(),
cc.has_function(func, prefix: include_default, args: args_default))
endforeach
-cfg.set('HAVE_SETXATTR',
+private_cfg.set('HAVE_SETXATTR',
cc.has_function('setxattr', prefix: '#include <sys/xattr.h>'))
-cfg.set('HAVE_ICONV',
+private_cfg.set('HAVE_ICONV',
cc.has_function('iconv', prefix: '#include <iconv.h>'))
# Test if structs have specific member
-cfg.set('HAVE_STRUCT_STAT_ST_ATIM',
+private_cfg.set('HAVE_STRUCT_STAT_ST_ATIM',
cc.has_member('struct stat', 'st_atim',
prefix: include_default,
args: args_default))
-cfg.set('HAVE_STRUCT_STAT_ST_ATIMESPEC',
+private_cfg.set('HAVE_STRUCT_STAT_ST_ATIMESPEC',
cc.has_member('struct stat', 'st_atimespec',
prefix: include_default,
args: args_default))
@@ -63,7 +74,7 @@ cfg.set('HAVE_STRUCT_STAT_ST_ATIMESPEC',
#
# Compiler configuration
#
-add_project_arguments('-D_REENTRANT', '-DHAVE_CONFIG_H', '-Wno-sign-compare',
+add_project_arguments('-D_REENTRANT', '-DHAVE_LIBFUSE_PRIVATE_CONFIG_H', '-Wno-sign-compare',
'-Wstrict-prototypes', '-Wmissing-declarations', '-Wwrite-strings',
'-fno-strict-aliasing', language: 'c')
add_project_arguments('-D_REENTRANT', '-DHAVE_CONFIG_H', '-D_GNU_SOURCE',
@@ -111,7 +122,7 @@ endif
if versioned_symbols == 1
message('Enabling versioned libc symbols')
- cfg.set('HAVE_LIBC_VERSIONED_SYMBOLS', 1)
+ public_cfg.set('LIBFUSE_BUILT_WITH_VERSIONED_SYMBOLS', 1)
# gcc-10 and newer support the symver attribute which we need to use if we
# want to support LTO
@@ -140,9 +151,15 @@ else
message('Disabling versioned libc symbols')
endif
-# Write the test results into config.h (stored in build directory)
-configure_file(output: 'fuse_config.h',
- configuration : cfg, install: true, install_dir: 'include/fuse3')
+# Write private test results into fuse_config.h (stored in build directory)
+configure_file(output: 'fuse_config.h', configuration : private_cfg)
+
+# Write the test results, installed with the package,
+# symbols need to be properly prefixed to avoid
+# symbol (define) conflicts
+configure_file(output: 'libfuse_config.h',
+ configuration : public_cfg,
+ install: true, install_dir: 'include/fuse3')
# '.' will refer to current build directory, which contains config.h
include_dirs = include_directories('include', 'lib', '.')
--
2.39.1

View File

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

View File

@ -1,19 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQK3BAABCgChFiEE7TF5GyxcFhOvOIuK0RP8rDxOWZ8FAmPBM7BfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVE
MzE3OTFCMkM1QzE2MTNBRjM4OEI4QUQxMTNGQ0FDM0M0RTU5OUYjGmh0dHA6Ly93
d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwACgkQ0RP8rDxOWZ8x1xAAwI8CHIWM
hZb5ZjrmAtco1VKrtqG/rpsZ//PCq7ttJK4J8Qd0s/dDqWTfo0B7HyCez7xbpSj7
bHmfQJkZun5E7P0e6evU39XRiCDZqLsYmqrLxRKyCyMkbXoOwz4Kyn737lzvqElU
XU6hUuzwKHZTKf0AaPcaWqvEVwji3pr9QJCUH6yzUTWsD3tli3MfEFFMly+IAo3D
2FnhT7rm0D5hKvX0wgZ7yfzn82sZ3OcnW6lavrieDAH/1LoWWZUM0dUjQty3dGjz
7KYMeq405xOOfUz0mvbgDCOR/plLEukAJAa2zhO5Tl+VO1BD04GHOE4Uh1KfsjGr
wL3VSAYnpeu4ohljemMrPa23X5NJvzRK+tU4/rLPBFnKI4pEA5urQXnK1a3KCWOf
g7OYVzIgIofOwlqxH3Kh8B2gHIzZYspBTDCDep4pk8d9z2N8WSpAmM4jwFNslZTW
AQkbFQBbWUW1unvzNj4270/X8FiKHibKeRmmDdbrLEomwnwV+wcz9OBGV3F5jTva
P/jvBXnADEH62v2ERDphDFaKOT8Yn2wTVxJsxLsDODqRiIE0IKuHIduwFKwYsMZP
GrQQrQU9teMr3V2SQuqOgMgBrZilY+CiRl3yeaUo/JMNk2uoL2ipEtpOpgUYYqDV
GuSIFRxTKdaH499BLt9bnCuz343achglKSI=
=K+CX
-----END PGP SIGNATURE-----

3
fuse-3.13.1.tar.xz Normal file
View File

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

19
fuse-3.13.1.tar.xz.asc Normal file
View File

@ -0,0 +1,19 @@
-----BEGIN PGP SIGNATURE-----
iQK3BAABCgChFiEE7TF5GyxcFhOvOIuK0RP8rDxOWZ8FAmPc3IpfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVE
MzE3OTFCMkM1QzE2MTNBRjM4OEI4QUQxMTNGQ0FDM0M0RTU5OUYjGmh0dHA6Ly93
d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwACgkQ0RP8rDxOWZ85wg//SmiPbNBP
swi7sU5FfvD+fxQjBS6Ed87Kp0aiECNzqmc2kUUXMA2LctmfLYydIRY8PtxqtWWb
qjET6fRMbRzT4BETJ5m91nNkv2r4mqgZ8NJ7IpaF9Vnk+U6XW13+DQPZV5kJZH4U
TbQsSDdbOrq+FEBGscGN0oOvZ4REryufpPYyF6qxNpL8YCm/feDJ0su4OHWBVOfH
UEUck1S3m4FaJzem16CbUb69vrCnyjTQrSaNQTpZ4VVWgVDesbpq81R8sy5qZOmf
Qtwmfop3+56g62jQLVNyrW0QzTPq+Da52cf9YB0AUy5dbas0IlFob2n2h6dPqNdC
CSoA8pXa+4jSREhuD4zD6ruhsE9/t6f5wK3NosBxS3qo04P0ixkQXojoL6Qea2da
LV5YVGx4IxGZrMUWvxYoMV3uEJiiryNw8pk6CM/vM3C6xIJs57+T664QFahAssqs
ttGUpNYb9Xfvf8zMA9BmVOk6HeEWpSYdjIlsb3iBqbmBj7iqFTVcsTTEDdd5uYPC
njPySetkhyrpjeDjnYvefLeN1yx3dfBy6z9IDNk2EsmNkD2pww3jTT0GguGQ/iEM
ch2h/End7O12Eu6qGcvU2pkqzxz+Pco1+jeQQ4KeM0eukPRePTdJFcHYWNywWgT+
6BI2kG4r2wx2V1D4r4zmFLobQChtv1eaEl4=
=AIyT
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Feb 6 19:46:51 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 3.13.1
* Fixed an issue that resulted in errors when attempting to
compile against installed libfuse headers (because libc
symbol versioning support was not detected correctly in this
case).
- Add 0001-Split-config.h-into-private-and-public-config.patch
to fix doubly-defined macros and build failure elsewhere.
-------------------------------------------------------------------
Fri Jan 13 21:23:26 UTC 2023 - Jan Engelhardt <jengelh@inai.de>

View File

@ -17,7 +17,7 @@
Name: fuse3
Version: 3.13.0
Version: 3.13.1
Release: 0
Summary: Reference implementation of the "Filesystem in Userspace"
License: BSD-2-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later
@ -28,6 +28,7 @@ Source1: https://github.com/libfuse/libfuse/releases/download/fuse-%versi
Source2: fuse.keyring
Source1000: baselibs.conf
Patch1: conf-rename.patch
Patch2: 0001-Split-config.h-into-private-and-public-config.patch
BuildRequires: fdupes
BuildRequires: meson
BuildRequires: pkgconfig