On Sun, 24 Aug 2008, John Kodis wrote:

> I'm trying to build Shoes for an AMD-64 installation of Fedora Linux.
> Fedora places its 64-bit libraries under /usr/lib64 on this platform,

OK, but do the library directories within the packages that contains
get renamed?  I think they would not.  See below.

> and so to get Shoes to compile, I had to make a few minor changes to
> the Rakefile from the current git version (attached below).

Further remarks from me are in there.
> 
> Other than a few warnings that "call to
> ‘_curl_easy_setopt_err_write_callback’ declared with attribute
> warning: curl_easy_setopt expects a curl_write_callback argument for
> this option", the build seemed to be successful.  However, any attempt
> to run shoes fails with:
> 
>     $ dist/shoes --help
>     no such file to load -- open-uri
> 
> even though:
> 
>     $ irb
>     irb(main):001:0> require 'open-uri'
>     => true

I think you are using a different library when you do that: the one
in shoes (installed by shoes) versus the one installed by ruby.  The
irb belongs to ruby.
> 
> Even after copying the open-uri.rb file from /usr/lib/ruby/1.8/ to
> shoes/dist/ruby/lib/rubygems, the problem persists.  I'd appreciate

Again you may get incompatibilities depending on how they were built.

> any suggestions as to what to try next.  Thanks!
> 
> -- John.
> 
> 
> diff --git a/Rakefile b/Rakefile
> index 39ac483..be31238 100644
> --- a/Rakefile
> +++ b/Rakefile
> @@ -87,7 +87,7 @@ end
>  desc "Does a full compile, for the OS you're running on"
>  task :build => [:build_os, "dist/VERSION.txt"] do

Have you changed :build_os to tell the compiler (gcc I presume) that
you are using 64 bits or at least that you are not using 32 bits and you
are using the system default?  I think there may be other library refs in
there that could be wrong, but given that shoes brings in most stuff
it needs, I doubt it.  I'm not familiar with your platform, so it's
not much good me poking around.

>    mkdir_p "dist/ruby"
> -  cp_r  "#{ext_ruby}/lib/ruby/1.8", "dist/ruby/lib"
> +  cp_r  "#{ext_ruby}/lib64/ruby/1.8", "dist/ruby/lib"

is ext_ruby equal to /usr?  If not, why would the lib part change
to lib64?  [Maybe you know this is correct for other reasons, but
my suspicion is aroused by your open-uri lib not actually working.

>    unless ENV['STANDARD']
>      %w[rdoc rss soap wsdl xsd].each do |libn|
>        rm_rf "dist/ruby/lib/#{libn}"
> @@ -147,9 +147,9 @@ task :build => [:build_os, "dist/VERSION.txt"] do
>        end
>      end
>    else
> -    cp    "#{ext_ruby}/lib/lib#{ruby_so}.so",
> "dist/lib#{ruby_so}.so.1.8"
> -    cp    "/usr/lib/libgif.so", "dist/libgif.so.4"
> -    cp    "/usr/lib/libjpeg.so", "dist/libjpeg.so.62"
> +    cp    "#{ext_ruby}/lib64/lib#{ruby_so}.so",
> "dist/lib#{ruby_so}.so.1.8"
> +    cp    "/usr/lib64/libgif.so", "dist/libgif.so.4"
> +    cp    "/usr/lib64/libjpeg.so", "dist/libjpeg.so.62"

Those look OK.
>      if ENV['VIDEO']
>        cp    "/usr/lib/libvlc.so", "dist"
>        ln_s  "libvlc.so", "dist/libvlc.so.0"
> 

        Hugh

Reply via email to