[casetta] Casetta 0.3 Feedback / Windows Installer

[ Thread Index | Date Index | More lists.tuxfamily.org/casetta Archives ]


Hello,

First of all, I would like to give you my feedback about casetta 0.3 : Excellent !
The GUI is very good with a working syntax highlighting :-) and it is more user-friendly now. I didn't not find any disturbing bugs.

Actually, the installation on Microsoft Windows is not easy. As there is no tool to manage dependences this installation is long.
I tried to make a full all-in-one-ready-to-use-out-of-the-box (tm) installer for Windows.

The first step was to "compile" all the python scripts. There are mainly two tools to realize this operation under Microsoft Windows : py2exe and pyinstaller.
I decided to use py2exe. I have not really a good reason for that, but, py2exe seemed to have more users and to be more actively supported.
In fact, py2exe and pyinstaller don't really compile (at the C sense) the python scripts. They just byte-compile it (*.pyc, *.pyd) and create a directory with all the libraries (python modules) and dll needed by the program (including python25.dll). In fact, this is just a kind of "script wrapper", module and dll detector...
I add some problems :
     -> Firstly, py2exe uses a distutils-like script which needs to be executed in the directory where the script which needs to be compiled is located, if this script imports other scripts located in its directory. For example, gasetta.py imports prefs.py, located in the same directory. Therefore, there are two separate compilation scripts for casetta_cli and gasetta. This is a problem because some librairies are duplicated (for example, the casetta python module if copied twince : once in the gasetta build directory, once in the casetta_cli build directory. One solution to this problem would be to copy all gasetta and all casetta_cli files in a common directory and then to create a common pyexe script but, after, it would be difficult to know which compiled files belongs to casetta_cli and which belongs to gasetta (especially in the library.zip, an archive containing all the python modules...) and make the writing of an installer difficult. So I let things like that.
    My second problem was with gasetta, py2exe and pyinstaller are not able to detected all librairies needed and especially, it didn't include all necessary GTK libraries. I tried to include them one-by-one and I discovered that all GTK libraries/config files where needed. So I decided to include the FULL gtk library with Gasetta (This is heavy especially with locales included...). Gtk library is copied in a subdir (gtk-lib) of gasetta

    -> The second step was to make and installer, I choosed NSIS : Nullsoft Scriptable Install System (h
ttp://nsis.sourceforge.net/) because it is free (zlib/libpng licence), well-known, powerful yet simple, very well documented. Belive me, this was THE good choice ! ;-)
I decided to make 2 different installers : one which includes GTK (~9Mo, compressed in LZMA, of course self-extracting installer !), one which does not includes GTK, because the user can already have GTK included (If he installed the gimp before) or simply want to install casetta_cli (~3Mo, compressed in LZMA). In both.This installer features a "modern" look, component choice (Shortcuts, casetta_cli, gasetta), *GTK lib detection*, Control Panel information add/remove. It is internationalized and localized in french (language is detected from the windows settings).

I tried to make my system as reusable as possible, in fact my NSIS scripts are just templates which are used by a python script who generates everything. This means, you will by able to generate casetta 0.4 and next installer, just running a simple python script !


If you feel confused about what I said, have a look at the screenshots : http://xion345.olympe-network.com/casetta-work/windows-installer/screenshots/
Try it : (Choose an installer with or without GTK)
http://xion345.olympe-network.com/casetta-work/windows-installer/setup-casetta-gtk.exe
http://xion345.olympe-network.com/casetta-work/windows-installer/setup-casetta-nogtk.exe


To create a windows installer you need to (all needed files are on :
http://xion345.olympe-network.com/casetta-work/windows-installer/ ):
1 - Copy setup-py2exe.py inside gasetta directory (You can have a look at it....)
2 -
Copy setup-py2exe.py inside casetta_cli directory
3- Copy NSIS-data, all *.nsi scripts, generate-win32-installer.py in the parent dir
4- Run generate-win32-installer.py and answer the questions
5- Compile newly created NSIS scripts(casetta-setup-gtk.nsi, casetta-setup-nogtk.nsi) (Right click -> Compile NSIS script), you will need the NSIS compiler http://nsis.sourceforge.net/Download

Feel free to send me an e-mail for any question, doubt, remark, feedback, etc... about that.
And especially if something in fuzzy English is not clear (I can re-explain in French) :-D !
If you want me to modify anything in the installer, there is no problem. And if you don't like the bitmaps humm...
Yeah, I admit it I am not a GIMP-power-user but I got some pictures from the web, modified them and... the result is not really good... :-D


Known Bugs :
- Required space in the installer is wrong. Don't know why !

PS : There were also some errors in your w32_postinstall script. Casetta_gtk was not replace by gasetta. This is not used by my installer but I corrected it anyway !

Cheers,

--
Fabien ANDRE aka Xion345
Linux User #418689 -- fabien.andre.g@xxxxxxxxxx -- xion345@xxxxxxxxxxxxx
An infinite number of monkeys typing into GNU emacs would never make a good program. ( Linus Torvalds, 1995 )


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/