Re: Release: Camelbox 2008.120.0145Z



On Wed, Apr 30, 2008 at 7:03 PM, Adam Kennedy
<adamkennedybackup gmail com> wrote:
Strawberry has some existing functionality for installing binary
 packages, via both PPM and PAR packages.

 ppi also has support for hosting scripted installs at URIs via the p5i
 file format.

 But part of the mandate for Vanilla/Strawberry is to avoid inventing
 anything new and just take advantage of existing methodologies.

 The ideal case is that we could get GTK packaged as PAR packages of
 something similar.

 We're also temporarily (until we find a better way) using a "Vanilla
 PAR" style package, which has additional support for installing into the
 c directories, but that is only available at distro build time, not
 post-install.

 Given that camelbox has done the work to build the binary package, one
 option might be to add support for camelbox packages to Perl::Dist...

 I don't really understand much about how camelbox works, I've looked in
 the repository but I don't really see much of anything in the way of
 code/etc, so I'm not sure at this point how exactly it works. Until I
 work that out, there's not much more I can add.

Take a look at it from the other direction, i.e. if you're going to
use a Windows installer of some kind to do all of the work,  which
installers for Windows provide what functionality?  That's sort of the
way I approached packages for Camelbox. If I wanted to install
everything via the NSIS (Nullsoft) installer, I'm limited to whatever
archive formats are supported in the installer.

The other thing I'm always looking at is archive file size, I want to
get the smallest sizes possible, so people on dialup or slow links are
not left out.

Fortunately, the NSIS installer (http://nsis.sf.net) has a lot of
plugins, and I found one that does tar + [LZMA|bzip|gzip], so I get my
choice of compression.  Also, I just realized the other day that you
can use the same installer to add more packages if you did not perform
a Full Install in the first place; you just run the installer and
select packages you want (or a Full Install even), and it will
download/re-download and unpack the archive files that you requested.

Unfortunately, since the packages are basically tarballs, I have to
either package metadata inside the package archive as a file, or
figure out some other way of doing it.  I do like how Debian/Ubuntu
does it (package files are separate from metadata files, see
/var/lib/dpkg/info on a Debian/Ubuntu system to understand what I'm
talking about), but I don't know the magick behind it.

So to get around to answering your question, Camelbox packages are
simply tarballs compressed with LZMA, and the NSIS installer takes
care of downloading and unarchiving the files contained in the
.tar.lzma'ed packages.  The NSIS installer for Windows is pretty
flexible, if you haven't taken a look at what it can do, you can check
out my installer files to see how I'm using it:

http://code.google.com/p/camelbox/source/browse/trunk/installer/

Specifically, camelbox_builder.nsi, camelbox_packages.nsh and
camelbox_functions.nsh in that directory.

The filelists that I feed to tar for creating the package archives are
located here:

http://code.google.com/p/camelbox/source/browse/trunk/build/filelists

Any of the files without numbers in front can be used with the -T
switch to tar to build a package archive of the same name as the
filelist file.

My next big task is to automate generating the 'camelbox_packages.nsh'
file, once I do that, it would be trivial to generate the Gtk2-Perl
add-on installer for Strawberry Perl.

As far as manipulating the .tar.lzma packages, once Camelbox is
installed,  UnxUtils provides a copy of GNU tar, and I've included a
copy of lzma.exe from the 7-Zip SDK, so the basics are there for
writing package manipulation tools in Perl (which would call the
external binaries as needed), or even in POSIX sh sematics, as there's
a copy of sh.exe included with UnxUtils.

By the way list moderators, if this thread is getting too far off of
gtk-perl (it's certainly getting long), please let us know so we can
move this thread to a more appropriate list.

Thanks,

Brian



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]