Merge "Remove CentOS/OpenSUSE build support"
This commit is contained in:
commit
88a593d142
@ -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