I will present my project the way Gil Tal has done it.
The project aim at developing an installer tool, used to select, download (if not a CDRom) and install applications distributed in WinLibre distribution. This installer will be implemented in Python with a GUI developped in WxPython. We will use cUrl libraries in order to download the needed files. A XML file will describe where to find the mirror sites to download the different files. This file can be updated in order to allways download the latest version of the softwares. This XML file can be the same that the one used by the “WinLibre Updater”. Another XML file will describe which applications are installed on the current computer. We will also register the version number abd where we have installed the application. Our installer will be launched each time the end user want to install a new application from the “Winlibre Control Center”.
Portability to other OS must be kept in mind. MacOS X and linux, in particular.
This sequence simplify the work of the administrator. He just needs to update the WinLibre.xml file on the server. When an end user wants to use WinLibre installer, he will use the latest version of the applications. I will need to work with the person who will develop the Winlibre Upater and Control Center in order to define the XML Files format.
This program, written in Python, will be transformed in an executable with py2exe. This way, we don’t need to install Python to use our installer.
Computer.xml can be defined like the following:
<Package name="WinLibre_Installer" version=" 2.1" path="...."/> <Package name="FirstAppliName" version="2.3.4" path="...."> <Dependencies> <Package name="DependencieName1" version="1.0.0" path="..."/> </Dependencies> </Package> <Package name="SecondAppliName" version="1.2.3" path="...."/>
It is just a list of name and version of each installed package.
The WinLibre.xml file contains a list of download servers for each package, its path as well as its dependencies.
<?xml version="1.0" ?> <Distribution Name="WinLibre" Version="0.1"> <Category Name="Bureautique"> <Description language="fr"> <p> Everything you need at the office</p> </Description> <Image Name="Bureautique.jpg" Size="5416" Width="32" Height="32" MD5Sum="6f5902ac237024bdd0c176cb93063dc4"> <Mirror>http://www.winlibre.com/files/soc/Office.jpg</Mirror> </Image> <Packages> <Package Name="OpenOffice.org" Version="1.1.3"> <description language="en"> <p> Complete, Microsoft Office compatible, sofware suite.</p> <p> Writer, Calc, Impress, Draw</p> <p> Web: <link>www.winlibre.com/en/Articles/Office/OpenOffice.Org.php</link></p> </description> <Image Name="OpenOffice.jpg" Size="5416" Width="32" Height="32" MD5Sum="6f5902ac237024bdd0c176cb93063dc4"> <Mirror>http://www.winlibre.com/files/soc/OpenOffice.jpg</Mirror> </Image> <File Name="OpenOffice.org_1.1.3.exe" Size="47205416" MD5Sum="6f5902ac237024bdd0c176cb93063dc4"> <Mirror>http://ftp.heanet.ie/mirrors/openoffice.org/stable/1.1.3/OOo_1.1.3_Win32Intel_install.exe</Mirror> <Mirror>http://mirrors.sunsite.dk/openoffice/stable/1.1.3/OOo_1.1.3_Win32Intel_install.exe</Mirror> <Mirror>ftp://ftp.tu-chemnitz.de/pub/openoffice/stable/1.1.3/OOo_1.1.3_Win32Intel_install.exe</Mirror> </File> <Installation RegistryKey="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\"> <Dependencies> <Dependence Name="j2re" Version="1.4.2-05" Install="before" Priority="Needed" /> <Dependence Name="DicOOo" Version="1.0.1" Install="after" Priority="Optional" /> </Dependencies> </Installation> </Package> </Packages> </Category> </Distribution>
As I told in the previsous section, the format of the XML files need to be defined with people who are working on the project. This is just a proposition.
I will be able to start working on the code at the end of June until the begining of september. I would allocate at least 30 hours each week to the project.
In a first time, I will develop the installer. In a second time I will develop the updater.