etc 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,6 +52,8 @@ char *getenv();
52
52
  #endif
53
53
  char *getlogin();
54
54
 
55
+ #define RUBY_ETC_VERSION "1.1.0"
56
+
55
57
  #include "constdefs.h"
56
58
 
57
59
  /* call-seq:
@@ -98,7 +100,7 @@ static VALUE
98
100
  safe_setup_str(const char *str)
99
101
  {
100
102
  if (str == 0) str = "";
101
- return rb_tainted_str_new2(str);
103
+ return rb_str_new2(str);
102
104
  }
103
105
 
104
106
  static VALUE
@@ -217,7 +219,6 @@ etc_getpwnam(VALUE obj, VALUE nam)
217
219
  struct passwd *pwd;
218
220
  const char *p = StringValueCStr(nam);
219
221
 
220
- rb_check_safe_obj(nam);
221
222
  pwd = getpwnam(p);
222
223
  if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %"PRIsVALUE, nam);
223
224
  return setup_passwd(pwd);
@@ -229,7 +230,7 @@ etc_getpwnam(VALUE obj, VALUE nam)
229
230
  #ifdef HAVE_GETPWENT
230
231
  static int passwd_blocking = 0;
231
232
  static VALUE
232
- passwd_ensure(void)
233
+ passwd_ensure(VALUE _)
233
234
  {
234
235
  endpwent();
235
236
  passwd_blocking = (int)Qfalse;
@@ -237,7 +238,7 @@ passwd_ensure(void)
237
238
  }
238
239
 
239
240
  static VALUE
240
- passwd_iterate(void)
241
+ passwd_iterate(VALUE _)
241
242
  {
242
243
  struct passwd *pw;
243
244
 
@@ -461,7 +462,6 @@ etc_getgrnam(VALUE obj, VALUE nam)
461
462
  struct group *grp;
462
463
  const char *p = StringValueCStr(nam);
463
464
 
464
- rb_check_safe_obj(nam);
465
465
  grp = getgrnam(p);
466
466
  if (grp == 0) rb_raise(rb_eArgError, "can't find group for %"PRIsVALUE, nam);
467
467
  return setup_group(grp);
@@ -473,7 +473,7 @@ etc_getgrnam(VALUE obj, VALUE nam)
473
473
  #ifdef HAVE_GETGRENT
474
474
  static int group_blocking = 0;
475
475
  static VALUE
476
- group_ensure(void)
476
+ group_ensure(VALUE _)
477
477
  {
478
478
  endgrent();
479
479
  group_blocking = (int)Qfalse;
@@ -482,7 +482,7 @@ group_ensure(void)
482
482
 
483
483
 
484
484
  static VALUE
485
- group_iterate(void)
485
+ group_iterate(VALUE _)
486
486
  {
487
487
  struct group *pw;
488
488
 
@@ -645,7 +645,7 @@ etc_sysconfdir(VALUE obj)
645
645
  * Returns system temporary directory; typically "/tmp".
646
646
  */
647
647
  static VALUE
648
- etc_systmpdir(void)
648
+ etc_systmpdir(VALUE _)
649
649
  {
650
650
  VALUE tmpdir;
651
651
  #ifdef _WIN32
@@ -677,7 +677,10 @@ etc_systmpdir(void)
677
677
  }
678
678
  # endif
679
679
  #endif
680
+ #ifndef RB_PASS_KEYWORDS
681
+ /* untaint on Ruby < 2.7 */
680
682
  FL_UNSET(tmpdir, FL_TAINT);
683
+ #endif
681
684
  return tmpdir;
682
685
  }
683
686
 
@@ -754,9 +757,6 @@ etc_uname(VALUE obj)
754
757
  # ifndef PROCESSOR_ARCHITECTURE_AMD64
755
758
  # define PROCESSOR_ARCHITECTURE_AMD64 9
756
759
  # endif
757
- # ifndef PROCESSOR_ARCHITECTURE_IA64
758
- # define PROCESSOR_ARCHITECTURE_IA64 6
759
- # endif
760
760
  # ifndef PROCESSOR_ARCHITECTURE_INTEL
761
761
  # define PROCESSOR_ARCHITECTURE_INTEL 0
762
762
  # endif
@@ -768,9 +768,6 @@ etc_uname(VALUE obj)
768
768
  case PROCESSOR_ARCHITECTURE_ARM:
769
769
  mach = "ARM";
770
770
  break;
771
- case PROCESSOR_ARCHITECTURE_IA64:
772
- mach = "IA64";
773
- break;
774
771
  case PROCESSOR_ARCHITECTURE_INTEL:
775
772
  mach = "x86";
776
773
  break;
@@ -1068,6 +1065,7 @@ Init_etc(void)
1068
1065
  VALUE mEtc;
1069
1066
 
1070
1067
  mEtc = rb_define_module("Etc");
1068
+ rb_define_const(mEtc, "VERSION", rb_str_new_cstr(RUBY_ETC_VERSION));
1071
1069
  init_constants(mEtc);
1072
1070
 
1073
1071
  rb_define_module_function(mEtc, "getlogin", etc_getlogin, 0);
@@ -41,10 +41,12 @@ have_struct_member('struct passwd', 'pw_expire', 'pwd.h')
41
41
  have_struct_member('struct passwd', 'pw_passwd', 'pwd.h')
42
42
  have_struct_member('struct group', 'gr_passwd', 'grp.h')
43
43
 
44
+ # for https://github.com/ruby/etc
44
45
  srcdir = File.expand_path("..", __FILE__)
45
- if !File.exists?("#{srcdir}/constdefs.h")
46
+ if !File.exist?("#{srcdir}/depend")
46
47
  %x[#{RbConfig.ruby} #{srcdir}/mkconstants.rb -o #{srcdir}/constdefs.h]
47
48
  end
49
+
48
50
  $distcleanfiles << "constdefs.h"
49
51
 
50
52
  create_makefile("etc")
@@ -0,0 +1 @@
1
+ require "#{RUBY_VERSION[/\d+\.\d+/]}/etc.so"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yukihiro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-26 00:00:00.000000000 Z
11
+ date: 2019-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -74,18 +74,13 @@ extensions:
74
74
  - ext/etc/extconf.rb
75
75
  extra_rdoc_files: []
76
76
  files:
77
- - ".gitignore"
78
- - ".travis.yml"
79
- - Gemfile
80
77
  - LICENSE.txt
81
78
  - README.md
82
- - Rakefile
83
- - bin/console
84
- - bin/setup
85
- - etc.gemspec
79
+ - ext/etc/constdefs.h
86
80
  - ext/etc/etc.c
87
81
  - ext/etc/extconf.rb
88
82
  - ext/etc/mkconstants.rb
83
+ - stub/etc.rb
89
84
  - test/etc/test_etc.rb
90
85
  homepage: https://github.com/ruby/etc
91
86
  licenses:
@@ -106,8 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
101
  - !ruby/object:Gem::Version
107
102
  version: '0'
108
103
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.7.7
104
+ rubygems_version: 3.0.3
111
105
  signing_key:
112
106
  specification_version: 4
113
107
  summary: Provides access to information typically stored in UNIX /etc directory.
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- /ext/etc/constdefs.h
11
- *.bundle
12
- *.so
13
- *.dll
@@ -1,7 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.5
5
- - 2.4.2
6
- - ruby-head
7
- before_install: gem install bundler
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in etc.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList['test/**/test_*.rb']
8
- end
9
-
10
- require "rake/extensiontask"
11
- Rake::ExtensionTask.new("etc")
12
-
13
- task :default => :test
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "etc"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = "etc"
5
- spec.version = "1.0.1"
6
- spec.authors = ["Yukihiro Matsumoto"]
7
- spec.email = ["matz@ruby-lang.org"]
8
-
9
- spec.summary = %q{Provides access to information typically stored in UNIX /etc directory.}
10
- spec.description = %q{Provides access to information typically stored in UNIX /etc directory.}
11
- spec.homepage = "https://github.com/ruby/etc"
12
- spec.license = "BSD-2-Clause"
13
-
14
- spec.files = %w[
15
- .gitignore
16
- .travis.yml
17
- Gemfile
18
- LICENSE.txt
19
- README.md
20
- Rakefile
21
- bin/console
22
- bin/setup
23
- etc.gemspec
24
- ext/etc/etc.c
25
- ext/etc/extconf.rb
26
- ext/etc/mkconstants.rb
27
- test/etc/test_etc.rb
28
- ]
29
- spec.bindir = "exe"
30
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
- spec.extensions = %w{ext/etc/extconf.rb}
33
-
34
- spec.required_ruby_version = ">= 2.3.0"
35
-
36
- spec.add_development_dependency "bundler"
37
- spec.add_development_dependency "rake"
38
- spec.add_development_dependency "rake-compiler"
39
- spec.add_development_dependency "test-unit"
40
- end