[packages/lustre] - forgotten commit of .spec for 2.15.4

qboosh qboosh at pld-linux.org
Mon Apr 14 21:49:43 CEST 2025


commit f8ccd46f70b383c5a04904603ddc95c53d264ee4
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Apr 14 21:43:42 2025 +0200

    - forgotten commit of .spec for 2.15.4

 lustre.spec | 362 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 348 insertions(+), 14 deletions(-)
---
diff --git a/lustre.spec b/lustre.spec
index 6f4b07e..c53edbf 100644
--- a/lustre.spec
+++ b/lustre.spec
@@ -1,21 +1,147 @@
-# TODO
-# - Some kernel specialists has to make it build
+# TODO:
+# - finish kernel part (for 5.15? not ready for 6.x)
+# - subpackages for resource-agents, mount_osd modules, snmp agent
+#
+# Conditional build:
+%bcond_with	kernel		# kernel modules (supported: 3.10+patches, 4.12+patches, 4.14+patches, 4.18+patches, 5.3, 5.14)
+%bcond_with	kerberos5	# KRB5/GSS support (build fails with heimdal 7.8)
+%bcond_with	tests		# build tests
+%bcond_without	userspace	# userspace tools
+
+%if %{without userspace}
+%undefine	with_tests
+%endif
 Summary:	Linux kernel modules for Lustre(R) file system
 Summary(en.UTF-8):	Linux kernel modules for Lustre® file system
 Summary(pl.UTF-8):	Moduły jądra Linuksa dla systemu plików Lustre®
 Name:		lustre
-Version:	1.6.4.1
+Version:	2.15.4
+# commit hash taken from tag at https://git.whamcloud.com/?p=fs/lustre-release.git;a=summary
+%define	gitref	cac870cf4d2bd9905b1b2bbe563defe6d748ac94
+%define	shortref	%(echo %{gitref} | cut -c1-7)
 Release:	0.1
 License:	GPL v2
 Group:		Base/Kernel
-Source0:	http://www.clusterfs.com/downloads/public/Lustre/v1.6/Production/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	e9d383eb48f6d41ff1a2dce4ae474415
-URL:		http://www.clusterfs.com/scalable-storage.html
-BuildRequires:	kernel%{_alt_kernel}-module-build
+Source0:	https://git.whamcloud.com/?p=fs/lustre-release.git;a=snapshot;h=%{gitref};sf=tgz#/%{name}-%{version}.tar.gz
+# Source0-md5:	346030ff22e4187a9fdc2ca26424f0ee
+Patch0:		%{name}-format.patch
+Patch1:		%{name}-snmp.patch
+Patch2:		%{name}-32bit.patch
+Patch3:		%{name}-tests.patch
+Patch4:		%{name}-link.patch
+Patch5:		%{name}-configure.patch
+Patch6:		%{name}-zfs.patch
+Patch7:		%{name}-heimdal.patch
+URL:		https://www.lustre.org/
+BuildRequires:	autoconf >= 2.57
+BuildRequires:	automake >= 1:1.10
+BuildRequires:	bison
+BuildRequires:	flex
+BuildRequires:	libtool >= 2:2
 BuildRequires:	rpmbuild(macros) >= 1.379
+%if %{with kernel}
+BuildRequires:	kernel%{_alt_kernel}-module-build
+%endif
+%if %{with userspace}
+BuildRequires:	keyutils-devel
+%{?with_kerberos5:BuildRequires:	krb5-devel}
+BuildRequires:	libmount-devel
+BuildRequires:	libnl-devel >= 3.1
+BuildRequires:	libselinux-devel
+BuildRequires:	net-snmp-devel
+BuildRequires:	openssl-devel
+BuildRequires:	pkgconfig
+BuildRequires:	python3-devel >= 1:3.6
+BuildRequires:	swig >= 2.0
+BuildRequires:	swig-python >= 2.0
+BuildRequires:	yaml-devel
+BuildRequires:	zlib-devel
+%endif
+Requires:	%{name}-libs = %{version}-%{release}
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+# conflicts for kernel
+%define		filterout_c	-fomit-frame-pointer
+
 %description
+Lustre(R) is a high-performance, multi-network, fault-tolerant,
+POSIX1-compliant network file system for Linux clusters. Lustre(R) is
+a complete, software-only, open-source solution for any hardware that
+can run Linux. It has native drivers for many of the fastest
+networking fabrics. Lustre(R) can use any storage medium that looks
+like a block device.
+
+%description -l en.UTF-8
+Lustre® is a high-performance, multi-network, fault-tolerant,
+POSIX1-compliant network file system for Linux clusters. Lustre® is a
+complete, software-only, open-source solution for any hardware that
+can run Linux. It has native drivers for many of the fastest
+networking fabrics. Lustre® can use any storage medium that looks like
+a block device.
+
+%description -l pl.UTF-8
+Lustre® jest wysoko wydajnym, wielosieciowym, odpornym na awarie i
+zgodnym z POSIX1 sieciowym systemem plików dla klastrów linuksowych.
+Lustre® jest kompletnym, wyłącznie programowym, open-source'owym
+rozwiazaniem dla każdego sprzętu, który pracuje pod Linuxem. Posiada
+natywne sterowniki dla wielu najszybszych sieci. Lustre® może używać
+każdego medium, które zachowuje się jak urządzenie blokowe.
+
+%package iokit
+Summary:	Benchmark tools for a cluster with the Lustre file system
+Summary(pl.UTF-8):	Narzędzia testujące wydajność klastra z systemem plików Lustre
+Group:		Applications
+Requires:	%{name} = %{version}-%{release}
+
+%description iokit
+Benchmark tools for a cluster with the Lustre file system.
+
+%description iokit -l pl.UTF-8
+Narzędzia testujące wydajność klastra z systemem plików Lustre.
+
+%package libs
+Summary:	Lustre shared libraries
+Summary(pl.UTF-8):	Biblioteki współdzielone Lustre
+Group:		Libraries
+
+%description libs
+Lustre shared libraries.
+
+%description libs -l pl.UTF-8
+Biblioteki współdzielone Lustre.
+
+%package devel
+Summary:	Header files for Lustre libraries
+Summary(pl.UTF-8):	Pliki nagłówkowe bibliotek Lustre
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	yaml-devel
+
+%description devel
+Header files for Lustre libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek Lustre.
+
+%package static
+Summary:	Lustre static libraries
+Summary(pl.UTF-8):	Biblioteki statyczne Lustre
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
+
+%description static
+Lustre static libraries.
+
+%description static -l pl.UTF-8
+Biblioteki statyczne Lustre.
+
+%package -n kernel%{_alt_kernel}-lustre
+Summary:	Linux kernel modules for Lustre(R) file system
+Summary(en.UTF-8):	Linux kernel modules for Lustre® file system
+Summary(pl.UTF-8):	Moduły jądra Linuksa dla systemu plików Lustre®
+Group:		Base/Kernel
+
+%description -n kernel%{_alt_kernel}-lustre
 Linux kernel modules for Lustre(R). Lustre(R) is a high-performance,
 multi-network, fault-tolerant, POSIX1-compliant network file system
 for Linux clusters. Lustre(R) is a complete, software-only,
@@ -23,7 +149,7 @@ open-source solution for any hardware that can run Linux. It has
 native drivers for many of the fastest networking fabrics. Lustre(R)
 can use any storage medium that looks like a block device.
 
-%description -l en.UTF-8
+%description -n kernel%{_alt_kernel}-lustre -l en.UTF-8
 Linux kernel modules for Lustre®. Lustre® is a high-performance,
 multi-network, fault-tolerant, POSIX1-compliant network file system
 for Linux clusters. Lustre® is a complete, software-only, open-source
@@ -31,7 +157,7 @@ solution for any hardware that can run Linux. It has native drivers
 for many of the fastest networking fabrics. Lustre® can use any
 storage medium that looks like a block device.
 
-%description -l pl.UTF-8
+%description -n kernel%{_alt_kernel}-lustre -l en.UTF-8 -l pl.UTF-8
 Moduły jądra Linuksa dla Lustre®. Lustre® jest wysoko wydajnym,
 wielosieciowym, odpornym na awarie i zgodnym z POSIX1 sieciowym
 systemem plików dla klastrów linuksowych. Lustre® jest kompletnym,
@@ -41,22 +167,230 @@ wielu najszybszych sieci. Lustre® może używać każdego medium,
 które zachowuje się jak urządzenie blokowe.
 
 %prep
-%setup -q
+%setup -q -n %{name}-release-%{shortref}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+
+%{__sed} -i -e '1s,/usr/bin/env python3$,%{__python3},' lustre/scripts/zfsobj2fid
 
 %build
-%configure
+%{__libtoolize}
+%{__aclocal} -I config -I libcfs/autoconf -I lnet/autoconf -I lustre/autoconf -I snmp/autoconf
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%if %{with userspace}
+CPPFLAGS="%{rpmcppflags} -I$(pwd)/lnet/include/uapi -I$(pwd)/lustre/include/uapi -DHAVE_HEIMDAL"
+%endif
+%configure \
+	%{!?with_userspace:--disable-doc} \
+	%{!?with_kernel:--disable-modules} \
+	%{!?with_userspace:--disable-manpages} \
+	%{!?with_tests:--disable-tests} \
+	%{!?with_userspace:--disable-utils} \
+	--with-bash-completion-dir=%{bash_compdir} \
+	--with-linux-obj=%{_kernelsrcdir} \
+	--with-systemdsystemunitdir=%{systemdunitdir}
+
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 %{__make} install \
-	DESTDIR=$RPM_BUILD_ROOT
+	DESTDIR=$RPM_BUILD_ROOT \
+	agentdir=%{_libdir}/snmp \
+	mibdir=%{_datadir}/mibs
+
+# obsoleted by pkg-config
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/snmp/liblustresnmp.{la,a}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS CREDITS ChangeLog NEWS README THANKS TODO
-%attr(755,root,root) %{_bindir}/*
+%doc MAINTAINERS README lustre/{BUGS,ChangeLog}
+%attr(755,root,root) /sbin/mount.lustre
+%attr(755,root,root) /sbin/mount.lustre_tgt
+%attr(755,root,root) %{_bindir}/lfs
+%attr(755,root,root) %{_bindir}/lfs_migrate
+%attr(755,root,root) %{_bindir}/llobdstat
+%attr(755,root,root) %{_bindir}/llstat
+%attr(755,root,root) %{_bindir}/lustre_req_history
+%attr(755,root,root) %{_bindir}/plot-llstat
+%attr(755,root,root) %{_sbindir}/ko2iblnd-probe
+%attr(755,root,root) %{_sbindir}/ksocklnd-config
+%attr(755,root,root) %{_sbindir}/mkfs.lustre
+%attr(755,root,root) %{_sbindir}/l_foreign_symlink
+%attr(755,root,root) %{_sbindir}/l_getidentity
+%attr(755,root,root) %{_sbindir}/l_getsepol
+%attr(755,root,root) %{_sbindir}/l_tunedisk
+%attr(755,root,root) %{_sbindir}/lc_cluman
+%attr(755,root,root) %{_sbindir}/lc_hb
+%attr(755,root,root) %{_sbindir}/lc_lvm
+%attr(755,root,root) %{_sbindir}/lc_md
+%attr(755,root,root) %{_sbindir}/lc_modprobe
+%attr(755,root,root) %{_sbindir}/lc_mon
+%attr(755,root,root) %{_sbindir}/lc_net
+%attr(755,root,root) %{_sbindir}/lc_servip
+%attr(755,root,root) %{_sbindir}/lctl
+%attr(755,root,root) %{_sbindir}/ldev
+%attr(755,root,root) %{_sbindir}/ldlm_debug_upcall
+%attr(755,root,root) %{_sbindir}/lhbadm
+%attr(755,root,root) %{_sbindir}/lhsmtool_posix
+%attr(755,root,root) %{_sbindir}/ll_decode_filter_fid
+%attr(755,root,root) %{_sbindir}/ll_decode_linkea
+%attr(755,root,root) %{_sbindir}/llog_reader
+%attr(755,root,root) %{_sbindir}/llsom_sync
+%attr(755,root,root) %{_sbindir}/llverdev
+%attr(755,root,root) %{_sbindir}/llverfs
+%attr(755,root,root) %{_sbindir}/lnet
+%attr(755,root,root) %{_sbindir}/lnetctl
+%attr(755,root,root) %{_sbindir}/lr_reader
+%attr(755,root,root) %{_sbindir}/lshowmount
+%attr(755,root,root) %{_sbindir}/lst
+%attr(755,root,root) %{_sbindir}/lustre_rmmod
+%attr(755,root,root) %{_sbindir}/lustre_routes_config
+%attr(755,root,root) %{_sbindir}/lustre_routes_conversion
+%attr(755,root,root) %{_sbindir}/lustre_rsync
+%attr(755,root,root) %{_sbindir}/lustre_start
+%attr(755,root,root) %{_sbindir}/ofd_access_log_reader
+%attr(755,root,root) %{_sbindir}/routerstat
+%attr(755,root,root) %{_sbindir}/tunefs.lustre
+%dir %{_libdir}/lustre
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ldev.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lnet.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lnet_routes.conf
+%config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/ko2iblnd.conf
+%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/99-lustre.rules
+%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/99-lustre-server.rules
+%{systemdunitdir}/lnet.service
+%{bash_compdir}/lctl
+%{bash_compdir}/lfs
+%{bash_compdir}/lustre
+%{_mandir}/man1/lfs.1*
+%{_mandir}/man1/lfs-*.1*
+%{_mandir}/man1/lfs_migrate.1*
+%{_mandir}/man5/ldev.conf.5*
+%{_mandir}/man5/nids.5*
+%{_mandir}/man7/lustre.7*
+%{_mandir}/man8/l_getidentity.8*
+%{_mandir}/man8/l_getsepol.8*
+%{_mandir}/man8/lctl.8*
+%{_mandir}/man8/lctl-*.8*
+%{_mandir}/man8/ldev.8*
+%{_mandir}/man8/lhbadm.8*
+%{_mandir}/man8/ll_decode_filter_fid.8*
+%{_mandir}/man8/ll_decode_linkea.8*
+%{_mandir}/man8/llobdstat.8*
+%{_mandir}/man8/llog_reader.8*
+%{_mandir}/man8/llsom_sync.8*
+%{_mandir}/man8/llstat.8*
+%{_mandir}/man8/llverdev.8*
+%{_mandir}/man8/lnetctl.8*
+%{_mandir}/man8/lshowmount.8*
+%{_mandir}/man8/lst.8*
+%{_mandir}/man8/lustre_routes_config.8*
+%{_mandir}/man8/lustre_routes_conversion.8*
+%{_mandir}/man8/lustre_rsync.8*
+%{_mandir}/man8/mkfs.lustre.8*
+%{_mandir}/man8/mount.lustre.8*
+%{_mandir}/man8/mount.lustre_tgt.8*
+%{_mandir}/man8/plot-llstat.8*
+%{_mandir}/man8/routerstat.8*
+%{_mandir}/man8/tunefs.lustre.8*
+%if %{with kerberos5}
+%attr(755,root,root) %{_sbindir}/l_idmap
+%attr(755,root,root) %{_sbindir}/lgss_keyring
+%attr(755,root,root) %{_sbindir}/lgss_sk
+%attr(755,root,root) %{_sbindir}/lgssd
+%attr(755,root,root) %{_sbindir}/lsvcgssd
+%{_mandir}/man8/lgss_sk.8*
+%endif
+
+# resource-agents
+%attr(755,root,root) /etc/ha.d/resource.d/Lustre.ha_v2
+%dir %{_prefix}/lib/ocf/resource.d/lustre
+%{_prefix}/lib/ocf/resource.d/lustre/Lustre
+%{_prefix}/lib/ocf/resource.d/lustre/healthLNET
+%{_prefix}/lib/ocf/resource.d/lustre/healthLUSTRE
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/lustre
+%endif
+%attr(755,root,root) %{_libexecdir}/lustre/haconfig
+%{_libexecdir}/lustre/lc_common
+
+# osd-ldiskfs-mount
+%attr(755,root,root) %{_libdir}/lustre/mount_osd_ldiskfs.so
+
+# osd-zfs-mount
+%attr(755,root,root) %{_sbindir}/zfsobj2fid
+%attr(755,root,root) %{_libdir}/lustre/mount_osd_zfs.so
+%attr(755,root,root) /etc/zfs/zed.d/statechange-lustre.sh
+%attr(755,root,root) /etc/zfs/zed.d/vdev_attach-lustre.sh
+%attr(755,root,root) /etc/zfs/zed.d/vdev_clear-lustre.sh
+%attr(755,root,root) /etc/zfs/zed.d/vdev_remove-lustre.sh
+
+# snmp
+%attr(755,root,root) %{_libdir}/snmp/liblustresnmp.so*
+%{_datadir}/mibs/Lustre-MIB.txt
+
+%files iokit
+%defattr(644,root,root,755)
+%doc lustre-iokit/{AUTHORS,README} lustre-iokit/ior-survey/README.ior-survey lustre-iokit/mds-survey/README.mds-survey lustre-iokit/obdfilter-survey/README.obdfilter-survey lustre-iokit/ost-survey/README.ost-survey lustre-iokit/sgpdd-survey/README.sgpdd-survey lustre-iokit/stats-collect/README.iokit-lstats
+%attr(755,root,root) %{_bindir}/iokit-config
+%attr(755,root,root) %{_bindir}/iokit-gather-stats
+%attr(755,root,root) %{_bindir}/iokit-libecho
+%attr(755,root,root) %{_bindir}/iokit-lstats
+%attr(755,root,root) %{_bindir}/iokit-parse-ior
+%attr(755,root,root) %{_bindir}/iokit-plot-obdfilter
+%attr(755,root,root) %{_bindir}/iokit-plot-ost
+%attr(755,root,root) %{_bindir}/iokit-plot-sgpdd
+%attr(755,root,root) %{_bindir}/ior-survey
+%attr(755,root,root) %{_bindir}/mds-survey
+%attr(755,root,root) %{_bindir}/obdfilter-survey
+%attr(755,root,root) %{_bindir}/ost-survey
+%attr(755,root,root) %{_bindir}/sgpdd-survey
+
+%if %{with tests}
+%files tests
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/wirecheck
+%attr(755,root,root) %{_sbindir}/wiretest
+# TODO: permissions
+%{_libdir}/lustre/tests
+%endif
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/liblnetconfig.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/liblnetconfig.so.4
+%attr(755,root,root) %{_libdir}/liblustreapi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/liblustreapi.so.1
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/liblnetconfig.so
+%attr(755,root,root) %{_libdir}/liblustreapi.so
+%{_libdir}/libiam.a
+%{_includedir}/linux/lnet
+%{_includedir}/linux/lustre
+%{_includedir}/lustre
+%{_pkgconfigdir}/lustre.pc
+%{_mandir}/man3/llapi_*.3*
+%{_mandir}/man7/llapi_layout.7*
+%{_mandir}/man7/lustreapi.7*
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/liblnetconfig.a
+%{_libdir}/liblustreapi.a
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lustre.git/commitdiff/cacb2b432e80c6473c6cffca84ecacd3569292f3



More information about the pld-cvs-commit mailing list