=begin
Hello, Rubyists. This fix is not working for me. I am still getting this bug, or a very similar bug.
I am running OpenBSD 5.2 and autoconf 2.69. I follow trunk and ruby_2_0_0 with git. Here are my ruby -v
- ruby 2.1.0dev (2013-03-13 trunk 39737) [x86_64-openbsd5.2]
- ruby 2.0.0p57 (2013-03-12 revision 39728) [x86_64-openbsd5.2]
When I configure trunk, I see errors about "no closing quote".
$ ../configure --prefix=$HOME/prefix
--with-baseruby=/usr/local/bin/ruby19
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
...
checking if make is GNU make... no
checking for safe null command for make... :
checking for memmem... no
../configure: no closing quote
../configure: no closing quote
../configure: no closing quote
../configure: no closing quote
checking for nroff... no
checking for awf... no
.ext/include/x86_64-openbsd5.2/ruby/config.h unchanged
verconf.h unchanged
ruby library version = 2.1.0
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ruby-2.1.pc
Then verconf.h looks like a mess:
#define RUBY_BASE_NAME "ruby"
#define RUBY_VERSION_NAME RUBY_BASE_NAME"-"RUBY_LIB_VERSION
#define RUBY_LIB_VERSION_STYLE 3 /* full */
#define RUBY_EXEC_PREFIX "/home/kernigh/prefix"
#define RUBY_LIB_PREFIX "arch"RUBY_EXEC_PREFIX"/lib/"RUBY_BASE_NAME"arch"
#define RUBY_ARCH_PREFIX_FOR(arch) "arch"RUBY_LIB_PREFIX"/"arch"arch"
#define RUBY_SITEARCH_PREFIX_FOR(arch) "arch"RUBY_LIB_PREFIX"/"arch"arch"
#define RUBY_LIB "arch"RUBY_LIB_PREFIX"/"RUBY_LIB_VERSION"arch"
#define RUBY_ARCH_LIB_FOR(arch) "arch"RUBY_LIB"/"arch"arch"
#define RUBY_SITE_LIB "arch"RUBY_LIB_PREFIX"/site_ruby"
#define RUBY_SITE_ARCH_LIB_FOR(arch) "arch"RUBY_SITE_LIB2"/"arch"arch"
#define RUBY_VENDOR_LIB "arch"RUBY_LIB_PREFIX"/vendor_ruby"
#define RUBY_VENDOR_ARCH_LIB_FOR(arch) "arch"RUBY_VENDOR_LIB2"/"arch"arch"
#define RUBY_PLATFORM "x86_64-openbsd5.2"
This ruby can't find the installed libraries:
$ ./ruby -v
ruby 2.1.0dev (2013-03-12 trunk 39730) [x86_64-openbsd5.2]
$ ./ruby -e 'p $:'
internal:gem_prelude:1:in require': cannot load such file -- rubygems.rb (LoadError) from <internal:gem_prelude>:1:in
'
$ ./ruby --disable=gems -e 'p $:'
["archarch/home/kernigh/prefix/lib/rubyarch/site_ruby/2.1.0", "archarcharch/home/kernigh/prefix/lib/rubyarch/site_ruby/2.1.0/x86_64-openbsd5.2arch", "archarch/home/kernigh/prefix/lib/rubyarch/site_ruby", "archarch/home/kernigh/prefix/lib/rubyarch/vendor_ruby/2.1.0", "archarcharch/home/kernigh/prefix/lib/rubyarch/vendor_ruby/2.1.0/x86_64-openbsd5.2arch", "archarch/home/kernigh/prefix/lib/rubyarch/vendor_ruby", "arch/home/kernigh/prefix/lib/rubyarch/2.1.0", "archarch/home/kernigh/prefix/lib/rubyarch/2.1.0/x86_64-openbsd5.2arch"]
When I configure ruby_2_0_0, the problem is slightly different:
$ ../configure --prefix=$HOME/prefix
--with-baseruby=/usr/local/bin/ruby19
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
...
checking if make is GNU make... no
checking for safe null command for make... :
checking for memmem... no
sed: 1: ""s/${[^${}"]}/"&"/g;;s ...: invalid command code "
../configure: s/\//g: not found
../configure: s/^//;s/$//": not found
sed: 1: ""s/${[^${}"]}/"&"/g;;s ...: invalid command code "
../configure: s/\//g: not found
../configure: s/^//;s/$//": not found
sed: 1: ""s/${[^${}"]}/"&"/g;;s ...: invalid command code "
../configure: s/\//g: not found
../configure: s/^//;s/$//": not found
sed: 1: ""s/${[^${}"]}/"&"/g;;s ...: invalid command code "
../configure: s/\//g: not found
../configure: s/^//;s/$//": not found
checking for nroff... no
checking for awf... no
.ext/include/x86_64-openbsd5.2/ruby/config.h unchanged
verconf.h unchanged
ruby library version = 2.0.0
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ruby-2.0.pc
#define RUBY_BASE_NAME "ruby"
#define RUBY_VERSION_NAME RUBY_BASE_NAME"-"RUBY_LIB_VERSION
#define RUBY_LIB_VERSION_STYLE 3 /* full */
#define RUBY_LIB_PREFIX "arch"
#define RUBY_ARCH_PREFIX_FOR(arch) "arch"
#define RUBY_SITEARCH_PREFIX_FOR(arch) "arch"
#define RUBY_LIB "arch"RUBY_LIB_PREFIX"/"RUBY_LIB_VERSION"arch"
#define RUBY_ARCH_LIB_FOR(arch) "arch"RUBY_LIB"/"arch"arch"
#define RUBY_SITE_LIB "arch"RUBY_LIB_PREFIX"/site_ruby"
#define RUBY_SITE_ARCH_LIB_FOR(arch) "arch"RUBY_SITE_LIB2"/"arch"arch"
#define RUBY_VENDOR_LIB "arch"RUBY_LIB_PREFIX"/vendor_ruby"
#define RUBY_VENDOR_ARCH_LIB_FOR(arch) "arch"RUBY_VENDOR_LIB2"/"arch"arch"
#define RUBY_PLATFORM "x86_64-openbsd5.2"
$ ./ruby -v
ruby 2.0.0p57 (2013-03-12 revision 39728) [x86_64-openbsd5.2]
$ ./ruby -e 'p $:'
internal:gem_prelude:1:in require': cannot load such file -- rubygems.rb (LoadError) from <internal:gem_prelude>:1:in
'
$ ./ruby --disable=gems -e 'p $:'
["archarch/site_ruby/2.0.0", "archarcharch/site_ruby/2.0.0/x86_64-openbsd5.2arch", "archarch/site_ruby", "archarch/vendor_ruby/2.0.0", "archarcharch/vendor_ruby/2.0.0/x86_64-openbsd5.2arch", "archarch/vendor_ruby", "arch/2.0.0", "archarch/2.0.0/x86_64-openbsd5.2arch"]
Like jeremyevans0, I can work around this issue by using bash. I run "bash ../configure ..." and rebuild trunk Ruby, then trunk Ruby no longer has this problem.
I don't know where in configure causes this problem. I am guessing that the problem might be in shvar_to_cpp, but I am not sure. OpenBSD /bin/sh is a modified pdksh. To try to reproduce this problem with another system, one might try using pdksh. Also, bug #8071 reported a similar problem with ksh93, so one might try using ksh93.
=end