[macruby] #90: macruby fails to install (problem with File.join)
#90: macruby fails to install (problem with File.join) -----------------------------------+---------------------------------------- Reporter: jakub.suder@gmail.com | Owner: lsansonetti@apple.com Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Current trunk version (rev. 305) fails to install on my computer. I'm running OSX 10.5.3, I have version 0.2 installed from the binary package and tried to install the latest version from source. It compiles successfully, but sudo rake install throws such exception: (in /Users/psionides/Downloads/macruby-trunk2) ./miniruby instruby.rb --make="/usr/bin/make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog- mode=0755 --installed-list .installed.list --mantype="doc" installing binary commands /Users/psionides/Downloads/macruby-trunk2/lib/fileutils.rb:1259:in `initialize': Is a directory - /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/bin/ (Errno::EPERM::ENOENT::ESRCH::EINTR::EIO::ENXIO::E2BIG::ENOEXEC::EBADF::ECHILD::EAGAIN::ENOMEM::EACCES::EFAULT::ENOTBLK::EBUSY::EEXIST::EXDEV::ENODEV::ENOTDIR::EISDIR::EINVAL::ENFILE::EMFILE::ENOTTY::ETXTBSY::EFBIG::ENOSPC::ESPIPE::EROFS::EMLINK::EPIPE::EDOM::ERANGE::EDEADLK::ENAMETOOLONG::ENOLCK::ENOSYS::ENOTEMPTY::ELOOP::ENOMSG::EIDRM::ENOSTR::ENODATA::ETIME::ENOSR::EREMOTE::ENOLINK::EPROTO::EMULTIHOP::EBADMSG::EOVERFLOW::EILSEQ::EUSERS::ENOTSOCK::EDESTADDRREQ::EMSGSIZE::EPROTOTYPE::ENOPROTOOPT::EPROTONOSUPPORT::ESOCKTNOSUPPORT::EOPNOTSUPP::EPFNOSUPPORT::EAFNOSUPPORT::EADDRINUSE::EADDRNOTAVAIL::ENETDOWN::ENETUNREACH::ENETRESET::ECONNABORTED::ECONNRESET::ENOBUFS::EISCONN::ENOTCONN::ESHUTDOWN::ETOOMANYREFS::ETIMEDOUT::ECONNREFUSED::EHOSTDOWN::EHOSTUNREACH::EALREADY::EINPROGRESS::ESTALE::EDQUOT::NOERROR) from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1259:in `open' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1259:in `block in copy_file' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1258:in `open' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1258:in `copy_file' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:462:in `copy_file' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:838:in `block in install' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1392:in `block in fu_each_src_dest' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1406:in `fu_each_src_dest0' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1390:in `fu_each_src_dest' from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:834:in `install' from instruby.rb:133:in `install' from instruby.rb:233:in `block in <main>' from instruby.rb:412:in `call' from instruby.rb:412:in `block (2 levels) in <main>' from instruby.rb:409:in `each' from instruby.rb:409:in `block in <main>' from instruby.rb:405:in `each' from instruby.rb:405:in `<main>' rake aborted! I've investigated this error, and it seems that the call "File.join(dest, File.basename(src))" in fu_each_src_dest0 function in fileutils.rb doesn't always return what it should. In this case src = 'macruby', dest = '/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/bin/', but the result is '/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/bin/' instead of '/Library/Frameworks/MacRuby.framework/Versions/0.3/usr/bin/macruby'. I ended up in the code of rb_file_join function in file.c, where strings are concatenated using CFStringAppend, but in this case CFStringAppend only appends the first string (.../usr/bin), and appending another (macruby) doesn't work, I don't know why. I found that this area of code was modified in changesets 213 and 214, and when I reverted those changes, the installation passed that point at which it previously failed (although it still failed later on another path). That's all I was able to figure out, I hope this helps... -- Ticket URL: <http://ruby.macosforge.org/trac/ticket/90> macruby <http://ruby.macosforge.org/>
#90: macruby fails to install (problem with File.join) -----------------------------------+---------------------------------------- Reporter: jakub.suder@gmail.com | Owner: lsansonetti@apple.com Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Resolution: Keywords: | -----------------------------------+---------------------------------------- Comment (by jakub.suder@gmail.com): the exception in a slightly more readable form: /Users/psionides/Downloads/macruby-trunk2/lib/fileutils.rb:1259:in `initialize': Is a directory - /Library/Frameworks/MacRuby.framework/Versions/0.3/usr/bin/ [[BR]](Errno::EPERM::ENOENT::ESRCH::EINTR::EIO::ENXIO::E2BIG::ENOEXEC::EBADF::ECHILD::EAGAIN::ENOMEM::EACCES::EFAULT::ENOTBLK::EBUSY::EEXIST::EXDEV::ENODEV::ENOTDIR::EISDIR::EINVAL::ENFILE::EMFILE::ENOTTY::ETXTBSY::EFBIG::ENOSPC::ESPIPE::EROFS::EMLINK::EPIPE::EDOM::ERANGE::EDEADLK::ENAMETOOLONG::ENOLCK::ENOSYS::ENOTEMPTY::ELOOP::ENOMSG::EIDRM::ENOSTR::ENODATA::ETIME::ENOSR::EREMOTE::ENOLINK::EPROTO::EMULTIHOP::EBADMSG::EOVERFLOW::EILSEQ::EUSERS::ENOTSOCK::EDESTADDRREQ::EMSGSIZE::EPROTOTYPE::ENOPROTOOPT::EPROTONOSUPPORT::ESOCKTNOSUPPORT::EOPNOTSUPP::EPFNOSUPPORT::EAFNOSUPPORT::EADDRINUSE::EADDRNOTAVAIL::ENETDOWN::ENETUNREACH::ENETRESET::ECONNABORTED::ECONNRESET::ENOBUFS::EISCONN::ENOTCONN::ESHUTDOWN::ETOOMANYREFS::ETIMEDOUT::ECONNREFUSED::EHOSTDOWN::EHOSTUNREACH::EALREADY::EINPROGRESS::ESTALE::EDQUOT::NOERROR) from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1259:in `open'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1259:in `block in copy_file'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1258:in `open'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1258:in `copy_file'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:462:in `copy_file'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:838:in `block in install'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1392:in `block in fu_each_src_dest'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1406:in `fu_each_src_dest0'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:1390:in `fu_each_src_dest'[[BR]] from /Users/psionides/Downloads/macruby- trunk2/lib/fileutils.rb:834:in `install'[[BR]] from instruby.rb:133:in `install'[[BR]] from instruby.rb:233:in `block in <main>'[[BR]] from instruby.rb:412:in `call'[[BR]] from instruby.rb:412:in `block (2 levels) in <main>'[[BR]] from instruby.rb:409:in `each'[[BR]] from instruby.rb:409:in `block in <main>'[[BR]] from instruby.rb:405:in `each'[[BR]] from instruby.rb:405:in `<main>'[[BR]] -- Ticket URL: <http://ruby.macosforge.org/trac/ticket/90#comment:1> macruby <http://ruby.macosforge.org/>
participants (1)
-
macruby