1
0
mirror of https://github.com/dkmstr/openuds.git synced 2024-12-23 17:34:17 +03:00

Added sample py2exe and pyinstaller for exe generation

This commit is contained in:
Adolfo Gómez García 2014-10-01 12:22:14 +02:00
parent f1593c0957
commit 10d85df2e1
10 changed files with 352 additions and 2 deletions

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="UDSActorConfig"
version="1.6.0.0"
processorArchitecture="x86"
/>
<description>Description</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View File

@ -14,4 +14,4 @@ exe = EXE(pyz,
debug=False,
strip=None,
upx=True,
console=False, icon="uds.ico", manifest="UDSActorConfig_enterprise.manifest", version="UDSActorConfig_version_info.txt", append_pkg=True)
console=False, icon="uds.ico", manifest="UDSActorConfig.manifest", version="UDSActorConfig_version_info.txt", append_pkg=True)

View File

@ -34,7 +34,7 @@ VSVersionInfo(
StringStruct(u'CompanyName', u'Virtual Cable S.L.'),
StringStruct(u'FileDescription', u'UDSActorConfig'),
StringStruct(u'FileVersion', u'1.6.0.0'),
StringStruct(u'InternalName', u'udsService.exe'),
StringStruct(u'InternalName', u'UDSActorConfig.exe'),
StringStruct(u'LegalCopyright', u'Copyright © Virtual Cable S.L. 2014'),
StringStruct(u'LegalTrademarks', u'UDS'),
StringStruct(u'OriginalFilename', u'UDSActorConfig.exe'),

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="UDSActorService"
version="1.6.0.0"
processorArchitecture="x86"
/>
<description>Description</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View File

@ -0,0 +1,42 @@
import pythoncom
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
class AppServerSvc (win32serviceutil.ServiceFramework):
_svc_name_ = "UDSActor"
_svc_display_name_ = "UDS Actor Service"
_svc_description_ = "UDS Actor for machines managed by UDS Broker"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None,0,0,None)
self.isAlive = True
socket.setdefaulttimeout(60)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
self.isAlive = False
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_,''))
while self.isAlive:
win32event.WaitForSingleObject(self.hWaitStop, 1000) # In milliseconds
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STOPPED,
(self._svc_name_,''))
self.ReportServiceStatus(win32service.SERVICE_STOPPED)
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)

View File

@ -0,0 +1,22 @@
# -*- mode: python -*-
a = Analysis(['UDSActorService.py'],
pathex=['M:\\projects\\uds\\openuds\\windowsActor'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='UDSActorService.exe',
debug=False,
strip=None,
upx=True,
console=False )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='UDSActorService')

View File

@ -0,0 +1,46 @@
# UTF-8
#
# For more details about fixed file info 'ffi' see:
# http://msdn.microsoft.com/en-us/library/ms646997.aspx
VSVersionInfo(
ffi=FixedFileInfo(
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
# Set not needed items to zero 0.
filevers=(1, 6, 0, 0),
prodvers=(1, 6, 0, 0),
# Contains a bitmask that specifies the valid bits 'flags'r
mask=0x3f,
# Contains a bitmask that specifies the Boolean attributes of the file.
flags=0x0,
# The operating system for which this file was designed.
# 0x4 - NT and there is no need to change it.
OS=0x4,
# The general type of file.
# 0x1 - the file is an application.
fileType=0x1,
# The function of the file.
# 0x0 - the function is not defined for this fileType
subtype=0x0,
# Creation date and time stamp.
date=(0, 0)
),
kids=[
VarFileInfo([VarStruct(u'Translation', [0, 1200])]),
StringFileInfo(
[
StringTable(
u'000004b0',
[StringStruct(u'Comments', u'UDS Actor Service Application'),
StringStruct(u'CompanyName', u'Virtual Cable S.L.U.'),
StringStruct(u'FileDescription', u'UDSActorService'),
StringStruct(u'FileVersion', u'1.6.0.0'),
StringStruct(u'InternalName', u'UDSActorService.exe'),
StringStruct(u'LegalCopyright', u'Copyright © Virtual Cable S.L.U. 2014'),
StringStruct(u'LegalTrademarks', u'UDS'),
StringStruct(u'OriginalFilename', u'UDSActorService.exe'),
StringStruct(u'ProductName', u'UDSActorService'),
StringStruct(u'ProductVersion', u'1.6.0.0'),
StringStruct(u'Assembly Version', u'1.6.0.0')])
])
]
)

View File

@ -0,0 +1,75 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them
try:
# py2exe 0.6.4 introduced a replacement modulefinder.
# This means we have to add package paths there, not to the built-in
# one. If this new modulefinder gets integrated into Python, then
# we might be able to revert this some day.
# if this doesn't work, try import modulefinder
try:
import py2exe.mf as modulefinder
except ImportError:
import modulefinder
import win32com, sys
for p in win32com.__path__[1:]:
modulefinder.AddPackagePath("win32com", p)
for extra in ["win32com.shell"]: #,"win32com.mapi"
__import__(extra)
m = sys.modules[extra]
for p in m.__path__[1:]:
modulefinder.AddPackagePath(extra, p)
except ImportError:
# no build path setup, no worries.
pass
from distutils.core import setup
import py2exe
# Now you need to pass arguments to setup
# windows is a list of scripts that have their own UI and
# thus don't need to run in a console.
setup(
windows=[{'script': 'UDSActorConfig.py', 'icon_resources': [(0, 'uds.ico')]} ],
options={ 'py2exe': {
'bundle_files': 3, 'compressed': True,
'includes': [ 'sip', 'PyQt4', 'win32com.shell' ] }
},
name = 'UDSActorConfig',
version = '1.6.0.0',
description = 'UDS Actor Configuration Tool',
author = 'Adolfo Gomez',
author_email = 'agomez@virtualcable.es',
#zipfile=None,
)

View File

@ -0,0 +1,32 @@
from distutils.core import setup
import py2exe, sys
sys.argv.append('py2exe')
class Target:
def __init__(self, **kw):
self.__dict__.update(kw)
# for the versioninfo resources
self.version = "1.6.0"
self.name = 'UDSActorService'
self.description = 'UDS Actor Service for managing UDS Broker controlled machines'
self.author = 'VirtualCable S.L.U.'
self.url = 'http://www.udsenterprise.com'
self.company_name = "VirtualCable S.L.U."
self.copyright = "(c) 2014 VirtualCable S.L.U."
self.name = "UDS Actor"
myservice = Target(
description = 'UDS Actor Service for managing machine from UDS Broker',
modules = ['UDSActorService'],
cmdline_style='pywin32'
)
setup(
options = {"py2exe": {"compressed": 1, "bundle_files": 1} },
console=["UDSActorService.py"],
zipfile = None,
service=[myservice]
)

99
windowsActor/setup.py Normal file
View File

@ -0,0 +1,99 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2014 Virtual Cable S.L.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
# * Neither the name of Virtual Cable S.L. nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
'''
@author: Adolfo Gómez, dkmaster at dkmon dot com
'''
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them
try:
# py2exe 0.6.4 introduced a replacement modulefinder.
# This means we have to add package paths there, not to the built-in
# one. If this new modulefinder gets integrated into Python, then
# we might be able to revert this some day.
# if this doesn't work, try import modulefinder
try:
import py2exe.mf as modulefinder
except ImportError:
import modulefinder
import win32com, sys
for p in win32com.__path__[1:]:
modulefinder.AddPackagePath("win32com", p)
for extra in ["win32com.shell"]: #,"win32com.mapi"
__import__(extra)
m = sys.modules[extra]
for p in m.__path__[1:]:
modulefinder.AddPackagePath(extra, p)
except ImportError:
# no build path setup, no worries.
pass
from distutils.core import setup
import py2exe
#sys.argv.append('py2exe')
class Target:
def __init__(self, **kw):
self.__dict__.update(kw)
# for the versioninfo resources
self.version = "1.6.0"
self.name = 'UDSActorService'
self.description = 'UDS Actor Service for managing UDS Broker controlled machines'
self.author = 'VirtualCable S.L.U.'
self.url = 'http://www.udsenterprise.com'
self.company_name = "VirtualCable S.L.U."
self.copyright = "(c) 2014 VirtualCable S.L.U."
self.name = "UDS Actor"
# Now you need to pass arguments to setup
# windows is a list of scripts that have their own UI and
# thus don't need to run in a console.
udsservice = Target(
description = 'UDS Actor Service for managing machine from UDS Broker',
modules = ['UDSActorService'],
cmdline_style='pywin32'
)
setup(
windows=[{'script': 'UDSActorConfig.py', 'icon_resources': [(0, 'uds.ico')]} ],
service=[udsservice],
options={ 'py2exe': {
'bundle_files': 3, 'compressed': True,
'includes': [ 'sip', 'PyQt4', 'win32com.shell' ] }
},
name = 'UDSActorConfig',
version = '1.6.0.0',
description = 'UDS Actor Configuration Tool',
author = 'Adolfo Gomez',
author_email = 'agomez@virtualcable.es',
zipfile='uds.zip',
)