From 82fabb6cb930c0c4806758f9e318a3ab79021325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 9 Dec 2025 16:22:05 +0100 Subject: [PATCH 1/2] Add SPDX support for F38+ Fixes #113 --- ...gin.spec.erb => fedora-38-rawhide-vagrant-plugin.spec.erb} | 2 +- ...{fedora-27-rawhide.spec.erb => fedora-38-rawhide.spec.erb} | 2 +- test/test_template.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename templates/{fedora-27-rawhide-vagrant-plugin.spec.erb => fedora-38-rawhide-vagrant-plugin.spec.erb} (98%) rename templates/{fedora-27-rawhide.spec.erb => fedora-38-rawhide.spec.erb} (98%) diff --git a/templates/fedora-27-rawhide-vagrant-plugin.spec.erb b/templates/fedora-38-rawhide-vagrant-plugin.spec.erb similarity index 98% rename from templates/fedora-27-rawhide-vagrant-plugin.spec.erb rename to templates/fedora-38-rawhide-vagrant-plugin.spec.erb index 2d47637..44c5f86 100644 --- a/templates/fedora-27-rawhide-vagrant-plugin.spec.erb +++ b/templates/fedora-38-rawhide-vagrant-plugin.spec.erb @@ -5,7 +5,7 @@ Name: %{vagrant_plugin_name} Version: <%= spec.version %> Release: 1%{?dist} Summary: <%= spec.summary.gsub(/\.$/, "") %> -License: <%= spec.licenses.join(" and ") %> +License: <%= spec.licenses.join(" AND ") %> <% if spec.homepage -%> URL: <%= spec.homepage %> <% end -%> diff --git a/templates/fedora-27-rawhide.spec.erb b/templates/fedora-38-rawhide.spec.erb similarity index 98% rename from templates/fedora-27-rawhide.spec.erb rename to templates/fedora-38-rawhide.spec.erb index 7ad641b..467e377 100644 --- a/templates/fedora-27-rawhide.spec.erb +++ b/templates/fedora-38-rawhide.spec.erb @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Version: <%= spec.version %> Release: 1%{?dist} Summary: <%= spec.summary.gsub(/\.$/, "") %> -License: <%= spec.licenses.join(" and ") %> +License: <%= spec.licenses.join(" AND ") %> <% if spec.homepage -%> URL: <%= spec.homepage %> <% end -%> diff --git a/test/test_template.rb b/test/test_template.rb index e24c220..e7bd31c 100644 --- a/test/test_template.rb +++ b/test/test_template.rb @@ -15,8 +15,8 @@ def test_list fedora-21-25.spec.erb fedora-26-vagrant-plugin.spec.erb fedora-26.spec.erb - fedora-27-rawhide-vagrant-plugin.spec.erb - fedora-27-rawhide.spec.erb + fedora-38-rawhide-vagrant-plugin.spec.erb + fedora-38-rawhide.spec.erb fedora.spec.erb opensuse.spec.erb pld.spec.erb From 15fc62a51dd9aee4da7b34d6bb9987493eb5ab8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 9 Dec 2025 16:25:41 +0100 Subject: [PATCH 2/2] Restore templates for F27-F37 This is separate commit mainly to keep the git history for the "main" templates linear. --- .../fedora-27-37-vagrant-plugin.spec.erb | 108 ++++++++++++++++ templates/fedora-27-37.spec.erb | 115 ++++++++++++++++++ test/test_template.rb | 2 + 3 files changed, 225 insertions(+) create mode 100644 templates/fedora-27-37-vagrant-plugin.spec.erb create mode 100644 templates/fedora-27-37.spec.erb diff --git a/templates/fedora-27-37-vagrant-plugin.spec.erb b/templates/fedora-27-37-vagrant-plugin.spec.erb new file mode 100644 index 0000000..2d47637 --- /dev/null +++ b/templates/fedora-27-37-vagrant-plugin.spec.erb @@ -0,0 +1,108 @@ +# Generated from <%= spec.file_name %> by gem2rpm -*- rpm-spec -*- +%global vagrant_plugin_name <%= spec.name %> + +Name: %{vagrant_plugin_name} +Version: <%= spec.version %> +Release: 1%{?dist} +Summary: <%= spec.summary.gsub(/\.$/, "") %> +License: <%= spec.licenses.join(" and ") %> +<% if spec.homepage -%> +URL: <%= spec.homepage %> +<% end -%> +Source0: <%= download_path %>%{vagrant_plugin_name}-%{version}.gem +Requires: vagrant +BuildRequires: vagrant +<% if spec.extensions.empty? -%> +BuildArch: noarch +<% end -%> +Provides: vagrant(%{vagrant_plugin_name}) = %{version} + +%description +<%= spec.description %> + +<% if doc_subpackage -%> +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +Documentation for %{name}. +<% end # if doc_subpackage -%> + +%prep +%setup -q -n %{vagrant_plugin_name}-%{version} + +%build +# Create the gem as gem install only works on a gem file +gem build ../%{vagrant_plugin_name}-%{version}.gemspec + +# %%vagrant_plugin_install compiles any C extensions and installs the gem into ./%%gem_dir +# by default, so that we can move it into the buildroot in %%install +%vagrant_plugin_install + +%install +mkdir -p %{buildroot}%{vagrant_plugin_dir} +cp -a .%{vagrant_plugin_dir}/* \ + %{buildroot}%{vagrant_plugin_dir}/ + +<% unless spec.extensions.empty? -%> +mkdir -p %{buildroot}%{vagrant_plugin_extdir_mri} +cp -a .%{vagrant_plugin_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{vagrant_plugin_extdir_mri}/ + +<% for ext in spec.extensions -%> +# Prevent dangling symlink in -debuginfo (rhbz#878863). +rm -rf %{buildroot}%{vagrant_plugin_instdir}/<%= ext.split(File::SEPARATOR).first %>/ +<% end -%> +<% end -%> + +<% unless spec.executables.empty? -%> +mkdir -p %{buildroot}%{_bindir} +cp -a .%{_bindir}/* \ + %{buildroot}%{_bindir}/ + +find %{buildroot}%{vagrant_plugin_instdir}/<%= spec.bindir %> -type f | xargs chmod a+x +<% end -%> + +%check +pushd .%{gem_instdir} +<% if tests.entries.empty? -%> +# Run the test suite. +<% end -%> +<% for t in tests -%> +# <%= t.command %> +<% end -%> +popd + +<% +# Change macros for Vagrant packaging +config.macros[:instdir] = '%{vagrant_plugin_instdir}' +config.macros[:libdir] = '%{vagrant_plugin_libdir}' +-%> +%files +%dir %{vagrant_plugin_instdir} +<% for f in spec.executables -%> +%{_bindir}/<%= f %> +<% end -%> +<% unless spec.extensions.empty? -%> +%{vagrant_plugin_extdir_mri} +<% end -%> +<%= main_files.reject do |item| + spec.extensions.detect { |extension| item =~ /^#{extension.split(File::SEPARATOR).first}$/} +end.to_rpm %> +<% unless doc_subpackage -%> +%doc %{vagrant_plugin_docdir} +<%= doc_files.to_rpm %> +<% end -%> +%exclude %{vagrant_plugin_cache} +%{vagrant_plugin_spec} + +<% if doc_subpackage -%> +%files doc +%doc %{vagrant_plugin_docdir} +<%= files.top_level_entries.doc_entries.to_rpm %> +<% end # if doc_subpackage -%> + +%changelog +* <%= Time.now.strftime("%a %b %d %Y") %> <%= packager %> - <%= spec.version %>-1 +- Initial package diff --git a/templates/fedora-27-37.spec.erb b/templates/fedora-27-37.spec.erb new file mode 100644 index 0000000..7ad641b --- /dev/null +++ b/templates/fedora-27-37.spec.erb @@ -0,0 +1,115 @@ +# Generated from <%= spec.file_name %> by gem2rpm -*- rpm-spec -*- +%global gem_name <%= spec.name %> + +Name: rubygem-%{gem_name} +Version: <%= spec.version %> +Release: 1%{?dist} +Summary: <%= spec.summary.gsub(/\.$/, "") %> +License: <%= spec.licenses.join(" and ") %> +<% if spec.homepage -%> +URL: <%= spec.homepage %> +<% end -%> +Source0: <%= download_path %>%{gem_name}-%{version}.gem +BuildRequires: ruby(release) +<% for req in spec.required_rubygems_version -%> +BuildRequires: <%= requirement 'rubygems-devel', req %> +<% end -%> +<% for req in spec.required_ruby_version -%> +BuildRequires: <%= requirement "ruby#{'-devel' unless spec.extensions.empty?}", req %> +<% end -%> +<% unless spec.extensions.empty? -%> +# Compiler is required for build of gem binary extension. +# https://fedoraproject.org/wiki/Packaging:C_and_C++#BuildRequires_and_Requires +BuildRequires: gcc +<% end -%> +<%= development_dependencies.reject do |d| + ["rdoc", "rake", "bundler"].include? d.name +end.virtualize.with_requires.comment_out.to_rpm -%> +<% if spec.extensions.empty? -%> +BuildArch: noarch +<% end -%> + +%description +<%= spec.description %> + +<% if doc_subpackage -%> +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +Documentation for %{name}. +<% end # if doc_subpackage -%> + +%prep +%setup -q -n %{gem_name}-%{version} + +%build +# Create the gem as gem install only works on a gem file +gem build ../%{gem_name}-%{version}.gemspec + +# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir +# by default, so that we can move it into the buildroot in %%install +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +<% unless spec.extensions.empty? -%> +mkdir -p %{buildroot}%{gem_extdir_mri} +cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/ + +<% for ext in spec.extensions -%> +# Prevent dangling symlink in -debuginfo (rhbz#878863). +rm -rf %{buildroot}%{gem_instdir}/<%= ext.split(File::SEPARATOR).first %>/ +<% end -%> +<% end -%> + +<% unless spec.executables.empty? -%> +mkdir -p %{buildroot}%{_bindir} +cp -a .%{_bindir}/* \ + %{buildroot}%{_bindir}/ + +find %{buildroot}%{gem_instdir}/<%= spec.bindir %> -type f | xargs chmod a+x +<% end -%> + +%check +pushd .%{gem_instdir} +<% if tests.entries.empty? -%> +# Run the test suite. +<% end -%> +<% for t in tests -%> +# <%= t.command %> +<% end -%> +popd + +%files +%dir %{gem_instdir} +<% for f in spec.executables -%> +%{_bindir}/<%= f %> +<% end -%> +<% unless spec.extensions.empty? -%> +%{gem_extdir_mri} +<% end -%> +<%= main_files.reject do |item| + spec.extensions.detect { |extension| item =~ /^#{extension.split(File::SEPARATOR).first}$/} +end.to_rpm %> +<% unless doc_subpackage -%> +%doc %{gem_docdir} +<%= doc_files.to_rpm %> +<% end -%> +%exclude %{gem_cache} +%{gem_spec} + +<% if doc_subpackage -%> +%files doc +%doc %{gem_docdir} +<%= doc_files.to_rpm %> +<% end # if doc_subpackage -%> + +%changelog +* <%= Time.now.strftime("%a %b %d %Y") %> <%= packager %> - <%= spec.version %>-1 +- Initial package diff --git a/test/test_template.rb b/test/test_template.rb index e7bd31c..f23e163 100644 --- a/test/test_template.rb +++ b/test/test_template.rb @@ -15,6 +15,8 @@ def test_list fedora-21-25.spec.erb fedora-26-vagrant-plugin.spec.erb fedora-26.spec.erb + fedora-27-37-vagrant-plugin.spec.erb + fedora-27-37.spec.erb fedora-38-rawhide-vagrant-plugin.spec.erb fedora-38-rawhide.spec.erb fedora.spec.erb