diff --git a/packaging/windows/pypokereval-win32-packaging-walkthrough.txt b/packaging/windows/pypokereval-win32-packaging-walkthrough.txt new file mode 100644 index 00000000..f5527309 --- /dev/null +++ b/packaging/windows/pypokereval-win32-packaging-walkthrough.txt @@ -0,0 +1,155 @@ +pypokereval packaging for fpdb project +-------------------------------------- + +Created by Gimick on 11th December 2010 +Content is available under the the GNU Affero General Public License version 3 + +Background +---------- + +The walktrough builds an unoffical python installer package for pypokereval. + +In a previous walkthrough, the pypokereval dll(pyd) was built from source. +In this walkthrough, we are going to generate a windows package which will allow +the sources to be installed through distutils onto a client computer + +The current situation is that there is no windows build or windows installer provided +by the package authors. + +Until a package is available, the fpdb project needs some method of providing a windows +installation for the pypokereval module. This walkthrough will therefore be obsolete once +an official package becomes available. + +Actually, for windows fpdb users, the majority will use a pre-built fpdb executable (which contains the +pypokereval package) Therefore, pypokereval installation will only be needed for two groups of people: + i) anyone wanting to build an fpdb package using py2exe + ii) anyone wanting to run fpdb on windows from source + +Credits +------- + +To loic@dachary.org at pokersource http://pokersource.sourceforge.net/ +To donn.ingle@gmail.com for the tutorial here ... http://wiki.python.org/moin/Distutils/Tutorial +Official python reference here ... http://docs.python.org/distutils/index.html + +Assumptions +----------- + +The underlying dll(pyd) and pokereval library is built for win32 x86 platform only, so we will assume +32bit only in this walkthrough. Contributions for a x86-64 build are most welcome. + +Similarly, the underlying package is built against the python 2-6 library and is valid only for that version. +The underlying package was not built with sse enabled, and therefore should work for legacy systems. + + +1. Install pre-requisites +------------------------- + +System used for building is winXP home + +1.1/ Install python runtime from here ... + +Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi + +1.2/ Grab pypokereval stuff from fpdb project here ... + +pypokereval ... http://sourceforge.net/projects/fpdb/files/fpdb/pypoker-eval-win32/pypokereval-138-win32-py265-fpdb-1.1.exe/download + +1.3/ Double click the pypokereval-138-win32-py265-fpdb-1.1.exe and extract the folder to the desktop + + +2. Prepare a folder containing the items needing packaging +---------------------------------------------------------- + +dos>cd desktop +dos>mkdir pypokereval138-installer-win32-py265-fpdb +dos>cd pypokereval138-installer-win32-py265-fpdb +dos>mkdir payload +dos>cd payload + +dos>copy ..\..\pypokereval-138-win32-py265-fpdb-1.1\_pokereval_2_6.pyd +dos>copy ..\..\pypokereval-138-win32-py265-fpdb-1.1\pokereval.py + +dos>mkdir utils +dos>cd utils +dos>copy ..\..\..\pypokereval-138-win32-py265-fpdb-1.1\test.py +dos>cd .. + +The next step is to rename the pokereval.py file to __init__.py. The reason for doing this +is that site-packages require an __init__ file to be found when the module is imported at runtime +Inserting a dummy __init__.py which simply imports pokereval does not work, the reason being that the +PokerEval class is not seen by the caller. Syntax such as "from pokereval import PokerEval" +does not work unless the pokereval.py (which defines the PokerEval class) is renamed to __init__.py. + +dos> rename pokereval.py __init__.py + +3. Prepare the additional packaging files + +dos>cd desktop +dos>cd pypokereval138-installer-win32-py265-fpdb + +3.1/ setup.py +------------- + +dos> edit setup.py + +Include the following python code: + +#================================================== + +from distutils.core import setup + +filelist = ["utils/*", "_pokereval_2_6.pyd"] + +setup(name = "pokereval", +version = "138", +description = "pypokereval installer (unofficial)", +author = "project fpdb", +author_email = "Fpdb-main@lists.sourceforge.net", +url = "fpdb.sourceforge.net", +packages = ['pokereval'], +package_data = {'pokereval' : filelist }, +long_description = """An unofficial installer for pypokereval v138, win32, python v2.6.5 +pokereval official project page is at http://www.pokersource.info/""" +) + +#================================================== + +3.2 / review directory tree +--------------------------- + +The following structure should now exist. + +pypokereval138-installer-win32-py265-fpdb + |--setup.py + |--pokereval + |--_pokereval_2_6.pyd + |--__init__.py + |--utils + |--test.py + + +3.3 Build +--------- + +Navigate to the desktop/pypokereval138-installer-win32-py265-fpdb directory + +dos>c:\Python26\python.exe setup.py bdist_wininst --plat-name=win32 --user-access-control auto + +3.4 Complete +------------ + +The executable file pokereval-138.win32.exe will be in the newly-created dist folder. + +3.5 Install and test +-------------------- + +Double click to install +Navigate to c:\python26\lib\site-packages\pokereval\test + +execute dos>c:\Python26\python.exe test.py + +Output should scroll down the screen + + +