LU-17560 build: with kfi check for kfabric or cray-kfabric The default location of kfabric is either /usr/src/kfabric or /usr/src/cray-kfabric Check for either during rpmbuild --with kfi Test-Parameters: trivial HPE-bug-id: LUS-12160 Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: Ibcd21335d554b66ec925619c60e61f87d79be63d Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54097 Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com>
LU-10366 test: re-enable sanity test 410 for Ubuntu For older Ubuntu the pr_err() messages in the kinode module was not making it to the dmesg ring buffer due to the default loglevel used in their environment. Now that older verisons of Ubuntu are dropped sanity 410 should pass. Thanks to the work of LU-17096 the kinode modules is in its proper place so sanity 410 should pass. This patch also changes test_410 and kinode to load the module successfully and unload after the test is done. The Lustre spec file is adjusted to accommodate this change. Test-Parameters: trivial Test-Parameters: testlist=sanity env=ONLY=410,ONLY_REPEAT=10 Test-Parameters: testlist=sanity env=ONLY=410,ONLY_REPEAT=10 clientdistro=ubuntu2204 Change-Id: Iac96efe64db721f9d7247a889f6e9bd4c7d45e2a Signed-off-by: James Simmons <jsimmons@infradead.org> Signed-off-by: Timothy Day <timday@amazon.com> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/31921 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-17507 build: Allow symlink in mofed default path A default installation is for /usr/src/ofa_kernel/default to be a symlink, it is also the default place users expect to find the MOFED kernel development headers. Explicitly pass -H to find to allow the command line arguments to find be symlinks. Test-Parameters: trivial Fixes: 3c66185c84 ("LU-17398 build: detect mlnx-ofa_kernel-devel contents") Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: I5d54f9b0a70db52c4be6a9a6ccaed2c59185098b Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53934 Tested-by: Shuichi Ihara <sihara@ddn.com> Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-17226 build: create config option for l_getsepol Add a configuration option for l_getsepol. l_getsepol is build by default unless the --disable-l_getsepol option is given to configure. lustre.spec.in builds l_getsepol by default and has its dependencies as build requirements. The implicit configuration check for the dependency openssl-devel is removed and replaced by a BuildRequires. Test-Parameters: trivial Signed-off-by: Gian-Carlo DeFazio <defazio1@llnl.gov> Change-Id: If71a2a4a524047edbd2b31e6fac7a42f36a030bf Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52849 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Sebastien Buisson <sbuisson@ddn.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-17029 lustre.spec.in: match rpm macro openEuler for openEuler Linux So that it can handle openEuler derived OSes, because different derived OS has different vendor name, like KylinOS's vendor name is Kylin. Change-Id: I12ceda5bf9d1f17a75d4adddbad292fd1ae9967b Test-Parameters: trivial Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51954 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-13906 build: Conditionally require kmod-zfs-devel Server with zfs support requires either kmod-zfs-devel or a configure that points to the required headers and library files via configure. Here we check the configure arguments for '--with-zfs-obj=' if the zfs path is specified for configure the package requirement is not needed. Otherwise require the kmod-zfs-devel package and require one of libzfs-devel, libzfs4-devel or libzfs5-devel HPE-bug-id: LUS-9743, LUS-10363 Test-Parameters: trivial Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: Ia12239ac7e3912ff50ec7c8e2ceb888862afbc34 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/46356 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
LU-17398 build: detect mlnx-ofa_kernel-devel contents Parse the configure_args for --with-o2ib and allow the user specified path to override the mofed defaults. Further when mlnx-ofa_kernel-devel contents are available silence the BuildRequires: to allow for an mlnx source installation to satisfy the lustre build requirements. In addition move the mlnx specfic requirements to the mofed lnd when '--with multiple_lnds' is enabled. Fixes: 67cd54d05d ("LU-16967 build: Separate lnet LND rpm packaging") Test-Parameters: trivial Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: I30c6b3a196021634c621f6f6c556bf32f28faeed Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53613 Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com>
LU-17398 build: quash rpmbuild false warning Rewrite comment so %() is escaped and does not generate a false and misleaning warning during build: sh: -c: line 0: syntax error near unexpected token `)' sh: -c: line 0: `)' warning: Macro expanded in comment on line 261: %() Test-Parameters: trivial Fixes: 67cd54d05d ("LU-16967 build: Separate lnet LND rpm packaging") Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: I94fa0da88a5c7f64461cd8fc3cea343a7a087413 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53604 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-16967 build: Separate lnet LND rpm packaging Enable separate packaging of lnet lnd kernel modules into separate packages. Use --with multiple_lnds to enable separate packages for lnet lnds: [always builds]: kmod-lustre-lnet-socklnd for socklnd.ko --with o2ib: for kmod-lustre-lnet-in-kernel-o2iblnd ko2iblnd.ko -> in-kernel-ko2iblnd.ko --with mofed: kmod-lustre-lnet-o2iblnd for ko2iblnd.ko --with kfi: kmod-lustre-lnet-gnilnd for kgnilnd.ko --with gni: kmod-lustre-lnet-kfilnd for kkfilnd.ko Test-Parameters: trivial HPE-bug-id: LUS-11711 Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com> Change-Id: If2dace7ced96be2a2194f66362e9419b017c625f Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51692 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Frank Sehr <fsehr@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-17065 build: Remove snmp support Last patched in 2012 and not well tended to before that, snmp support can probably be removed. Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com> Signed-off-by: Timothy Day <timday@amazon.com> Change-Id: I1831aed42e560531e57a6ff8aa978f3e5286fd44 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52194 Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com>
LU-16661 build: remove -dev packages for Debian Don't depend on libmount-dev, libsnmp-dev, libkeytils-dev for the lustre-client-utils and lustre-server-utils packages. These are only needed for build and for the lustre-client-dkms package. Disable SNMP by default as this is no longer used anywhere. Test-Parameters: trivial testlist=runtests clientdistro=ubuntu2204 Fixes: 7dc6e1128a ("LU-15888 build: Debian dkms-debs requires ed and libkeyutils") Fixes: af2f77633b ("LU-13818 build: use libsnmp-dev instead of libsnmp30") Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Change-Id: Ib788a97028ee40a9c61070d00b823620ec3ebbe5 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52281 Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com>
LU-16661 build: use "Recommends: perl" for lustre-iokit In lustre-iokit, the "plot" commands all use perl, but the actual "*-survey" scripts are written in bash, so the "Requires: perl" in lustre.spec.in for lustre-iokit could be downgraded to "Recommends: perl" for RHEL 8+ (RHEL 7 does not handle "Recommends:"). Test-Parameters: trivial testlist=obdfilter-survey Change-Id: I55f3c57e73ac91cedce745dc4f424c3542978cd4 Fixes: 800a9ec58f78 ("LU-16661 build: improve lustre.spec.in Requires") Signed-off-by: Jian Yu <yujian@whamcloud.com> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52225 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Alex Deiter <alex.deiter@gmail.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-16763 obdclass: add unit tests for OBD life cycle Add some simple OBD life cycle tests. These tests consist of a kernel module which defines a simple OBD device, and a few sanity tests. The new OBD device print logs validating that it has been loaded correctly. Unlike other OBD devices, this one has minimal side-effects. The new test OBD device has been added to the test rpm and dkms. sanity/55a aims to test that a device can loaded properly and found by the various OBD device search functions. sanity/55b aims to load the maximum number of allowed OBD devices, which is currently 8192. It also times how long it takes to perform the loading and unloading. In the future, this could be used to test for performance regression. The tests avoid using any userspace function, like lctl or lfs, since I noticed bugs when using them with a large number of devices. Follow-up patches will include fixes and more testing. I used a variation of these tests when debugging sanity/60a failures, and when debugging removing MAX_OBD_DEVICES. This test (obd_test.c) and the llog test (llog_test.c) should probably be moved to a different directory in a follow-up patch. Test-Parameters: trivial testlist=sanity env=ONLY=55,ONLY_REPEAT=25 Signed-off-by: Timothy Day <timday@amazon.com> Change-Id: Ibc347ac962c59a4bbc26410c30f9cc5529e6c84d Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51103 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-17038 tests: remove munlink utility The munlink utility is obsoleted by the unlink command added in the coreutils package many moons ago, and can be removed. All tests using munlink are replaced with unlink. Test-Parameters: trivial testlist=recovery-small,replay-dual,replay-single Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Change-Id: I984406525ed958814bd8af74a2d81c4920e320b0 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51977 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Timothy Day <timday@amazon.com> Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-16824 ldiskfs: add support for openEuler 22.03 LTS SP1 Add openEuler 22.03 LTS SP1 config target file. Fix tiny conflicts for patch ext4-delayed-iput.patch and ext4-data-in-dirent.patch. Add missing patch ext4-encdata.patch. Add build required pkg kernel-debugsource for ldiskfs build. Change-Id: I68314c9df17ce991a5e46f2ed4746ce1703b1587 Test-Parameters: trivial Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50978 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-12511 build: include firewalld files for native Linux client Build rpms for the native Linux client fails due to xml files for firewalld not being packaged. These files are useful for the native client support so package them in that case. Test-Parameters: trivial Fixes: 9cb4b10c87d2 ("LU-14224 misc: add firewalld service configuration") Change-Id: Id2887cef2c9b5e5d27fca3f77589775a31ee94b1 Signed-off-by: James Simmons <jsimmons@infradead.org> Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51379 Tested-by: Maloo <maloo@whamcloud.com> Tested-by: jenkins <devops@whamcloud.com> Reviewed-by: Jian Yu <yujian@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
LU-16661 build: improve lustre.spec.in Requires Add Suggests: bash-completion for lustre-client and lustre for lctl and lfs sub-command completion. Move perl from Requires to Recommends, since there are only some uncommonly used tools (llstat, llobdstat) that are using perl. Remove a couple of ancient obsolete test scripts that used perl. lustre-iokit incorrectly Required perl instead of python3. Set minimum kernel version for client to be 3.10 or later. Change "netstat" to "ss" in tests to avoid dependency issues. Fix sanity.sh and conf-sanity.sh tests for sles12sp5 issues. Test-Parameters: trivial testlist=runtests clientdistro=sles12sp5 Test-Parameters: trivial testlist=runtests clientdistro=el9.1 Test-Parameters: trivial testlist=runtests clientdistro=sles15sp3 Fixes: 7521473bdd ("LU-16382 spec: add more dependencies for lustre-tests") Fixes: fd734cffb3 ("b=18443 tests: remove obsolete tests scripts") Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Change-Id: I48c6819596c81cb044e983bc64f1edf1ee3ebbe5 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50397 Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com> Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com> Reviewed-by: xinliang <xinliang.liu@linaro.org> Reviewed-by: Alex Deiter <alex.deiter@gmail.com>
LU-16382 spec: SUSE OBS requires kernel-source requirement. The SUSE OBS creates a virtual environment containing ONLY the stated BuildRequires requirements, and some defaults. To be able to build ldiskfs we need the kernel source, so we need "BuildRequires: kernel-source". However when contrib/lbuild it is used to build lustre, it finds the source by other means and fails on that BuildRequires. So it must be conditional on running under abuild. (the OBS build tool). When abuild extracts these BuildRequires, it cannot parse %() so conditions using that all appear to be "false". But %() is the only way to detect abuild - but looking in environment. So a dance is needed to fit with all these odd requirements. Test-Parameters: trivial Signed-off-by: Mr NeilBrown <neilb@suse.de> Change-Id: I2fe9ecaf857ecbd5fda7e857b661b5b756501190 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49365 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com> Reviewed-by: James Simmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-16382 spec: add dependency on kernel-%1 The SUSE OBS rpmlint tool wants all kmps to depend on the base kernel. As RH uses didn't package naming to SUSE, these dependencies must be conditional. Test-Parameters: trivial Signed-off-by: Mr NeilBrown <neilb@suse.de> Change-Id: I4f8525dd2ba35b824bcfbd4097505bdfe7b11e0f Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49371 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com> Reviewed-by: jsimmons <jsimmons@infradead.org> Reviewed-by: xinliang <xinliang.liu@linaro.org> Reviewed-by: Oleg Drokin <green@whamcloud.com>
LU-16382 spec: specify all directories. All directories added by the package should be explicitly specified. This allows rpm to know which package owns which directories, so it knows when to safely remove them. Test-Parameters: trivial Signed-off-by: Mr NeilBrown <neilb@suse.de> Change-Id: I0ed03ca09f57587d19cb350777f2ece1ed303c7e Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49370 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: xinliang <xinliang.liu@linaro.org> Reviewed-by: jsimmons <jsimmons@infradead.org> Reviewed-by: Oleg Drokin <green@whamcloud.com>