Statistics
| Revision:

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 :-)