Forum: Ruby Creating "windows binaries" on Linux

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D8831c4665a164c6ce484003deb1afd6?d=identicon&s=25 Guillaume Marcais (Guest)
on 2006-01-23 16:44
(Received via mailing list)
There was some discussion about packing Windows executable with
tar2rubyscript and rubyscript2exe from a Linux box. Wine was proposed
but I publicly dismissed with the claimed that it didn't support WinXP
calls (and thus not win32-utils). ruby-talk:172349

But I was wrong. wine DOES support WinXP calls, ruby and win32-utils. I
am right now building a cross-platform application with wine 0.9.5, ruby
1.8.2 (one click installer) and wxruby, all from my Linux machine.
tar2rubyscript and rubyscript2exe were installed from gems. Here is what
my rakefile looks like:

------------
DIST = "deviceproxy2"

task :default => [:run_windows]

task :run_linux do
   ruby "init.rb"
end

task :run_windows do
   sh 'wine ruby init.rb'
end

task :pre_build do
   sh "rm -f #{DIST}.tar #{DIST}.tar.gz"
   sh "darcs dist -d '#{DIST}'"
   sh "gunzip #{DIST}.tar.gz"
end

task :build_linux => [:pre_build] do
   sh "tar2rubyscript #{DIST}.tar"
   sh "rubyscript2exe #{DIST}.rb"
end

task :build_windows => [:pre_build] do
   sh <<EOF
unset TMPDIR
wine ruby 'C:\\ruby\\bin\\tar2rubyscript' --tar2rubyscript-preserve
#{DIST}.tar
wine ruby 'C:\\ruby\\bin\\rubyscript2exe' #{DIST}.rb
EOF
end
---------------

The only gotcha is --tar2rubyscript-preserve. For some reason, when
running tar2rubyscript with wine, it fails with an error:

--------------
c:\windows\temp\tar2rubyscript.d.66.1\tar2rubyscript\tar.exe: Cannot add
file *.*: No such file or directory
--------------

Using a tar ball and --tar2rubyscript-preserve skips this step and
everything is cool.

Maybe someone will find this information useful,
Guillaume.
2e4e064abe3ea2a2ccc5b64acdc1ab08?d=identicon&s=25 Erik Veenstra (Guest)
on 2006-01-25 09:59
(Received via mailing list)
> I am right now building a cross-platform application with
> wine 0.9.5, ruby 1.8.2 (one click installer) and wxruby, all
> from my Linux machine.

So, cross-compiling wihth RubyScript2Exe is possible? Nice! :)

> For some reason, when running tar2rubyscript with wine, it
> fails with an error:

You can build the RBA with Tar2RubyScript on Linux, even when
the result will be used in the above mentioned cross-compile
step. There's no need to build the RBA on the (faked) target
platform.

gegroet,
Erik V. - http://www.erikveen.dds.nl/
D8831c4665a164c6ce484003deb1afd6?d=identicon&s=25 Guillaume Marcais (Guest)
on 2006-01-25 18:06
(Received via mailing list)
Le 25 janv. 06, à 03:58, Erik Veenstra a écrit :

>> I am right now building a cross-platform application with
>> wine 0.9.5, ruby 1.8.2 (one click installer) and wxruby, all
>> from my Linux machine.
>
> So, cross-compiling wihth RubyScript2Exe is possible? Nice! :)

Yeah, kind of cool. Thanks for your good work.

Looking back at it, my first attempt was unsuccessful probably because
of my wine installation and my lack of understanding of wine. After a
fresh compile/install of wine, things went much smoother.

>> For some reason, when running tar2rubyscript with wine, it
>> fails with an error:
>
> You can build the RBA with Tar2RubyScript on Linux, even when
> the result will be used in the above mentioned cross-compile
> step. There's no need to build the RBA on the (faked) target
> platform.

Good to know, thanks.

Guillaume.
This topic is locked and can not be replied to.