
Utilities for aufs
http://aufs.sf.net
Junjiro R. Okajima

These utilities are always necessary for aufs.
If you forget to install them, your aufs may not work correctly.
And these are not for aufs1 essentially, except aubrsync. See below in
detail.

You will find GIT branches whose name is in form of "aufs4.x" where "x"
represents the linux kernel version, "linux-4.x". For instance,
"aufs4.0" is for linux-4.0.

You may not be able to find the GIT branch in aufs-util for your
version. In this case, you should git-checkout the branch for the
nearest lower number.
If you are using linux-4.10 and aufs4.10 (which are not released yet),
but the "aufs4.10" branch doesn't exit in this repository, then
"aufs4.9", "aufs4.8", ... or something is the branch for you.
Also you can view all branches by
	$ git branch -a

Note: The 4.x-rcN branch is to be used with `rc' kernel versions ONLY.
The minor version number, 'x' in '4.x', of aufs may not always
follow the minor version number of the kernel.
Because changes in the kernel that cause the use of a new
minor version number do not always require changes to aufs-util.

Makefile in this tree has some customizable make-variables.
- CPPFLAGS
  specify the include path if necessary.
  Some of linux kernel header files are necessary including
  linux/aufs_type.h. If you have installed kernel header files to
  /usr/include, then you may not need to specify CPPFLAGS.
  Otherwise you need to do something like this sample.
  + run "make headers_install" in your kernel source tree, and
    $LinuxSrc/usr/include is created and header files are installed
    there by default.
  + if you build aufs4 as module from aufs4-standalone.git, then
    $AufsStdalone/usr/include is created and header files are
    installed there.
  + and specify
	CPPFLAGS="-I $LinuxSrc/usr/include -I $AufsStdalone/usr/include"
  Note that your distribution may contain an obsoleted version of
  aufs_type.h in /usr/include/linux or something. When you build aufs
  utilities, make sure that your compiler refers the correct aufs header
  file which is built by "make headers_install."

- DESTDIR
  specify your install path if necessary.
  some commands have to be installed under /sbin.

- HOSTCC
  specify the compiler on host side when cross-compiling, otherwise you
  can ignore this make-variable.
  For cross-compiling, use CC for cross-compiler (target side) and HOSTCC
  for native (host side) compiler, since this package requires buiding
  and running some small internal tools.

- MountCmd, UmountCmd
  specify mount(8) and umount(8) in full path. By default, they are
  "/bin/mount" and "/bin/umount" individually.

- BuildFHSM
  specify "yes" if you want FHSM tools or if you enabled
  CONFIG_AUFS_FHSM when you built your aufs kernel module.
  The default is BuildFHSM=no.
	$ make BuildFHSM=yes

- NoLibcFTW
  specify "yes" if your libc doesn't support FTW_ACTIONRETVAL which was
  added since glibc-v2.3.3.

o /sbin/mount.aufs, /sbin/umount.aufs
  Helpers for util-linux-ng package. You should NOT invoke them
  manually. Just install them by "make install".

o /sbin/auplink
  Handles aufs pseudo-link at remount/unmount time. You can invoke it
  manually at anytime.

o /sbin/aumvdown
  Operates aufs internal feature "move-down" (opposite of
  "copy-up"). See aumvdown.8 in detail.

o /usr/bin/aubusy
  Prints PIDs which make the branch busy and un-removable.
  It runs /sbin/auibusy internally.

o /usr/bin/auchk
  Similar to generic fsck. Checks whether a branch is healthy or not
  from aufs's point of view.

o /usr/bin/aubrsync
  Move files from the upper writable branch to the lower branch.
  If you use this script with aufs1, then you need to install aufs.shlib
  to /usr/lib/aufs.shlib. Currently only the 20080211 version is tested
  for aufs1.
  The development of this script is sponcered by ASUSTek Computer Inc.
  (http://www.asus.com/).
  Kindly they agreed that I keep my aufs work as free software as it has
  been.

o /etc/default/aufs
  A library for shell scripts.

o /usr/lib/libau.so
  A dynamic link library for "readdir(3) in user-space".
  If you need this , then run "make libau.so install_ulib". And refer to
  the aufs manual in detail.


Contributions
- Michael S. Zick wrote good examples, and made them public at
	http://hg.minimodding.com/repos/aufs/


# Local variables: ;
# mode: text;
# End: ;
