diff --git a/.gitignore b/.gitignore index 08ccffa..2340ee4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/ruby-shadow-*.gem +/ruby-shadow-2.5.0.gem diff --git a/ruby-shadow-2.5.0-cflags.patch b/ruby-shadow-2.5.0-cflags.patch new file mode 100644 index 0000000..7f74b84 --- /dev/null +++ b/ruby-shadow-2.5.0-cflags.patch @@ -0,0 +1,16 @@ +--- extconf.rb~ 2017-10-05 20:21:59.480315863 +0200 ++++ extconf.rb 2017-10-05 20:23:55.077931560 +0200 +@@ -6,12 +6,7 @@ + + require 'mkmf' + require 'rbconfig' +- +-$CFLAGS = case RUBY_VERSION +- when /^1\.9/; '-DRUBY19' +- when /^2\./; '-DRUBY19' +- else; '' +- end ++$CFLAGS = "#{$CFLAGS} -DRUBY19" + + implementation = case CONFIG['host_os'] + when /linux/i; 'shadow' diff --git a/ruby-shadow-2.5.1-cflags.patch b/ruby-shadow-2.5.1-cflags.patch deleted file mode 100644 index 6c0a474..0000000 --- a/ruby-shadow-2.5.1-cflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ruby-shadow-2.5.1/extconf.rb.orig 2022-11-30 15:03:24.946310154 +0900 -+++ ruby-shadow-2.5.1/extconf.rb 2022-11-30 15:04:27.984276887 +0900 -@@ -7,7 +7,7 @@ - require 'mkmf' - require 'rbconfig' - --$CFLAGS = case RUBY_VERSION -+$CFLAGS = "#{$CFLAGS} " + case RUBY_VERSION - when /^1\.9/; '-DRUBY19' - when /^2\./; '-DRUBY19' - when /^[34]\./; '-DRUBY19 -DRUBY30' diff --git a/ruby-shadow-2.5.1-extconf-ruby32-fix.patch b/ruby-shadow-2.5.1-extconf-ruby32-fix.patch deleted file mode 100644 index 73cf451..0000000 --- a/ruby-shadow-2.5.1-extconf-ruby32-fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit eab4aba3f5e06ea8f124d3e5ff6b3fa88c4807cd -Author: Mamoru TASAKA -Date: Thu Dec 1 12:23:05 2022 +0900 - - extconf.rb: use Rbconfig::CONFIG instead of mkmf CONFIG - - In mkmf.rb CONFIG is defined as CONFIG is defined as RbConfig::MAKEFILE_CONFIG - and RbConfig::MAKEFILE_CONFIG is almost same as RbConfig::CONFIG - except that RbConfig::MAKEFILE_CONFIG uses reference for other variables. - - Using CONFIG in extconf.rb causes error with ruby3.2 because now - CONFIG['host_os'] uses reference for target_os variable, and extconf.rb - expects that this variable is all expanded. So instead, use RbConfig::CONFIG . - - Closes #30 - -diff --git a/extconf.rb b/extconf.rb -index d17f926..55dcff5 100644 ---- a/extconf.rb -+++ b/extconf.rb -@@ -14,7 +14,7 @@ $CFLAGS = case RUBY_VERSION - else; '' - end - --implementation = case CONFIG['host_os'] -+implementation = case RbConfig::CONFIG['host_os'] - when /linux/i; 'shadow' - when /sunos|solaris/i; 'shadow' - when /freebsd|mirbsd|netbsd|openbsd/i; 'pwd' diff --git a/ruby-shadow-2.5.1-taintedness-ruby32-removal.patch b/ruby-shadow-2.5.1-taintedness-ruby32-removal.patch deleted file mode 100644 index 737f08b..0000000 --- a/ruby-shadow-2.5.1-taintedness-ruby32-removal.patch +++ /dev/null @@ -1,72 +0,0 @@ -commit 7b450355b540df43bab2617fe25437dc3dde12af -Author: Mamoru TASAKA -Date: Thu Dec 1 12:54:31 2022 +0900 - - Replace taintedness function with generic one - - Taintedness is deprecated from ruby 2.7.0 and is removed on ruby3.2.0preview3. - To keep compatibility with ruby older than 2.7, introduce -DRUBY30 compilation - flag from ruby3.0 and onwards, and replace taintedness function with generic one - when RUBY30 is defined (i.e. from ruby3.0 and onwards) - -diff --git a/extconf.rb b/extconf.rb -index d17f926..04f8f97 100644 ---- a/extconf.rb -+++ b/extconf.rb -@@ -10,7 +10,7 @@ require 'rbconfig' - $CFLAGS = case RUBY_VERSION - when /^1\.9/; '-DRUBY19' - when /^2\./; '-DRUBY19' -- when /^3\./; '-DRUBY19' -+ when /^[34]\./; '-DRUBY19 -DRUBY30' - else; '' - end - -diff --git a/pwd/shadow.c b/pwd/shadow.c -index eeb96d4..e73e0db 100644 ---- a/pwd/shadow.c -+++ b/pwd/shadow.c -@@ -56,8 +56,13 @@ static VALUE convert_pw_struct( struct passwd *entry ) - { - /* Hmm. Why custom pw_change instead of sp_lstchg? */ - return rb_struct_new(rb_sPasswdEntry, -+#if defined(RUBY30) -+ rb_str_new2(entry->pw_name), /* sp_namp */ -+ rb_str_new2(entry->pw_passwd), /* sp_pwdp, encryped password */ -+#else - rb_tainted_str_new2(entry->pw_name), /* sp_namp */ - rb_tainted_str_new2(entry->pw_passwd), /* sp_pwdp, encryped password */ -+#endif - Qnil, /* sp_lstchg, date when the password was last changed (in days since Jan 1, 1970) */ - Qnil, /* sp_min, days that password must stay same */ - Qnil, /* sp_max, days until password changes. */ -@@ -66,7 +71,11 @@ static VALUE convert_pw_struct( struct passwd *entry ) - INT2FIX(difftime(entry->pw_change, 0) / (24*60*60)), /* pw_change */ - INT2FIX(difftime(entry->pw_expire, 0) / (24*60*60)), /* sp_expire */ - Qnil, /* sp_flag */ -+#if defined(RUBY30) -+ rb_str_new2(entry->pw_class), /* sp_loginclass, user access class */ -+#else - rb_tainted_str_new2(entry->pw_class), /* sp_loginclass, user access class */ -+#endif - NULL); - } - -diff --git a/shadow/shadow.c b/shadow/shadow.c -index 35a77a1..5202ce5 100644 ---- a/shadow/shadow.c -+++ b/shadow/shadow.c -@@ -34,8 +34,13 @@ static VALUE rb_eFileLock; - static VALUE convert_pw_struct( struct spwd *entry ) - { - return rb_struct_new(rb_sPasswdEntry, -+#if defined(RUBY30) -+ rb_str_new2(entry->sp_namp), -+ rb_str_new2(entry->sp_pwdp), -+#else - rb_tainted_str_new2(entry->sp_namp), - rb_tainted_str_new2(entry->sp_pwdp), -+#endif - INT2FIX(entry->sp_lstchg), - INT2FIX(entry->sp_min), - INT2FIX(entry->sp_max), diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 4d9b04a..cd28aaa 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -1,20 +1,14 @@ %global gem_name ruby-shadow Name: rubygem-%{gem_name} -Version: 2.5.1 -Release: 14%{?dist} +Version: 2.5.0 +Release: 19%{?dist} Summary: Ruby shadow password module -License: LicenseRef-Fedora-UltraPermissive OR Unlicense +License: Public Domain URL: https://github.com/apalmblad/ruby-shadow Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem Source1: https://raw.githubusercontent.com/apalmblad/ruby-shadow/master/test/basic_test.rb -# https://github.com/apalmblad/ruby-shadow/pull/29 -# Ruby3.2 completely removes taintedness function -Patch0: ruby-shadow-2.5.1-taintedness-ruby32-removal.patch -# https://github.com/apalmblad/ruby-shadow/pull/31 -# Ruby3.2 mkmf CONFIG uses reference for other variables yet more -Patch1: ruby-shadow-2.5.1-extconf-ruby32-fix.patch -Patch2: ruby-shadow-2.5.1-cflags.patch +Patch0: ruby-shadow-2.5.0-cflags.patch BuildRequires: gcc BuildRequires: ruby(release) BuildRequires: rubygems-devel @@ -35,12 +29,15 @@ BuildArch: noarch Documentation for %{name}. %prep -%autosetup -p1 -n %{gem_name}-%{version} +gem unpack %{SOURCE0} +%setup -q -D -T -n %{gem_name}-%{version} +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec +%patch0 -p0 cp %{SOURCE1} . %build -export CONFIGURE_ARGS="--with-cflags='%{optflags} -Werror=implicit-function-declaration'" -gem build ../%{gem_name}-%{version}.gemspec +export CONFIGURE_ARGS="--with-cflags='%{optflags}'" +gem build %{gem_name}.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 @@ -86,49 +83,6 @@ popd %doc %{gem_instdir}/README.euc %changelog -* Thu Jan 08 2026 Mamoru TASAKA - 2.5.1-14 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 - -* Sat Nov 08 2025 Mamoru TASAKA - 2.5.1-13 -- Adjust patches for ruby4_0 - -* Fri Jul 25 2025 Fedora Release Engineering - 2.5.1-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sat Jan 18 2025 Fedora Release Engineering - 2.5.1-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jan 08 2025 Mamoru TASAKA - 2.5.1-10 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 - -* Fri Jul 19 2024 Fedora Release Engineering - 2.5.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jul 01 2024 Terje Rosten - 2.5.0-8 -- Use autosetup macro - -* Fri Jan 26 2024 Fedora Release Engineering - 2.5.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jan 03 2024 Vít Ondruch - 2.5.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_3.3 - -* Fri Jul 21 2023 Fedora Release Engineering - 2.5.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jan 20 2023 Fedora Release Engineering - 2.5.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jan 04 2023 Mamoru TASAKA - 2.5.1-3 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 - -* Thu Dec 1 2022 Mamoru TASAKA - 2.5.1-2 -- Backport upstream pull request for ruby3.2 build issue -- Add -Werror=implicit-function explicitly to detect such function - -* Thu Dec 1 2022 Mamoru TASAKA - 2.5.1-1 -- 2.5.1 - * Sat Jul 23 2022 Fedora Release Engineering - 2.5.0-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index ca6544d..9d8b6db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ruby-shadow-2.5.1.gem) = 401ba31f6f87b9b50597e3924c67ef9d0a8f566ea4649735caf59e2b706861babf9b3aa273b7c47ca1cc9c8b4fde79ab21d2e264cd7ba58041fe7b8f9fd87411 +SHA512 (ruby-shadow-2.5.0.gem) = 1abd54df1bd4f29e135093df9b22886a726824f8b72b742017fd31bdc3fa39e3d79410a747cf2ebe4117f75e665fb89c904375b5c44a674bec91a4cc37646520