Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport 7.x] (PUP-12031) Consolidate gem depenendencies & metadata into puppet.gemspec #9337

Merged
merged 2 commits into from
May 9, 2024
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
81 changes: 0 additions & 81 deletions .gemspec

This file was deleted.

7 changes: 6 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ def location_for(place, fake_version = nil)
end
end

# override .gemspec deps - may issue warning depending on Bundler version
# Make sure these gem requirements are in sync with the gempspec. Specifically,
# the runtime_dependencies in puppet.gemspec match the runtime dependencies here
# (like semantic_puppet and puppet-resource_api)

# override .gemspec deps for facter & hiera - may issue warning depending on Bundler version
gem "facter", *location_for(ENV['FACTER_LOCATION']) if ENV.has_key?('FACTER_LOCATION')
gem "hiera", *location_for(ENV['HIERA_LOCATION']) if ENV.has_key?('HIERA_LOCATION')
gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
Expand All @@ -32,6 +36,7 @@ group(:features) do
# requires native ldap headers/libs
# gem 'ruby-ldap', '~> 0.9', require: false, platforms: [:ruby]
gem 'puppetserver-ca', '~> 2.0', require: false
gem 'CFPropertyList', '~> 2.2', require: false
end

group(:test) do
Expand Down
13 changes: 13 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@ task :default do
sh %{rake -T}
end

namespace :pl_ci do
desc 'Build puppet gems'
task :gem_build do
stdout, stderr, status = Open3.capture3('gem build puppet.gemspec --platform x86-mingw32 && gem build puppet.gemspec --platform x64-mingw32 && gem build puppet.gemspec --platform universal-darwin && gem build puppet.gemspec')
if !status.exitstatus.zero?
puts "Error building facter.gemspec \n#{stdout} \n#{stderr}"
exit(1)
else
puts stdout
end
end
end

task :spec do
ENV["LOG_SPEC_ORDER"] = "true"
sh %{rspec #{ENV['TEST'] || ENV['TESTS'] || 'spec'}}
Expand Down
44 changes: 0 additions & 44 deletions ext/project_data.yaml
Original file line number Diff line number Diff line change
@@ -1,54 +1,10 @@
---
project: 'puppet'
author: 'Puppet Labs'
email: '[email protected]'
homepage: 'https://github.com/puppetlabs/puppet'
summary: 'Puppet, an automated configuration management tool'
description: 'Puppet, an automated configuration management tool'
version_file: 'lib/puppet/version.rb'
# files and gem_files are space separated lists
files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
# Make sure these gem requirements are in sync with the gemspec and Gemfile
gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks locales'
gem_test_files:
gem_executables: 'puppet'
gem_default_executables: 'puppet'
gem_license: 'Apache-2.0'
gem_forge_project: 'puppet'
gem_required_ruby_version: '>= 2.5.0'
gem_required_rubygems_version: '> 1.3.1'
gem_runtime_dependencies:
facter: ['> 2.0.1', '< 5']
hiera: ['>= 3.2.1', '< 4']
semantic_puppet: '~> 1.0'
fast_gettext: ['>= 1.1', '< 3']
locale: '~> 2.1'
multi_json: '~> 1.10'
puppet-resource_api: '~>1.5'
concurrent-ruby: "~> 1.0"
deep_merge: '~> 1.0'
scanf: '~> 1.0'
gem_rdoc_options:
- --title
- "Puppet - Configuration Management"
- --main
- README.md
- --line-numbers
gem_platform_dependencies:
universal-darwin:
gem_runtime_dependencies:
CFPropertyList: '~> 2.2'
x86-mingw32:
gem_runtime_dependencies:
ffi: '1.15.5'
minitar: '~> 0.9'
x64-mingw32:
gem_runtime_dependencies:
ffi: '1.15.5'
minitar: '~> 0.9'
bundle_platforms:
universal-darwin: all
x86-mingw32: mingw
x64-mingw32: x64_mingw
pre_tasks:
'package:apple': 'cfpropertylist'
45 changes: 45 additions & 0 deletions puppet.gemspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Gem::Specification.new do |s|
s.name = "puppet"
version = "7.31.0"
mdata = version.match(/(\d+\.\d+\.\d+)/)
s.version = mdata ? mdata[1] : version
s.license = 'Apache-2.0'

s.required_rubygems_version = Gem::Requirement.new("> 1.3.1")
s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
s.authors = ["Puppet Labs"]
s.date = "2012-08-17"
s.description = <<~EOF
Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks
(such as adding users, installing packages, and updating server configurations) based on a centralized specification.
EOF
s.email = "[email protected]"
s.executables = ["puppet"]
s.files = Dir['[A-Z]*'] + Dir['install.rb'] + Dir['bin/*'] + Dir['lib/**/*'] + Dir['conf/*'] + Dir['man/**/*'] + Dir['tasks/*'] + Dir['locales/**/*'] + Dir['ext/**/*'] + Dir['examples/**/*']
s.homepage = "https://github.com/puppetlabs/puppet"
s.rdoc_options = ["--title", "Puppet - Configuration Management", "--main", "README", "--line-numbers"]
s.require_paths = ["lib"]
s.summary = "Puppet, an automated configuration management tool"
s.specification_version = 4
s.add_runtime_dependency(%q<facter>, ["> 2.0.1", "< 5"])
s.add_runtime_dependency(%q<hiera>, [">= 3.2.1", "< 4"])
s.add_runtime_dependency(%q<semantic_puppet>, "~> 1.0")
s.add_runtime_dependency(%q<fast_gettext>, ">= 1.1", "< 3")
s.add_runtime_dependency(%q<locale>, "~> 2.1")
s.add_runtime_dependency(%q<multi_json>, "~> 1.10")
s.add_runtime_dependency(%q<puppet-resource_api>, "~> 1.5")
s.add_runtime_dependency(%q<concurrent-ruby>, "~> 1.0")
s.add_runtime_dependency(%q<deep_merge>, "~> 1.0")
s.add_runtime_dependency(%q<scanf>, "~> 1.0")

# For building platform specific puppet gems...the --platform flag is only supported in newer Ruby versions
platform = s.platform.to_s
if platform == 'universal-darwin'
s.add_runtime_dependency('CFPropertyList', '~> 2.2')
end

if platform == 'x64-mingw32' || platform == 'x86-mingw32'
s.add_runtime_dependency('ffi', '1.15.5')
s.add_runtime_dependency('minitar', '~> 0.9')
end
end
2 changes: 1 addition & 1 deletion spec/unit/provider/user/directoryservice_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
module Puppet::Util::Plist
end

describe Puppet::Type.type(:user).provider(:directoryservice) do
describe Puppet::Type.type(:user).provider(:directoryservice), :if => Puppet.features.cfpropertylist? do
let(:username) { 'nonexistent_user' }
let(:user_path) { "/Users/#{username}" }
let(:resource) do
Expand Down