Problem installing shoes3 on RHEL 6

I couldn't replicate your issue, but I uploaded my build:
https://github.com/downloads/fjc/shoes/shoes-el6-x86_64.tar.gz

···

On Wed, May 4, 2011 at 2:21 PM, Ruby Student <ruby.student@gmail.com> wrote:

After 10 hours of playing with this, I thought I got it.
I passed the mechanize, the libxml2, the openssl, the /osama/bin/laden, etc.
And just when I thought T had it, I got the following.
Please notice that I am only copying a small segment (the end) of the
output, which I think is the relevant part:

rm -f dist/shoes
rm -f dist/shoes-bin
gcc -Ldist -o dist/shoes-bin bin/main.o -lruby -lcairo -lpangocairo-1.0
-lungif -ljpeg -lrt -L/usr/local/lib -lcairo -lpango-1.0 -lgobject-2.0
-lgmodule-2.0 -lglib-2.0 -lshoes -L. -rdynamic -Wl,-export-dynamic
bin/main.o: In function `main':
main.c:(.text+0x64): undefined reference to `ruby_snprintf'
main.c:(.text+0xa7): undefined reference to `ruby_run_node'
dist/libshoes.so: undefined reference to `ruby_vsnprintf'
dist/libshoes.so: undefined reference to `rb_str_new_cstr'
dist/libshoes.so: undefined reference to `rb_intern2'
collect2: ld returned 1 exit status
rake aborted!

Doing a quick test under rvm 1.9.2...

rvm 1.9.2
git clone
gem install bundler mechanize
rake

(again having issues lib vs lib64):
  No such file or directory - /usr/lib/libgif.so

sed -i 's;/lib/;/lib64/;g' make/linux/tasks.rb

# oops one too many, change it back :slight_smile:
vi make/linux/tasks.rb

rake

cd dist
./shoes
  "Welcome to SHOES"

Great,

Please gents, let me know when and to continue and the steps to follow.
I can remove Ruby completely and start all over if need be.

Thanks again,

···

On Wed, May 4, 2011 at 4:50 PM, Steve Klabnik <steve@steveklabnik.com>wrote:

Excellent. I'm sorry this was so much stress, making the build process
better is something I'm taking a hard look at currently.

--
Ruby Student

brabuhr,

I downloaded your build.
I assume this is a shoes build ready to be used, correct?
I was thinking if I should un-tar it @*/usr/local/shoes*. What do you think?

Thank you for your time and help! It is truly appreciated!

···

On Wed, May 4, 2011 at 5:27 PM, <brabuhr@gmail.com> wrote:

On Wed, May 4, 2011 at 2:21 PM, Ruby Student <ruby.student@gmail.com> > wrote:
> After 10 hours of playing with this, I thought I got it.
> I passed the mechanize, the libxml2, the openssl, the /osama/bin/laden,
etc.
> And just when I thought T had it, I got the following.
> Please notice that I am only copying a small segment (the end) of the
> output, which I think is the relevant part:
>
> rm -f dist/shoes
> rm -f dist/shoes-bin
> gcc -Ldist -o dist/shoes-bin bin/main.o -lruby -lcairo -lpangocairo-1.0
> -lungif -ljpeg -lrt -L/usr/local/lib -lcairo -lpango-1.0 -lgobject-2.0
> -lgmodule-2.0 -lglib-2.0 -lshoes -L. -rdynamic -Wl,-export-dynamic
> bin/main.o: In function `main':
> main.c:(.text+0x64): undefined reference to `ruby_snprintf'
> main.c:(.text+0xa7): undefined reference to `ruby_run_node'
> dist/libshoes.so: undefined reference to `ruby_vsnprintf'
> dist/libshoes.so: undefined reference to `rb_str_new_cstr'
> dist/libshoes.so: undefined reference to `rb_intern2'
> collect2: ld returned 1 exit status
> rake aborted!

I couldn't replicate your issue, but I uploaded my build:
https://github.com/downloads/fjc/shoes/shoes-el6-x86_64.tar.gz

--
Ruby Student

I downloaded your build.
I assume this is a shoes build ready to be used, correct?

I think so. I copied it over to a different SL6 machine than I did
the build on and it seemed to work properly there. (It didn't work on
a Slackware machine (missing kerberos libraries).)

I was thinking if I should un-tar it @*/usr/local/shoes*. What do you think?

I think that should be fine.

Thank you for your time and help! It is truly appreciated!

You're welcome. It was fun :slight_smile:

Brabuhr,

First, thank you for your extra effort on getting this build.

I moved your build to:

*/usr/local/shoes*
The permissions to the above dir are: *drwxrwxrwx 8 root root 4096 May 5
07:44 shoes*

[root@oc7871667644 shoes]#* ls -al*
total 6180
drwxrwxrwx 8 root root 4096 May 5 07:44 .
drwxr-xr-x 16 root root 4096 May 4 13:23 ..
-rw-r--r-- 1 root root 762 May 4 16:52 CHANGELOG.txt
-rw-r--r-- 1 root root 1401 May 4 16:52 COPYING.txt
drwxr-xr-x 2 root root 4096 May 4 16:52 fonts
drwxr-xr-x 8 root root 4096 May 4 11:05 .git
-rw-r--r-- 1 root root 78 May 4 11:05 .gitignore
drwxr-xr-x 3 root root 4096 May 4 16:52 lib
-rwxr-xr-x 1 root root 342840 May 4 16:52 libcurl.so.4
-rwxr-xr-x 1 root root 39512 May 4 16:52 libgif.so.4
-rwxr-xr-x 1 root root 149808 May 4 16:52 libjpeg.so.8
-rwxr-xr-x 1 root root 178368 May 4 16:52 libportaudio.so.2
-rwxr-xr-x 1 root root 2213869 May 4 16:52 libruby.so
-rwxr-xr-x 1 root root 2213869 May 4 16:52 libruby.so.1.9
-rwxr-xr-x 1 root root 473357 May 4 16:52 libshoes.so
-rwxr-xr-x 1 root root 586064 May 4 16:52 libsqlite3.so.0
-rwxr-xr-x 1 root root 39512 May 4 16:52 libungif.so.4
-rw-r--r-- 1 root root 3939 May 4 16:52 README.txt
drwxr-xr-x 4 root root 4096 May 4 16:52 ruby
-rw-r--r-- 1 root root 1758 May 4 11:05 .rvmrc
drwxr-xr-x 2 root root 4096 May 4 16:52 samples
-rwxr-xr-x 1 root root 577 May 4 16:52 shoes
-rwxr-xr-x 1 root root 9418 May 4 16:52 shoes-bin
drwxr-xr-x 3 root root 4096 May 4 16:52 static
-rw-r--r-- 1 root root 51 May 4 16:52 VERSION.txt

I also put it on the PATH:

[root@oc7871667644 shoes]# *echo $PATH*
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/ibm/c4eb/bin:/usr/local/rvm/bin:/usr/kerberos/bin:/root/bin:/usr/local/shoes:/usr/local/shoes/bin

I tried: *shoes* on the command prompt and got:

[root@oc7871667644 ~]# *shoes*
shoes: error while loading shared libraries: libruby.so.1.9: cannot open
shared object file: No such file or directory

Am I missing something? One thing to notice, I used *shoes* shortly under
Windows. I just migrated from Windows to RHEL6.

Hey, I am sorry to take so much of your time. I do appreciate your help.

Thank you

···

On Thu, May 5, 2011 at 8:16 AM, <brabuhr@gmail.com> wrote:

> I downloaded your build.
> I assume this is a shoes build ready to be used, correct?

I think so. I copied it over to a different SL6 machine than I did
the build on and it seemed to work properly there. (It didn't work on
a Slackware machine (missing kerberos libraries).)

> I was thinking if I should un-tar it @*/usr/local/shoes*. What do you
think?

I think that should be fine.

> Thank you for your time and help! It is truly appreciated!

You're welcome. It was fun :slight_smile:

--
Ruby Student

What happens if you cd to the extracted shoes directory and invoke it like:

$ cd /usr/local/shoes
$ ./shoes

Also try:

$ LD_LIBRARY_PATH=/usr/local/shoes shoes

Thanks

···

On Thu, May 5, 2011 at 11:45 AM, Ruby Student <ruby.student@gmail.com> wrote:

[root@oc7871667644 ~]# *shoes*
shoes: error while loading shared libraries: libruby.so.1.9: cannot open
shared object file: No such file or directory

Also try:

$ LD_LIBRARY_PATH=/usr/local/shoes shoes

I see the shoes shell script does set LD_LIBRARY_PATH:
    REALPATH=`readlink -f $0`

    APPPATH="${REALPATH%/*}"
    if [ "$APPPATH" = "shoes" ]; then
      APPPATH="."
    fi
    if [ "$APPPATH" = "." ]; then
      APPPATH=`pwd`
    fi

    ...

    LD_LIBRARY_PATH=$APPPATH $APPPATH/shoes-bin "$@"

Also try to run it like:

$ bash -x /usr/local/shoes/shoes

and/or

$ cd /usr/local/shoes
$ bash -x ./shoes

Thanks

Here is what I get:

*/usr/local/shoes]$ ./shoes*
uninitialized constant Encoding::UTF_7

*/usr/local/shoes]$ ./shoes-bin*
uninitialized constant Encoding::UTF_7

*/usr/local/shoes]$ bash -x ./shoes*
++ readlink -f ./shoes
+ REALPATH=/usr/local/shoes/shoes
+ APPPATH=/usr/local/shoes
+ '[' /usr/local/shoes = shoes ']'
+ '[' /usr/local/shoes = . ']'
++ pwd
++ awk '{ sub(/[0-9]+/, ""); print }'
+ '[' /usr/local/shoes = /tmp/selfgz ']'
+ cd ''
+ LD_LIBRARY_PATH=/usr/local/shoes
+ /usr/local/shoes/shoes-bin
uninitialized constant Encoding::UTF_7

···

On Thu, May 5, 2011 at 12:34 PM, <brabuhr@gmail.com> wrote:

> Also try:
>
> $ LD_LIBRARY_PATH=/usr/local/shoes shoes

I see the shoes shell script does set LD_LIBRARY_PATH:
   REALPATH=`readlink -f $0`

   APPPATH="${REALPATH%/*}"
   if [ "$APPPATH" = "shoes" ]; then
     APPPATH="."
   fi
   if [ "$APPPATH" = "." ]; then
     APPPATH=`pwd`
   fi

   ...

   LD_LIBRARY_PATH=$APPPATH $APPPATH/shoes-bin "$@"

Also try to run it like:

$ bash -x /usr/local/shoes/shoes

and/or

$ cd /usr/local/shoes
$ bash -x ./shoes

Thanks

--
Ruby Student

Hmm... so if I follow you, when you cd first you do not get the
libruby error, but now you get a new encoding error?

The only reference I see to that constant is:
./ruby/lib/uri/common.rb: HTML5ASCIIINCOMPAT = [Encoding::UTF_7,
Encoding::UTF_16BE, Encoding::UTF_16LE,

I'm not sure why that would not be initialized...

···

On Thu, May 5, 2011 at 2:50 PM, Ruby Student <ruby.student@gmail.com> wrote:

Here is what I get:

*/usr/local/shoes]$ ./shoes*
uninitialized constant Encoding::UTF_7

*/usr/local/shoes]$ bash -x ./shoes*
++ readlink -f ./shoes
+ REALPATH=/usr/local/shoes/shoes
+ APPPATH=/usr/local/shoes
+ '[' /usr/local/shoes = shoes ']'
+ '[' /usr/local/shoes = . ']'
++ pwd
++ awk '{ sub(/[0-9]+/, ""); print }'
+ '[' /usr/local/shoes = /tmp/selfgz ']'
+ cd ''
+ LD_LIBRARY_PATH=/usr/local/shoes
+ /usr/local/shoes/shoes-bin
uninitialized constant Encoding::UTF_7

What do you get from:

$ iconv -l | fgrep UTF
ISO-10646/UTF-8/
ISO-10646/UTF8/
UTF-7//
UTF-8//
UTF-16//
UTF-16BE//
UTF-16LE//
UTF-32//
UTF-32BE//
UTF-32LE//
UTF7//
UTF8//
UTF16//
UTF16BE//
UTF16LE//
UTF32//
UTF32BE//
UTF32LE//

···

On Thu, May 5, 2011 at 2:50 PM, Ruby Student <ruby.student@gmail.com> wrote:

Here is what I get:

*/usr/local/shoes]$ ./shoes*
uninitialized constant Encoding::UTF_7

This is the output to the *iconv* command:

Desktop]$* iconv -l | fgrep UTF*
ISO-10646/UTF-8/
ISO-10646/UTF8/
UTF-7//
UTF-8//
UTF-16//
UTF-16BE//
UTF-16LE//
UTF-32//
UTF-32BE//
UTF-32LE//
UTF7//
UTF8//
UTF16//
UTF16BE//
UTF16LE//
UTF32//
UTF32BE//
UTF32LE//

···

On Thu, May 5, 2011 at 4:24 PM, <brabuhr@gmail.com> wrote:

> On Thu, May 5, 2011 at 2:50 PM, Ruby Student <ruby.student@gmail.com> > wrote:
>> Here is what I get:
>>
>> */usr/local/shoes]$ ./shoes*
>> uninitialized constant Encoding::UTF_7

What do you get from:

$ iconv -l | fgrep UTF
ISO-10646/UTF-8/
ISO-10646/UTF8/
UTF-7//
UTF-8//
UTF-16//
UTF-16BE//
UTF-16LE//
UTF-32//
UTF-32BE//
UTF-32LE//
UTF7//
UTF8//
UTF16//
UTF16BE//
UTF16LE//
UTF32//
UTF32BE//
UTF32LE//

--
Ruby Student

*/usr/local/shoes]$ ./shoes*
uninitialized constant Encoding::UTF_7

It's interesting that the only results on Google for "uninitialized
constant Encoding::UTF_7" all relate to Hackety Hack.

I was hesitant to suggest it, but try editing 'ruby/lib/uri/common.rb'
(I guess it would be /usr/local/shoes/ruby/lib/uri/common.rb for you)
to remove the reference to UTF_7:

$ diff -u ruby/lib/uri/common.rb.orig ruby/lib/uri/common.rb
--- ruby/lib/uri/common.rb.orig 2011-05-05 16:15:13.103236933 -0400
+++ ruby/lib/uri/common.rb 2011-05-05 16:15:31.462344142 -0400
@@ -718,8 +718,7 @@

   TBLENCWWWCOMP_ = {} # :nodoc:
   TBLDECWWWCOMP_ = {} # :nodoc:
- HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
Encoding::UTF_16LE,
- Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:
+ HTML5ASCIIINCOMPAT =

   # Encode given +str+ to URL-encoded form data.

···

On Thu, May 5, 2011 at 5:16 PM, <brabuhr@gmail.com> wrote:

*/usr/local/shoes]$ ./shoes*
uninitialized constant Encoding::UTF_7

It's interesting that the only results on Google for "uninitialized
constant Encoding::UTF_7" all relate to Hackety Hack.

   #

And see what you get then.

It's interesting that the only results on Google for "uninitialized
constant Encoding::UTF_7" all relate to Hackety Hack.

Not that interesting: Hackety Hack is Shoes, after all...

I don't have any good ideas about this error, though.

It's interesting that the only results on Google for "uninitialized
constant Encoding::UTF_7" all relate to Hackety Hack.

Not that interesting: Hackety Hack is Shoes, after all...

That's why I found it interesting :slight_smile:

OK,

In:
*pwd
/usr/local/shoes/ruby/lib/uri*

I first saved *common.rb *to *common.rb.05062011*.

The only reference to *UTF_7* is this: *HTML5ASCIIINCOMPAT =
[Encoding::UTF_7, Encoding::UTF_16BE, Encoding::UTF_16LE,*

I changed it to this:

H*TML5ASCIIINCOMPAT = [Encoding::Encoding::UTF_16BE, Encoding::UTF_16LE,*

....and saved *common.rb*

I then proceeded to find the difference between the original which I saved
as: *common.rb.05062011 *and the changed version: *common.rb.*

*diff -u common.rb common.rb.05062011*
--- common.rb 2011-05-06 08:24:30.934834089 -0400
+++ common.rb.05062011 2011-05-04 16:52:24.000000000 -0400
@@ -718,7 +718,7 @@

   TBLENCWWWCOMP_ = {} # :nodoc:
   TBLDECWWWCOMP_ = {} # :nodoc:
- HTML5ASCIIINCOMPAT = [Encoding::UTF_16BE, Encoding::UTF_16LE,
+ HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
Encoding::UTF_16LE,
     Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:

   # Encode given +str+ to URL-encoded form data.

I then proceeded to attempt a shoes execution:

*[root@oc7871667644 shoes]# bash -x ./shoes*
++ readlink -f ./shoes
+ REALPATH=/usr/local/shoes/shoes
+ APPPATH=/usr/local/shoes
+ '[' /usr/local/shoes = shoes ']'
+ '[' /usr/local/shoes = . ']'
++ awk '{ sub(/[0-9]+/, ""); print }'
++ pwd
+ '[' /usr/local/shoes = /tmp/selfgz ']'
+ cd ''
+ LD_LIBRARY_PATH=/usr/local/shoes
+ /usr/local/shoes/shoes-bin
uninitialized constant Encoding::UTF_16BE

I executed shoes again and now got:
*[root@oc7871667644 shoes]# ./shoes*
uninitialized constant Encoding::UTF_16LE

So, I decided to remove the entire record.
I proceeded to execute shoes and *BINGO! It Worked*! I got that beautiful
screen that was looking for, the "Welcome to SHOES" screen.

NOW, my dilemma is how important is that record that I commented out???
This is the record:
*HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:*

I have no clue is to the importance of this record.

What do you guys think?
Is it safe to write code without that record?

Thank you for your help.

···

On Thu, May 5, 2011 at 5:33 PM, <brabuhr@gmail.com> wrote:

On Thu, May 5, 2011 at 5:16 PM, <brabuhr@gmail.com> wrote:
>> */usr/local/shoes]$ ./shoes*
>> uninitialized constant Encoding::UTF_7
>
> It's interesting that the only results on Google for "uninitialized
> constant Encoding::UTF_7" all relate to Hackety Hack.

I was hesitant to suggest it, but try editing 'ruby/lib/uri/common.rb'
(I guess it would be /usr/local/shoes/ruby/lib/uri/common.rb for you)
to remove the reference to UTF_7:

$ diff -u ruby/lib/uri/common.rb.orig ruby/lib/uri/common.rb
--- ruby/lib/uri/common.rb.orig 2011-05-05 16:15:13.103236933 -0400
+++ ruby/lib/uri/common.rb 2011-05-05 16:15:31.462344142 -0400
@@ -718,8 +718,7 @@

  TBLENCWWWCOMP_ = {} # :nodoc:
  TBLDECWWWCOMP_ = {} # :nodoc:
- HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
Encoding::UTF_16LE,
- Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:
+ HTML5ASCIIINCOMPAT =

  # Encode given +str+ to URL-encoded form data.
  #

And see what you get then.

--
Ruby Student

It Worked*! I got that beautiful screen that was looking for, the
"Welcome to SHOES" screen.

Awesome!

NOW, my dilemma is how important is that record that I commented out???
This is the record:
*HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:*

I have no clue is to the importance of this record.

What do you guys think?
Is it safe to write code without that record?

HTML5ASCIIINCOMPAT is only used in encode_www_form_component which
only seems to be called from encode_www_form which doesn't seem to be
called from anywhere in the shoes code. Maybe some shoes applications
may make use of it, but even then I imagine it should be safe unless
the system happens to be using one of those encodings.

···

On Fri, May 6, 2011 at 8:40 AM, Ruby Student <ruby.student@gmail.com> wrote:

Well then, I am good to go.
Now my challenge is to continue learning Shoes.

I just want to thank you and Steve for your help. I truly appreciate it.

Thanks again

···

On Fri, May 6, 2011 at 10:09 AM, <brabuhr@gmail.com> wrote:

On Fri, May 6, 2011 at 8:40 AM, Ruby Student <ruby.student@gmail.com> > wrote:
>It Worked*! I got that beautiful screen that was looking for, the
> "Welcome to SHOES" screen.

Awesome!

> NOW, my dilemma is how important is that record that I commented out???
> This is the record:
> *HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE,
> Encoding::UTF_16LE, Encoding::UTF_32BE, Encoding::UTF_32LE] # :nodoc:*
>
> I have no clue is to the importance of this record.
>
> What do you guys think?
> Is it safe to write code without that record?

HTML5ASCIIINCOMPAT is only used in encode_www_form_component which
only seems to be called from encode_www_form which doesn't seem to be
called from anywhere in the shoes code. Maybe some shoes applications
may make use of it, but even then I imagine it should be safe unless
the system happens to be using one of those encodings.

--
Ruby Student

Any time! Please keep me up to date with your thoughts about Shoes, I'm
working on getting a 3.1 release out there...