Commit Graph

56 Commits

Author SHA1 Message Date
trapexit
d4dc0701d6
Create ld_preload to reopen files on underlying filesystem (#1294) 2024-01-22 12:42:55 -06:00
Antonio SJ Musumeci
0c555e71a0 Initialize readdir threadpool after daemonizing 2023-08-28 22:47:04 -05:00
Antonio SJ Musumeci
a4491169b0 Remove FUSE_USE_VERSION, no longer used 2023-01-29 17:04:08 -05:00
Antonio SJ Musumeci
8adebc9489 new features: follow-symlinks, rename-exdev, link-exdev
* follow-symlinks: allows mergerfs to transparently follow symlinks
* link-exdev: in the event a link returns EXDEV create a symlink instead
* rename-exdev: in the event a rename returns EXDEV move the oldpath and
  create a symlink for the newpath
2021-02-11 23:24:08 -05:00
Antonio SJ Musumeci
538467b86d config: rework global config, remove rwlock, make branches RCU like
Also added unit tests. Should have done separately but found a number of bugs.
2021-01-14 21:02:10 -05:00
KARBOWSKI Piotr
678626ef82 Makefile: support CXXFLAGS and LDFLAGS passed via environment 2020-08-08 22:03:50 +02:00
Antonio SJ Musumeci
54c41c4994 rework config management
* Add standard way to do str2val and val2str conversion
* Add support for a config file
* Add support for reading and writing settings via ioctl
2020-06-18 18:54:25 -04:00
Antonio SJ Musumeci
698c4147fc fix getdent name length calculation 2020-03-12 23:45:20 -04:00
Antonio SJ Musumeci
5ce428ca59 rework makefiles + install mount tools 2020-02-21 12:33:00 -05:00
James Sanderson
f77d1d9929 Force symlink creation (don't error if it already exists) 2019-08-31 18:41:54 +01:00
Antonio SJ Musumeci
229d8517c0 fix mount.mergerfs generation 2019-05-20 08:17:06 -04:00
Antonio SJ Musumeci
825fcf7f35 cleanup and rework build system 2019-05-03 09:42:15 -04:00
Antonio SJ Musumeci
61d764d0fd makefile: remove superclean dependency from tarball 2019-03-12 23:24:17 -04:00
Antonio SJ Musumeci
b0b265b8e5 parallel deb building 2019-03-12 23:11:27 -04:00
Antonio SJ Musumeci
1be9900733 rework makefiles for better manage parallel builds 2019-03-10 19:29:35 -04:00
Antonio SJ Musumeci
2af0dcd273 fix building of deb pkg 2019-02-23 01:35:22 -05:00
Antonio SJ Musumeci
95c0cc741d replace libfuse's autoconf with makefile 2019-02-18 21:36:32 -05:00
Antonio SJ Musumeci
6de8e4471c general cleanup of makefile, add static & lto building 2018-12-02 15:30:15 -05:00
Antonio SJ Musumeci
1885a82cce remove libattr dependency 2018-10-09 13:50:45 -04:00
Andrey Mazo
756d4ff0ff
Makefile: option for building with system libfuse
Add INTERNAL_FUSE variable to control linking against
bundled libfuse vs external/system libfuse.
If external libfuse is requested,
`pkg-config` is used to obtain CFLAGS/LIBS/LDFLAGS and
to check that the provided external libfuse is >= 2.9.7.

This might hopefully get mergerfs closer to inclusion into distros.

Link: https://github.com/trapexit/mergerfs/issues/431
Link: https://bugs.gentoo.org/587956#c6
2018-08-20 00:05:58 +03:00
Andrey Mazo
e987ff46c2
Makefile: don't touch LDFLAGS
These are more like LIBS rather than LDFLAGS.
They are used just in one place,
so simply put them inline.

Also, use LDFLAGS provided by the user during actual link.

This helps users pass their own LDFLAGS.
For example, this is important on Gentoo,
where LDFLAGS='-Wl,-O1 -Wl,--as-needed' is passed by default.
2018-08-13 06:02:29 +03:00
Antonio SJ Musumeci
9830e29945 fix version generation 2018-03-09 21:06:00 -05:00
Antonio SJ Musumeci
ebe737e995 fixup makefile 2017-08-06 14:39:56 -04:00
Antonio SJ Musumeci
a7b126cb48 use pragma once in headers 2017-06-30 11:38:34 -04:00
Antonio SJ Musumeci
de0985c135 add libfuse 2.9.7 to repo and build against libfuse.a 2017-06-02 11:25:25 -04:00
Antonio SJ Musumeci
8b976ab3c1 support older libfuse without utime_omit_ok flag 2017-04-11 09:23:40 -04:00
Antonio SJ Musumeci
b1459c6cdc only remove src/version.hpp if git repo and git available 2016-12-14 21:42:43 -05:00
Antonio SJ Musumeci
192bb9c57e remove usage of -D from install 2016-10-28 22:04:15 -04:00
Antonio SJ Musumeci
064fd5560f bump FUSE_USE_VERSION to 29 2016-08-04 14:02:59 -04:00
Antonio SJ Musumeci
382ca876ca tweak man page creation 2016-03-10 18:42:32 -05:00
Antonio SJ Musumeci
3e20adb109 remove clone test tool 2016-01-21 14:48:12 -05:00
Antonio SJ Musumeci
de776b7cf0 remove tooling from repo. closes #198 2016-01-19 16:29:51 -05:00
Antonio SJ Musumeci
242af777be move from MIT to ISC license. closes #194 2016-01-14 16:56:38 -05:00
Antonio SJ Musumeci
51ae7d1980 change make to work with non-bash shells 2015-12-14 23:50:02 -05:00
Antonio SJ Musumeci
8ed11a0e8f if pandoc doesn't exist copy premade version 2015-10-17 21:38:15 -04:00
Antonio SJ Musumeci
46c8361fa9 offer prebuilt manpage for platforms without easy access to pandoc 2015-10-16 18:50:51 -04:00
Antonio SJ Musumeci
5a76c41236 create mount.mergerfs symlink. closes #149 2015-10-12 23:43:17 -04:00
Antonio SJ Musumeci
f6d396c30d audit (and fix) file permissions and ownership. closes #148 2015-10-06 00:37:03 -04:00
Antonio SJ Musumeci
c289dafadc swap deb and unsigned-deb make tagets. closes #140 2015-09-26 14:12:10 -04:00
Antonio SJ Musumeci
5808ab7795 move on enospc when writing feature. closes #141
This feature mimics the standard mhddfs behavior but is more thorough.
If a write fails and the errno is set to ENOSPC then mergerfs will (if
the feature is enabled) attempt to move the file to the drive with
the most free space but only if it has enough room for the file plus
the amount to be written. If that transfer is successful it will then
unlink the original file and attempt the previously failed write again.

The copy includes copying the path and file including the acls, owners,
attributes, extended attributes, and timestamps.
2015-09-25 15:14:17 -04:00
Antonio SJ Musumeci
3163258a33 make changing credentials opportunistic + per thread setgroups cache
closes #129,#131
2015-09-14 19:00:07 -04:00
Antonio SJ Musumeci
e98b801c9d remove version.hpp on clean 2015-09-05 22:29:28 -04:00
Antonio SJ Musumeci
b22528bac4 add user.mergerfs.version xattr 2015-09-05 21:48:15 -04:00
Antonio SJ Musumeci
08d07b71e1 add building of rpm 2015-09-05 18:41:18 -04:00
Antonio SJ Musumeci
ab68ac0cb1 enhance deb building 2015-08-07 21:03:39 -04:00
Antonio SJ Musumeci
1f90203025 use standard platform macros. closes #43 2015-02-02 21:30:31 -05:00
Antonio SJ Musumeci
d1f3bd82e8 add clonepath tool 2015-01-29 14:28:34 -05:00
Antonio SJ Musumeci
613b996296 support RHEL6. closes #29 2014-11-04 13:52:04 -05:00
Antonio SJ Musumeci
15f88494e4 add custom git log to debian changelog script 2014-08-14 21:54:22 -04:00
Antonio SJ Musumeci
f385f02d0f add -O2 to CFLAGS 2014-06-18 10:40:54 -04:00