From aa3d2418ca5743be3174c29e3bb6c4127f858a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Terje=20R=C3=B8sten?= Date: Tue, 10 Oct 2017 19:24:19 +0200 Subject: [PATCH 01/11] Initial import (#1498991). --- .gitignore | 1 + README.md | 3 - basic_test.rb | 59 ++++++++++++++++ ruby-shadow-2.5.0-cflags.patch | 16 +++++ rubygem-ruby-shadow.spec | 123 +++++++++++++++++++++++++++++++++ sources | 1 + 6 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 README.md create mode 100644 basic_test.rb create mode 100644 ruby-shadow-2.5.0-cflags.patch create mode 100644 rubygem-ruby-shadow.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2340ee4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/ruby-shadow-2.5.0.gem diff --git a/README.md b/README.md deleted file mode 100644 index 7856f90..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rubygem-ruby-shadow - -The rubygem-ruby-shadow package \ No newline at end of file diff --git a/basic_test.rb b/basic_test.rb new file mode 100644 index 0000000..34cc580 --- /dev/null +++ b/basic_test.rb @@ -0,0 +1,59 @@ +require 'test/unit' +require 'rubygems' +require 'shadow' +require 'stringio' +class RubyShadowTest < Test::Unit::TestCase + STRUCT_METHODS = %w( sp_namp sp_pwdp sp_lstchg sp_min sp_max sp_warn sp_inact sp_expire sp_loginclass ) + # --------------------------------------------------- test_smoke_test_getspent + def test_smoke_test_getspent + x = Shadow::Passwd.getspent + assert( x, "ensure you have permissions to check this (sudo?)" ) + check_struct( x ) + end + # ----------------------------------------------------- test_getspnam_for_user + def test_getspnam_for_user + user = `whoami`.strip + x = Shadow::Passwd.getspnam( user ) + assert( x, "ensure you have permissions to check this (sudo?)" ) + check_struct( x ) + end + # ---------------------------------------- test_getspnam_for_non_existent_user + def test_getspnam_for_non_existent_user + assert_nil( Shadow::Passwd.getspnam( 'somebadusername' ) ) + end + # -------------------------------------------------------------- test_putspent + def test_putspent + omit_if( Shadow::IMPLEMENTATION != 'SHADOW' ) if respond_to?( :omit_if ) + #result = StringIO.open( '', 'w' ) do |fh| + File.open( 'test_password', 'w' ) do |fh| + Shadow::Passwd.add_password_entry( sample_entry, fh ) + end + assert( File.read( 'test_password' ).match( sample_entry.first ) ) + end + # --------------------------------------------------------------- check_struct + def check_struct( s ) + STRUCT_METHODS.each do |m| + s.send( m ) + end + end + # ----------------------------------------------------------------- test_entry + def sample_entry( &block ) + return ['test_user', # sp_namp + 'new_pass', # sp_pwdp + 0, #sp_lastchg + 0, #sp_min + 0, #sp_max + 0, #sp_warn + 0, #sp_inact + 0, #???? + 0, #sp_expire + 0 # sp_flag + ] + e = Shadow::Passwd::Entry.new + e.sp_namp = 'test_user' + e.sp_pwdp = 'password' + yield e if block_given? + return e + end +end + 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/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec new file mode 100644 index 0000000..5fa9be5 --- /dev/null +++ b/rubygem-ruby-shadow.spec @@ -0,0 +1,123 @@ +%global gem_name ruby-shadow + +Name: rubygem-%{gem_name} +Version: 2.5.0 +Release: 2%{?dist} +Summary: Ruby shadow password module +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 +Patch0: ruby-shadow-2.5.0-cflags.patch +BuildRequires: ruby(release) +BuildRequires: rubygems-devel +BuildRequires: ruby-devel +BuildRequires: rubygem(minitest) +BuildRequires: rubygem(test-unit) +Obsoletes: ruby-shadow < 1.4.1-36 +Provides: ruby-shadow = %{version}-%{release} +Provides: ruby(shadow) = %{version} +%description +This module provides access to shadow passwords on Linux and Solaris. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +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}'" +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 +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* %{buildroot}%{gem_dir}/ + +# two identical so files confuses rpmbuild +find %{buildroot}%{gem_dir}/ -name \*.so -delete + +mkdir -p %{buildroot}%{gem_extdir_mri} +cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/ + +# Prevent dangling symlink in -debuginfo (rhbz#878863). +rm -rf %{buildroot}%{gem_instdir}/ext/ + +%check +cp %{SOURCE1} .%{gem_instdir} +pushd .%{gem_instdir} +if [ $(id -u) = 0 ]; then + ruby -I. -e 'Dir.glob "*_test.rb", &method(:require)' +else + ruby -I. -e 'Dir.glob "*_test.rb", &method(:require)' || : +fi +popd + +%files +%dir %{gem_instdir} +%{gem_extdir_mri} +%{gem_instdir}/%{gem_name}.gemspec +%exclude %{gem_instdir}/.* +%license %{gem_instdir}/LICENSE +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%doc %{gem_docdir} +%exclude %{gem_instdir}/* +%doc %{gem_instdir}/HISTORY +%doc %{gem_instdir}/README +%doc %{gem_instdir}/README.euc + +%changelog +* Mon Oct 09 2017 Terje Rosten - 2.5.0-2 +- Remove group +- Run tests + +* Thu Oct 05 2017 Terje Rosten - 2.5.0-1 +- 2.5.0 +- Remove non Fedora support +- Simplify + +* Fri Mar 01 2013 Moses Mendoza - 2.2.0-1 +- Update to upstream 2.2.0 +- Move gem path macro definitions inside rhel5 macro block +- Install only files we want rather than removing files we dont +- Remove extraneous case in spec for gem_instdir/*.so +- Move gemspec(s) into docs package + +* Mon Nov 05 2012 Moses Mendoza - 2.1.4-1 +- Update to 2.1.4 +- Dynamically define gem_dir macro +- Use ruby_sitearch macro for EPEL, fedora < 17 + +* Tue Apr 17 2012 Todd Zullinger - 2.1.3-2 +- Use gem_extdir macro on F-17 and above + +* Fri Apr 06 2012 Todd Zullinger - 2.1.3-1 +- Update to 2.1.3 +- Fix license tag + +* Sun Apr 01 2012 Todd Zullinger - 2.1.2-3 +- Revert gem repacking until ruby guidelines are finalized +- Only define gem macros for EPEL, all Fedora releases have them +- Add BuildRoot and clean it manually for EL-5 + +* Thu Feb 16 2012 Todd Zullinger - 2.1.2-2 +- Minor cleanups for review +- Changes for building on EL-6 (EL-5s rubygems is too old) + +* Mon Jan 16 2012 Michael Stahnke - 2.1.2-1 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..9d8b6db --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (ruby-shadow-2.5.0.gem) = 1abd54df1bd4f29e135093df9b22886a726824f8b72b742017fd31bdc3fa39e3d79410a747cf2ebe4117f75e665fb89c904375b5c44a674bec91a4cc37646520 From 1595ffb22de6572fcbe7eb35643a46799b0c229c Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Thu, 4 Jan 2018 15:48:43 +0900 Subject: [PATCH 02/11] F-28: rebuild for ruby25 --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 5fa9be5..d0d62f7 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -82,6 +82,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Thu Jan 04 2018 Mamoru TASAKA - 2.5.0-3 +- F-28: rebuild for ruby25 + * Mon Oct 09 2017 Terje Rosten - 2.5.0-2 - Remove group - Run tests From 2002e307c6393477afbc983913da92bbd4543540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 20 Jan 2018 23:08:14 +0100 Subject: [PATCH 03/11] Rebuilt for switch to libxcrypt --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index d0d62f7..2eba53e 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -82,6 +82,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Sat Jan 20 2018 Björn Esser - 2.5.0-4 +- Rebuilt for switch to libxcrypt + * Thu Jan 04 2018 Mamoru TASAKA - 2.5.0-3 - F-28: rebuild for ruby25 From 584b446e7b83395767aa9ba7611334b56f4a6474 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 9 Feb 2018 14:51:12 +0000 Subject: [PATCH 04/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 2eba53e..c00495a 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -82,6 +82,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Fri Feb 09 2018 Fedora Release Engineering - 2.5.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Sat Jan 20 2018 Björn Esser - 2.5.0-4 - Rebuilt for switch to libxcrypt From d42cffdae2feabf5a1333f17d2d28477f0eaaf52 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 14 Jul 2018 04:45:39 +0000 Subject: [PATCH 05/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index c00495a..890301b 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -82,6 +82,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Sat Jul 14 2018 Fedora Release Engineering - 2.5.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Fri Feb 09 2018 Fedora Release Engineering - 2.5.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From 0063cbcefc5f577feab96ee4ba7c729cb0d238b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Terje=20R=C3=B8sten?= Date: Sun, 15 Jul 2018 19:19:09 +0200 Subject: [PATCH 06/11] Add C compiler --- rubygem-ruby-shadow.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 890301b..54e6c96 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,13 +2,14 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Ruby shadow password module 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 Patch0: ruby-shadow-2.5.0-cflags.patch +BuildRequires: gcc BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby-devel @@ -82,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Sun Jul 15 2018 Terje Rosten - 2.5.0-7 +- Add C compiler + * Sat Jul 14 2018 Fedora Release Engineering - 2.5.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 0158fe9f63056c6285160c327ad9dafabca127ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 17 Jan 2019 15:07:42 +0100 Subject: [PATCH 07/11] Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.6 --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 54e6c96..7823109 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -83,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Thu Jan 17 2019 Vít Ondruch - 2.5.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.6 + * Sun Jul 15 2018 Terje Rosten - 2.5.0-7 - Add C compiler From ee9e2bcdc3594df8c9c1c2dea32a020a3a28bf1a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 2 Feb 2019 13:00:03 +0000 Subject: [PATCH 08/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 7823109..199bf1e 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -83,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Sat Feb 02 2019 Fedora Release Engineering - 2.5.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Jan 17 2019 Vít Ondruch - 2.5.0-8 - Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.6 From 68f6ef55deaf6df27ae8500ea9ee9ad2774c7026 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jul 2019 20:06:08 +0000 Subject: [PATCH 09/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 199bf1e..59cc98d 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -83,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Fri Jul 26 2019 Fedora Release Engineering - 2.5.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Sat Feb 02 2019 Fedora Release Engineering - 2.5.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 244b8445ad3ebc15ae083a9138288c169feea8d3 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Sat, 18 Jan 2020 08:07:06 +0900 Subject: [PATCH 10/11] F-32: rebuild against ruby27 --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 59cc98d..7af60ac 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 10%{?dist} +Release: 11%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -83,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Fri Jan 17 2020 Mamoru TASAKA - 2.5.0-11 +- F-32: rebuild against ruby27 + * Fri Jul 26 2019 Fedora Release Engineering - 2.5.0-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From b5774411fc46b827ebb54218eb660812e4b6942c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 30 Jan 2020 19:21:16 +0000 Subject: [PATCH 11/11] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- rubygem-ruby-shadow.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-ruby-shadow.spec b/rubygem-ruby-shadow.spec index 7af60ac..dc44cb3 100644 --- a/rubygem-ruby-shadow.spec +++ b/rubygem-ruby-shadow.spec @@ -2,7 +2,7 @@ Name: rubygem-%{gem_name} Version: 2.5.0 -Release: 11%{?dist} +Release: 12%{?dist} Summary: Ruby shadow password module License: Public Domain URL: https://github.com/apalmblad/ruby-shadow @@ -83,6 +83,9 @@ popd %doc %{gem_instdir}/README.euc %changelog +* Thu Jan 30 2020 Fedora Release Engineering - 2.5.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Fri Jan 17 2020 Mamoru TASAKA - 2.5.0-11 - F-32: rebuild against ruby27