ffi-libc 0.0.3 → 0.0.4
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.
- data/.rspec +1 -0
- data/ChangeLog.md +9 -0
- data/LICENSE.txt +1 -4
- data/README.md +87 -7
- data/Rakefile +24 -27
- data/ffi-libc.gemspec +11 -73
- data/gemspec.yml +17 -0
- data/lib/ffi/libc/libc.rb +4 -0
- metadata +22 -63
- data/.gitignore +0 -4
- data/.specopts +0 -1
- data/Gemfile +0 -24
- data/VERSION +0 -1
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour --format documentation
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### 0.0.4 / 2011-02-03
|
2
|
+
|
3
|
+
* Require ffi >= 0.6.0, <= 1.1.0:
|
4
|
+
* JRuby requires ffi >= 1.0.0.
|
5
|
+
* A lot of projects still require ffi ~> 0.6.0.
|
6
|
+
* Added `stdin`.
|
7
|
+
* Added `stdout`.
|
8
|
+
* Added `stderr`.
|
9
|
+
|
1
10
|
### 0.0.3 / 2010-08-03
|
2
11
|
|
3
12
|
* Load libc from the current process.
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# ffi-libc
|
2
2
|
|
3
|
-
* [
|
4
|
-
* [
|
5
|
-
*
|
3
|
+
* [Source](http://github.com/postmodern/ffi-libc/)
|
4
|
+
* [Issues](http://github.com/postmodern/ffi-libc/issues)
|
5
|
+
* [Documentation](http://rubydoc.info/gems/ffi-libc)
|
6
|
+
* [Email](postmodern.mod3 at gmail.com)
|
6
7
|
|
7
8
|
## Description
|
8
9
|
|
@@ -10,12 +11,90 @@ Useful Ruby FFI bindings for `libc`.
|
|
10
11
|
|
11
12
|
## Features
|
12
13
|
|
13
|
-
* Provides common Structs used in `libc
|
14
|
-
*
|
14
|
+
* Provides common Structs used in `libc`:
|
15
|
+
* {FFI::LibC::In6Addr}
|
16
|
+
* {FFI::LibC::InAddr}
|
17
|
+
* {FFI::LibC::SockAddrDL}
|
18
|
+
* {FFI::LibC::SockAddrFamily}
|
19
|
+
* {FFI::LibC::SockAddrIn6}
|
20
|
+
* {FFI::LibC::SockAddrIn}
|
21
|
+
* {FFI::LibC::SockAddr}
|
22
|
+
* {FFI::LibC::Timeval}
|
23
|
+
* {FFI::LibC::Timezone}
|
24
|
+
* Binds to common functions and global variables in `libc`:
|
25
|
+
* `errno.h`:
|
26
|
+
* `sys_errlist`
|
27
|
+
* `sys_nerr`
|
28
|
+
* `errno`
|
29
|
+
* `unistd.h`:
|
30
|
+
* `brk`
|
31
|
+
* `sbrk`
|
32
|
+
* `getpid`
|
33
|
+
* `getppid`
|
34
|
+
* `getuid`
|
35
|
+
* `geteuid`
|
36
|
+
* `getgid`
|
37
|
+
* `getegid`
|
38
|
+
* `stdlib.h`:
|
39
|
+
* `calloc`
|
40
|
+
* `malloc`
|
41
|
+
* `free`
|
42
|
+
* `realloc`
|
43
|
+
* `getenv`
|
44
|
+
* `putenv`
|
45
|
+
* `unsetenv`
|
46
|
+
* `clearenv`
|
47
|
+
* `time.h`:
|
48
|
+
* `time`
|
49
|
+
* `sys/time.h`:
|
50
|
+
* `gettimeofday`
|
51
|
+
* `settimeofday`
|
52
|
+
* `sys/mman.h`:
|
53
|
+
* `mmap`
|
54
|
+
* `munmap`
|
55
|
+
* `string.h`:
|
56
|
+
* `bzero`
|
57
|
+
* `memset`
|
58
|
+
* `memcpy`
|
59
|
+
* `memcmp`
|
60
|
+
* `memchr`
|
61
|
+
* `memrchr`
|
62
|
+
* `strcpy`
|
63
|
+
* `strncpy`
|
64
|
+
* `strlen`
|
65
|
+
* `index`
|
66
|
+
* `rindex`
|
67
|
+
* `strchr`
|
68
|
+
* `strrchr`
|
69
|
+
* `strstr`
|
70
|
+
* `strerror`
|
71
|
+
* `stdio.h`:
|
72
|
+
* `stdin`
|
73
|
+
* `stdout`
|
74
|
+
* `stderr`
|
75
|
+
* `fopen`
|
76
|
+
* `fdopen`
|
77
|
+
* `freopen`
|
78
|
+
* `fseek`
|
79
|
+
* `ftell`
|
80
|
+
* `rewind`
|
81
|
+
* `fread`
|
82
|
+
* `fwrite`
|
83
|
+
* `fgetc`
|
84
|
+
* `fgets`
|
85
|
+
* `fputc`
|
86
|
+
* `fputs`
|
87
|
+
* `fflush`
|
88
|
+
* `fclose`
|
89
|
+
* `clearerr`
|
90
|
+
* `feof`
|
91
|
+
* `ferror`
|
92
|
+
* `fileno`
|
93
|
+
* `perror`
|
15
94
|
|
16
95
|
## Requirements
|
17
96
|
|
18
|
-
* [ffi](http://github.com/ffi/ffi)
|
97
|
+
* [ffi](http://github.com/ffi/ffi) >= 0.6.0, <= 1.1.0
|
19
98
|
|
20
99
|
## Install
|
21
100
|
|
@@ -23,5 +102,6 @@ Useful Ruby FFI bindings for `libc`.
|
|
23
102
|
|
24
103
|
## License
|
25
104
|
|
26
|
-
|
105
|
+
Copyright (c) 2010-2011 Hal Brodigan
|
27
106
|
|
107
|
+
See {file:LICENSE.txt} for license information.
|
data/Rakefile
CHANGED
@@ -1,38 +1,35 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'rake'
|
3
3
|
|
4
4
|
begin
|
5
|
-
|
6
|
-
|
5
|
+
gem 'ore-tasks', '~> 0.3.0'
|
6
|
+
require 'ore/tasks'
|
7
|
+
|
8
|
+
Ore::Tasks.new
|
9
|
+
rescue LoadError => e
|
7
10
|
STDERR.puts e.message
|
8
|
-
STDERR.puts "Run `
|
9
|
-
exit e.status_code
|
11
|
+
STDERR.puts "Run `gem install ore-tasks` to install 'ore/tasks'."
|
10
12
|
end
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
require '
|
14
|
+
begin
|
15
|
+
gem 'rspec', '~> 2.4.0'
|
16
|
+
require 'rspec/core/rake_task'
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
gem.homepage = %Q{http://github.com/postmodern/ffi-libc}
|
22
|
-
gem.description = %Q{Useful Ruby FFI bindings for libc.}
|
23
|
-
gem.authors = ['Postmodern']
|
24
|
-
gem.has_rdoc = 'yard'
|
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
|
25
23
|
end
|
24
|
+
task :default => :spec
|
26
25
|
|
27
|
-
|
26
|
+
begin
|
27
|
+
gem 'yard', '~> 0.6.0'
|
28
|
+
require 'yard'
|
28
29
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
YARD::Rake::YardocTask.new
|
31
|
+
rescue LoadError => e
|
32
|
+
task :yard do
|
33
|
+
abort "Please run `gem install yard` to install YARD."
|
34
|
+
end
|
34
35
|
end
|
35
|
-
task :default => :spec
|
36
|
-
|
37
|
-
require 'yard'
|
38
|
-
YARD::Rake::YardocTask.new
|
data/ffi-libc.gemspec
CHANGED
@@ -1,77 +1,15 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
5
2
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
"
|
17
|
-
"LICENSE.txt",
|
18
|
-
"README.md"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".gitignore",
|
22
|
-
".specopts",
|
23
|
-
".yardopts",
|
24
|
-
"ChangeLog.md",
|
25
|
-
"Gemfile",
|
26
|
-
"LICENSE.txt",
|
27
|
-
"README.md",
|
28
|
-
"Rakefile",
|
29
|
-
"VERSION",
|
30
|
-
"ffi-libc.gemspec",
|
31
|
-
"lib/ffi/libc.rb",
|
32
|
-
"lib/ffi/libc/af.rb",
|
33
|
-
"lib/ffi/libc/in6_addr.rb",
|
34
|
-
"lib/ffi/libc/in_addr.rb",
|
35
|
-
"lib/ffi/libc/libc.rb",
|
36
|
-
"lib/ffi/libc/sock_addr.rb",
|
37
|
-
"lib/ffi/libc/sock_addr_dl.rb",
|
38
|
-
"lib/ffi/libc/sock_addr_family.rb",
|
39
|
-
"lib/ffi/libc/sock_addr_in.rb",
|
40
|
-
"lib/ffi/libc/sock_addr_in6.rb",
|
41
|
-
"lib/ffi/libc/timeval.rb",
|
42
|
-
"lib/ffi/libc/timezone.rb",
|
43
|
-
"lib/ffi/libc/types.rb"
|
44
|
-
]
|
45
|
-
s.has_rdoc = %q{yard}
|
46
|
-
s.homepage = %q{http://github.com/postmodern/ffi-libc}
|
47
|
-
s.licenses = ["MIT"]
|
48
|
-
s.require_paths = ["lib"]
|
49
|
-
s.rubygems_version = %q{1.3.7}
|
50
|
-
s.summary = %q{Useful FFI bindings for libc}
|
51
|
-
|
52
|
-
if s.respond_to? :specification_version then
|
53
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
54
|
-
s.specification_version = 3
|
55
|
-
|
56
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
57
|
-
s.add_runtime_dependency(%q<ffi>, ["~> 0.6.0"])
|
58
|
-
s.add_development_dependency(%q<bundler>, ["~> 0.9.25"])
|
59
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
60
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.4.0"])
|
61
|
-
s.add_development_dependency(%q<rspec>, ["~> 1.3.0"])
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<ffi>, ["~> 0.6.0"])
|
64
|
-
s.add_dependency(%q<bundler>, ["~> 0.9.25"])
|
65
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
66
|
-
s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
|
67
|
-
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
68
|
-
end
|
69
|
-
else
|
70
|
-
s.add_dependency(%q<ffi>, ["~> 0.6.0"])
|
71
|
-
s.add_dependency(%q<bundler>, ["~> 0.9.25"])
|
72
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
73
|
-
s.add_dependency(%q<jeweler>, ["~> 1.4.0"])
|
74
|
-
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
3
|
+
begin
|
4
|
+
Ore::Specification.new do |gemspec|
|
5
|
+
# custom logic here
|
6
|
+
end
|
7
|
+
rescue NameError
|
8
|
+
begin
|
9
|
+
require 'ore/specification'
|
10
|
+
retry
|
11
|
+
rescue LoadError
|
12
|
+
STDERR.puts "The 'ffi-libc.gemspec' file requires Ore."
|
13
|
+
STDERR.puts "Run `gem install ore-core` to install Ore."
|
75
14
|
end
|
76
15
|
end
|
77
|
-
|
data/gemspec.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
name: ffi-libc
|
2
|
+
version: 0.0.4
|
3
|
+
summary: Useful FFI bindings for libc
|
4
|
+
description: Useful Ruby FFI bindings for libc.
|
5
|
+
license: MIT
|
6
|
+
authors: Postmodern
|
7
|
+
email: postmodern.mod3@gmail.com
|
8
|
+
homepage: http://github.com/postmodern/ffi-libc
|
9
|
+
has_yard: true
|
10
|
+
|
11
|
+
dependencies:
|
12
|
+
ffi: >= 0.6.0, <= 1.1.0
|
13
|
+
|
14
|
+
development_dependencies:
|
15
|
+
ore-tasks: ~> 0.3.0
|
16
|
+
rspec: ~> 2.4.0
|
17
|
+
yard: ~> 0.6.0
|
data/lib/ffi/libc/libc.rb
CHANGED
@@ -64,6 +64,10 @@ module FFI
|
|
64
64
|
attach_function :strerror, [:int], :string
|
65
65
|
|
66
66
|
# stdio.h
|
67
|
+
attach_variable :stdin, :pointer
|
68
|
+
attach_variable :stdout, :pointer
|
69
|
+
attach_variable :stderr, :pointer
|
70
|
+
|
67
71
|
attach_function :fopen, [:string, :string], :FILE
|
68
72
|
attach_function :fdopen, [:int, :string], :FILE
|
69
73
|
attach_function :freopen, [:string, :string, :FILE], :FILE
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-libc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.4
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Postmodern
|
@@ -14,84 +10,56 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
13
|
+
date: 2011-02-03 00:00:00 -08:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
21
17
|
name: ffi
|
18
|
+
prerelease: false
|
22
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
20
|
none: false
|
24
21
|
requirements:
|
25
|
-
- -
|
22
|
+
- - ">="
|
26
23
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
- 6
|
30
|
-
- 0
|
31
24
|
version: 0.6.0
|
25
|
+
- - <=
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 1.1.0
|
32
28
|
type: :runtime
|
33
|
-
prerelease: false
|
34
29
|
version_requirements: *id001
|
35
30
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
31
|
+
name: ore-tasks
|
32
|
+
prerelease: false
|
37
33
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
34
|
none: false
|
39
35
|
requirements:
|
40
36
|
- - ~>
|
41
37
|
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
- 0
|
44
|
-
- 9
|
45
|
-
- 25
|
46
|
-
version: 0.9.25
|
38
|
+
version: 0.3.0
|
47
39
|
type: :development
|
48
|
-
prerelease: false
|
49
40
|
version_requirements: *id002
|
50
41
|
- !ruby/object:Gem::Dependency
|
51
|
-
name:
|
42
|
+
name: rspec
|
43
|
+
prerelease: false
|
52
44
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
45
|
none: false
|
54
46
|
requirements:
|
55
47
|
- - ~>
|
56
48
|
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
- 0
|
59
|
-
- 8
|
60
|
-
- 7
|
61
|
-
version: 0.8.7
|
49
|
+
version: 2.4.0
|
62
50
|
type: :development
|
63
|
-
prerelease: false
|
64
51
|
version_requirements: *id003
|
65
52
|
- !ruby/object:Gem::Dependency
|
66
|
-
name:
|
53
|
+
name: yard
|
54
|
+
prerelease: false
|
67
55
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
56
|
none: false
|
69
57
|
requirements:
|
70
58
|
- - ~>
|
71
59
|
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
- 1
|
74
|
-
- 4
|
75
|
-
- 0
|
76
|
-
version: 1.4.0
|
60
|
+
version: 0.6.0
|
77
61
|
type: :development
|
78
|
-
prerelease: false
|
79
62
|
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rspec
|
82
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
segments:
|
88
|
-
- 1
|
89
|
-
- 3
|
90
|
-
- 0
|
91
|
-
version: 1.3.0
|
92
|
-
type: :development
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: *id005
|
95
63
|
description: Useful Ruby FFI bindings for libc.
|
96
64
|
email: postmodern.mod3@gmail.com
|
97
65
|
executables: []
|
@@ -99,20 +67,16 @@ executables: []
|
|
99
67
|
extensions: []
|
100
68
|
|
101
69
|
extra_rdoc_files:
|
102
|
-
- ChangeLog.md
|
103
|
-
- LICENSE.txt
|
104
70
|
- README.md
|
105
71
|
files:
|
106
|
-
- .
|
107
|
-
- .specopts
|
72
|
+
- .rspec
|
108
73
|
- .yardopts
|
109
74
|
- ChangeLog.md
|
110
|
-
- Gemfile
|
111
75
|
- LICENSE.txt
|
112
76
|
- README.md
|
113
77
|
- Rakefile
|
114
|
-
- VERSION
|
115
78
|
- ffi-libc.gemspec
|
79
|
+
- gemspec.yml
|
116
80
|
- lib/ffi/libc.rb
|
117
81
|
- lib/ffi/libc/af.rb
|
118
82
|
- lib/ffi/libc/in6_addr.rb
|
@@ -126,7 +90,7 @@ files:
|
|
126
90
|
- lib/ffi/libc/timeval.rb
|
127
91
|
- lib/ffi/libc/timezone.rb
|
128
92
|
- lib/ffi/libc/types.rb
|
129
|
-
has_rdoc:
|
93
|
+
has_rdoc: true
|
130
94
|
homepage: http://github.com/postmodern/ffi-libc
|
131
95
|
licenses:
|
132
96
|
- MIT
|
@@ -140,22 +104,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
140
104
|
requirements:
|
141
105
|
- - ">="
|
142
106
|
- !ruby/object:Gem::Version
|
143
|
-
hash: -2959684172308845082
|
144
|
-
segments:
|
145
|
-
- 0
|
146
107
|
version: "0"
|
147
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
109
|
none: false
|
149
110
|
requirements:
|
150
111
|
- - ">="
|
151
112
|
- !ruby/object:Gem::Version
|
152
|
-
segments:
|
153
|
-
- 0
|
154
113
|
version: "0"
|
155
114
|
requirements: []
|
156
115
|
|
157
|
-
rubyforge_project:
|
158
|
-
rubygems_version: 1.
|
116
|
+
rubyforge_project: ffi-libc
|
117
|
+
rubygems_version: 1.5.0
|
159
118
|
signing_key:
|
160
119
|
specification_version: 3
|
161
120
|
summary: Useful FFI bindings for libc
|
data/.gitignore
DELETED
data/.specopts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--colour --format specdoc
|
data/Gemfile
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
group(:runtime) do
|
4
|
-
gem 'ffi', '~> 0.6.0'
|
5
|
-
end
|
6
|
-
|
7
|
-
group(:development) do
|
8
|
-
gem 'bundler', '~> 0.9.25'
|
9
|
-
gem 'rake', '~> 0.8.7'
|
10
|
-
gem 'jeweler', '~> 1.4.0', :git => 'git://github.com/technicalpickles/jeweler.git'
|
11
|
-
end
|
12
|
-
|
13
|
-
group(:doc) do
|
14
|
-
case RUBY_PLATFORM
|
15
|
-
when 'java'
|
16
|
-
gem 'maruku', '~> 0.6.0'
|
17
|
-
else
|
18
|
-
gem 'rdiscount', '~> 1.6.3'
|
19
|
-
end
|
20
|
-
|
21
|
-
gem 'yard', '~> 0.5.3'
|
22
|
-
end
|
23
|
-
|
24
|
-
gem 'rspec', '~> 1.3.0', :group => [:development, :test]
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.0.3
|