ffi-libc 0.1.0 → 0.1.1
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.
- checksums.yaml +5 -5
- data/.github/workflows/ruby.yml +29 -0
- data/.gitignore +6 -4
- data/ChangeLog.md +8 -1
- data/Gemfile +11 -0
- data/LICENSE.txt +1 -1
- data/README.md +22 -6
- data/Rakefile +7 -30
- data/ffi-libc.gemspec +1 -0
- data/gemspec.yml +8 -4
- data/lib/ffi/libc/libc.rb +6 -3
- data/spec/ifaddrs_spec.rb +6 -6
- data/spec/libc_spec.rb +4 -4
- data/spec/spec_helper.rb +1 -2
- metadata +25 -50
- data/.gemtest +0 -0
- data/.travis.yml +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0102b721ed989c2427b5531a522da0001f4dfda43cf1c295e8eda3071891e02d
|
4
|
+
data.tar.gz: 4e06ead22308e1fdb667d24defc2ea3a069d4737732b1ab046777b663a4d5e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c4a840ac2740ba51db453edc891b17db0fae22dfe5cebdf5598107b175377ba2436d1dfebbead02fec119bc10a39703b64fa74595467100c0ee35952871a303
|
7
|
+
data.tar.gz: beca1246d6d97ce653c508025f636c70c0dd19ffbd11ff4ffea569495b230f5d401819c89949607c5caa3b94baacc3be4b0c092933f1a2126ac13bfca8fd8fe5
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [ push, pull_request ]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
tests:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
ruby:
|
12
|
+
- 2.4
|
13
|
+
- 2.5
|
14
|
+
- 2.6
|
15
|
+
- 2.7
|
16
|
+
- 3.0
|
17
|
+
- jruby
|
18
|
+
- truffleruby
|
19
|
+
name: Ruby ${{ matrix.ruby }}
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
- name: Install dependencies
|
27
|
+
run: bundle install --jobs 4 --retry 3
|
28
|
+
- name: Run tests
|
29
|
+
run: bundle exec rake test
|
data/.gitignore
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 0.1.1 / 2021-09-22
|
2
|
+
|
3
|
+
* Removed `sys_errlist` and `sys_nerr` variables, as they have been removed
|
4
|
+
from glibc (see:
|
5
|
+
https://sourceware.org/pipermail/libc-announce/2020/000029.html).
|
6
|
+
* Load `libc` via `FFI::Library::LIBC`.
|
7
|
+
|
1
8
|
### 0.1.0 / 2013-08-15
|
2
9
|
|
3
10
|
* Require ffi ~> 1.0.
|
@@ -24,7 +31,7 @@
|
|
24
31
|
* Skip `clearenv`, `memrchr`, `stdin`, `stdout` and `stderr` if they cannot
|
25
32
|
be loaded (thanks FreneticEntropy and mephux).
|
26
33
|
* The `libc` installed on OSX lacks these functions/global-variables.
|
27
|
-
* Opt into
|
34
|
+
* Opt into `test.rubygems.org`.
|
28
35
|
|
29
36
|
### 0.0.4 / 2011-02-03
|
30
37
|
|
data/Gemfile
ADDED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# ffi-libc
|
2
2
|
|
3
|
+
[](https://github.com/postmodern/ffi-libc/actions/workflows/ruby.yml)
|
4
|
+
[](https://codeclimate.com/github/postmodern/ffi-libc)
|
5
|
+
|
3
6
|
* [Source](https://github.com/postmodern/ffi-libc/)
|
4
7
|
* [Issues](https://github.com/postmodern/ffi-libc/issues)
|
5
|
-
* [Documentation](
|
6
|
-
* [Email](postmodern.mod3 at gmail.com)
|
8
|
+
* [Documentation](https://rubydoc.info/gems/ffi-libc)
|
7
9
|
|
8
10
|
## Description
|
9
11
|
|
@@ -25,8 +27,8 @@ Useful Ruby FFI bindings for `libc`.
|
|
25
27
|
* {FFI::LibC::RUsage}
|
26
28
|
* Binds to common functions and global variables in `libc`:
|
27
29
|
* `errno.h`:
|
28
|
-
* `sys_errlist`
|
29
|
-
* `sys_nerr`
|
30
|
+
* `sys_errlist` (BSD)
|
31
|
+
* `sys_nerr` (BSD)
|
30
32
|
* `errno`
|
31
33
|
* `unistd.h`:
|
32
34
|
* `brk`
|
@@ -107,11 +109,25 @@ Useful Ruby FFI bindings for `libc`.
|
|
107
109
|
|
108
110
|
## Install
|
109
111
|
|
110
|
-
|
112
|
+
```shell
|
113
|
+
$ gem install ffi-libc
|
114
|
+
```
|
115
|
+
|
116
|
+
### gemspec
|
117
|
+
|
118
|
+
```ruby
|
119
|
+
gem.add_dependency 'ffi-libc', '~> 0.1'
|
120
|
+
```
|
121
|
+
|
122
|
+
### Gemfile
|
123
|
+
|
124
|
+
```ruby
|
125
|
+
gem 'ffi-libc', '~> 0.1'
|
126
|
+
```
|
111
127
|
|
112
128
|
## License
|
113
129
|
|
114
|
-
Copyright (c) 2010-
|
130
|
+
Copyright (c) 2010-2021 Hal Brodigan
|
115
131
|
|
116
132
|
See {file:LICENSE.txt} for license information.
|
117
133
|
|
data/Rakefile
CHANGED
@@ -1,36 +1,13 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'rake'
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
require 'rubygems/tasks'
|
3
|
+
require 'rubygems/tasks'
|
4
|
+
Gem::Tasks.new
|
7
5
|
|
8
|
-
|
9
|
-
|
10
|
-
STDERR.puts e.message
|
11
|
-
STDERR.puts "Run `gem install rubygems-tasks` to install 'rubygems/tasks'."
|
12
|
-
end
|
13
|
-
|
14
|
-
begin
|
15
|
-
gem 'rspec', '~> 2.4'
|
16
|
-
require 'rspec/core/rake_task'
|
17
|
-
|
18
|
-
RSpec::Core::RakeTask.new
|
19
|
-
rescue LoadError => e
|
20
|
-
task :spec do
|
21
|
-
abort "Please run `gem install rspec` to install RSpec."
|
22
|
-
end
|
23
|
-
end
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
RSpec::Core::RakeTask.new
|
24
8
|
task :test => :spec
|
25
9
|
task :default => :spec
|
26
10
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
YARD::Rake::YardocTask.new
|
32
|
-
rescue LoadError => e
|
33
|
-
task :yard do
|
34
|
-
abort "Please run `gem install yard` to install YARD."
|
35
|
-
end
|
36
|
-
end
|
11
|
+
require 'yard'
|
12
|
+
YARD::Rake::YardocTask.new
|
13
|
+
task :doc => :yard
|
data/ffi-libc.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.authors = Array(gemspec['authors'])
|
21
21
|
gem.email = gemspec['email']
|
22
22
|
gem.homepage = gemspec['homepage']
|
23
|
+
gem.metadata = gemspec['metadata'] if gemspec['metadata']
|
23
24
|
|
24
25
|
glob = lambda { |patterns| gem.files & Dir[*patterns] }
|
25
26
|
|
data/gemspec.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
name: ffi-libc
|
2
|
-
version: 0.1.
|
2
|
+
version: 0.1.1
|
3
3
|
summary: Useful FFI bindings for libc
|
4
4
|
description: Useful Ruby FFI bindings for libc.
|
5
5
|
license: MIT
|
@@ -8,10 +8,14 @@ email: postmodern.mod3@gmail.com
|
|
8
8
|
homepage: https://github.com/postmodern/ffi-libc#redme
|
9
9
|
has_yard: true
|
10
10
|
|
11
|
+
metadata:
|
12
|
+
documentation_uri: https://rubydoc.info/gems/ffi-libc
|
13
|
+
source_code_uri: https://github.com/postmodern/ffi-libc
|
14
|
+
bug_tracker_uri: https://github.com/postmodern/ffi-libc/issues
|
15
|
+
changelog_uri: https://github.com/postmodern/ffi-libc/blob/master/ChangeLog.md
|
16
|
+
|
11
17
|
dependencies:
|
12
18
|
ffi: ~> 1.0
|
13
19
|
|
14
20
|
development_dependencies:
|
15
|
-
|
16
|
-
rspec: ~> 2.4
|
17
|
-
yard: ~> 0.8
|
21
|
+
bundler: ~> 2.0
|
data/lib/ffi/libc/libc.rb
CHANGED
@@ -10,14 +10,17 @@ module FFI
|
|
10
10
|
module LibC
|
11
11
|
extend FFI::Library
|
12
12
|
|
13
|
-
ffi_lib
|
13
|
+
ffi_lib FFI::Library::LIBC
|
14
14
|
|
15
15
|
# The NULL constant
|
16
16
|
NULL = nil
|
17
17
|
|
18
18
|
# errno.h
|
19
|
-
|
20
|
-
|
19
|
+
begin
|
20
|
+
attach_variable :sys_errlist, :pointer
|
21
|
+
attach_variable :sys_nerr, :int
|
22
|
+
rescue FFI::NotFoundError
|
23
|
+
end
|
21
24
|
attach_variable :errno, :int
|
22
25
|
|
23
26
|
def self.raise_error(error=self.errno)
|
data/spec/ifaddrs_spec.rb
CHANGED
@@ -5,26 +5,26 @@ describe Ifaddrs do
|
|
5
5
|
subject { LibC.each_ifaddr.first }
|
6
6
|
|
7
7
|
it "should have a name" do
|
8
|
-
subject.name.
|
8
|
+
expect(subject.name).to_not be_empty
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should have flags" do
|
12
|
-
subject.flags.
|
12
|
+
expect(subject.flags).to be_kind_of(Integer)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should have an addr" do
|
16
|
-
subject.addr.
|
16
|
+
expect(subject.addr).to be_kind_of(Sockaddr)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should have an netmask" do
|
20
|
-
subject.netmask.
|
20
|
+
expect(subject.netmask).to be_kind_of(Sockaddr)
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should have a broadcast addr" do
|
24
|
-
subject.broadaddr.
|
24
|
+
expect(subject.broadaddr).to be_kind_of(Sockaddr)
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should have a destination addr" do
|
28
|
-
subject.dstaddr.
|
28
|
+
expect(subject.dstaddr).to be_kind_of(Sockaddr)
|
29
29
|
end
|
30
30
|
end
|
data/spec/libc_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe FFI::LibC do
|
|
5
5
|
describe "NULL" do
|
6
6
|
subject { described_class::NULL }
|
7
7
|
|
8
|
-
it {
|
8
|
+
it { expect(subject).to be == nil }
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "each_ifaddr" do
|
@@ -16,13 +16,13 @@ describe FFI::LibC do
|
|
16
16
|
addrs << ifaddr
|
17
17
|
end
|
18
18
|
|
19
|
-
addrs.all
|
19
|
+
expect(addrs).to all(be_kind_of(Ifaddrs))
|
20
20
|
end
|
21
21
|
|
22
22
|
context "when not given a block" do
|
23
23
|
subject { described_class.each_ifaddr }
|
24
24
|
|
25
|
-
it {
|
25
|
+
it { expect(subject).to be_kind_of(Enumerable) }
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -30,7 +30,7 @@ describe FFI::LibC do
|
|
30
30
|
subject { described_class.rusage }
|
31
31
|
|
32
32
|
it "should be able to fetch its own memory usage" do
|
33
|
-
subject[:ru_maxrss].
|
33
|
+
expect(subject[:ru_maxrss]).to be > 4000
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-libc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '2.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.4'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.4'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: yard
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.8'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.8'
|
40
|
+
version: '2.0'
|
69
41
|
description: Useful Ruby FFI bindings for libc.
|
70
42
|
email: postmodern.mod3@gmail.com
|
71
43
|
executables: []
|
@@ -75,12 +47,12 @@ extra_rdoc_files:
|
|
75
47
|
- LICENSE.txt
|
76
48
|
- README.md
|
77
49
|
files:
|
78
|
-
- .
|
79
|
-
- .gitignore
|
80
|
-
- .rspec
|
81
|
-
- .
|
82
|
-
- .yardopts
|
50
|
+
- ".github/workflows/ruby.yml"
|
51
|
+
- ".gitignore"
|
52
|
+
- ".rspec"
|
53
|
+
- ".yardopts"
|
83
54
|
- ChangeLog.md
|
55
|
+
- Gemfile
|
84
56
|
- LICENSE.txt
|
85
57
|
- README.md
|
86
58
|
- Rakefile
|
@@ -108,25 +80,28 @@ files:
|
|
108
80
|
homepage: https://github.com/postmodern/ffi-libc#redme
|
109
81
|
licenses:
|
110
82
|
- MIT
|
111
|
-
metadata:
|
112
|
-
|
83
|
+
metadata:
|
84
|
+
documentation_uri: https://rubydoc.info/gems/ffi-libc
|
85
|
+
source_code_uri: https://github.com/postmodern/ffi-libc
|
86
|
+
bug_tracker_uri: https://github.com/postmodern/ffi-libc/issues
|
87
|
+
changelog_uri: https://github.com/postmodern/ffi-libc/blob/master/ChangeLog.md
|
88
|
+
post_install_message:
|
113
89
|
rdoc_options: []
|
114
90
|
require_paths:
|
115
91
|
- lib
|
116
92
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
93
|
requirements:
|
118
|
-
- -
|
94
|
+
- - ">="
|
119
95
|
- !ruby/object:Gem::Version
|
120
96
|
version: '0'
|
121
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
98
|
requirements:
|
123
|
-
- -
|
99
|
+
- - ">="
|
124
100
|
- !ruby/object:Gem::Version
|
125
101
|
version: '0'
|
126
102
|
requirements: []
|
127
|
-
|
128
|
-
|
129
|
-
signing_key:
|
103
|
+
rubygems_version: 3.2.22
|
104
|
+
signing_key:
|
130
105
|
specification_version: 4
|
131
106
|
summary: Useful FFI bindings for libc
|
132
107
|
test_files: []
|
data/.gemtest
DELETED
File without changes
|
data/.travis.yml
DELETED