syncthing/lib
Jakob Borg 75dcff0a0e
all: Copy owner/group from parent (fixes #5445) (#5479)
This adds a folder option "CopyOwnershipFromParent" which, when set,
makes Syncthing attempt to retain the owner/group information when
syncing files. Specifically, at the finisher stage we look at the parent
dir to get owner/group and then attempt a Lchown call on the temp file.
For this to succeed Syncthing must be running with the appropriate
permissions. On Linux this is CAP_FOWNER, which can be granted by the
service manager on startup or set on the binary in the filesystem. Other
operating systems do other things, but often it's not required to run as
full "root". On Windows this patch does nothing - ownership works
differently there and is generally less of a deal, as permissions are
inherited as ACLs anyway.

There are unit tests on the Lchown functionality, which requires the
above permissions to run. There is also a unit test on the folder which
uses the fake filesystem and hence does not need special permissions.
2019-01-25 09:52:21 +01:00
..
auto build: Let "go generate" create assets 2018-06-26 10:29:36 +02:00
beacon all, vendor: Switch back to non-forked thejerf/suture (#5171) 2018-09-08 12:56:56 +03:00
config all: Copy owner/group from parent (fixes #5445) (#5479) 2019-01-25 09:52:21 +01:00
connections all: Send Close BEP msg on intentional disconnect (#5440) 2019-01-09 17:31:09 +01:00
db lib/db: Do all update operations on a single item at once (#5441) 2019-01-23 10:22:33 +01:00
dialer lib/dialer: Register dialer for socks URL scheme (fixes #4515) 2017-12-08 12:04:43 +00:00
discover all: Update protobuf package 1.0.0 -> 1.2.0 (#5452) 2019-01-14 11:53:36 +01:00
events lib/events: Become a service (fixes #5372) (#5373) 2018-12-13 13:42:28 +01:00
fs all: Copy owner/group from parent (fixes #5445) (#5479) 2019-01-25 09:52:21 +01:00
ignore lib: Introduce fs.IsParent (fixes #5324) (#5326) 2018-11-22 11:16:45 +01:00
logger lib/logger: Clean up LOGGER_DISCARD handing to unbreak tests 2019-01-13 10:22:01 +01:00
model all: Copy owner/group from parent (fixes #5445) (#5479) 2019-01-25 09:52:21 +01:00
nat lib/nat: Fix clearAddresses/notify deadlock (ref #4601) (#4829) 2018-03-21 08:02:32 +01:00
osutil all: Adjust windows perms in fs package (#5200) 2018-09-16 16:09:56 +02:00
pmp all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
protocol lib/protocol: Remove support for v0.13 hello messages (#5461) 2019-01-17 20:48:43 +01:00
rand all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
rc lib/rc: Remove dead lock (fixes #5403) 2018-12-23 09:11:15 +01:00
relay all: Become a Go module (fixes #5148) (#5384) 2018-12-18 12:36:38 +01:00
scanner all: Copy owner/group from parent (fixes #5445) (#5479) 2019-01-25 09:52:21 +01:00
sha256 cmd/syncthing, lib/sha256: Skip CPU benchmarks when user decided (fixes #4348) 2017-09-06 06:55:47 +00:00
signature all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
stats lib/db: Refactor: use a Lowlevel type underneath Instance (ref #5198) (#5212) 2018-10-10 11:34:24 +02:00
sync cmd/syncthing, lib/sync: Don't do deadlock detection when STDEADLOCKTIMEOUT=0 (fixes #4644) 2018-01-15 13:33:52 +00:00
tlsutil cmd/*, lib/tlsutil: Refactor TLS stuff (fixes #5256) (#5276) 2018-10-21 14:17:50 +09:00
upgrade lib/upgrade: Tests should pass on darwin-386 2018-06-06 09:47:13 +02:00
upnp lib/upnp: Don’t log unknown device types (fixes #5038) (#5087) 2018-07-30 16:34:35 +02:00
util lib/config, lib/model: Tweaks to the auto accept feature 2017-12-07 08:33:32 +00:00
versioner lib/versioner: Fix external versioner command specification on Windows (fixes #4560) 2018-02-07 14:12:27 +00:00
watchaggregator lib/watchaggregator: Properly unsubscribe from events when stopping (ref #5372) (#5374) 2018-12-13 08:11:51 +01:00
weakhash lib/model, lib/weakhash: Abort pulling quicker on folder stop (ref #5028) 2018-07-04 08:07:33 +01:00