Module: check_mk
Branch: master
Commit: 0d5325e02246eae8895cc1aba5d77b7a7b5fa60e
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=0d5325e02246ea…
Author: Andreas Umbreit <au(a)mathias-kettner.de>
Date: Tue Mar 28 14:02:14 2017 +0200
Rewrite Makefiles for cmk-update-agent build
- Modify Makefile.include to fetch needed resources (indluding VC++
redistributable package) for pyinstaller build
- Modify Makefile to support to build cmk-update-agent.exe using
pyinstaller and including needed VC++ resources
- Change build directory to "winbuild" because wine has some issues
with a path containing "windows"
---
agents/.gitignore | 1 +
agents/windows/frozen_binaries/Makefile.include | 91 ++++++++++++++++---------
2 files changed, 59 insertions(+), 33 deletions(-)
diff --git a/agents/.gitignore b/agents/.gitignore
index e68a0b4..5b1195b 100644
--- a/agents/.gitignore
+++ b/agents/.gitignore
@@ -1 +1,2 @@
.rpm.*
+winbuild
diff --git a/agents/windows/frozen_binaries/Makefile.include
b/agents/windows/frozen_binaries/Makefile.include
index 4cd6564..3994ac5 100644
--- a/agents/windows/frozen_binaries/Makefile.include
+++ b/agents/windows/frozen_binaries/Makefile.include
@@ -1,41 +1,66 @@
-
PYTHON_VERSION = 2.7.13
-
-clean:
- [ -d build ] && rm -rf build || true
-
-src/virtual-wine:
- cd src ; git clone
https://github.com/htgoebel/virtual-wine.git
+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
+# 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
src/python-$(PYTHON_VERSION).msi:
- cd src ; wget
https://www.python.org/ftp/python/$(PYTHON_VERSION)/python-$(PYTHON_VERSION…
-
-src/get-pip.py:
- cd src ; wget
https://bootstrap.pypa.io/get-pip.py
-
-src/pyinstaller:
- cd src ; git clone
git://github.com/pyinstaller/pyinstaller.git
+ cd src && wget
https://www.python.org/ftp/python/$(PYTHON_VERSION)/python-$(PYTHON_VERSION…
-prepare-build-env: src/virtual-wine
- mkdir build
- cd build ; \
- cp -pr ../src/virtual-wine . ; \
- sed -i '/winecfg$$/d' ./virtual-wine/vwine-setup ; \
- ./virtual-wine/vwine-setup venv_wine
+$(PYTHON_PACKAGES): src/python-$(PYTHON_VERSION).msi
+ # Download needed python packages including depencencies. This has to be done
+ # from within wine to obtain the correct win32 packages.
+ # Note: This target might download different or additional versions that specified in
+ # PYTHON_PACKAGES because the pip download option resolves dependencies.
+ 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 appdirs==1.4.3 && \
+ wine c:\\Python27\\python.exe -m pip download idna==2.5 && \
+ wine c:\\Python27\\python.exe -m pip download pyparsing==2.2.0 && \
+ wine c:\\Python27\\python.exe -m pip download asn1crypto==0.22.0 && \
+ wine c:\\Python27\\python.exe -m pip download ipaddress==1.0.18 && \
+ wine c:\\Python27\\python.exe -m pip download pypiwin32==219 && \
+ wine c:\\Python27\\python.exe -m pip download cffi==1.10.0 && \
+ wine c:\\Python27\\python.exe -m pip download packaging==16.8 && \
+ wine c:\\Python27\\python.exe -m pip download requests==2.13.0 && \
+ wine c:\\Python27\\python.exe -m pip download cryptography==1.8.1 && \
+ wine c:\\Python27\\python.exe -m pip download pycparser==2.17 && \
+ wine c:\\Python27\\python.exe -m pip download setuptools==34.3.3 && \
+ wine c:\\Python27\\python.exe -m pip download enum34==1.1.6 && \
+ wine c:\\Python27\\python.exe -m pip download pyinstaller==3.2.1 && \
+ wine c:\\Python27\\python.exe -m pip download six==1.10.0 && \
+ wine c:\\Python27\\python.exe -m pip download future==0.16.0. && \
+ wine c:\\Python27\\python.exe -m pip download pyOpenSSL==16.2.0 && \
+ mkdir -p $(CURDIR)/src/pip && \
+ cp -r * $(CURDIR)/src/pip
+ rm -rf $(BUILD_DIR)
-prepare-python: src/python-$(PYTHON_VERSION).msi src/get-pip.py src/pyinstaller
- cd build ; \
- . venv_wine/bin/activate ; \
- wine msiexec /qn /i ../src/python-$(PYTHON_VERSION).msi ; \
- cp ../src/get-pip.py venv_wine/drive_c/ ; \
- cp -pr ../src/pyinstaller venv_wine/drive_c/pyinstaller ; \
- wine c:\\Python27\\python c:\\get-pip.py ; \
- cd venv_wine/drive_c/pyinstaller ; \
- wine c:\\Python27\\python c:\\Python27\\Scripts\\pip.exe install . ; \
- cd ../../.. ; \
- wine c:\\Python27\\python c:\\Python27\\Scripts\\pip.exe install pypiwin32 ; \
- wine c:\\Python27\\python c:\\Python27\\Scripts\\pip.exe install pyopenssl ; \
- wine c:\\Python27\\python c:\\Python27\\Scripts\\pip.exe install requests
+src/vcredist_x86.exe:
+ cd src && \
+ wget
https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966…
setup:
sudo apt-get install scons upx-ucl wine