LU-1199 build: Clean out the build directory Clean up the build directory. Move in the direction of reserving "build/" for the special-purpose Makefile that lives there. Eventually we could rewrite the autoconf tests to eliminate that Makfile, and the build directory could disappear altogether (after finding homes for anything else that is left). The autoconf m4 file move into a top level "config" directory. Most other things that have moved are put in the new "contrib" top-level directory. For instance, "contrib/lbuild" contains all of the lbuild-related files, and "contrib/git-hooks" contains the git hooks for lustre developers. Most of the moved files were unchanged, however the lbuild scripts needed some tweaking to deal with the new location. Because of the way that Intel's build farm and git hooks expect to find certain files in fixed locations I have had to leave a few symlinks in place that point to the new locations. Change-Id: I04dc529d4f4060b892e1e4eaa8613bbc3337c414 Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/5035 Reviewed-by: Brian J. Murrell <brian.murrell@intel.com> Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
LU-2920 autoconf: delete unused LB_LINUX_MODPOST LB_LINUX_MODPOST does not seem to be used anywhere. Signed-off-by: Minh Diep <minh.diep@intel.com> Change-Id: Ibec2002ae8b74b9c6f1f6df82a35d44bd00916dc Reviewed-on: http://review.whamcloud.com/5615 Reviewed-by: Bob Glossman <bob.glossman@intel.com> Tested-by: Hudson Reviewed-by: Keith Mannthey <keith.mannthey@intel.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
LU-1468 o2iblnd: Support OFED-3.5 for o2ib OFED is having new structure based on linux kernel code + backports and packaging. Here is detailed information. http://lists.openfabrics.org/pipermail/ewg/2011-December/017156.html This patches are the lustre build improvements to support OFED 3.5, 3.x whatever future OFED release. Signed-off-by: Shuichi Ihara <sihara@ddn.com> Change-Id: Id4ffc39bc7fc24cc591bf6fb47e9b0e662993bda Reviewed-on: http://review.whamcloud.com/3011 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Brian J. Murrell <brian.murrell@intel.com> Reviewed-by: Liang Zhen <liang.zhen@intel.com> Reviewed-by: Isaac Huang <he.huang@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
LU-2675 cleanup: remove User Mode Linux specific code The UML specific code has been uncompilable for some time and no one has complained so it goes. Signed-off-by: John L. Hammond <john.hammond@intel.com> Change-Id: Ie91c6e4484fee64fec4a2e38effd8a1021e8cddb Reviewed-on: http://review.whamcloud.com/5175 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Bob Glossman <bob.glossman@intel.com>
LU-1199 build: Remove obsolete check for 2.4 kernels Remove check for 2.4 kernels, which are no longer supported. Change-Id: I4ed5b7c2686fa9b0c104444853e45900f90e1eb8 Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/4679 Tested-by: Hudson Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Brian J. Murrell <brian.murrell@intel.com> Tested-by: Maloo <whamcloud.maloo@gmail.com>
LU-1199 build: Fix style and indention in build system files Fix indentation by replacing spaces with tabs. Remove stray whitespace at end of lines. Command substitution changed from `...` notation to $(...) notation. The latter is part of the POSIX 1003.2, and is supported by Debian's dash shell, so it is relativly portable these days. build/Makefile is checked in to git, not auto-generated by the build system. Therefore a !Makefile exception is added to build/.gitignore. Also, in build/autogen.sh, fix default setting of the IFS variable to be a space and a tab, rather than 9 spaces. I believe the 9 spaces were a result of a bad cut-and-paste. Change-Id: I46270d808d7fe036f748da1cb45826bb42ab01e2 Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/4677 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Brian J. Murrell <brian.murrell@intel.com>
LU-1199 build: Remove duplicate LC_MODULE_LOADING It appears that LC_MODULE_LOADING was accidentally declared twice back-to-back in the same file. This removes the first declaration on the assumption that if my eye-balling of the code missed a difference, the second one is the one we've been using anyway. Change-Id: I04a9da80d6be7bef6e4fd35eca8f3e490a8a824f Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/4407 Tested-by: Hudson Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Keith Mannthey <keith.mannthey@intel.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1337 build: fix build on powerpc64 Previous LU-1337 commit ca512093cd29e79ff8a43d4cd921058163305784 broke the build on powerpc64 by changing the way system type is looked up, but failing to adjust the sed pattern to match the $target_cpu name. Change-Id: Ie0c8166f80c5361a8e89ab447c2025a31824914d Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/4149 Tested-by: Hudson Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1808 build: Lustre build does not support FC15. Change lbuild to support for FC15 and calm down warning message. Signed-off-by: yang sheng <ys@whamcloud.com> Change-Id: I365f708f82c01b0f72aeffa3c09e46800ca770d5 Reviewed-on: http://review.whamcloud.com/3849 Tested-by: Hudson Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com> Reviewed-by: Chris Gearing <chris.gearing@intel.com> Reviewed-by: Brian J. Murrell <brian@whamcloud.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-1337 build: add missing include dir arch/include/generated is added since kernel version v3.2. while at it, also change "uname -m" in .m4 to $target_cpu, because users may cross building. Signed-off-by: Peng Tao <tao.peng@emc.com> Change-Id: Ib9aa526a9318e5c93b05cceba9fc8cdfbf9fef0a Reviewed-on: http://review.whamcloud.com/3745 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Yang Sheng <ys@whamcloud.com> Reviewed-by: Minh Diep <mdiep@whamcloud.com>
LU-1337 build: make configure process not break for 3.4 kernel 1. remove "ifeq ($(PATCHLEVEL),4)" from build/Makefile, Rules.in "ifeq ($(PATCHLEVEL),4)" is for old 2.4 kernel, it breaks configuration process for 3.4 kernel. 2. change the "-include" file from "include/$AUTOCONF_HDIR/autoconf.h" to "include/linux/kconfig.h", as kconfig.h includes autoconf.h and defines some macros(IS_ENABLED etc.) which is needed for some header files. 3. Fix a typo from "blkkdev.h" to "blkdev.h" in lustre-core.m4 Signed-off-by: Liu Xuezhao <xuezhao.liu@emc.com> Change-Id: If1c712c194ba76a2fe46c31afad28c37f0b465c6 Reviewed-on: http://review.whamcloud.com/3396 Tested-by: Hudson Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Yang Sheng <ys@whamcloud.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: James Simmons <uja.ornl@gmail.com>
LU-812 kernel: AUTOCONF_INCLUDED removed AUTOCONF_INCLUDED has been removed since 2.6.37 and no longer there has <linux/config.h>. Change-Id: I68611638f61012b2becddc4e0dec613ed2b17c99 Signed-off-by: Wally Wang <wang@cray.com> Reviewed-on: http://review.whamcloud.com/2146 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: James Simmons <uja.ornl@gmail.com> Reviewed-by: Peng Tao <tao.peng@emc.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-506 FC15: move some headers to include/generated In FC15 (2.6.40-4) the generated kernel headers have moved from "include/linux" to "include/generated". Update configure scripts and makefiles to include this new directory. In a number of cases, Lustre code was including generated headers directly, but this was not really needed. Signed-off-by: Yang Sheng <ys@whamcloud.com> Change-Id: Id2094d8318681aa5ea08b416dc764bcf03bd8595 Reviewed-on: http://review.whamcloud.com/1329 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Lai Siyao <laisiyao@whamcloud.com> Reviewed-by: Niu Yawei <niu@whamcloud.com>
LU-723 ldiskfs: remove ext3 RHEL5 kernel series Remove the old ext3 RHEL5 kernel patch series. This has been deprecated since Lustre 1.8.6 in favour of the ext4 RHEL5 series. Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Change-Id: I1e09ff432f2e970446c3b43fb92f0c1a988159ae Reviewed-on: http://review.whamcloud.com/1603 Tested-by: Hudson Reviewed-by: Johann Lombardi <johann@whamcloud.com> Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-351 RHEL6 U1 support. that patch adds support for 2.6.32-131 kernel. Change-Id: I5c0f72a4a84d120b1820a038be82dedf806e2da1 Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com> Reviewed-on: http://review.whamcloud.com/584 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-298 Improve check for dpkg system. Use lsb_release id (Ubuntu, Debian, RedHatEnterpriseServer, etc.) to determine if the system uses dpkg, instead of just checking for the existence of the dpkg binary. For example, some people do install dpkg on their RHEL systems for various reasons. Change-Id: I74db5277cb2db00927b74b652e7945bd95bca093 Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov> Reviewed-on: http://review.whamcloud.com/519 Tested-by: Hudson Tested-by: Maloo <whamcloud.maloo@gmail.com> Reviewed-by: Brian J. Murrell <brian@whamcloud.com> Reviewed-by: Chris Gearing <chris@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
b=24416 debian packaging fixes - don't make a patch out of anything in /debian - exclude noise files from the debian built source tarball - fake debian/patche{s,d} for make dist - a few more reasons to run autogen.sh - figure out if dist tarball needs autogen.shs and include it if so - look for and run autogen.sh in the build subdir - make debdiff as part of make dist - add a debian/source/format file - mv the orig tarball and the debdiff to the debs dir - don't try to dist /debian for non-dpkg-using build targets Issue: LU-51 Change-Id: I041aaef217e107def86ce808d0e96fc6891e1dcd
b=24202 Fix broken PATHS in autoconf file. There should be a space between paths. i=sheng.yang i=brian.murrell
b=24087 reverse order of $LINUX{,_OBJ}/include It is important that /usr/src/linux-...-obj/include is searched for includes before /usr/src/linux-.../include so that the inclusion of "include/linux/autoconf.h" picks up the one for the kernel we are trying to build against, and not the one for the currently running kernel, which is what is in /usr/src/linux-.../ copy is. i=wangyb i=cliff
b=22281 refactor packaging and versioning Configure "--with-dist" switch to optimize configure to do just enough to enable "make dist" to work. There is likely more optimizations that could be done Provide reasonable defaults for the --with-linux and --with-linux-obj configure arguments. The LB_BUILDID macro determines the BUILDID to be used in the resulting packages. The LB_DOWNSTREAM_RELEASE macro implements the --with-downstream-release configure option for downstream packages to provide their own versioning details Many changes to support allowing packagers to define a value in the release string. - allow callers to tell rpm where to find the kernel source/headers and objects. - default to /lib/modules/$(uname -r)/build if not specified - XXX: this should probably be handled completely in configure - allow callers to tell rpm what the release string should be set to - the spec will default to the value that configure uses currently if not specified - this allows both the release string used in Lustre and the Release: string used in the RPM to be in sync - in the make rpms target, strip the configure arguments for --with-linux and --with-linux-obj and give them to rpmbuild via it's new switches - also, pass the release defined by the main configure to the RPM spec for further consistency - XXX: it is questionable whether this in fact has any value - put the "downstream release" right into the release as it is defined by by configure - bring the ldiskfs spec more into sync with the lustre spec file version_tag.pl/make_META.pl needed better support for git. It also needed better support for transporting the information available in a source code system into the tarball so that when unpacked, where no sourcecode system was in place, the origins of the code could still be determined. Example output: git: v1_8_3_RC1-g751b802-CHANGED-2.6.18-128.1.1.el5_lustre.1.8.0.50.20090302160821smp cvs: b1_8-20100429144101-CHANGED-2.6.18-128.1.1.el5_lustre.1.8.0.50.20090302160821smp When run in a tree from a tarball, the output will be composed of the same tag and build id (hash or datestamp) as the source the tarball came from, but will refelect whatever kernel the unpacked source was configured with. Rename the tree_status file to META. There are times when the kernel should be rebuilt for all distros, but other times only for certain distros. Make the "all distros" case easier than having to increment the version in all of the build/lbuild-$distro files. i=wangyb i=mjmac When the lustre-fix is .0, when a tag is made, it includes the .0 so just drop it. Only append the .$BUILDID to the $EXTRA_VERSION when $BUILDID is actually not empty. Otherwise we get a trailing ".". It seems that the regex(7) used in bash's [[ ]] is not terribly portable across bash versions. SLES10 expects (, ), and | (at least) escaped with \. RHEL5 will accept them either escaped or not. Ubuntu fails to match if they are escaped. We need a more consistent test for being a subdir of Lustre. Differences in how automake passes dirnames made the existing code unpredictable. When the tag format is vW_X_Y_Z and lustre-fix (Z) is _0 when a tag is made, it includes the _0 so just drop it. i=yangsheng i=wangyb The return code from git status seems to be not as one would expect and it can return both 1 or 0 in a git repository. So change up and use git branch instead. Simplify the logic around this determination as well. Due to some unknown issue with using rpmbuild with the ldiskfs tarball causing symbol mismatches, do the right thing instead and build ldiskfs first and then build lustre with the external ldiskfs. Right now the method for doing this is a bit hacky since we point lustre at the ldiskfs rpm BUILD product. The right fix is to make an ldiskfs-devel RPM, which is a future enhancement of this work. This also fixes two bugs with ldiskfs' external module support building. One is that the external ldiskfs tree check was using a file that only exists in ext3 and not ext4. The second is that ldiskfs' configure was not properly initializing ldiskfs_is_ext4 and instead depending on the rpmbuild/configure caller to pass flags to tell it to build with ext4. i=wangyb i=minh