[izpack-users] Specifying Required Packs and OSs

Klaus Bartz bartzkau at gmx.net
Sun Jan 1 22:52:18 CET 2006


Hi Hal,
Am 31.12.2005, 18:42 Uhr, schrieb Hal Vaughan <hal at thresholddigital.com>:

>
> Have you had any problem with the packs for one OS being installed on the
> other OS?

No.

> I'm testing on Linux and WinXp.  I found if I specified one pack
> as "windows" and the other as "linux" the test install on Linux gets  
> only the
> "linux" pack, but the test install on Windows gets both packs.  (And I'm
> using the latest version of IzPack!)
>

"linux" is not a valid name for the OS attribute of all elements like pack,
file, fileset etc.
The attribute OS is old and will be present for compatibility. There only  
the
three values "windows" "unix" and "mac" are valid. The element OS is newer  
and
you can specify the os in more detail. In addition to the family
("windows" "unix" and "mac") you can specify the OS name like "Windows XP".
The name will be given by the VM using System.getProperty("os.name"). I  
doubt
that "linux" will be a valid os.name property of a VM.

> It's little things like this that have left me puzzled.  I've tried all  
> the
> variations on install.xml that I can think of and still run into this
> (and
> problems with the UserInput Panel).
>
> Could you possibly post enough of the packs section of your file so I  
> can see
> how you're specifying which OS each pack goes for?  It doesn't work for  
> me
> unless I specify each file as for a particular OS.

Using the OS attribute "linux" at the element <file> does also NOT work.
It is the same behavior. I had offered that I can look into your pack
declaration. If it is not an option for you, also OK. I think, my real
pack declarations will only confuse you more. Therefore an example of an
install.xml only for seeing how to declare OS dependency of packs:

<installation version="1.0">

     <!-- The info section -->
     <info>
         <appname>InstallTest2</appname>
         <appversion>0.0.1 (build 2006.01.01)</appversion>
         <authors>
             <author email="" name="Klaus Bartz (developer)" />
         </authors>
         <url>http://www.izforge.com/izpack/</url>
         <javaversion>1.4</javaversion>
     </info>

     <!-- Flexible and in the screen proportions -->
     <guiprefs height="600" resizable="yes" width="800">
         <laf name="looks">
             <os family="unix" />
         </laf>
     </guiprefs>

     <!-- We include every langpack -->
     <locale>
         <langpack iso3="eng" />
         <langpack iso3="deu" />
     </locale>
     <!-- The panels in a classic order -->
     <panels>
         <panel classname="TargetPanel" />
         <panel classname="InstallPanel" />
         <panel classname="SimpleFinishPanel" />
     </panels>
     <!-- The packs section -->
     <packs>
         <!-- The core files -->
         <pack name="Core" required="yes">
             <description>The InstallTest core files.</description>
             <file src="core.txt" targetdir="$INSTALL_PATH" />
         </pack>
         <!-- The UNIX core files -->
         <pack name="UnixCore" required="yes" os="unix" >
             <description>The UNIX specific InstallTest core  
files.</description>
             <file src="UnixCore.txt" targetdir="$INSTALL_PATH" />
         </pack>
         <!-- The WINDOWS core files -->
         <pack name="WINCore" required="yes">
             <description>The Windows XP InstallTest core  
files.</description>
             <os family="windows" name="windows xp" />
             <file src="WindowsXPCore.txt" targetdir="$INSTALL_PATH"  />
         </pack>
         <pack name="WINCore" required="yes" os="windows" >
             <description>The InstallTest core files for all Windows  
systems.</description>
             <file src="WindowsCore.txt" targetdir="$INSTALL_PATH"  />
         </pack>
         <!-- The MAC core files -->
         <pack name="MACCore" required="yes" os="mac">
             <description>The InstallTest core files.</description>
             <file src="MacCore.txt" targetdir="$INSTALL_PATH"  />
         </pack>
     </packs>

</installation>



>
> Right now I've had to step back.  I am having so many problems with  
> IzPack I'm
> not sure what to do.  With my program I have to also install RealVNC and
> OpenOffice.  My program has to know where both are and it would look  
> damned
> clumsy if I have a client install both of those THEN, when installing my
> program, my installer asks, "Do you have OpenOffice installed?" and,  
> "What is
> the path name?"  So I really need to either install those programs along  
> with
> mine, which I can do with the Process Panel by copying over the files as
> packs, including parsing paths and such, so the Process Panel will run  
> batch
> files that will do the install with response files that specify  
> directories
> my client has picked for OOo and VNC.
>

On Windows both programs are in the registry. You can look into the
registry since IzPack 3.8 if the installer has read access in the registry.
But this feature is only an undocumented add on of my  
RegistryInstallerListener.
To use it implies knowledge of java and the possibility to extract the  
implicit
rules from an other source. The class
com.izforge.izpack.panels.CheckedHelloPanel
can be used as example.

> I have that working my own install program (which doesn't look as nice as
> IzPack, doesn't do networked installs, and is not as easy to maintain).
> However, to get it working in IzPack, I need to use the Search object in  
> the
> UserInput panel, and no matter what I try, it is completely messed up.   
> I've
> tried using it almost exactly like it was shown in the docs (changed path
> names, but otherwise the same), and it does not work.  Until I can get
> something like this to work for me (so the user can either select an  
> install

You know, I do not use UserInputPanel.


> path for OOo and VNC *OR* tell me where they are), IzPack won't do what I
> need.  I've considered writing my own panels, but I'm not sure I fully
> understand what I need to do that (I'm self taught, so I have a lot of  
> holes
> in my background).

You can only write own custom panels if you are firm with java. IzPack is
not the best place to learn java...
In chapter "Getting started" there is the paragraph
"How to develop and debug IzPack using Eclipse"
Do it. Never write a panel without the possibility to debug. The fastes
way to learn something of the internals of IzPack is to step through an
installation.
For path panels look into
com.izforge.izpack.panels.TargetPanel
An other path panel really needs the methods isValidated() and  
panelActivate()
rest is specific for the target panel. If you would see how to verify  
something,
look into
com.izforge.izpack.panels.JDKPathPanel

>
> So, for now, I've had to set this aside until I can either get some  
> answers,
> find a way to get everything on the UserInput Panel to work correctly, or
> learn enough to write my own panel.  I'm going to take time to think of  
> all
> the issues I'm having, write them up as questions, and post them on the  
> list.
> Then (I hope) when I'm ready to get back to the install part of my  
> program,
> the answers should have been worked out.
>
> Thanks for the response.  I'll be posting my install.xml file when I get  
> back
> to this so I can ask for help on a number of topics.
>
> Hal
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> http://lists.berlios.de/mailman/listinfo/izpack-users
>
>
> __________ NOD32 1.1347 (20051230) Information __________
>
> Diese E-Mail wurde vom NOD32 Antivirus System geprüft
> http://www.nod32.com
>
>



-- 
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/



More information about the izpack-users mailing list