Windows 10 Ruby 2.3.3-p222 instiki 0.20.1 Intallation problem
ExpatSailor opened this issue · 18 comments
Hello,
I've tried to install instiki multiple times without success and being new to Ruby, I am not experienced enough to decipher the 'mkmf.log', so I'd be grateful for some help. Before getting into the issue (iconv failed to compile), I have the following questions and comments:
!) On a Windows system, is there any practical difference between using "ruby bundle" and "ruby bundle install --path vendor/bundle"?
2) The instructions don't explicitly say that you must use the GitHub command shell when executing these commands {which might be helpful to note).
3) The instructions at 'github.com/parasew/instiki' are out of sync with those at 'https://golem.ph.utexas.edu/wiki/instiki/show/Installation' (the former states that Ruby 1.9.3 to 2.3 works, while the latter says Ruby 1.8.7 to 2.1).
4) While attempting to sign up to post to the forums at 'https://golem.ph.utexas.edu/forum/forums/instiki;, the page said I would receive an email with a link, but I never did (and no, it didn't go into my spam directory; I also checked using my 'back button' to verify that my email address was correct (which it was). I was using Firefox in 'Private Browing' mode... is this perhaps the issue?
On to my problem (I have DevKit installed and there are no spaces in the path names to either Ruby or instiki):
This is the output of "ruby bundle":
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
C:\Users\BIA\Documents\GitHub> cd
C:> cd Instiki
C:\Instiki> ruby bundle
Fetching git://github.com/distler/maruku.git
Checking out files: 100% (280/280), done.
Fetching gem metadata from http://rubygems.org/........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake 10.4.2
Installing RedCloth 4.3.2 with native extensions
Installing abstract 1.0.0
Installing daemons 1.2.4
Installing erubis 2.7.0
Installing eventmachine 1.2.3
Installing file_signature 1.2.0
Installing iconv 1.0.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4/ext/iconv
C:/Ruby23/bin/ruby.exe -r ./siteconf20170309-10940-igd9ro.rb extconf.rb
checking for rb_enc_get() in ruby/encoding.h... yes
checking for rb_sys_fail_str() in ruby.h... yes
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--enable-config-charset
--disable-config-charset
--with-config-charset
--without-config-charset
--with-iconvlib
--without-iconvlib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/gem_make.out
Installing itextomml 1.5.5 with native extensions
Installing json 2.0.3 with native extensions
Installing mini_portile2 2.1.0
Installing syntax 1.1.0
Installing rack 1.4.5
Installing rails_xss 0.4.0
Installing rdoc 5.1.0
Installing rubyzip 0.9.9
Installing sqlite3 1.3.13
Installing test-unit 2.5.5
Using bundler 1.11.2
An error occurred while installing iconv (1.0.4), and Bundler cannot continue.
Make sure that gem install iconv -v '1.0.4'
succeeds before bundling.
This is the output of "ruby bundle install --path vendor/bundle":
C:\Instiki> ruby bundle install --path vendor/bundle
Fetching git://github.com/distler/maruku.git
Fetching gem metadata from http://rubygems.org/........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
Using RedCloth 4.3.2
Using abstract 1.0.0
Using daemons 1.2.4
Using erubis 2.7.0
Using eventmachine 1.2.3
Using file_signature 1.2.0
Installing iconv 1.0.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4/ext/iconv
C:/Ruby23/bin/ruby.exe -r ./siteconf20170309-1956-i8n98z.rb extconf.rb
checking for rb_enc_get() in ruby/encoding.h... yes
checking for rb_sys_fail_str() in ruby.h... yes
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--enable-config-charset
--disable-config-charset
--with-config-charset
--without-config-charset
--with-iconvlib
--without-iconvlib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/gem_make.out
Using itextomml 1.5.5
Using json 2.0.3
Using mini_portile2 2.1.0
Using syntax 1.1.0
Using rack 1.4.5
Using rails_xss 0.4.0
Using rdoc 5.1.0
Using rubyzip 0.9.9
Using sqlite3 1.3.13
Using test-unit 2.5.5
Using bundler 1.11.2
An error occurred while installing iconv (1.0.4), and Bundler cannot continue.
Make sure that gem install iconv -v '1.0.4'
succeeds before bundling.
C:\Instiki>
This is my "mkmf.log":
have_func: checking for rb_enc_get() in ruby/encoding.h... -------------------- yes
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char *argv)
6: {
7: return 0;
8: }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <ruby/encoding.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))rb_enc_get; return !p; }
/ end */
have_func: checking for rb_sys_fail_str() in ruby.h... -------------------- yes
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <ruby.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))rb_sys_fail_str; return !p; }
/ end */
have_func: checking for iconv() in iconv.h... -------------------- no
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))iconv; return !p; }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: extern void iconv();
18: int t(void) { iconv(); return 0; }
/ end */
have_library: checking for iconv() in -liconv... -------------------- no
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -liconv -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))iconv; return !p; }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -liconv -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: extern void iconv();
18: int t(void) { iconv(); return 0; }
/ end */
This is my "extconf.rb" (\instiki\vendor\bundle\ruby\2.3.0\gems\iconv-1.0.4\ext):
require 'mkmf'
dir_config("iconv")
conf = File.exist?(File.join($srcdir, "config.charset"))
conf = with_config("config-charset", enable_config("config-charset", conf))
unless have_func("rb_enc_get", "ruby/encoding.h") || have_func("vasprintf", "stdio.h")
raise "vasprintf is required for Ruby 1.8"
end
have_func("rb_sys_fail_str", "ruby.h")
if have_func("iconv", "iconv.h") or
have_library("iconv", "iconv", "iconv.h")
check_signedness("size_t") rescue nil
if checking_for("const of iconv() 2nd argument") do
create_tmpsrc(cpp_include("iconv.h") + "---> iconv(cd,0,0,0,0) <---")
src = xpopen(cpp_command("")) {|f|f.read}
if !(func = src[/^--->\s*(\w+).\s<---/, 1])
Logging::message "iconv function name not found"
false
elsif !(second = src[%r"\b#{func}\s*(.?,(.?),.?)\s;"m, 1])
Logging::message "prototype for #{func}() not found"
false
else
Logging::message $&+"\n"
/\bconst\b/ =~ second
end
end
$defs.push('-DICONV_INPTR_CONST')
end
have_func("iconvlist", "iconv.h")
have_func("__iconv_free_list", "iconv.h")
if conf
prefix = '$(srcdir)'
prefix = $nmake ? "{#{prefix}}" : "#{prefix}/"
if $extout
wrapper = "$(RUBYARCHDIR)/iconv.rb"
else
wrapper = "./iconv.rb"
end
if String === conf
require 'uri'
scheme = URI.parse(conf).scheme
else
conf = "$(srcdir)/config.charset"
end
$cleanfiles << wrapper
end
create_makefile("iconv/iconv")
if conf
open("Makefile", "a") do |mf|
mf.print("\nall: #{wrapper}\n\n#{wrapper}: #{prefix}charset_alias.rb")
mf.print(" ", conf) unless scheme
mf.print("\n\t$(RUBY)
end
end
end
Any help would be greatly appreciated. Thank you.
!) On a Windows system, is there any practical difference between using "ruby bundle" and "ruby bundle install --path vendor/bundle"?
The command with "--path vendor/bundle" sets the default location for installing the gems. You only need to do that on the first invocation of ruby bundle install
.
- The instructions don't explicitly say that you must use the GitHub command shell when executing these commands {which might be helpful to note).
In general, the Windows instructions suck. Any improvements would be helpful. But, as I understand it, there's more than one way to get a suitable command shell (Cygwin, for instance) under Windows.
- The instructions at 'github.com/parasew/instiki' are out of sync with those at 'https://golem.ph.utexas.edu/wiki/instiki/show/Installation' (the former states that Ruby 1.9.3 to 2.3 works, while the latter says Ruby 1.8.7 to 2.1).
The minimum Ruby version needed is a bit in flux at the moment. Several of the dependecies have (in their current versions) dropped support for older Ruby's. I think you will have trouble if you are using any Ruby older than 2.1 (which is to say, 2.1-2.4 should work).
- While attempting to sign up to post to the forums at 'https://golem.ph.utexas.edu/forum/forums/instiki;, the page said I would receive an email with a link, but I never did (and no, it didn't go into my spam directory; I also checked using my 'back button' to verify that my email address was correct (which it was). I was using Firefox in 'Private Browing' mode... is this perhaps the issue?
Unclear. Try logging in anyway. Some people say they never received the registration email, but were able to log in (as if they had completed the registration process).
Thanks for clarifying the Bundler issue and the suggestion for the forum.
I still get an 'Invalid login' message on the software forum.
I'm using 2.3 but am still unable to work around this installation issue. I know that there is a long thread where you helped someone else with Windows, but I'm having trouble following it...
One other piece of information that might be useful is that I downloaded and expanded the zip file rather than cloning the repository. The above results came from running "ruby bundle"; the results below are from running "ruby bundle install --path vendor/bundle" after doing a clean install of instiki (note that I have not included the logs for this):
C:\Users\BIA\Documents\GitHub> cd
C:> cd Instiki
C:\Instiki> ruby bundle install --path vendor/bundle
Fetching git://github.com/distler/maruku.git
Fetching gem metadata from http://rubygems.org/........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake 10.4.2
Installing RedCloth 4.3.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/RedCloth-4.3.2/ext/redcloth_scan
C:/Ruby23/bin/ruby.exe -r ./siteconf20170310-1388-1rflaw9.rb extconf.rb
checking for main() in -lc... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-redcloth_scan-dir
--without-redcloth_scan-dir
--with-redcloth_scan-include
--without-redcloth_scan-include=${redcloth_scan-dir}/include
--with-redcloth_scan-lib
--without-redcloth_scan-lib=${redcloth_scan-dir}/lib
--with-clib
--without-clib
C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:456:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:541:in
try_link0'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:556:in try_link' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:765:in
try_func'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:997:in block in have_library' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:942:in
block in checking_for'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:350:in block (2 levels) in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:320:in
open'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:350:in block in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:320:in
open'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:346:in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:941:in
checking_for'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:992:in have_library' from extconf.rb:5:in
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/RedCloth-4.3.2/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/RedCloth-4.3.2 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/RedCloth-4.3.2/gem_make.out
Installing abstract 1.0.0
Installing daemons 1.2.4
Installing erubis 2.7.0
Installing eventmachine 1.2.3
Installing file_signature 1.2.0
Installing iconv 1.0.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4/ext/iconv
C:/Ruby23/bin/ruby.exe -r ./siteconf20170310-1388-zqdaii.rb extconf.rb
checking for rb_enc_get() in ruby/encoding.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--enable-config-charset
--disable-config-charset
--with-config-charset
--without-config-charset
C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:456:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:541:in
try_link0'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:556:in try_link' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:765:in
try_func'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:1051:in block in have_func' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:942:in
block in checking_for'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:350:in block (2 levels) in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:320:in
open'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:350:in block in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:320:in
open'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:346:in postpone' from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:941:in
checking_for'
from C:/Ruby23/lib/ruby/2.3.0/mkmf.rb:1050:in have_func' from extconf.rb:8:in
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/gem_make.out
Installing itextomml 1.5.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/itextomml-1.5.5/ext
C:/Ruby23/bin/ruby.exe -r ./siteconf20170310-1388-5ix67.rb extconf.rb
creating Makefile
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/itextomml-1.5.5/ext
make "DESTDIR=" clean
'make' is not recognized as an internal or external command,
operable program or batch file.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/itextomml-1.5.5/ext
make "DESTDIR="
'make' is not recognized as an internal or external command,
operable program or batch file.
make failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/itextomml-1.5.5 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/itextomml-1.5.5/gem_make.out
Installing json 2.0.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/json-2.0.3/ext/json/ext/generator
C:/Ruby23/bin/ruby.exe -r ./siteconf20170310-1388-fhq71o.rb extconf.rb
creating Makefile
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/json-2.0.3/ext/json/ext/generator
make "DESTDIR=" clean
'make' is not recognized as an internal or external command,
operable program or batch file.
current directory: C:/Instiki/vendor/bundle/ruby/2.3.0/gems/json-2.0.3/ext/json/ext/generator
make "DESTDIR="
'make' is not recognized as an internal or external command,
operable program or batch file.
make failed, exit code 1
Gem files will remain installed in C:/Instiki/vendor/bundle/ruby/2.3.0/gems/json-2.0.3 for inspection.
Results logged to C:/Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/json-2.0.3/gem_make.out
Installing mini_portile2 2.1.0
Installing syntax 1.1.0
Installing rack 1.4.5
Installing rails_xss 0.4.0
Installing rdoc 5.1.0
Installing rubyzip 0.9.9
Installing sqlite3 1.3.13
Installing test-unit 2.5.5
Using bundler 1.11.2
An error occurred while installing RedCloth (4.3.2), and Bundler cannot
continue.
Make sure that gem install RedCloth -v '4.3.2'
succeeds before bundling.
C:\Instiki>
This seems to create more issues than without "--path vendor/bundle". More gems, with Red Cloth being an example, seemed to install fine without it but not with it.
Also, I'm unclear as to your suggestion about using Cygwin, which I would rather not do for several reasons. Does you mean that I should install its Ruby package as well? Wouldn't that negate the supposed simplicity of installing instiki under Windows?
i wasn't suggesting that you install Cygwin. On the other hand, there seems to be something seriously borked with your developer tools, as common commands like "make" seem to fail.
I think this snippet from your error log,
The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first.
is rather telling.
Thanks.
As best as I can tell, for DevKit to work, the 'gem install gem_name' command must have '--platform=ruby' added to it ('gem install gem_name --platform=ruby') for any gem for which there isn't a pre-compiled Windows binary available. I suspect that that is the root cause of the error message because when I follow the instructions on the DevKit wiki for testing it, i get Ruby command line output as follows
C:\Users\BIA>gem install json --platform=ruby
Fetching: json-2.0.3.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Successfully installed json-2.0.3
Parsing documentation for json-2.0.3
Installing ri documentation for json-2.0.3
Done installing
whereas when I use the Git shell to try and install instiki ("ruby bundle install --path vendor/bundle"), the output is as follows
C:> ruby bundle install --path vendor/bundle
Fetching https://github.com/distler/maruku.git
Fetching gem metadata from http://rubygems.org/........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake 10.4.2
Installing RedCloth 4.3.2 with native extensions
Installing abstract 1.0.0
Installing daemons 1.2.4
Installing erubis 2.7.0
Installing eventmachine 1.2.3
Installing file_signature 1.2.0
Installing iconv 1.0.4 with native extensions
Installing itextomml 1.5.5 with native extensions
Installing json 2.0.3 with native extensions
Installing mini_portile2 2.1.0
Installing syntax 1.1.0
Installing rack 1.4.5
Installing rails_xss 0.4.0
Installing rdoc 5.1.0
Installing rubyzip 0.9.9
Installing sqlite3 1.3.13
Installing test-unit 2.5.5
Using bundler 1.13.7
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
.
.
.
Note that
'Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...'
is absent.
I suspect that all of the gems that generate 'Installing gem_name with native extensions' output are silently failing (in that the script appears to generate a complete error message for only the first gem -- I think -- that fails to build before aborting and exiting.
If this is indeed the issue, I think that if your script tested to see if the OS is Windows and acted accordingly, that would be the end of it. I'm (obviously) happy to test that for you, and will provide you with complete Windows-specific installation instructions if that works, or after a solution is found that doesn't require a user to do anything other than install DevKit and follow your '1,2,3' instructions.
I tried changing the Gemfile myself and it throws an error which after some searching leads me to believe that Bundler doesn't support '--platform=ruby'. I think that my build environment is fine as noted above, but whatever the problem is in instiki is beyond my ability to solve as a relatively new Ruby user. Once instiki is properly installed, it may indeed be a great piece of software, but installing it on Windows certainly isn't as easy as it's made out to be, I wonder how many people have just given up.
Here is my bundle\config file:
BUNDLE_ITEXTOMML: "-v >=1.5.5 --platform=ruby"
BUNDLE_JSON: "--platform=ruby"
BUNDLE_REDCLOTH: "-v >=4.0.0 --platform=ruby"
BUNDLE_ICONV: "-v 1.0.4 --:platforms => [:ruby_20, :ruby_21, :ruby_22, :ruby_23, :ruby_24, :x64_mingw, :mingw_23, :mingw_24] --with-iconv-dir=C:\GnuWin32\bin"
BUNDLE_DISABLE_SHARED_GEMS: "true"
BUNDLE_PATH: "vendor/bundle"
I'm still having the same problem:
C:\whj\whj_data\whj_instiki> ruby bundle install --path vendor/bundle
Fetching https://github.com/distler/maruku.git
Fetching gem metadata from http://rubygems.org/........
Fetching version metadata from http://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
Using RedCloth 4.3.2
Using abstract 1.0.0
Using daemons 1.2.4
Using erubis 2.7.0
Using eventmachine 1.2.3
Using file_signature 1.2.0
Installing iconv 1.0.4 with native extensions
Using itextomml 1.5.5
Using json 2.0.3
Using mini_portile2 2.1.0
Using syntax 1.1.0
Using rack 1.4.5
Using rails_xss 0.4.0
Using rdoc 5.1.0
Using rubyzip 0.9.9
Using sqlite3 1.3.13
Using test-unit 2.5.5
Using bundler 1.13.7
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
C:/whj/whj_data/WHJ_Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4/ext/iconv
C:/Ruby23/bin/ruby.exe -r ./siteconf20170312-7352-1mhkz11.rb extconf.rb
checking for rb_enc_get() in ruby/encoding.h... yes
checking for rb_sys_fail_str() in ruby.h... yes
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--enable-config-charset
--disable-config-charset
--with-config-charset
--without-config-charset
--with-iconvlib
--without-iconvlib
To see why this extension failed to compile, please check the mkmf.log which can
be found here:
C:/whj/whj_data/WHJ_Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in
C:/whj/whj_data/WHJ_Instiki/vendor/bundle/ruby/2.3.0/gems/iconv-1.0.4 for
inspection.
Results logged to
C:/whj/whj_data/WHJ_Instiki/vendor/bundle/ruby/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/gem_make.out
An error occurred while installing iconv (1.0.4), and Bundler cannot continue.
Make sure that gem install iconv -v '1.0.4'
succeeds before bundling.
I'm not sure why my terminal screen/command prompt isn't echoing
'Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...'
for any of the gems that it says are installing with native extensions.
Also, would it help to have ':mswin' in
'BUNDLE_ICONV: "-v 1.0.4 --:platforms => [:ruby_20, :ruby_21, :ruby_22, :ruby_23, :ruby_24, :x64_mingw, :mingw_23, :mingw_24] --with-iconv-dir=C:\GnuWin32\bin" ?
Not to be obtuse, but I'm really loath to have to jury-rig this to get it to work, and unless my doing so helps you to get the 'just add water and stir' Windows installation working as advertised, I don't really see how it helps you... it's a one-off solution fix.
When is the last time that YOU personally test this?
When is the last time that YOU personally test this?
Never.
I don't understand your platform specifications at all. According to the documentation, :ruby
should never be an appropriate value for a Windows installation. Reasonable values would be
:mingw_nn
(for the 32-bit RubyInstaller version of Ruby n.n):x64_mingw
or:x64_mingw_nn
(for the 64-bit RubyInstaller version of Ruby n.n):mswin
for some non-RubyInstaller version of Ruby.
You never said where you got your Ruby from, which makes it a little hard to figure out which platform
specification is right for you. Are you using RubyInstaller? Which version of their DevKit?
I'm using 32-bit RubyInstaller (2.3.3p222), with DevKit mingw64-32-4.7.2-20130224-1151, both from rubyinstaller.org.
OK. So that should pick up the :mingw_23
platform.
Now, not that it will immediately help getting Instiki running, but if you try to use gem install ...
to install the gems (particularly then "non-native" gems) listed in the Gemfile, does that work?
In particular, can you gem install iconv
?
Installing json works (per the DevKit wiki):
ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
C:\Users\BIA>gem install iconv --platform=ruby
Fetching: iconv-1.0.4.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing iconv:
ERROR: Failed to build gem native extension.
current directory: C:/Ruby23/lib/ruby/gems/2.3.0/gems/iconv-1.0.4/ext/iconv
C:/Ruby23/bin/ruby.exe -r ./siteconf20170314-4552-wcfmms.rb extconf.rb
checking for rb_enc_get() in ruby/encoding.h... yes
checking for rb_sys_fail_str() in ruby.h... yes
checking for iconv() in iconv.h... no
checking for iconv() in -liconv... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby23/bin/$(RUBY_BASE_NAME)
--with-iconv-dir
--without-iconv-dir
--with-iconv-include
--without-iconv-include=${iconv-dir}/include
--with-iconv-lib
--without-iconv-lib=${iconv-dir}/lib
--enable-config-charset
--disable-config-charset
--with-config-charset
--without-config-charset
--with-iconvlib
--without-iconvlib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Ruby23/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/Ruby23/lib/ruby/gems/2.3.0/gems/iconv-1.0.4 for inspection.
Results logged to C:/Ruby23/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/iconv-1.0.4/gem_make.out
C:\Users\BIA>gem list
*** LOCAL GEMS ***
bigdecimal (1.2.8)
did_you_mean (1.0.0)
io-console (0.4.5)
json (1.8.3)
minitest (5.8.5)
net-telnet (0.1.1)
power_assert (0.2.6)
psych (2.1.0)
rake (10.4.2)
rdoc (4.2.1)
test-unit (3.1.5)
C:\Users\BIA>gem install json --platform=ruby
Fetching: json-2.0.3.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Successfully installed json-2.0.3
Parsing documentation for json-2.0.3
Installing ri documentation for json-2.0.3
Done installing documentation for json after 3 seconds
1 gem installed
C:\Users\BIA>gem list
*** LOCAL GEMS ***
bigdecimal (1.2.8)
did_you_mean (1.0.0)
io-console (0.4.5)
json (2.0.3, 1.8.3)
minitest (5.8.5)
net-telnet (0.1.1)
power_assert (0.2.6)
psych (2.1.0)
rake (10.4.2)
rdoc (4.2.1)
test-unit (3.1.5)
C:\Users\BIA>
mkmf.log:
have_func: checking for rb_enc_get() in ruby/encoding.h... -------------------- yes
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char *argv)
6: {
7: return 0;
8: }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <ruby/encoding.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))rb_enc_get; return !p; }
/ end */
have_func: checking for rb_sys_fail_str() in ruby.h... -------------------- yes
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <ruby.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))rb_sys_fail_str; return !p; }
/ end */
have_func: checking for iconv() in iconv.h... -------------------- no
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))iconv; return !p; }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: extern void iconv();
18: int t(void) { iconv(); return 0; }
/ end */
have_library: checking for iconv() in -liconv... -------------------- no
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -liconv -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: int t(void) { void ((volatile p)()); p = (void (()()))iconv; return !p; }
/ end */
"gcc -o conftest.exe -IC:/Ruby23/include/ruby-2.3.0/i386-mingw32 -IC:/Ruby23/include/ruby-2.3.0/ruby/backward -IC:/Ruby23/include/ruby-2.3.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat conftest.c -L. -LC:/Ruby23/lib -L. -lmsvcrt-ruby230 -liconv -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi "
conftest.c:5:19: fatal error: iconv.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <iconv.h>
6:
7: /top/
8: extern int t(void);
9: int main(int argc, char *argv)
10: {
11: if (argc > 1000000) {
12: printf("%p", &t);
13: }
14:
15: return 0;
16: }
17: extern void iconv();
18: int t(void) { iconv(); return 0; }
/ end */
Have a look at this thread. That user did (eventually) get iconv installed on Windows.
As I noted above, I have looked at that thread.
For context, among my motivations for using instiki is that I currently use AsciiDoctor for note-taking purposes, and I thought that having a wiki would make my notes more notebook-like; having one written in Ruby would have the additional benefit of allowing me to learn about Ruby at the same time.
I've spent countless hours off and on over the last couple of years trying to get instiki to install on Windows before finally resorting to posting here (and my previous aborted attempt to post on your other forum where the emailed link function doesn't seem to work). I'm not looking for someone to spoon feed me, and I'm fully aware that this is free software, but at some point, it gets old.
That said, there are several issues. The instructions for installing instiki on Windows are not the problem - they are only a symptom of the problem, with the root cause being the software itself. Having to jump through those hoops just to get iconv to install doesn't even guarantee a successful instiki installation, as evidenced by that thread, and even if it did, it doesn't bode well for ease of upgrading in the future.
I know that you have other obligations, but given that installing instiki on Windows is anything but simple, it doesn't pass truth-in-advertising tests to present it as such. Just like me, that other poster (and possibly others who may have simply given up without posting) spent -- wasted -- many hours of time that we wouldn't have had to (I don't normally classify learning and troubleshooting as a 'waste' but given the circumstances...) if the software worked properly. The proffered solution is a kludge and not a proper fix. Look at it as it applies to you... you are essentially solving something a second time because it wasn't solved properly the first time, and it may not be the last time the issue arises if the software isn't fixed as opposed to applying some hack.
The fact that you proudly state that you have never tested instiki yourself on Windows is rather telling and indicates that Windows is a second class citizen to you, to say nothing of proclaiming something as ready to ship based purely on documentation which may be incomplete and/or incorrect, and without formal testing is a rather unorthodox software development practice to put it charitably.
Until instiki installs on Windows per the published instructions, it cannot be said to be working software and as such the Windows platform should not be listed as one that is supported; that would 'close' the issue, but not in a good sense. As for me, perhaps I should cut my losses and look for another wiki even if that involves one not based on Ruby,
The net result here is that until instiki installs properly without additional steps not required on Unix-like systems, the issue cannot be considered closed.
I realize this is frustrating, but the problem lies with RubyInstaller, not with Instiki. Though they specifically claim that the iconv
gem is supported, that support is evidently broken (as even a cursory bit of googling around seems to indicate).
They do have a bugtracker, so a more productive approach would be raise an issue there.
If you think it would somehow help, I could modify Instiki's documentation to say that Windows is not supported. But I don't think that would make anyone's life better. (It would not even be quite accurate, as Windows ≠ RubyInstaller.)
Frustrating? Frustrating?
What really discourages me and makes me decline to raise the issue with RubyInstaller is that all of the hours of wasted -- WASTED!!! -- time on my part is due to an unforced error on your part (not testing on Windows), one which you seem intent on eliding, and which also has a moral dimension.
I've read the thread regarding issue #38 several times since it was published, and I've always been struck by this part of your response
Did Instiki ever work under Windows ... ?
Yes. And, as far as I am aware, there are still quite a number of people running it under Windows.
In particular, ... will I run into all sorts of other problems... ?
I have no idea.
which in hindsight should have been a huge red flag. And that's part of my problem - if I get 'iconv' resolved, will I end up going down the same path for all or even some of the gems that require compiling? And what happens when it comes time to upgrade? At this point I have no desire to find out.
The hard truth is that there is no mention in the documentation that there are serious issues with a Windows installation which by definition implies that it is working software absent some weird bug, and thus by logical extension, that the software has been properly tested on Windows, which it hasn't. That makes anyone attempting to use it a beta tester of sorts, which would be okay, except that they have no way of knowing that they are in fact performing that role. And not to put too fine a point on it, it proves my point above the absolute folly of your methodology. If you had tested, as opposed to relying on what appears to be faulty documentation, you would have resolved this issue long before this because you would have had everything you needed to work with RubyInstaller yourself. But you can't really raise the issue yourself because without testing, you don't have logs of what is happening and thus you have to rely on potential users' submitting their logs to you... if RubyInstaller asks for more information, you can't provide it first-hand. All in all, it's somewhat ironic that this should even be an issue given Ruby's emphasis on testing; even if that emphasis doesn't explicitly extend to testing on all supposedly supported platforms, common sense suggests that it does implicitly.
And your assertion
If you think it would somehow help, I could modify Instiki's documentation to say that Windows is not supported. But I don't think that would make anyone's life better. (It would not even be quite accurate, as Windows ≠ RubyInstaller.)
is dissembling that is similar to Clinton's infamous "it depends on what the definition of 'is' is." You are conflating Windows and RubyInstaller and the notion of instiki installing on Windows properly with your being very responsive in a timely sense, but that is a false premise - if something doesn't install properly and only installs with various workarounds not mentioned in the documentation and which don't fix the underlying issue, the whole issue of 'support' becomes moot.
If you think that I'm wrong, ask three of your colleagues two questions each, one question which is common to all of them with the other being unique to their specialties:
The common question is 'Would an average user have any idea about the issues of installing instiki on Windows from the documentation?' I would hazard a guess that they all would all reply 'No,' which has implications for the other questions.
Of a CS professor, ask them 'Is relying on documentation an acceptable substitute for testing?'. Again, I'd suggest their answer would be 'No.'
Of a philosophy professor, ask them 'Is it fair to put potential users in the position of being defacto testers without telling them?' 'No' would again be the likely answer.
Of a law professor, ask them 'If implying that a piece of software works out of the box when it doesn't, and especially continuing to do so when you have first-hand knowledge that it doesn't, would that be cause for potential legal action by the user or purchaser, and what would be their chances of success?' I think we both know the answer to that one.
I would have been delighted to test this for you if I had known that that was what I was doing. But I didn't know, so I feel like I've been had, and that's why I'm done. Continuing to even debate the issue is squandering even more of my time...
Shorter summary of this long and unrelentingly hostile thread: Rubygems Issue 977.