Julien Ponge

Free Open Source Software Academia Conference

        November 17th & 18th 2009
Associate Professor
Telecommunications, services and usages dept.

CITI / Amazones
      Dynamic systems    Embedded
     ...
From a hack made in a student dorm room...




                                    ... not mine!
...to an industry-backed project.
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
Unique installer
Unique installer   Multiple systems
v2




Download for your operating system



1:   java -Xmx256m -jar filename.jar
2:   chmod -R +x lib/ant/bin
3:   lib/an...
Demo

 One download
 Works everywhere
 Straightforward
~25.000 downloads per month
(...)
JavaOne 2008
Grant
Invited talks



Code contributions




Software licenses
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
Packs, conditions, langpacks,
        libraries, GUI, metadata, ...

Files          Descriptor               Resources



...
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
Compiler




Installer JAR
<installation version="1.0">

  <info>
    <appname>Glassfish</appname>
    <appversion>v2 ur2 b04</appversion>
    <autho...
(...)
<panels>
    <panel   classname="HTMLInfoPanel" />
    <panel   classname="HTMLLicencePanel" />
    <panel   classna...
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="...
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="...
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="...
<pack name="GlassFish" required="yes">
  <description>GlassFish</description>

  <file src="launch-browser.sh" targetdir="...
<conditions>
  <condition type="variable"
   id="start.glassfish">
    <name>gf_start_domain</name>
      <value>true</val...
<guiprefs height="600" resizable="yes" width="800">
  <modifier key="allXGap" value="5"/>
  <modifier key="allYGap" value=...
variables
                Config files,
                 scripts, ...




Content-aware
 replacement
raw         pack200




deflate (gzip)    bzip2
Custom actions




Custom panels     Installer JAR




 3rd-party libs
Custom actions




Custom panels     Installer JAR




 3rd-party libs
.exe


Our very own native launcher, or...
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
MacOSX packages   BitRock InstallBuilder
IzPack is the only
true cross-platform
  installer to date
(...)
(...)
         IzPack is a
        complement
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
1
      Intro + Demo


2
      Some features


3
       Positioning


4
    Thoughts on F/OSS
X11
                v3.0.0          shortcuts
     v2.0 Win32 shortcuts                    CommunityOne
  (rewrite) UserIn...
You decide
                                                                  to use it for
                               ...
Facts
Facts

I did not expect any success.
Facts

I did not expect any success.



You are always the last to know about usages.
Facts

I did not expect any success.



You are always the last to know about usages.



Community does not appear magical...
F/OSS... why?
                    nothing’s free!


Fun   Skills   Advertise




Strategic market shares




Direct revenu...
Project type       “Main” models

                   Consulting
Framework          Training
and libraries      Support
   ...
Start         Easy
                    Solo work

     Users!


     Patches!


Community support

                    Har...
Be open        Recruit developers




Learn to say no   Spread the news!
The hype

Patterns       TDD,     JSR xyz
               BDD




  Best                  Scripting
             IoC & DI
p...
The hype

     Patterns          TDD,           JSR xyz
                       BDD


...your application code will eventua...
Success

More...   emails, requests, expectations, ...


Less...   forgiveness, understanding, ...
Success

  More...    emails, requests, expectations, ...


   Less...   forgiveness, understanding, ...


You can’t scale...
(A)GPL       LGPL, MPL, EPL, ...   BSD, ASL, WTF, ...



Evil               Fair                Liberal
(mostly)

Linux   ...
Governance
          leads, maintainers, committers,
Roles
          contributors, users, ...


          copyright transf...
Thanks to...


The amazing IzPack community
Thanks to...


The amazing IzPack community


                   (good luck friends!)


  &            +
Julien Ponge
INSA-Lyon
INRIA / CITI / Amazones

julien.ponge@insa-lyon.fr
julien.ponge@inria.fr

http://julien.ponge.info/
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Iz Pack
Upcoming SlideShare
Loading in …5
×

Iz Pack

1,056
-1

Published on

Pack is a one-stop solution for packaging, distributing and deploying applications. It is able to generate cross platform, Java-based installers that both encompass and embrace the target operating systems heterogeneity (Windows, Mac OS X, Linux, *BSD, Solaris). IzPack is by no mean rigid and lets you compose your installers the way you want through a wide range of existing features and extension points.

This talk will outline: the IzPack features, its use-cases and positioning against other deployment solutions, the history of the project, from a fun hack made in a student dorm-room to an industry-backed international project thoughts on building a project community, licensing matters, sustaining/scaling a project in the long term and business-model considerations.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,056
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Iz Pack

  1. 1. Julien Ponge Free Open Source Software Academia Conference November 17th & 18th 2009
  2. 2. Associate Professor Telecommunications, services and usages dept. CITI / Amazones Dynamic systems Embedded Formal systems Pervasive Observation Ambient Security Mobile
  3. 3. From a hack made in a student dorm room... ... not mine!
  4. 4. ...to an industry-backed project.
  5. 5. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  6. 6. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  7. 7. Unique installer
  8. 8. Unique installer Multiple systems
  9. 9. v2 Download for your operating system 1: java -Xmx256m -jar filename.jar 2: chmod -R +x lib/ant/bin 3: lib/ant/bin/ant -f setup.xml 4: bin/asadmin start-domain domain
  10. 10. Demo One download Works everywhere Straightforward
  11. 11. ~25.000 downloads per month
  12. 12. (...)
  13. 13. JavaOne 2008 Grant Invited talks Code contributions Software licenses
  14. 14. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  15. 15. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  16. 16. Packs, conditions, langpacks, libraries, GUI, metadata, ... Files Descriptor Resources Compiler Installer JAR
  17. 17. Compiler Installer JAR
  18. 18. Compiler Installer JAR
  19. 19. Compiler Installer JAR
  20. 20. Compiler Installer JAR
  21. 21. <installation version="1.0"> <info> <appname>Glassfish</appname> <appversion>v2 ur2 b04</appversion> <authors> <author email="" name="Julien Ponge (packager)"/> <author email="" name="Sun Microsystems and the GlassFish community"/> </authors> <url>http://glassfish.org/</url> <javaversion>1.5</javaversion> <requiresjdk>yes</requiresjdk> </info> (...)
  22. 22. (...) <panels> <panel classname="HTMLInfoPanel" /> <panel classname="HTMLLicencePanel" /> <panel classname="TargetPanel" /> <panel classname="UserInputPanel" /> <panel classname="InstallPanel" /> <panel classname="ProcessPanel" /> <panel classname="ShortcutPanel" /> <panel classname="SimpleFinishPanel" /> </panels> (...)
  23. 23. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  24. 24. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  25. 25. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> Ant-style: **/* <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" dir/*.class stage="never" os="unix" /> **/*.jar <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" lib/**/*.jar os="unix" /> </pack>
  26. 26. <pack name="GlassFish" required="yes"> <description>GlassFish</description> <file src="launch-browser.sh" targetdir="$INSTALL_PATH/bin" condition="izpack.macinstall" /> <fileset dir="linux" targetdir="$INSTALL_PATH" condition="izpack.linuxinstall"> <% linux_specific.each do |file| %> <include name="<%= file %>"/> <% end %> </fileset> <executable targetfile="$INSTALL_PATH/lib/ant/bin/ant" stage="never" os="unix" /> <parsable targetfile="$INSTALL_PATH/bin/launch-browser.sh" os="unix" /> </pack>
  27. 27. <conditions> <condition type="variable" id="start.glassfish"> <name>gf_start_domain</name> <value>true</value> </condition> </conditions>
  28. 28. <guiprefs height="600" resizable="yes" width="800"> <modifier key="allXGap" value="5"/> <modifier key="allYGap" value="5"/> <modifier key="paragraphYGap" value="15"/> <modifier key="useHeadingPanel" value="yes"/> <modifier key="headingLineCount" value="1"/> <modifier key="headingFontSize" value="2"/> <modifier key="headingBackgroundColor" value="0x00ffffff"/> <modifier key="headingPanelCounter" value="text"/> <modifier key="headingPanelCounterPos" value="inHeading"/> </guiprefs>
  29. 29. variables Config files, scripts, ... Content-aware replacement
  30. 30. raw pack200 deflate (gzip) bzip2
  31. 31. Custom actions Custom panels Installer JAR 3rd-party libs
  32. 32. Custom actions Custom panels Installer JAR 3rd-party libs
  33. 33. .exe Our very own native launcher, or...
  34. 34. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  35. 35. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  36. 36. MacOSX packages BitRock InstallBuilder
  37. 37. IzPack is the only true cross-platform installer to date
  38. 38. (...)
  39. 39. (...) IzPack is a complement
  40. 40. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  41. 41. 1 Intro + Demo 2 Some features 3 Positioning 4 Thoughts on F/OSS
  42. 42. X11 v3.0.0 shortcuts v2.0 Win32 shortcuts CommunityOne (rewrite) UserInputPanel GPL JavaOne 2001 2004 2008 2009 03 08 11 08 02 01 05 04 05 04 11 2002 2005 v1.0 v2.10.0 Move to Move to v4.3.0 v4.3.2, CVS @TuxFamily BerliOS Codehaus fOSSa Fast development Steady growth, people keep on joining
  43. 43. You decide to use it for X11 your next projects v3.0.0 shortcuts v2.0 Win32 shortcuts CommunityOne (rewrite) UserInputPanel GPL JavaOne 2001 2004 2008 2009 03 08 11 08 02 01 05 04 05 04 11 2002 2005 v1.0 v2.10.0 Move to Move to v4.3.0 v4.3.2, CVS @TuxFamily BerliOS Codehaus fOSSa Fast development Steady growth, people keep on joining
  44. 44. Facts
  45. 45. Facts I did not expect any success.
  46. 46. Facts I did not expect any success. You are always the last to know about usages.
  47. 47. Facts I did not expect any success. You are always the last to know about usages. Community does not appear magically.
  48. 48. F/OSS... why? nothing’s free! Fun Skills Advertise Strategic market shares Direct revenue streams
  49. 49. Project type “Main” models Consulting Framework Training and libraries Support Dual licensing Support plans Mission-critical Consulting infrastructure Management tools servers Extensions Open Core Products Extensions Customizations
  50. 50. Start Easy Solo work Users! Patches! Community support Hard to reach Mature project Manager work
  51. 51. Be open Recruit developers Learn to say no Spread the news!
  52. 52. The hype Patterns TDD, JSR xyz BDD Best Scripting IoC & DI practices
  53. 53. The hype Patterns TDD, JSR xyz BDD ...your application code will eventually look bad! Best Scripting IoC & DI practices
  54. 54. Success More... emails, requests, expectations, ... Less... forgiveness, understanding, ...
  55. 55. Success More... emails, requests, expectations, ... Less... forgiveness, understanding, ... You can’t scale... live with it!
  56. 56. (A)GPL LGPL, MPL, EPL, ... BSD, ASL, WTF, ... Evil Fair Liberal (mostly) Linux Eclipse IzPack KDE Mozilla Ruby on Rails Dual licensing OpenOffice.org Android Anxious people XWiki Apache
  57. 57. Governance leads, maintainers, committers, Roles contributors, users, ... copyright transfer agreements, I.P. trademarks, ... coding standards, Rules decision making, voting, ...
  58. 58. Thanks to... The amazing IzPack community
  59. 59. Thanks to... The amazing IzPack community (good luck friends!) & +
  60. 60. Julien Ponge INSA-Lyon INRIA / CITI / Amazones julien.ponge@insa-lyon.fr julien.ponge@inria.fr http://julien.ponge.info/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×