Skip to content

Instantly share code, notes, and snippets.

@Azolo
Last active August 29, 2015 14:16
Show Gist options
  • Save Azolo/ae4aa5c29620e003c9e3 to your computer and use it in GitHub Desktop.
Save Azolo/ae4aa5c29620e003c9e3 to your computer and use it in GitHub Desktop.
Running `rake` on Nokogiri@c154c90f8919130e38fbb5954605eee46e1af0d5
diff --git a/Rakefile b/Rakefile
index 171edd6..454df82 100644
--- a/Rakefile
+++ b/Rakefile
@@ -215,7 +215,7 @@ else
archive = File.join("ports", "archives", "#{lib}-#{version}.tar.gz")
add_file_to_gem archive
patchesdir = File.join("ports", "patches", lib)
- patches = `#{['git', 'ls-files', patchesdir].shelljoin}`.split("\n").grep(/\.patch\z/)
+ patches = `#{['git', 'ls-files', patchesdir].join(' ')}`.split("\n").grep(/\.patch\z/)
patches.each { |patch|
add_file_to_gem patch
}
@@ -320,7 +320,7 @@ end
def verify_dll(dll, cross_ruby)
dll_imports = cross_ruby.dlls
- dump = `#{['env', 'LANG=C', cross_ruby.tool('objdump'), '-p', dll].shelljoin}`
+ dump = `#{['env', 'LANG=C', cross_ruby.tool('objdump'), '-p', dll].join(' ')}`
raise "unexpected file format for generated dll #{dll}" unless /file format #{Regexp.quote(cross_ruby.target)}\s/ === dump
raise "export function Init_nokogiri not in dll #{dll}" unless /Table.*\sInit_nokogiri\s/mi === dump
@@ -342,7 +342,7 @@ task :cross do
CROSS_RUBIES.each do |cross_ruby|
task "tmp/#{cross_ruby.platform}/nokogiri/#{cross_ruby.ver}/nokogiri.so" do |t|
# To reduce the gem file size strip mingw32 dlls before packaging
- sh [cross_ruby.tool('strip'), '-S', t.name].shelljoin
+ sh [cross_ruby.tool('strip'), '-S', t.name].join(' ')
verify_dll t.name, cross_ruby
end
end
diff --git a/ext/nokogiri/extconf.rb b/ext/nokogiri/extconf.rb
index 4228164..f8d5038 100644
--- a/ext/nokogiri/extconf.rb
+++ b/ext/nokogiri/extconf.rb
@@ -228,7 +228,7 @@ def process_recipe(name, version, static_p, cross_p)
end
recipe.configure_options += env.map { |key, value|
- "#{key}=#{value}".shellescape
+ "\"#{key}=#{value}\""
}
message <<-"EOS"
@@ -308,7 +308,7 @@ def monkey_patch_mini_portile
@patch_files.each do |full_path|
next unless File.exists?(full_path)
output "Running patch with #{full_path}..."
- execute('patch', %Q(patch -p1 < "#{full_path}"))
+ execute('patch', %Q(git apply "#{full_path}"))
end
end
end
@@ -520,14 +520,14 @@ EOM
when /\A-l./
libs.unshift(arg)
else
- $LDFLAGS << ' ' << arg.shellescape
+ $LDFLAGS << ' ' << arg
end
}
}
# Defining a macro that expands to a C string; double quotes are significant.
- $CPPFLAGS << ' ' << "-DNOKOGIRI_#{recipe.name.upcase}_PATH=\"#{recipe.path}\"".shellescape
- $CPPFLAGS << ' ' << "-DNOKOGIRI_#{recipe.name.upcase}_PATCHES=\"#{recipe.patch_files.map { |path| File.basename(path) }.join(' ')}\"".shellescape
+ $CPPFLAGS << ' ' << "-DNOKOGIRI_#{recipe.name.upcase}_PATH=\"#{recipe.path}\""
+ $CPPFLAGS << ' ' << "-DNOKOGIRI_#{recipe.name.upcase}_PATCHES=\"#{recipe.patch_files.map { |path| File.basename(path) }.join(' ')}\""
case libname
when 'xml2'
@@ -543,7 +543,7 @@ EOM
libs.unshift('-lexslt')
end
}
- }.shelljoin
+ }.join(' ')
if static_p
$libs = $libs.shellsplit.map { |arg|
@@ -555,7 +555,7 @@ EOM
else
arg
end
- }.shelljoin
+ }.join(' ')
end
end
make all-recursive
make[1]: Entering directory `/c/Users/Justin/Projects/nokogiri/tmp/x64-mingw32/nokogiri/2.1.5/tmp/x86_64-w64-mingw32/ports/libxslt/1.1.28/libxslt-1.1.28'
Making all in libxslt
make[2]: Entering directory `/c/Users/Justin/Projects/nokogiri/tmp/x64-mingw32/nokogiri/2.1.5/tmp/x86_64-w64-mingw32/ports/libxslt/1.1.28/libxslt-1.1.28/libxslt'
CC security.lo
security.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
security.c: In function 'xsltCheckWritePath':
security.c:346:3: error: too many arguments to function 'mkdir'
In file included from c:\ruby\devkit\mingw64-64\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/sys/stat.h:14:0,
from security.c:18:
c:\ruby\devkit\mingw64-64\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/io.h:267:15: note: declared here
make[2]: *** [security.lo] Error 1
make[2]: Leaving directory `/c/Users/Justin/Projects/nokogiri/tmp/x64-mingw32/nokogiri/2.1.5/tmp/x86_64-w64-mingw32/ports/libxslt/1.1.28/libxslt-1.1.28/libxslt'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/Users/Justin/Projects/nokogiri/tmp/x64-mingw32/nokogiri/2.1.5/tmp/x86_64-w64-mingw32/ports/libxslt/1.1.28/libxslt-1.1.28'
make: *** [all] Error 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment