3
= Windows Build for the UPnP-Inspector=
5
== Setting up dependencies ==
6
To be able to build the windows installer for the UPnP-Inspector for Windows you need to have some libraries and runtime environment set up.
9
First of all you will need Python. Take care that the time this was written the UPnP-Inspector (or mostly Coherence) did not work with Python 2.6 or 3k. If this did not change meanwhile, take care to always download Python in the version 2.5 (2.5.3 at the time beeing).
12
Setuptools is as a strong dependency for coherence and the UPnP-Inspector as well as a runtime dependency for our developtment environment. In any case if you install the python you probably want to have the handy easy_install command anyway. Install setuptools like this if you didn't yet:
14
Download the easy_setup.py from
15
and run python easy_setup.py from the commandline (maybe you need superuser rights if you aren't a super user yet).
18
Download and install the GTK-Runtime. Don't you dare to throw away the downloaded installer! We need it later.
20
=== Python Bindinds for the runtime ===
21
We also need some Python-Bindings for the GTK-Runtime we just installed. In particular we need:
27
And last but not least we need pywin32. Don't ask, just install it, damn' it! - no seriously, it will be needed to find the right libraries (like gtk) and run properly.
31
We use the cool bbfreeze project to create our binary of the Inspector. So we need that as well. It is very simple because we have easy_install:
35
=== internal dependencies ===
38
If you have Visual-Studio 2003 you can try to install twisted 8.10.0 with easy_install. I was not able to do that so I recommand to do what I did: download the twisted installer from their website and install it ;) .
40
But do it! If you try to install Coherence or UPnP-Inspector before you did that you might fail.
43
To be able to build the Inspector you need Coherence of course. You can simply install it with easy_install:
45
easy_install.exe Coherence
47
This will install Coherence and all its python dependencies (dispite twisted as we already installed ;) )
49
==== The Net thing ====
50
We also need one thing that is optional (as it is only needed for windows)
52
STILL NOT SURE IF IT IS NEEDED. WORKED W/O ON MY VISTA.
55
So let's get the build system. That is pretty easy with the following steps:
57
=== building the binary ===
58
first we need to build the "exe" and corresponding dependencies. that is done by running:
62
in the commandline. This will create a folder called "build". In this folder you'll find the necessary egg files, bindings for gtk and stuff and most importantly an upnp-inspector.exe file.
63
You should be able to run this file directly from the commandline already. If that doesn't work you don't even have to continue ;) .
65
=== package the installer ===
66
Now we need to package that all together into a nice installer. Take care that the gtk-runtime installer is in the same folder now. It is going to be included in the installer and the packaging will fail if it can't find it.
68
Simply do a right-click on the win32.nsi file in the explorere. There should be an entry called "Compile NSIS Script". Click that. Otherwise you can also just start the NSIS-Tool and load the file into it.
70
When it is done, you should always press "Test Installer" for a simple smoketest.
72
You are done :) . There is now a "UPNPInspector-VERSION-INSTALLERVERSION-setup.exe" in your folder. Share it!
75
= Known bugs and todos =
76
- add the icon to the binary
77
- add the icon to the installer
78
- namespace in the installer faulty: UPNPInspector -> UPNP-Inspector
79
- fix up the documentation
80
- remove the py-debug-binary before releasing
81
- uninstaller does not remove start-menu-shortcuts
82
- start-menu-shortcut should not contain version in name
84
plans for after the release
85
- talk with the pidgin guys about outsourcing the gtk-installer-part as a NSIS-Plugin because I guess other will need it later as well
86
- clean up installer-compile-warnings
87
- optional gtk-less-installer
88
- outsource coherence to its own installer