[ANN] Yet another Windows installer

Marc Heiler wrote:

To be honest i think it would be better if all those smart Windows guys come together and also work together.

If there are problems that cant be solved, it would be nice if we here
could somehow help out.

Here is my reasons (it is personal):

I develop/write on Linux. Although I have a few problems with Linux
in some areas, in general Linux is a MUCH better plattform than
Windows as far as I am concerned. Writing ruby is quite easy so
my ruby stuff runs on Windows too (sometimes adapting a few things,
but in general this is a true statement).

Now, when I work with windows, I would like to have the option to
install pretty everything that I want to have on windows (which
normally is a lot). It would be great if I could fine-tune
the install. Also the download size for me does not really matter,
if its 50 mb, 100 mb, 150 mb... about a year ago i bought a 4
gig usb stick, very small, for 31 Euros. I think this is quite
cheap to not really care about the mb size anymore, so features
can go in easily as far as I am concerned :slight_smile:
(My personal ruby files are measuring a total of 17 MB files so this
is also not much)

"I don't really need the One-Click Installer anymore, and while it
provides a great starting point and all in one package, it provides more
stuff than I need, I think that others are in a similar position."

I really think the one click installer should be made more modular in
this case. It seems that the windows people are generally unhappy about various things with Windows, and I understand all the frustration, but for me
being a lazy windows-user it would be really better if they all get
together and design a compromise which everyone can accept :slight_smile:

Well ... right now there are quite a few ways to run Ruby on the Windows platform:

1. The One-Click Ruby installer.
2. Instant Rails
3. A package from a vendor whose name I've forgotten that uses an old version of Ruby and Rails to interface to PostgreSQL.
4. jRuby plus the Java Runtime Environment
5. IronRuby
6. Cygwin
7. "Yet another Windows installer"

As for "a compromise which everyone can accept", I would hope that at some point, that would be IronRuby, since it comes from Microsoft. I haven't heard much about the status of IronRuby recently, though.

Luis Lavena wrote:
> Switching to VC8/VC9 or even VC7 requires recompilation of
> dependencies to use the same CRT DLL. Search the list for posts about
> this.

> Been raised before, tried several times, and is impossible to
> accomplish without loosing your brain in the process.

I know. I've looked into that, and as you predicted, I lost my brain. :expressionless:

Took me a few days to recover from that :stuck_out_tongue:

> You're welcome to join us at One-Click Installer Developement List
> (http://rubyforge.org/mailman/listinfo/rubyinstaller-devel\).

Thanks for reminding me. My subscription is being processed.

Great! I'm with the idea of use rubygems as official package maanger
for OCI, and make it more modular:

rubyinstaller-minimal: which ships with Ruby+Rubygems+DLL to make
extensions works

rubyinstaller-plus: provide local copy of the latest gems.

Regarding documenation, another user contributed the CHM version of
RDocs, which are searchable and use less disk space when
uncompressed :slight_smile:

For the time being I'm focusing on getting a new Ruby build with MinGW
+MSYS instead of VC6 one, since I want to cut dependency on
garbagecollect releases.

> Regarding NSIS, I'll prefer move to MSI (Microsoft Installer) to
> provide patches instead of full releases in the future.

AFAIK, NSIS is capable of doing that, just no delta patches (i.e. the
whole file is distributed, and not just the differences).

It's also possible create installer and patches with InnoSetup, but
one of the good things of MSI is that you distribute MSP that can be
automatically generated when you compare two versions of the same
installer (I'm talking of WiX Tools here).

However, NSIS's syntax is giving me headaches. :confused:

Yeah, the people who create the installer scripting language have a
sadistic sense of humor... or they are too over simplified or they are
too over engineered to be actually useful.

Regards,

···

On Mar 18, 5:38 pm, Phillip Gawlowski <cmdjackr...@googlemail.com> wrote:
--
Luis Lavena

> > (IMHO, it might be a great idea to switch to a more recent version of
> > Visual C all together, considering that the Express Edition is free, and
> > can produce non-/NET code, but that's just my opinion).

> Jumping late on this thread (been away in vacation trip).

> Switching to VC8/VC9 or even VC7 requires recompilation of
> dependencies to use the same CRT DLL. Search the list for posts about
> this.

> Been raised before, tried several times, and is impossible to
> accomplish without loosing your brain in the process.

> I think I will move the MinGW+MSYS building process one step further
> and use the better Windows alternatives than traditional dependencies
> (like win_iconv that _why commented previously).

> You're welcome to join us at One-Click Installer Developement List
> (http://rubyforge.org/mailman/listinfo/rubyinstaller-devel\).

As Mailman does not like my email address ( I don't know why but
Mailmen refuse to communicate with me at all) I will send the results
of trying to use the install3 zip archive here.

Weird, are you already registered to other mailing lists in rubyforge?

- there is no script for running the rake task(s), and it might not be
obvious how to run them for people who are not familiar with rake yet.

Well the idea of installer3 is not being used by end-users, but by
developers of Ruby on Windows as "safe bootstrap" that can be
recreated from scratch without huge list of depepdencies to be
manually download, set and everything.

The idea is "Use as much ruby as possible", that means use Rake. We
need some Documentation Love :slight_smile:

- there is no default rake action, and one has to look into the
recipes to find out what are the available actions (download, unpack,
configure, compile, install)

I didn't add one since was playing with the dependencies recipes. I'm
still not convinced this is the best layout for the code, and even
less for the actions I'm performing.

On the original post I commented the task sequence, but since there is
no documentation... :blush:

- rake aborts download action due to execution timeout - probably
depends on download speed

Yeah, Sourcefor servers often timeout, no other alternative than "try
again".

- bsdtar requires zlib1.dll which is not downloaded. This is not
normally present in the system although it might be present if you put
your ruby installation into PATH.

I have a exerb "rake.exe" that weights 600K and is the only executable
I need to bootstrap ruby (without requiring a previous ruby
installation). But if you plan to

-there is some sort of error with directories. It appears the scripts
fail to create sandbox/ruby_build, and running configure fails because
the configure script is not found although it appears to be present.

That's because the task sequence is not performed as defined
originally. Can you provide the steps to recreate? maybe a task is
missing the directory as dependency.

Thanks

No, thank you for your time and comments!

Hope you can workaround the mailman issues (or mail directly to
rubyforge staff) and we can collaborate further.

Regards,

···

On Mar 20, 9:27 am, Michal Suchanek <hramr...@centrum.cz> wrote:

On 18/03/2008, Luis Lavena <luislav...@gmail.com> wrote:
> On Mar 16, 2:12 pm, Phillip Gawlowski <cmdjackr...@googlemail.com> > > wrote:

--
Luis Lavena

Roger Pack wrote:

Get your hands dirty: Help bootstrap Ruby on Windows - Ruby - Ruby-Forum
has some links to an "almost auto" mingw download+compile (basically it's reduced to a rake task). I'm not sure if he has all the dependencies linked in, but I think he does.
That would be far better than the painful experience I experienced getting all the dependencies installed.

(my notes on the process: http://wiki.rubyonrails.org/rails/pages/Win32MingwInstall\)

Ah, that's sure to come in handy. Thanks.

Hm, I'll have to look deeper into GCC than I'd like to find out if that
works.

Theoretically, since my GCC install links against msvcrt.dll, extensions
should still work.

Yeah the extensions worked for me.

That's good news.

Well, I'll go through the info in the links with a fine comb, and find out how much I'll have to do. :stuck_out_tongue:

-- Phillip

M. Edward (Ed) Borasky wrote:

Well ... right now there are quite a few ways to run Ruby on the Windows platform:

1. The One-Click Ruby installer.
2. Instant Rails
3. A package from a vendor whose name I've forgotten that uses an old version of Ruby and Rails to interface to PostgreSQL.
4. jRuby plus the Java Runtime Environment
5. IronRuby
6. Cygwin
7. "Yet another Windows installer"

Well, that's less than the Linux distributions in the world. :stuck_out_tongue:

As for "a compromise which everyone can accept", I would hope that at some point, that would be IronRuby, since it comes from Microsoft. I haven't heard much about the status of IronRuby recently, though.

That link has some info on IronRuby's status and schedule.

-- Phillip Gawlowski

M. Edward (Ed) Borasky wrote:

Well ... right now there are quite a few ways to run Ruby on the Windows platform:

8. msys/mingw32. Kind of a pain to set up. I hope Luis Lavena's project continues to make some progress with this. [ruby-talk:286668]

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Luis Lavena wrote:

I know. I've looked into that, and as you predicted, I lost my brain. :expressionless:

Took me a few days to recover from that :stuck_out_tongue:

Well, I haven't yet noticed its loss yet, so.. :stuck_out_tongue:

Great! I'm with the idea of use rubygems as official package maanger
for OCI, and make it more modular:

rubyinstaller-minimal: which ships with Ruby+Rubygems+DLL to make
extensions works

rubyinstaller-plus: provide local copy of the latest gems.

Regarding documenation, another user contributed the CHM version of
RDocs, which are searchable and use less disk space when
uncompressed :slight_smile:

That sounds like a great starting point and a good release plan.

It's also possible create installer and patches with InnoSetup, but
one of the good things of MSI is that you distribute MSP that can be
automatically generated when you compare two versions of the same
installer (I'm talking of WiX Tools here).

Ah, I didn't know that. Which means, I'll look into the WiX Tools again.

Yeah, the people who create the installer scripting language have a
sadistic sense of humor... or they are too over simplified or they are
too over engineered to be actually useful.

Or they are Perl-damaged, what with all the sigils and magic variables..

I've tried to find a solution to dynamically gather files to create an installer. I can't make head nor tail out of the sample code I've found.

Ah, well, maybe some kind soul will create an installer with Ruby as scripting language. :wink:

-- Phillip Gawlowski

···

On Mar 18, 5:38 pm, Phillip Gawlowski <cmdjackr...@googlemail.com> > wrote:

>
>
>
>
> > > (IMHO, it might be a great idea to switch to a more recent version of
> > > Visual C all together, considering that the Express Edition is free, and
> > > can produce non-/NET code, but that's just my opinion).
>
> > Jumping late on this thread (been away in vacation trip).
>
> > Switching to VC8/VC9 or even VC7 requires recompilation of
> > dependencies to use the same CRT DLL. Search the list for posts about
> > this.
>
> > Been raised before, tried several times, and is impossible to
> > accomplish without loosing your brain in the process.
>
> > I think I will move the MinGW+MSYS building process one step further
> > and use the better Windows alternatives than traditional dependencies
> > (like win_iconv that _why commented previously).
>
> > You're welcome to join us at One-Click Installer Developement List
> > (http://rubyforge.org/mailman/listinfo/rubyinstaller-devel\).
>
> As Mailman does not like my email address ( I don't know why but
> Mailmen refuse to communicate with me at all) I will send the results
> of trying to use the install3 zip archive here.
>

Weird, are you already registered to other mailing lists in rubyforge?

Probably not. But I cannot subscribe to Debian lists either. And they
are all managed by MailMan so there seems to be a pattern.

> - there is no script for running the rake task(s), and it might not be
> obvious how to run them for people who are not familiar with rake yet.

Well the idea of installer3 is not being used by end-users, but by
developers of Ruby on Windows as "safe bootstrap" that can be
recreated from scratch without huge list of depepdencies to be
manually download, set and everything.

The idea is "Use as much ruby as possible", that means use Rake. We
need some Documentation Love :slight_smile:

Well, I consider myself sort of developer but I haven't used Rake so far.

> - there is no default rake action, and one has to look into the
> recipes to find out what are the available actions (download, unpack,
> configure, compile, install)

I didn't add one since was playing with the dependencies recipes. I'm
still not convinced this is the best layout for the code, and even
less for the actions I'm performing.

On the original post I commented the task sequence, but since there is
no documentation... :blush:

That's why the script would be helpful :wink:

> - rake aborts download action due to execution timeout - probably
> depends on download speed
>

Yeah, Sourcefor servers often timeout, no other alternative than "try
again".

I do not get a download timeout or it is quite well obfuscated at
least. I get slow download of packages one after another and then I
get something like:

execution timed out
rake aborted

> - bsdtar requires zlib1.dll which is not downloaded. This is not
> normally present in the system although it might be present if you put
> your ruby installation into PATH.
>

I have a exerb "rake.exe" that weights 600K and is the only executable
I need to bootstrap ruby (without requiring a previous ruby
installation). But if you plan to

I installed the OCI but did not do anything to put the ruby bin
directory into my path, and the installer did not do it either. There
must be a zlib1.dll somewhere in your system but there's none in mine.
It is quite common so it might be installed by some other software.

> -there is some sort of error with directories. It appears the scripts
> fail to create sandbox/ruby_build, and running configure fails because
> the configure script is not found although it appears to be present.
>

That's because the task sequence is not performed as defined
originally. Can you provide the steps to recreate? maybe a task is
missing the directory as dependency.

Yes, I tried some tasks until I was sure there's nothing that does not
produce any error but it might be that executing the tasks out of
order leaves some fallout.

> Thanks

No, thank you for your time and comments!

Hope you can workaround the mailman issues (or mail directly to
rubyforge staff) and we can collaborate further.

Heh, MailMan is one of the most evil pieces of GNU software out there.
First it used to have broken web templates that rendered the text
nearly invisible for me (and these took years to fix, and even years
after they were fixed upstream they are still common on the web), and
now it refuses to send any email to me. If I was not convinced it is
just because it is a poorly developed piece of buggy code (that nobody
wants to touch, let alone upgrade, fearing it would explode) I would
think it hates me :wink:

OK, I will try to ask at RF.

Thanks

Michal

···

On 20/03/2008, Luis Lavena <luislavena@gmail.com> wrote:

On Mar 20, 9:27 am, Michal Suchanek <hramr...@centrum.cz> wrote:
> On 18/03/2008, Luis Lavena <luislav...@gmail.com> wrote:
> > On Mar 16, 2:12 pm, Phillip Gawlowski <cmdjackr...@googlemail.com> > > > wrote:

Luis Lavena wrote:

> Great! I'm with the idea of use rubygems as official package maanger
> for OCI, and make it more modular:

> rubyinstaller-minimal: which ships with Ruby+Rubygems+DLL to make
> extensions works

> rubyinstaller-plus: provide local copy of the latest gems.

> Regarding documenation, another user contributed the CHM version of
> RDocs, which are searchable and use less disk space when
> uncompressed :slight_smile:

That sounds like a great starting point and a good release plan.

Yes, but I'm focusing right now on getting ruby properly build with
MinGW... (link posted previously) -- which seems to have a few
'glitches' that need to be fixed (help is welcome) :wink:

> It's also possible create installer and patches with InnoSetup, but
> one of the good things of MSI is that you distribute MSP that can be
> automatically generated when you compare two versions of the same
> installer (I'm talking of WiX Tools here).

Ah, I didn't know that. Which means, I'll look into the WiX Tools again.

Been using WiX for several projects at office (not OSS) and works
great, the best part is that with 1 rake task you can generate
incremental updates without pain :wink:

> Yeah, the people who create the installer scripting language have a
> sadistic sense of humor... or they are too over simplified or they are
> too over engineered to be actually useful.

Or they are Perl-damaged, what with all the sigils and magic variables..

I've tried to find a solution to dynamically gather files to create an
installer. I can't make head nor tail out of the sample code I've found.

WiX Heat is good for that... it creates a WiX fragment definition that
you can include in a module and generate a installer from it.

Ah, well, maybe some kind soul will create an installer with Ruby as
scripting language. :wink:

Sounds like reinventing the wheel, but maybe someone could create a
friendlier DSL to use WiX... XML is making my eyes hurt :stuck_out_tongue:

Regards,

···

On Mar 18, 8:32 pm, Phillip Gawlowski <cmdjackr...@googlemail.com> wrote:
--
Luis Lavena

So at least this Mailman instance works. I did not exhaust all
filtering possibilities while searching for the confirmation email as
I had bad experience with Mailman previously. And it unfortunately
tends to be marked as spam so it is not easy to find.

Sorry about bothering you

Michal

···

On 20/03/2008, Michal Suchanek <hramrach@centrum.cz> wrote:

Heh, MailMan is one of the most evil pieces of GNU software out there.
First it used to have broken web templates that rendered the text
nearly invisible for me (and these took years to fix, and even years
after they were fixed upstream they are still common on the web), and
now it refuses to send any email to me. If I was not convinced it is
just because it is a poorly developed piece of buggy code (that nobody
wants to touch, let alone upgrade, fearing it would explode) I would
think it hates me :wink:

Well, I consider myself sort of developer but I haven't used Rake so far.

I'm just used to do every repetitive task with Rake and I think other
developers will agree.

Anyway, I don't feel very happy with the layout I got for this
project, since the separated task for every dependency are over-
engineered :stuck_out_tongue:

That's why the script would be helpful :wink:

Hmm, a script that just fire 'rake' don't sound too useful :stuck_out_tongue:

I do not get a download timeout or it is quite well obfuscated at
least. I get slow download of packages one after another and then I
get something like:

execution timed out
rake aborted

The error message you get can vary, that depends on the sourceforge
mirror you got. sorry about that.

The idea is that you don't need to download the sources package again
unless you 'clobber' or nuke your downloads directory (rake clean will
only clean the sandbox)

I installed the OCI but did not do anything to put the ruby bin
directory into my path, and the installer did not do it either. There
must be a zlib1.dll somewhere in your system but there's none in mine.
It is quite common so it might be installed by some other software.

If the installer didn't add Ruby\bin into the PATH then you're running
without administrative privileges or something like that.

I just added a README.txt file that roughly indicates zlib1.dll as
requirement.

Yes, I tried some tasks until I was sure there's nothing that does not
produce any error but it might be that executing the tasks out of
order leaves some fallout.

To make you happy: the Rakefile now have a defaults (recipes/
defaults.rake) that:

download,
extract,
prepare,
configure,
compile and
install

The Ruby MinGW build into sandbox/ruby_mingw

Both changes are available in the bazaar branch and inside the zip
file.

Regards,

···

On Mar 20, 5:52 pm, Michal Suchanek <hramr...@centrum.cz> wrote:
--
Luis Lavena

Luis Lavena wrote:

Yes, but I'm focusing right now on getting ruby properly build with
MinGW... (link posted previously) -- which seems to have a few
'glitches' that need to be fixed (help is welcome) :wink:

I'll have to check with my build. I think it went seamlessly, but irb made trouble with it's prompt (or rather, lack there of).

What ever help I can provide, I will. :slight_smile:

Been using WiX for several projects at office (not OSS) and works
great, the best part is that with 1 rake task you can generate
incremental updates without pain :wink:

That's definitely good news.

WiX Heat is good for that... it creates a WiX fragment definition that
you can include in a module and generate a installer from it.

WiX - Wikipedia

Thanks, I'll check that out.

Sounds like reinventing the wheel, but maybe someone could create a
friendlier DSL to use WiX... XML is making my eyes hurt :stuck_out_tongue:

Well, reinventing the wheel can result in a much rounder wheel. But a wrapper would be great (for as many installer solutions as possible, IMO), and make life easier.

-- Phillip Gawlowski