[LU-15940] Add a dependency for libmount by default when building Lustre rpm/deb packages Created: 13/Jun/22  Updated: 18/Nov/22  Resolved: 06/Jul/22

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.16.0, Lustre 2.15.1

Type: Improvement Priority: Minor
Reporter: Jian Yu Assignee: Jian Yu
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
Rank (Obsolete): 9223372036854775807

 Description   

The Lustre client utilities (mount/umount) have an optional dependency on libmount, providing some minor improvements. It's however easy to miss when building it, and the rpm/deb package builds don't depend on it either. libmount was introduced in util-linux 2.18 in 2010, and with a stable API and ABI as of util-linux 2.19 in 2011. CentOS 6 which was AFAICS the last long time support distro with an older version of util-linux was EOL'ed in 2020, and Lustre itself doesn't support such old distros anymore either. Avoiding a dependency on libmount doesn't help much, since the "standard" mount/umount commands also depend on it, so if libmount is missing the OS is likely more or less completely broken.

So could usage of libmount be made unconditional (or at least the default)? That would entail for the rpm/deb building at least:

  • ./lustre.spec.in: Add BuildRequires on libmount-devel and Require on libmount for the utils package
  • ./debian/{control,control.main}: Add Build-Depends on libmount-dev and for lustre-{client,server}-utils add Depends on libmount1.

And possibly removing separate "#ifdef HAVE_LIBMOUNT #else ..." code and modifying configure logic slightly, if one wants to entirely remove the possibility of compiling without libmount.



 Comments   
Comment by Gerrit Updater [ 13/Jun/22 ]

"Jian Yu <yujian@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/47619
Subject: LU-15940 build: add a required dependency for libmount
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 3fb7cfe1e264aa3cedc7649930cb8e8d3f3dc44c

Comment by Gerrit Updater [ 24/Jun/22 ]

"Jian Yu <yujian@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/47759
Subject: LU-15940 build: add a required dependency for libmount
Project: fs/lustre-release
Branch: b2_15
Current Patch Set: 1
Commit: 764bc8d8b75bf25c77dc9a9c83e4df275376c879

Comment by Gerrit Updater [ 06/Jul/22 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/47619/
Subject: LU-15940 build: add a required dependency for libmount
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: f21b9441275bd0d8b0d56cf8441aa67bede37ddc

Comment by Gerrit Updater [ 06/Jul/22 ]

"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/47759/
Subject: LU-15940 build: add a required dependency for libmount
Project: fs/lustre-release
Branch: b2_15
Current Patch Set:
Commit: 84e48b7279e674cb659efe48a3a9f60aaecc11f0

Comment by Stanford Research Computing Center [ 12/Nov/22 ]

Shouldn't that dependency be added to `lustre-dkms.spec.in` as well?

It should probably even be added as a `Requires:` (not just `BuildRequires:` since compilation will happen on the fly when the `lustre-client-dkms` package is installed.

Cheers,

Kilian

Comment by Jian Yu [ 18/Nov/22 ]

Hi kilian,
Thank you for pointing this out. The issue is being addressed in https://review.whamcloud.com/49183.

Comment by Kilian Cavalotti [ 18/Nov/22 ]

Thanks @Jian Yu!

Generated at Sat Feb 10 03:22:36 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.