The flockit library and tool exists solely because rsync doesn't have file
locking.
It's not used like a normal library; you don't link against it, and you don't
have to patch your source code to use it. It's inserted between your program and
its libraries by use of LD_PRELOAD.
For example:
$ env LD_PRELOAD=$(nix-build -A pkgs.flockit)/lib/libflockit.so FLOCKIT_FILE_PREFIX=test rsync SRC DEST
Besides the library a handy executable is provided which can simplify the above to:
$ $(nix-build -A pkgs.flockit)/bin/flockit test rsync SRC DEST
Also see the following blog post:
https://www.swiftstack.com/blog/2012/08/15/old-school-monkeypatching/