Compare commits

..

No commits in common. "c8" and "c9" have entirely different histories.
c8 ... c9

12 changed files with 67 additions and 415 deletions

View File

@ -1 +1 @@
263e7e1c31e5c834126afb0a510a852268bd07af SOURCES/fcoe-utils-1.0.33-848bcc6.tar.gz
8a0ee8a4693faef7232c7370d5c90a7806413edc SOURCES/fcoe-utils-1.0.34-14ef0d2.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/fcoe-utils-1.0.33-848bcc6.tar.gz
SOURCES/fcoe-utils-1.0.34-14ef0d2.tar.gz

View File

@ -1,115 +0,0 @@
From 729135eea0ed39b3dfd57b7ea15f284e67af532f Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 18 Jan 2021 13:37:39 -0800
Subject: [PATCH 1/1] Revert "fcoemon: Correctly handle options in the service
file"
This reverts commit b06c3df0f0b06c1ad37b3bbf8bd602b24318aae6.
---
doc/fcoemon.txt | 6 +++---
etc/systemd/fcoe.service | 4 ++--
fcoemon.c | 24 +++++++++---------------
3 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/doc/fcoemon.txt b/doc/fcoemon.txt
index ba70478d141..3bfb3581a1b 100644
--- a/doc/fcoemon.txt
+++ b/doc/fcoemon.txt
@@ -53,13 +53,13 @@ OPTIONS
-------
*-f*, *--foreground*::
Run *fcoemon* in the foreground.
-*-d*, *--debug=yes|no*::
- Enable or disable debugging messages.
+*-d*, *--debug*::
+ Enable debugging messages.
*-l*, *--legacy*::
Force fcoemon to use the legacy /sys/module/libfcoe/parameters/
interface. The default is to use the newer /sys/bus/fcoe/ interfaces
if they are available.
-*-s*, *--syslog=yes|no*::
+*-s*, *--syslog*::
Use syslogd for logging. The default behavior is to log to stdout
and stderr.
*-h*, *--help*::
diff --git a/etc/systemd/fcoe.service b/etc/systemd/fcoe.service
index b1d95671573..5e5c8a2b67b 100644
--- a/etc/systemd/fcoe.service
+++ b/etc/systemd/fcoe.service
@@ -4,9 +4,9 @@ After=syslog.target network.target
[Service]
Type=simple
-EnvironmentFile=/etc/fcoe/config
+EnvironmentFile=/etc/sysconfig/fcoe
ExecStartPre=/sbin/modprobe -qa $SUPPORTED_DRIVERS
-ExecStart=/usr/sbin/fcoemon --foreground --debug=$DEBUG --syslog=$SYSLOG
+ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS
[Install]
WantedBy=multi-user.target
diff --git a/fcoemon.c b/fcoemon.c
index 8c08bc5a032..0cc36fec304 100644
--- a/fcoemon.c
+++ b/fcoemon.c
@@ -335,9 +335,9 @@ static int fcoe_vid_from_ifname(const char *ifname);
* Table for getopt_long(3).
*/
static struct option fcm_options[] = {
- {"debug", 1, NULL, 'd'},
+ {"debug", 0, NULL, 'd'},
{"legacy", 0, NULL, 'l'},
- {"syslog", 1, NULL, 's'},
+ {"syslog", 0, NULL, 's'},
{"exec", 1, NULL, 'e'},
{"foreground", 0, NULL, 'f'},
{"version", 0, NULL, 'v'},
@@ -3271,9 +3271,9 @@ static void fcm_usage(void)
{
printf("Usage: %s\n"
"\t [-f|--foreground]\n"
- "\t [-d|--debug=yes|no]\n"
+ "\t [-d|--debug]\n"
"\t [-l|--legacy]\n"
- "\t [-s|--syslog=yes|no]\n"
+ "\t [-s|--syslog]\n"
"\t [-v|--version]\n"
"\t [-h|--help]\n\n", progname);
exit(1);
@@ -3729,28 +3729,22 @@ int main(int argc, char **argv)
sa_log_flags = 0;
openlog(sa_log_prefix, LOG_CONS, LOG_DAEMON);
- while ((c = getopt_long(argc, argv, "fd:hls:v",
+ while ((c = getopt_long(argc, argv, "fdhlsv",
fcm_options, NULL)) != -1) {
switch (c) {
case 'f':
fcm_fg = 1;
break;
case 'd':
- if (!strncmp(optarg, "yes", 3) ||
- !strncmp(optarg, "YES", 3)) {
- fcoe_config.debug = 1;
- enable_debug_log(1);
- }
+ fcoe_config.debug = 1;
+ enable_debug_log(1);
break;
case 'l':
force_legacy = true;
break;
case 's':
- if (!strncmp(optarg, "yes", 3) ||
- !strncmp(optarg, "YES", 3)) {
- fcoe_config.use_syslog = 1;
- enable_syslog(1);
- }
+ fcoe_config.use_syslog = 1;
+ enable_syslog(1);
break;
case 'v':
printf("%s\n", FCOE_UTILS_VERSION);
--
2.26.2

View File

@ -1,78 +0,0 @@
From 1e6837c8ce063399eeb9580104da33f807e15443 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 23 Mar 2021 11:16:06 -0700
Subject: [PATCH 2/5] Revert "Make gcc compiler happy about ifname string
truncation."
This change dropped the "." from between the physical interface name and
the vlan number, making fipvlan created vlan names incompatible with
fcoeadm commands that ended up calling get_pci_dev_from_netdev in
lib/sysfs_hba.c (fcoeadm -i). That requirement should be fixed, but for
now lets deal with the fipvlan naming regression.
safe_makevlan_name isn't doing anything that can't be handled by
checking the return from snprintf
This reverts commit eee875e6526786031ec916274deec92148677c38.
Signed-off-by: Chris Leech <cleech@redhat.com>
---
fipvlan.c | 34 +---------------------------------
1 file changed, 1 insertion(+), 33 deletions(-)
diff --git a/fipvlan.c b/fipvlan.c
index c8a07339314..fe8d7955cc5 100644
--- a/fipvlan.c
+++ b/fipvlan.c
@@ -595,36 +595,6 @@ static int rtnl_listener_handler(struct nlmsghdr *nh, UNUSED void *arg)
return -1;
}
-static int
-safe_makevlan_name(char *vlan_name, size_t vsz,
- char *ifname, int vlan_num, char *suffix)
-{
- size_t ifsz = strlen(ifname);
- size_t susz = strlen(suffix); /* should never be NULL */
- int nusz;
- char numbuf[16];
- char *cp = vlan_name;
-
- nusz = snprintf(numbuf, sizeof(numbuf), "%d", vlan_num);
-
- if ((ifsz + susz + nusz + 2) > vsz) {
- FIP_LOG_ERR(EINVAL,
- "Cannot make VLAN name from ifname=\"%s\", vlan %d, and suffix=\"%s\"\n",
- ifname, vlan_num, suffix);
- return -EINVAL;
- }
- memcpy(cp, ifname, ifsz);
- cp += ifsz;
- memcpy(cp, numbuf, nusz);
- cp += nusz;
- if (susz > 0) {
- memcpy(cp, suffix, susz);
- cp += susz;
- }
- *cp = '\0';
- return 0;
-}
-
static int
create_and_start_vlan(struct fcf *fcf, bool vn2vn)
{
@@ -654,10 +624,8 @@ create_and_start_vlan(struct fcf *fcf, bool vn2vn)
real_dev->ifname, fcf->vlan, vlan->ifname);
rc = 0;
} else {
- rc = safe_makevlan_name(vlan_name, sizeof(vlan_name),
+ snprintf(vlan_name, IFNAMSIZ, "%s.%d%s",
real_dev->ifname, fcf->vlan, config.suffix);
- if (rc < 0)
- return rc;
rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name);
if (rc < 0)
printf("Failed to create VLAN device %s\n\t%s\n",
--
2.26.2

View File

@ -1,38 +0,0 @@
From b9885692cb283a674e04528486984fb61f92a190 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 23 Mar 2021 11:21:17 -0700
Subject: [PATCH 3/5] fix VLAN device name overflow check
check snprintf return for truncation
Signed-off-by: Chris Leech <cleech@redhat.com>
---
fipvlan.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/fipvlan.c b/fipvlan.c
index fe8d7955cc5..3ce913d5eaf 100644
--- a/fipvlan.c
+++ b/fipvlan.c
@@ -624,8 +624,16 @@ create_and_start_vlan(struct fcf *fcf, bool vn2vn)
real_dev->ifname, fcf->vlan, vlan->ifname);
rc = 0;
} else {
- snprintf(vlan_name, IFNAMSIZ, "%s.%d%s",
- real_dev->ifname, fcf->vlan, config.suffix);
+ rc = snprintf(vlan_name, IFNAMSIZ, "%s.%d%s",
+ real_dev->ifname, fcf->vlan,
+ config.suffix);
+ if (rc < 0 || rc >= IFNAMSIZ) {
+ printf("Failed to create VLAN device "
+ "(name %s.%d%s is too long)\n",
+ real_dev->ifname, fcf->vlan,
+ config.suffix);
+ return -EINVAL;
+ }
rc = vlan_create(fcf->ifindex, fcf->vlan, vlan_name);
if (rc < 0)
printf("Failed to create VLAN device %s\n\t%s\n",
--
2.26.2

View File

@ -1,35 +0,0 @@
From 108387a2aa986a8107faa7548f3f9e9c084749d2 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 24 Mar 2021 09:50:51 -0700
Subject: [PATCH 4/5] fix regressions caused by safe_makepath change in
libopenfcoe.c
This needs to use strlen(dname) not sizeof(dname) or the directory path
is truncated. On a 64-bit arch an 8 byte truncation kind of looks like
a valid path '/sys/bus' which is sort of funny unless you're debugging
it.
This caused fcoeadm --fcf to fail to read in FCF info, and fcoeadm
--lesb to fail to find the link error status block counters.
Signed-off-by: Chris Leech <cleech@redhat.com>
---
libopenfcoe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libopenfcoe.c b/libopenfcoe.c
index 452ee803e63..cd35c868eee 100644
--- a/libopenfcoe.c
+++ b/libopenfcoe.c
@@ -58,7 +58,7 @@ out_err:
static char *safe_makepath(char *path, size_t path_sz,
char *dname, char *fname)
{
- size_t dsz = sizeof(dname);
+ size_t dsz = strlen(dname);
size_t fsz = strlen(fname);
char *cp = path;
--
2.26.2

View File

@ -1,35 +0,0 @@
From c4fe62dd3d26b30fdcf94c94f74bc0b9f7034c17 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 24 Mar 2021 10:17:52 -0700
Subject: [PATCH 5/5] minor fcoeadm output issues
Signed-off-by: Chris Leech <cleech@redhat.com>
---
fcoeadm_display.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fcoeadm_display.c b/fcoeadm_display.c
index 585ecfae54e..c2ef33b82cf 100644
--- a/fcoeadm_display.c
+++ b/fcoeadm_display.c
@@ -132,7 +132,7 @@ static void show_port_info(struct port_attributes *lp_info)
printf(" Port Name: %s\n",
lp_info->port_name);
- printf(" Fabric Name: %s\n",
+ printf(" Fabric Name: %s\n",
lp_info->fabric_name);
printf(" Speed: %s\n",
@@ -853,7 +853,7 @@ static void print_fcoe_fcf_device(void *ep, UNUSED void *arg)
buf = temp;
printf(" Connection Mode: %s\n", buf);
printf(" Fabric Name: 0x%016" PRIx64 "\n", fcf->fabric_name);
- printf(" Switch Name 0x%016" PRIx64 "\n", fcf->switch_name);
+ printf(" Switch Name: 0x%016" PRIx64 "\n", fcf->switch_name);
mac2str(fcf->mac, mac, MAX_STR_LEN);
printf(" MAC Address: %s\n", mac);
printf(" FCF Priority: %u\n", fcf->priority);
--
2.26.2

View File

@ -1,25 +0,0 @@
From db650524cb395827cf0d5a43bd07f77396513cd7 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Tue, 7 Aug 2018 21:23:38 -0700
Subject: [PATCH 1/1] set default DCB_REQUIRED to 'no'
---
etc/cfg-ethx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/cfg-ethx b/etc/cfg-ethx
index c5aaf36b4625..e2eb3309ccc7 100644
--- a/etc/cfg-ethx
+++ b/etc/cfg-ethx
@@ -8,7 +8,7 @@ FCOE_ENABLE="yes"
## Default: no
# Indicate if DCB service is required at the Ethernet port
# Normally set to "yes"
-DCB_REQUIRED="yes"
+DCB_REQUIRED="no"
## Type: yes/no
## Default: no
--
2.14.4

View File

@ -1,5 +0,0 @@
# All supported drivers listed here are loaded when service starts
SUPPORTED_DRIVERS="libfc bnx2fc qedf"
# Add --debug to enable debug messages
FCOEMON_OPTS="--syslog"

View File

@ -1,12 +0,0 @@
[Unit]
Description=Open-FCoE Inititator.
After=syslog.target network.target lldpad.service
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/fcoe
ExecStartPre=/sbin/modprobe -qa $SUPPORTED_DRIVERS
ExecStart=/usr/sbin/fcoemon $FCOEMON_OPTS
[Install]
WantedBy=multi-user.target

View File

@ -1,25 +0,0 @@
Quick Start guide for Open-FCoE
===============================
1. Install fcoe-utils package. This should also install dcbd, libhbaapi and
libhbalinux as dependencies.
2. Rename /etc/fcoe/cfg-ethx so it corresponds with name of your network
interface (e.g. /etc/fcoe/cfg-eth0). Copy and rename this file accordingly
if you have more interfaces, which should be fcoe-enabled
3. Modify configuration files to enable FCoE. Set FCOE_ENABLE="yes" and
DCB_REQUIRED="yes".
3. Run 'systemctl enable fcoe.service' to start FCoE per run level. This
will setup FCoE to start on reboot.
4. Run 'systemctl enable lldpad.service' to start LLDP agent per run
level. This will setup DCB to start on reboot.
5. Run 'systemctl start lldpad.service' to start LLDP agent.
6. Run 'dcbtool sc ethX dcb on; dcbtool sc ethX app:0 e:1;' for each fcoe-enabled
interface to setup DCB for FCoE.
7. Run 'systemctl start fcoe.sertvice' to start FCoE.

View File

@ -1,35 +1,25 @@
# https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags
%global _hardened_build 1
# v1.0.33-9-g848bcc6ba8c
%global commit0 848bcc6ba8cda1f344663b4e73f1bc4857bcb4e3
# v1.0.34
%global commit0 14ef0d24c0657e56c68360afcfe64034d37323e0
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
Name: fcoe-utils
Version: 1.0.33
Release: 4.git%{shortcommit0}%{?dist}
Version: 1.0.34
Release: 0.git%{shortcommit0}%{?dist}
Summary: Fibre Channel over Ethernet utilities
Group: Applications/System
License: GPLv2
URL: http://www.open-fcoe.org
Source0: https://github.com/openSUSE/fcoe-utils/archive/%{commit0}.tar.gz#/%{name}-%{version}-%{shortcommit0}.tar.gz
Source1: quickstart.txt
Source2: fcoe.service
Source3: fcoe.config
ExcludeArch: ppc s390
Patch0: fcoe-utils-set-default-DCB_REQUIRED-to-no.patch
Patch1: 0001-Revert-fcoemon-Correctly-handle-options-in-the-servi.patch
Patch2: 0002-Revert-Make-gcc-compiler-happy-about-ifname-string-t.patch
Patch3: 0003-fix-VLAN-device-name-overflow-check.patch
Patch4: 0004-fix-regressions-caused-by-safe_makepath-change-in-li.patch
Patch5: 0005-minor-fcoeadm-output-issues.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libpciaccess-devel
BuildRequires: libtool
BuildRequires: libpciaccess-devel
BuildRequires: lldpad-devel >= 0.9.43
BuildRequires: systemd
BuildRequires: make
Requires: lldpad >= 0.9.43
Requires: iproute
Requires: device-mapper-multipath
@ -44,72 +34,102 @@ fcoemon - service to configure DCB Ethernet QOS filters, works with lldpad
%prep
%autosetup -p1 -n fcoe-utils-%{commit0}
cp -v %{SOURCE1} quickstart.txt
%if 0%{?rhel} >= 8
# RHEL dropped support for software fcoe (fcoe.ko)
sed -i 's/^\(SUPPORTED_DRIVERS\)=".*"$/\1="bnx2fc qedf"/' etc/config
# make the defaults sane for supported offload drivers
sed -i 's/^\(DCB_REQUIRED\)=".*"$/\1="no"/' etc/cfg-ethx
%endif
%build
./bootstrap.sh
%configure
%configure --with-systemdsystemunitdir=%{_unitdir}
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
rm -rf %{buildroot}/etc/init.d
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig %{buildroot}%{_unitdir}
rm -f %{buildroot}%{_unitdir}/*
install -m 644 %{SOURCE2} %{buildroot}%{_unitdir}
install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/fcoe
mkdir -p %{buildroot}%{_libexecdir}/fcoe
for file in \
contrib/*.sh \
debug/*sh
do install -m 755 ${file} %{buildroot}%{_libexecdir}/fcoe/
done
# We supply our own config for fcoe.service
rm -f %{buildroot}/%{_sysconfdir}/fcoe/config
%post
%systemd_post fcoe.service
%systemd_post fcoe.service fcoemon.socket
%preun
%systemd_preun fcoe.service
%systemd_preun fcoe.service fcoemon.socket
%postun
%systemd_postun_with_restart fcoe.service
%systemd_postun_with_restart fcoe.service fcoemon.socket
%files
%doc README COPYING QUICKSTART quickstart.txt
%doc README COPYING QUICKSTART
%{_sbindir}/*
%{_mandir}/man8/*
%{_unitdir}/fcoe.service
%{_unitdir}/fcoemon.socket
%{_sysconfdir}/fcoe/
%config(noreplace) %{_sysconfdir}/fcoe/cfg-ethx
%config(noreplace) %{_sysconfdir}/sysconfig/fcoe
%config(noreplace) %{_sysconfdir}/fcoe/config
%{_datadir}/bash-completion/completions/*
%{_libexecdir}/fcoe/
%changelog
* Thu Jun 10 2021 Chris Leech <cleech@redhat.com> - 1.0.33-4.git848bcc6
- rebuilt for 8.5
* Thu Sep 09 2021 Chris Leech <cleech@redhat.com> - 1.0.34-0.git14ef0d2
- upstream 1.0.34
- drop gcc warning diabling patch, upstream fixes exist for these issues now
- #1961180 FCoE interface name regressions
* Tue Mar 23 2021 Chris Leech <cleech@redhat.com> - 1.0.33-3.git848bcc6
- 1918561 regression in fipvlan VLAN name generation and fcoeadm commands
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.0.33-7.git848bcc6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Jan 18 2021 Chris Leech <cleech@redhat.com> - 1.0.33-2.git848bcc6
- 1897503 revert breaking upstream change to command line options
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 1.0.33-6.git848bcc6
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Nov 03 2020 Chris Leech <cleech@redhat.com> - 1.0.33-1.git848bcc6
- 1889536 add back default change of DCB_REQUIRED="no" for RHEL 8
* Tue Feb 02 2021 Chris Leech <cleech@redhat.com> - 1.0.33-5.git848bcc6
- add in RHEL conditional for removed fcoe.ko support
* Tue Nov 03 2020 Chris Leech <cleech@redhat.com> - 1.0.33-0.git848bcc6
- 1889536 new version
* Mon Feb 01 2021 Chris Leech <cleech@redhat.com> - 1.0.33-4.git848bcc6
- drop any differences with upstream service and config files
* Fri Dec 06 2019 Chris Leech <cleech@redhat.com> - 1.0.32-7
- 1776492 fcoemon: fix ignored devices from recv buffer resize bug
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.33-3.gitfe376de
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Aug 07 2018 Chris Leech <cleech@redhat.com> - 1.0.32-6
- remove fcoe from SUPPORTED_DRIVERS in /etc/sysconfig/fcoe
- add qedf to SUPPORTED_DRIVERS in /etc/sysconf/fcoe
- added upstream fix for large fcoe ctrl numbers
* Sat Nov 14 2020 Jeff Law <law@redhat.com> - 1.0.33-2.gitfe376de
- Disable fatal diagnostic from gcc-11 for fping
* Wed Oct 28 2020 Jeff Law <law@redhat.com> - 1.0.33-1.gitfe376de
- Disable fatal diagnostics from gcc-11 for fipvlan
* Mon Sep 21 2020 Chris Leech <cleech@redhat.com> - 1.0.33-0.gitfe376de
- FTBFS: fix gcc 10.2 truncation and overflow errors
- rebase to 1.0.33+ from new upstream location
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-12.git9834b34
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-11.git9834b34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-10.git9834b34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-9.git9834b34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Jun 04 2019 Chris Leech <cleech@redhat.com> - 1.0.32-8.git9834b34
- fix more string function issues breaking the build with newer gcc
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.32-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Mar 16 2018 Chris Leech <cleech@redhat.com> - 1.0.32-5
- fix some newer gcc 8 truncation format errors