forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-lang/ruby: EAPI 7, fix libressl 2.7
Convert to EAPI 7 Fix compilation with libressl 2.7, bug 656584 Use patches in FILESDIR instead of patchset Package-Manager: Portage-2.3.40, Repoman-2.3.9
- Loading branch information
Showing
6 changed files
with
495 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
Bug: https://bugs.gentoo.org/show_bug.cgi?id=618878 | ||
|
||
A few patches to make crossdev for mingw-w64 play nice with ruby's ebuilds. | ||
Basic gist is that without the following patch to configure.in ruby-2.4.1 | ||
hardcodes 240 into the shared, static, and import library names, which when | ||
built with the current ruby ebuilds results in names like libx64-msvcrt-ruby24240.dll and so on. The patch is in ruby-trunk[1], but may take a while | ||
to hit the tarballs that gentoo uses. | ||
|
||
Index: configure.in | ||
=================================================================== | ||
--- a/configure.in (revision 57824) | ||
+++ b/configure.in (revision 57825) | ||
@@ -3825,7 +3825,23 @@ | ||
|
||
AC_ARG_WITH(soname, | ||
AS_HELP_STRING([--with-soname=SONAME], [base name of shared library]), | ||
- [RUBY_SO_NAME=$withval], [RUBY_SO_NAME='$(RUBY_BASE_NAME)']) | ||
+ [RUBY_SO_NAME=$withval], | ||
+ [ | ||
+ AS_CASE(["$target_os"], | ||
+ [darwin*], [ | ||
+ RUBY_SO_NAME='$(RUBY_BASE_NAME).$(RUBY_PROGRAM_VERSION)' | ||
+ ], | ||
+ [cygwin*], [ | ||
+ RUBY_SO_NAME='$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0' | ||
+ ], | ||
+ [mingw*], [ | ||
+ RUBY_SO_NAME="${rb_cv_msvcrt}"'-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)0' | ||
+ AS_IF([test x"${target_cpu}" != xi386], [ | ||
+ RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}" | ||
+ ]) | ||
+ ], | ||
+ [RUBY_SO_NAME='$(RUBY_BASE_NAME)']) | ||
+ ]) | ||
|
||
LIBRUBY_LDSHARED=$LDSHARED | ||
LIBRUBY_DLDFLAGS=$DLDFLAGS | ||
@@ -3925,7 +3941,6 @@ | ||
SOLIBS='-lm -lc' | ||
], | ||
[darwin*], [ | ||
- RUBY_SO_NAME="$RUBY_SO_NAME"'.$(RUBY_PROGRAM_VERSION)' | ||
LIBRUBY_LDSHARED='$(CC) -dynamiclib' | ||
if test "$load_relative" = yes; then | ||
libprefix="@executable_path/../${libdir_basename}" | ||
@@ -4157,7 +4172,6 @@ | ||
fi | ||
], | ||
[cygwin*|mingw*], [ | ||
- RUBY_SO_NAME="${RUBY_SO_NAME}"'$(MAJOR)$(MINOR)0' | ||
LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)' | ||
AS_CASE(["$target_os"], | ||
[cygwin*], [ | ||
@@ -4167,10 +4181,6 @@ | ||
fi | ||
], | ||
[mingw*], [ | ||
- RUBY_SO_NAME="${rb_cv_msvcrt}-${RUBY_SO_NAME}" | ||
- if test x"${target_cpu}" != xi386; then | ||
- RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}" | ||
- fi | ||
if test x"$enable_shared" = xyes; then | ||
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll | ||
LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- ruby-1.9.3-preview1.orig/configure.in | ||
+++ ruby-1.9.3-preview1/configure.in | ||
@@ -2038,7 +2038,7 @@ if test "$with_dln_a_out" != yes; then | ||
[linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu], [ | ||
: ${LDSHARED='$(CC) -shared'} | ||
if test "$rb_cv_binary_elf" = yes; then | ||
- LDFLAGS="$LDFLAGS -Wl,-export-dynamic" | ||
+ LDFLAGS="$LDFLAGS -Wl,-export-dynamic -Wl,--no-undefined" | ||
fi | ||
rb_cv_dlopen=yes], | ||
[interix*], [ : ${LDSHARED='$(CC) -shared'} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
--- a/tool/rbinstall.rb.~1~ 2016-10-17 09:17:07.000000000 +0200 | ||
+++ b/tool/rbinstall.rb 2016-12-25 08:20:07.873491045 +0100 | ||
@@ -695,107 +695,11 @@ | ||
# :startdoc: | ||
|
||
install?(:ext, :comm, :gem) do | ||
- gem_dir = Gem.default_dir | ||
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) | ||
- prepare "default gems", gem_dir, directories | ||
- | ||
- spec_dir = File.join(gem_dir, directories.grep(/^spec/)[0]) | ||
- default_spec_dir = "#{spec_dir}/default" | ||
- makedirs(default_spec_dir) | ||
- | ||
- gems = Dir.glob(srcdir+"/{lib,ext}/**/*.gemspec").map {|src| | ||
- spec = Gem::Specification.load(src) || raise("invalid spec in #{src}") | ||
- file_collector = RbInstall::Specs::FileCollector.new(File.dirname(src)) | ||
- files = file_collector.collect | ||
- next if files.empty? | ||
- spec.files = files | ||
- spec | ||
- } | ||
- gems.compact.sort_by(&:name).each do |gemspec| | ||
- full_name = "#{gemspec.name}-#{gemspec.version}" | ||
- | ||
- puts "#{" "*30}#{gemspec.name} #{gemspec.version}" | ||
- gemspec_path = File.join(default_spec_dir, "#{full_name}.gemspec") | ||
- open_for_install(gemspec_path, $data_mode) do | ||
- gemspec.to_ruby | ||
- end | ||
- | ||
- unless gemspec.executables.empty? then | ||
- bin_dir = File.join(gem_dir, 'gems', full_name, gemspec.bindir) | ||
- makedirs(bin_dir) | ||
- | ||
- execs = gemspec.executables.map {|exec| File.join(srcdir, 'bin', exec)} | ||
- install(execs, bin_dir, :mode => $script_mode) | ||
- end | ||
- end | ||
+ # gems are unbundled in Gentoo | ||
end | ||
|
||
install?(:ext, :comm, :gem) do | ||
- gem_dir = Gem.default_dir | ||
- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) | ||
- prepare "bundle gems", gem_dir, directories | ||
- install_dir = with_destdir(gem_dir) | ||
- installed_gems = {} | ||
- options = { | ||
- :install_dir => install_dir, | ||
- :bin_dir => with_destdir(bindir), | ||
- :domain => :local, | ||
- :ignore_dependencies => true, | ||
- :dir_mode => $dir_mode, | ||
- :data_mode => $data_mode, | ||
- :prog_mode => $prog_mode, | ||
- :wrappers => true, | ||
- :format_executable => true, | ||
- } | ||
- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}" | ||
- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir | ||
- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path| | ||
- dir = File.dirname(path) | ||
- spec = Dir.chdir(dir) { | ||
- Gem::Specification.load(File.basename(path)) | ||
- } | ||
- next unless spec.platform == Gem::Platform::RUBY | ||
- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1] | ||
- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}" | ||
- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}") | ||
- spec.extensions[0] ||= "-" | ||
- end | ||
- ins = RbInstall::UnpackedInstaller.new(spec, options) | ||
- puts "#{" "*30}#{spec.name} #{spec.version}" | ||
- ins.install | ||
- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec")) | ||
- unless spec.extensions.empty? | ||
- install_recursive(ext, spec.extension_dir) | ||
- end | ||
- installed_gems[spec.full_name] = true | ||
- end | ||
- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))} | ||
- unless installed_gems.empty? | ||
- install installed_gems, gem_dir+"/cache" | ||
- end | ||
- next if gems.empty? | ||
- if defined?(Zlib) | ||
- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name))) | ||
- silent = Gem::SilentUI.new | ||
- gems.each do |gem| | ||
- inst = Gem::Installer.new(gem, options) | ||
- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir) | ||
- begin | ||
- Gem::DefaultUserInteraction.use_ui(silent) {inst.install} | ||
- rescue Gem::InstallError => e | ||
- next | ||
- end | ||
- gemname = File.basename(gem) | ||
- puts "#{" "*30}#{gemname}" | ||
- end | ||
- # fix directory permissions | ||
- # TODO: Gem.install should accept :dir_mode option or something | ||
- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/")) | ||
- # fix .gemspec permissions | ||
- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec")) | ||
- else | ||
- puts "skip installing bundle gems because of lacking zlib" | ||
- end | ||
+ # gems are unbundled in Gentoo | ||
end | ||
|
||
parse_args() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- a/ext/openssl/extconf.rb.orig 2017-09-08 14:38:12 UTC | ||
+++ b/ext/openssl/extconf.rb | ||
@@ -157,8 +157,11 @@ OpenSSL.check_func_or_macro("SSL_get_ser | ||
have_func("SSL_is_server") | ||
|
||
# added in 1.1.0 | ||
+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || | ||
+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h") | ||
+ $defs.push("-DHAVE_OPAQUE_OPENSSL") | ||
+end | ||
have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API") | ||
-have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL") | ||
have_func("BN_GENCB_new") | ||
have_func("BN_GENCB_free") | ||
have_func("BN_GENCB_get_arg") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
From 027b576b31cd12bad575b3a39476726273f58c41 Mon Sep 17 00:00:00 2001 | ||
From: naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | ||
Date: Mon, 18 Dec 2017 09:03:59 +0000 | ||
Subject: [PATCH] suppress warning: 'const' attribute on function returning | ||
'void' | ||
|
||
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e | ||
--- | ||
include/ruby/intern.h | 4 ++-- | ||
include/ruby/ruby.h | 2 +- | ||
internal.h | 4 ++-- | ||
3 files changed, 5 insertions(+), 5 deletions(-) | ||
|
||
diff --git a/include/ruby/intern.h b/include/ruby/intern.h | ||
index 5684b3230a67..a711b861159f 100644 | ||
--- a/include/ruby/intern.h | ||
+++ b/include/ruby/intern.h | ||
@@ -249,9 +249,9 @@ PRINTF_ARGS(NORETURN(void rb_name_error_str(VALUE, const char*, ...)), 2, 3); | ||
NORETURN(void rb_invalid_str(const char*, const char*)); | ||
NORETURN(void rb_error_frozen(const char*)); | ||
NORETURN(void rb_error_frozen_object(VALUE)); | ||
-CONSTFUNC(void rb_error_untrusted(VALUE)); | ||
+void rb_error_untrusted(VALUE); | ||
void rb_check_frozen(VALUE); | ||
-CONSTFUNC(void rb_check_trusted(VALUE)); | ||
+void rb_check_trusted(VALUE); | ||
#define rb_check_frozen_internal(obj) do { \ | ||
VALUE frozen_obj = (obj); \ | ||
if (OBJ_FROZEN(frozen_obj)) { \ | ||
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h | ||
index 9c7d2fb68439..3210103c648a 100644 | ||
--- a/include/ruby/ruby.h | ||
+++ b/include/ruby/ruby.h | ||
@@ -628,7 +628,7 @@ int ruby_safe_level_2_warning(void) __attribute__((const,warning("$SAFE=2 to 4 a | ||
# define rb_set_safe_level(level) rb_set_safe_level(RUBY_SAFE_LEVEL_CHECK(level, error)) | ||
#endif | ||
void rb_set_safe_level_force(int); | ||
-CONSTFUNC(void rb_secure_update(VALUE)); | ||
+void rb_secure_update(VALUE); | ||
NORETURN(void rb_insecure_operation(void)); | ||
|
||
VALUE rb_errinfo(void); | ||
diff --git a/internal.h b/internal.h | ||
index d0257a8d8ba0..4ccf3218c6ca 100644 | ||
--- a/internal.h | ||
+++ b/internal.h | ||
@@ -1110,7 +1110,7 @@ VALUE rb_invcmp(VALUE, VALUE); | ||
struct rb_block; | ||
int rb_dvar_defined(ID, const struct rb_block *); | ||
int rb_local_defined(ID, const struct rb_block *); | ||
-CONSTFUNC(const char * rb_insns_name(int i)); | ||
+const char * rb_insns_name(int i); | ||
VALUE rb_insns_name_array(void); | ||
|
||
/* complex.c */ | ||
@@ -1136,7 +1136,7 @@ void Init_ext(void); | ||
|
||
/* encoding.c */ | ||
ID rb_id_encoding(void); | ||
-CONSTFUNC(void rb_gc_mark_encodings(void)); | ||
+void rb_gc_mark_encodings(void); | ||
rb_encoding *rb_enc_get_from_index(int index); | ||
rb_encoding *rb_enc_check_str(VALUE str1, VALUE str2); | ||
int rb_encdb_replicate(const char *alias, const char *orig); |
Oops, something went wrong.