root / trunk / install / IzPack / src / doc / introduction.tex @ 11445
History | View | Annotate | Download (6.82 KB)
1 | 5819 | cesar | % 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 :-) |