Initial import (#1498991).

This commit is contained in:
Terje Røsten 2017-10-10 19:24:19 +02:00
commit aa3d2418ca
6 changed files with 200 additions and 3 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/ruby-shadow-2.5.0.gem

View file

@ -1,3 +0,0 @@
# rubygem-ruby-shadow
The rubygem-ruby-shadow package

59
basic_test.rb Normal file
View file

@ -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

View file

@ -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'

123
rubygem-ruby-shadow.spec Normal file
View file

@ -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 <terje.rosten@ntnu.no> - 2.5.0-2
- Remove group
- Run tests
* Thu Oct 05 2017 Terje Rosten <terje.rosten@ntnu.no> - 2.5.0-1
- 2.5.0
- Remove non Fedora support
- Simplify
* Fri Mar 01 2013 Moses Mendoza <moses@puppetlabs.com> - 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 <moses@puppetlabs.com> - 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 <tmz@pobox.com> - 2.1.3-2
- Use gem_extdir macro on F-17 and above
* Fri Apr 06 2012 Todd Zullinger <tmz@pobox.com> - 2.1.3-1
- Update to 2.1.3
- Fix license tag
* Sun Apr 01 2012 Todd Zullinger <tmz@pobox.com> - 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 <tmz@pobox.com> - 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 <mastahnke@gmail.com> - 2.1.2-1
- Initial package

1
sources Normal file
View file

@ -0,0 +1 @@
SHA512 (ruby-shadow-2.5.0.gem) = 1abd54df1bd4f29e135093df9b22886a726824f8b72b742017fd31bdc3fa39e3d79410a747cf2ebe4117f75e665fb89c904375b5c44a674bec91a4cc37646520