Remove CentOS/OpenSUSE build support
StarlingX stopped supporting CentOS builds in the after release 7.0. This update will strip CentOS from our code base. It will also remove references to the failed OpenSUSE feature as well. Story: 2011110 Task: 49954 Change-Id: I2e9452c74c7f249ea61eea4a658bb6a4624e5957 Signed-off-by: Scott Little <scott.little@windriver.com>
This commit is contained in:
parent
bd90e442ac
commit
f6990245f0
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,25 +0,0 @@
|
|||||||
From d52fda6215af4f2d51884a10c04d3c7a44d100dd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Mon, 13 Nov 2017 16:38:15 -0500
|
|
||||||
Subject: [PATCH] Update package versioning for TIS format
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index e2d706d..00b19c4 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -3,7 +3,7 @@
|
|
||||||
Summary: Graphical system installer
|
|
||||||
Name: anaconda
|
|
||||||
Version: 21.48.22.147
|
|
||||||
-Release: 1%{?dist}
|
|
||||||
+Release: 1.el7.centos%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: GPLv2+ and MIT
|
|
||||||
Group: Applications/System
|
|
||||||
URL: http://fedoraproject.org/wiki/Anaconda
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From 6bec7d96120f7eef019ab2841265bf4b74ebc64d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Mon, 13 Nov 2017 17:22:49 -0500
|
|
||||||
Subject: [PATCH] Add TIS patches
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index 00b19c4..79e1c55 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -24,6 +24,9 @@ Patch8: 9800-rpmostreepayload-Rework-remote-add-handling.patch
|
|
||||||
Patch9: yumpayload-dont-verify-disabled-repos.patch
|
|
||||||
Patch10: anaconda-centos-armhfp-extloader.patch
|
|
||||||
|
|
||||||
+# WRS
|
|
||||||
+Patch10001: 0001-TIS-Progress-and-error-handling.patch
|
|
||||||
+
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
|
||||||
# match the requires versions of things).
|
|
||||||
%define dbusver 1.2.3
|
|
||||||
@@ -250,6 +253,9 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|
||||||
%patch10 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
+# WRS
|
|
||||||
+%patch10001 -p1
|
|
||||||
+
|
|
||||||
%build
|
|
||||||
%configure --disable-static \
|
|
||||||
--enable-introspection \
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From 9ebc2f9343cc214fb1e590221e4791f10a2f87d1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Fri, 17 Nov 2017 12:08:27 -0500
|
|
||||||
Subject: [PATCH] revert 7.4 grub2 efi handling
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index 79e1c55..2e5ece9 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -26,6 +26,7 @@ Patch10: anaconda-centos-armhfp-extloader.patch
|
|
||||||
|
|
||||||
# WRS
|
|
||||||
Patch10001: 0001-TIS-Progress-and-error-handling.patch
|
|
||||||
+Patch10002: 0002-revert-7.4-grub2-efi-handling.patch
|
|
||||||
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
|
||||||
# match the requires versions of things).
|
|
||||||
@@ -255,6 +256,7 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|
||||||
|
|
||||||
# WRS
|
|
||||||
%patch10001 -p1
|
|
||||||
+%patch10002 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
%configure --disable-static \
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 709f54c6e799c23a9a374dfca6196ec08102b658 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 23 Nov 2017 16:35:13 -0500
|
|
||||||
Subject: [PATCH] Upversion rpm-devel dependency
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index 2e5ece9..174dbee 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -51,7 +51,7 @@ Patch10002: 0002-revert-7.4-grub2-efi-handling.patch
|
|
||||||
%define pypartedver 2.5-2
|
|
||||||
%define pythonpyblockver 0.45
|
|
||||||
%define pythonurlgrabberver 3.9.1-5
|
|
||||||
-%define rpmver 4.10.0
|
|
||||||
+%define rpmver 4.14.0
|
|
||||||
%define sckeyboardver 1.3.1
|
|
||||||
%define utillinuxver 2.15.1
|
|
||||||
%define yumutilsver 1.1.11-3
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
From e54422230c27e53436fe94a639a04aaf65f787e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 23 Nov 2017 16:50:10 -0500
|
|
||||||
Subject: [PATCH] Add TIS patches for host lookup
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index 174dbee..8541334 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -27,6 +27,8 @@ Patch10: anaconda-centos-armhfp-extloader.patch
|
|
||||||
# WRS
|
|
||||||
Patch10001: 0001-TIS-Progress-and-error-handling.patch
|
|
||||||
Patch10002: 0002-revert-7.4-grub2-efi-handling.patch
|
|
||||||
+Patch10003: 0003-Set-default-hostname-to-localhost.patch
|
|
||||||
+Patch10004: 0004-Cache-server-ip-in-etc-hosts.patch
|
|
||||||
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
|
||||||
# match the requires versions of things).
|
|
||||||
@@ -257,6 +259,8 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|
||||||
# WRS
|
|
||||||
%patch10001 -p1
|
|
||||||
%patch10002 -p1
|
|
||||||
+%patch10003 -p1
|
|
||||||
+%patch10004 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
%configure --disable-static \
|
|
||||||
@@ -275,6 +279,10 @@ desktop-file-install ---dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_
|
|
||||||
mkdir -p %{buildroot}%{_datadir}/anaconda/site-python
|
|
||||||
install -m 0644 pyanaconda/sitecustomize.py %{buildroot}%{_datadir}/anaconda/site-python/
|
|
||||||
%endif
|
|
||||||
+
|
|
||||||
+# Add anaconda-preexec script
|
|
||||||
+install -m 0755 scripts/anaconda-preexec %{buildroot}%{_sbindir}/anaconda-preexec
|
|
||||||
+
|
|
||||||
# NOTE: If you see "error: Installed (but unpackaged) file(s) found" that include liveinst files,
|
|
||||||
# check the IS_LIVEINST_ARCH in configure.ac to make sure your architecture is properly defined
|
|
||||||
|
|
||||||
@@ -323,6 +331,7 @@ update-desktop-database &> /dev/null || :
|
|
||||||
%{_sysconfdir}/X11/xinit/xinitrc.d/*
|
|
||||||
%{_datadir}/applications/*.desktop
|
|
||||||
%endif
|
|
||||||
+%{_sbindir}/anaconda-preexec
|
|
||||||
|
|
||||||
%files gui
|
|
||||||
%{_libdir}/python*/site-packages/pyanaconda/ui/gui/*
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
From 9a2fa4a719df870296f8559bbf775696b49847c5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Fri, 7 Feb 2020 14:09:28 -0500
|
|
||||||
Subject: [PATCH] Add support for https and IPv6 to anaconda-preexec
|
|
||||||
|
|
||||||
Include the source patch that adds support for https and IPv6.
|
|
||||||
|
|
||||||
Signed-off-by: Don Penney <don.penney@windriver.com>
|
|
||||||
---
|
|
||||||
SPECS/anaconda.spec | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec
|
|
||||||
index c482f38..8fea2fa 100644
|
|
||||||
--- a/SPECS/anaconda.spec
|
|
||||||
+++ b/SPECS/anaconda.spec
|
|
||||||
@@ -24,11 +24,12 @@ Patch8: 9800-rpmostreepayload-Rework-remote-add-handling.patch
|
|
||||||
Patch9: yumpayload-dont-verify-disabled-repos.patch
|
|
||||||
Patch10: anaconda-centos-armhfp-extloader.patch
|
|
||||||
|
|
||||||
-# WRS
|
|
||||||
+# StarlingX
|
|
||||||
Patch10001: 0001-TIS-Progress-and-error-handling.patch
|
|
||||||
Patch10002: 0002-revert-7.4-grub2-efi-handling.patch
|
|
||||||
Patch10003: 0003-Set-default-hostname-to-localhost.patch
|
|
||||||
Patch10004: 0004-Cache-server-ip-in-etc-hosts.patch
|
|
||||||
+Patch10005: 0005-Add-support-for-IPv6-and-https-to-anaconda-preexec.patch
|
|
||||||
|
|
||||||
# Versions of required components (done so we make sure the buildrequires
|
|
||||||
# match the requires versions of things).
|
|
||||||
@@ -256,11 +257,12 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
|
||||||
%patch10 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
-# WRS
|
|
||||||
+# StarlingX
|
|
||||||
%patch10001 -p1
|
|
||||||
%patch10002 -p1
|
|
||||||
%patch10003 -p1
|
|
||||||
%patch10004 -p1
|
|
||||||
+%patch10005 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
%configure --disable-static \
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
0002-Add-TIS-patches.patch
|
|
||||||
0003-revert-7.4-grub2-efi-handling.patch
|
|
||||||
0004-Upversion-rpm-devel-dependency.patch
|
|
||||||
0005-Add-TIS-patches-for-host-lookup.patch
|
|
||||||
0006-Add-support-for-https-and-IPv6-to-anaconda-preexec.patch
|
|
@ -1,394 +0,0 @@
|
|||||||
From fa37cfcf560506f49bb00b9d216b1e7646a6905b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Mon, 13 Nov 2017 17:21:05 -0500
|
|
||||||
Subject: [PATCH] TIS Progress and error handling
|
|
||||||
|
|
||||||
---
|
|
||||||
data/tmux.conf | 3 +-
|
|
||||||
pyanaconda/errors.py | 24 +++++++--
|
|
||||||
pyanaconda/flags.py | 1 +
|
|
||||||
pyanaconda/install.py | 4 ++
|
|
||||||
pyanaconda/kickstart.py | 3 ++
|
|
||||||
pyanaconda/packaging/rpmostreepayload.py | 5 ++
|
|
||||||
pyanaconda/packaging/yumpayload.py | 15 +++++-
|
|
||||||
pyanaconda/tisnotify.py | 91 ++++++++++++++++++++++++++++++++
|
|
||||||
pyanaconda/ui/gui/hubs/progress.py | 4 ++
|
|
||||||
pyanaconda/ui/tui/spokes/progress.py | 4 ++
|
|
||||||
10 files changed, 147 insertions(+), 7 deletions(-)
|
|
||||||
create mode 100644 pyanaconda/tisnotify.py
|
|
||||||
|
|
||||||
diff --git a/data/tmux.conf b/data/tmux.conf
|
|
||||||
index 89f788b..7903b06 100644
|
|
||||||
--- a/data/tmux.conf
|
|
||||||
+++ b/data/tmux.conf
|
|
||||||
@@ -1,6 +1,7 @@
|
|
||||||
# tmux.conf for the anaconda environment
|
|
||||||
|
|
||||||
bind -n M-tab next
|
|
||||||
+bind -n C-o next
|
|
||||||
bind -n F1 list-keys
|
|
||||||
|
|
||||||
set-option -s exit-unattached off
|
|
||||||
@@ -10,7 +11,7 @@ set-option -g history-limit 10000
|
|
||||||
|
|
||||||
new-session -s anaconda -n main "anaconda"
|
|
||||||
|
|
||||||
-set-option status-right '#[fg=blue]#(echo -n "Switch tab: Alt+Tab | Help: F1 ")'
|
|
||||||
+set-option status-right '#[fg=blue]#(echo -n "Switch: Alt+Tab or Ctrl-o ")'
|
|
||||||
|
|
||||||
new-window -d -n shell "bash --login"
|
|
||||||
new-window -d -n log "tail -F /tmp/anaconda.log"
|
|
||||||
diff --git a/pyanaconda/errors.py b/pyanaconda/errors.py
|
|
||||||
index 860b228..1d1d34b 100644
|
|
||||||
--- a/pyanaconda/errors.py
|
|
||||||
+++ b/pyanaconda/errors.py
|
|
||||||
@@ -19,6 +19,7 @@
|
|
||||||
# Author(s): Chris Lumens <clumens@redhat.com>
|
|
||||||
|
|
||||||
from pyanaconda.i18n import _
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
|
|
||||||
__all__ = ["ERROR_RAISE", "ERROR_CONTINUE", "ERROR_RETRY",
|
|
||||||
"InvalidImageSizeError", "MissingImageError", "MediaUnmountError",
|
|
||||||
@@ -81,6 +82,19 @@ ERROR_RAISE = 0
|
|
||||||
ERROR_CONTINUE = 1
|
|
||||||
ERROR_RETRY = 2
|
|
||||||
|
|
||||||
+#
|
|
||||||
+# WRS: If a fatal error occurs in a %pre, anaconda hasn't setup the UI yet,
|
|
||||||
+# and an exception occurs in the error handler. This is a basic dummy UI
|
|
||||||
+# to avoid this exception and print the error message.
|
|
||||||
+#
|
|
||||||
+class DefaultUI(object):
|
|
||||||
+ def __init__(self):
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+ def showError(self, msg):
|
|
||||||
+ print "\n\n", msg
|
|
||||||
+
|
|
||||||
+
|
|
||||||
###
|
|
||||||
### TOP-LEVEL ERROR HANDLING OBJECT
|
|
||||||
###
|
|
||||||
@@ -304,12 +318,12 @@ class ErrorHandler(object):
|
|
||||||
"""
|
|
||||||
rc = ERROR_RAISE
|
|
||||||
|
|
||||||
+ # WRS: Notify the controller installation has failed
|
|
||||||
+ tisnotify.failed()
|
|
||||||
+
|
|
||||||
if not self.ui:
|
|
||||||
- # While Pylint thinks something else, this should be likely OK
|
|
||||||
- # for an exception handler.
|
|
||||||
- #
|
|
||||||
- # pylint: disable=misplaced-bare-raise
|
|
||||||
- raise
|
|
||||||
+ # WRS: Use the basic UI
|
|
||||||
+ self.ui = DefaultUI()
|
|
||||||
|
|
||||||
_map = {"PartitioningError": self._partitionErrorHandler,
|
|
||||||
"FSResizeError": self._fsResizeHandler,
|
|
||||||
diff --git a/pyanaconda/flags.py b/pyanaconda/flags.py
|
|
||||||
index 8a97f95..3d0d2da 100644
|
|
||||||
--- a/pyanaconda/flags.py
|
|
||||||
+++ b/pyanaconda/flags.py
|
|
||||||
@@ -71,6 +71,7 @@ class Flags(object):
|
|
||||||
self.ksprompt = True
|
|
||||||
self.rescue_mode = False
|
|
||||||
self.kexec = False
|
|
||||||
+ self.tisNotifyPort = "0"
|
|
||||||
# nosave options
|
|
||||||
self.nosave_input_ks = False
|
|
||||||
self.nosave_output_ks = False
|
|
||||||
diff --git a/pyanaconda/install.py b/pyanaconda/install.py
|
|
||||||
index 26e1b26..bd8f85b 100644
|
|
||||||
--- a/pyanaconda/install.py
|
|
||||||
+++ b/pyanaconda/install.py
|
|
||||||
@@ -35,6 +35,9 @@ from pyanaconda.ui.lib.entropy import wait_for_entropy
|
|
||||||
from pyanaconda.kexec import setup_kexec
|
|
||||||
from pyanaconda.kickstart import runPostScripts, runPreInstallScripts
|
|
||||||
from pykickstart.constants import SNAPSHOT_WHEN_POST_INSTALL
|
|
||||||
+
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
import blivet
|
|
||||||
log = logging.getLogger("anaconda")
|
|
||||||
@@ -139,6 +142,7 @@ def doConfiguration(storage, payload, ksdata, instClass):
|
|
||||||
with progress_report(N_("Creating snapshots")):
|
|
||||||
ksdata.snapshot.execute(storage, ksdata, instClass)
|
|
||||||
|
|
||||||
+ tisnotify.installed()
|
|
||||||
progress_complete()
|
|
||||||
|
|
||||||
def doInstall(storage, payload, ksdata, instClass):
|
|
||||||
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
|
|
||||||
index 50515c8..d95b2df 100644
|
|
||||||
--- a/pyanaconda/kickstart.py
|
|
||||||
+++ b/pyanaconda/kickstart.py
|
|
||||||
@@ -90,6 +90,8 @@ from pykickstart.sections import NullSection, PackageSection, PostScriptSection,
|
|
||||||
from pykickstart.version import returnClassForVersion, RHEL7
|
|
||||||
from pykickstart.options import KSOptionParser
|
|
||||||
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
log = logging.getLogger("anaconda")
|
|
||||||
stderrLog = logging.getLogger("anaconda.stderr")
|
|
||||||
@@ -2481,6 +2483,7 @@ def runPreScripts(scripts):
|
|
||||||
if len(preScripts) == 0:
|
|
||||||
return
|
|
||||||
|
|
||||||
+ tisnotify.preinstall()
|
|
||||||
log.info("Running kickstart %%pre script(s)")
|
|
||||||
stdoutLog.info(_("Running pre-installation scripts"))
|
|
||||||
|
|
||||||
diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py
|
|
||||||
index 7cf59d7..8896ba1 100644
|
|
||||||
--- a/pyanaconda/packaging/rpmostreepayload.py
|
|
||||||
+++ b/pyanaconda/packaging/rpmostreepayload.py
|
|
||||||
@@ -36,6 +36,8 @@ from gi.repository import Gio
|
|
||||||
|
|
||||||
from blivet.size import Size
|
|
||||||
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
log = logging.getLogger("anaconda")
|
|
||||||
|
|
||||||
@@ -69,6 +71,7 @@ class RPMOSTreePayload(ArchivePayload):
|
|
||||||
"""Like iutil.execWithRedirect, but treat errors as fatal"""
|
|
||||||
rc = iutil.execWithRedirect(cmd, argv, **kwargs)
|
|
||||||
if rc != 0:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
exn = PayloadInstallError("%s %s exited with code %d" % (cmd, argv, rc))
|
|
||||||
if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
|
|
||||||
raise exn
|
|
||||||
@@ -183,6 +186,7 @@ class RPMOSTreePayload(ArchivePayload):
|
|
||||||
GLib.Variant('a{sv}', pull_opts),
|
|
||||||
progress, cancellable)
|
|
||||||
except GLib.GError as e:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
exn = PayloadInstallError("Failed to pull from repository: %s" % e)
|
|
||||||
log.error(str(exn))
|
|
||||||
if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
|
|
||||||
@@ -227,6 +231,7 @@ class RPMOSTreePayload(ArchivePayload):
|
|
||||||
try:
|
|
||||||
self._copyBootloaderData()
|
|
||||||
except (OSError, RuntimeError) as e:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
exn = PayloadInstallError("Failed to copy bootloader data: %s" % e)
|
|
||||||
log.error(str(exn))
|
|
||||||
if errors.errorHandler.cb(exn) == errors.ERROR_RAISE:
|
|
||||||
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
|
|
||||||
index c6aa234..a0497e0 100644
|
|
||||||
--- a/pyanaconda/packaging/yumpayload.py
|
|
||||||
+++ b/pyanaconda/packaging/yumpayload.py
|
|
||||||
@@ -46,6 +46,8 @@ from pyanaconda.simpleconfig import simple_replace
|
|
||||||
from functools import wraps
|
|
||||||
from urlgrabber.grabber import URLGrabber, URLGrabError
|
|
||||||
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
import logging
|
|
||||||
log = logging.getLogger("packaging")
|
|
||||||
|
|
||||||
@@ -181,6 +183,8 @@ class YumPayload(PackagePayload):
|
|
||||||
# save repomd metadata
|
|
||||||
self._repoMD_list = []
|
|
||||||
|
|
||||||
+ self.tisNotifyPort = flags.cmdline.get("tisNotifyPort")
|
|
||||||
+
|
|
||||||
self.reset()
|
|
||||||
|
|
||||||
def reset(self, root=None, releasever=None):
|
|
||||||
@@ -1347,6 +1351,8 @@ reposdir=%s
|
|
||||||
if self.data.packages.handleMissing == KS_MISSING_IGNORE:
|
|
||||||
return
|
|
||||||
|
|
||||||
+ tisnotify.failed()
|
|
||||||
+
|
|
||||||
# If we're doing non-interactive ks install, raise CmdlineError,
|
|
||||||
# otherwise the system will just reboot automatically
|
|
||||||
if flags.automatedInstall and not flags.ksprompt:
|
|
||||||
@@ -1524,6 +1530,7 @@ reposdir=%s
|
|
||||||
try:
|
|
||||||
self.checkSoftwareSelection()
|
|
||||||
except DependencyError as e:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
if errorHandler.cb(e) == ERROR_RAISE:
|
|
||||||
progressQ.send_quit(1)
|
|
||||||
while True:
|
|
||||||
@@ -1578,6 +1585,10 @@ reposdir=%s
|
|
||||||
key, text = line.split(":", 1)
|
|
||||||
msg = progress_map[key] + text
|
|
||||||
progressQ.send_message(msg)
|
|
||||||
+ if line.startswith("PROGRESS_POST"):
|
|
||||||
+ tisnotify.postinstall()
|
|
||||||
+ elif not text.startswith(" error "):
|
|
||||||
+ tisnotify.installing(text)
|
|
||||||
log.debug(msg)
|
|
||||||
elif line.startswith("DEBUG:"):
|
|
||||||
log.debug(line[6:])
|
|
||||||
@@ -1590,7 +1601,8 @@ reposdir=%s
|
|
||||||
install_errors.append(line[6:])
|
|
||||||
else:
|
|
||||||
log.debug(line)
|
|
||||||
- except IOError as e:
|
|
||||||
+ except (IOError, OSError) as e:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
log.error("Error running anaconda-yum: %s", e)
|
|
||||||
exn = PayloadInstallError(str(e))
|
|
||||||
if errorHandler.cb(exn) == ERROR_RAISE:
|
|
||||||
@@ -1612,6 +1624,7 @@ reposdir=%s
|
|
||||||
shutil.rmtree(iutil.getSysroot()+"/var/tmp/yum.cache")
|
|
||||||
|
|
||||||
if install_errors:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
exn = PayloadInstallError("\n".join(install_errors))
|
|
||||||
if errorHandler.cb(exn) == ERROR_RAISE:
|
|
||||||
progressQ.send_quit(1)
|
|
||||||
diff --git a/pyanaconda/tisnotify.py b/pyanaconda/tisnotify.py
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..bf5d9bd
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/pyanaconda/tisnotify.py
|
|
||||||
@@ -0,0 +1,91 @@
|
|
||||||
+"""
|
|
||||||
+Copyright (c) 2016-2017 Wind River Systems, Inc.
|
|
||||||
+ SPDX-License-Identifier: Apache-2.0
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+"""
|
|
||||||
+
|
|
||||||
+import os
|
|
||||||
+import re
|
|
||||||
+import subprocess
|
|
||||||
+import time
|
|
||||||
+
|
|
||||||
+from pyanaconda.flags import flags
|
|
||||||
+
|
|
||||||
+class TisNotify():
|
|
||||||
+
|
|
||||||
+ def __init__(self):
|
|
||||||
+ self.tisnotify = flags.cmdline.get("tisnotify")
|
|
||||||
+ self.regex = re.compile(r'\(([\d\/]*)\)$')
|
|
||||||
+ self.DEVNULL = open(os.devnull, "w")
|
|
||||||
+ self.last_installing = 0
|
|
||||||
+
|
|
||||||
+ def sendNotification(self, data):
|
|
||||||
+ try:
|
|
||||||
+ subprocess.call(['/usr/bin/curl',
|
|
||||||
+ '--data', data,
|
|
||||||
+ self.tisnotify],
|
|
||||||
+ stdout=self.DEVNULL,
|
|
||||||
+ stderr=self.DEVNULL)
|
|
||||||
+ except:
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+ def preinstall(self):
|
|
||||||
+ if self.tisnotify is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ data = "install_state=preinstall"
|
|
||||||
+ self.sendNotification(data)
|
|
||||||
+
|
|
||||||
+ def installing(self, text):
|
|
||||||
+ if self.tisnotify is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ match = self.regex.search(text)
|
|
||||||
+ if match is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ if (time.time() - self.last_installing) >= 5:
|
|
||||||
+ self.last_installing = time.time()
|
|
||||||
+ data = "install_state=installing&install_state_info=%s" % match.groups()[0]
|
|
||||||
+ self.sendNotification(data)
|
|
||||||
+
|
|
||||||
+ def postinstall(self):
|
|
||||||
+ if self.tisnotify is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ data = "install_state=postinstall"
|
|
||||||
+ self.sendNotification(data)
|
|
||||||
+
|
|
||||||
+ def installed(self):
|
|
||||||
+ if self.tisnotify is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ data = "install_state=installed"
|
|
||||||
+ self.sendNotification(data)
|
|
||||||
+
|
|
||||||
+ def failed(self):
|
|
||||||
+ if self.tisnotify is None:
|
|
||||||
+ return
|
|
||||||
+
|
|
||||||
+ data = "install_state=failed"
|
|
||||||
+ self.sendNotification(data)
|
|
||||||
+
|
|
||||||
+ etc_dir = '/mnt/sysimage/etc'
|
|
||||||
+ platform_dir = etc_dir + '/platform'
|
|
||||||
+ failed_flag = platform_dir + '/platform/installation_failed'
|
|
||||||
+ motd_file = etc_dir + '/motd'
|
|
||||||
+
|
|
||||||
+ # Set installation_failed flag, if possible and not already done
|
|
||||||
+ if os.path.exists(platform_dir) and not os.path.exists(failed_flag):
|
|
||||||
+ try:
|
|
||||||
+ subprocess.call(['touch', '/mnt/sysimage/etc/platform/installation_failed'])
|
|
||||||
+ with open(motd_file, 'a') as f:
|
|
||||||
+ f.write('Installation failure. Please check logs or reinstall.\n\n')
|
|
||||||
+ except:
|
|
||||||
+ pass
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+tisnotify = TisNotify()
|
|
||||||
+
|
|
||||||
diff --git a/pyanaconda/ui/gui/hubs/progress.py b/pyanaconda/ui/gui/hubs/progress.py
|
|
||||||
index 0e4dbed..b342bd5 100644
|
|
||||||
--- a/pyanaconda/ui/gui/hubs/progress.py
|
|
||||||
+++ b/pyanaconda/ui/gui/hubs/progress.py
|
|
||||||
@@ -44,6 +44,8 @@ from pykickstart.constants import KS_SHUTDOWN, KS_REBOOT
|
|
||||||
from pyanaconda.ui.gui.hubs import Hub
|
|
||||||
from pyanaconda.ui.gui.utils import gtk_action_nowait, gtk_call_once
|
|
||||||
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
__all__ = ["ProgressHub"]
|
|
||||||
|
|
||||||
class ProgressHub(Hub):
|
|
||||||
@@ -124,6 +126,8 @@ class ProgressHub(Hub):
|
|
||||||
# to indicate this method should be removed from the idle loop.
|
|
||||||
return False
|
|
||||||
elif code == progressQ.PROGRESS_CODE_QUIT:
|
|
||||||
+ if args[0] != 0:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
sys.exit(args[0])
|
|
||||||
|
|
||||||
q.task_done()
|
|
||||||
diff --git a/pyanaconda/ui/tui/spokes/progress.py b/pyanaconda/ui/tui/spokes/progress.py
|
|
||||||
index 1feeb08..8221e31 100644
|
|
||||||
--- a/pyanaconda/ui/tui/spokes/progress.py
|
|
||||||
+++ b/pyanaconda/ui/tui/spokes/progress.py
|
|
||||||
@@ -31,6 +31,8 @@ from pyanaconda.ui.tui.spokes import StandaloneTUISpoke
|
|
||||||
from pyanaconda.ui.tui.hubs.summary import SummaryHub
|
|
||||||
from pyanaconda.ui.tui.simpleline.base import ExitAllMainLoops
|
|
||||||
|
|
||||||
+from pyanaconda.tisnotify import tisnotify
|
|
||||||
+
|
|
||||||
__all__ = ["ProgressSpoke"]
|
|
||||||
|
|
||||||
class ProgressSpoke(StandaloneTUISpoke):
|
|
||||||
@@ -101,6 +103,8 @@ class ProgressSpoke(StandaloneTUISpoke):
|
|
||||||
print('')
|
|
||||||
return True
|
|
||||||
elif code == progressQ.PROGRESS_CODE_QUIT:
|
|
||||||
+ if args[0] != 0:
|
|
||||||
+ tisnotify.failed()
|
|
||||||
sys.exit(args[0])
|
|
||||||
|
|
||||||
q.task_done()
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
|||||||
From 76cd2b90fd4e550e162bc8fc7e247ed2f4e6e310 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Fri, 17 Nov 2017 12:06:39 -0500
|
|
||||||
Subject: [PATCH] revert 7.4 grub2 efi handling
|
|
||||||
|
|
||||||
---
|
|
||||||
pyanaconda/bootloader.py | 36 +++---------------------------------
|
|
||||||
1 file changed, 3 insertions(+), 33 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
|
|
||||||
index 9db9cf3..24e8b56 100644
|
|
||||||
--- a/pyanaconda/bootloader.py
|
|
||||||
+++ b/pyanaconda/bootloader.py
|
|
||||||
@@ -1404,9 +1404,7 @@ class GRUB2(GRUB):
|
|
||||||
|
|
||||||
"""
|
|
||||||
name = "GRUB2"
|
|
||||||
- # grub2 is a virtual provides that's provided by grub2-pc, grub2-ppc64le,
|
|
||||||
- # and all of the primary grub components that aren't grub2-efi-${EFIARCH}
|
|
||||||
- packages = ["grub2", "grub2-tools"]
|
|
||||||
+ packages = ["grub2"]
|
|
||||||
_config_file = "grub.cfg"
|
|
||||||
_config_dir = "grub2"
|
|
||||||
_passwd_file = "user.cfg"
|
|
||||||
@@ -1680,28 +1678,12 @@ class GRUB2(GRUB):
|
|
||||||
return ret
|
|
||||||
|
|
||||||
class EFIGRUB(GRUB2):
|
|
||||||
- _packages32 = ["grub2-efi-ia32", "shim-ia32"]
|
|
||||||
- _packages64 = ["grub2-efi-x64", "shim-x64"]
|
|
||||||
- _packages_common = ["efibootmgr"]
|
|
||||||
+ packages = ["grub2-efi", "efibootmgr", "shim"]
|
|
||||||
can_dual_boot = False
|
|
||||||
stage2_is_valid_stage1 = False
|
|
||||||
stage2_bootable = False
|
|
||||||
|
|
||||||
- _is_32bit_firmware = False
|
|
||||||
-
|
|
||||||
- @property
|
|
||||||
- def _efi_binary(self):
|
|
||||||
- if self._is_32bit_firmware:
|
|
||||||
- return "\\shimia32.efi"
|
|
||||||
- return "\\shimx64.efi"
|
|
||||||
-
|
|
||||||
- @property
|
|
||||||
- def packages(self):
|
|
||||||
- if self._is_32bit_firmware:
|
|
||||||
- return self._packages32 + self._packages_common + \
|
|
||||||
- super(EFIGRUB, self).packages
|
|
||||||
- return self._packages64 + self._packages_common + \
|
|
||||||
- super(EFIGRUB, self).packages
|
|
||||||
+ _efi_binary = "\\shim.efi"
|
|
||||||
|
|
||||||
@property
|
|
||||||
def _config_dir(self):
|
|
||||||
@@ -1711,15 +1693,6 @@ class EFIGRUB(GRUB2):
|
|
||||||
super(EFIGRUB, self).__init__()
|
|
||||||
self.efi_dir = 'BOOT'
|
|
||||||
|
|
||||||
- try:
|
|
||||||
- f = open("/sys/firmware/efi/fw_platform_size", "r")
|
|
||||||
- value = f.readline().strip()
|
|
||||||
- except IOError:
|
|
||||||
- log.info("Reading /sys/firmware/efi/fw_platform_size failed, defaulting to 64-bit install.")
|
|
||||||
- value = '64'
|
|
||||||
- if value == '32':
|
|
||||||
- self._is_32bit_firmware = True
|
|
||||||
-
|
|
||||||
def efibootmgr(self, *args, **kwargs):
|
|
||||||
if flags.imageInstall or flags.dirInstall:
|
|
||||||
log.info("Skipping efibootmgr for image/directory install.")
|
|
||||||
@@ -1812,12 +1785,9 @@ class EFIGRUB(GRUB2):
|
|
||||||
return True
|
|
||||||
|
|
||||||
class Aarch64EFIGRUB(EFIGRUB):
|
|
||||||
- _packages64 = ["grub2-efi-aa64", "shim-aa64"]
|
|
||||||
_serial_consoles = ["ttyAMA", "ttyS"]
|
|
||||||
- _efi_binary = "\\shimaa64.efi"
|
|
||||||
|
|
||||||
class MacEFIGRUB(EFIGRUB):
|
|
||||||
- packages = [ "grub2-tools-efi", "mactel-boot" ]
|
|
||||||
def mactel_config(self):
|
|
||||||
if os.path.exists(iutil.getSysroot() + "/usr/libexec/mactel-boot-setup"):
|
|
||||||
rc = iutil.execInSysroot("/usr/libexec/mactel-boot-setup", [])
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From d14b48ec201b4f90042f6292d537d5af5d78c6a6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 23 Nov 2017 16:43:58 -0500
|
|
||||||
Subject: [PATCH] Set default hostname to localhost
|
|
||||||
|
|
||||||
---
|
|
||||||
pyanaconda/network.py | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/pyanaconda/network.py b/pyanaconda/network.py
|
|
||||||
index c6f7bb7..26c24a3 100644
|
|
||||||
--- a/pyanaconda/network.py
|
|
||||||
+++ b/pyanaconda/network.py
|
|
||||||
@@ -65,7 +65,7 @@ networkConfFile = "%s/network" % (sysconfigDir)
|
|
||||||
hostnameFile = "/etc/hostname"
|
|
||||||
ipv6ConfFile = "/etc/sysctl.d/anaconda.conf"
|
|
||||||
ifcfgLogFile = "/tmp/ifcfg.log"
|
|
||||||
-DEFAULT_HOSTNAME = "localhost.localdomain"
|
|
||||||
+DEFAULT_HOSTNAME = "localhost"
|
|
||||||
|
|
||||||
ifcfglog = None
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,80 +0,0 @@
|
|||||||
From 0b9c332f7101c890c5bb1c65f9c89d82bd759a04 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 23 Nov 2017 16:46:31 -0500
|
|
||||||
Subject: [PATCH] Cache server ip in /etc/hosts
|
|
||||||
|
|
||||||
---
|
|
||||||
data/systemd/anaconda.service | 1 +
|
|
||||||
scripts/anaconda-preexec | 50 +++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 51 insertions(+)
|
|
||||||
create mode 100644 scripts/anaconda-preexec
|
|
||||||
|
|
||||||
diff --git a/data/systemd/anaconda.service b/data/systemd/anaconda.service
|
|
||||||
index a80c6bb..8966258 100644
|
|
||||||
--- a/data/systemd/anaconda.service
|
|
||||||
+++ b/data/systemd/anaconda.service
|
|
||||||
@@ -7,4 +7,5 @@ Wants=anaconda-noshell.service
|
|
||||||
Type=forking
|
|
||||||
Environment=HOME=/root MALLOC_CHECK_=2 MALLOC_PERTURB_=204 PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin:/mnt/sysimage/usr/sbin:/mnt/sysimage/sbin LANG=en_US.UTF-8 GDK_BACKEND=x11 XDG_RUNTIME_DIR=/tmp GIO_USE_VFS=local
|
|
||||||
WorkingDirectory=/root
|
|
||||||
+ExecStartPre=/usr/sbin/anaconda-preexec
|
|
||||||
ExecStart=/usr/bin/tmux -u -f /usr/share/anaconda/tmux.conf start
|
|
||||||
diff --git a/scripts/anaconda-preexec b/scripts/anaconda-preexec
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..e3f79a4
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/scripts/anaconda-preexec
|
|
||||||
@@ -0,0 +1,50 @@
|
|
||||||
+#!/bin/bash
|
|
||||||
+#
|
|
||||||
+# Copyright (c) 2017 Wind River Systems, Inc.
|
|
||||||
+# SPDX-License-Identifier: Apache-2.0
|
|
||||||
+#
|
|
||||||
+#
|
|
||||||
+#
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
+exec >>/tmp/anaconda-preexec.log
|
|
||||||
+exec 2>>/tmp/anaconda-preexec.log
|
|
||||||
+set -x
|
|
||||||
+
|
|
||||||
+function get_ip()
|
|
||||||
+{
|
|
||||||
+ local host=$1
|
|
||||||
+
|
|
||||||
+ # Try the DNS query
|
|
||||||
+ host -t A $host | awk '{print $4}' | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' | head -1
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+# If the kickstart is net-based, wait for connectivity to server
|
|
||||||
+cat /proc/cmdline | grep -q 'inst\.ks=http://'
|
|
||||||
+if [ $? -eq 0 ]
|
|
||||||
+then
|
|
||||||
+ server=$(cat /proc/cmdline | sed -r 's#.*inst\.ks=http://([^/:]*)(:[^/]*)?/.*#\1#')
|
|
||||||
+ if [ -n "$server" ]
|
|
||||||
+ then
|
|
||||||
+ echo "Testing connectivity to server: $server"
|
|
||||||
+ let -i ping_count=0
|
|
||||||
+ ping -c 1 -w 60 $server
|
|
||||||
+ while [ $? -ne 0 -a $ping_count -lt 600 ]
|
|
||||||
+ do
|
|
||||||
+ echo "Waiting for connectivity to server: $server"
|
|
||||||
+ sleep 1
|
|
||||||
+ let -i ping_count++
|
|
||||||
+ ping -c 1 -w 60 $server
|
|
||||||
+ done
|
|
||||||
+
|
|
||||||
+ # Cache the host IP
|
|
||||||
+ ipaddr=$(get_ip $server)
|
|
||||||
+ if [ -n "$ipaddr" -a "$ipaddr" != "$server" ]
|
|
||||||
+ then
|
|
||||||
+ echo "$ipaddr $server" >> /etc/hosts
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+exit 0
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
|||||||
From fbf22f153f415b1dfed1f01879c22b15ac030652 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Mon, 10 Feb 2020 20:00:19 -0500
|
|
||||||
Subject: [PATCH] Add support for IPv6 and https to anaconda-preexec
|
|
||||||
|
|
||||||
The anaconda-preexec script runs ahead of Anaconda to cache the IP
|
|
||||||
address of the network boot server in the /etc/hosts file, to avoid
|
|
||||||
further DNS queries during installation.
|
|
||||||
|
|
||||||
This update extends the checks to add support for IPv6 and to allow
|
|
||||||
for https network access.
|
|
||||||
|
|
||||||
Signed-off-by: Don Penney <don.penney@windriver.com>
|
|
||||||
---
|
|
||||||
scripts/anaconda-preexec | 69 +++++++++++++++++++++++++++++++-----------------
|
|
||||||
1 file changed, 45 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/anaconda-preexec b/scripts/anaconda-preexec
|
|
||||||
index d491173..22e6833 100644
|
|
||||||
--- a/scripts/anaconda-preexec
|
|
||||||
+++ b/scripts/anaconda-preexec
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
-# Copyright (c) 2017 Wind River Systems, Inc.
|
|
||||||
+# Copyright (c) 2017-2019 Wind River Systems, Inc.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
#
|
|
||||||
#
|
|
||||||
@@ -14,36 +14,57 @@ set -x
|
|
||||||
function get_ip()
|
|
||||||
{
|
|
||||||
local host=$1
|
|
||||||
+ local host_ip=
|
|
||||||
|
|
||||||
# Try the DNS query
|
|
||||||
- host -t A $host | awk '{print $4}' | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' | head -1
|
|
||||||
+ host_ip=$(host -t A $host | awk '{print $4}' | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' | head -1)
|
|
||||||
+
|
|
||||||
+ if [ -z "${host_ip}" ]; then
|
|
||||||
+ # Check for IPv6
|
|
||||||
+ host_ip=$(host -t AAAA $host | grep 'has IPv6 address' | awk '{print $5}')
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ echo -n ${host_ip}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+function get_server()
|
|
||||||
+{
|
|
||||||
+ # Check for http/https first
|
|
||||||
+ cat /proc/cmdline | grep -q 'inst\.ks=http'
|
|
||||||
+ if [ $? -ne 0 ]; then
|
|
||||||
+ return
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ local server_and_port=
|
|
||||||
+ server_and_port=$(cat /proc/cmdline | sed -r 's#.*inst\.ks=https*://([^/]*)/.*#\1#')
|
|
||||||
+
|
|
||||||
+ echo "${server_and_port}" | grep -q '^\['
|
|
||||||
+ if [ $? -eq 0 ]; then
|
|
||||||
+ echo "${server_and_port}" | sed -r 's#.*\[(.*)\].*#\1#'
|
|
||||||
+ else
|
|
||||||
+ echo "${server_and_port}" | sed -r 's#([^/:]*)(:[^/]*)?#\1#'
|
|
||||||
+ fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# If the kickstart is net-based, wait for connectivity to server
|
|
||||||
-cat /proc/cmdline | grep -q 'inst\.ks=http://'
|
|
||||||
-if [ $? -eq 0 ]
|
|
||||||
+server=$(get_server)
|
|
||||||
+if [ -n "$server" ]
|
|
||||||
then
|
|
||||||
- server=$(cat /proc/cmdline | sed -r 's#.*inst\.ks=http://([^/:]*)(:[^/]*)?/.*#\1#')
|
|
||||||
- if [ -n "$server" ]
|
|
||||||
- then
|
|
||||||
- echo "Testing connectivity to server: $server"
|
|
||||||
- let -i ping_count=0
|
|
||||||
- ping -c 1 -w 60 $server
|
|
||||||
- while [ $? -ne 0 -a $ping_count -lt 600 ]
|
|
||||||
- do
|
|
||||||
- echo "Waiting for connectivity to server: $server"
|
|
||||||
- sleep 1
|
|
||||||
- let -i ping_count++
|
|
||||||
- ping -c 1 -w 60 $server
|
|
||||||
- done
|
|
||||||
-
|
|
||||||
- # Cache the host IP
|
|
||||||
- ipaddr=$(get_ip $server)
|
|
||||||
- if [ -n "$ipaddr" -a "$ipaddr" != "$server" ]
|
|
||||||
- then
|
|
||||||
- echo "$ipaddr $server" >> /etc/hosts
|
|
||||||
- fi
|
|
||||||
+ echo "Testing connectivity to server: $server"
|
|
||||||
+ let -i TIMEOUT=${SECONDS}+600
|
|
||||||
+ ping -c 1 -w 60 $server || ping6 -c 1 -w 60 $server
|
|
||||||
+ while [ $? -ne 0 -a ${SECONDS} -lt ${TIMEOUT} ]
|
|
||||||
+ do
|
|
||||||
+ echo "Waiting for connectivity to server: $server"
|
|
||||||
+ sleep 1
|
|
||||||
+ ping -c 1 -w 60 $server || ping6 -c 1 -w 60 $server
|
|
||||||
+ done
|
|
||||||
|
|
||||||
+ # Cache the host IP
|
|
||||||
+ ipaddr=$(get_ip $server)
|
|
||||||
+ if [ -n "$ipaddr" -a "$ipaddr" != "$server" ]
|
|
||||||
+ then
|
|
||||||
+ echo "$ipaddr $server" >> /etc/hosts
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/anaconda-21.48.22.147-1.el7.centos.src.rpm
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,25 +0,0 @@
|
|||||||
From 85cd40238fb1f76483848007bd1e5663bb3f21ff Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:11:59 -0400
|
|
||||||
Subject: [PATCH] WRS: 0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/resource-agents.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
|
|
||||||
index 21fa049..fd8bc97 100644
|
|
||||||
--- a/SPECS/resource-agents.spec
|
|
||||||
+++ b/SPECS/resource-agents.spec
|
|
||||||
@@ -89,7 +89,7 @@
|
|
||||||
Name: resource-agents
|
|
||||||
Summary: Open Source HA Reusable Cluster Resource Scripts
|
|
||||||
Version: 4.1.1
|
|
||||||
-Release: 12%{?dist}.7
|
|
||||||
+Release: 12.el7_6.7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: GPLv2+ and LGPLv2+ and ASL 2.0
|
|
||||||
URL: https://github.com/ClusterLabs/resource-agents
|
|
||||||
%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From d48b31c66589b0c5a9831dcf4123a80fa8ccd89a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Tue, 6 Mar 2018 12:19:53 -0600
|
|
||||||
Subject: [PATCH 1/1] Disable creation of the debug package as it causes a seg
|
|
||||||
fault in dwz
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/resource-agents.spec | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
|
|
||||||
index 2536cb7..e5fbbeb 100644
|
|
||||||
--- a/SPECS/resource-agents.spec
|
|
||||||
+++ b/SPECS/resource-agents.spec
|
|
||||||
@@ -35,6 +35,9 @@
|
|
||||||
} || %{?__transaction_systemd_inhibit:1}%{?!__transaction_systemd_inhibit:0}%{nil \
|
|
||||||
} || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?))
|
|
||||||
|
|
||||||
+# Disable debug package, it currently triggers a segfault in dwz tool
|
|
||||||
+%define debug_package %{nil}
|
|
||||||
+
|
|
||||||
%global upstream_prefix ClusterLabs-resource-agents
|
|
||||||
%global upstream_version e711383f
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 8d4d5620ae40468e4aea4cdd42ace1c288bd4d58 Mon Sep 17 00:00:00 2001
|
|
||||||
From: jmusico <joaopaulotavares.musico@windriver.com>
|
|
||||||
Date: Fri, 8 Oct 2021 01:21:30 +0000
|
|
||||||
Subject: [PATCH 1/1] Adding missed patch to not log at debug log level when
|
|
||||||
HA_debug is unset.
|
|
||||||
|
|
||||||
Signed-off-by: jmusico <joaopaulotavares.musico@windriver.com>
|
|
||||||
---
|
|
||||||
SPECS/resource-agents.spec | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
|
|
||||||
index 941cb8b..ea888a7 100644
|
|
||||||
--- a/SPECS/resource-agents.spec
|
|
||||||
+++ b/SPECS/resource-agents.spec
|
|
||||||
@@ -141,6 +141,7 @@ Patch28: bz1641944-rabbitmq-cluster-monitor-mnesia-status.patch
|
|
||||||
Patch29: bz1641946-1-rabbitmq-cluster-fail-in-minority-partition.patch
|
|
||||||
Patch30: bz1641946-2-rabbitmq-cluster-fix-stop-regression.patch
|
|
||||||
Patch31: bz1657138-rabbitmq-cluster-ensure-node-attribures-removed.patch
|
|
||||||
+Patch32: Do-not-log-at-debug-log-level-when-HA_debug-is-unset.patch
|
|
||||||
# bundle patches
|
|
||||||
Patch1000: bz1568588-7-gcp-bundled.patch
|
|
||||||
Patch1001: bz1568588-8-google-cloud-sdk-fixes.patch
|
|
||||||
@@ -369,6 +370,7 @@ exit 1
|
|
||||||
%patch29 -p1
|
|
||||||
%patch30 -p1
|
|
||||||
%patch31 -p1
|
|
||||||
+%patch32 -p1
|
|
||||||
|
|
||||||
# add SAPHana agents to Makefile.am
|
|
||||||
mv %{saphana_prefix}-%{saphana_hash}/SAPHana/ra/SAPHana* heartbeat
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
spec-include-TiS-patches.patch
|
|
||||||
spec-avoid-dir-collisions.patch
|
|
||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
Disable-creation-of-the-debug-package.patch
|
|
||||||
Do-not-log-at-debug-log-level-when-HAdebug-is-unset.patch
|
|
@ -1,53 +0,0 @@
|
|||||||
From 8c725e6e7a4931066488a74227f902269850a263 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:11:58 -0400
|
|
||||||
Subject: [PATCH 02/10] WRS: spec-avoid-dir-collisions.patch
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/resource-agents.spec | 14 ++++----------
|
|
||||||
1 file changed, 4 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
|
|
||||||
index ec85fc2..bb96485 100644
|
|
||||||
--- a/SPECS/resource-agents.spec
|
|
||||||
+++ b/SPECS/resource-agents.spec
|
|
||||||
@@ -725,14 +725,11 @@ rm -rf %{buildroot}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with linuxha}
|
|
||||||
-%dir /usr/lib/ocf
|
|
||||||
-%dir /usr/lib/ocf/resource.d
|
|
||||||
-%dir /usr/lib/ocf/lib
|
|
||||||
+/usr/lib/ocf/lib/heartbeat/*
|
|
||||||
|
|
||||||
-/usr/lib/ocf/lib/heartbeat
|
|
||||||
-
|
|
||||||
-/usr/lib/ocf/resource.d/heartbeat
|
|
||||||
-/usr/lib/ocf/resource.d/openstack
|
|
||||||
+/usr/lib/ocf/resource.d/heartbeat/*
|
|
||||||
+/usr/lib/ocf/resource.d/heartbeat/.ocf-*
|
|
||||||
+/usr/lib/ocf/resource.d/openstack/*
|
|
||||||
%if %{with rgmanager}
|
|
||||||
/usr/lib/ocf/resource.d/redhat
|
|
||||||
%endif
|
|
||||||
@@ -758,8 +755,6 @@ rm -rf %{buildroot}
|
|
||||||
|
|
||||||
%{_includedir}/heartbeat
|
|
||||||
|
|
||||||
-%dir %attr (1755, root, root) %{_var}/run/resource-agents
|
|
||||||
-
|
|
||||||
%{_mandir}/man7/*.7*
|
|
||||||
|
|
||||||
###
|
|
||||||
@@ -912,7 +907,6 @@ rm -rf %{buildroot}
|
|
||||||
%exclude %{_mandir}/man8/ldirectord.8.gz
|
|
||||||
|
|
||||||
# For compatability with pre-existing agents
|
|
||||||
-%dir %{_sysconfdir}/ha.d
|
|
||||||
%{_sysconfdir}/ha.d/shellfuncs
|
|
||||||
|
|
||||||
%{_libexecdir}/heartbeat
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
|||||||
From 1f6128eb7bf5287db6def45f278acf771a711a42 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:11:58 -0400
|
|
||||||
Subject: [PATCH] WRS: spec-include-TiS-patches.patch
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/resource-agents.spec | 37 +++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 37 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
|
|
||||||
index a16660a..ec85fc2 100644
|
|
||||||
--- a/SPECS/resource-agents.spec
|
|
||||||
+++ b/SPECS/resource-agents.spec
|
|
||||||
@@ -148,6 +148,24 @@ Patch1002: bz1568588-9-google-cloud-sdk-oauth2client-python-rsa-to-cryptography.
|
|
||||||
Patch1003: bz1568588-10-gcloud-support-info.patch
|
|
||||||
Patch1004: bz1568589-4-aliyun-vpc-move-ip-bundled.patch
|
|
||||||
|
|
||||||
+# STX
|
|
||||||
+
|
|
||||||
+Patch1106: new_ocf_return_codes.patch
|
|
||||||
+Patch1107: ipaddr2_check_if_state.patch
|
|
||||||
+Patch1108: copyright.patch
|
|
||||||
+Patch1109: umount-in-namespace.patch
|
|
||||||
+Patch1110: lvm_vg_activation.patch
|
|
||||||
+Patch1111: pgsql.patch
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+Patch1115: Fix-VG-activity-bug-in-heartbeat-LVM-script.patch
|
|
||||||
+Patch1116: ocf-shellfuncs_change_logtag.patch
|
|
||||||
+Patch1117: lvm_cleanup_refs_on_stop.patch
|
|
||||||
+Patch1118: ipaddr2_if_down.patch
|
|
||||||
+Patch1119: ipaddr2_ignore_lo_if_state.patch
|
|
||||||
+Patch1121: ipaddr2-avoid-failing-svc-if-down.patch
|
|
||||||
+Patch1122: ipaddr2-use-host-scope-for-addresses-on-loopback.patch
|
|
||||||
Obsoletes: heartbeat-resources <= %{version}
|
|
||||||
Provides: heartbeat-resources = %{version}
|
|
||||||
|
|
||||||
@@ -508,6 +526,25 @@ cp %{aliyuncli_dir}/LICENSE %{aliyuncli}_LICENSE
|
|
||||||
%patch1004 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
+# STX
|
|
||||||
+
|
|
||||||
+%patch1106 -p1
|
|
||||||
+%patch1107 -p1
|
|
||||||
+%patch1108 -p1
|
|
||||||
+%patch1109 -p1
|
|
||||||
+%patch1110 -p1
|
|
||||||
+%patch1111 -p1
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+%patch1115 -p1
|
|
||||||
+%patch1116 -p1
|
|
||||||
+%patch1117 -p1
|
|
||||||
+%patch1118 -p1
|
|
||||||
+%patch1119 -p1
|
|
||||||
+%patch1121 -p1
|
|
||||||
+%patch1122 -p1
|
|
||||||
+
|
|
||||||
%build
|
|
||||||
if [ ! -f configure ]; then
|
|
||||||
./autogen.sh
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From aae26ca70ef910e83485778c1fb450941fe79e8a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michele Baldessari <michele@acksyn.org>
|
|
||||||
Date: Mon, 3 Dec 2018 16:48:14 +0100
|
|
||||||
Subject: [PATCH] Do not log at debug log level when HA_debug is unset
|
|
||||||
|
|
||||||
There might be situations (e.g. bundles) where the HA_debug variable
|
|
||||||
is unset. It makes little sense to enable debug logging when the HA_debug env
|
|
||||||
variable is unset.
|
|
||||||
So let's skip debug logs when HA_debug is set to 0 or is unset.
|
|
||||||
|
|
||||||
Tested inside a bundle and observed that previously seen 'ocf_log debug'
|
|
||||||
calls are now correctly suppressed (w/ HA_debug being unset inside the
|
|
||||||
container)
|
|
||||||
|
|
||||||
Signed-off-by: Michele Baldessari <michele@acksyn.org>
|
|
||||||
---
|
|
||||||
heartbeat/ocf-shellfuncs.in | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/ocf-shellfuncs.in b/heartbeat/ocf-shellfuncs.in
|
|
||||||
index 043ab9bf..b17297e1 100644
|
|
||||||
--- a/heartbeat/ocf-shellfuncs.in
|
|
||||||
+++ b/heartbeat/ocf-shellfuncs.in
|
|
||||||
@@ -257,7 +257,7 @@ ha_log()
|
|
||||||
|
|
||||||
ha_debug() {
|
|
||||||
|
|
||||||
- if [ "x${HA_debug}" = "x0" ] ; then
|
|
||||||
+ if [ "x${HA_debug}" = "x0" ] || [ -z "${HA_debug}" ] ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
if tty >/dev/null; then
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
From 7c181a1afdc85456333f9cbf9c5827ceb0554a91 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Chris Friesen <chris.friesen@windriver.com>
|
|
||||||
Date: Fri, 24 Aug 2018 03:51:37 +0800
|
|
||||||
Subject: [PATCH] Fix VG activity bug in heartbeat/LVM script
|
|
||||||
|
|
||||||
There is currently an issue in the lvm2 package where if you create an LVM thin
|
|
||||||
pool, then create a thin volume in the pool, then the udev rule doesn't think
|
|
||||||
there should be a /dev// symlink for the thin pool, but "vgmknodes" and
|
|
||||||
"vgscan --mknodes" both think that there should be such a symlink. This is a
|
|
||||||
bug, but it's in the field in CentOS 7 at least and likely elsewhere.
|
|
||||||
|
|
||||||
The end result of this is that on such a system running either "vgscan
|
|
||||||
--mknodes" or "vgmknodes" and then running "vgchange -an " will
|
|
||||||
leave the /dev/ directory with a dangling symlink in it.
|
|
||||||
|
|
||||||
This breaks the LVM_status() function in this OCF script, since the
|
|
||||||
/dev/ directory exists and is not empty even though the volume
|
|
||||||
group is not active.
|
|
||||||
|
|
||||||
This commit changes the code to directly query lvm about the volume group
|
|
||||||
activity rather than relying on side effects.
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/LVM | 15 ++++++---------
|
|
||||||
1 file changed, 6 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/LVM b/heartbeat/LVM
|
|
||||||
index 893ece8..1efb207 100755
|
|
||||||
--- a/heartbeat/LVM
|
|
||||||
+++ b/heartbeat/LVM
|
|
||||||
@@ -191,18 +191,15 @@ LVM_status() {
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if [ -d /dev/$1 ]; then
|
|
||||||
- test "`cd /dev/$1 && ls`" != ""
|
|
||||||
- rc=$?
|
|
||||||
- if [ $rc -ne 0 ]; then
|
|
||||||
- ocf_exit_reason "VG $1 with no logical volumes is not supported by this RA!"
|
|
||||||
- fi
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
- if [ $rc -ne 0 ]; then
|
|
||||||
+ # Ask lvm whether the volume group is active. This maps to
|
|
||||||
+ # the question "Are there any logical volumes that are active in
|
|
||||||
+ # the specified volume group?".
|
|
||||||
+ lvs --noheadings -o selected -S lv_active=active,vg_name=${1}|grep -q 1
|
|
||||||
+ if [ $? -ne 0 ]; then
|
|
||||||
ocf_log $loglevel "LVM Volume $1 is not available (stopped)"
|
|
||||||
rc=$OCF_NOT_RUNNING
|
|
||||||
else
|
|
||||||
+ rc=0
|
|
||||||
lvm_status
|
|
||||||
rc=$?
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
From 81bcbfb829001ccf61b515edb3d53ac8f15df334 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Fri, 26 Aug 2016 15:06:10 -0400
|
|
||||||
Subject: [PATCH 04/12] WRS: Patch108: copyright.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/Filesystem | 2 ++
|
|
||||||
heartbeat/LVM | 1 +
|
|
||||||
heartbeat/pgsql | 1 +
|
|
||||||
3 files changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/Filesystem b/heartbeat/Filesystem
|
|
||||||
index 27f03d2..af821b2 100755
|
|
||||||
--- a/heartbeat/Filesystem
|
|
||||||
+++ b/heartbeat/Filesystem
|
|
||||||
@@ -2,6 +2,8 @@
|
|
||||||
#
|
|
||||||
# Support: users@clusterlabs.org
|
|
||||||
# License: GNU General Public License (GPL)
|
|
||||||
+#
|
|
||||||
+# Copyright (c) 2014 Wind River Systems, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# Filesystem
|
|
||||||
# Description: Manages a Filesystem on a shared storage medium.
|
|
||||||
diff --git a/heartbeat/LVM b/heartbeat/LVM
|
|
||||||
index e435e7b..c11fed7 100755
|
|
||||||
--- a/heartbeat/LVM
|
|
||||||
+++ b/heartbeat/LVM
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
# Support: users@clusterlabs.org
|
|
||||||
# License: GNU General Public License (GPL)
|
|
||||||
# Copyright: (C) 2002 - 2005 International Business Machines, Inc.
|
|
||||||
+# Copyright (c) 2014 Wind River Systems, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This code significantly inspired by the LVM resource
|
|
||||||
# in FailSafe by Lars Marowsky-Bree
|
|
||||||
diff --git a/heartbeat/pgsql b/heartbeat/pgsql
|
|
||||||
index 794f85e..b176b1d 100755
|
|
||||||
--- a/heartbeat/pgsql
|
|
||||||
+++ b/heartbeat/pgsql
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
#
|
|
||||||
# Copyright: 2006-2012 Serge Dubrouski <sergeyfd@gmail.com>
|
|
||||||
# and other Linux-HA contributors
|
|
||||||
+# Copyright (c) 2014 Wind River Systems, Inc. All rights reserved.
|
|
||||||
# License: GNU General Public License (GPL)
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
From c3448b1536d50291dc5ca49dce5957c39403cc82 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bin Qian <bin.qian@windriver.com>
|
|
||||||
Date: Wed, 29 Aug 2018 11:00:22 -0400
|
|
||||||
Subject: [PATCH 1/1] avoid failing service when I/F is down
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/IPaddr2 | 24 ++++++------------------
|
|
||||||
1 file changed, 6 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
|
|
||||||
index 86009b9..2da5c5e 100755
|
|
||||||
--- a/heartbeat/IPaddr2
|
|
||||||
+++ b/heartbeat/IPaddr2
|
|
||||||
@@ -968,12 +968,8 @@ ip_start() {
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
- ocf_log info "NIC $NIC is DOWN..."
|
|
||||||
- exit $OCF_SUCCESS
|
|
||||||
- else
|
|
||||||
- exit $OCF_ERR_GENERIC
|
|
||||||
- fi
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN..."
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
@@ -1037,12 +1033,8 @@ ip_start() {
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
- ocf_log info "NIC $NIC is DOWN"
|
|
||||||
- exit $OCF_SUCCESS
|
|
||||||
- else
|
|
||||||
- exit $OCF_ERR_GENERIC
|
|
||||||
- fi
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN"
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1123,12 +1115,8 @@ ip_monitor() {
|
|
||||||
then
|
|
||||||
return $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
- ocf_log info "NIC $NIC is DOWN"
|
|
||||||
- return $OCF_SUCCESS
|
|
||||||
- else
|
|
||||||
- return $OCF_NOT_RUNNING
|
|
||||||
- fi
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN"
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
partial|no|partial2)
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From a39c83dbaf4054cc96cd4a0a2b671509dd10af28 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bart Wensley <barton.wensley@windriver.com>
|
|
||||||
Date: Wed, 21 Nov 2018 12:14:20 -0600
|
|
||||||
Subject: [PATCH 1/1] ipaddr2 use host scope for addresses on loopback
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/IPaddr2 | 12 ++++++++++--
|
|
||||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
|
|
||||||
index 2da5c5e..79dbdcf 100755
|
|
||||||
--- a/heartbeat/IPaddr2
|
|
||||||
+++ b/heartbeat/IPaddr2
|
|
||||||
@@ -622,10 +622,18 @@ add_interface () {
|
|
||||||
add_ipv6_addrlabel $ipaddr
|
|
||||||
fi
|
|
||||||
|
|
||||||
- cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask dev $iface"
|
|
||||||
+ # Addresses assigned to the loopback interfaces must be assigned
|
|
||||||
+ # using the host scope or assignment is prevented (can't have
|
|
||||||
+ # multiple global scope addresses on the loopback interface).
|
|
||||||
+ if [ "$iface" = "lo" ] ;then
|
|
||||||
+ option="scope host"
|
|
||||||
+ else
|
|
||||||
+ option=""
|
|
||||||
+ fi
|
|
||||||
+ cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask dev $iface $option"
|
|
||||||
msg="Adding $FAMILY address $ipaddr/$netmask to device $iface"
|
|
||||||
if [ "$broadcast" != "none" ]; then
|
|
||||||
- cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask brd $broadcast dev $iface"
|
|
||||||
+ cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask brd $broadcast dev $iface $option"
|
|
||||||
msg="Adding $FAMILY address $ipaddr/$netmask with broadcast address $broadcast to device $iface"
|
|
||||||
fi
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
From fb5a76d9050c60b601a5dbbad65ed3dbff041af1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:12:36 -0400
|
|
||||||
Subject: [PATCH 03/13] WRS: Patch1107: ipaddr2_check_if_state.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/IPaddr2 | 21 ++++++++++++++++++---
|
|
||||||
1 file changed, 18 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
|
|
||||||
index aef6dc7..67a7ca3 100755
|
|
||||||
--- a/heartbeat/IPaddr2
|
|
||||||
+++ b/heartbeat/IPaddr2
|
|
||||||
@@ -964,7 +964,12 @@ ip_start() {
|
|
||||||
local ip_status=`ip_served`
|
|
||||||
|
|
||||||
if [ "$ip_status" = "ok" ]; then
|
|
||||||
- exit $OCF_SUCCESS
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ then
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ exit $OCF_ERR_GENERIC
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$IP_CIP" ] && ([ $ip_status = "no" ] || [ $ip_status = "partial2" ]); then
|
|
||||||
@@ -1023,7 +1028,12 @@ ip_start() {
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
- exit $OCF_SUCCESS
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ then
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ exit $OCF_ERR_GENERIC
|
|
||||||
+ fi
|
|
||||||
}
|
|
||||||
|
|
||||||
ip_stop() {
|
|
||||||
@@ -1099,7 +1109,12 @@ ip_monitor() {
|
|
||||||
case $ip_status in
|
|
||||||
ok)
|
|
||||||
run_arp_sender refresh
|
|
||||||
- return $OCF_SUCCESS
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ then
|
|
||||||
+ return $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ return $OCF_NOT_RUNNING
|
|
||||||
+ fi
|
|
||||||
;;
|
|
||||||
partial|no|partial2)
|
|
||||||
exit $OCF_NOT_RUNNING
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
From 573f0835621c5e64c6270260f607624aea29d21a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bin Qian <bin.qian@windriver.com>
|
|
||||||
Date: Sat, 21 Jan 2017 02:36:39 -0500
|
|
||||||
Subject: [PATCH 1/1] ipaddr2_if_down
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/IPaddr2 | 21 ++++++++++++++++++---
|
|
||||||
1 file changed, 18 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
|
|
||||||
index 67a7ca3..2cd822d 100755
|
|
||||||
--- a/heartbeat/IPaddr2
|
|
||||||
+++ b/heartbeat/IPaddr2
|
|
||||||
@@ -968,7 +968,12 @@ ip_start() {
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- exit $OCF_ERR_GENERIC
|
|
||||||
+ if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN..."
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ exit $OCF_ERR_GENERIC
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
@@ -1032,7 +1037,12 @@ ip_start() {
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- exit $OCF_ERR_GENERIC
|
|
||||||
+ if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN"
|
|
||||||
+ exit $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ exit $OCF_ERR_GENERIC
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1113,7 +1123,12 @@ ip_monitor() {
|
|
||||||
then
|
|
||||||
return $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
- return $OCF_NOT_RUNNING
|
|
||||||
+ if [ "$OCF_RESKEY_dc" = "yes" ]; then
|
|
||||||
+ ocf_log info "NIC $NIC is DOWN"
|
|
||||||
+ return $OCF_SUCCESS
|
|
||||||
+ else
|
|
||||||
+ return $OCF_NOT_RUNNING
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
partial|no|partial2)
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From 81bb87debd2a683bad2173d6cb16327c776fe3b3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:13:46 -0400
|
|
||||||
Subject: [PATCH 13/13] WRS: Patch1119: ipaddr2_ignore_lo_if_state.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/IPaddr2 | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
|
|
||||||
index 2cd822d..59620d2 100755
|
|
||||||
--- a/heartbeat/IPaddr2
|
|
||||||
+++ b/heartbeat/IPaddr2
|
|
||||||
@@ -964,7 +964,7 @@ ip_start() {
|
|
||||||
local ip_status=`ip_served`
|
|
||||||
|
|
||||||
if [ "$ip_status" = "ok" ]; then
|
|
||||||
- if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ] || [ "$NIC" = "lo" ]
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
@@ -1033,7 +1033,7 @@ ip_start() {
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
- if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ] || [ "$NIC" = "lo" ]
|
|
||||||
then
|
|
||||||
exit $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
@@ -1119,7 +1119,7 @@ ip_monitor() {
|
|
||||||
case $ip_status in
|
|
||||||
ok)
|
|
||||||
run_arp_sender refresh
|
|
||||||
- if [ -n "`ip link show $NIC | grep \"state UP\"`" ]
|
|
||||||
+ if [ -n "`ip link show $NIC | grep \"state UP\"`" ] || [ "$NIC" = "lo" ]
|
|
||||||
then
|
|
||||||
return $OCF_SUCCESS
|
|
||||||
else
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,125 +0,0 @@
|
|||||||
From 72fcaed4a9cc3c847278dd4fca88ba0bca88125a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Vu Tran <vu.tran@windriver.com>
|
|
||||||
Date: Thu Sep 29 19:07:25 2016 -0400
|
|
||||||
Subject: CGTS-5173: LVM ocf cleanup refs on stop
|
|
||||||
|
|
||||||
In LVM ocf script, LVM_stop() fails if any of the created logical volume
|
|
||||||
dm block devices are being held by any process with the following error
|
|
||||||
|
|
||||||
err ERROR: Logical volume cinder-volumes/volume-96a8becd-a1c1-4508-8b25-9bcbcfeff2fa
|
|
||||||
contains a filesystem in use. Can't deactivate volume group "cinder-volumes"
|
|
||||||
with 1 open logical volume(s)
|
|
||||||
|
|
||||||
So here we want to have defensive code to scan through any process that
|
|
||||||
holds what dm block devices and causes LVM_stop() to fail. There are
|
|
||||||
2 cases:
|
|
||||||
|
|
||||||
* dm block devices are mounted and processes are accessing files located
|
|
||||||
in this mount point. We first need to kill all the processes which are
|
|
||||||
opening files and then umount the dm block devices.
|
|
||||||
|
|
||||||
* processes just hold/open dm block devices directly. We need to kill
|
|
||||||
these processes.
|
|
||||||
|
|
||||||
Signed-off-by: Sun Austin <austin.sun@intel.com>
|
|
||||||
---
|
|
||||||
heartbeat/LVM | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 76 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/LVM b/heartbeat/LVM
|
|
||||||
index 1efb207..bde381c 100755
|
|
||||||
--- a/heartbeat/LVM
|
|
||||||
+++ b/heartbeat/LVM
|
|
||||||
@@ -367,6 +367,81 @@ LVM_start() {
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
+# Kill provided process that holds lv
|
|
||||||
+#
|
|
||||||
+log_and_kill_process_hold_lv() {
|
|
||||||
+ p_info=$(ps -lfLp ${1} | tail -1)
|
|
||||||
+ ocf_log warn "lv ${2} is being held by this process (will be forced killed):"
|
|
||||||
+ ocf_log warn ${p_info}
|
|
||||||
+ kill -s KILL ${1}
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+# Scan for processes that hold any lvs and kill them
|
|
||||||
+#
|
|
||||||
+scan_and_kill_processes_hold_lv() {
|
|
||||||
+ vg_name=${1}
|
|
||||||
+
|
|
||||||
+ # Get list of logical volumes which are busy
|
|
||||||
+ lv_paths=$(lvdisplay -c ${vg_name} | awk -F ":" '{print $1}')
|
|
||||||
+ for lv_path in ${lv_paths}; do
|
|
||||||
+ open_num=$(lvdisplay ${lv_path} | grep "# open" | awk '{print $3}')
|
|
||||||
+ if [ ${open_num} -gt 0 ]; then
|
|
||||||
+ lv_name=$(lvdisplay ${lv_path} | grep "LV Name" | awk '{print $3}')
|
|
||||||
+ lv_block=$(lvdisplay ${lv_path} | grep "Block device" | awk '{print $3}')
|
|
||||||
+
|
|
||||||
+ lv_list="${lv_list}
|
|
||||||
+${lv_name}|${lv_block}"
|
|
||||||
+ lv_block_list="${lv_block_list} ${lv_block}"
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+
|
|
||||||
+ # Exit if there is no busy logical volume
|
|
||||||
+ [ -z "${lv_list}" ] && exit 0
|
|
||||||
+
|
|
||||||
+ # Checking to see if any of these busy logical volumes are caused by mount
|
|
||||||
+ mountinfo=$(cat /proc/1/mountinfo)
|
|
||||||
+ while read -r line; do
|
|
||||||
+ mount_majorminor=$(echo ${line} | awk '{print $3}')
|
|
||||||
+ mount_point=$(echo ${line} | awk '{print $5}')
|
|
||||||
+
|
|
||||||
+ for lv in ${lv_block_list}; do
|
|
||||||
+ if [ "${lv}" == "${mount_majorminor}" ]; then
|
|
||||||
+ lv_name=$(echo "${lv_list}" | grep ${lv} | awk -F "|" '{print $1}')
|
|
||||||
+ ocf_log warn "lv ${lv_name} is busy mounted at ${mount_point} (will be forced unmounted)"
|
|
||||||
+ processes_holding_mount_point=$(fuser -m ${mount_point} 2>/dev/null)
|
|
||||||
+ if [ -n "${processes_holding_mount_point}" ]; then
|
|
||||||
+ for p in ${processes_holding_mount_point}; do
|
|
||||||
+ log_and_kill_process_hold_lv "${p}" "${lv_name}"
|
|
||||||
+ done
|
|
||||||
+ fi
|
|
||||||
+ umount ${mount_point}
|
|
||||||
+ [ $? -ne 0 ] && ocf_log warn "Cannot umount ${mount_point}"
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+ done <<< "${mountinfo}"
|
|
||||||
+
|
|
||||||
+ # Now checking to see if any process holding these logical volumes
|
|
||||||
+ all_processes=$(ps -e | awk '{print $1}')
|
|
||||||
+ for p in ${all_processes}; do
|
|
||||||
+ [ ! -d /proc/${p}/fd ] && continue
|
|
||||||
+ opened_file_list=$(ls -l /proc/${p}/fd | awk -F "->" '{print $2}')
|
|
||||||
+
|
|
||||||
+ for f in ${opened_file_list}; do
|
|
||||||
+ [ ! -b "${f}" ] && continue
|
|
||||||
+ f_majorminor=$(printf "%d:%d" $(stat -c '0x%t 0x%T' ${f}))
|
|
||||||
+
|
|
||||||
+ for lv in ${lv_block_list}; do
|
|
||||||
+ if [ "${lv}" == "${f_majorminor}" ]; then
|
|
||||||
+ lv_name=$(echo "${lv_list}" | grep ${lv} | awk -F "|" '{print $1}')
|
|
||||||
+ log_and_kill_process_hold_lv "${p}" "${lv_name}"
|
|
||||||
+ fi
|
|
||||||
+ done
|
|
||||||
+ done
|
|
||||||
+ done
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
# Disable the LVM volume
|
|
||||||
#
|
|
||||||
LVM_stop() {
|
|
||||||
@@ -395,6 +470,7 @@ LVM_stop() {
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
+ scan_and_kill_processes_hold_lv $vg
|
|
||||||
res=$OCF_ERR_GENERIC
|
|
||||||
ocf_log warn "$vg still Active"
|
|
||||||
ocf_log info "Retry deactivating volume group $vg"
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
|||||||
From 577055560d55b388d479ef398ffd839792dc1996 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:12:54 -0400
|
|
||||||
Subject: [PATCH 06/13] WRS: Patch1110: lvm_vg_activation.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/LVM | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
|
||||||
1 file changed, 116 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/LVM b/heartbeat/LVM
|
|
||||||
index b0ca87a..38092f9 100755
|
|
||||||
--- a/heartbeat/LVM
|
|
||||||
+++ b/heartbeat/LVM
|
|
||||||
@@ -222,6 +222,81 @@ LVM_status() {
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
+# Activate one volume explicitly.
|
|
||||||
+#
|
|
||||||
+activate_volume() {
|
|
||||||
+ ocf_run lvchange $1 /dev/${2}/$3
|
|
||||||
+ if [ $? -eq 0 ] ; then
|
|
||||||
+ ocf_log info "Succesfully activated $LV."
|
|
||||||
+ else
|
|
||||||
+ ocf_log err "Problem activating $LV."
|
|
||||||
+ fi
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+# Kick off parallel activation of all volumes
|
|
||||||
+#
|
|
||||||
+activate_all_volumes() {
|
|
||||||
+ VG=$1
|
|
||||||
+ shift
|
|
||||||
+ lvchange_args="$*"
|
|
||||||
+
|
|
||||||
+ # Get the list of volumes, without the first line which is column headings.
|
|
||||||
+ VOLS=`lvs $VG |tail -n +2`
|
|
||||||
+
|
|
||||||
+ while read -r LINE; do
|
|
||||||
+ # Convert the line into an array.
|
|
||||||
+ LINE_ARRAY=($LINE)
|
|
||||||
+
|
|
||||||
+ # First array element is the volume/snapshot name.
|
|
||||||
+ LV=${LINE_ARRAY[0]}
|
|
||||||
+
|
|
||||||
+ # Third array element is the attributes.
|
|
||||||
+ ATTR=${LINE_ARRAY[2]}
|
|
||||||
+
|
|
||||||
+ # Fifth character in the attributes is "a" if it's active.
|
|
||||||
+ ACTIVE=${ATTR:4:1}
|
|
||||||
+ if [ "$ACTIVE" == "a" ]; then
|
|
||||||
+ ocf_log info "$LV is already active."
|
|
||||||
+ continue
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ SNAPSHOT_ORIGIN=${LINE_ARRAY[4]}
|
|
||||||
+ if [ "$SNAPSHOT_ORIGIN" != "" ] ; then
|
|
||||||
+ # If this is a snapshot, don't activate it.
|
|
||||||
+ continue
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ ( activate_volume "$*" $VG $LV ) &
|
|
||||||
+ done <<< "$VOLS"
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+# Scan for inactive volumes and log any that are found.
|
|
||||||
+#
|
|
||||||
+log_inactive_volumes() {
|
|
||||||
+ # Get the list of volumes, without the first line which is column headings.
|
|
||||||
+ VOLS=`lvs $1 |tail -n +2`
|
|
||||||
+
|
|
||||||
+ while read -r LINE; do
|
|
||||||
+ # Convert the line into an array.
|
|
||||||
+ LINE_ARRAY=($LINE)
|
|
||||||
+
|
|
||||||
+ # First array element is the volume/snapshot name.
|
|
||||||
+ LV=${LINE_ARRAY[0]}
|
|
||||||
+
|
|
||||||
+ # Third array element is the attributes.
|
|
||||||
+ ATTR=${LINE_ARRAY[2]}
|
|
||||||
+
|
|
||||||
+ # Fifth character in the attributes is "a" if it's active.
|
|
||||||
+ ACTIVE=${ATTR:4:1}
|
|
||||||
+ if [ "$ACTIVE" != "a" ]; then
|
|
||||||
+ ocf_log err "Volume $LV is not active after expiry of timeout."
|
|
||||||
+ fi
|
|
||||||
+ done <<< "$VOLS"
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
# Enable LVM volume
|
|
||||||
#
|
|
||||||
LVM_start() {
|
|
||||||
@@ -241,10 +316,50 @@ LVM_start() {
|
|
||||||
ocf_run vgscan
|
|
||||||
fi
|
|
||||||
|
|
||||||
+ # Kick off activation of all volumes. If it doesn't complete within
|
|
||||||
+ # the timeout period, then we'll log the not-yet-activated volumes and
|
|
||||||
+ # continue on.
|
|
||||||
lvm_pre_activate || exit
|
|
||||||
- ocf_run vgchange $vgchange_activate_options $vg
|
|
||||||
+ (ocf_run vgchange $vgchange_activate_options $1) & PID=$!
|
|
||||||
lvm_post_activate $?
|
|
||||||
|
|
||||||
+ # Check every second for up to TIMEOUT seconds whether the vgchange has
|
|
||||||
+ # completed.
|
|
||||||
+ TIMEOUT=300
|
|
||||||
+ TIMED_OUT=true
|
|
||||||
+ SECONDS=0;
|
|
||||||
+ PARALLEL_ACTIVATE_DELAY=10
|
|
||||||
+ PARALLEL_ACTIVATE_DONE=false
|
|
||||||
+ while [ $SECONDS -lt $TIMEOUT ] ; do
|
|
||||||
+ kill -0 $PID &> /dev/null
|
|
||||||
+ if [ $? -eq 1 ] ; then
|
|
||||||
+ # process with pid of $PID doesn't exist, vgchange command completed
|
|
||||||
+ TIMED_OUT=false
|
|
||||||
+ break
|
|
||||||
+ fi
|
|
||||||
+ if [ $SECONDS -ge $PARALLEL_ACTIVATE_DELAY ] && \
|
|
||||||
+ [ "$PARALLEL_ACTIVATE_DONE" != true ] && \
|
|
||||||
+ [ "$1" == "cinder-volumes" ] ; then
|
|
||||||
+ # This will kick off parallel activation of all LVs in the VG.
|
|
||||||
+ # The delay is to ensure the VG is activated first.
|
|
||||||
+ PARALLEL_ACTIVATE_DONE=true
|
|
||||||
+ ocf_log info Explicitly activating all volumes in $1 with: $vgchange_activate_options
|
|
||||||
+ activate_all_volumes $1 $vgchange_activate_options
|
|
||||||
+ fi
|
|
||||||
+ sleep 1
|
|
||||||
+ done
|
|
||||||
+
|
|
||||||
+ if [ "$TIMED_OUT" = true ] ; then
|
|
||||||
+ ocf_log err "Timed out running ocf_run vgchange $vgchange_activate_options $1"
|
|
||||||
+ log_inactive_volumes $1
|
|
||||||
+ else
|
|
||||||
+ # Child process completed, get its status.
|
|
||||||
+ wait $PID
|
|
||||||
+ if [ $? -ne 0 ] ; then
|
|
||||||
+ return $OCF_ERR_GENERIC
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
if LVM_status $vg; then
|
|
||||||
: OK Volume $vg activated just fine!
|
|
||||||
return $OCF_SUCCESS
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
|||||||
From 111343419dd381d81303354dad48cca5095ab080 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Fri, 26 Aug 2016 15:06:02 -0400
|
|
||||||
Subject: [PATCH 02/12] WRS: Patch106: new_ocf_return_codes.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/ocf-returncodes | 35 +++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 35 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/ocf-returncodes b/heartbeat/ocf-returncodes
|
|
||||||
index dd5f017..9200889 100644
|
|
||||||
--- a/heartbeat/ocf-returncodes
|
|
||||||
+++ b/heartbeat/ocf-returncodes
|
|
||||||
@@ -4,6 +4,7 @@
|
|
||||||
#
|
|
||||||
# Copyright (c) 2004 SUSE LINUX AG, Andrew Beekhof
|
|
||||||
# All Rights Reserved.
|
|
||||||
+# Copyright (c) 2014 Wind River Systems, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# This library is free software; you can redistribute it and/or
|
|
||||||
@@ -53,3 +54,37 @@ OCF_NOT_RUNNING=7
|
|
||||||
#
|
|
||||||
OCF_RUNNING_MASTER=8
|
|
||||||
OCF_FAILED_MASTER=9
|
|
||||||
+
|
|
||||||
+# Non-standard values particular to Wind River deployments.
|
|
||||||
+#
|
|
||||||
+# OCF does not include the concept of data sync states for master/slave
|
|
||||||
+# resources.
|
|
||||||
+#
|
|
||||||
+# OCF_DATA_INCONSISTENT:
|
|
||||||
+# The resource's data is not useable.
|
|
||||||
+#
|
|
||||||
+# OCF_DATA_OUTDATED:
|
|
||||||
+# The resource's data is consistent, but a peer with more recent data
|
|
||||||
+# has been seen.
|
|
||||||
+#
|
|
||||||
+# OCF_DATA_CONSISTENT:
|
|
||||||
+# The resource's data is consistent, but it is unsure that this is the
|
|
||||||
+# most recent data.
|
|
||||||
+#
|
|
||||||
+# OCF_SYNC:
|
|
||||||
+# The resource is syncing data.
|
|
||||||
+#
|
|
||||||
+# OCF_STANDALONE:
|
|
||||||
+# The resource is operating as standalone. No peer is available or
|
|
||||||
+# syncing is not possible (i.e. split brain fencing).
|
|
||||||
+#
|
|
||||||
+OCF_DATA_INCONSISTENT=32
|
|
||||||
+OCF_DATA_OUTDATED=33
|
|
||||||
+OCF_DATA_CONSISTENT=34
|
|
||||||
+OCF_DATA_SYNC=35
|
|
||||||
+OCF_DATA_STANDALONE=36
|
|
||||||
+OCF_RUNNING_MASTER_DATA_INCONSISTENT=37
|
|
||||||
+OCF_RUNNING_MASTER_DATA_OUTDATED=38
|
|
||||||
+OCF_RUNNING_MASTER_DATA_CONSISTENT=39
|
|
||||||
+OCF_RUNNING_MASTER_DATA_SYNC=40
|
|
||||||
+OCF_RUNNING_MASTER_DATA_STANDALONE=41
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 64f5534579e8f14f723c48f317cd56badca225ee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 25 Aug 2016 13:07:16 -0400
|
|
||||||
Subject: [PATCH 1/1] Set OCF_ prefix in logs for syslog destination sorting
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/ocf-shellfuncs.in | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/ocf-shellfuncs.in b/heartbeat/ocf-shellfuncs.in
|
|
||||||
index 3565e20..688c150 100644
|
|
||||||
--- a/heartbeat/ocf-shellfuncs.in
|
|
||||||
+++ b/heartbeat/ocf-shellfuncs.in
|
|
||||||
@@ -176,9 +176,9 @@ hadate() {
|
|
||||||
set_logtag() {
|
|
||||||
if [ -z "$HA_LOGTAG" ]; then
|
|
||||||
if [ -n "$OCF_RESOURCE_INSTANCE" ]; then
|
|
||||||
- HA_LOGTAG="$__SCRIPT_NAME($OCF_RESOURCE_INSTANCE)[$$]"
|
|
||||||
+ HA_LOGTAG="OCF_$__SCRIPT_NAME($OCF_RESOURCE_INSTANCE)[$$]"
|
|
||||||
else
|
|
||||||
- HA_LOGTAG="$__SCRIPT_NAME[$$]"
|
|
||||||
+ HA_LOGTAG="OCF_$__SCRIPT_NAME[$$]"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,88 +0,0 @@
|
|||||||
From 386e3919b703c5a3d06edfc5b078ab67604139ab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:12:59 -0400
|
|
||||||
Subject: [PATCH 07/13] WRS: Patch1111: pgsql.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/pgsql | 23 ++++++++++++++++++++---
|
|
||||||
1 file changed, 20 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/pgsql b/heartbeat/pgsql
|
|
||||||
index 768608e..28cc046 100755
|
|
||||||
--- a/heartbeat/pgsql
|
|
||||||
+++ b/heartbeat/pgsql
|
|
||||||
@@ -46,6 +46,7 @@ get_pgsql_param() {
|
|
||||||
OCF_RESKEY_pgctl_default=/usr/bin/pg_ctl
|
|
||||||
OCF_RESKEY_psql_default=/usr/bin/psql
|
|
||||||
OCF_RESKEY_pgdata_default=/var/lib/pgsql/data
|
|
||||||
+OCF_RESKEY_pgconf_default=/etc/postgresql
|
|
||||||
OCF_RESKEY_pgdba_default=postgres
|
|
||||||
OCF_RESKEY_pghost_default=""
|
|
||||||
OCF_RESKEY_pgport_default=5432
|
|
||||||
@@ -78,11 +79,12 @@ OCF_RESKEY_replication_slot_name_default=""
|
|
||||||
: ${OCF_RESKEY_pgctl=${OCF_RESKEY_pgctl_default}}
|
|
||||||
: ${OCF_RESKEY_psql=${OCF_RESKEY_psql_default}}
|
|
||||||
: ${OCF_RESKEY_pgdata=${OCF_RESKEY_pgdata_default}}
|
|
||||||
+: ${OCF_RESKEY_pgconf=${OCF_RESKEY_pgconf_default}}
|
|
||||||
: ${OCF_RESKEY_pgdba=${OCF_RESKEY_pgdba_default}}
|
|
||||||
: ${OCF_RESKEY_pghost=${OCF_RESKEY_pghost_default}}
|
|
||||||
: ${OCF_RESKEY_pgport=${OCF_RESKEY_pgport_default}}
|
|
||||||
: ${OCF_RESKEY_pglibs=${OCF_RESKEY_pglibs_default}}
|
|
||||||
-: ${OCF_RESKEY_config=${OCF_RESKEY_pgdata}/postgresql.conf}
|
|
||||||
+: ${OCF_RESKEY_config=${OCF_RESKEY_pgconf}/postgresql.conf}
|
|
||||||
: ${OCF_RESKEY_start_opt=${OCF_RESKEY_start_opt_default}}
|
|
||||||
: ${OCF_RESKEY_ctl_opt=${OCF_RESKEY_ctl_opt_default}}
|
|
||||||
: ${OCF_RESKEY_pgdb=${OCF_RESKEY_pgdb_default}}
|
|
||||||
@@ -180,6 +182,14 @@ Path to PostgreSQL data directory.
|
|
||||||
<content type="string" default="${OCF_RESKEY_pgdata_default}" />
|
|
||||||
</parameter>
|
|
||||||
|
|
||||||
+<parameter name="pgconf" unique="0" required="0">
|
|
||||||
+<longdesc lang="en">
|
|
||||||
+Path to PostgreSQL config directory.
|
|
||||||
+</longdesc>
|
|
||||||
+<shortdesc lang="en">pgconf</shortdesc>
|
|
||||||
+<content type="string" default="${OCF_RESKEY_pgconf_default}" />
|
|
||||||
+</parameter>
|
|
||||||
+
|
|
||||||
<parameter name="pgdba" unique="0" required="0">
|
|
||||||
<longdesc lang="en">
|
|
||||||
User that owns PostgreSQL.
|
|
||||||
@@ -243,7 +253,7 @@ SQL script that will be used for monitor operations.
|
|
||||||
Path to the PostgreSQL configuration file for the instance.
|
|
||||||
</longdesc>
|
|
||||||
<shortdesc lang="en">Configuration file</shortdesc>
|
|
||||||
-<content type="string" default="${OCF_RESKEY_pgdata}/postgresql.conf" />
|
|
||||||
+<content type="string" default="${OCF_RESKEY_pgconf}/postgresql.conf" />
|
|
||||||
</parameter>
|
|
||||||
|
|
||||||
<parameter name="pgdb" unique="0" required="0">
|
|
||||||
@@ -630,6 +640,12 @@ pgsql_real_start() {
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
+ # WRS: Create an unversioned symlink under /var/run so SM can easily
|
|
||||||
+ # find the PID file.
|
|
||||||
+ if [ ! -h $PIDFILE_SYMLINK ]; then
|
|
||||||
+ /bin/ln -s $PIDFILE $PIDFILE_SYMLINK
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
ocf_log info "PostgreSQL is started."
|
|
||||||
return $rc
|
|
||||||
}
|
|
||||||
@@ -2078,10 +2094,11 @@ then
|
|
||||||
fi
|
|
||||||
|
|
||||||
PIDFILE=${OCF_RESKEY_pgdata}/postmaster.pid
|
|
||||||
+PIDFILE_SYMLINK=/var/run/postmaster.pid
|
|
||||||
BACKUPLABEL=${OCF_RESKEY_pgdata}/backup_label
|
|
||||||
RESOURCE_NAME=`echo $OCF_RESOURCE_INSTANCE | cut -d ":" -f 1`
|
|
||||||
PGSQL_WAL_RECEIVER_STATUS_ATTR="${RESOURCE_NAME}-receiver-status"
|
|
||||||
-RECOVERY_CONF=${OCF_RESKEY_pgdata}/recovery.conf
|
|
||||||
+RECOVERY_CONF=${OCF_RESKEY_pgconf}/recovery.conf
|
|
||||||
NODENAME=$(ocf_local_nodename | tr '[A-Z]' '[a-z]')
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From eb45b8271ce64a046d41c93b1cffd641245ce55f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:12:48 -0400
|
|
||||||
Subject: [PATCH 05/13] WRS: Patch1109: umount-in-namespace.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
heartbeat/Filesystem | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/heartbeat/Filesystem b/heartbeat/Filesystem
|
|
||||||
index f536298..05e4097 100755
|
|
||||||
--- a/heartbeat/Filesystem
|
|
||||||
+++ b/heartbeat/Filesystem
|
|
||||||
@@ -503,6 +503,10 @@ signal_processes() {
|
|
||||||
}
|
|
||||||
try_umount() {
|
|
||||||
local SUB=$1
|
|
||||||
+
|
|
||||||
+ # We need to ensure we umount in namespaces, too
|
|
||||||
+ /usr/sbin/umount-in-namespace $SUB
|
|
||||||
+
|
|
||||||
$UMOUNT $umount_force $SUB
|
|
||||||
list_mounts | grep -q " $SUB " >/dev/null 2>&1 || {
|
|
||||||
ocf_log info "unmounted $SUB successfully"
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
mirror:Source/resource-agents-4.1.1-12.el7_6.7.src.rpm
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,27 +0,0 @@
|
|||||||
From 1eeae27ddc87dc61928b96baa63fe2ff767e35b0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:05 -0400
|
|
||||||
Subject: [PATCH] WRS: 0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
SPECS/dhcp.spec
|
|
||||||
---
|
|
||||||
SPECS/dhcp.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/dhcp.spec b/SPECS/dhcp.spec
|
|
||||||
index 42409f6..70c7a6d 100644
|
|
||||||
--- a/SPECS/dhcp.spec
|
|
||||||
+++ b/SPECS/dhcp.spec
|
|
||||||
@@ -18,7 +18,7 @@
|
|
||||||
Summary: Dynamic host configuration protocol software
|
|
||||||
Name: dhcp
|
|
||||||
Version: 4.2.5
|
|
||||||
-Release: 82%{?dist}
|
|
||||||
+Release: 82.el7.centos%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
|
||||||
# dcantrell maintaining the package) made incorrect use of the epoch and
|
|
||||||
# that's why it is at 12 now. It should have never been used, but it was.
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
From 54d85d8a0378a6610012adeae7abaefaf01ea9a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Zhixiong Chi <zhixiong.chi@windriver.com>
|
|
||||||
Date: Tue, 9 Feb 2021 18:30:14 -0800
|
|
||||||
Subject: [PATCH] WRS: dhcp: set the prefixlen to 64
|
|
||||||
|
|
||||||
Drop the patch dhcp-dhclient_ipv6_prefix.patch to keep the default
|
|
||||||
value of the prefixlen to 64, since we don't need this patch to set
|
|
||||||
the default value 128 as usual, otherwise it will occurs that all hosts
|
|
||||||
(controller|compute node) offline after booting off the controller-0,
|
|
||||||
or the other usage scenes.
|
|
||||||
As usual, 128 is usually the specifications call for host address
|
|
||||||
and it doesn't include any on-link information.
|
|
||||||
By contrast, 64 indicates that's subnet area, and this vaule is used
|
|
||||||
frequently as usual. So we still use the previous vaule 64.
|
|
||||||
Meanwhile we don't need to modify the relevant place where every
|
|
||||||
application code needed for the compatibility any more.
|
|
||||||
|
|
||||||
Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
|
|
||||||
---
|
|
||||||
SPECS/dhcp.spec | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/dhcp.spec b/SPECS/dhcp.spec
|
|
||||||
index c893632..f7add1a 100644
|
|
||||||
--- a/SPECS/dhcp.spec
|
|
||||||
+++ b/SPECS/dhcp.spec
|
|
||||||
@@ -111,7 +111,8 @@ Patch70: dhcp-4.2.5-reference_count_overflow.patch
|
|
||||||
Patch71: dhcp-replay_file_limit.patch
|
|
||||||
Patch72: dhcp-4.2.5-expiry_before_renewal_v2.patch
|
|
||||||
Patch73: dhcp-4.2.5-bind-config.patch
|
|
||||||
-Patch74: dhcp-dhclient_ipv6_prefix.patch
|
|
||||||
+#Drop dhcp-dhclient_ipv6_prefix.patch not to set the default prefixlen 128
|
|
||||||
+#Patch74: dhcp-dhclient_ipv6_prefix.patch
|
|
||||||
# Support build with bind 9.11.3+
|
|
||||||
Patch75: dhcp-4.2.5-isc-util.patch
|
|
||||||
|
|
||||||
@@ -452,7 +453,8 @@ rm -rf includes/isc-dhcp
|
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1647784
|
|
||||||
%patch72 -p1 -b .t2-expirity
|
|
||||||
-%patch74 -p1 -b .ipv6-prefix
|
|
||||||
+# Drop this patch not to set the default prefixlen 128
|
|
||||||
+#%patch74 -p1 -b .ipv6-prefix
|
|
||||||
|
|
||||||
# Support for BIND 9.11
|
|
||||||
%patch73 -p1 -b .bind-config
|
|
||||||
--
|
|
||||||
2.17.0
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
|||||||
spec-include-TiS-patches.patch
|
|
||||||
dhclient-dhcp6-set-hostname.patch
|
|
||||||
0001-dhcp-set-the-prefixlen-to-64.patch
|
|
||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
@ -1,38 +0,0 @@
|
|||||||
From 484178cab006e67cc132eec2587e59c5605edac7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:05 -0400
|
|
||||||
Subject: WRS: dhclient-dhcp6-set-hostname.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
SOURCES/dhclient-script | 8 ++++++++
|
|
||||||
1 file changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SOURCES/dhclient-script b/SOURCES/dhclient-script
|
|
||||||
index 87bad65..fb51eb5 100644
|
|
||||||
--- a/SOURCES/dhclient-script
|
|
||||||
+++ b/SOURCES/dhclient-script
|
|
||||||
@@ -653,6 +653,10 @@ dh6config() {
|
|
||||||
|
|
||||||
add_ipv6_addr_with_DAD
|
|
||||||
|
|
||||||
+
|
|
||||||
+ if [ -n "${new_fqdn_hostname}" ] && need_hostname; then
|
|
||||||
+ hostname ${new_fqdn_hostname} || echo "See -nc option in dhclient(8) man page."
|
|
||||||
+ fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
RENEW6|REBIND6)
|
|
||||||
@@ -670,6 +674,10 @@ dh6config() {
|
|
||||||
[ ! "${new_dhcp6_domain_search}" = "${old_dhcp6_domain_search}" ]; then
|
|
||||||
make_resolv_conf
|
|
||||||
fi
|
|
||||||
+
|
|
||||||
+ if [ -n "${new_fqdn_hostname}" ] && need_hostname; then
|
|
||||||
+ hostname ${new_fqdn_hostname} || echo "See -nc option in dhclient(8) man page."
|
|
||||||
+ fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
DEPREF6)
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From 7e7a9f1bce5884da1e57d5bdc4f5215b7231924e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:05 -0400
|
|
||||||
Subject: [PATCH] WRS: spec-include-TiS-patches.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/dhcp.spec | 28 ++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 28 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/dhcp.spec b/SPECS/dhcp.spec
|
|
||||||
index 14da097..904e3ad 100644
|
|
||||||
--- a/SPECS/dhcp.spec
|
|
||||||
+++ b/SPECS/dhcp.spec
|
|
||||||
@@ -111,6 +115,11 @@ Patch70: dhcp-4.2.5-reference_count_overflow.patch
|
|
||||||
Patch71: dhcp-4.2.5-centos-branding.patch
|
|
||||||
|
|
||||||
|
|
||||||
+# WRS
|
|
||||||
+Patch101: dhclient-restrict-interfaces-to-command-line.patch
|
|
||||||
+Patch102: dhclient-ipv6-bind-to-interface.patch
|
|
||||||
+Patch103: dhclient-ipv6-conditionally-set-hostname.patch
|
|
||||||
+
|
|
||||||
BuildRequires: autoconf
|
|
||||||
BuildRequires: automake
|
|
||||||
BuildRequires: libtool
|
|
||||||
@@ -439,6 +451,11 @@ rm -rf includes/isc-dhcp
|
|
||||||
%patch70 -p1 -b .reference_overflow
|
|
||||||
%patch71 -p1
|
|
||||||
|
|
||||||
+# WRS
|
|
||||||
+%patch101 -p1
|
|
||||||
+%patch102 -p1
|
|
||||||
+%patch103 -p1
|
|
||||||
+
|
|
||||||
# Update paths in all man pages
|
|
||||||
for page in client/dhclient.conf.5 client/dhclient.leases.5 \
|
|
||||||
client/dhclient-script.8 client/dhclient.8 ; do
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
From f1df67309b435da1d9e02b77100a793ba0165f04 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:18 -0400
|
|
||||||
Subject: [PATCH 3/7] WRS: Patch103: dhclient-ipv6-bind-to-interface.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
common/socket.c | 18 +++++++++---------
|
|
||||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common/socket.c b/common/socket.c
|
|
||||||
index f30c171..b236c4a 100644
|
|
||||||
--- a/common/socket.c
|
|
||||||
+++ b/common/socket.c
|
|
||||||
@@ -236,6 +236,15 @@ if_register_socket(struct interface_info *info, int family,
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if defined(SO_BINDTODEVICE)
|
|
||||||
+ /* Bind this socket to this interface. */
|
|
||||||
+ if ((!do_multicast || !*do_multicast) && info->ifp &&
|
|
||||||
+ setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
|
|
||||||
+ (char *)(info -> ifp), sizeof(*(info -> ifp))) < 0) {
|
|
||||||
+ log_error("setsockopt: SO_BINDTODEVICE: %m");
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* Bind the socket to this interface's IP address. */
|
|
||||||
if (bind(sock, (struct sockaddr *)&name, name_len) < 0) {
|
|
||||||
log_error("Can't bind to dhcp address: %m");
|
|
||||||
@@ -246,15 +255,6 @@ if_register_socket(struct interface_info *info, int family,
|
|
||||||
log_fatal("includes a bootp server.");
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if defined(SO_BINDTODEVICE)
|
|
||||||
- /* Bind this socket to this interface. */
|
|
||||||
- if ((local_family != AF_INET6) && (info->ifp != NULL) &&
|
|
||||||
- setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE,
|
|
||||||
- (char *)(info -> ifp), sizeof(*(info -> ifp))) < 0) {
|
|
||||||
- log_fatal("setsockopt: SO_BINDTODEVICE: %m");
|
|
||||||
- }
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
/* IP_BROADCAST_IF instructs the kernel which interface to send
|
|
||||||
* IP packets whose destination address is 255.255.255.255. These
|
|
||||||
* will be treated as subnet broadcasts on the interface identified
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 04e5bef0d9bb0e1b3c8bbecccf11228ae809dfd2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:21 -0400
|
|
||||||
Subject: [PATCH 4/7] WRS: Patch104:
|
|
||||||
dhclient-ipv6-conditionally-set-hostname.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
client/scripts/linux | 13 +++++++++++++
|
|
||||||
1 file changed, 13 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/client/scripts/linux b/client/scripts/linux
|
|
||||||
index 14655f0..59e764f 100755
|
|
||||||
--- a/client/scripts/linux
|
|
||||||
+++ b/client/scripts/linux
|
|
||||||
@@ -254,6 +254,19 @@ if [ x$reason = xPREINIT6 ] ; then
|
|
||||||
exit_with_hooks 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if [ x$reason = xBOUND6 ] || [ x$reason = xRENEW6 ] || \
|
|
||||||
+ [ x$reason = xREBIND6 ] || [ x$reason = xREBOOT6 ]; then
|
|
||||||
+ current_hostname=`hostname`
|
|
||||||
+ if [ x$current_hostname = x ] || \
|
|
||||||
+ [ x$current_hostname = "x(none)" ] || \
|
|
||||||
+ [ x$current_hostname = xlocalhost ] || \
|
|
||||||
+ [ x$current_hostname = x$old_fqdn_hostname ]; then
|
|
||||||
+ if [ x$new_fqdn_hostname != x$old_fqdn_hostname ]; then
|
|
||||||
+ hostname "$new_fqdn_hostname"
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
if [ x${old_ip6_prefix} != x ] || [ x${new_ip6_prefix} != x ] ; then
|
|
||||||
echo Prefix ${reason} old=${old_ip6_prefix} new=${new_ip6_prefix}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
From 15b7057f9b9f2b232cf2f9f674c63140e903e379 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 15:25:15 -0400
|
|
||||||
Subject: [PATCH 2/7] WRS: Patch102:
|
|
||||||
dhclient-restrict-interfaces-to-command-line.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
client/clparse.c | 8 ++++++--
|
|
||||||
client/dhclient.c | 3 +++
|
|
||||||
includes/dhcpd.h | 1 +
|
|
||||||
3 files changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/client/clparse.c b/client/clparse.c
|
|
||||||
index b609caf..3ae632a 100644
|
|
||||||
--- a/client/clparse.c
|
|
||||||
+++ b/client/clparse.c
|
|
||||||
@@ -943,8 +943,12 @@ void parse_interface_declaration (cfile, outer_config, name)
|
|
||||||
if (!client -> config)
|
|
||||||
make_client_config (client, outer_config);
|
|
||||||
|
|
||||||
- ip -> flags &= ~INTERFACE_AUTOMATIC;
|
|
||||||
- interfaces_requested = 1;
|
|
||||||
+ if (restrict_interfaces != ISC_TRUE) {
|
|
||||||
+ ip -> flags &= ~INTERFACE_AUTOMATIC;
|
|
||||||
+ interfaces_requested = 1;
|
|
||||||
+ } else {
|
|
||||||
+ log_info("%s not in command line interfaces; ignoring", ip->name);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
token = next_token (&val, (unsigned *)0, cfile);
|
|
||||||
if (token != LBRACE) {
|
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
|
||||||
index 0db4703..00b4240 100644
|
|
||||||
--- a/client/dhclient.c
|
|
||||||
+++ b/client/dhclient.c
|
|
||||||
@@ -71,6 +71,7 @@ isc_boolean_t no_pid_file = ISC_FALSE;
|
|
||||||
int dhcp_max_agent_option_packet_length = 0;
|
|
||||||
|
|
||||||
int interfaces_requested = 0;
|
|
||||||
+int restrict_interfaces = ISC_FALSE;
|
|
||||||
|
|
||||||
struct iaddr iaddr_broadcast = { 4, { 255, 255, 255, 255 } };
|
|
||||||
struct iaddr iaddr_any = { 4, { 0, 0, 0, 0 } };
|
|
||||||
@@ -242,6 +243,8 @@ main(int argc, char **argv) {
|
|
||||||
no_dhclient_pid = 1;
|
|
||||||
} else if (!strcmp(argv[i], "--no-pid")) {
|
|
||||||
no_pid_file = ISC_TRUE;
|
|
||||||
+ } else if (!strcmp(argv[i], "--restrict-interfaces")) {
|
|
||||||
+ restrict_interfaces = ISC_TRUE;
|
|
||||||
} else if (!strcmp(argv[i], "-cf")) {
|
|
||||||
if (++i == argc)
|
|
||||||
usage();
|
|
||||||
diff --git a/includes/dhcpd.h b/includes/dhcpd.h
|
|
||||||
index 1d2bf2c..b1f16bf 100644
|
|
||||||
--- a/includes/dhcpd.h
|
|
||||||
+++ b/includes/dhcpd.h
|
|
||||||
@@ -2693,6 +2693,7 @@ extern const char *path_dhclient_db;
|
|
||||||
extern const char *path_dhclient_pid;
|
|
||||||
extern char *path_dhclient_script;
|
|
||||||
extern int interfaces_requested;
|
|
||||||
+extern int restrict_interfaces;
|
|
||||||
extern struct data_string default_duid;
|
|
||||||
extern int duid_type;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/dhcp-4.2.5-82.el7.centos.src.rpm
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,26 +0,0 @@
|
|||||||
From 402d56affb9e0767c4406260522fb356ecc420a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: jmckenna <jason.mckenna@windriver.com>
|
|
||||||
Date: Fri, 9 Feb 2018 13:51:24 -0500
|
|
||||||
Subject: [PATCH] update package patching
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/dnsmasq.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/dnsmasq.spec b/SPECS/dnsmasq.spec
|
|
||||||
index 4d30b0a..689158e 100644
|
|
||||||
--- a/SPECS/dnsmasq.spec
|
|
||||||
+++ b/SPECS/dnsmasq.spec
|
|
||||||
@@ -13,7 +13,7 @@
|
|
||||||
|
|
||||||
Name: dnsmasq
|
|
||||||
Version: 2.76
|
|
||||||
-Release: 7%{?extraversion}%{?dist}
|
|
||||||
+Release: 7.el7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
Summary: A lightweight DHCP/caching DNS server
|
|
||||||
|
|
||||||
Group: System Environment/Daemons
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
spec-include-TiS-patch.patch
|
|
||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
@ -1,67 +0,0 @@
|
|||||||
From ecbe3b4e138cb5076b8cbbedf86fea3044449132 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 17:27:13 -0400
|
|
||||||
Subject: [PATCH 1/5] WRS: spec-include-TiS-patch.patch
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/dnsmasq.spec | 26 ++++++++++----------------
|
|
||||||
1 file changed, 10 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/dnsmasq.spec b/SPECS/dnsmasq.spec
|
|
||||||
index b312ef3..4d30b0a 100644
|
|
||||||
--- a/SPECS/dnsmasq.spec
|
|
||||||
+++ b/SPECS/dnsmasq.spec
|
|
||||||
@@ -57,6 +57,10 @@ Patch19: dnsmasq-2.76-misc-cleanups.patch
|
|
||||||
Patch20: dnsmasq-2.76-CVE-2017-14491-2.patch
|
|
||||||
Patch21: dnsmasq-2.76-inotify.patch
|
|
||||||
|
|
||||||
+# WRS patches
|
|
||||||
+Patch30: dnsmasq-update-ipv6-leases-from-config.patch
|
|
||||||
+Patch31: close-tftp-sockets-immediately.patch
|
|
||||||
+
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
||||||
|
|
||||||
BuildRequires: dbus-devel
|
|
||||||
@@ -113,6 +117,10 @@ query/remove a DHCP server's leases.
|
|
||||||
%patch20 -p1 -b .CVE-2017-14491-2
|
|
||||||
%patch21 -p1 -b .inotify
|
|
||||||
|
|
||||||
+# WRS patches
|
|
||||||
+%patch30 -p1
|
|
||||||
+%patch31 -p1
|
|
||||||
+
|
|
||||||
# use /var/lib/dnsmasq instead of /var/lib/misc
|
|
||||||
for file in dnsmasq.conf.example man/dnsmasq.8 man/es/dnsmasq.8 src/config.h; do
|
|
||||||
sed -i 's|/var/lib/misc/dnsmasq.leases|/var/lib/dnsmasq/dnsmasq.leases|g' "$file"
|
|
||||||
@@ -168,25 +176,11 @@ rm -rf %{buildroot}%{_initrddir}
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
-%post
|
|
||||||
-%systemd_post dnsmasq.service
|
|
||||||
-
|
|
||||||
-%preun
|
|
||||||
-%systemd_preun dnsmasq.service
|
|
||||||
-
|
|
||||||
-%postun
|
|
||||||
-%systemd_postun_with_restart dnsmasq.service
|
|
||||||
-
|
|
||||||
-%triggerun -- dnsmasq < 2.52-3
|
|
||||||
-%{_bindir}/systemd-sysv-convert --save dnsmasq >/dev/null 2>&1 ||:
|
|
||||||
-/sbin/chkconfig --del dnsmasq >/dev/null 2>&1 || :
|
|
||||||
-/bin/systemctl try-restart dnsmasq.service >/dev/null 2>&1 || :
|
|
||||||
-
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%doc CHANGELOG COPYING COPYING-v3 FAQ doc.html setup.html dbus/DBus-interface
|
|
||||||
-%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dnsmasq.conf
|
|
||||||
-%dir /etc/dnsmasq.d
|
|
||||||
+%config(noreplace) %attr(640,root,root) %{_sysconfdir}/dnsmasq.conf
|
|
||||||
+%dir %attr(750,root,root) %{_sysconfdir}/dnsmasq.d
|
|
||||||
%dir %{_var}/lib/dnsmasq
|
|
||||||
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/dnsmasq.conf
|
|
||||||
%{_unitdir}/%{name}.service
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 858e259bf7125695c068301d0ef56cc4750d6544 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Thu, 15 Sep 2016 13:32:03 -0400
|
|
||||||
Subject: [PATCH 1/1] Close tftp sockets immediately
|
|
||||||
|
|
||||||
---
|
|
||||||
src/tftp.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/tftp.c b/src/tftp.c
|
|
||||||
index d7d050f..ecc6ce8 100644
|
|
||||||
--- a/src/tftp.c
|
|
||||||
+++ b/src/tftp.c
|
|
||||||
@@ -768,9 +768,11 @@ int do_tftp_script_run(void)
|
|
||||||
if ((transfer = daemon->tftp_done_trans))
|
|
||||||
{
|
|
||||||
daemon->tftp_done_trans = transfer->next;
|
|
||||||
+#if 0 /* Disable delayed closing of TFTP UDP socket */
|
|
||||||
#ifdef HAVE_SCRIPT
|
|
||||||
queue_tftp(transfer->file->size, transfer->file->filename, &transfer->peer);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
free_transfer(transfer);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
|||||||
From 1a91b72146893dab1cca1354dd3b0a8fa74d6b55 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Tue, 18 Oct 2016 13:07:56 -0400
|
|
||||||
Subject: WRS: Patch22: dnsmasq-update-ipv6-leases-from-config.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
src/lease.c | 53 +++++++++++++++++++++++++++++++++++++++++++----------
|
|
||||||
1 file changed, 43 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/lease.c b/src/lease.c
|
|
||||||
index 69e698c..bc56c47 100644
|
|
||||||
--- a/src/lease.c
|
|
||||||
+++ b/src/lease.c
|
|
||||||
@@ -210,6 +210,18 @@ void lease_init(time_t now)
|
|
||||||
dns_dirty = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int lease_match_config_addr(struct dhcp_lease *lease, struct dhcp_config *config)
|
|
||||||
+{
|
|
||||||
+ if (!(lease->flags & (LEASE_TA | LEASE_NA)) && (config->flags & CONFIG_ADDR))
|
|
||||||
+ return (lease->addr.s_addr == config->addr.s_addr);
|
|
||||||
+#ifdef HAVE_DHCP6
|
|
||||||
+ else if ((lease->flags & (LEASE_TA | LEASE_NA)) && (config->flags & CONFIG_ADDR6))
|
|
||||||
+ return IN6_ARE_ADDR_EQUAL(&config->addr6, &lease->addr6);
|
|
||||||
+#endif
|
|
||||||
+ else
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void lease_update_from_configs(void)
|
|
||||||
{
|
|
||||||
/* changes to the config may change current leases. */
|
|
||||||
@@ -218,16 +230,37 @@ void lease_update_from_configs(void)
|
|
||||||
struct dhcp_config *config;
|
|
||||||
char *name;
|
|
||||||
|
|
||||||
- for (lease = leases; lease; lease = lease->next)
|
|
||||||
- if (lease->flags & (LEASE_TA | LEASE_NA))
|
|
||||||
- continue;
|
|
||||||
- else if ((config = find_config(daemon->dhcp_conf, NULL, lease->clid, lease->clid_len,
|
|
||||||
- lease->hwaddr, lease->hwaddr_len, lease->hwaddr_type, NULL)) &&
|
|
||||||
- (config->flags & CONFIG_NAME) &&
|
|
||||||
- (!(config->flags & CONFIG_ADDR) || config->addr.s_addr == lease->addr.s_addr))
|
|
||||||
- lease_set_hostname(lease, config->hostname, 1, get_domain(lease->addr), NULL);
|
|
||||||
- else if ((name = host_from_dns(lease->addr)))
|
|
||||||
- lease_set_hostname(lease, name, 1, get_domain(lease->addr), NULL); /* updates auth flag only */
|
|
||||||
+ for (lease = leases; lease; lease = lease->next) {
|
|
||||||
+ if (lease->flags & LEASE_TA)
|
|
||||||
+ continue; /* we do not update temporary ipv6 leases */
|
|
||||||
+
|
|
||||||
+ config = find_config(daemon->dhcp_conf, NULL, lease->clid, lease->clid_len,
|
|
||||||
+ (lease->hwaddr_len > 0 ? lease->hwaddr : NULL),
|
|
||||||
+ lease->hwaddr_len, lease->hwaddr_type, NULL);
|
|
||||||
+ if (config)
|
|
||||||
+ {
|
|
||||||
+ if ((!(config->flags & (CONFIG_ADDR | CONFIG_ADDR6))) ||
|
|
||||||
+ lease_match_config_addr(lease, config))
|
|
||||||
+ {
|
|
||||||
+ /*
|
|
||||||
+ * Either we matched on a config that doesn't have an address in
|
|
||||||
+ * which case we'll just use the hostname, or we matched on a
|
|
||||||
+ * config that has the same IP address.
|
|
||||||
+ */
|
|
||||||
+ if (!(lease->flags & (LEASE_TA | LEASE_NA)))
|
|
||||||
+ lease_set_hostname(lease, config->hostname, 1, get_domain(lease->addr), NULL);
|
|
||||||
+#ifdef HAVE_DHCP6
|
|
||||||
+ else
|
|
||||||
+ lease_set_hostname(lease, config->hostname, 1, get_domain6(&lease->addr6), NULL);
|
|
||||||
+#endif
|
|
||||||
+ continue; /* lease updated; move on to next lease */
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* attempt to find a matching DNS cache entry for an IPv4 entry */
|
|
||||||
+ if (!(lease->flags & (LEASE_TA | LEASE_NA)) && (name = host_from_dns(lease->addr)))
|
|
||||||
+ lease_set_hostname(lease, name, 1, get_domain(lease->addr), NULL); /* updates auth flag only */
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ourprintf(int *errp, char *format, ...)
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/dnsmasq-2.76-7.el7.src.rpm
|
|
@ -1,2 +0,0 @@
|
|||||||
COPY_LIST="$CGCS_BASE/downloads/dpkg_1.18.24.tar.xz"
|
|
||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,43 +0,0 @@
|
|||||||
Summary: dpkg
|
|
||||||
Name: dpkg
|
|
||||||
Version: 1.18.24
|
|
||||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: GPLv2 and GPLv2+ and LGPLv2+ and Public Domain and BSD
|
|
||||||
Group: base
|
|
||||||
Packager: Wind River <info@windriver.com>
|
|
||||||
URL: unknown
|
|
||||||
Source0: %{name}_%{version}.tar.xz
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: ncurses-static
|
|
||||||
BuildRequires: perl-version
|
|
||||||
|
|
||||||
%description
|
|
||||||
dpkg
|
|
||||||
|
|
||||||
%define local_bindir /usr/bin/
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup
|
|
||||||
|
|
||||||
%build
|
|
||||||
./configure --prefix=$RPM_BUILD_ROOT \
|
|
||||||
--disable-dselect \
|
|
||||||
--disable-update-alternatives \
|
|
||||||
--without-liblzma
|
|
||||||
make -j"%(nproc)"
|
|
||||||
|
|
||||||
%install
|
|
||||||
# Don't install everything, it's too dangerous
|
|
||||||
# make install
|
|
||||||
|
|
||||||
install -d -m 755 %{buildroot}%{local_bindir}
|
|
||||||
install -p -D -m 700 utils/start-stop-daemon %{buildroot}%{local_bindir}/start-stop-daemon
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{local_bindir}/*
|
|
@ -1,2 +0,0 @@
|
|||||||
SRC_DIR="files"
|
|
||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,26 +0,0 @@
|
|||||||
From 55d52d8bc9f649b4871336aaffd87fb7d931eac8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 16:12:36 -0400
|
|
||||||
Subject: [PATCH] WRS: 0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/haproxy.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/haproxy.spec b/SPECS/haproxy.spec
|
|
||||||
index 39c0c86..b0d5862 100644
|
|
||||||
--- a/SPECS/haproxy.spec
|
|
||||||
+++ b/SPECS/haproxy.spec
|
|
||||||
@@ -8,7 +8,7 @@
|
|
||||||
|
|
||||||
Name: haproxy
|
|
||||||
Version: 1.5.18
|
|
||||||
-Release: 8%{?dist}
|
|
||||||
+Release: 8.el7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
Summary: TCP/HTTP proxy and load balancer for high availability environments
|
|
||||||
|
|
||||||
Group: System Environment/Daemons
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
spec-include-TiS-changes.patch
|
|
||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
@ -1,53 +0,0 @@
|
|||||||
From 0b326ac9fcee3fbac7e41e3bc269cc7251dcf9dd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 2 Oct 2017 16:12:36 -0400
|
|
||||||
Subject: WRS: spec-include-TiS-changes.patch
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
SPECS/haproxy.spec | 8 +++++++-
|
|
||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/haproxy.spec b/SPECS/haproxy.spec
|
|
||||||
index 30dca25..53def97 100644
|
|
||||||
--- a/SPECS/haproxy.spec
|
|
||||||
+++ b/SPECS/haproxy.spec
|
|
||||||
@@ -26,6 +26,8 @@ Patch0: halog-unused-variables.patch
|
|
||||||
Patch1: iprange-return-type.patch
|
|
||||||
Patch2: haproxy-tcp-user-timeout.patch
|
|
||||||
Patch3: haproxy-systemd-wrapper-exit-code.patch
|
|
||||||
+Patch4: haproxy-env-var.patch
|
|
||||||
+Patch5: haproxy-tpm-support.patch
|
|
||||||
|
|
||||||
BuildRequires: pcre-devel
|
|
||||||
BuildRequires: zlib-devel
|
|
||||||
@@ -37,6 +39,8 @@ Requires(post): systemd
|
|
||||||
Requires(preun): systemd
|
|
||||||
Requires(postun): systemd
|
|
||||||
|
|
||||||
+Requires: tpm2-openssl-engine
|
|
||||||
+
|
|
||||||
%description
|
|
||||||
HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high
|
|
||||||
availability environments. Indeed, it can:
|
|
||||||
@@ -57,6 +61,8 @@ availability environments. Indeed, it can:
|
|
||||||
%patch1 -p0
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
+%patch4 -p1
|
|
||||||
+%patch5 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
regparm_opts=
|
|
||||||
@@ -79,7 +85,7 @@ popd
|
|
||||||
%{__make} install-man DESTDIR=%{buildroot} PREFIX=%{_prefix}
|
|
||||||
|
|
||||||
%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
|
|
||||||
-%{__install} -p -D -m 0644 %{SOURCE2} %{buildroot}%{haproxy_confdir}/%{name}.cfg
|
|
||||||
+%{__install} -p -D -m 0640 %{SOURCE2} %{buildroot}%{haproxy_confdir}/%{name}.cfg
|
|
||||||
%{__install} -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
|
||||||
%{__install} -p -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
|
|
||||||
%{__install} -p -D -m 0644 %{SOURCE5} %{buildroot}%{_mandir}/man1/halog.1
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,245 +0,0 @@
|
|||||||
diff --git a/src/cfgparse.c b/src/cfgparse.c
|
|
||||||
index 39abf6b..6a7f80c 100644
|
|
||||||
--- a/src/cfgparse.c
|
|
||||||
+++ b/src/cfgparse.c
|
|
||||||
@@ -5821,12 +5821,19 @@ out:
|
|
||||||
*/
|
|
||||||
int readcfgfile(const char *file)
|
|
||||||
{
|
|
||||||
- char thisline[LINESIZE];
|
|
||||||
+ char *thisline;
|
|
||||||
+ int linesize = LINESIZE;
|
|
||||||
FILE *f;
|
|
||||||
int linenum = 0;
|
|
||||||
int err_code = 0;
|
|
||||||
struct cfg_section *cs = NULL;
|
|
||||||
struct cfg_section *ics;
|
|
||||||
+ int readbytes = 0;
|
|
||||||
+
|
|
||||||
+ if ((thisline = malloc(sizeof(*thisline) * linesize)) == NULL) {
|
|
||||||
+ Alert("parsing [%s] : out of memory.\n", file);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* Register internal sections */
|
|
||||||
if (!cfg_register_section("listen", cfg_parse_listen) ||
|
|
||||||
@@ -5842,11 +5849,14 @@ int readcfgfile(const char *file)
|
|
||||||
if ((f=fopen(file,"r")) == NULL)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
- while (fgets(thisline, sizeof(thisline), f) != NULL) {
|
|
||||||
+next_line:
|
|
||||||
+ while (fgets(thisline + readbytes, linesize - readbytes, f) != NULL) {
|
|
||||||
int arg, kwm = KWM_STD;
|
|
||||||
char *end;
|
|
||||||
char *args[MAX_LINE_ARGS + 1];
|
|
||||||
char *line = thisline;
|
|
||||||
+ int dquote = 0; /* double quote */
|
|
||||||
+ int squote = 0; /* simple quote */
|
|
||||||
|
|
||||||
linenum++;
|
|
||||||
|
|
||||||
@@ -5856,11 +5866,25 @@ int readcfgfile(const char *file)
|
|
||||||
/* Check if we reached the limit and the last char is not \n.
|
|
||||||
* Watch out for the last line without the terminating '\n'!
|
|
||||||
*/
|
|
||||||
- Alert("parsing [%s:%d]: line too long, limit: %d.\n",
|
|
||||||
- file, linenum, (int)sizeof(thisline)-1);
|
|
||||||
- err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ char *newline;
|
|
||||||
+ int newlinesize = linesize * 2;
|
|
||||||
+
|
|
||||||
+ newline = realloc(thisline, sizeof(*thisline) * newlinesize);
|
|
||||||
+ if (newline == NULL) {
|
|
||||||
+ Alert("parsing [%s:%d]: line too long, cannot allocate memory.\n",
|
|
||||||
+ file, linenum);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ readbytes = linesize - 1;
|
|
||||||
+ linesize = newlinesize;
|
|
||||||
+ thisline = newline;
|
|
||||||
+ continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ readbytes = 0;
|
|
||||||
+
|
|
||||||
/* skip leading spaces */
|
|
||||||
while (isspace((unsigned char)*line))
|
|
||||||
line++;
|
|
||||||
@@ -5869,10 +5893,26 @@ int readcfgfile(const char *file)
|
|
||||||
args[arg] = line;
|
|
||||||
|
|
||||||
while (*line && arg < MAX_LINE_ARGS) {
|
|
||||||
- /* first, we'll replace \\, \<space>, \#, \r, \n, \t, \xXX with their
|
|
||||||
- * C equivalent value. Other combinations left unchanged (eg: \1).
|
|
||||||
- */
|
|
||||||
- if (*line == '\\') {
|
|
||||||
+ if (*line == '"' && !squote) { /* double quote outside single quotes */
|
|
||||||
+ if (dquote)
|
|
||||||
+ dquote = 0;
|
|
||||||
+ else
|
|
||||||
+ dquote = 1;
|
|
||||||
+ memmove(line, line + 1, end - line);
|
|
||||||
+ end--;
|
|
||||||
+ }
|
|
||||||
+ else if (*line == '\'' && !dquote) { /* single quote outside double quotes */
|
|
||||||
+ if (squote)
|
|
||||||
+ squote = 0;
|
|
||||||
+ else
|
|
||||||
+ squote = 1;
|
|
||||||
+ memmove(line, line + 1, end - line);
|
|
||||||
+ end--;
|
|
||||||
+ }
|
|
||||||
+ else if (*line == '\\' && !squote) {
|
|
||||||
+ /* first, we'll replace \\, \<space>, \#, \r, \n, \t, \xXX with their
|
|
||||||
+ * C equivalent value. Other combinations left unchanged (eg: \1).
|
|
||||||
+ */
|
|
||||||
int skip = 0;
|
|
||||||
if (line[1] == ' ' || line[1] == '\\' || line[1] == '#') {
|
|
||||||
*line = line[1];
|
|
||||||
@@ -5904,6 +5944,15 @@ int readcfgfile(const char *file)
|
|
||||||
Alert("parsing [%s:%d] : invalid or incomplete '\\x' sequence in '%s'.\n", file, linenum, args[0]);
|
|
||||||
err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
}
|
|
||||||
+ } else if (line[1] == '"') {
|
|
||||||
+ *line = '"';
|
|
||||||
+ skip = 1;
|
|
||||||
+ } else if (line[1] == '\'') {
|
|
||||||
+ *line = '\'';
|
|
||||||
+ skip = 1;
|
|
||||||
+ } else if (line[1] == '$' && dquote) { /* escaping of $ only inside double quotes */
|
|
||||||
+ *line = '$';
|
|
||||||
+ skip = 1;
|
|
||||||
}
|
|
||||||
if (skip) {
|
|
||||||
memmove(line + 1, line + 1 + skip, end - (line + skip));
|
|
||||||
@@ -5911,23 +5960,117 @@ int readcfgfile(const char *file)
|
|
||||||
}
|
|
||||||
line++;
|
|
||||||
}
|
|
||||||
- else if (*line == '#' || *line == '\n' || *line == '\r') {
|
|
||||||
+ else if ((!squote && !dquote && *line == '#') || *line == '\n' || *line == '\r') {
|
|
||||||
/* end of string, end of loop */
|
|
||||||
*line = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
- else if (isspace((unsigned char)*line)) {
|
|
||||||
+ else if (!squote && !dquote && isspace((unsigned char)*line)) {
|
|
||||||
/* a non-escaped space is an argument separator */
|
|
||||||
*line++ = '\0';
|
|
||||||
while (isspace((unsigned char)*line))
|
|
||||||
line++;
|
|
||||||
args[++arg] = line;
|
|
||||||
}
|
|
||||||
+ else if (dquote && *line == '$') {
|
|
||||||
+ /* environment variables are evaluated inside double quotes */
|
|
||||||
+ char *var_beg;
|
|
||||||
+ char *var_end;
|
|
||||||
+ char save_char;
|
|
||||||
+ char *value;
|
|
||||||
+ int val_len;
|
|
||||||
+ int newlinesize;
|
|
||||||
+ int braces = 0;
|
|
||||||
+
|
|
||||||
+ var_beg = line + 1;
|
|
||||||
+ var_end = var_beg;
|
|
||||||
+
|
|
||||||
+ if (*var_beg == '{') {
|
|
||||||
+ var_beg++;
|
|
||||||
+ var_end++;
|
|
||||||
+ braces = 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!isalpha((int)(unsigned char)*var_beg) && *var_beg != '_') {
|
|
||||||
+ Alert("parsing [%s:%d] : Variable expansion: Unrecognized character '%c' in variable name.\n", file, linenum, *var_beg);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ goto next_line; /* skip current line */
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ while (isalnum((int)(unsigned char)*var_end) || *var_end == '_')
|
|
||||||
+ var_end++;
|
|
||||||
+
|
|
||||||
+ save_char = *var_end;
|
|
||||||
+ *var_end = '\0';
|
|
||||||
+ value = getenv(var_beg);
|
|
||||||
+ *var_end = save_char;
|
|
||||||
+ val_len = value ? strlen(value) : 0;
|
|
||||||
+
|
|
||||||
+ if (braces) {
|
|
||||||
+ if (*var_end == '}') {
|
|
||||||
+ var_end++;
|
|
||||||
+ braces = 0;
|
|
||||||
+ } else {
|
|
||||||
+ Alert("parsing [%s:%d] : Variable expansion: Mismatched braces.\n", file, linenum);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ goto next_line; /* skip current line */
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ newlinesize = (end - thisline) - (var_end - line) + val_len + 1;
|
|
||||||
+
|
|
||||||
+ /* if not enough space in thisline */
|
|
||||||
+ if (newlinesize > linesize) {
|
|
||||||
+ char *newline;
|
|
||||||
+
|
|
||||||
+ newline = realloc(thisline, newlinesize * sizeof(*thisline));
|
|
||||||
+ if (newline == NULL) {
|
|
||||||
+ Alert("parsing [%s:%d] : Variable expansion: Not enough memory.\n", file, linenum);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ goto next_line; /* slip current line */
|
|
||||||
+ }
|
|
||||||
+ /* recompute pointers if realloc returns a new pointer */
|
|
||||||
+ if (newline != thisline) {
|
|
||||||
+ int i;
|
|
||||||
+ int diff;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i <= arg; i++) {
|
|
||||||
+ diff = args[i] - thisline;
|
|
||||||
+ args[i] = newline + diff;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ diff = var_end - thisline;
|
|
||||||
+ var_end = newline + diff;
|
|
||||||
+ diff = end - thisline;
|
|
||||||
+ end = newline + diff;
|
|
||||||
+ diff = line - thisline;
|
|
||||||
+ line = newline + diff;
|
|
||||||
+ thisline = newline;
|
|
||||||
+ }
|
|
||||||
+ linesize = newlinesize;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* insert value inside the line */
|
|
||||||
+ memmove(line + val_len, var_end, end - var_end + 1);
|
|
||||||
+ memcpy(line, value, val_len);
|
|
||||||
+ end += val_len - (var_end - line);
|
|
||||||
+ line += val_len;
|
|
||||||
+ }
|
|
||||||
else {
|
|
||||||
line++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (dquote) {
|
|
||||||
+ Alert("parsing [%s:%d] : Mismatched double quotes.\n", file, linenum);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (squote) {
|
|
||||||
+ Alert("parsing [%s:%d] : Mismatched simple quotes.\n", file, linenum);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* empty line */
|
|
||||||
if (!**args)
|
|
||||||
continue;
|
|
||||||
@@ -5998,6 +6141,7 @@ int readcfgfile(const char *file)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cursection = NULL;
|
|
||||||
+ free(thisline);
|
|
||||||
fclose(f);
|
|
||||||
return err_code;
|
|
||||||
}
|
|
@ -1,319 +0,0 @@
|
|||||||
From a2a25214f6f4913b774bdd6c0b80d3ea424d3a1b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kam Nasim <kam.nasim@windriver.com>
|
|
||||||
Date: Wed, 22 Mar 2017 12:07:24 -0400
|
|
||||||
Subject: [PATCH] haproxy tpm support
|
|
||||||
|
|
||||||
---
|
|
||||||
include/types/global.h | 13 +++++
|
|
||||||
src/cfgparse.c | 28 ++++++++++
|
|
||||||
src/haproxy.c | 26 ++++++++-
|
|
||||||
src/ssl_sock.c | 147 +++++++++++++++++++++++++++++++++++++++++++------
|
|
||||||
4 files changed, 197 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/types/global.h b/include/types/global.h
|
|
||||||
index f1525ae..2e9c077 100644
|
|
||||||
--- a/include/types/global.h
|
|
||||||
+++ b/include/types/global.h
|
|
||||||
@@ -30,6 +30,10 @@
|
|
||||||
#include <types/proxy.h>
|
|
||||||
#include <types/task.h>
|
|
||||||
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+#include <openssl/engine.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifndef UNIX_MAX_PATH
|
|
||||||
#define UNIX_MAX_PATH 108
|
|
||||||
#endif
|
|
||||||
@@ -71,6 +75,14 @@ enum {
|
|
||||||
SSL_SERVER_VERIFY_REQUIRED = 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
+// WRS: Define a new TPM configuration structure
|
|
||||||
+struct tpm_conf {
|
|
||||||
+ char *tpm_object;
|
|
||||||
+ char *tpm_engine;
|
|
||||||
+ EVP_PKEY *tpm_key;
|
|
||||||
+ ENGINE *tpm_engine_ref;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
/* FIXME : this will have to be redefined correctly */
|
|
||||||
struct global {
|
|
||||||
#ifdef USE_OPENSSL
|
|
||||||
@@ -87,6 +99,7 @@ struct global {
|
|
||||||
char *connect_default_ciphers;
|
|
||||||
int listen_default_ssloptions;
|
|
||||||
int connect_default_ssloptions;
|
|
||||||
+ struct tpm_conf tpm; // tpm configuration
|
|
||||||
#endif
|
|
||||||
unsigned int ssl_server_verify; /* default verify mode on servers side */
|
|
||||||
struct freq_ctr conn_per_sec;
|
|
||||||
diff --git a/src/cfgparse.c b/src/cfgparse.c
|
|
||||||
index 6a7f80c..3bc6e79 100644
|
|
||||||
--- a/src/cfgparse.c
|
|
||||||
+++ b/src/cfgparse.c
|
|
||||||
@@ -1541,6 +1541,34 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm)
|
|
||||||
goto out;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
+ else if (!strcmp(args[0], "tpm-object")) {
|
|
||||||
+ if (global.tpm.tpm_object) {
|
|
||||||
+ free(global.tpm.tpm_object);
|
|
||||||
+ }
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+ if (*(args[1]) && (access(args[1], F_OK) != -1)) {
|
|
||||||
+ global.tpm.tpm_object = strdup(args[1]);
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
+ Alert("parsing [%s:%d] : '%s' is not implemented.\n", file, linenum, args[0]);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ goto out;
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
+ else if (!strcmp(args[0], "tpm-engine")) {
|
|
||||||
+ if (global.tpm.tpm_engine) {
|
|
||||||
+ free(global.tpm.tpm_engine);
|
|
||||||
+ }
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+ if (*(args[1]) && (access(args[1], F_OK) != -1)) {
|
|
||||||
+ global.tpm.tpm_engine = strdup(args[1]);
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
+ Alert("parsing [%s:%d] : '%s' is not implemented.\n", file, linenum, args[0]);
|
|
||||||
+ err_code |= ERR_ALERT | ERR_FATAL;
|
|
||||||
+ goto out;
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
else {
|
|
||||||
struct cfg_kw_list *kwl;
|
|
||||||
int index;
|
|
||||||
diff --git a/src/haproxy.c b/src/haproxy.c
|
|
||||||
index 862697d..2a1a0dc 100644
|
|
||||||
--- a/src/haproxy.c
|
|
||||||
+++ b/src/haproxy.c
|
|
||||||
@@ -959,6 +959,24 @@ static void deinit_stick_rules(struct list *rules)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void deinit_tpm_engine()
|
|
||||||
+{
|
|
||||||
+ /*
|
|
||||||
+ * if the tpm engine is present then
|
|
||||||
+ * deinit it, this is needed to
|
|
||||||
+ * flush the TPM key handle from TPM memory
|
|
||||||
+ */
|
|
||||||
+ if (global.tpm.tpm_engine_ref) {
|
|
||||||
+ ENGINE_finish(global.tpm.tpm_engine_ref);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (global.tpm.tpm_key) {
|
|
||||||
+ EVP_PKEY_free(global.tpm.tpm_key);
|
|
||||||
+ }
|
|
||||||
+ free(global.tpm.tpm_engine); global.tpm.tpm_engine = NULL;
|
|
||||||
+ free(global.tpm.tpm_object); global.tpm.tpm_object = NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void deinit(void)
|
|
||||||
{
|
|
||||||
struct proxy *p = proxy, *p0;
|
|
||||||
@@ -1218,7 +1236,13 @@ void deinit(void)
|
|
||||||
|
|
||||||
free(uap);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
+ /* if HAProxy was in TPM mode then deinit
|
|
||||||
+ * that configuration as well.
|
|
||||||
+ */
|
|
||||||
+ if (global.tpm.tpm_object && global.tpm.tpm_object != '\0')
|
|
||||||
+ deinit_tpm_engine();
|
|
||||||
+
|
|
||||||
userlist_free(userlist);
|
|
||||||
|
|
||||||
protocol_unbind_all();
|
|
||||||
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
|
|
||||||
index ead4c7b..4e16026 100644
|
|
||||||
--- a/src/ssl_sock.c
|
|
||||||
+++ b/src/ssl_sock.c
|
|
||||||
@@ -50,6 +50,7 @@
|
|
||||||
#ifndef OPENSSL_NO_DH
|
|
||||||
#include <openssl/dh.h>
|
|
||||||
#endif
|
|
||||||
+#include <openssl/engine.h>
|
|
||||||
|
|
||||||
#include <common/buffer.h>
|
|
||||||
#include <common/compat.h>
|
|
||||||
@@ -1115,6 +1116,80 @@ end:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * initialize the TPM engine and load the
|
|
||||||
+ * TPM object as private key within the Engine.
|
|
||||||
+ * Only do this for the first bind since TPM can
|
|
||||||
+ * only load 3-4 contexes before it runs out of memory
|
|
||||||
+ */
|
|
||||||
+static int ssl_sock_load_tpm_key(SSL_CTX *ctx, char **err) {
|
|
||||||
+ if (!global.tpm.tpm_object || global.tpm.tpm_object[0] == '\0') {
|
|
||||||
+ /* not in TPM mode */
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ if (!global.tpm.tpm_key) {
|
|
||||||
+ Warning ("Could not find tpm_key; initializing engine\n");
|
|
||||||
+ /* no key present; load the dynamic TPM engine */
|
|
||||||
+ if (global.tpm.tpm_engine && global.tpm.tpm_engine[0]) {
|
|
||||||
+ ENGINE_load_dynamic();
|
|
||||||
+ ENGINE *engine = ENGINE_by_id("dynamic");
|
|
||||||
+ if (!engine) {
|
|
||||||
+ memprintf(err, "%s Unable to load the dynamic engine "
|
|
||||||
+ "(needed for loading custom TPM engine)\n",
|
|
||||||
+ err && *err ? *err : "");
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ENGINE_ctrl_cmd_string(engine, "SO_PATH", global.tpm.tpm_engine, 0);
|
|
||||||
+ ENGINE_ctrl_cmd_string(engine, "LOAD", NULL, 0);
|
|
||||||
+ /* stow away for ENGINE cleanup */
|
|
||||||
+ global.tpm.tpm_engine_ref = engine;
|
|
||||||
+
|
|
||||||
+ if (ENGINE_init(engine) != 1) {
|
|
||||||
+ const char *error_str = ERR_error_string(ERR_get_error(), NULL);
|
|
||||||
+ memprintf(err, "%s Unable to init the TPM engine (%s). Err: %s\n",
|
|
||||||
+ err && *err ? *err : "",
|
|
||||||
+ global.tpm.tpm_engine, error_str);
|
|
||||||
+ goto tpm_err;
|
|
||||||
+ }
|
|
||||||
+ EVP_PKEY *pkey = ENGINE_load_private_key(engine,
|
|
||||||
+ global.tpm.tpm_object,
|
|
||||||
+ NULL, NULL);
|
|
||||||
+ if (!pkey) {
|
|
||||||
+ const char *error_str = ERR_error_string(ERR_get_error(), NULL);
|
|
||||||
+ memprintf(err, "%s Unable to load TPM object (%s). Err: %s\n",
|
|
||||||
+ err && *err ? *err : "",
|
|
||||||
+ global.tpm.tpm_object, error_str);
|
|
||||||
+ goto tpm_err;
|
|
||||||
+ }
|
|
||||||
+ global.tpm.tpm_key = pkey;
|
|
||||||
+ }
|
|
||||||
+ else { /* no TPM engine found */
|
|
||||||
+ memprintf(err, "%s TPM engine option not set when TPM mode expected\n",
|
|
||||||
+ err && *err ? *err : "");
|
|
||||||
+ goto tpm_err;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (SSL_CTX_use_PrivateKey(ctx, global.tpm.tpm_key) <= 0){
|
|
||||||
+ const char *error_str = ERR_error_string(ERR_get_error(),
|
|
||||||
+ NULL);
|
|
||||||
+ memprintf(err, "%s Invalid private key provided from TPM engine(%s). Err: %s\n",
|
|
||||||
+ err && *err ? *err : "",
|
|
||||||
+ global.tpm.tpm_object, error_str);
|
|
||||||
+ goto tpm_err;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+tpm_err:
|
|
||||||
+ ENGINE_finish(global.tpm.tpm_engine_ref);
|
|
||||||
+ global.tpm.tpm_engine_ref = NULL;
|
|
||||||
+ EVP_PKEY_free(global.tpm.tpm_key);
|
|
||||||
+ global.tpm.tpm_key = NULL;
|
|
||||||
+ return 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int ssl_sock_load_cert_file(const char *path, struct bind_conf *bind_conf, struct proxy *curproxy, char **sni_filter, int fcount, char **err)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
@@ -1127,26 +1202,54 @@ static int ssl_sock_load_cert_file(const char *path, struct bind_conf *bind_conf
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (SSL_CTX_use_PrivateKey_file(ctx, path, SSL_FILETYPE_PEM) <= 0) {
|
|
||||||
- memprintf(err, "%sunable to load SSL private key from PEM file '%s'.\n",
|
|
||||||
- err && *err ? *err : "", path);
|
|
||||||
- SSL_CTX_free(ctx);
|
|
||||||
- return 1;
|
|
||||||
+ /* NOTE (knasim-wrs): US93721: TPM support
|
|
||||||
+ * This SSL context applies to SSL frontends only.
|
|
||||||
+ * If the TPM option is set then the Private key
|
|
||||||
+ * is stored in TPM.
|
|
||||||
+ *
|
|
||||||
+ * Launch the OpenSSL TPM engine and load the TPM
|
|
||||||
+ * Private Key. The Public key will still be located
|
|
||||||
+ * at the provided path and needs to be loaded as
|
|
||||||
+ * per usual.
|
|
||||||
+ */
|
|
||||||
+ if (global.tpm.tpm_object) {
|
|
||||||
+ ret = ssl_sock_load_tpm_key(ctx, err);
|
|
||||||
+ if (ret > 0) {
|
|
||||||
+ /* tpm configuration failed */
|
|
||||||
+ SSL_CTX_free(ctx);
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- ret = ssl_sock_load_cert_chain_file(ctx, path, bind_conf, sni_filter, fcount);
|
|
||||||
- if (ret <= 0) {
|
|
||||||
- memprintf(err, "%sunable to load SSL certificate from PEM file '%s'.\n",
|
|
||||||
- err && *err ? *err : "", path);
|
|
||||||
- if (ret < 0) /* serious error, must do that ourselves */
|
|
||||||
+ else { /* non TPM mode */
|
|
||||||
+ if (SSL_CTX_use_PrivateKey_file(ctx, path, SSL_FILETYPE_PEM) <= 0) {
|
|
||||||
+ memprintf(err, "%sunable to load SSL private key from PEM file '%s'.\n",
|
|
||||||
+ err && *err ? *err : "", path);
|
|
||||||
SSL_CTX_free(ctx);
|
|
||||||
- return 1;
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (SSL_CTX_check_private_key(ctx) <= 0) {
|
|
||||||
- memprintf(err, "%sinconsistencies between private key and certificate loaded from PEM file '%s'.\n",
|
|
||||||
- err && *err ? *err : "", path);
|
|
||||||
- return 1;
|
|
||||||
+ ret = ssl_sock_load_cert_chain_file(ctx, path, bind_conf, sni_filter, fcount);
|
|
||||||
+ if (ret <= 0) {
|
|
||||||
+ memprintf(err, "%sunable to load SSL certificate from PEM file '%s'.\n",
|
|
||||||
+ err && *err ? *err : "", path);
|
|
||||||
+ if (ret < 0) /* serious error, must do that ourselves */
|
|
||||||
+ SSL_CTX_free(ctx);
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * only match the private key to the public key
|
|
||||||
+ * for non TPM mode. This op would never work for
|
|
||||||
+ * TPM since the private key has been wrapped, whereas
|
|
||||||
+ * the public key is still the original one.
|
|
||||||
+ */
|
|
||||||
+ if (!global.tpm.tpm_object) {
|
|
||||||
+ if (SSL_CTX_check_private_key(ctx) <= 0) {
|
|
||||||
+ memprintf(err, "%sinconsistencies between private key and certificate loaded from PEM file '%s'.\n",
|
|
||||||
+ err && *err ? *err : "", path);
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* we must not free the SSL_CTX anymore below, since it's already in
|
|
||||||
@@ -1725,6 +1828,18 @@ int ssl_sock_prepare_srv_ctx(struct server *srv, struct proxy *curproxy)
|
|
||||||
cfgerr++;
|
|
||||||
return cfgerr;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ /* NOTE (knasim-wrs): US93721: TPM support
|
|
||||||
+ * This SSL context applies to SSL backends only.
|
|
||||||
+ * Since Titanium backends don't support SSL, there
|
|
||||||
+ * is no need to offload these keys in TPM or reuse the
|
|
||||||
+ * same TPM key for the frontend engine.
|
|
||||||
+ *
|
|
||||||
+ * If SSL backends are to be supported in the future,
|
|
||||||
+ * over TPM, then create a new TPM Engine context and
|
|
||||||
+ * load the backend key in TPM, in a similar fashion to
|
|
||||||
+ * the frontend key.
|
|
||||||
+ */
|
|
||||||
if (srv->ssl_ctx.client_crt) {
|
|
||||||
if (SSL_CTX_use_PrivateKey_file(srv->ssl_ctx.ctx, srv->ssl_ctx.client_crt, SSL_FILETYPE_PEM) <= 0) {
|
|
||||||
Alert("config : %s '%s', server '%s': unable to load SSL private key from PEM file '%s'.\n",
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/haproxy-1.5.18-8.el7.src.rpm
|
|
@ -1,6 +0,0 @@
|
|||||||
TAR_NAME=inih
|
|
||||||
GIT_SHA=b1dbff4b0bd1e1f40d237e21011f6dee0ec2fa69
|
|
||||||
VERSION=44
|
|
||||||
|
|
||||||
COPY_LIST="$STX_BASE/downloads/$TAR_NAME-$GIT_SHA.tar.gz"
|
|
||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,45 +0,0 @@
|
|||||||
%global git_sha b1dbff4b0bd1e1f40d237e21011f6dee0ec2fa69
|
|
||||||
|
|
||||||
Summary: inih
|
|
||||||
Name: inih
|
|
||||||
Version: 44
|
|
||||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: New BSD
|
|
||||||
Group: base
|
|
||||||
Packager: Wind River <info@windriver.com>
|
|
||||||
URL: https://github.com/benhoyt/inih/releases/tag/r44
|
|
||||||
Source0: %{name}-%{git_sha}.tar.gz
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: ncurses-static
|
|
||||||
BuildRequires: perl-version
|
|
||||||
|
|
||||||
%define debug_package %{nil}
|
|
||||||
%description
|
|
||||||
Simple .INI file parser written in C
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup
|
|
||||||
|
|
||||||
%build
|
|
||||||
pushd extra > /dev/null
|
|
||||||
make -f Makefile.static
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
%install
|
|
||||||
install -d -m 755 %{buildroot}%{_libdir}
|
|
||||||
install -d -m 755 %{buildroot}%{_includedir}
|
|
||||||
install -d -m 755 %{buildroot}%{_datadir}/inih/
|
|
||||||
install -p -D -m 755 extra/libinih.a %{buildroot}%{_libdir}/libinih.a
|
|
||||||
install -p -D -m 644 ini.h %{buildroot}%{_includedir}/ini.h
|
|
||||||
install -p -D -m 644 LICENSE.txt %{buildroot}%{_datadir}/inih/LICENSE.txt
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_libdir}/*
|
|
||||||
%{_includedir}/*
|
|
||||||
%{_datadir}/*
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,110 +0,0 @@
|
|||||||
From 764ce9e69477b47577fc0231f4a0190b119937f7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Joseph Richard <joseph.richard@windriver.com>
|
|
||||||
Date: Tue, 19 Nov 2019 13:06:43 -0500
|
|
||||||
Subject: [PATCH] Include starlingx initscripts changes
|
|
||||||
|
|
||||||
This is build with build-pkgs --edit initscripts, and then rebased with
|
|
||||||
git rebase -i --root, with all existing meta-patches squashed into this
|
|
||||||
commit, and then the new meta-patch created from the output of
|
|
||||||
git format-patch HEAD~
|
|
||||||
|
|
||||||
Signed-off-by: Joseph Richard <joseph.richard@windriver.com>
|
|
||||||
---
|
|
||||||
SPECS/initscripts.spec | 38 ++++++++++++++++++++++++++++++--------
|
|
||||||
1 file changed, 30 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/initscripts.spec b/SPECS/initscripts.spec
|
|
||||||
index fb0bd96..a446775 100644
|
|
||||||
--- a/SPECS/initscripts.spec
|
|
||||||
+++ b/SPECS/initscripts.spec
|
|
||||||
@@ -4,7 +4,7 @@ Version: 9.49.46
|
|
||||||
# ppp-watch is GPLv2+, everything else is GPLv2
|
|
||||||
License: GPLv2 and GPLv2+
|
|
||||||
Group: System Environment/Base
|
|
||||||
-Release: 1%{?dist}
|
|
||||||
+Release: 1.el7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
URL: https://github.com/fedora-sysv/initscripts
|
|
||||||
Source: https://github.com/fedora-sysv/initscripts/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
|
||||||
@@ -36,6 +36,20 @@ Requires(preun): /sbin/chkconfig
|
|
||||||
BuildRequires: glib2-devel popt-devel gettext pkgconfig systemd
|
|
||||||
Provides: /sbin/service
|
|
||||||
|
|
||||||
+Patch1: support-interface-scriptlets.patch
|
|
||||||
+Patch2: relocate-dhclient-leases-to-var-run.patch
|
|
||||||
+Patch3: dhclient-restrict-interfaces-to-those-on-c.patch
|
|
||||||
+Patch4: support-interface-promisc.patch
|
|
||||||
+Patch5: 0001-dhclient-remove-1-arg.patch
|
|
||||||
+Patch6: 0001-force-delay-check-link-down.patch
|
|
||||||
+Patch7: run-ifdown-on-all-interfaces.patch
|
|
||||||
+Patch8: sysconfig-affirmative-check-for-link-carrier.patch
|
|
||||||
+Patch9: sysconfig-unsafe-usage-of-linkdelay-variable.patch
|
|
||||||
+Patch10: ipv6-static-route-support.patch
|
|
||||||
+Patch11: ifup-eth-stop-waiting-if-link-is-up.patch
|
|
||||||
+Patch12: ifup-alias-scope.patch
|
|
||||||
+Patch13: ifup-alias-check-ipaddr.patch
|
|
||||||
+
|
|
||||||
%description
|
|
||||||
The initscripts package contains basic system scripts used
|
|
||||||
during a boot of the system. It also contains scripts which
|
|
||||||
@@ -55,6 +69,20 @@ Currently, this consists of various memory checking code.
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
+%patch1 -p1
|
|
||||||
+%patch2 -p1
|
|
||||||
+%patch3 -p1
|
|
||||||
+%patch4 -p1
|
|
||||||
+%patch5 -p1
|
|
||||||
+%patch6 -p1
|
|
||||||
+%patch7 -p1
|
|
||||||
+%patch8 -p1
|
|
||||||
+%patch9 -p1
|
|
||||||
+%patch10 -p1
|
|
||||||
+%patch11 -p1
|
|
||||||
+%patch12 -p1
|
|
||||||
+%patch13 -p1
|
|
||||||
+
|
|
||||||
%build
|
|
||||||
make
|
|
||||||
|
|
||||||
@@ -163,10 +191,7 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
/usr/lib/systemd/rhel-*
|
|
||||||
/usr/lib/systemd/system/*
|
|
||||||
/etc/inittab
|
|
||||||
-%dir /etc/rc.d
|
|
||||||
-%dir /etc/rc.d/rc[0-9].d
|
|
||||||
/etc/rc[0-9].d
|
|
||||||
-%dir /etc/rc.d/init.d
|
|
||||||
/etc/rc.d/init.d/*
|
|
||||||
%config(noreplace) /etc/sysctl.conf
|
|
||||||
/usr/lib/sysctl.d/00-system.conf
|
|
||||||
@@ -188,7 +213,6 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
/usr/sbin/ppp-watch
|
|
||||||
%{_mandir}/man*/*
|
|
||||||
%dir %attr(775,root,root) /var/run/netreport
|
|
||||||
-%dir /etc/ppp
|
|
||||||
%dir /etc/ppp/peers
|
|
||||||
/etc/ppp/ip-up
|
|
||||||
/etc/ppp/ip-down
|
|
||||||
@@ -196,8 +220,6 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
/etc/ppp/ip-down.ipv6to4
|
|
||||||
/etc/ppp/ipv6-up
|
|
||||||
/etc/ppp/ipv6-down
|
|
||||||
-%dir /etc/NetworkManager
|
|
||||||
-%dir /etc/NetworkManager/dispatcher.d
|
|
||||||
/etc/NetworkManager/dispatcher.d/00-netreport
|
|
||||||
%doc sysconfig.txt sysvinitfiles static-routes-ipv6 ipv6-tunnel.howto ipv6-6to4.howto changes.ipv6 COPYING
|
|
||||||
%doc examples
|
|
||||||
@@ -207,7 +229,7 @@ rm -rf $RPM_BUILD_ROOT
|
|
||||||
%ghost %attr(0664,root,utmp) /var/run/utmp
|
|
||||||
%ghost %attr(0644,root,root) /etc/sysconfig/kvm
|
|
||||||
%ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/crypttab
|
|
||||||
-%dir /usr/lib/tmpfiles.d
|
|
||||||
+%dir %attr(0755,root,root) /usr/lib/tmpfiles.d
|
|
||||||
/usr/lib/tmpfiles.d/initscripts.conf
|
|
||||||
%dir /usr/libexec/initscripts
|
|
||||||
%dir /usr/libexec/initscripts/legacy-actions
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
0001-Include-starlingx-initscripts-changes.patch
|
|
||||||
meta-dhclient6-remove-one-shot-arg.patch
|
|
@ -1,34 +0,0 @@
|
|||||||
From ea055ff88680ae68f78b8807cef8c76030e3d1de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andre Fernando Zanella Kantek
|
|
||||||
<AndreFernandoZanella.Kantek@windriver.com>
|
|
||||||
Date: Tue, 6 Jul 2021 10:24:21 -0400
|
|
||||||
Subject: [PATCH 1/1] meta dhclient6 remove one shot arg
|
|
||||||
|
|
||||||
Signed-off-by: Andre Fernando Zanella Kantek <AndreFernandoZanella.Kantek@windriver.com>
|
|
||||||
---
|
|
||||||
SPECS/initscripts.spec | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/initscripts.spec b/SPECS/initscripts.spec
|
|
||||||
index a446775..bda0e5c 100644
|
|
||||||
--- a/SPECS/initscripts.spec
|
|
||||||
+++ b/SPECS/initscripts.spec
|
|
||||||
@@ -49,6 +49,7 @@ Patch10: ipv6-static-route-support.patch
|
|
||||||
Patch11: ifup-eth-stop-waiting-if-link-is-up.patch
|
|
||||||
Patch12: ifup-alias-scope.patch
|
|
||||||
Patch13: ifup-alias-check-ipaddr.patch
|
|
||||||
+Patch14: dhclient6-remove-one-shot-arg.patch
|
|
||||||
|
|
||||||
%description
|
|
||||||
The initscripts package contains basic system scripts used
|
|
||||||
@@ -82,6 +83,7 @@ Currently, this consists of various memory checking code.
|
|
||||||
%patch11 -p1
|
|
||||||
%patch12 -p1
|
|
||||||
%patch13 -p1
|
|
||||||
+%patch14 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
make
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 11bc780fc8c7cfc7bbc59dcd84f3735c1cabfd30 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ludovic Beliveau <ludovic.beliveau@windriver.com>
|
|
||||||
Date: Mon, 30 May 2016 10:12:43 -0400
|
|
||||||
Subject: [PATCH 1/1] dhclient remove -1 arg
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-eth | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
|
|
||||||
index fdbbf13..439c4c5 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-eth
|
|
||||||
@@ -212,7 +212,8 @@ if [ -n "${DYNCONFIG}" ] && [ -x /sbin/dhclient ]; then
|
|
||||||
generate_lease_file_name
|
|
||||||
|
|
||||||
# Initialize the dhclient args and obtain the hostname options if needed:
|
|
||||||
- DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient-${DEVICE}.pid"
|
|
||||||
+ # DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient-${DEVICE}.pid"
|
|
||||||
+ DHCLIENTARGS="${DHCLIENTARGS} ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient-${DEVICE}.pid"
|
|
||||||
set_hostname_options DHCLIENTARGS
|
|
||||||
|
|
||||||
echo
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 6afaa4c6e0f4ca0821da986e3e4cc1a0bf56bebb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ludovic Beliveau <ludovic.beliveau@windriver.com>
|
|
||||||
Date: Thu, 9 Jun 2016 23:05:17 -0400
|
|
||||||
Subject: [PATCH 1/1] force-delay-check-link-down
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/network-functions | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
|
|
||||||
index 080101b..798f28a 100644
|
|
||||||
--- a/sysconfig/network-scripts/network-functions
|
|
||||||
+++ b/sysconfig/network-scripts/network-functions
|
|
||||||
@@ -470,7 +470,7 @@ check_link_down ()
|
|
||||||
ip link set dev $1 up >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
timeout=0
|
|
||||||
- delay=10
|
|
||||||
+ delay=20
|
|
||||||
[ -n "$LINKDELAY" ] && delay=$(($LINKDELAY * 2))
|
|
||||||
while [ $timeout -le $delay ]; do
|
|
||||||
[ "$(cat /sys/class/net/$REALDEVICE/carrier 2>/dev/null)" != "0" ] && return 1
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
|||||||
From bafc4d1f7971edbe7cd411fbe2ee6876ded35c6e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Allain Legacy <allain.legacy@windriver.com>
|
|
||||||
Date: Thu, 14 Apr 2016 12:04:55 -0400
|
|
||||||
Subject: [PATCH] CGTS-3416: dhclient: restrict interfaces to those on command
|
|
||||||
line only
|
|
||||||
|
|
||||||
By default, the dhclient process does not respect the list of interfaces
|
|
||||||
supplied at the command line. It configures any interfaces found to be
|
|
||||||
specified in the config file. Since we customize options for each interface in
|
|
||||||
our config file and run a separate dhclient process for each interface we end
|
|
||||||
up with multiple dhclient processes that each service all interfaces. This is
|
|
||||||
undesirable because it is possible that a request is sent by process A but
|
|
||||||
received by process B. This leads to lease expiry events even though a valid
|
|
||||||
request packet was returned by the server.
|
|
||||||
|
|
||||||
This change introduces a "--restrict-interfaces" option to the dhclient process
|
|
||||||
to force it to ignore all interfaces in config files other than those specified
|
|
||||||
at the command line.
|
|
||||||
|
|
||||||
To activate this change our version of ifup/ifdown has been modified to
|
|
||||||
pass the "--restrict-interfaces" to dhclient as well as to request that each
|
|
||||||
process use its own lease file to avoid file corruption.
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifdown-eth | 2 +-
|
|
||||||
sysconfig/network-scripts/ifup-eth | 4 ++--
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth
|
|
||||||
index 7ccbddf..5b75162 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifdown-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifdown-eth
|
|
||||||
@@ -92,7 +92,7 @@ for VER in "" 6 ; do
|
|
||||||
dhcpid=$(cat /var/run/dhclient$VER-${DEVICE}.pid)
|
|
||||||
generate_lease_file_name $VER
|
|
||||||
if is_true "$DHCPRELEASE"; then
|
|
||||||
- /sbin/dhclient -r -lf ${LEASEFILE} -pf /var/run/dhclient$VER-${DEVICE}.pid ${DEVICE} >/dev/null 2>&1
|
|
||||||
+ /sbin/dhclient -r -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient$VER-${DEVICE}.pid ${DEVICE} >/dev/null 2>&1
|
|
||||||
retcode=$?
|
|
||||||
else
|
|
||||||
kill $dhcpid >/dev/null 2>&1
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
|
|
||||||
index 3da5c16..9bcf57f 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-eth
|
|
||||||
@@ -204,7 +204,7 @@ if [ -n "${DYNCONFIG}" ] && [ -x /sbin/dhclient ]; then
|
|
||||||
generate_lease_file_name
|
|
||||||
|
|
||||||
# Initialize the dhclient args and obtain the hostname options if needed:
|
|
||||||
- DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"
|
|
||||||
+ DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient-${DEVICE}.pid"
|
|
||||||
set_hostname_options DHCLIENTARGS
|
|
||||||
|
|
||||||
echo
|
|
||||||
@@ -355,7 +355,7 @@ if is_true "${DHCPV6C}" && [ -x /sbin/dhclient ]; then
|
|
||||||
echo -n $"Determining IPv6 information for ${DEVICE}..."
|
|
||||||
|
|
||||||
# Initialize the dhclient args for IPv6 and obtain the hostname options if needed:
|
|
||||||
- DHCLIENTARGS="-6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient6-${DEVICE}.pid ${DEVICE}"
|
|
||||||
+ DHCLIENTARGS="-6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient6-${DEVICE}.pid ${DEVICE}"
|
|
||||||
set_hostname_options DHCLIENTARGS
|
|
||||||
|
|
||||||
if /sbin/dhclient $DHCLIENTARGS; then
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From b6b206cdba982d8152191e8e795d15ae29ed993e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andre Fernando Zanella Kantek
|
|
||||||
<AndreFernandoZanella.Kantek@windriver.com>
|
|
||||||
Date: Tue, 6 Jul 2021 10:17:40 -0400
|
|
||||||
Subject: [PATCH 1/1] dhclient6 remove one shot arg
|
|
||||||
|
|
||||||
Signed-off-by: Andre Fernando Zanella Kantek <AndreFernandoZanella.Kantek@windriver.com>
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-eth | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
|
|
||||||
index bf3f96b..cb87fd6 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-eth
|
|
||||||
@@ -364,7 +364,7 @@ if is_true "${DHCPV6C}" && [ -x /sbin/dhclient ]; then
|
|
||||||
echo -n $"Determining IPv6 information for ${DEVICE}..."
|
|
||||||
|
|
||||||
# Initialize the dhclient args for IPv6 and obtain the hostname options if needed:
|
|
||||||
- DHCLIENTARGS="-6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient6-${DEVICE}.pid ${DEVICE}"
|
|
||||||
+ DHCLIENTARGS="-6 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} --restrict-interfaces -pf /var/run/dhclient6-${DEVICE}.pid ${DEVICE}"
|
|
||||||
set_hostname_options DHCLIENTARGS
|
|
||||||
|
|
||||||
if /sbin/dhclient $DHCLIENTARGS; then
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From a45766732beaa475d48907824666e501bacc69db Mon Sep 17 00:00:00 2001
|
|
||||||
From: Teresa Ho <teresa.ho@windriver.com>
|
|
||||||
Date: Wed, 25 Sep 2019 15:56:36 -0400
|
|
||||||
Subject: [PATCH 1/1] Patch14: ifup-alias-check-ipaddr
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-aliases | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-aliases b/sysconfig/network-scripts/ifup-aliases
|
|
||||||
index 9086763..40454ed 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-aliases
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-aliases
|
|
||||||
@@ -175,7 +175,7 @@ function new_interface ()
|
|
||||||
ipseen_${IPGLOP}=$FILE; devseen_${DEVNUM}=$FILE;
|
|
||||||
";
|
|
||||||
|
|
||||||
- if [ -n "$ipseen" ]; then
|
|
||||||
+ if [ -n "$IPADDR" -a -n "$ipseen" ]; then
|
|
||||||
net_log $"error in $FILE: already seen ipaddr $IPADDR in $ipseen"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From 59e30a344df4b661f30c0a5c629dbd13e9d88e8f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Teresa Ho <teresa.ho@windriver.com>
|
|
||||||
Date: Mon, 17 Dec 2018 17:47:18 -0500
|
|
||||||
Subject: [PATCH 1/1] WRS: Patch13: ifup-alias-scope.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-aliases | 8 +++++++-
|
|
||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-aliases b/sysconfig/network-scripts/ifup-aliases
|
|
||||||
index 52d43ea..9086763 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-aliases
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-aliases
|
|
||||||
@@ -277,8 +277,14 @@ function new_interface ()
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
+ if [ "${parent_device}" = "lo" ]; then
|
|
||||||
+ SCOPE="scope host"
|
|
||||||
+ else
|
|
||||||
+ SCOPE=${SCOPE:-}
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
/sbin/ip addr add ${IPADDR}/${PREFIX} brd ${BROADCAST} \
|
|
||||||
- dev ${parent_device} label ${DEVICE}
|
|
||||||
+ dev ${parent_device} ${SCOPE} label ${DEVICE}
|
|
||||||
|
|
||||||
# update ARP cache of neighboring computers:
|
|
||||||
if ! is_false "${ARPUPDATE}" && [ "${REALDEVICE}" != "lo" ]; then
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
From 358cb3c0c8feed5ecfaa8ebfc56b7742b88bb14a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Denny Khoerniawan <denny.khoerniawan@windriver.com>
|
|
||||||
Date: Wed, 15 Nov 2017 14:02:49 -0500
|
|
||||||
Subject: [PATCH] ifup-eth stop waiting if link is up
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-eth | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
|
|
||||||
index 192ad18..4b8b992 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-eth
|
|
||||||
@@ -168,7 +168,7 @@ if [ "$ISALIAS" = no ] && is_bonding_device ${DEVICE} ; then
|
|
||||||
/sbin/ifup ${device##*/} || net_log "Unable to start slave device ${device##*/} for master ${DEVICE}." warning
|
|
||||||
done
|
|
||||||
|
|
||||||
- [ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
|
|
||||||
+ check_link_down ${DEVICE}
|
|
||||||
|
|
||||||
# add the bits to setup the needed post enslavement parameters
|
|
||||||
for arg in $BONDING_OPTS ; do
|
|
||||||
@@ -188,7 +188,7 @@ if [ -n "${BRIDGE}" ] && [ -x /usr/sbin/brctl ]; then
|
|
||||||
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null
|
|
||||||
/sbin/ip link set dev ${DEVICE} up
|
|
||||||
ethtool_set
|
|
||||||
- [ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
|
|
||||||
+ check_link_down ${DEVICE}
|
|
||||||
/usr/sbin/brctl addif -- ${BRIDGE} ${DEVICE}
|
|
||||||
# add the bits to setup driver parameters here
|
|
||||||
for arg in $BRIDGING_OPTS ; do
|
|
||||||
@@ -244,7 +244,7 @@ else
|
|
||||||
# enable device without IP, useful for e.g. PPPoE
|
|
||||||
ip link set dev ${REALDEVICE} up
|
|
||||||
ethtool_set
|
|
||||||
- [ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
|
|
||||||
+ check_link_down ${REALDEVICE}
|
|
||||||
else
|
|
||||||
|
|
||||||
expand_config
|
|
||||||
@@ -259,7 +259,7 @@ else
|
|
||||||
|
|
||||||
ethtool_set
|
|
||||||
|
|
||||||
- [ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
|
|
||||||
+ check_link_down ${REAL_DEVICE}
|
|
||||||
|
|
||||||
if [ "${DEVICE}" = "lo" ]; then
|
|
||||||
SCOPE="scope host"
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From e47e3faa2a3a35018e111dbd061a2e529cf77f9c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kevin Smith <kevin.smith@windriver.com>
|
|
||||||
Date: Tue, 17 Oct 2017 10:46:00 -0500
|
|
||||||
Subject: [PATCH 1/1] ipv6 static route support
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifup-routes | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-routes b/sysconfig/network-scripts/ifup-routes
|
|
||||||
index ff8d5b5..a82d053 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-routes
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-routes
|
|
||||||
@@ -32,9 +32,11 @@ handle_ip_file() {
|
|
||||||
if [ "$type" != "$t" ]; then
|
|
||||||
proto="-6"
|
|
||||||
fi
|
|
||||||
+ # remove proto input from below so we can keep
|
|
||||||
+ # ipv6 routes in a route-<if> file as well.
|
|
||||||
{ cat "$file" ; echo ; } | while read line; do
|
|
||||||
if [[ ! "$line" =~ $MATCH ]]; then
|
|
||||||
- /sbin/ip $proto $type add $line
|
|
||||||
+ /sbin/ip $type add $line
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From 6a3a3047ad47570ccdb9b758c8417a66447be697 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Thu, 5 Oct 2017 12:31:18 -0400
|
|
||||||
Subject: [PATCH 2/9] WRS: Patch5-relocate-dhclient-leases-to-var-run.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/network-functions | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
|
|
||||||
index 1867c38..080101b 100644
|
|
||||||
--- a/sysconfig/network-scripts/network-functions
|
|
||||||
+++ b/sysconfig/network-scripts/network-functions
|
|
||||||
@@ -65,11 +65,11 @@ get_uuid_by_config ()
|
|
||||||
generate_lease_file_name ()
|
|
||||||
{
|
|
||||||
local ver=$1
|
|
||||||
- LEASEFILE="/var/lib/dhclient/dhclient$ver-${DEVICE}.leases"
|
|
||||||
+ LEASEFILE="/var/run/dhclient$ver-${DEVICE}.leases"
|
|
||||||
if [ -f $LEASEFILE ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
- LEASEFILE="/var/lib/dhclient/dhclient$ver-${UUID}-${DEVICE}.lease"
|
|
||||||
+ LEASEFILE="/var/run/dhclient$ver-${UUID}-${DEVICE}.lease"
|
|
||||||
}
|
|
||||||
|
|
||||||
generate_config_file_name ()
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 76a5f892c132eed05a6cbffbdba3306e50b6a672 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Thu, 5 Oct 2017 12:40:38 -0400
|
|
||||||
Subject: [PATCH 7/9] WRS: Patch10-run-ifdown-on-all-interfaces.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
rc.d/init.d/network | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/rc.d/init.d/network b/rc.d/init.d/network
|
|
||||||
index a8deed3..852ef94 100755
|
|
||||||
--- a/rc.d/init.d/network
|
|
||||||
+++ b/rc.d/init.d/network
|
|
||||||
@@ -228,6 +228,9 @@ stop)
|
|
||||||
if ! check_device_down $DEVICE; then
|
|
||||||
action $"Shutting down interface $i: " ./ifdown $i boot
|
|
||||||
[ $? -ne 0 ] && rc=1
|
|
||||||
+ else
|
|
||||||
+ action $"Shutting down non-UP interface $i: " ./ifdown $i boot
|
|
||||||
+ logger $"Running ifdown on non-UP interface $i"
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
done
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
From f50fd7a0a9b53ba475d85670a5428876e13dac36 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Thu, 5 Oct 2017 12:37:06 -0400
|
|
||||||
Subject: [PATCH 4/9] WRS: Patch7-support-interface-promisc.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifdown-eth | 5 +++++
|
|
||||||
sysconfig/network-scripts/ifup-eth | 8 ++++++++
|
|
||||||
2 files changed, 13 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth
|
|
||||||
index 5b75162..60f1ba2 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifdown-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifdown-eth
|
|
||||||
@@ -181,4 +181,9 @@ if [ -n "$VLAN" ]; then
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Support PROMISC
|
|
||||||
+if [ "${PROMISC}" = yes ]; then
|
|
||||||
+ ip link set dev ${DEVICE} promisc off
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
exit $retcode
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
|
|
||||||
index 9bcf57f..fdbbf13 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-eth
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-eth
|
|
||||||
@@ -128,6 +128,11 @@ if [ -n "${MTU}" ]; then
|
|
||||||
ip link set dev ${DEVICE} mtu ${MTU}
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Support PROMISC
|
|
||||||
+if [ "${PROMISC}" = yes ]; then
|
|
||||||
+ ip link set dev ${DEVICE} promisc on
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# is the device wireless? If so, configure wireless device specifics
|
|
||||||
is_wireless_device ${DEVICE} && . ./ifup-wireless
|
|
||||||
|
|
||||||
@@ -147,6 +152,9 @@ if [ "${SLAVE}" = yes -a "${ISALIAS}" = no -a "${MASTER}" != "" ]; then
|
|
||||||
}
|
|
||||||
ethtool_set
|
|
||||||
|
|
||||||
+ # WRS: Flush addresses
|
|
||||||
+ ip addr flush dev ${DEVICE}
|
|
||||||
+
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
|||||||
From b5fb31139b18385f295debe8acdb25c23b6f8b87 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Thu, 5 Oct 2017 12:30:03 -0400
|
|
||||||
Subject: [PATCH 1/9] WRS: Patch4-support-interface-scriptlets.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/ifdown | 6 ++++++
|
|
||||||
sysconfig/network-scripts/ifdown-post | 12 ++++++++++++
|
|
||||||
sysconfig/network-scripts/ifup | 6 ++++++
|
|
||||||
sysconfig/network-scripts/ifup-post | 12 ++++++++++++
|
|
||||||
4 files changed, 36 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/ifdown b/sysconfig/network-scripts/ifdown
|
|
||||||
index 90b1c83..88c1d74 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifdown
|
|
||||||
+++ b/sysconfig/network-scripts/ifdown
|
|
||||||
@@ -58,6 +58,12 @@ if [ -x /sbin/ifdown-pre-local ]; then
|
|
||||||
/sbin/ifdown-pre-local ${DEVICE}
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Execute pre-down commands.
|
|
||||||
+if [ -n "$pre_down" ]; then
|
|
||||||
+ eval $pre_down
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}"
|
|
||||||
|
|
||||||
if [ ! -x ${OTHERSCRIPT} ]; then
|
|
||||||
diff --git a/sysconfig/network-scripts/ifdown-post b/sysconfig/network-scripts/ifdown-post
|
|
||||||
index 8b56e14..bd4198a 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifdown-post
|
|
||||||
+++ b/sysconfig/network-scripts/ifdown-post
|
|
||||||
@@ -69,4 +69,16 @@ if [ -x /sbin/ifdown-local ]; then
|
|
||||||
/sbin/ifdown-local ${DEVICE}
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Execute down commands.
|
|
||||||
+if [ -n "$down" ]; then
|
|
||||||
+ eval $down
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+# WRS: Execute post-down commands.
|
|
||||||
+if [ -n "$post_down" ]; then
|
|
||||||
+ eval $post_down
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
exit 0
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup
|
|
||||||
index d25db5a..07c63a5 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup
|
|
||||||
+++ b/sysconfig/network-scripts/ifup
|
|
||||||
@@ -151,6 +151,12 @@ if [ -x /sbin/ifup-pre-local ]; then
|
|
||||||
/sbin/ifup-pre-local ${CONFIG} $2
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Execute pre-up commands.
|
|
||||||
+if [ -n "$pre_up" ]; then
|
|
||||||
+ eval $pre_up
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"
|
|
||||||
|
|
||||||
if [ ! -x ${OTHERSCRIPT} ]; then
|
|
||||||
diff --git a/sysconfig/network-scripts/ifup-post b/sysconfig/network-scripts/ifup-post
|
|
||||||
index ab0710b..3b76492 100755
|
|
||||||
--- a/sysconfig/network-scripts/ifup-post
|
|
||||||
+++ b/sysconfig/network-scripts/ifup-post
|
|
||||||
@@ -148,4 +148,16 @@ if [ -x /sbin/ifup-local ]; then
|
|
||||||
/sbin/ifup-local ${DEVICE}
|
|
||||||
fi
|
|
||||||
|
|
||||||
+# WRS: Execute up commands.
|
|
||||||
+if [ -n "$up" ]; then
|
|
||||||
+ eval $up
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+# WRS: Execute post-up commands.
|
|
||||||
+if [ -n "$post_up" ]; then
|
|
||||||
+ eval $post_up
|
|
||||||
+ [ "$?" != "0" ] && exit 1
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
exit 0
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
From cd3e0b0fea9588c987db119cb6d7840ace399368 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Allain Legacy <allain.legacy@windriver.com>
|
|
||||||
Date: Thu, 17 Nov 2016 08:27:42 -0500
|
|
||||||
Subject: [PATCH] sysconfig: affirmative check for link carrier
|
|
||||||
|
|
||||||
The /sys/class/net/<iface>/carrier attribute is supposed to return 0 or 1 to
|
|
||||||
indicate whether a link carrier is present or not. This holds true for regular
|
|
||||||
ethernet devices but for special devices, such as VLAN interfaces, it appears
|
|
||||||
to be possible that it returns an error on stderr and nothing on stdout in some
|
|
||||||
scenarios. One such scenario is if the lower interface of a VLAN is
|
|
||||||
administratively down then checking the carrier status of the VLAN returns
|
|
||||||
"invalid argument".
|
|
||||||
|
|
||||||
Because of the way the check_link_down() function is currently coded a failure
|
|
||||||
to produce any output on stdout is interpreted as a sign that the link carrier
|
|
||||||
is present. That is, the empty string "" is not equal to "0" therefore the
|
|
||||||
check passes.
|
|
||||||
|
|
||||||
To avoid this scenario we are changing this to a more affirmative check so that
|
|
||||||
it won't actually pass until stdout returns "1".
|
|
||||||
|
|
||||||
Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/network-functions | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
|
|
||||||
index d08f618..13cf4de 100644
|
|
||||||
--- a/sysconfig/network-scripts/network-functions
|
|
||||||
+++ b/sysconfig/network-scripts/network-functions
|
|
||||||
@@ -473,7 +473,7 @@ check_link_down ()
|
|
||||||
delay=20
|
|
||||||
[ -n "$LINKDELAY" ] && delay=$(($LINKDELAY * 2))
|
|
||||||
while [ $timeout -le $delay ]; do
|
|
||||||
- [ "$(cat /sys/class/net/$REALDEVICE/carrier 2>/dev/null)" != "0" ] && return 1
|
|
||||||
+ [ "$(cat /sys/class/net/$REALDEVICE/carrier 2>/dev/null)" == "1" ] && return 1
|
|
||||||
sleep 0.5
|
|
||||||
timeout=$((timeout+1))
|
|
||||||
done
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From 9b12287d8dade60c012969db3ae56b36d1e50966 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Allain Legacy <allain.legacy@windriver.com>
|
|
||||||
Date: Thu, 17 Nov 2016 11:37:38 -0500
|
|
||||||
Subject: [PATCH] sysconfig: unsafe usage of linkdelay variable
|
|
||||||
|
|
||||||
If the LINKDELAY variable is an alphabetic string instead of an integer then
|
|
||||||
the calculation in check_link_down() causes delay to be set to 0. That causes
|
|
||||||
the loop to never execute and for the caller to think that the link is always
|
|
||||||
down.
|
|
||||||
|
|
||||||
This does not address but is related to CGTS-5821
|
|
||||||
|
|
||||||
Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
|
|
||||||
---
|
|
||||||
sysconfig/network-scripts/network-functions | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
|
|
||||||
index 13cf4de..4bcc48f 100644
|
|
||||||
--- a/sysconfig/network-scripts/network-functions
|
|
||||||
+++ b/sysconfig/network-scripts/network-functions
|
|
||||||
@@ -471,7 +471,7 @@ check_link_down ()
|
|
||||||
fi
|
|
||||||
timeout=0
|
|
||||||
delay=20
|
|
||||||
- [ -n "$LINKDELAY" ] && delay=$(($LINKDELAY * 2))
|
|
||||||
+ [[ $LINKDELAY =~ ^[0-9]+$ ]] && delay=$(($LINKDELAY * 2))
|
|
||||||
while [ $timeout -le $delay ]; do
|
|
||||||
[ "$(cat /sys/class/net/$REALDEVICE/carrier 2>/dev/null)" == "1" ] && return 1
|
|
||||||
sleep 0.5
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/initscripts-9.49.46-1.el7.src.rpm
|
|
@ -1,2 +0,0 @@
|
|||||||
COPY_LIST="files/*"
|
|
||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,24 +0,0 @@
|
|||||||
From d63b56b8511b808a4c23c4c15ed81e368f9b020c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Don Penney <don.penney@windriver.com>
|
|
||||||
Date: Tue, 27 Sep 2016 10:59:20 -0400
|
|
||||||
Subject: [PATCH] Update package versioning for TIS format
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/libevent.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/libevent.spec b/SPECS/libevent.spec
|
|
||||||
index 9c6cc3e..7d98b8f 100644
|
|
||||||
--- a/SPECS/libevent.spec
|
|
||||||
+++ b/SPECS/libevent.spec
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
Name: libevent
|
|
||||||
Version: 2.0.21
|
|
||||||
-Release: 4%{?dist}
|
|
||||||
+Release: 4.el7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
Summary: Abstract asynchronous event notification library
|
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
spec-include-TiS-patches.patch
|
|
||||||
0001-Update-package-versioning-for-TIS-format.patch
|
|
@ -1,20 +0,0 @@
|
|||||||
diff --git a/SPECS/libevent.spec b/SPECS/libevent.spec
|
|
||||||
index fd59ca3..9c6cc3e 100644
|
|
||||||
--- a/SPECS/libevent.spec
|
|
||||||
+++ b/SPECS/libevent.spec
|
|
||||||
@@ -13,6 +13,7 @@ BuildRequires: doxygen openssl-devel
|
|
||||||
Patch00: libevent-2.0.10-stable-configure.patch
|
|
||||||
# Disable network tests
|
|
||||||
Patch01: libevent-nonettests.patch
|
|
||||||
+Patch02: libevent-ipv6-client-socket.patch
|
|
||||||
|
|
||||||
%description
|
|
||||||
The libevent API provides a mechanism to execute a callback function
|
|
||||||
@@ -49,6 +50,7 @@ need to install %{name}-doc.
|
|
||||||
# 477685 - libevent-devel multilib conflict
|
|
||||||
%patch00 -p1
|
|
||||||
%patch01 -p1 -b .nonettests
|
|
||||||
+%patch02 -p1
|
|
||||||
|
|
||||||
%build
|
|
||||||
%configure \
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/libevent-2.0.21-4.el7.src.rpm
|
|
@ -1,2 +0,0 @@
|
|||||||
COPY_LIST="$CGCS_BASE/downloads/dtc-1.4.4.tar.gz"
|
|
||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,51 +0,0 @@
|
|||||||
Summary: libfdt
|
|
||||||
Name: libfdt
|
|
||||||
Version: 1.4.4
|
|
||||||
Release: 0%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: GPLv2
|
|
||||||
Group: base
|
|
||||||
Packager: Wind River <info@windriver.com>
|
|
||||||
URL: unknown
|
|
||||||
Source0: dtc-1.4.4.tar.gz
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: bison
|
|
||||||
BuildRequires: flex
|
|
||||||
|
|
||||||
%define debug_package %{nil}
|
|
||||||
|
|
||||||
%description
|
|
||||||
Device Tree Compiler
|
|
||||||
|
|
||||||
%package -n libfdt-devel
|
|
||||||
Summary: libfdt devel
|
|
||||||
|
|
||||||
%description -n libfdt-devel
|
|
||||||
libfdt devel
|
|
||||||
|
|
||||||
%define prefix /usr/
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -n dtc-1.4.4
|
|
||||||
|
|
||||||
%build
|
|
||||||
make
|
|
||||||
|
|
||||||
%install
|
|
||||||
make install PREFIX=%{buildroot}%{prefix}
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
|
||||||
%license GPL README.license
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
|
|
||||||
# TODO: Devel shouldn't contain bin
|
|
||||||
%files -n libfdt-devel
|
|
||||||
%license GPL README.license
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{prefix}/bin/*
|
|
||||||
%dir %{prefix}/include
|
|
||||||
%{prefix}/include/*
|
|
||||||
%{prefix}/lib/*
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
@ -1,4 +0,0 @@
|
|||||||
spec-include-TiS-changes.patch
|
|
||||||
Update-package-versioning-for-TIS-format.patch
|
|
||||||
spec-check-content-length.patch
|
|
||||||
meta_add_support_for_tpm.patch
|
|
@ -1,27 +0,0 @@
|
|||||||
From 1c4a8d83d96eab943d1cb7b4f0d9b7175e6858f1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 20 Mar 2017 10:21:28 -0400
|
|
||||||
Subject: [PATCH] WRS: 0001-Update-package-versioning-for-TIS-format.patch
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
SPECS/lighttpd.spec
|
|
||||||
---
|
|
||||||
SPECS/lighttpd.spec | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/lighttpd.spec b/SPECS/lighttpd.spec
|
|
||||||
index 2f7b261..2553b27 100644
|
|
||||||
--- a/SPECS/lighttpd.spec
|
|
||||||
+++ b/SPECS/lighttpd.spec
|
|
||||||
@@ -46,7 +46,7 @@
|
|
||||||
Summary: Lightning fast webserver with light system requirements
|
|
||||||
Name: lighttpd
|
|
||||||
Version: 1.4.54
|
|
||||||
-Release: 1%{?dist}
|
|
||||||
+Release: 1.el7%{?_tis_dist}.%{tis_patch_ver}
|
|
||||||
License: BSD
|
|
||||||
Group: System Environment/Daemons
|
|
||||||
URL: http://www.lighttpd.net/
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From 2cfc139ffabdb52c82834be2f88333f99c181677 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kam Nasim <kam.nasim@windriver.com>
|
|
||||||
Date: Tue, 28 Mar 2017 17:33:34 -0400
|
|
||||||
Subject: [PATCH] Adding support for TPM 2.0
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/lighttpd.spec | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/lighttpd.spec b/SPECS/lighttpd.spec
|
|
||||||
index c27f78f..bc11989 100644
|
|
||||||
--- a/SPECS/lighttpd.spec
|
|
||||||
+++ b/SPECS/lighttpd.spec
|
|
||||||
@@ -76,6 +76,7 @@ Patch3: lighttpd-1.4.39-socket.patch
|
|
||||||
|
|
||||||
# WRS Patches
|
|
||||||
Patch100: check-content-length.patch
|
|
||||||
+Patch101: lighttpd-tpm-support.patch
|
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
|
||||||
# For the target poweredby.png image (skip requirement + provide image on EL5)
|
|
||||||
@@ -191,6 +192,7 @@ Authentication module for lighttpd that uses PAM.
|
|
||||||
|
|
||||||
# WRS Patches
|
|
||||||
%patch100 -p1 -b .content_length
|
|
||||||
+%patch101 -p1 -b .tpm_support
|
|
||||||
|
|
||||||
#install -p -m 0644 %{SOURCE100} src/mod_geoip.c
|
|
||||||
#install -p -m 0644 %{SOURCE101} mod_geoip.txt
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
From 730a5321581e70790da4e94085698fd299072be5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 20 Mar 2017 10:21:28 -0400
|
|
||||||
Subject: [PATCH] WRS: spec-check-content-length.patch
|
|
||||||
|
|
||||||
Conflicts:
|
|
||||||
SPECS/lighttpd.spec
|
|
||||||
---
|
|
||||||
SPECS/lighttpd.spec | 8 ++++++++
|
|
||||||
1 file changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/SPECS/lighttpd.spec b/SPECS/lighttpd.spec
|
|
||||||
index 2553b27..c27f78f 100644
|
|
||||||
--- a/SPECS/lighttpd.spec
|
|
||||||
+++ b/SPECS/lighttpd.spec
|
|
||||||
@@ -73,6 +73,10 @@ Patch3: lighttpd-1.4.39-socket.patch
|
|
||||||
#Patch7: lighttpd-1.4.42-bignum.patch
|
|
||||||
#Patch8: lighttpd-1.4.43-mysql.patch
|
|
||||||
#Patch9: lighttpd-1.4.48-autoconf.patch
|
|
||||||
+
|
|
||||||
+# WRS Patches
|
|
||||||
+Patch100: check-content-length.patch
|
|
||||||
+
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
|
||||||
# For the target poweredby.png image (skip requirement + provide image on EL5)
|
|
||||||
%if %{with systemlogos}
|
|
||||||
@@ -184,6 +188,10 @@ Authentication module for lighttpd that uses PAM.
|
|
||||||
#%patch7 -p0 -b .bignum
|
|
||||||
#%patch8 -p0 -b .mysql
|
|
||||||
#%patch9 -p0 -b .autoconf
|
|
||||||
+
|
|
||||||
+# WRS Patches
|
|
||||||
+%patch100 -p1 -b .content_length
|
|
||||||
+
|
|
||||||
#install -p -m 0644 %{SOURCE100} src/mod_geoip.c
|
|
||||||
#install -p -m 0644 %{SOURCE101} mod_geoip.txt
|
|
||||||
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
|||||||
From 8f91c53ae95b97e12d4a7b16fac8f3d5195ccd52 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Scott Little <scott.little@windriver.com>
|
|
||||||
Date: Mon, 20 Mar 2017 10:21:28 -0400
|
|
||||||
Subject: [PATCH 1/4] WRS: spec-include-TiS-changes.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
SPECS/lighttpd.spec | 29 ++++++++++++++---------------
|
|
||||||
1 file changed, 14 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/SPECS/lighttpd.spec b/SPECS/lighttpd.spec
|
|
||||||
index de52e46..7acdc84 100644
|
|
||||||
--- a/SPECS/lighttpd.spec
|
|
||||||
+++ b/SPECS/lighttpd.spec
|
|
||||||
@@ -62,6 +62,7 @@ Source13: http://www.lighttpd.net/light_logo.png
|
|
||||||
Source14: lighttpd-empty.png
|
|
||||||
#Source100: lighttpd-mod_geoip.c
|
|
||||||
#Source101: lighttpd-mod_geoip.txt
|
|
||||||
+
|
|
||||||
Patch0: lighttpd-1.4.39-defaultconf.patch
|
|
||||||
#Patch1: lighttpd-1.4.40-mod_geoip.patch
|
|
||||||
Patch2: lighttpd-1.4.54-system-crypto-policy.patch
|
|
||||||
@@ -194,17 +195,19 @@ autoreconf -if
|
|
||||||
--libdir='%{_libdir}/lighttpd' \
|
|
||||||
%{confswitch mysql} \
|
|
||||||
%{confswitch pam} \
|
|
||||||
- %{confswitch ldap} \
|
|
||||||
+ --without-ldap \
|
|
||||||
%{confswitch attr} \
|
|
||||||
- %{confswitch openssl} \
|
|
||||||
+ --with-openssl \
|
|
||||||
%{confswitch kerberos5} \
|
|
||||||
- %{confswitch pcre} \
|
|
||||||
+ --with-pcre \
|
|
||||||
%{confswitch fam} \
|
|
||||||
- %{?with_webdavprops:--with-webdav-props} \
|
|
||||||
- %{?with_webdavlocks:--with-webdav-locks} \
|
|
||||||
+ --without-webdav-props \
|
|
||||||
+ --without-webdav-locks \
|
|
||||||
%{confswitch gdbm} \
|
|
||||||
- %{confswitch memcache} \
|
|
||||||
- %{confswitch lua} \
|
|
||||||
+ --without-memcache \
|
|
||||||
+ --without-lua \
|
|
||||||
+ --without-bzip2 \
|
|
||||||
+ --disable-static \
|
|
||||||
%{confswitch geoip} \
|
|
||||||
%{confswitch krb5}
|
|
||||||
make %{?_smp_mflags}
|
|
||||||
@@ -223,13 +226,14 @@ install -D -p -m 0644 %{SOURCE2} \
|
|
||||||
%{buildroot}%{_sysconfdir}/php.d/lighttpd.ini
|
|
||||||
|
|
||||||
# Install our own init script (included one is old style) or systemd service
|
|
||||||
-%if %{with systemd}
|
|
||||||
+#%if %{with systemd}
|
|
||||||
install -D -p -m 0644 %{SOURCE4} \
|
|
||||||
%{buildroot}%{_unitdir}/lighttpd.service
|
|
||||||
-%else
|
|
||||||
+#%else
|
|
||||||
+mkdir -p /etc/rc.d/init.d
|
|
||||||
install -D -p -m 0755 %{SOURCE3} \
|
|
||||||
%{buildroot}%{_sysconfdir}/rc.d/init.d/lighttpd
|
|
||||||
-%endif
|
|
||||||
+#%endif
|
|
||||||
|
|
||||||
# Install our own default web page and images
|
|
||||||
mkdir -p %{buildroot}%{webroot}
|
|
||||||
@@ -267,11 +271,9 @@ echo 'D /var/run/lighttpd 0750 lighttpd lighttpd -' > \
|
|
||||||
%{buildroot}%{_sysconfdir}/tmpfiles.d/lighttpd.conf
|
|
||||||
%endif
|
|
||||||
|
|
||||||
-
|
|
||||||
%clean
|
|
||||||
rm -rf %{buildroot}
|
|
||||||
|
|
||||||
-
|
|
||||||
%pre
|
|
||||||
/usr/sbin/useradd -s /sbin/nologin -M -r -d %{webroot} \
|
|
||||||
-c 'lighttpd web server' lighttpd &>/dev/null || :
|
|
||||||
@@ -315,11 +317,8 @@ fi
|
|
||||||
%config %{_sysconfdir}/lighttpd/conf.d/mod.template
|
|
||||||
%config %{_sysconfdir}/lighttpd/vhosts.d/vhosts.template
|
|
||||||
%config(noreplace) %{_sysconfdir}/logrotate.d/lighttpd
|
|
||||||
-%if %{with systemd}
|
|
||||||
%{_unitdir}/lighttpd.service
|
|
||||||
-%else
|
|
||||||
%{_sysconfdir}/rc.d/init.d/lighttpd
|
|
||||||
-%endif
|
|
||||||
%if %{with tmpfiles}
|
|
||||||
%config(noreplace) %{_sysconfdir}/tmpfiles.d/lighttpd.conf
|
|
||||||
%endif
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
From 65107586a55c594c44b0a97a2d6756f6a0f0a5ca Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giao Le <giao.le@windriver.com>
|
|
||||||
Date: Mon, 27 Aug 2018 19:41:36 +0800
|
|
||||||
Subject: [PATCH] check-length
|
|
||||||
|
|
||||||
Signed-off-by: zhipengl <zhipengs.liu@intel.com>
|
|
||||||
---
|
|
||||||
src/request.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 45 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/request.c b/src/request.c
|
|
||||||
index d25e1e7..fe541a5 100644
|
|
||||||
--- a/src/request.c
|
|
||||||
+++ b/src/request.c
|
|
||||||
@@ -8,9 +8,38 @@
|
|
||||||
#include "log.h"
|
|
||||||
#include "sock_addr.h"
|
|
||||||
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
+#include <sys/statvfs.h>
|
|
||||||
+
|
|
||||||
+static size_t get_tempdirs_free_space(server *srv)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ int valid = 0;
|
|
||||||
+ size_t total = 0;
|
|
||||||
+ array *dirs = srv->srvconf.upload_tempdirs;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < (int)dirs->used; ++i) {
|
|
||||||
+ struct statvfs stat;
|
|
||||||
+ const char *name = ((data_string *)dirs->data[i])->value->ptr;
|
|
||||||
+ int ret = statvfs(name, &stat);
|
|
||||||
+
|
|
||||||
+ if (ret >= 0) {
|
|
||||||
+ size_t df = (size_t)(stat.f_bsize * stat.f_bfree);
|
|
||||||
+ total += df;
|
|
||||||
+ valid = 1;
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "ssss",
|
|
||||||
+ "dir:", name,
|
|
||||||
+ "error:", strerror(errno));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return (valid) ? total : SSIZE_MAX;
|
|
||||||
+}
|
|
||||||
|
|
||||||
static int request_check_hostname(buffer *host) {
|
|
||||||
enum { DOMAINLABEL, TOPLABEL } stage = TOPLABEL;
|
|
||||||
@@ -901,6 +930,22 @@ int http_request_parse(server *srv, connection *con, buffer *hdrs) {
|
|
||||||
if (!state.con_length_set) {
|
|
||||||
return http_request_header_line_invalid(srv, 411, "POST-request, but content-length missing -> 411");
|
|
||||||
}
|
|
||||||
+ /* content-length is larger than 64k */
|
|
||||||
+ if (con->request.content_length > 64*1024) {
|
|
||||||
+ size_t disk_free = get_tempdirs_free_space(srv);
|
|
||||||
+ if (con->request.content_length > disk_free) {
|
|
||||||
+ con->http_status = 413;
|
|
||||||
+ con->keep_alive = 0;
|
|
||||||
+
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "ssosos",
|
|
||||||
+ "not enough free space in tempdirs:",
|
|
||||||
+ "length =", (off_t) con->request.content_length,
|
|
||||||
+ "free =", (off_t) disk_free,
|
|
||||||
+ "-> 413");
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
@ -1,288 +0,0 @@
|
|||||||
From c58d174a1d2872272bfa9d83c642591f04effcb1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kam Nasim <kam.nasim@windriver.com>
|
|
||||||
Date: Wed, 29 Mar 2017 21:56:41 -0400
|
|
||||||
Subject: [PATCH] lighttpd tpm support
|
|
||||||
|
|
||||||
---
|
|
||||||
src/base.h | 24 ++++++++++
|
|
||||||
src/configfile.c | 4 ++
|
|
||||||
src/mod_openssl.c | 116 +++++++++++++++++++++++++++++++++++++---------
|
|
||||||
src/server.c | 17 ++++++-
|
|
||||||
4 files changed, 139 insertions(+), 22 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/base.h b/src/base.h
|
|
||||||
index f21973b..f7b5777 100644
|
|
||||||
--- a/src/base.h
|
|
||||||
+++ b/src/base.h
|
|
||||||
@@ -15,6 +15,21 @@
|
|
||||||
#include "sock_addr.h"
|
|
||||||
#include "etag.h"
|
|
||||||
|
|
||||||
+#if defined HAVE_LIBSSL && defined HAVE_OPENSSL_SSL_H
|
|
||||||
+# define USE_OPENSSL
|
|
||||||
+# include <openssl/opensslconf.h>
|
|
||||||
+# ifndef USE_OPENSSL_KERBEROS
|
|
||||||
+# ifndef OPENSSL_NO_KRB5
|
|
||||||
+# define OPENSSL_NO_KRB5
|
|
||||||
+# endif
|
|
||||||
+# endif
|
|
||||||
+# include <openssl/ssl.h>
|
|
||||||
+# include <openssl/engine.h>
|
|
||||||
+# if ! defined OPENSSL_NO_TLSEXT && ! defined SSL_CTRL_SET_TLSEXT_HOSTNAME
|
|
||||||
+# define OPENSSL_NO_TLSEXT
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
struct fdevents; /* declaration */
|
|
||||||
struct stat_cache; /* declaration */
|
|
||||||
|
|
||||||
@@ -342,6 +357,14 @@ typedef struct {
|
|
||||||
unsigned short high_precision_timestamps;
|
|
||||||
time_t loadts;
|
|
||||||
double loadavg[3];
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+ // TPM engine and object configuration
|
|
||||||
+ buffer *tpm_object;
|
|
||||||
+ buffer *tpm_engine;
|
|
||||||
+ ENGINE *tpm_engine_ref;
|
|
||||||
+ EVP_PKEY *tpm_key;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
buffer *syslog_facility;
|
|
||||||
|
|
||||||
unsigned short compat_module_load;
|
|
||||||
@@ -380,6 +403,7 @@ struct server {
|
|
||||||
int con_written;
|
|
||||||
int con_closed;
|
|
||||||
|
|
||||||
+ int tpm_is_init; // has TPM been initialized already
|
|
||||||
int max_fds; /* max possible fds */
|
|
||||||
int max_fds_lowat;/* low watermark */
|
|
||||||
int max_fds_hiwat;/* high watermark */
|
|
||||||
diff --git a/src/configfile.c b/src/configfile.c
|
|
||||||
index b870b59..5b91b35 100644
|
|
||||||
--- a/src/configfile.c
|
|
||||||
+++ b/src/configfile.c
|
|
||||||
@@ -282,6 +282,8 @@ static int config_insert(server *srv) {
|
|
||||||
{ "server.socket-perms", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION }, /* 81 */
|
|
||||||
{ "server.http-parseopts", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_SERVER }, /* 82 */
|
|
||||||
{ "server.systemd-socket-activation", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_SERVER }, /* 83 */
|
|
||||||
+ { "server.tpm-object", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 84 */
|
|
||||||
+ { "server.tpm-engine", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER }, /* 85 */
|
|
||||||
|
|
||||||
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
|
|
||||||
};
|
|
||||||
@@ -327,6 +329,8 @@ static int config_insert(server *srv) {
|
|
||||||
http_parseopts = array_init();
|
|
||||||
cv[82].destination = http_parseopts;
|
|
||||||
cv[83].destination = &(srv->srvconf.systemd_socket_activation);
|
|
||||||
+ cv[84].destination = srv->srvconf.tpm_object;
|
|
||||||
+ cv[85].destination = srv->srvconf.tpm_engine;
|
|
||||||
|
|
||||||
srv->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
|
|
||||||
|
|
||||||
diff --git a/src/mod_openssl.c b/src/mod_openssl.c
|
|
||||||
index f9a4fe8..e38605c 100644
|
|
||||||
--- a/src/mod_openssl.c
|
|
||||||
+++ b/src/mod_openssl.c
|
|
||||||
@@ -488,6 +488,29 @@ error:
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static EVP_PKEY*
|
|
||||||
+evp_pkey_load_tpm_object_file(server *srv) {
|
|
||||||
+ if (!srv->tpm_is_init || !srv->srvconf.tpm_engine_ref)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ if (srv->srvconf.tpm_key) {
|
|
||||||
+ // if a TPM key was previously loaded
|
|
||||||
+ // then return that as there is no need to
|
|
||||||
+ // reload this key into TPM
|
|
||||||
+ return srv->srvconf.tpm_key;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ EVP_PKEY *pkey = ENGINE_load_private_key(srv->srvconf.tpm_engine_ref,
|
|
||||||
+ srv->srvconf.tpm_object->ptr,
|
|
||||||
+ NULL, NULL);
|
|
||||||
+ if (!pkey) {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "SSS", "SSL:",
|
|
||||||
+ ERR_error_string(ERR_get_error(), NULL));
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+ srv->srvconf.tpm_key = pkey;
|
|
||||||
+ return pkey;
|
|
||||||
+}
|
|
||||||
|
|
||||||
static EVP_PKEY *
|
|
||||||
evp_pkey_load_pem_file (server *srv, const char *file)
|
|
||||||
@@ -542,17 +565,24 @@ network_openssl_load_pemfile (server *srv, plugin_config *s, size_t ndx)
|
|
||||||
|
|
||||||
s->ssl_pemfile_x509 = x509_load_pem_file(srv, s->ssl_pemfile->ptr);
|
|
||||||
if (NULL == s->ssl_pemfile_x509) return -1;
|
|
||||||
- s->ssl_pemfile_pkey = !buffer_string_is_empty(s->ssl_privkey)
|
|
||||||
- ? evp_pkey_load_pem_file(srv, s->ssl_privkey->ptr)
|
|
||||||
- : evp_pkey_load_pem_file(srv, s->ssl_pemfile->ptr);
|
|
||||||
- if (NULL == s->ssl_pemfile_pkey) return -1;
|
|
||||||
-
|
|
||||||
- if (!X509_check_private_key(s->ssl_pemfile_x509, s->ssl_pemfile_pkey)) {
|
|
||||||
- log_error_write(srv, __FILE__, __LINE__, "sssbb", "SSL:",
|
|
||||||
- "Private key does not match the certificate public key,"
|
|
||||||
- " reason:", ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
- s->ssl_pemfile, s->ssl_privkey);
|
|
||||||
- return -1;
|
|
||||||
+ // If TPM mode is enabled thenload the TPM key, otherwise load
|
|
||||||
+ // the regular SSL private key.
|
|
||||||
+ if (srv->tpm_is_init) {
|
|
||||||
+ s->ssl_pemfile_pkey = evp_pkey_load_tpm_object_file(srv);
|
|
||||||
+ if (NULL == s->ssl_pemfile_pkey) return -1;
|
|
||||||
+ } else {
|
|
||||||
+ s->ssl_pemfile_pkey = !buffer_string_is_empty(s->ssl_privkey)
|
|
||||||
+ ? evp_pkey_load_pem_file(srv, s->ssl_privkey->ptr)
|
|
||||||
+ : evp_pkey_load_pem_file(srv, s->ssl_pemfile->ptr);
|
|
||||||
+ if (NULL == s->ssl_pemfile_pkey) return -1;
|
|
||||||
+
|
|
||||||
+ if (!X509_check_private_key(s->ssl_pemfile_x509, s->ssl_pemfile_pkey)) {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "sssbb", "SSL:",
|
|
||||||
+ "Private key does not match the certificate public key,"
|
|
||||||
+ " reason:", ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
+ s->ssl_pemfile, s->ssl_privkey);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
@@ -878,6 +908,43 @@ network_init_ssl (server *srv, void *p_d)
|
|
||||||
force_assert(NULL != local_send_buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* NOTE (knasim-wrs): US93721: TPM support
|
|
||||||
+ * if TPM mode is configured, and we have not previously
|
|
||||||
+ * initialized the engine then do so now
|
|
||||||
+ */
|
|
||||||
+ if (!buffer_string_is_empty(srv->srvconf.tpm_object) &&
|
|
||||||
+ (!srv->tpm_is_init)) {
|
|
||||||
+ if (!buffer_string_is_empty(srv->srvconf.tpm_engine)) {
|
|
||||||
+ // load the dynamic TPM engine
|
|
||||||
+ ENGINE_load_dynamic();
|
|
||||||
+ ENGINE *engine = ENGINE_by_id("dynamic");
|
|
||||||
+ if (!engine) {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "ss", "SSL:",
|
|
||||||
+ "Unable to load the dynamic engine "
|
|
||||||
+ "(needed for loading custom TPM engine)");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ENGINE_ctrl_cmd_string(engine, "SO_PATH",
|
|
||||||
+ srv->srvconf.tpm_engine->ptr, 0);
|
|
||||||
+ ENGINE_ctrl_cmd_string(engine, "LOAD", NULL, 0);
|
|
||||||
+ if (ENGINE_init(engine) != 1) {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "ssb", "SSL:",
|
|
||||||
+ ERR_error_string(ERR_get_error(), NULL));
|
|
||||||
+ ENGINE_finish(engine);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ srv->tpm_is_init = 1;
|
|
||||||
+ // stow away for ENGINE cleanup
|
|
||||||
+ srv->srvconf.tpm_engine_ref = engine;
|
|
||||||
+ }
|
|
||||||
+ else { // no TPM engine found
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "ss", "SSL:",
|
|
||||||
+ "TPM engine option not set when TPM mode expected");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!buffer_string_is_empty(s->ssl_pemfile)) {
|
|
||||||
#ifdef OPENSSL_NO_TLSEXT
|
|
||||||
data_config *dc = (data_config *)srv->config_context->data[i];
|
|
||||||
@@ -1147,28 +1214,35 @@ network_init_ssl (server *srv, void *p_d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (1 != SSL_CTX_use_certificate_chain_file(s->ssl_ctx,
|
|
||||||
- s->ssl_pemfile->ptr)) {
|
|
||||||
+ if (1 != SSL_CTX_use_PrivateKey(s->ssl_ctx, s->ssl_pemfile_pkey)) {
|
|
||||||
log_error_write(srv, __FILE__, __LINE__, "ssb", "SSL:",
|
|
||||||
ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
s->ssl_pemfile);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (1 != SSL_CTX_use_PrivateKey(s->ssl_ctx, s->ssl_pemfile_pkey)) {
|
|
||||||
+ if (1 != SSL_CTX_use_certificate(s->ssl_ctx, s->ssl_pemfile_x509)) {
|
|
||||||
log_error_write(srv, __FILE__, __LINE__, "ssbb", "SSL:",
|
|
||||||
ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
s->ssl_pemfile, s->ssl_privkey);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (SSL_CTX_check_private_key(s->ssl_ctx) != 1) {
|
|
||||||
- log_error_write(srv, __FILE__, __LINE__, "sssbb", "SSL:",
|
|
||||||
- "Private key does not match the certificate public "
|
|
||||||
- "key, reason:",
|
|
||||||
- ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
- s->ssl_pemfile, s->ssl_privkey);
|
|
||||||
- return -1;
|
|
||||||
+ /*
|
|
||||||
+ * Only check private key against loaded
|
|
||||||
+ * certificate, in non TPM mode, since
|
|
||||||
+ * if this is a TPM key then it is wrapped
|
|
||||||
+ * and will not match the public key.
|
|
||||||
+ */
|
|
||||||
+ if (!srv->tpm_is_init) {
|
|
||||||
+ if (SSL_CTX_check_private_key(s->ssl_ctx) != 1) {
|
|
||||||
+ log_error_write(srv, __FILE__, __LINE__, "sssbb", "SSL:",
|
|
||||||
+ "Private key does not match the certificate public "
|
|
||||||
+ "key, reason:",
|
|
||||||
+ ERR_error_string(ERR_get_error(), NULL),
|
|
||||||
+ s->ssl_pemfile, s->ssl_privkey);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
SSL_CTX_set_default_read_ahead(s->ssl_ctx, s->ssl_read_ahead);
|
|
||||||
SSL_CTX_set_mode(s->ssl_ctx, SSL_CTX_get_mode(s->ssl_ctx)
|
|
||||||
diff --git a/src/server.c b/src/server.c
|
|
||||||
index b7086b0..b90ce61 100644
|
|
||||||
--- a/src/server.c
|
|
||||||
+++ b/src/server.c
|
|
||||||
@@ -248,6 +248,11 @@ static server *server_init(void) {
|
|
||||||
CLEAN(srvconf.pid_file);
|
|
||||||
CLEAN(srvconf.syslog_facility);
|
|
||||||
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+ CLEAN(srvconf.tpm_object);
|
|
||||||
+ CLEAN(srvconf.tpm_engine);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
CLEAN(tmp_chunk_len);
|
|
||||||
#undef CLEAN
|
|
||||||
|
|
||||||
@@ -344,6 +349,14 @@ static void server_free(server *srv) {
|
|
||||||
CLEAN(srvconf.xattr_name);
|
|
||||||
CLEAN(srvconf.syslog_facility);
|
|
||||||
|
|
||||||
+#ifdef USE_OPENSSL
|
|
||||||
+ CLEAN(srvconf.tpm_object);
|
|
||||||
+ CLEAN(srvconf.tpm_engine);
|
|
||||||
+ // don't free the tpm_key as that will be freed
|
|
||||||
+ // below as ssl_pemfile_pkey
|
|
||||||
+ ENGINE_finish(srv->srvconf.tpm_engine_ref);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
CLEAN(tmp_chunk_len);
|
|
||||||
#undef CLEAN
|
|
||||||
|
|
||||||
@@ -784,7 +797,9 @@ static int log_error_open(server *srv) {
|
|
||||||
if (-1 == (errfd = fdevent_open_devnull())) {
|
|
||||||
log_error_write(srv, __FILE__, __LINE__, "ss",
|
|
||||||
"opening /dev/null failed:", strerror(errno));
|
|
||||||
- return -1;
|
|
||||||
+ /* In version 1.4.45 it will also failed here but not check return value of openDevNull(STDERR_FILENO)
|
|
||||||
+ need further check with upstream to see if there is a potential bug */
|
|
||||||
+ //return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
mirror:Source/lighttpd-1.4.54-1.el7.src.rpm
|
|
@ -1 +0,0 @@
|
|||||||
TIS_PATCH_VER=PKG_GITREVCOUNT
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user