Commit Graph

81 Commits

Author SHA1 Message Date
Bernd Schubert
8a9e2dc20c
Use std=gnu11 (#940)
We already have some C11 pieces like Static_assert and we are likely
going to add more - tell meson to use C11.
Plain C11 does not work as there are several language extension,
like typeof - part of C23 only. We might be able to fix/workaround
such extensions with compiler ifdef, but then I prefer gnu11 over
checking which compiler is used (example gcc has __typeof vs
clangs __typeof++). And compiler extension would also defeat pedantic.
2024-04-27 14:25:48 +02:00
Bernd Schubert
80663a7936
Use single place to define the version and increase version to 3.17.0 (#932)
* Use single place to define the version

Defining the version in fuse_common.h, is removed, it is defined
through meson and provided by "libfuse_config.h". I.e. it avoids
to define the version twice - once in meson and once in
fuse_common.h.

Ideal would be to set integers in the meson file and create the version
string from these integers. However, meson requires that "project"
is the first meson.build keyword - with that it requires to
set the version from a string and then major/minor/hotfix integers
are created from string split.

Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm>

* Increase the version to 3.17.0

This is to prepare the branch for the next release.

Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm>

---------

Signed-off-by: Bernd Schubert <bernd.schubert@fastmail.fm>
2024-04-22 12:05:39 +02:00
Bernd Schubert
e48c71d445 Add glibc backtrace to signal handler
It is very hard to see in github tests what is actually failing
with signals - add the gnu-libc backtrace handler.
2024-03-20 12:37:17 +01:00
Bernd Schubert
6bda4091d4 meson: Point OSX (darwin) to https://www.fuse-t.org/
www.fuse-t.org is a more recent fuse extension for OSX
based on NFS.
2024-02-26 22:11:19 +01:00
Nikolaus Rath
7a92727d97 Released fuse-3.16.2 2023-10-10 08:38:49 +01:00
Nikolaus Rath
1f0dfae408 Released fuse-3.16.1 2023-08-08 11:15:03 +01:00
Nikolaus Rath
a98add6e49 Tagged release.
-----BEGIN PGP SIGNATURE-----
 
 iQLKBAABCgC0FiEE7TF5GyxcFhOvOIuK0RP8rDxOWZ8FAmSlQsNfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVE
 MzE3OTFCMkM1QzE2MTNBRjM4OEI4QUQxMTNGQ0FDM0M0RTU5OUYjGmh0dHA6Ly93
 d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwSHG5pa29sYXVzQHJhdGgub3JnAAoJ
 ENET/Kw8TlmfBd4P/1bM/lGriJIrikiL027XKGRWj4ZCWDhJcSfXGaQgdfxIV48q
 7teqJBs1GD5WerDifXs3Z0RUqZupE9xtbWmAipk/8vAld72T/cU/NCxNJoioOKzX
 aBkFBAS6Wuh1eRcbwkGhSHy0xrys1U08j8a+sgpsK+BVhgKg1ZQUYaD+kiK4AWId
 D75bjrBZhNtwPMnfDNwkKFZHzPRyOqNO/BvLdmLxG+c60urxE/z7vIEMGr4w9a/C
 FEEwIM2L7xnTMD/ODBEHuJxpX50uXOTsAigb92u4JB2lMLmVleYr2XQ4BezUYwij
 1wDRhUlT5pAHCbLLWsGaJR1flsnvKiga0POKPOsql+q2xX3OPxBneM2OXIB1FWEq
 OXy2amF6BPk04hYzaTbmzyuWtXBxljM521ypH/yxeyDZX6dMFIfNt9c6oPawv7It
 skjA1Ih3q/l8Hi4h39i60mXD1YYIB+BmMQNQLvLb79dGrhPQ/1UI6Em048CsrBn6
 ePegnFKQNjvwBiaVc4Lacpryny9ymnKWG/O0xHv9Ns4TBYb+Vd/RW/mJ5o15Nvtf
 s6cXI2rM/UM3OYok/RvCaz2qzwuq/JoH9oOmapIC8FzcUNI7Rj/DHrMQtBt+prpf
 dpm2p/MrANIJ6gRRKcLOAXsoYlPBBNf3WqQ0vB5Ey4mzMGLqIIABC1uT9sLD
 =jpAp
 -----END PGP SIGNATURE-----

Merge tag 'fuse-3.15.1'
2023-07-05 11:25:13 +01:00
Nikolaus Rath
0b50e26c51 Released fuse-3.15.1 2023-07-05 11:14:33 +01:00
Rudi Heitbaum
b58a0014bf
Wrapper around test applications for cross compiler environment in meson.build (#804)
This enhances commit 7be56c57f9 to allow build
fuse to be built using a cross compiler

Fixes:
../meson.build:180:12: ERROR: Can not run test applications in this cross environment.
2023-06-13 11:02:01 +01:00
Nikolaus Rath
6d08472ea4 Released 3.15.0 2023-06-09 10:36:28 +01:00
wdlkmpx
113ce78baa
meson.build: pass -D_FILE_OFFSET_BITS=64 to C/C++ compiler (#799)
libfuse requires a 64bit off_t, it's not optional
../include/fuse_common.h:938:1: error: Kstatic assertion failed: "fuse: off_t must be 64bit"

so this only takes effect if compiling for a 32bit glibc system, it's ignored everywhere else

meson by default adds -D_FILE_OFFSET_BITS=64 to C/C++ compilers, and removes duplicate declarations
There are several opened issues in meson's git repo requesting to remove that behavior, so this makes sense even more now

this fixes compilation with muon (a C99 (mostly) meson compatible build app) in a 32bit glibc system ...
2023-06-08 11:24:28 +01:00
Matthias Goergens
49b14f3256 Fix deprecated udev.get_pkgconfig_variable in meson
And slightly bump minimum meson version.
2023-04-07 13:32:35 +01:00
Matthias Görgens
7be56c57f9
Workaround musl bug when mountdir has whitespace (#761)
Fixes https://github.com/libfuse/libfuse/issues/634 and https://github.com/mpartel/bindfs/issues/106
2023-04-02 10:45:27 +01:00
Yaroslav Halchenko
0f8cb28883
Fix typos and configure spellcheck for PRs 2023-03-29 19:47:13 +01:00
Nikolaus Rath
d8d1f84200 Released 3.14.1 2023-03-26 11:44:40 +01:00
Heiko Becker
b45d66cafb Respect includedir when installing libfuse_config.h 2023-03-12 18:58:59 +00:00
Pierre Labastie
df2cde25a6 Change define for C++ too
Commit d7560cc has split defines into private and public, and passed -DHAVE_LIBFUSE-PRIVATE_CONFIG_H to all C programs. But the arguments of C++ programs have not been changed. This leads to a test failure as reported in issue #734. Pass -DHAVE_LIBFUSE-PRIVATE_CONFIG_H to C++ programs too.

Fixes: #734
2023-02-20 10:13:32 +00:00
Nikolaus Rath
3f65bb699c Released 3.14.0 2023-02-17 09:31:14 +00:00
Bernd Schubert
d7560cc991 Split config.h into private and public config
This addresses https://github.com/libfuse/libfuse/issues/729

commit db35a37def 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.
2023-02-09 10:21:29 +00:00
Nikolaus Rath
becc030e94 Released 3.13.1 2023-02-03 10:05:30 +00:00
Bernd Schubert
db35a37def Install a the configure_file (config.h) and use in headers
This addresses: https://github.com/libfuse/libfuse/issues/724

HAVE_LIBC_VERSIONED_SYMBOLS configures the library if to use
versioned symbols and is set at meson configuration time.
External filesystems (the main target, actually)
include fuse headers and the preprocessor
then acts on HAVE_LIBC_VERSIONED_SYMBOLS. Problem was now that
'config.h' was not distributed with libfuse and so
HAVE_LIBC_VERSIONED_SYMBOLS was never defined with external
tools and the preprocessor did the wrong decision.

This commit also increases the the minimal meson version,
as this depends on meson feature only available in 0.50

<quote 'meson' >
WARNING: Project specifies a minimum meson_
version '>= 0.42' but uses features which were added
 in newer versions:
 * 0.50.0: {'install arg in configure_file'}
</quote>

Additionally the config file has been renamed to "fuse_config.h"
to avoid clashes - 'config.h' is not very specific.
2023-01-28 09:35:34 +00:00
Nikolaus Rath
9acd183460 Released 3.13.0 2023-01-13 10:33:35 +00:00
Bernd Schubert
3736e0c85f convert __APPLE__ and __ULIBC__ to HAVE_LIBC_VERSIONED_SYMBOLS
In fact only gnu-libc fully supports symbol versioning, so it is
better to have a generic macro for it. This also allows to manually
disable symbol version and allows to run tests with that
configuration on gnu-libc. That testing will still not catch compat
issues, but least ensures the code can compile.

Testing for __APPLE__ and __ULIBC__ is now done by meson. More of such
checks can be added by people using other libcs.
2023-01-04 15:27:21 +00:00
Bernd Schubert
30a126c5f9 API update for fuse_loop_config additions
struct fuse_loop_config was passed as a plain struct, without any
version identifer. This had two implications

1) Any addition of new parameters required a FUSE_SYMVER for
fuse_session_loop_mt() and fuse_loop_mt() as otherwise a read
beyond end-of previous struct size might have happened.

2) Filesystems also might have been recompiled and the developer
might not have noticed the struct extensions and unexpected for
the developer (or people recomliling the code) uninitialized
parameters would have been passed.


Code is updated to have struct fuse_loop_config as an opaque/private
data type for file systems that want version 312
(FUSE_MAKE_VERSION(3, 12)). The deprecated fuse_loop_config_v1
is visible, but should not be used outside of internal
conversion functions

File systems that want version >= 32 < 312 get the previous
struct (through ifdefs) and the #define of fuse_loop_mt
and fuse_session_loop_mt ensures that these recompiled file
systems call into the previous API, which then converts
the struct. This is similar to existing compiled applications
when just libfuse updated, but binaries it is solved with
the FUSE_SYMVER ABI compact declarations.

Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2022-09-04 13:07:15 +01:00
Nikolaus Rath
7657ec158b Revert "Increase meson min version and avoid get_pkgconfig_variable warning (#682)"
This reverts commit 8db2ba06fe. This Meson version is not
yet generally available, so we do not want to depend on it..
2022-07-02 14:39:32 +01:00
Bernd Schubert
8db2ba06fe
Increase meson min version and avoid get_pkgconfig_variable warning (#682)
meson was complaining:

Build targets in project: 27
NOTICE: Future-deprecated features used:
 * 0.56.0: {'Dependency.get_pkgconfig_variable'}


So change to .get_variable(pkgconfig : 'type' and also increase
the meson minimal version to be able to handle it.

Co-authored-by: Bernd Schubert <bschubert@ddn.com>
2022-06-20 13:58:12 +01:00
Nikolaus Rath
a56147d3cb Released 3.11.0 2022-05-02 10:11:41 +01:00
Nikolaus Rath
d709c24cbd Released 3.10.5 2021-09-06 13:45:29 +01:00
Giulio Benetti
5f3fec6a79 meson.build: fix wrong .symver detection
As pointed here [1] __has_attribute() is broken for many attributes and
if it doesn't support the specific attribute it returns true, so we
can't really rely on that for this check. This lead to Buildroot
libfuse3 build failure [2] where that shows up with:
```
error: symver is only supported on ELF platforms
```
Indeed Microblaze doesn't support ELF since it doesn't include elfos.h,
but __has_attribute(symver) returns true.

So let's substitute the #ifdef __has_attribute() with a stronger test on
a function foo() with __attribute__((symver ("test@TEST"))).

[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
[2]: http://autobuild.buildroot.net/results/d6c/d6cfaf2aafaeda3c12d127f6a2d2e175b25e654f/build-end.log

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2021-08-04 09:56:44 +01:00
Nikolaus Rath
c56ba92047 Released 3.10.4 2021-06-09 09:13:01 +01:00
asafkahlon
c7a8b42f31
Add an option to disable building tests (#533)
Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
2021-06-09 09:07:25 +01:00
Heiko Becker
10bb961f63
Fix a few meson warnings (#596)
* Use meson's warning_level instead of passing -Wflags

"-Wall" is included by default and level 2 adds "-Wextra". Avoids a
warning from meson.

Signed-off-by: Heiko Becker <heirecka@exherbo.org>

* Set the C++ language standard through a meson option

Avoids a warning from meson.

Signed-off-by: Heiko Becker <heirecka@exherbo.org>
2021-04-13 18:54:10 +01:00
Nikolaus Rath
f6cb8f23ac Released 3.10.3 2021-04-12 11:18:08 +01:00
Nikolaus Rath
77d662459a Released 3.10.2 2021-02-05 09:07:28 +00:00
Nikolaus Rath
cd4aae2de6 Released 3.10.1 2020-12-07 09:52:02 +00:00
Nikolaus Rath
0105e061b9 Released 3.10.0 2020-10-09 10:47:25 +01:00
Tom Callaway
5b901ee031
Fix compilation for compilers not supporting __has_attribute 2020-09-14 09:45:02 +01:00
Tom Callaway
d7d08595e2
Update Travis to Ubuntu Bionic 2020-09-12 09:28:27 +01:00
Tom Callaway
83f6823855
Implement GCC 10 style symbol versioning (#545) 2020-09-11 10:15:43 +01:00
Nikolaus Rath
db9b4fa148 Released 3.9.4 2020-08-09 12:49:17 +01:00
Nikolaus Rath
4322cffbe9 Released 3.9.2 2020-06-12 12:12:50 +01:00
Fabrice Fontaine
fc25c5002c
Do not require C++ compiler for building
Fixes:
 - http://autobuild.buildroot.org/results/a6e64213f2910b2b81e79cb1e96e558413d7f70a

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-04-20 20:20:19 +01:00
Nikolaus Rath
fe484d2d43 Released 3.9.1 2020-03-19 20:00:41 +00:00
Nikolaus Rath
b5060b0642 Released 3.9.0 2019-12-14 10:39:13 +00:00
Nikolaus Rath
4afe7ca1e8 Released 3.8.0 2019-11-03 09:53:39 +00:00
Nikolaus Rath
62c1941cc8 Released 3.7.0 2019-09-27 20:01:33 +01:00
Nikolaus Rath
82e10e576e Released 3.6.2 2019-07-09 05:36:50 -07:00
Nikolaus Rath
38c947503d Released 3.6.1 2019-06-13 15:25:07 +01:00
Nikolaus Rath
be1c469530 Released 3.6.0 2019-06-13 13:01:10 +01:00
Nikolaus Rath
055f272517 Added new example filesystem
passthrough_hp puts emphasis and performance and correctness, rather
than simplicity.
2019-05-09 14:16:37 -05:00