#940: Recover files to build OGAgent for Windows Python 2-compatible.
parent
be263c6e2f
commit
2b257183d9
|
|
@ -29,7 +29,7 @@
|
||||||
'''
|
'''
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
'''
|
'''
|
||||||
|
from __future__ import unicode_literals
|
||||||
# pylint: disable=unused-wildcard-import, wildcard-import
|
# pylint: disable=unused-wildcard-import, wildcard-import
|
||||||
|
|
||||||
import win32serviceutil # @UnresolvedImport, pylint: disable=import-error
|
import win32serviceutil # @UnresolvedImport, pylint: disable=import-error
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
'''
|
'''
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
'''
|
'''
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
'''
|
'''
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
'''
|
'''
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import servicemanager # @UnresolvedImport, pylint: disable=import-error
|
import servicemanager # @UnresolvedImport, pylint: disable=import-error
|
||||||
import logging
|
import logging
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
'''
|
'''
|
||||||
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
@author: Adolfo Gómez, dkmaster at dkmon dot com
|
||||||
'''
|
'''
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import locale
|
import locale
|
||||||
|
|
@ -102,12 +102,12 @@ def getWindowsVersion():
|
||||||
'''
|
'''
|
||||||
Returns Windows version.
|
Returns Windows version.
|
||||||
'''
|
'''
|
||||||
import winreg
|
import _winreg
|
||||||
reg = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion')
|
reg = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion')
|
||||||
try:
|
try:
|
||||||
data = '{} {}'.format(winreg.QueryValueEx(reg, 'ProductName')[0], winreg.QueryValueEx(reg, 'ReleaseId')[0])
|
data = '{} {}'.format(_winreg.QueryValueEx(reg, 'ProductName')[0], _winreg.QueryValueEx(reg, 'ReleaseId')[0])
|
||||||
except Exception:
|
except Exception:
|
||||||
data = '{} {}'.format(winreg.QueryValueEx(reg, 'ProductName')[0], winreg.QueryValueEx(reg, 'CurrentBuildNumber')[0])
|
data = '{} {}'.format(_winreg.QueryValueEx(reg, 'ProductName')[0], _winreg.QueryValueEx(reg, 'CurrentBuildNumber')[0])
|
||||||
reg.Close()
|
reg.Close()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
@ -200,7 +200,7 @@ def joinDomain(domain, ou, account, password, executeInOneStep=False):
|
||||||
error = getErrorMessage(res)
|
error = getErrorMessage(res)
|
||||||
if res == 1355:
|
if res == 1355:
|
||||||
error = "DC Is not reachable"
|
error = "DC Is not reachable"
|
||||||
print(('{} {}'.format(res, error)))
|
print('{} {}'.format(res, error))
|
||||||
raise Exception('Error joining domain {}, with credentials {}/*****{}: {}, {}'.format(domain.value, account.value, ', under OU {}'.format(ou.value) if ou.value is not None else '', res, error))
|
raise Exception('Error joining domain {}, with credentials {}/*****{}: {}, {}'.format(domain.value, account.value, ', under OU {}'.format(ou.value) if ou.value is not None else '', res, error))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# We need:
|
||||||
|
# * Wine (32 bit)
|
||||||
|
# * winetricks (in some distributions)
|
||||||
|
|
||||||
|
export WINEARCH=win32 WINEPREFIX=$PWD/wine WINEDEBUG=fixme-all
|
||||||
|
WINE=wine
|
||||||
|
|
||||||
|
download() {
|
||||||
|
mkdir downloads
|
||||||
|
# Get needed software
|
||||||
|
cd downloads
|
||||||
|
wget -nd https://www.python.org/ftp/python/2.7.17/python-2.7.17.msi -O python-2.7.msi
|
||||||
|
wget -nd https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi
|
||||||
|
wget -nd https://bootstrap.pypa.io/get-pip.py
|
||||||
|
wget -nd https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.4/PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe/download -O pyqt-install.exe
|
||||||
|
wget -nd https://prdownloads.sourceforge.net/nsis/nsis-3.05-setup.exe?download -O nsis-install.exe
|
||||||
|
wget -nd http://nsis.sourceforge.net/mediawiki/images/d/d7/NSIS_Simple_Firewall_Plugin_1.20.zip
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
install_python() {
|
||||||
|
if which winetricks &>/dev/null; then
|
||||||
|
echo "Setting up wine prefix (using winetricks)"
|
||||||
|
winetricks
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd downloads
|
||||||
|
echo "Installing python"
|
||||||
|
$WINE msiexec /qn /i python-2.7.msi
|
||||||
|
echo "Installing vc for python"
|
||||||
|
$WINE msiexec /qn /i VCForPython27.msi
|
||||||
|
|
||||||
|
echo "Installing pyqt (needs X)"
|
||||||
|
$WINE pyqt-install.exe
|
||||||
|
echo "Installing nsis (needs X?)"
|
||||||
|
$WINE nsis-install.exe
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_pip() {
|
||||||
|
echo "Seting up pip..."
|
||||||
|
$WINE C:\\Python27\\python -m pip install --upgrade pip
|
||||||
|
}
|
||||||
|
|
||||||
|
install_packages() {
|
||||||
|
echo "Installing pywin32"
|
||||||
|
$WINE C:\\Python27\\python -m pip install pywin32
|
||||||
|
echo "Installing py2exe"
|
||||||
|
$WINE C:\\Python27\\python -m pip install py2exe_py2
|
||||||
|
echo "Installing required packages"
|
||||||
|
$WINE C:\\Python27\\python -m pip install requests six
|
||||||
|
# Using easy_install instead of pip to install pycrypto
|
||||||
|
$WINE C:\\Python27\\Scripts\\easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe
|
||||||
|
# Copy nsis required NSIS_Simple_Firewall_Plugin_1
|
||||||
|
echo "Copying simple firewall plugin for nsis installer"
|
||||||
|
unzip -o downloads/NSIS_Simple_Firewall_Plugin_1.20.zip SimpleFC.dll -d $WINEPREFIX/drive_c/Program\ Files/NSIS/Plugins/x86-ansi/
|
||||||
|
unzip -o downloads/NSIS_Simple_Firewall_Plugin_1.20.zip SimpleFC.dll -d $WINEPREFIX/drive_c/Program\ Files/NSIS/Plugins/x86-unicode/
|
||||||
|
}
|
||||||
|
|
||||||
|
download
|
||||||
|
install_python
|
||||||
|
setup_pip
|
||||||
|
install_packages
|
||||||
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# We need:
|
|
||||||
# * Wine (64 bit)
|
|
||||||
# * winetricks (in some distributions)
|
|
||||||
|
|
||||||
export WINEARCH=win64 WINEPREFIX=$PWD/wine WINEDEBUG=fixme-all
|
|
||||||
WINE=wine
|
|
||||||
|
|
||||||
# Get needed software
|
|
||||||
download() {
|
|
||||||
mkdir -p downloads
|
|
||||||
cd downloads
|
|
||||||
wget -nd https://www.python.org/ftp/python/3.7.7/python-3.7.7-amd64.exe -O python3.msi
|
|
||||||
wget -nd https://download.visualstudio.microsoft.com/download/pr/5e397ebe-38b2-4e18-a187-ac313d07332a/00945fbb0a29f63183b70370043e249218249f83dbc82cd3b46c5646503f9e27/vs_BuildTools.exe
|
|
||||||
wget -nd https://prdownloads.sourceforge.net/nsis/nsis-3.05-setup.exe?download -O nsis-install.exe
|
|
||||||
wget -nd http://nsis.sourceforge.net/mediawiki/images/d/d7/NSIS_Simple_Firewall_Plugin_1.20.zip
|
|
||||||
cd ..
|
|
||||||
}
|
|
||||||
|
|
||||||
install_python() {
|
|
||||||
cd downloads
|
|
||||||
echo "Installing python"
|
|
||||||
$WINE python3.msi /quiet TargetDir=C:\\Python37 PrependPath=1
|
|
||||||
echo "Installing Build Tools for Visual Studio"
|
|
||||||
$WINE vs_BuildTools.exe
|
|
||||||
echo "Installing NSIS (needs X?)"
|
|
||||||
$WINE nsis-install.exe /S
|
|
||||||
cd ..
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_pip() {
|
|
||||||
echo "Setting up pip and setuptools"
|
|
||||||
$WINE pip install --upgrade pip
|
|
||||||
$WINE pip install --upgrade setuptools
|
|
||||||
}
|
|
||||||
|
|
||||||
install_packages() {
|
|
||||||
echo "Installing PyQt5"
|
|
||||||
$WINE pip install PyQt5
|
|
||||||
echo "Installing required packages"
|
|
||||||
$WINE pip install pycrypto requests six
|
|
||||||
# Using easy_install instead of pip to install pycrypto
|
|
||||||
$WINE pip install pycrypto
|
|
||||||
echo "Installing PyInstaller"
|
|
||||||
$WINE pip install PyInstaller
|
|
||||||
echo "Copying simple firewall plugin for nsis installer"
|
|
||||||
unzip -o downloads/NSIS_Simple_Firewall_Plugin_1.20.zip SimpleFC.dll -d $WINEPREFIX/drive_c/Program\ Files/NSIS/Plugins/x86-ansi/
|
|
||||||
unzip -o downloads/NSIS_Simple_Firewall_Plugin_1.20.zip SimpleFC.dll -d $WINEPREFIX/drive_c/Program\ Files/NSIS/Plugins/x86-unicode/
|
|
||||||
}
|
|
||||||
|
|
||||||
download
|
|
||||||
install_python
|
|
||||||
setup_pip
|
|
||||||
install_packages
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue