_posts/2013-04-04-x_apacheopenoffice_a_portable_applications.html (157 lines of code) (raw):
---
layout: post
status: PUBLISHED
published: true
title: 'X-ApacheOpenOffice: A Portable Applications Version of Apache OpenOffice from
winPenPack'
id: 1e661178-11bd-4fec-a9f5-b3234511339b
date: '2013-04-04 12:12:08 -0400'
categories: ooo
tags: []
permalink: OOo/entry/x_apacheopenoffice_a_portable_applications
---
<p>We receive many questions from users looking for a portable version of Apache OpenOffice. "Portable Applications"<span lang="en"><span></span></span> are software applications designed or adapted to run from portable storage, like a USB memory stick, without requiring an installation. Such applications allow you to bring your applications, settings and documents with you. One popular portable version of OpenOffice is "<a href="http://www.winpenpack.com/en/download.php?view.1341">X-ApacheOpenOffice</a>", from the <a href="http://www.winpenpack.com">winPenPack</a> open source project. We interviewed the founder of winPenPack, <span class="il">Danilo</span><br />
Leggieri, and his team to learn more. </p></p>
<p align="center"><img src="https://blogs.apache.org/OOo/mediaresource/2b482de6-b8ae-4bc0-87f2-e136a9d1b502" /></p>
<p align="left">
<p></p>
<h3>What is winPenPack? How did the project start? How many people work on the project?<br />
</h3></p>
<div class="gmail_quote">
<div class="im">
<div> </div>
</p></div>
<div>
<p>Well, it is really difficult to describe in a few words what this project<br />
is for us, because since from the first moment has begun to be part of our<br />
own life... Briefly we can say that winPenPack is an Italian open source<br />
project that deals with portable software, both natively portable <i>and portabilized</i> by means of X-Launcher, our portable program launcher. These<br />
apps can be grouped into suites or can be used also as standalone<br />
portable programs, adapting with end users preferences.</p>
<p>winPenPack philosophy is well summarized by our (very restrictive) definition of<br />
"portable software": a portable program can't simply be a "no-install"<br />
program, but must also be able to save its settings into his own folder<br />
(or a user-definable folder), does not write settings or leave other data in user folders (i.e. into<br />
c:\Users\TheUserName\AppData\<wbr />Roaming\ or c:\Documents and<br />
Settings\TheUserName) or into the registry, must be able to run from a<br />
USB pen drive and can perform path normalizations moving around different<br />
PCs (where the pen drive could be installed with different drive letters).<br />
Obviously, all of these programs can be executed also from hard<br />
drives, greatly simplifying recovery operations of all programs (and<br />
their preferred configurations) when reinstalling the operating system.</p>
<p>Our<br />
project started in November 2005 by a brilliant intuition of <span class="il">Danilo</span><br />
Leggieri (AKA Danix, the founder of the project). <span class="il">Danilo</span> and a couple<br />
of "web friends" expanded the project and the community grew very<br />
quickly. Since that date, we have issued about 20 new releases and hundreds<br />
of Open Source portable applications. Actually, the project is well<br />
known in Italy and is growing also abroad. winPenPack is hosted on<br />
SourceForge and all the collections are regularly distributed also in<br />
bundles with some IT magazines. The community of users has grown over<br />
the years and has actively contributed to the growth of the whole project.<br />
<a href="http://www.winpenpack.com">The site</a> currently hosts various projects created and suggested also by forum members, and is also used for bug reporting and users<br />
suggestions.</p>
<p>Currently, the project involves 6 officially active<br />
people and a lot of contributors (translators, testers, and so on). All<br />
of them are spending their time completely for free, working on the<br />
project out of pure passion. Each member of the staff has a different<br />
job in "normal life", not necessarily connected to the world of computer<br />
and information technology.</p>
<h3>How do you make a winPenPack application? What kinds of things do you need to do to make a desktop application portable?<br />
</h3>
</p></div>
<div>The core of all our portabilizations is X-Launcher, the winPenPack<br />
program launcher. A program portabilized by X-Launcher is called an "X-Program". The folder structure of any X-Program always contains a \Bin<br />
folder (the program folder) and a \User folder (the settings folder), plus<br />
other optional folders, such as \Documents or \Downloads (depending on the<br />
nature of the portabilized program). At the root of this structure there<br />
is X-ProgramName.exe (the launcher of "ProgramName" program) and<br />
X-ProgramName.ini (the text file that contains all the settings and<br />
instructions for X-ProgramName.exe to make portable the portabilized<br />
program). Due to its nature, the .ini file can be easily edited with any<br />
text editor, simplifying the creation, the testing and the fine-tuning of<br />
the portabilization. The various sections of the X-ProgramName.ini file<br />
allow us to define the X-Launcher behavior towards the registry or the<br />
user folders or to perform other actions. We can easily copy or move<br />
registry keys or files or folders back and forth beween the USB pen drive<br />
and the PC hard drive, leaving the host PC<br />
in the exactly same state it was before we executed it on our<br />
X-Program. So X-Launcher allows us to recreate the environment in which a<br />
program works correctly (registry keys, user folders, etc.), but, after<br />
the program execution completes, it leaves the PC "clean", because when closing the<br />
program all these keys (or files) are moved back into the \User folder<br />
of the portabilized program folders structure, ready to recreate the<br />
environment at the next execution.</p>
<p>The process of portabilization of a<br />
program passes through various steps. First of all, someone (a team<br />
member or a forum user) signals an interesting program. We test its<br />
portability through <a href="http://sourceforge.net/projects/regshot/">RegShot</a>, which helps us understand if the program<br />
uses the registry or the user folders for saving its settings or for<br />
other purposes. If, after our tests, the program turns out to be<br />
natively 100% portable, it is added to the "Portable Software" section<br />
of our Download area. If the program is not fully portable, we check<br />
whether it is possible to make it portable through X-Launcher. This<br />
phase reuses all the information gathered during portability tests to<br />
determine which features of X-Launcher should be enabled to portabilize<br />
the program. This is the most important step, that requires all the<br />
portabilization skills of our developers, and often makes the difference<br />
between being able to consider a program portabilizable or not. The<br />
last step is the packaging of the X-Program and its distribution through<br />
our "X-Software" Download area. Sometimes even 100% portable programs<br />
can receive some benefit from X-Launcher (for example, backups of<br />
configurations, paths normalization, use in conjunction with external<br />
libraries like Java), so we create also X-Programs of that kind.</p>
<h3>Did you run into any special challenges when making the portable version of Apache OpenOffice (X-ApacheOpenOffice)? Are there any changes we could make in the OpenOffice to make portable versions more powerful?<br />
</h3>
</p></div>
<div>
<p>For developing X-ApacheOpenOffice Portable we were able to put into<br />
practice our previous knowledge acquired in past years with early<br />
versions of OpenOffice. This background helped us a lot for speeding up<br />
the development of X-AOO Portable. </p>
<p>The more relevant features added to Apache OpenOffice for building the completely portable X-ApacheOpenOffice Portable are:</p>
<ol>
<li>Path normalization: all paths of recent files that are saved into X-AOO Portable folder structure have been normalized</li>
<li>"System" folders: the \Documents and \Backups X-ApacheOpenOffice<br />
Portable subfolders have been set as "system" folders, also moving the<br />
main folder</li>
<li>Disabled quickstart.exe: quickstart.exe has been<br />
disabled to prevent the soffice.exe process from remaining active in the traybar<br />
after closing the program, or when the user tries to disconnect<br />
the USB pen drive from the PC</li>
<li><a href="http://www.winpenpack.com/en/page.php?39">JavaGet</a> integration: the<br />
integration of JavaGet functions into the launcher allows X-AOO to work<br />
with or without a Java installation present on the host PC</li>
</ol>
<p>We<br />
haven't had particular challenges to develop our portable version (just<br />
some extra-time due to the download of all language versions to be<br />
merged into one single X-Program). However, the fact that Apache<br />
OpenOffice recognizes automatically the OS language has simplified our<br />
work, allowing us to have a single launcher. For the future we would<br />
like very much also a monolithic multi-language setup of Apache<br />
OpenOffice to be used as a base for our portable X-ApacheOpenOffice<br />
Portable.</p>
<h3>When I think of portable applications I think mainly of putting apps on USB keys. But are you seeing any other interesting uses, like people running their apps from the cloud, DropBox, etc.?</h3>
</p></div>
<div>Portable programs aren't simply "apps to be run from USB keys".<br />
Portable programs allow the users to carry in their pockets all their<br />
preferred applications, with all their preferred settings, to be run anywhere they find a Windows PC with a free USB port. That's it. We<br />
could even say that the portable programs were the forerunners of the<br />
cloud: your programs, everywhere... At this moment, we see cloud apps<br />
more oriented to mobile devices (that are "portable" by definition).<br />
Windows programs need an operating system in which to be executed. If we<br />
would be able to run Windows portable programs from the cloud, the only<br />
thing that we would do without would be exactly our USB pen drive... </p>
<h3>Where can readers go to learn more about winPenPack or to help with the project?<br />
</h3>
</p></div>
</p></div>
<p>Of course on <a href="http://www.winpenpack.com">our site</a>! We have a <a href="http://www.winpenpack.com/en/page.php?10">"Documentation</a>" section that with<br />
considerable efforts we have translated almost entirely in English, in<br />
order to help as many users as possible. We have also<br />
an <a href="http://www.winpenpack.com/en/e107_plugins/forum/forum_viewforum.php?24">English forum</a> where we answer all users' questions and discuss any<br />
other aspect of programs portabilization. You all are welcome to visit<br />
us and donate to the project to allow us to continue to develop even<br />
more exciting portabilizations! </p>
<p></p>