Gentoo Archives: gentoo-commits

From: Hans de Graaff <graaff@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/ruby-scripts:master commit in: patchsets/patches-2.4.0/
Date: Sun, 25 Dec 2016 07:40:28
Message-Id: 1482651614.a9c9449b960d0a872b79941bf20239aa9ebe1037.graaff@gentoo
1 commit: a9c9449b960d0a872b79941bf20239aa9ebe1037
2 Author: Hans de Graaff <hans <AT> degraaff <DOT> org>
3 AuthorDate: Sun Dec 25 07:40:14 2016 +0000
4 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
5 CommitDate: Sun Dec 25 07:40:14 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/ruby-scripts.git/commit/?id=a9c9449b
7
8 add patches for 2.4.0
9
10 patchsets/patches-2.4.0/005_no-undefined-ext.patch | 11 ++
11 patchsets/patches-2.4.0/009_no-gems.patch | 112 +++++++++++++++++++++
12 2 files changed, 123 insertions(+)
13
14 diff --git a/patchsets/patches-2.4.0/005_no-undefined-ext.patch b/patchsets/patches-2.4.0/005_no-undefined-ext.patch
15 new file mode 100644
16 index 0000000..f279932
17 --- /dev/null
18 +++ b/patchsets/patches-2.4.0/005_no-undefined-ext.patch
19 @@ -0,0 +1,11 @@
20 +--- ruby-1.9.3-preview1.orig/configure.in
21 ++++ ruby-1.9.3-preview1/configure.in
22 +@@ -2038,7 +2038,7 @@ if test "$with_dln_a_out" != yes; then
23 + [linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi* | kopensolaris*-gnu], [
24 + : ${LDSHARED='$(CC) -shared'}
25 + if test "$rb_cv_binary_elf" = yes; then
26 +- LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
27 ++ LDFLAGS="$LDFLAGS -Wl,-export-dynamic -Wl,--no-undefined"
28 + fi
29 + rb_cv_dlopen=yes],
30 + [interix*], [ : ${LDSHARED='$(CC) -shared'}
31
32 diff --git a/patchsets/patches-2.4.0/009_no-gems.patch b/patchsets/patches-2.4.0/009_no-gems.patch
33 new file mode 100644
34 index 0000000..cdf503c
35 --- /dev/null
36 +++ b/patchsets/patches-2.4.0/009_no-gems.patch
37 @@ -0,0 +1,112 @@
38 +--- tool/rbinstall.rb.~1~ 2016-10-17 09:17:07.000000000 +0200
39 ++++ tool/rbinstall.rb 2016-12-25 08:20:07.873491045 +0100
40 +@@ -695,107 +695,11 @@
41 + # :startdoc:
42 +
43 + install?(:ext, :comm, :gem) do
44 +- gem_dir = Gem.default_dir
45 +- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
46 +- prepare "default gems", gem_dir, directories
47 +-
48 +- spec_dir = File.join(gem_dir, directories.grep(/^spec/)[0])
49 +- default_spec_dir = "#{spec_dir}/default"
50 +- makedirs(default_spec_dir)
51 +-
52 +- gems = Dir.glob(srcdir+"/{lib,ext}/**/*.gemspec").map {|src|
53 +- spec = Gem::Specification.load(src) || raise("invalid spec in #{src}")
54 +- file_collector = RbInstall::Specs::FileCollector.new(File.dirname(src))
55 +- files = file_collector.collect
56 +- next if files.empty?
57 +- spec.files = files
58 +- spec
59 +- }
60 +- gems.compact.sort_by(&:name).each do |gemspec|
61 +- full_name = "#{gemspec.name}-#{gemspec.version}"
62 +-
63 +- puts "#{" "*30}#{gemspec.name} #{gemspec.version}"
64 +- gemspec_path = File.join(default_spec_dir, "#{full_name}.gemspec")
65 +- open_for_install(gemspec_path, $data_mode) do
66 +- gemspec.to_ruby
67 +- end
68 +-
69 +- unless gemspec.executables.empty? then
70 +- bin_dir = File.join(gem_dir, 'gems', full_name, gemspec.bindir)
71 +- makedirs(bin_dir)
72 +-
73 +- execs = gemspec.executables.map {|exec| File.join(srcdir, 'bin', exec)}
74 +- install(execs, bin_dir, :mode => $script_mode)
75 +- end
76 +- end
77 ++ # gems are unbundled in Gentoo
78 + end
79 +
80 + install?(:ext, :comm, :gem) do
81 +- gem_dir = Gem.default_dir
82 +- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
83 +- prepare "bundle gems", gem_dir, directories
84 +- install_dir = with_destdir(gem_dir)
85 +- installed_gems = {}
86 +- options = {
87 +- :install_dir => install_dir,
88 +- :bin_dir => with_destdir(bindir),
89 +- :domain => :local,
90 +- :ignore_dependencies => true,
91 +- :dir_mode => $dir_mode,
92 +- :data_mode => $data_mode,
93 +- :prog_mode => $prog_mode,
94 +- :wrappers => true,
95 +- :format_executable => true,
96 +- }
97 +- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}"
98 +- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir
99 +- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path|
100 +- dir = File.dirname(path)
101 +- spec = Dir.chdir(dir) {
102 +- Gem::Specification.load(File.basename(path))
103 +- }
104 +- next unless spec.platform == Gem::Platform::RUBY
105 +- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1]
106 +- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}"
107 +- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
108 +- spec.extensions[0] ||= "-"
109 +- end
110 +- ins = RbInstall::UnpackedInstaller.new(spec, options)
111 +- puts "#{" "*30}#{spec.name} #{spec.version}"
112 +- ins.install
113 +- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
114 +- unless spec.extensions.empty?
115 +- install_recursive(ext, spec.extension_dir)
116 +- end
117 +- installed_gems[spec.full_name] = true
118 +- end
119 +- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))}
120 +- unless installed_gems.empty?
121 +- install installed_gems, gem_dir+"/cache"
122 +- end
123 +- next if gems.empty?
124 +- if defined?(Zlib)
125 +- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name)))
126 +- silent = Gem::SilentUI.new
127 +- gems.each do |gem|
128 +- inst = Gem::Installer.new(gem, options)
129 +- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir)
130 +- begin
131 +- Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
132 +- rescue Gem::InstallError => e
133 +- next
134 +- end
135 +- gemname = File.basename(gem)
136 +- puts "#{" "*30}#{gemname}"
137 +- end
138 +- # fix directory permissions
139 +- # TODO: Gem.install should accept :dir_mode option or something
140 +- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
141 +- # fix .gemspec permissions
142 +- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))
143 +- else
144 +- puts "skip installing bundle gems because of lacking zlib"
145 +- end
146 ++ # gems are unbundled in Gentoo
147 + end
148 +
149 + parse_args()