Notes for util-linux-ng developers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AUTOTOOLS: * "./autogen.sh" generates all necessary files (run it after checkout from git) * "make mrproper" removes all generates files. You have to call autogen.sh after mrproper. * "make distclean" is subset of mrproper. It removes all unnecessary files, but code is still possible recompile by "./configure; make" * "make dist-gzip" (or -bzip2) creates tarball which is possible use without autogen.sh PATCHES: * send your patches to the mailing list or to upstream maintainer (see the AUTHORS file) * diff -u * don't include generated (autotools) stuff to your patches * patches are delivered via email only. Downloading them from internet servers is a pain. * one patch per email, with the changelog in the body of the email. * Subject: [PATCH] subsystem: description * if someone else wrote the patch, they should be credited (and blamed) for it. To communicate this, add a line: From: John Doe * add a Signed-off-by line: Signed-off-by: Foo Bar * there is a lot of really useful rules. Please, read: The perfect patch http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt SCM (source code management): git clone git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git util-linux-ng * maintenance branch(es) - created for every . release, branch name: v. * master branch - contains what are reasonably tested and ready to next release - it's source for releases and release candidates - active development does not usually happen on "master" (except trivial and non-invasive patches). * devel branch - the status of this branch is: "it works for me". It means useful but not well tested patches. - it's source for occasional snapshots - for long-term development or invasive changes should be an active development forked into a separate branch (topic branches) from the tip of "master". * A new tag object is created for: - every release, tag name: v - every public snapshot, tag name: s-YYYYMMDD