Module: check_mk
Branch: master
Commit: 304ebd99e070564d8214c4ecae6f123be38fcab6
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=304ebd99e07056…
Author: Andreas Umbreit <au(a)mathias-kettner.de>
Date: Wed Aug 23 11:06:19 2017 +0200
Add Werk 4564
Change-Id: I559434f014c09205352cd77af8f5dbe6af6371a2
---
.werks/4564 | 14 ++++
.../windows/frozen_binaries/pyinstaller-deps.make | 88 ++++++++++++++--------
2 files changed, 70 insertions(+), 32 deletions(-)
diff --git a/.werks/4564 b/.werks/4564
new file mode 100644
index 0000000..a90fc72
--- /dev/null
+++ b/.werks/4564
@@ -0,0 +1,14 @@
+Title: Compatibility fix for windows agent updater
+Level: 1
+Component: agents
+Class: fix
+Compatible: compat
+Edition: cee
+State: unknown
+Version: 1.5.0i1
+Date: 1503477269
+
+The command cmk-update-agent sometimes fails with an error message like
+"Loadlibrary() argument 1 must be string not unicode error" when running on
Windows.
+The error cause is an incompatibility within Python 2.7.13 and some Python libraries.
+We fix this issue by using Python 2.7.12 instead.
diff --git a/agents/windows/frozen_binaries/pyinstaller-deps.make
b/agents/windows/frozen_binaries/pyinstaller-deps.make
index c72a21c..fb9a930 100644
--- a/agents/windows/frozen_binaries/pyinstaller-deps.make
+++ b/agents/windows/frozen_binaries/pyinstaller-deps.make
@@ -1,26 +1,31 @@
-PYTHON_VERSION = 2.7.13
+.PHONY: new_packages
+
+# Python 2.7.13 yields a bug concerning the LoadLibrary() function on windows,
+# see
http://bugs.python.org/issue29082 . Use 2.7.12 instead.
+PYTHON_VERSION = 2.7.12
BUILD_DIR = $(shell realpath ./../../winbuild)
PLUGINS_DIR = $(shell realpath ./../../plugins)
# This package list originates from resolving the dependencies of the packages
-# pyinstaller, pypiwin32, pyopenssl, pyopenssl. The required packages are explicitly
listed
+# pyinstaller, pyopenssl, requests. The required packages are explicitly listed
# in favor of providing a working setup for a pyinstaller build with python 2.7
-PYTHON_PACKAGES = src/pip/appdirs-1.4.3-py2.py3-none-any.whl \
- src/pip/idna-2.5-py2.py3-none-any.whl \
- src/pip/pyparsing-2.2.0-py2.py3-none-any.whl \
- src/pip/asn1crypto-0.22.0-py2.py3-none-any.whl \
- src/pip/ipaddress-1.0.18-py2-none-any.whl \
- src/pip/pypiwin32-219-cp27-none-win32.whl \
- src/pip/cffi-1.10.0-cp27-cp27m-win32.whl \
- src/pip/packaging-16.8-py2.py3-none-any.whl \
- src/pip/requests-2.13.0-py2.py3-none-any.whl \
- src/pip/cryptography-1.8.1-cp27-cp27m-win32.whl \
- src/pip/pycparser-2.17.tar.gz \
- src/pip/setuptools-34.3.3-py2.py3-none-any.whl \
- src/pip/enum34-1.1.6-py2-none-any.whl \
- src/pip/PyInstaller-3.2.1.tar.bz2 \
- src/pip/six-1.10.0-py2.py3-none-any.whl \
- src/pip/future-0.16.0.tar.gz \
- src/pip/pyOpenSSL-16.2.0-py2.py3-none-any.whl
+PYTHON_PACKAGES = \
+src/pip/asn1crypto-0.22.0-py2.py3-none-any.whl \
+src/pip/certifi-2017.7.27.1-py2.py3-none-any.whl \
+src/pip/cffi-1.10.0-cp27-cp27m-win32.whl \
+src/pip/chardet-3.0.4-py2.py3-none-any.whl \
+src/pip/cryptography-2.0.3-cp27-cp27m-win32.whl \
+src/pip/enum34-1.1.6-py2-none-any.whl \
+src/pip/future-0.16.0.tar.gz \
+src/pip/idna-2.6-py2.py3-none-any.whl \
+src/pip/ipaddress-1.0.18-py2-none-any.whl \
+src/pip/pycparser-2.18.tar.gz \
+src/pip/PyInstaller-3.2.1.tar.bz2 \
+src/pip/pyOpenSSL-17.2.0-py2.py3-none-any.whl \
+src/pip/pypiwin32-219-cp27-none-win32.whl \
+src/pip/requests-2.18.4-py2.py3-none-any.whl \
+src/pip/setuptools-36.2.7-py2.py3-none-any.whl \
+src/pip/six-1.10.0-py2.py3-none-any.whl \
+src/pip/urllib3-1.22-py2.py3-none-any.whl
src/python-$(PYTHON_VERSION).msi:
cd src && wget
https://www.python.org/ftp/python/$(PYTHON_VERSION)/python-$(PYTHON_VERSION…
@@ -38,23 +43,42 @@ $(PYTHON_PACKAGES): src/python-$(PYTHON_VERSION).msi
wine msiexec /qn /i python-$(PYTHON_VERSION).msi && \
mkdir pip && \
cd pip && \
- wine c:\\Python27\\python.exe -m pip download --no-deps appdirs==1.4.3 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps idna==2.5 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps pyparsing==2.2.0 && \
wine c:\\Python27\\python.exe -m pip download --no-deps asn1crypto==0.22.0 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps ipaddress==1.0.18 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps pypiwin32==219 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps certifi==2017.7.27.1 &&
\
wine c:\\Python27\\python.exe -m pip download --no-deps cffi==1.10.0 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps packaging==16.8 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps requests==2.13.0 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps cryptography==1.8.1 &&
\
- wine c:\\Python27\\python.exe -m pip download --no-deps pycparser==2.17 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps setuptools==34.3.3 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps chardet==3.0.4 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps cryptography==2.0.3 &&
\
wine c:\\Python27\\python.exe -m pip download --no-deps enum34==1.1.6 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps pyinstaller==3.2.1 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps future==0.16.0 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps idna==2.6 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps ipaddress==1.0.18 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps pycparser==2.18 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps PyInstaller==3.2.1 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps pyOpenSSL==17.2.0 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps pypiwin32==219 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps requests==2.18.4 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps setuptools==36.2.7 && \
wine c:\\Python27\\python.exe -m pip download --no-deps six==1.10.0 && \
- wine c:\\Python27\\python.exe -m pip download --no-deps future==0.16.0. && \
- wine c:\\Python27\\python.exe -m pip download --no-deps pyOpenSSL==16.2.0 && \
+ wine c:\\Python27\\python.exe -m pip download --no-deps urllib3==1.22 && \
+ mkdir -p $(CURDIR)/src/pip && \
+ cp -r * $(CURDIR)/src/pip
+ rm -rf $(BUILD_DIR)
+
+new_packages: src/python-$(PYTHON_VERSION).msi
+ # Use this target to obtain the newest versions of the needed packages.
+ # You should update the explicit dependencies afterwars because the automatic
+ # download of the latests packages might lead to an incosistent state, e.g.
+ # if a package gets downloaded multiple times with different versions.
+ mkdir $(BUILD_DIR) && \
+ export WINEPREFIX=$(BUILD_DIR) && \
+ cd $(BUILD_DIR) && \
+ cp $(CURDIR)/src/python-$(PYTHON_VERSION).msi . && \
+ wine msiexec /qn /i python-$(PYTHON_VERSION).msi && \
+ mkdir pip && \
+ cd pip && \
+ wine c:\\Python27\\python.exe -m pip download requests && \
+ wine c:\\Python27\\python.exe -m pip download pyinstaller && \
+ wine c:\\Python27\\python.exe -m pip download pyOpenSSL && \
mkdir -p $(CURDIR)/src/pip && \
cp -r * $(CURDIR)/src/pip
rm -rf $(BUILD_DIR)