I was trying to package Cygwin for our computer labs
as an MSI, and resigned myself to doing it by hand
since WinInstall LE wouldn't do the trick and we don't
have any other tool here that will even grab a
directory tree and crank out an MSI. Enter izfree - it
tried to work. The packages didn't come out anywhere
near right, nor did it even think about passing
validation. These are the nasties that Cygwin has that
break izfree:
Short filenames that don't map to what wit_filename
generated.
Long filenames that don't map to legal identifiers for
primary keys
Directory paths that are too long for identifiers
Files (perhaps copies of the same file; haven't
checked yet) with the same name, but in different
directories.
And perhaps some others problems that I forgot. I
spent the last day & a half patching and reworking
NewComponents.html to deal with Cygwin. All of these
problems appear to be solved (in the context of a
brand-new MSI file). I modified the arrays so the File
objects are stored rather than file names, rewrote
wit_filename to use the script host's File & Folder
objects for short filenames, and added helper
functions that sanitize strings for the Identifier
type in the MSI database.
I'm attaching my revised NewComponents.html to this
tracker item. A revised izfree.vbs will be attached to
my next tracker item. My changes are based on the
released version 1.0 of izfree.
Revised version to handle stated issues.
Revised version to handle stated issues.
Logged In: YES
user_id=36316
This may have been fixed in version 1.1, you can download
the source if you're feeling adventurous. If it isn't fixed yet, I
will fix it in version 1.1.
If you point me to a cygwin distribution tree (all I can find are
stuff in .bz2 compression, not zips or tarballs) I will test verion
1.1 with that.
I ditched constructing my own short filenames with
wit_filename in favor of using Windows itself to give me the
short filename.
Logged In: YES
user_id=540291
As far as testing goes, I'm just grabbing a post-install
snapshot of Cygwin. After running WinInstall against it, I
found the setup program did not do anything weird. It unpacks
all its stuff into a single directory tree and creates some
registry entries in HKLM\Software\Cygnus Solutions, if I recall
correctly. It isn't fresh in my mind now.
If I need to regenerate this MSI again, I will try the 1.1
sources.
Logged In: YES
user_id=36316
OK, I'll try it out on the installed tree. Before Version 1.1 is
officially released, I'll incorporate any additional fixes from the
files that you uploaded. Thanks for your contribution!
Logged In: YES
user_id=36316
I've looked at this a little closer in the code for version 1.1. It
turns out I was handling the invalid character issue, but was
not handling the issue of constructed database keys
exceeding the size of the key column. I will address this
before version 1.1 is officially released. Thanks again!