From ef2eea76c82b17e14be466c48411d9cda691301c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 15 Oct 2020 22:25:04 +0200 Subject: [PATCH] RHEL 9.0.0 Alpha bootstrap The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/opensm#f8aad031cafa9baa7910f3b8b7703137f3c41671 --- .gitignore | 14 +++ opensm.launch | 44 +++++++ opensm.logrotate | 7 ++ opensm.partitions | 74 ++++++++++++ opensm.rwtab | 1 + opensm.service | 14 +++ opensm.spec | 299 ++++++++++++++++++++++++++++++++++++++++++++++ opensm.sysconfig | 72 +++++++++++ sources | 1 + 9 files changed, 526 insertions(+) create mode 100644 opensm.launch create mode 100644 opensm.logrotate create mode 100644 opensm.partitions create mode 100644 opensm.rwtab create mode 100644 opensm.service create mode 100644 opensm.spec create mode 100644 opensm.sysconfig create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..fb1b401 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,14 @@ +i386/ +i686/ +x86_64/ +ppc/ +ppc64/ +ia64/ +mips/ +arm*/ +noarch/ +.project +*.src.rpm +.build*.log +/opensm-3.*.tar.gz +/opensm-3.*/ diff --git a/opensm.launch b/opensm.launch new file mode 100644 index 0000000..ba21a71 --- /dev/null +++ b/opensm.launch @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Launch the necessary OpenSM daemons for systemd +# +# sysconfig: /etc/sysconfig/opensm +# config: /etc/rdma/opensm.conf +# + +shopt -s nullglob + +prog=/usr/sbin/opensm +[ -f /etc/sysconfig/opensm ] && . /etc/sysconfig/opensm + +[ -n "$PRIORITY" ] && prio="-p $PRIORITY" + +if [ -z "$GUIDS" ]; then + CONFIGS="" + CONFIG_CNT=0 + for conf in /etc/rdma/opensm.conf.[0-9]*; do + CONFIGS="$CONFIGS $conf" + let CONFIG_CNT++ + done +else + GUID_CNT=0 + for guid in $GUIDS; do + let GUID_CNT++ + done +fi +# Start opensm +if [ -n "$GUIDS" ]; then + SUBNET_COUNT=0 + for guid in $GUIDS; do + SUBNET_PREFIX=`printf "0xfe800000000000%02d" $SUBNET_COUNT` + (while true; do $prog $prio -g $guid --subnet_prefix $SUBNET_PREFIX; sleep 30; done) & + let SUBNET_COUNT++ + done +elif [ -n "$CONFIGS" ]; then + for config in $CONFIGS; do + (while true; do $prog $prio -F $config; sleep 30; done) & + done +else + (while true; do $prog $prio; sleep 30; done) & +fi +exit 0 diff --git a/opensm.logrotate b/opensm.logrotate new file mode 100644 index 0000000..e16e227 --- /dev/null +++ b/opensm.logrotate @@ -0,0 +1,7 @@ +/var/log/opensm.log { + missingok + notifempty + copytruncate + weekly + compress +} diff --git a/opensm.partitions b/opensm.partitions new file mode 100644 index 0000000..958afeb --- /dev/null +++ b/opensm.partitions @@ -0,0 +1,74 @@ +# For reference: +# IPv4 IANA reserved multicast addresses: +# http://www.iana.org/assignments/multicast-addresses/multicast-addresses.txt +# IPv6 IANA reserved multicast addresses: +# http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xml +# +# mtu = +# 1 = 256 +# 2 = 512 +# 3 = 1024 +# 4 = 2048 +# 5 = 4096 +# +# rate = +# 2 = 2.5 GBit/s (SDR 1x) +# 3 = 10 GBit/s (SDR 4x/QDR 1x) +# 4 = 30 GBit/s (SDR 12x) +# 5 = 5 GBit/s (DDR 1x) +# 6 = 20 GBit/s (DDR 4x) +# 7 = 40 GBit/s (QDR 4x) +# 8 = 60 GBit/s (DDR 12x) +# 9 = 80 GBit/s (QDR 8x) +# 10 = 120 GBit/s (QDR 12x) +# If ExtendedLinkSpeeds are supported, then these rate values are valid too +# 11 = 14 GBit/s (FDR 1x) +# 12 = 56 GBit/s (FDR 4x) +# 13 = 112 GBit/s (FDR 8x) +# 14 = 168 GBit/s (FDR 12x) +# 15 = 25 GBit/s (EDR 1x) +# 16 = 100 GBit/s (EDR 4x) +# 17 = 200 GBit/s (EDR 8x) +# 18 = 300 GBit/s (EDR 12x) + +Default=0x7fff, rate=3, mtu=4, scope=2, defmember=full: + ALL, ALL_SWITCHES=full; +Default=0x7fff, ipoib, rate=3, mtu=4, scope=2: + mgid=ff12:401b::ffff:ffff # IPv4 Broadcast address + mgid=ff12:401b::1 # IPv4 All Hosts group + mgid=ff12:401b::2 # IPv4 All Routers group + mgid=ff12:401b::16 # IPv4 IGMP group + mgid=ff12:401b::fb # IPv4 mDNS group + mgid=ff12:401b::fc # IPv4 Multicast Link Local Name Resolution group + mgid=ff12:401b::101 # IPv4 NTP group + mgid=ff12:401b::202 # IPv4 Sun RPC + mgid=ff12:601b::1 # IPv6 All Hosts group + mgid=ff12:601b::2 # IPv6 All Routers group + mgid=ff12:601b::16 # IPv6 MLDv2-capable Routers group + mgid=ff12:601b::fb # IPv6 mDNS group + mgid=ff12:601b::101 # IPv6 NTP group + mgid=ff12:601b::202 # IPv6 Sun RPC group + mgid=ff12:601b::1:3 # IPv6 Multicast Link Local Name Resolution group + ALL=full, ALL_SWITCHES=full; + +# 40GBit, 4K MTU IPoIB example +#ib0_2=0x0002, rate=7, mtu=5, scope=2, defmember=full: +# ALL, ALL_SWITCHES=full; +#ib0_2=0x0002, ipoib, rate=7, mtu=5, scope=2: +# mgid=ff12:401b::ffff:ffff # IPv4 Broadcast address +# mgid=ff12:401b::1 # IPv4 All Hosts group +# mgid=ff12:401b::2 # IPv4 All Routers group +# mgid=ff12:401b::16 # IPv4 IGMP group +# mgid=ff12:401b::fb # IPv4 mDNS group +# mgid=ff12:401b::fc # IPv4 Multicast Link Local Name Resolution group +# mgid=ff12:401b::101 # IPv4 NTP group +# mgid=ff12:401b::202 # IPv4 Sun RPC +# mgid=ff12:601b::1 # IPv6 All Hosts group +# mgid=ff12:601b::2 # IPv6 All Routers group +# mgid=ff12:601b::16 # IPv6 MLDv2-capable Routers group +# mgid=ff12:601b::fb # IPv6 mDNS group +# mgid=ff12:601b::101 # IPv6 NTP group +# mgid=ff12:601b::202 # IPv6 Sun RPC group +# mgid=ff12:601b::1:3 # IPv6 Multicast Link Local Name Resolution group +# ALL=full, ALL_SWITCHES=full; + diff --git a/opensm.rwtab b/opensm.rwtab new file mode 100644 index 0000000..c298bac --- /dev/null +++ b/opensm.rwtab @@ -0,0 +1 @@ +empty /var/cache/opensm diff --git a/opensm.service b/opensm.service new file mode 100644 index 0000000..6264b4d --- /dev/null +++ b/opensm.service @@ -0,0 +1,14 @@ +[Unit] +Description=Starts the OpenSM InfiniBand fabric Subnet Manager +Documentation=man:opensm +DefaultDependencies=false +Before=network.target remote-fs-pre.target +Requires=rdma.service +After=rdma.service + +[Service] +Type=forking +ExecStart=/usr/libexec/opensm-launch + +[Install] +WantedBy=network.target diff --git a/opensm.spec b/opensm.spec new file mode 100644 index 0000000..fa3f875 --- /dev/null +++ b/opensm.spec @@ -0,0 +1,299 @@ +%global __remake_config 1 + +Name: opensm +Version: 3.3.23 +Release: 2%{?dist} +Summary: OpenIB InfiniBand Subnet Manager and management utilities +License: GPLv2 or BSD +Url: https://github.com/linux-rdma/opensm + +Source0: https://github.com/linux-rdma/opensm/releases/download/%{version}/%{name}-%{version}.tar.gz +Source2: opensm.logrotate +Source4: opensm.sysconfig +Source5: opensm.service +Source6: opensm.launch +Source7: opensm.rwtab +Source8: opensm.partitions + +BuildRequires: gcc +BuildRequires: libibumad-devel, systemd, systemd-units +BuildRequires: bison, flex, byacc +%if %{__remake_config} +BuildRequires: libtool, autoconf, automake +%endif +Requires: %{name}-libs%{?_isa} = %{version}-%{release}, logrotate, rdma +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +# RDMA is not currently built on 32-bit ARM: #1484155 +ExcludeArch: s390 %{arm} + +%description +OpenSM is the OpenIB project's Subnet Manager for Infiniband networks. +The subnet manager is run as a system daemon on one of the machines in +the infiniband fabric to manage the fabric's routing state. This package +also contains various tools for diagnosing and testing Infiniband networks +that can be used from any machine and do not need to be run on a machine +running the opensm daemon. + +%package libs +Summary: Libraries used by opensm and included utilities + +%description libs +Shared libraries for Infiniband user space access + +%package devel +Summary: Development files for the opensm-libs libraries +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description devel +Development environment for the opensm libraries + +%package static +Summary: Static version of the opensm libraries +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +%description static +Static version of opensm libraries + +%prep +%setup -q + +%build +%if %{__remake_config} +./autogen.sh +%endif +%configure --with-opensm-conf-sub-dir=rdma +make %{?_smp_mflags} +cd opensm +./opensm -c ../opensm-%{version}.conf + +%install +make install DESTDIR=%{buildroot} +# remove unpackaged files from the buildroot +rm -f %{buildroot}%{_libdir}/*.la +rm -fr %{buildroot}%{_sysconfdir}/init.d +install -D -m644 opensm-%{version}.conf %{buildroot}%{_sysconfdir}/rdma/opensm.conf +install -D -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/opensm +install -D -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/opensm +install -D -m644 %{SOURCE5} %{buildroot}%{_unitdir}/opensm.service +install -D -m755 %{SOURCE6} %{buildroot}%{_libexecdir}/opensm-launch +install -D -m644 %{SOURCE7} %{buildroot}%{_sysconfdir}/rwtab.d/opensm +install -D -m644 %{SOURCE8} %{buildroot}%{_sysconfdir}/rdma/partitions.conf +mkdir -p ${RPM_BUILD_ROOT}/var/cache/opensm + +%post +%systemd_post opensm.service + +%preun +%systemd_preun opensm.service + +%postun +if [ -d /var/cache/opensm ]; then + rm -fr /var/cache/opensm +fi +%systemd_postun_with_restart opensm.service + +%ldconfig_scriptlets libs + +%files +%dir /var/cache/opensm +%{_sbindir}/* +%{_mandir}/*/* +%{_unitdir}/* +%{_libexecdir}/* +%config(noreplace) %{_sysconfdir}/logrotate.d/opensm +%config(noreplace) %{_sysconfdir}/rdma/opensm.conf +%config(noreplace) %{_sysconfdir}/rdma/partitions.conf +%config(noreplace) %{_sysconfdir}/sysconfig/opensm +%{_sysconfdir}/rwtab.d/opensm +%doc AUTHORS ChangeLog INSTALL README NEWS +%license COPYING + +%files libs +%{_libdir}/lib*.so.* + +%files devel +%{_libdir}/lib*.so +%{_includedir}/infiniband + +%files static +%{_libdir}/lib*.a + +%changelog +* Tue Jul 28 2020 Fedora Release Engineering - 3.3.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Mar 16 2020 Honggang Li - 3.3.23-1 +- Rebase opensm to latest upstream release 3.3.23 +- Resolves: bz1813779 + +* Wed Jan 29 2020 Fedora Release Engineering - 3.3.22-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 3.3.22-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 17 2019 Honggang Li - 3.3.22-1 +- Rebase opensm to latest upstream release 3.3.22 +- Resolves: bz1700766 + +* Fri Feb 01 2019 Fedora Release Engineering - 3.3.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 21 2019 Honggang Li - 3.3.21-2 +- Restore the subnet prefix patch +- Resolves: bz1663785 + +* Mon Oct 8 2018 Honggang Li - 3.3.21-1 +- Rebase opensm to latest upstream release 3.3.21 +- Resolves: bz1637260 + +* Fri Jul 13 2018 Fedora Release Engineering - 3.3.20-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 08 2018 Fedora Release Engineering - 3.3.20-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 1 2018 Honggang Li - 3.3.20-7 +- Fix BuildRequires +- Fix preuninstall script +- Resolves: bz1540934 + +* Mon Aug 28 2017 Honggang Li - 3.3.20-6 +- Add support for s309x + +* Sat Aug 26 2017 Honggang Li - 3.3.20-5 +- Disable support for ARM32. +- Resolves: bz1484155 + +* Thu Aug 03 2017 Fedora Release Engineering - 3.3.20-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 3.3.20-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 3.3.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jun 10 2016 Honggang Li - 3.3.20-1 +- Update to latest upstream release +- Resolves: bz1344691 + +* Wed Mar 16 2016 Doug Ledford - 3.3.19-1 +- Update to latest upstream release +- Incorporate features from RHEL opensm +- Resolves: bz1124202 + +* Thu Feb 04 2016 Fedora Release Engineering - 3.3.17-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jun 18 2015 Fedora Release Engineering - 3.3.17-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 3.3.17-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.3.17-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu May 29 2014 Michael Schwendt - 3.3.17-2 +- Don't include manual page directories (#1089412). +- Use standard group Development/Libraries in library devel packages. +- Use %%?_isa in base package dependencies. + +* Mon Mar 17 2014 Peter Robinson 3.3.17-1 +- Update to 3.3.17 + +* Sat Aug 03 2013 Fedora Release Engineering - 3.3.15-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Mar 25 2013 Doug Ledford - 3.3.15-6 +- Oops, forgot to remove the -B option to opensm when starting it + +* Mon Mar 25 2013 Doug Ledford - 3.3.15-5 +- Drop the old sysv init script +- Fix opensm-launch to restart opensm in a loop. This works around the + fact that systemd starts opensm so early that we very well might not have + sync on the link yet. Without the physical link being up, opensm exits + immediately. This way opensm will get restarted every 30 seconds until + sync is active on the link or until the opensm service is stopped. +- Always install the newly generated opensm-%%{version}.conf as opensm.conf +- Make the launch work properly in the event that no GUIDs are set and + there are no numbered config files + +* Thu Feb 14 2013 Fedora Release Engineering - 3.3.15-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Dec 05 2012 Doug Ledford - 3.3.15-3 +- Fix startup on read only root +- Update default config file +- Resolves: bz817591 + +* Wed Dec 05 2012 Doug Ledford - 3.3.15-2 +- More tweaks to systemd setup (proper scriptlets now) +- More tweaks to old sysv init script support (fix Requires) + +* Tue Nov 27 2012 Doug Ledford - 3.3.15-1 +- Update to latest upstream release +- Update to systemd startup + +* Fri Jul 20 2012 Fedora Release Engineering - 3.3.13-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Mar 13 2012 Doug Ledford - 3.3.13-2 +- Fix the config file comment in the opensm init script +- Resolves: bz802727 + +* Tue Feb 28 2012 Doug Ledford - 3.3.13-1 +- Update to latest upstream version +- Fix a minor issue in init scripts that would cause systemd to try and + start/stop things in the wrong order +- Add a patch to allow us to specify the subnet prefix on the command line + +* Tue Jan 03 2012 Doug Ledford - 3.3.12-1 +- Update to latest upstream version + +* Mon Aug 15 2011 Kalev Lember - 3.3.9-2 +- Rebuilt for rpm bug #728707 + +* Wed Jul 20 2011 Doug Ledford - 3.3.9-1 +- Update to latest upstream version +- Add /etc/sysconfig/opensm for use by opensm init script +- Enable the ability to start more than one instance of opensm for multiple + fabric support +- Enable the ability to start opensm with a priority other than default for + support of backup opensm instances + +* Tue Feb 08 2011 Fedora Release Engineering - 3.3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Mar 08 2010 Doug Ledford - 3.3.5-1 +- Update to latest upstream release. We need various defines in ib_types.h + for the latest ibutils package to build properly, and the latest ibutils + package is needed because we found licensing problems in the older + tarballs during review. + +* Mon Jan 11 2010 Doug Ledford - 3.3.3-2 +- ExcludeArch s390(x) as there's no hardware support there + +* Thu Dec 03 2009 Doug Ledford - 3.3.3-1 +- Update to latest upstream release +- Minor tweaks to init script for LSB compliance + +* Sat Jul 25 2009 Fedora Release Engineering - 3.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 20 2009 Doug Ledford - 3.3.2-1 +- Update to latest upstream version + +* Wed Apr 22 2009 Doug Ledford - 3.3.1-1 +- Update to latest upstream version + +* Fri Mar 06 2009 Caolán McNamara - 3.2.1-3 +- fix bare elifs to rebuild + +* Thu Feb 26 2009 Fedora Release Engineering - 3.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Jun 08 2008 Doug Ledford - 3.2.1-1 +- Initial package for Fedora review process diff --git a/opensm.sysconfig b/opensm.sysconfig new file mode 100644 index 0000000..5f21efa --- /dev/null +++ b/opensm.sysconfig @@ -0,0 +1,72 @@ +# Problem #1: Multiple IB fabrics needing a subnet manager +# +# In the event that a machine has more than one IB subnet attached, +# and that machine is an opensm server, by default, opensm will +# only attach to one port and will not manage the fabric on the +# other port. There are two ways to solve this problem: +# +# 1) Start opensm on multiple machines and configure it to manage +# different fabrics on each machine +# 2) Configure opensm to start multiple instances on a single +# machine +# +# Both solutions to this problem require non-standard configurations. +# In other words, you would normally have to modify /etc/rdma/opensm.conf +# and once you do that, the file will no longer be updated for new +# options when opensm is upgraded. In an effort to allow people to +# have more than one subnet managed by opensm without having to modify +# the system default opensm.conf file, we have enabled two methods +# for modifying the default opensm config items needed to enable +# multiple fabric management. +# +# Method #1: Create multiple opensm.conf files in non-standard locations +# Copy /etc/rdma/opensm.conf to /etc/rdma/opensm.conf. +# (do this once for each instance you want started) +# Edit each copy of the opensm.conf file to reflect the necessary changes +# for a multiple instance startup. If you need to manage more than +# one fabric, you will have to change the guid option in each file +# to specify the guid of the specific port you want opensm attached +# to. +# +# The advantage to method #1 is that, on the off chance you want to do +# really special custom things on different ports, like have different +# QoS settings depending on which port you are attached to, you have the +# freedom to edit any and all settings for each instance without those +# changes affecting other instances or being lost when opensm upgrades. +# +# Method #2: Specify multiple GUIDS variable entries in this file +# Uncomment the below GUIDS variable and enter each guid you need to attach +# to into the list. If using this method you need to enter each +# guid into the list as we won't attach to any default ports, only +# those specified in the list. +# +#GUIDS="0x0002c90300048ca1 0x0002c90300048ca2" +# +# The obvious advantage to method #2 is that it's simple and doesn't +# clutter up your file system, but it is far more limited in what you +# can do. If you enable method #2, then even if you create the files +# referenced in method #1, they will be ignored. +# +# Problem #2: Activating a backup subnet manager +# +# The default priority of opensm is set so that it wants to be the +# primary subnet manager. This is great when you are only running +# opensm on one server, but if you want to have a non-primary opensm +# instance for failover, then you have to manually edit the opensm.conf +# file like for problem #1. This carries with it all the problems +# listed above. If you wish to enable opensm as a non-primary manager, +# then you can uncomment the PRIORITY variable below and set it to +# some number between 0 and 15, where 15 is the highest priority and +# the primary manager, with 0 being the lowest backup server. This method +# will work with the GUIDS option above, and also with the multiple +# config files in method #1 above. However, only a single priority is +# supported here. If you wanted more than one priority (say this machine +# is the primary on the first fabric, and second on the second fabric, +# while the other opensm server is primary on the second fabric and +# second on the primary), then the only way to do that is to use method #1 +# above and individually edit the config files. If you edit the config +# files to set the priority and then also set the priority here, then +# this setting will override the config files and render that particular +# edit useless. +# +#PRIORITY=15 diff --git a/sources b/sources new file mode 100644 index 0000000..3d115c5 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (opensm-3.3.23.tar.gz) = ea8853f23bf98e86582115652e5f32dd96e9e45fc2a0b46ca7f4d3dd0d32468e06ed4b1c5e2ea037de3a95b5e13c31e62f849d5598b39a6f9d1aeb5b0ee0b638