[Lustre-discuss] Lustre Build - Ubuntu 14.04 LTS
Thomas Stibor
t.stibor at gsi.de
Sat May 3 09:09:26 PDT 2014
Hi Steven,
the current kernel version in Ubuntu 14.04 TLS is "3.13.0-24-generic
#46-Ubuntu" and
there are still open issues for 3.12 to be solved
(https://jira.hpdd.intel.com/browse/LU-4416) before it can be merged
into the master. If you checkout from git.whamcloud.com the master and
try to compile
(./configure --disable-server --disable-client && make) on Ubuntu 14.04
Lustre you will run into:
/home/thomas/tmp/lustre-release/libcfs/include/libcfs/linux/linux-mem.h:
In function 'set_shrinker':
/home/thomas/tmp/lustre-release/libcfs/include/libcfs/linux/linux-mem.h:140:10:
error: 'struct shrinker' has no member named 'shrink'
s->shrink = func;
^
cc1: all warnings being treated as errors
make[6]: ***
[/home/thomas/tmp/lustre-release/libcfs/libcfs/linux/linux-tracefile.o]
Error 1
make[5]: *** [/home/thomas/tmp/lustre-release/libcfs/libcfs] Error 2
make[4]: *** [/home/thomas/tmp/lustre-release/libcfs] Error 2
make[3]: *** [_module_/home/thomas/tmp/lustre-release] Error 2
make[3]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/home/thomas/tmp/lustre-release'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/thomas/tmp/lustre-release'
make: *** [all] Error 2
For Lustre client only you can do the following (however not for
3.13/3.12). I tested that for Debian Wheezy:
1.) Install kernel package in Debian and unpack in /usr/src
2.) Checkout Lustre and change file debian/rules for building client
only to:
./configure --disable-server --disable-ldfiskfs --with-o2ib
--enable-quota --enable-snmp --with-linux=/usr/src/linux-3.2.51
3.) Run the following script:
#!/bin/bash
unset DEBEMAIL
unset EMAIL
unset DEBFULLNAME
unset NAME
export DEBFULLNAME="Niemand Nobody"
export EMAIL="npcomplete at example.com"
# Extract lustre version, replace "_" by "." and remove leading letter "v".
LUSTRE_VERSION=$(echo `git describe` | sed -e "s/_/\./g" | cut -c2-)
# Add entry into debian/changelog such that packages have proper version
names.
dch --newversion $LUSTRE_VERSION --distribution unstable --nomultimaint
-t "Build from official master upstream."
#
sh ./autogen.sh
# Build debian packages.
dpkg-buildpackage
# Build modules.
export MODULE_LOC=${PWD}
cd /usr/src/linux
make-kpkg modules_image --append-to-version -lustre-my-build --revision
`date +"%Y%m%d"`
#################################################
The build DEBs can be e.g. found here:
http://web-docs.gsi.de/~tstibor/lustre/lustre-builds/wheezy/debian-3.2.0-4-amd64/
If you want to build Lustre with server support you have to make sure,
that you actual kernel version matches
the one listed in directory lustre/kernel_patches/series:
-rw-rw-r-- 1 thomas thomas 239 May 3 17:21 2.6-rhel6.series
-rw-rw-r-- 1 thomas thomas 163 May 3 17:21 2.6-sles11.series
-rw-rw-r-- 1 thomas thomas 175 May 3 17:21 3.0-sles11.series
-rw-rw-r-- 1 thomas thomas 178 May 3 17:21 3.0-sles11sp3.series
-rw-rw-r-- 1 thomas thomas 106 May 3 17:21 3.x-fc18.series
The full howto is e.g. here:
https://wiki.hpdd.intel.com/display/PUB/Building+Lustre+from+Source
There is currently another patch in review
(http://review.whamcloud.com/#/c/6427/).
However, it fixes the warnings: e.g.
"...
dh_installdeb: This package will soon FTBFS; time to fix it!
dh_fixperms: No compatibility level specified in debian/compat
..."
and issues on not used linked libs.
Cheers
Thomas
On 05/02/2014 09:35 PM, Steven Lokie wrote:
> So I'm building off the 2.5 branch and when I'm trying to build out
> the debian packages I get a general failure
>
>
> rm -f autoMakefile
> make[4]: Leaving directory
> `/home/imemadmin/Desktop/lustre-release/debian/lustre-source/usr/src/modules/lustre/ldiskfs'
> Making distclean in .
> make[4]: Entering directory
> `/home/imemadmin/Desktop/lustre-release/debian/lustre-source/usr/src/modules/lustre'
> test -z ".*.cmd .*.flags *.o *.ko *.mod.c .depend .*.1.*
> Modules.symvers Module.symvers" || rm -f .*.cmd .*.flags *.o *.ko
> *.mod.c .depend .*.1.* Modules.symvers Module.symvers
> test -z "Makefile Rules lustre.spec
> lustre/kernel_patches/targets/2.6-rhel6.target
> lustre/kernel_patches/targets/2.6-rhel5.target
> lustre/kernel_patches/targets/2.6-sles11.target
> lustre/kernel_patches/targets/3.0-sles11.target
> lustre/kernel_patches/targets/3.0-sles11sp3.target
> lustre/kernel_patches/targets/2.6-fc11.target
> lustre/kernel_patches/targets/2.6-fc12.target
> lustre/kernel_patches/targets/2.6-fc15.target
> lustre/kernel_patches/targets/3.x-fc18.target" || rm -f Makefile Rules
> lustre.spec lustre/kernel_patches/targets/2.6-rhel6.target
> lustre/kernel_patches/targets/2.6-rhel5.target
> lustre/kernel_patches/targets/2.6-sles11.target
> lustre/kernel_patches/targets/3.0-sles11.target
> lustre/kernel_patches/targets/3.0-sles11sp3.target
> lustre/kernel_patches/targets/2.6-fc11.target
> lustre/kernel_patches/targets/2.6-fc12.target
> lustre/kernel_patches/targets/2.6-fc15.target
> lustre/kernel_patches/targets/3.x-fc18.target
> rm -f config.h stamp-h1
> rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
> make[4]: Leaving directory
> `/home/imemadmin/Desktop/lustre-release/debian/lustre-source/usr/src/modules/lustre'
> rm -f config.status config.cache config.log configure.lineno
> config.status.lineno
> rm -f autoMakefile
> make[3]: Leaving directory
> `/home/imemadmin/Desktop/lustre-release/debian/lustre-source/usr/src/modules/lustre'
> rm -rf debian/substvars debian/*.bak debian/*~ *~ *-stamp
> debian/linux-patch-lustre
> ls -d debian/lustre-client-modules-* | grep -v _KVERS_ | xargs rm -f
> || true
> # only remove this if the clean was not called from kdist_clean
> if [ "$MA_SOURCE_PKG" = "" ]; then \
> rm -rf debian/m-a_root; \
> fi
> dh_clean
> # make sure we have at least a basic control in place (see build-stamp)
> rm -f debian/control
> cp debian/control.main debian/control
> make[2]: Leaving directory
> `/home/imemadmin/Desktop/lustre-release/debian/lustre-source/usr/src/modules/lustre'
> # Create the module-source tarball.
> cd debian/lustre-source/usr/src && tar jcf lustre.tar.bz2 modules
> rm -rf debian/lustre-source/usr/src/modules
> dh_install -plustre-source
> dh_installchangelogs -p lustre-source lustre/ChangeLog
> dh_installdocs -p lustre-source
> dh_link -p lustre-source /usr/share/modass/packages/default.sh
> /usr/share/modass/overrides/lustre-source
> dh_compress -p lustre-source
> dh_installdeb -p lustre-source
> dh_fixperms -p lustre-source
> dh_gencontrol -p lustre-source
> dh_md5sums -p lustre-source
> dh_builddeb -p lustre-source
> dpkg-deb: building package `lustre-source' in
> `../lustre-source_2.5.1-1_all.deb'.
> dh_testdir
> dh_testroot
> dh_installdirs -p lustre-utils
> dh_installdocs -p lustre-utils
> dh_installman -p lustre-utils
> dh_install -p lustre-utils
> dh_makeshlibs -p lustre-utils
> dh_shlibdeps -L liblustre -l debian/liblustre/usr/lib
> dh_installexamples -p lustre-utils
> dh_installchangelogs -p lustre-utils lustre/ChangeLog
> dh_compress -p lustre-utils
> dh_strip -p lustre-utils
> dh_installdeb -p lustre-utils
> dh_fixperms -p lustre-utils
> dh_gencontrol -p lustre-utils
> dh_md5sums -p lustre-utils
> dh_builddeb -p lustre-utils
> dpkg-deb: building package `lustre-utils' in
> `../lustre-utils_2.5.1-1_amd64.deb'.
> dh_testdir
> dh_testroot
> dh_installdirs -p lustre-tests
> dh_installdocs -p lustre-tests
> dh_installman -p lustre-tests
> dh_install -p lustre-tests
> dh_makeshlibs -p lustre-tests
> dh_shlibdeps -L liblustre -l debian/liblustre/usr/lib
> dh_installexamples -p lustre-tests
> dh_installchangelogs -p lustre-tests lustre/ChangeLog
> dh_compress -p lustre-tests
> dh_strip -p lustre-tests
> dh_installdeb -p lustre-tests
> dh_fixperms -p lustre-tests
> dh_gencontrol -p lustre-tests
> dh_md5sums -p lustre-tests
> dh_builddeb -p lustre-tests
> dpkg-deb: building package `lustre-tests' in
> `../lustre-tests_2.5.1-1_amd64.deb'.
> dh_testdir
> dh_testroot
> dh_installdirs -p lustre-dev
> dh_install -p lustre-dev
> dh_installdocs -p lustre-dev
> dh_installchangelogs -p lustre-dev lustre/ChangeLog
> dh_compress -p lustre-dev
> dh_installdeb -p lustre-dev
> dh_fixperms -p lustre-dev
> dh_gencontrol -p lustre-dev
> dh_md5sums -p lustre-dev
> dh_builddeb -p lustre-dev
> dpkg-deb: building package `lustre-dev' in
> `../lustre-dev_2.5.1-1_amd64.deb'.
> dh_testdir
> dh_testroot
> dh_installdirs -p liblustre
> dh_installdocs -p liblustre
> dh_install -p liblustre
> dh_makeshlibs -p liblustre
> dh_shlibdeps -L liblustre -l debian/liblustre/usr/lib
> dh_installchangelogs -p liblustre lustre/ChangeLog
> dh_compress -p liblustre
> dh_installdeb -p liblustre
> dh_strip -p liblustre
> dh_fixperms -p liblustre
> dh_gencontrol -p liblustre
> dh_md5sums -p liblustre
> dh_builddeb -p liblustre
> dpkg-deb: building package `liblustre' in
> `../liblustre_2.5.1-1_amd64.deb'.
> make[1]: Leaving directory `/home/imemadmin/Desktop/lustre-release'
> dpkg-buildpackage: full upload; Debian-native package (full source is
> included)
> export KPKG_DEST_DIR="$(pwd)/.." && \
> version=$(sed -ne '1s/^lustre (\(.*\)).*$/\1/p' debian/changelog) && \
> rm -rf debian/tmp/modules-deb && \
> mkdir debian/tmp/modules-deb && \
> pushd debian/tmp/modules-deb && \
> dpkg -x ../../../../lustre-source_${version}_all.deb $(pwd) && \
> mkdir usr_src/ && \
> tar -C usr_src/ -xjf usr/src/lustre.tar.bz2 && \
> chmod 755 usr_src/modules/lustre/debian/rules && \
> mkdir -p usr_share_modass && \
> ln -s /usr/share/modass/include/ usr_share_modass/ && \
> ln -s /usr/share/modass/packages/ usr_share_modass/ && \
> echo "lustre" > usr_share_modass/compliant.list && \
> export MA_DIR=$(pwd)/usr_share_modass && \
> KVERS=${KVERS:-}; \
> m-a build ${KVERS:+-l $KVERS} -i -u $(pwd) lustre && \
> popd && \
> VER=$(sed -ne '1s/^lustre (\(.*-[0-9][0-9]*\)).*$/\1/p'
> debian/changelog); \
> mkdir -p debs && \
> mv ../liblustre_${VER}_*.deb ../linux-patch-lustre_${VER}_all.deb
> ../lustre-dev_${VER}_*.deb ../lustre-source_${VER}_all.deb
> ../lustre-tests_${VER}_*.deb ../lustre-utils_${VER}_*.deb
> ../lustre_${VER}.dsc ../lustre_${VER}_*.changes
> ../lustre_${VER%-[0-9]*}.orig.tar.gz ../lustre_${VER}.diff.gz
> ../lustre-client-modules-${KVERS}_${VER}_*.deb debs/
> /home/imemadmin/Desktop/lustre-release/debian/tmp/modules-deb
> /home/imemadmin/Desktop/lustre-release
>
>
> dh_installdocs: This package will soon FTBFS; time to fix it!
> dh_installchangelogs: No compatibility level specified in debian/compat
> dh_installchangelogs: This package will soon FTBFS; time to fix it!
> dh_compress: No compatibility level specified in debian/compat
> dh_compress: This package will soon FTBFS; time to fix it!
> dh_installdeb: No compatibility level specified in debian/compat
> dh_installdeb: This package will soon FTBFS; time to fix it!
> dh_fixperms: No compatibility level specified in debian/compat
> dh_fixperms: This package will soon FTBFS; time to fix it!
> dh_gencontrol: No compatibility level specified in debian/compat
> dh_gencontrol: This package will soon FTBFS; time to fix it!
> dh_md5sums: No compatibility level specified in debian/compat
> dh_md5sums: This package will soon FTBFS; time to fix it!
> dh_builddeb: No compatibility level specified in debian/compat
> dh_builddeb: This package will soon FTBFS; time to fix it!
> dh_builddeb: No compatibility level specified in debian/compat
> dh_builddeb: This package will soon FTBFS; time to fix it!
> dh_installdirs: No compatibility level specified in debian/compat
> dh_installdirs: This package will soon FTBFS; time to fix it!
> dh_installdocs: No compatibility level specified in debian/compat
> dh_installdocs: This package will soon FTBFS; time to fix it!
> dh_install: No compatibility level specified in debian/compat
> dh_install: This package will soon FTBFS; time to fix it!
> dh_makeshlibs: No compatibility level specified in debian/compat
> dh_makeshlibs: This package will soon FTBFS; time to fix it!
> dh_shlibdeps: No compatibility level specified in debian/compat
> dh_shlibdeps: This package will soon FTBFS; time to fix it!
> dpkg-shlibdeps: warning: couldn't find library liblustreapi.so needed
> by debian/lustre-tests/usr/lib/lustre/tests/ll_dirstripe_verify (ELF
> format: 'elf64-x86-64'; RPATH: '')
> dh_installchangelogs: No compatibility level specified in debian/compat
> dh_installchangelogs: This package will soon FTBFS; time to fix it!
> dh_compress: No compatibility level specified in debian/compat
> dh_compress: This package will soon FTBFS; time to fix it!
> dh_installdeb: No compatibility level specified in debian/compat
> dh_installdeb: This package will soon FTBFS; time to fix it!
> dh_strip: No compatibility level specified in debian/compat
> dh_strip: This package will soon FTBFS; time to fix it!
> dh_fixperms: No compatibility level specified in debian/compat
> dh_fixperms: This package will soon FTBFS; time to fix it!
> dh_gencontrol: No compatibility level specified in debian/compat
> dh_gencontrol: This package will soon FTBFS; time to fix it!
> dh_md5sums: No compatibility level specified in debian/compat
> dh_md5sums: This package will soon FTBFS; time to fix it!
> dh_builddeb: No compatibility level specified in debian/compat
> dh_builddeb: This package will soon FTBFS; time to fix it!
> dh_builddeb: No compatibility level specified in debian/compat
> dh_builddeb: This package will soon FTBFS; time to fix it!
> dpkg-genchanges >../lustre_2.5.1-1_amd64.changes
> dpkg-genchanges: including full source code in upload
> dpkg-source -I.git -I*.out[0-9]* -I*.swp --after-build lustre-release
> /bin/bash: line 15: m-a: command not found
> mv: cannot stat '../liblustre__*.deb': No such file or directory
> mv: cannot stat '../linux-patch-lustre__all.deb': No such file or
> directory
> mv: cannot stat '../lustre-dev__*.deb': No such file or directory
> mv: cannot stat '../lustre-source__all.deb': No such file or directory
> mv: cannot stat '../lustre-tests__*.deb': No such file or directory
> mv: cannot stat '../lustre-utils__*.deb': No such file or directory
> mv: cannot stat '../lustre_.dsc': No such file or directory
> mv: cannot stat '../lustre__*.changes': No such file or directory
> mv: cannot stat '../lustre_.orig.tar.gz': No such file or directory
> mv: cannot stat '../lustre_.diff.gz': No such file or directory
> mv: cannot stat '../lustre-client-modules-__*.deb': No such file or
> directory
> make: *** [debs] Error 1
>
>
> the FTBFS says there might be a missing undocumented dependency or a
> bad build (working on my 5th build attempt) and still unable to get it
> to build. Any suggestions?
>
>
>
> On Thu, May 1, 2014 at 7:21 PM, Keith Mannthey
> <keith.mannthey at intel.com <mailto:keith.mannthey at intel.com>> wrote:
>
> I recommended you use Lustre 2.5+ for modern Linux kernels. A large
> amount of build changes would be need to be ported to run Lustre 2.3
> version against your kernel version.
>
> Thanks,
> Keith
>
>
>
>
> On Thu, 2014-05-01 at 15:03 -0700, Steven Lokie wrote:
> > Trying to run a specific version of lustre client for our setup at
> > work - I am running into a weird error message on ./configure
> >
> >
> > personally never seen this error before - checking for external
> module
> > build support... configure: error: unknown; check config.log for
> > details
> >
> >
> > GIT BUILD:
> >
> >
> > git clone git://git.whamcloud.com/fs/lustre-release.git
> <http://git.whamcloud.com/fs/lustre-release.git>
> > cd lustre-release/
> > git checkout --track -b b2_3 origin/b2_3
> > sh ./autogen.sh
> > ./configure --disable-server
> >
> >
> > Log:
> >
> >
> > root at linux-desktop:/home/imemadmin/lustre-release# ./configure
> > --without-server
> >
> > checking build system type... x86_64-unknown-linux-gnu
> > checking host system type... x86_64-unknown-linux-gnu
> > checking target system type... x86_64-unknown-linux-gnu
> > checking for a BSD-compatible install... /usr/bin/install -c
> > checking whether build environment is sane... yes
> > checking for gawk... no
> > checking for mawk... mawk
> > checking whether make sets $(MAKE)... yes
> > checking how to create a ustar tar archive... gnutar
> > checking for gcc... gcc
> > checking whether the C compiler works... yes
> > checking for C compiler default output file name... a.out
> > checking for suffix of executables...
> > checking whether we are cross compiling... no
> > checking for suffix of object files... o
> > checking whether we are using the GNU C compiler... yes
> > checking whether gcc accepts -g... yes
> > checking for gcc option to accept ISO C89... none needed
> > checking for style of include used by make... GNU
> > checking dependency style of gcc... gcc3
> > checking how to run the C preprocessor... gcc -E
> > checking for grep that handles long lines and -e... /bin/grep
> > checking for egrep... /bin/grep -E
> > checking for ANSI C header files... yes
> > checking for sys/types.h... yes
> > checking for sys/stat.h... yes
> > checking for stdlib.h... yes
> > checking for string.h... yes
> > checking for memory.h... yes
> > checking for strings.h... yes
> > checking for inttypes.h... yes
> > checking for stdint.h... yes
> > checking for unistd.h... yes
> > checking whether to configure just enough for make dist... no
> > checking if this distro uses dpkg... yes
> > checking for buildid... none... congratulations, you must be on
> a tag
> > checking whether to build BGL features... no
> > checking for ranlib... ranlib
> > checking for buggy compiler... no known problems
> > checking size of unsigned long long... 8
> > ---> size SIZEOF
> > ---> size SIZEOF 8
> > checking whether to enable uoss... no
> > checking whether to enable posix osd... no
> > checking whether to build docs... no
> > checking whether to build utilities... yes
> > checking whether to install init scripts... no
> > checking whether to build Lustre tests... yes
> > checking whether to build Lustre server support... yes
> > checking whether to build Lustre client support... yes
> > checking whether to enable split support... no
> > checking whether to enable CDEBUG, CWARN... yes
> > checking whether to enable ENTRY/EXIT... yes
> > checking whether to enable LASSERT, LASSERTF... yes
> > checking sys/quota.h usability... yes
> > checking sys/quota.h presence... yes
> > checking for sys/quota.h... yes
> > checking whether to build kernel modules... yes (linux-gnu)
> > /usr/src/linux-headers-3.13.0-24-generic
> > /usr/src/linux-headers-3.13.0-24-generic
> > checking for Linux sources... /lib/modules/3.13.0-24-generic/build
> > checking for /lib/modules/3.13.0-24-generic/build... yes
> > checking for Linux objects dir...
> /lib/modules/3.13.0-24-generic/build
> > checking for /boot/kernel.h... no
> > checking for /var/adm/running-kernel.h... no
> > checking for /lib/modules/3.13.0-24-generic/build/.config... yes
> > checking
> > for
> /lib/modules/3.13.0-24-generic/build/include/generated/autoconf.h...
> yes
> > checking
> > for /lib/modules/3.13.0-24-generic/build/include/linux/version.h...
> > yes
> > checking
> > for /lib/modules/3.13.0-24-generic/build/include/linux/kconfig.h...
> > yes
> > checking if you are running user mode linux for x86_64... no (asm-um
> > missing)
> > checking
> > for
> /lib/modules/3.13.0-24-generic/build/include/linux/namei.h... yes
> > checking if you are using Linux 2.6... yes
> > checking for external module build support... configure: error:
> > unknown; check config.log for details
> > _______________________________________________
> > Lustre-discuss mailing list
> > Lustre-discuss at lists.lustre.org
> <mailto:Lustre-discuss at lists.lustre.org>
> > http://lists.lustre.org/mailman/listinfo/lustre-discuss
>
>
>
>
> _______________________________________________
> Lustre-discuss mailing list
> Lustre-discuss at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-discuss-lustre.org/attachments/20140503/ad48b1ba/attachment.htm>
More information about the lustre-discuss
mailing list