I had to do a fair amount of hacking to get 3.1.7 to compile and install on
Rocky 8.7/8.8 with Lustre 2.15.2. So much so that I am less than fully
comfortable and I would like feedback as to whether I'm creating a bigger
mess.

3.1.7 source would not compile or install on Rocky 8.7 with Lustre 2.15.2.
The issues I encountered were:

1. configure script would fail if there was more than one lustre-client.*$
package installed on the build host. In this case; lustre-client and
lustre-client-dkms caused a broken LVERSION variable.

2. Defines of IOC_MDC_GETFILEINFO_OLD and _V1 in src/common/lustre_tools.c
would not compile. I saw a issues post in github:cea-hpc robinhood about
this. Poster said uncommenting was required but I had to do the opposite
and comment out. (see below)

3. robinhood-webgui has a requires of php-mysql. php-mysql doesn't exist in
RHEL8 variants, it was replaced by php-mysqlnd. I had to change the require
in robinhood.spec.in from php-mysql to php-mysqlnd. While php-mysqlnd is
supposed to be a drop in replacement there are older tools and functions
gone and I have yet to dig and see if robinhood was strictly reliant on the
old php-mysql. Admittedly not an area I have much experience in
(php-mysql).

So.. to get 3.1.7 to compile and install (rpm format) on Rocky 8.7 with
Lustre 2.15.2 I had to make the below changes.

1) Change autotools/m4/lustre.m4 to add a pipe to `head -1` for the
LVERSION variable due to multiple lustre-client packages (lustre-client,
lustre-client-dkms)

2) Comment out lines 854-858 of src/common/lustre_tools.c due to compile
failures with Lustre 2.15.2
    850 /* A new LL_IOC_MDC_GETINFO has been defined since Lustre 2.12.4,
    851  * but it doesn't return a struct stat.
    852  * Use the old (compatible) ioctl() instead.
    853  */
    854 /* #ifdef IOC_MDC_GETFILEINFO_OLD
    855 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO_OLD
    856 #else
    857 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
    858 #endif */

3) Change robinhood.spec.in (line 170) to list php-mysqlnd as a package
requirement as opposed to php-mysql that was replaced my php-mysqlnd in
RHEL8 variants
robinhood.spec.in (170): Requires: php, php-pdo, *php-mysqlnd*

While it compiles and installs. I am not sure about the effects of the #2
and #3 changes and its impact on robinhood function.

--Jeff

-- 
------------------------------
Jeff Johnson
Co-Founder
Aeon Computing

[email protected]
www.aeoncomputing.com
t: 858-412-3810 x1001   f: 858-412-3845
m: 619-204-9061

4170 Morena Boulevard, Suite C - San Diego, CA 92117

High-Performance Computing / Lustre Filesystems / Scale-out Storage
_______________________________________________
robinhood-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/robinhood-support

Reply via email to