Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions configs/components/_base-ruby.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,7 @@
# ENVIRONMENT
#############

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "#{settings[:bindir]}:$(PATH)"
pkg.environment 'CC', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc"
pkg.environment 'CXX', "/opt/pl-build-tools/bin/#{settings[:platform_triple]}-g++"
pkg.environment 'LDFLAGS', "-Wl,-rpath=#{settings[:libdir]}"
elsif platform.is_windows?
if platform.is_windows?
pkg.environment 'PATH',
"$(shell cygpath -u #{settings[:gcc_bindir]}):$(shell cygpath -u #{settings[:tools_root]}/bin):$(shell cygpath -u #{settings[:tools_root]}/include):$(shell cygpath -u #{settings[:bindir]}):$(shell cygpath -u #{ruby_bindir}):$(shell cygpath -u #{settings[:includedir]}):$(PATH)"
pkg.environment 'CYGWIN', settings[:cygwin]
Expand All @@ -45,8 +40,6 @@

pkg.build_requires "openssl-#{settings[:openssl_version]}"

pkg.build_requires "runtime-#{settings[:runtime_project]}" if platform.is_cross_compiled_linux?

#######
# BUILD
#######
Expand Down
1 change: 0 additions & 1 deletion configs/components/_base-rubygem.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
raise "You must set the `pkg.version` in your rubygem component before instance_eval'ing _base_rubygem.rb" unless version && !version.empty?

pkg.build_requires "runtime-#{settings[:runtime_project]}"
pkg.build_requires 'pl-ruby-patch' if platform.is_cross_compiled?

if platform.is_windows?
pkg.environment 'PATH',
Expand Down
8 changes: 1 addition & 7 deletions configs/components/augeas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,12 @@
if platform.is_rpm?
if platform.architecture =~ /aarch64/
pkg.build_requires "runtime-#{settings[:runtime_project]}"
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'PATH', "$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
end
elsif platform.is_deb?
pkg.requires 'libreadline6'

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
end
elsif platform.is_macos?
pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin:/usr/local/bin'
pkg.environment 'CFLAGS', settings[:cflags]
Expand Down
9 changes: 2 additions & 7 deletions configs/components/curl.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,13 @@
pkg.build_requires 'puppet-ca-bundle'

ldflags = settings[:ldflags]
if platform.is_cross_compiled_linux?
pkg.build_requires "runtime-#{settings[:runtime_project]}"
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'PKG_CONFIG_PATH', '/opt/puppetlabs/puppet/lib/pkgconfig'
pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH)'
elsif platform.is_windows?
if platform.is_windows?
pkg.build_requires "runtime-#{settings[:runtime_project]}"
pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)"
pkg.environment 'NM', '/usr/bin/nm' if platform.name =~ /windowsfips-2016/
pkg.environment 'CYGWIN', settings[:cygwin]
else
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'PATH', "$(PATH):#{settings[:bindir]}"
end

configure_options = []
Expand Down
8 changes: 0 additions & 8 deletions configs/components/dmidecode.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,6 @@
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

if platform.is_cross_compiled?
# The Makefile doesn't honor environment overrides, so we need to
# edit it directly for cross-compiling
pkg.configure do
["sed -i \"s|gcc|/opt/pl-build-tools/bin/#{settings[:platform_triple]}-gcc|g\" Makefile"]
end
end

pkg.build do
["#{platform[:make]} -j$(shell expr $(shell #{platform[:num_cores]}) + 1)"]
end
Expand Down
17 changes: 4 additions & 13 deletions configs/components/libffi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,15 @@
pkg.load_from_json('configs/components/libffi.json')
pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz"

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
elsif platform.is_macos?
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

if platform.is_macos?
pkg.environment 'CC', settings[:cc]
pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target]
elsif platform.is_windows?
pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)"
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

pkg.apply_patch 'resources/patches/libffi/revert_clang_32bit.patch' if platform.architecture == 'x86'
else
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
end

pkg.build_requires "runtime-#{settings[:runtime_project]}"
Expand Down
14 changes: 4 additions & 10 deletions configs/components/libxml2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,12 @@
pkg.load_from_json('configs/components/libxml2.json')
pkg.mirror "#{settings[:buildsources_url]}/libxml2-#{pkg.get_version}.tar.xz"

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
elsif platform.is_macos?
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

if platform.is_macos?
pkg.environment 'CC', settings[:cc]
pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target]
else
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
end

pkg.build_requires "runtime-#{settings[:runtime_project]}"
Expand Down
16 changes: 4 additions & 12 deletions configs/components/libyaml.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,14 @@
pkg.load_from_json('configs/components/libyaml.json')
pkg.mirror "#{settings[:buildsources_url]}/yaml-#{pkg.get_version}.tar.gz"

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
elsif platform.is_macos?
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

if platform.is_macos?
pkg.environment 'CC', settings[:cc]
pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target]
elsif platform.is_windows?
pkg.environment 'PATH', "$(shell cygpath -u #{settings[:gcc_bindir]}):$(PATH)"
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
else
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
end

pkg.build_requires "runtime-#{settings[:runtime_project]}"
Expand Down
2 changes: 1 addition & 1 deletion configs/components/openssl-3.0.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
target = "darwin64-#{platform.architecture}"

elsif platform.is_linux?
pkg.environment 'PATH', '/opt/pl-build-tools/bin:$(PATH):/usr/local/bin'
pkg.environment 'PATH', '$(PATH):/usr/local/bin'

ldflags = "#{settings[:ldflags]} -Wl,-z,relro"
case platform.architecture
Expand Down
35 changes: 0 additions & 35 deletions configs/components/pl-ruby-patch.rb

This file was deleted.

7 changes: 1 addition & 6 deletions configs/components/puppet-ca-bundle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,7 @@

pkg.build_requires "openssl-#{settings[:openssl_version]}"

openssl_cmd = if platform.is_cross_compiled_linux?
# Use the build host's openssl command, not our cross-compiled or vendored one
'/usr/bin/openssl'
else
"#{settings[:bindir]}/openssl"
end
openssl_cmd = "#{settings[:bindir]}/openssl"

target = if platform.is_fips?
'install-fips'
Expand Down
14 changes: 4 additions & 10 deletions configs/components/readline.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,12 @@
pkg.load_from_json('configs/components/readline.json')
pkg.mirror "#{settings[:buildsources_url]}/#{pkg.get_name}-#{pkg.get_version}.tar.gz"

if platform.is_cross_compiled_linux?
pkg.environment 'PATH', "/opt/pl-build-tools/bin:$(PATH):#{settings[:bindir]}"
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
elsif platform.is_macos?
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]

if platform.is_macos?
pkg.environment 'CC', settings[:cc]
pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target]
else
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'CFLAGS', settings[:cflags]
end

pkg.build_requires "runtime-#{settings[:runtime_project]}"
Expand Down
40 changes: 4 additions & 36 deletions configs/components/ruby-3.2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@

base = 'resources/patches/ruby_32'

pkg.apply_patch "#{base}/rbinstall_gem_path.patch" if platform.is_cross_compiled?
Comment thread
bastelfreak marked this conversation as resolved.

if platform.is_windows?
pkg.apply_patch "#{base}/windows_mingw32_mkmf.patch"
pkg.apply_patch "#{base}/ruby-faster-load_32.patch"
Expand Down Expand Up @@ -83,8 +81,6 @@
pkg.environment 'optflags', optflags
pkg.environment 'CFLAGS', optflags
pkg.environment 'MAKE', 'make'
elsif platform.is_cross_compiled?
pkg.environment 'CROSS_COMPILING', 'true'
else
pkg.environment 'optflags', '-O2'
end
Expand All @@ -103,26 +99,13 @@
# Ruby's build process requires a "base" ruby and we need a ruby to install
# gems into the /opt/puppetlabs/puppet/lib directory.
#
# For cross-compiles, the base ruby must be executable on the host we're
# building on (usually Intel), not the arch we're building for (such as
# SPARC). This is usually pl-ruby.
#
# For native compiles, we don't want ruby's build process to use whatever ruby
# is in the PATH, as it's probably too old to build ruby 3.2. And we don't
# want to use/maintain pl-ruby if we don't have to. Instead set baseruby to
# "no" which will force ruby to build and use miniruby.
special_flags += if platform.is_cross_compiled?
" --with-baseruby=#{host_ruby} "
else
' --with-baseruby=no '
end

if platform.is_cross_compiled? && platform.is_macos?
Comment thread
bastelfreak marked this conversation as resolved.
# When the target arch is aarch64, ruby incorrectly selects the 'ucontext' coroutine
# implementation instead of 'arm64', so specify 'amd64' explicitly
# https://github.com/ruby/ruby/blob/c9c2245c0a25176072e02db9254f0e0c84c805cd/configure.ac#L2329-L2330
special_flags += ' --with-coroutine=arm64 '
elsif platform.is_windows?
special_flags += ' --with-baseruby=no '

if platform.is_windows?
# ruby's configure script guesses the build host is `cygwin`, because we're using
# cygwin opensshd & bash. So mkmf will convert compiler paths, e.g. -IC:/... to
# cygwin paths, -I/cygdrive/c/..., which confuses mingw-w64. So specify the build
Expand Down Expand Up @@ -207,22 +190,7 @@
# then the CC override allows us to build ffi_c.so for ARM as well. The
# "host" ruby is configured in _shared-agent-settings
rbconfig_changes = {}
if platform.is_cross_compiled?
rbconfig_changes['CC'] = 'gcc'
rbconfig_changes['warnflags'] =
'-Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wdeprecated-declarations -Wno-packed-bitfield-compat -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wno-maybe-uninitialized'
if platform.name =~ /el-7-ppc64/
# EL 7 on POWER will fail with -Wl,--compress-debug-sections=zlib so this
# will remove that entry
# Matches both endians
rbconfig_changes['DLDFLAGS'] =
'-Wl,-rpath=/opt/puppetlabs/puppet/lib -L/opt/puppetlabs/puppet/lib -Wl,-rpath,/opt/puppetlabs/puppet/lib'
elsif platform.name =~ /sles-12-ppc64le/
# the ancient gcc version on sles-12-ppc64le does not understand -fstack-protector-strong, so remove the `strong` part
rbconfig_changes['LDFLAGS'] =
'-L. -Wl,-rpath=/opt/puppetlabs/puppet/lib -fstack-protector -rdynamic -Wl,-export-dynamic -L/opt/puppetlabs/puppet/lib'
end
elsif platform.is_macos?
if platform.is_macos?
rbconfig_changes['CC'] = "#{settings[:cc]} #{cflags}"
elsif platform.is_windows?
rbconfig_changes['CC'] = if platform.architecture == 'x64'
Expand Down
17 changes: 3 additions & 14 deletions configs/components/ruby-augeas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,14 @@
pkg.environment 'CONFIGURE_ARGS', '--vendor'
pkg.environment 'PKG_CONFIG_PATH', "#{File.join(settings[:libdir], 'pkgconfig')}:/usr/lib/pkgconfig"

if platform.is_cross_compiled? && (platform.is_linux? || platform.is_macos?)
pkg.environment 'RUBY', settings[:host_ruby]
ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb"
pkg.environment 'LDFLAGS', settings[:ldflags]
elsif platform.is_macos?
ruby = File.join(settings[:ruby_bindir], 'ruby')

if platform.is_macos?
pkg.environment 'PATH', '$(PATH):/opt/homebrew/bin' if platform.architecture == 'arm64'
pkg.environment 'CC', settings[:cc]
pkg.environment 'CFLAGS', settings[:cflags]
pkg.environment 'LDFLAGS', settings[:ldflags]
pkg.environment 'MACOSX_DEPLOYMENT_TARGET', settings[:deployment_target]
ruby = File.join(settings[:ruby_bindir], 'ruby')
else
ruby = File.join(settings[:ruby_bindir], 'ruby')
end

pkg.build do
Expand Down Expand Up @@ -65,12 +60,6 @@
]
end

if platform.is_cross_compiled_linux?
pkg.install do
"chown root:root #{augeas_rb_target}"
end
end

# Clean after install in case we are building for multiple rubies.
pkg.install do
"#{platform[:make]} -e clean"
Expand Down
5 changes: 0 additions & 5 deletions configs/components/ruby-selinux.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,6 @@
# Instead, we use the headers provided in the tarball.
system_include.prepend('-I./include ') if platform.name =~ /el-(9|10)/

if platform.is_cross_compiled_linux?
pkg.environment 'RUBY', settings[:host_ruby]
ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb"
end

cflags = ''

pkg.build do
Expand Down
13 changes: 2 additions & 11 deletions configs/components/ruby-shadow.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,11 @@
pkg.load_from_json('configs/components/ruby-shadow.json')

pkg.build_requires "ruby-#{settings[:ruby_version]}"
if !platform.is_cross_compiled? && platform.architecture == 'sparc'
pkg.environment 'PATH', '$(PATH):/opt/pl-build-tools/bin:/usr/ccs/bin:/usr/sfw/bin'
else
pkg.environment 'PATH', '$(PATH):/usr/ccs/bin:/usr/sfw/bin'
end
pkg.environment 'PATH', '$(PATH):/usr/ccs/bin:/usr/sfw/bin'

pkg.environment 'CONFIGURE_ARGS', '--vendor'

if platform.is_cross_compiled?
pkg.environment 'RUBY', settings[:host_ruby]
ruby = "#{settings[:host_ruby]} -r#{settings[:datadir]}/doc/rbconfig-#{settings[:ruby_version]}-orig.rb"
else
ruby = File.join(settings[:ruby_bindir], 'ruby')
end
ruby = File.join(settings[:ruby_bindir], 'ruby')

base = 'resources/patches/ruby_32'
# https://github.com/apalmblad/ruby-shadow/issues/26
Expand Down
Loading