root / trunk / install / IzPack / src / doc / introduction.tex @ 11445
History | View | Annotate | Download (6.82 KB)
1 |
% Introduction |
---|---|
2 |
\chapter*{Introduction} |
3 |
|
4 |
% Welcome to :-) |
5 |
\section*{Welcome to \IzPack !} |
6 |
|
7 |
\fbox{\includegraphics[scale=0.5]{img/lang-sel-splash}} |
8 |
\IzPack is a tool that will help you to solve your software installation |
9 |
problems. It is a \Java based software installer builder that will run |
10 |
on any operating system coming with a \textit{Java Virtual Machine |
11 |
(JVM)} that is compliant with the Sun JVM 1.2 or higher. Its design is |
12 |
very modular and you will be able to choose how \textbf{you} want your |
13 |
installer to look and you will also be able to customize it using a very |
14 |
simple \textit{Application Programming Interface (API)}. Although |
15 |
\IzPack is essentially a \Java only application (it can run on virtually |
16 |
any operating system), it can interact in a clean way with the |
17 |
underlying operating system. Native code can interact with it on a |
18 |
specific platform without disturbing the operation on incompatible |
19 |
operating systems. For instance, you can develop Unix-specific code that |
20 |
will be silent if run on Windows. To put it in a nutshell, whereas most |
21 |
of the other \Java installers force you to go their way, \IzPack will |
22 |
let you go \textbf{your way}. Some respectable companies have been using |
23 |
it in order to produce customized installers for their \textsl{very} |
24 |
specific needs.\\ |
25 |
|
26 |
\textit{"So, if it's so good, how much is it ?"} : well, you can get it |
27 |
for free. \textbf{BUT} \IzPack is not a \textit{freeware}. It's not |
28 |
\textit{free} as in \textit{"free beer"} but \textit{"free as in free |
29 |
speech"}. So it's neither \textit{freeware} nor \textit{public domain}. |
30 |
It is software covered by the \textsc{GNU General Public License} (GPL). |
31 |
It uses the tactic of \textit{copyleft} : to make it short, you can use |
32 |
it, modify it and redistribute it freely but you must also make your |
33 |
modifications available to everyone whenever you publish a modified |
34 |
version of a \textit{copylefted} software. You have access to the |
35 |
\IzPack source code and you can modify it to make it suit your needs, |
36 |
but if you publish such a modified version, you are forced to publish |
37 |
the modifications you've made. \underline{That's a fair exchange of |
38 |
expertise and work}. To learn more about the GPL license and the |
39 |
\textit{copyleft} principles, visit \mbox{\url{http://www.gnu.org/}}.\\ |
40 |
|
41 |
% Features |
42 |
\section*{The Features} |
43 |
|
44 |
\IzPack uses XML files to describe installations. When you make an |
45 |
installer, you have a choice of panels. You can see panels as a kind of |
46 |
plugin that composes the installer. For instance, a panel can choose the |
47 |
installation path, the packs to install, prompt the user for a license |
48 |
agreement and so on. This approach is very modular. You can also create |
49 |
your own panels if you have specific needs. In some cases you even have |
50 |
a choice from multiple panel versions for the same task. You can also |
51 |
choose the order in which panels appear during the installation process. |
52 |
\IzPack can be used in a number of different ways: |
53 |
\begin{itemize} |
54 |
\item by writing the XML installation file "by hand" and compiling |
55 |
it with the command line compiler |
56 |
\item by invoking the compiler from the great \textsc{Apache Jakarta |
57 |
Ant} tool (see \url{http://jakarta.apache.org/}) as \IzPack can be |
58 |
used as a task for \textsc{Ant} |
59 |
\end{itemize}\ |
60 |
|
61 |
Here is a brief (and certainly incomplete !) list of the main \IzPack features : |
62 |
\begin{itemize} |
63 |
\item XML based installation files |
64 |
\item easy internationalization using XML files (10 translations are already |
65 |
available) |
66 |
\item Ant integration, command-line compiler |
67 |
\item easy customization with the panels and a rich API (even an XML parser is |
68 |
included !) |
69 |
\item powerful variable substitution system that you can use to customize |
70 |
scripts and more generally any text-based file |
71 |
\item different kinds of installers (standard, web-based, ...) |
72 |
\item launching of external executables during the installation process and Unix |
73 |
executable flag support (useful for the scripts for instance) |
74 |
\item layout of the installation files in packs (some can be optional) |
75 |
\item native code integration facilities |
76 |
\item jar files nesting support |
77 |
\item ... \textsl{more things to discover and create !}. |
78 |
\end{itemize}\ |
79 |
|
80 |
% Development |
81 |
\section*{The Development} |
82 |
|
83 |
I started writing \IzPack in April 2001 and many people have helped me |
84 |
improving it since. I prefer not to mention them here as I would for sure forget |
85 |
some of them, so please check the file named \texttt{Thanks.txt} which I try to |
86 |
get as up-to-date as possible in order to mention everyone who helped me. As far |
87 |
as I'm concerned, I'm a french student and I rather see this as a fun activity |
88 |
in my free time where I can learn a lot of great things. The contributors to the |
89 |
project are both individuals and companies. Help can take any form : |
90 |
\begin{itemize} |
91 |
\item translations |
92 |
\item new features and various fixes |
93 |
\item bug fixes |
94 |
\item writing manuals |
95 |
\item ... anything else you like :-) |
96 |
\end{itemize}\ |
97 |
|
98 |
The official \IzPack homepage is located at |
99 |
\mbox{\url{http://www.izforge.com/izpack/}}. The IzPack developer services |
100 |
(mailing-lists, CVS, patches manager, bugs tracker, ...) are generously hosted |
101 |
by BerliOS. The IzPack BerliOS section is located at |
102 |
\mbox{\url{http://developer.berlios.de/projects/izpack/}}. Feel free to |
103 |
use these services. In particular, there are two mailing-lists: |
104 |
\begin{itemize} |
105 |
\item \texttt{izpack-devel}: used for the IzPack development |
106 |
\item \texttt{izpack-users}: general users lounge, great to get some help with |
107 |
IzPack. |
108 |
\end{itemize}\ |
109 |
|
110 |
% 3rd party used |
111 |
\section*{3rd party code used in \IzPack} |
112 |
|
113 |
\IzPack uses several 3rd party libraries and I would like to mention them in |
114 |
respect for their respective authors work : |
115 |
\begin{itemize} |
116 |
\item \textit{NanoXML} by Marc \textsc{De Scheemaecker} : the XML parser used |
117 |
inside \IzPack and released under a \textit{zlib/png}-style license - see\\ |
118 |
\url{http://nanoxml.sourceforge.net/} - |
119 |
\item \textit{Kunststoff Look and Feel} by Incors Gmbh : a Swing\texttrademark |
120 |
\ Look and Feel |
121 |
that can be used for installers. It \textbf{really} looks good and |
122 |
is released under the \textsc{GNU Lesser General Public License (LGPL)} - see |
123 |
\url{http://www.incors.org/} - |
124 |
\item \textit{Crystal-SVG Icons} : the icons used in \IzPack come from |
125 |
the great work of Everaldo (\url{http://www.everaldo.com/}) that makes KDE 3.2 |
126 |
look so sweet |
127 |
\item \textit{Some Apache Jakarta classes and libraries} : released under the |
128 |
\textit{Apache License} |
129 |
\item \textit{Metouia Look and Feel} by Taoufik Romdhane : released under the |
130 |
\textit{LGPL license} - see \url{http://mlf.sf.net/} |
131 |
\item \textit{Liquid Look and Feel} by Miroslav Lazarevic : released under the |
132 |
\textit{LGPL license} - see \url{liquidlnf.sf.net/} |
133 |
\item \textit{JGoodies Looks} by Karsten Lentzsch : released under a |
134 |
\textit{BSD-style license} - see \url{http://looks.dev.java.net/}. |
135 |
\end{itemize}\ |
136 |
|
137 |
So, now let's dive into understanding how \IzPack works. You'll be |
138 |
surprised to see how powerful and simple it can be :-) |