smartcard 0.3.1-x86-mswin32-60 → 0.3.2-x86-mswin32-60
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/BUILD +38 -26
- data/CHANGELOG +2 -0
- data/README +21 -16
- data/Rakefile +36 -0
- data/ext/smartcard_pcsc/extconf.rb +15 -6
- data/ext/smartcard_pcsc/pcsc_reader_states.c +12 -7
- data/lib/smartcard/pcsc.so +0 -0
- data/smartcard.gemspec +15 -49
- metadata +8 -5
data/BUILD
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
= Builds are hard
|
2
|
-
+smartcard+ needs to talk to hardware (card readers), so it's bound to use a
|
3
|
-
This means C, and platform-specific building nightmares.
|
2
|
+
+smartcard+ needs to talk to hardware (card readers), so it's bound to use a
|
3
|
+
Ruby extension. This means C, and platform-specific building nightmares.
|
4
|
+
Read below for details.
|
4
5
|
|
5
6
|
= The build system
|
6
|
-
+smartcard+ uses {echoe}[http://blog.evanweaver.com/files/doc/fauna/echoe/] for
|
7
|
-
automates most of the building and packaging work, and can even
|
8
|
-
with a bit of luck. Most used commands:
|
7
|
+
+smartcard+ uses {echoe}[http://blog.evanweaver.com/files/doc/fauna/echoe/] for
|
8
|
+
builds. This automates most of the building and packaging work, and can even
|
9
|
+
push the gem to rubyforge, with a bit of luck. Most used commands:
|
9
10
|
rake manifest # builds the manifest (do this after checking out)
|
10
11
|
rake package # builds the gem for your platform
|
11
12
|
rake mswin package # cross-builds the gem for Windows
|
12
13
|
rake test # builds the gem and runs the tests
|
13
14
|
rake docs # runs Rdoc to produce the docs
|
14
15
|
|
15
|
-
On the other hand, you have to <tt>gem install echoe</tt> to be able to build
|
16
|
+
On the other hand, you have to <tt>gem install echoe</tt> to be able to build
|
17
|
+
anything.
|
16
18
|
|
17
19
|
= Platform-specific information
|
18
20
|
|
@@ -20,14 +22,17 @@ On the other hand, you have to <tt>gem install echoe</tt> to be able to build an
|
|
20
22
|
|
21
23
|
You need to install the Developer Tools to get gcc.
|
22
24
|
|
23
|
-
Leopard includes a working PC/SC provider, as well as a good driver
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
Leopard (OSX 10.5) includes a working PC/SC provider, as well as a good driver
|
26
|
+
for CCID readers.
|
27
|
+
|
28
|
+
Tiger's (OSX 10.4) PC/SC implementation is broken and incomplete, so the Ruby
|
29
|
+
extension code in +smartcard+ has a few hacks to work around that (look for the
|
30
|
+
<tt>RB_SMARTCARD_OSX_TIGER_HACK</tt> define. The following commands are broken /
|
31
|
+
don't work:
|
27
32
|
* Smartcard::PCSC::Context#is_valid (always returs +true+)
|
28
|
-
* Smartcard::PCSC::Card#get_attribute (throws exception
|
29
|
-
* Smartcard::PCSC::Card#set_attribute (throws exception
|
30
|
-
* Smartcard::PCSC::Card#control (Tiger's API is broken,
|
33
|
+
* Smartcard::PCSC::Card#get_attribute (not implemented, throws exception)
|
34
|
+
* Smartcard::PCSC::Card#set_attribute (not implemented, throws exception)
|
35
|
+
* Smartcard::PCSC::Card#control (Tiger's API is broken, the call may not work)
|
31
36
|
|
32
37
|
The developer team doesn't support or test against ports of +gcc+ or +pcsclite+,
|
33
38
|
but we success notifications are welcome.
|
@@ -37,29 +42,36 @@ but we success notifications are welcome.
|
|
37
42
|
A lot of effort has been spent to make Windows builds as easy as possible.
|
38
43
|
+smartcard+ is currently built using a full edition of
|
39
44
|
{Visual Studio 2005}[http://msdn.microsoft.com/vstudio/], but all sources
|
40
|
-
indicate that
|
41
|
-
|
42
|
-
|
45
|
+
indicate that
|
46
|
+
{Visual C++ Express 2005}[http://www.microsoft.com/express/download/]
|
47
|
+
works, as long as you also install a Windows SDK (you're on your own for that).
|
48
|
+
Visual Studio 2008 might work, but it hasn't been tested yet.
|
43
49
|
|
44
50
|
A summary of the hacks that have been done to get Windows builds working:
|
45
|
-
* removing the extension files from the gemspec at the "right time" so that
|
51
|
+
* removing the extension files from the gemspec at the "right time" so that
|
52
|
+
+echoe+ compiles the extension, and the gem doesn't require re-compilation (see
|
53
|
+
the +Rakefile+)
|
46
54
|
* adding the compiled extension to the file list in the gemspec
|
47
|
-
* adding code to <tt>extconf.rb</tt> to patch the +Makefile+ so a manifest is
|
55
|
+
* adding code to <tt>extconf.rb</tt> to patch the +Makefile+ so a manifest is
|
56
|
+
embedded in the extension dll (and ruby doesn't crash if it uses a different
|
57
|
+
version of the C runtime)
|
48
58
|
|
49
59
|
== Linux
|
50
60
|
|
51
61
|
+smartcard+ is developed (and tested) against the
|
52
|
-
{MUSCLE project}[http://www.linuxnet.com/software.html]. If you go this route,
|
53
|
-
get at least the
|
54
|
-
|
55
|
-
|
62
|
+
{MUSCLE project}[http://www.linuxnet.com/software.html]. If you go this route,
|
63
|
+
you need to get at least the
|
64
|
+
{pcsclite library}[http://pcsclite.alioth.debian.org/] and a driver.
|
65
|
+
+smartcard+ developers use the
|
66
|
+
{CCID driver}[http://pcsclite.alioth.debian.org/], which works on most (new)
|
67
|
+
readers.
|
56
68
|
|
57
69
|
=== Ubuntu
|
58
70
|
|
59
|
-
Installing the following packages (and their dependencies) gets you going on
|
60
|
-
|
71
|
+
Installing the following packages (and their dependencies) gets you going on
|
72
|
+
Ubuntu (tested on 7.10, 8.04, and 8.10):
|
73
|
+
* build-essential
|
61
74
|
* libccid
|
62
|
-
* libpcsclite
|
63
|
-
* libpcsclite-dev
|
75
|
+
* libpcsclite-dev (depends on libpcsclite or libpcsclite1)
|
64
76
|
* pcscd
|
65
77
|
* pcsc-tools
|
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -1,32 +1,37 @@
|
|
1
|
-
+smartcard+ aims to become the standard support library for smart-card
|
2
|
-
Right now, the project offers a PC/SC binding that is
|
3
|
-
Linux, OSX, and Windows. Future plans include a high
|
4
|
-
(plus any other bindings people need),
|
1
|
+
+smartcard+ aims to become the standard support library for smart-card
|
2
|
+
development on ruby. Right now, the project offers a PC/SC binding that is
|
3
|
+
working on ruby 1.8, under Linux, OSX, and Windows. Future plans include a high
|
4
|
+
level abstraction for the PC/SC binding (plus any other bindings people need),
|
5
|
+
and an interface for Java cards.
|
5
6
|
|
6
7
|
= Installation
|
7
8
|
|
8
9
|
gem install smartcard
|
9
10
|
Windows:: Select the <tt>win32</tt> gem.
|
10
11
|
OSX:: Install the Developer Tools to get +gcc+. Requires Tiger or Leopard.
|
11
|
-
UNIX:: You need a PC/SC provider. See the {BUILD file}[link://files/BUILD.html]
|
12
|
+
UNIX:: You need a PC/SC provider. See the {BUILD file}[link://files/BUILD.html]
|
13
|
+
for details. The file also contains package lists for popular distributions.
|
12
14
|
|
13
15
|
= Documentation
|
14
16
|
|
15
|
-
The documentation you see was generated with RDoc. If you install the
|
16
|
-
able to use ri to see the documentation. If
|
17
|
-
the
|
17
|
+
The documentation you see was generated with RDoc. If you install the
|
18
|
+
+smartcard+ gem, you should be able to use ri to see the documentation. If
|
19
|
+
you're using the SVN version, you can <tt>rake doc</tt> to build the HTML
|
20
|
+
documentation yourself.
|
18
21
|
|
19
22
|
= License
|
20
23
|
|
21
|
-
+smartcard+ is released under the MIT license. This means you're free to do
|
22
|
-
with it. However, it'd be nice to let the developers know if
|
23
|
-
distribution (bragging rights are always good).
|
24
|
-
has the license in legalese.
|
24
|
+
+smartcard+ is released under the MIT license. This means you're free to do
|
25
|
+
whatever you want with it. However, it'd be nice to let the developers know if
|
26
|
+
you plan to include this in a distribution (bragging rights are always good).
|
27
|
+
The {LICENSE file}[link://files/LICENSE.html] has the license in legalese.
|
25
28
|
|
26
29
|
= Acknowledgements
|
27
30
|
|
28
|
-
+smartcard+ is developed by Victor Costan while working as a Research Assistant
|
29
|
-
{Prof. Srini Devadas}[http://people.csail.mit.edu/devadas/], in
|
30
|
-
{Trusted Computing group}[http://projects.csail.mit.edu/tc/].
|
31
|
-
|
31
|
+
+smartcard+ is developed by Victor Costan while working as a Research Assistant
|
32
|
+
for MIT, under {Prof. Srini Devadas}[http://people.csail.mit.edu/devadas/], in
|
33
|
+
the {Trusted Computing group}[http://projects.csail.mit.edu/tc/].
|
34
|
+
|
35
|
+
The work is funded by a grant from
|
36
|
+
{Quanta Computer Inc}[http://www.quanta.com.tw], under the
|
32
37
|
{T-Party Project}[http://projects.csail.mit.edu/tparty/].
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'echoe'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('smartcard') do |p|
|
6
|
+
p.project = 'smartcard' # rubyforge project
|
7
|
+
|
8
|
+
p.author = 'Victor Costan'
|
9
|
+
p.email = 'victor@costan.us'
|
10
|
+
p.summary = 'Interface with ISO 7816 smart cards.'
|
11
|
+
p.url = 'http://www.costan.us/smartcard'
|
12
|
+
|
13
|
+
p.need_tar_gz = !Platform.windows?
|
14
|
+
p.need_zip = !Platform.windows?
|
15
|
+
p.clean_pattern += ['ext/**/*.manifest', 'ext/**/*_autogen.h']
|
16
|
+
p.rdoc_pattern = /^(lib|bin|tasks|ext)|^BUILD|^README|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
|
17
|
+
|
18
|
+
p.eval = proc do |p|
|
19
|
+
if Platform.windows?
|
20
|
+
p.files += ['lib/smartcard/pcsc.so']
|
21
|
+
p.platform = Gem::Platform::CURRENT
|
22
|
+
|
23
|
+
# take out the extension info from the gemspec
|
24
|
+
task :postcompile_hacks => [:compile] do
|
25
|
+
p.extensions.clear
|
26
|
+
end
|
27
|
+
|
28
|
+
task :package => [ :clean, :compile, :postcompile_hacks ]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
if $0 == __FILE__
|
34
|
+
Rake.application = Rake::Application.new
|
35
|
+
Rake.application.run
|
36
|
+
end
|
@@ -12,9 +12,10 @@ if RUBY_PLATFORM =~ /darwin/
|
|
12
12
|
pcsc_defines.push 'RB_SMARTCARD_OSX_TIGER_HACK'
|
13
13
|
end
|
14
14
|
elsif RUBY_PLATFORM =~ /win/
|
15
|
-
|
16
15
|
have_library('winscard')
|
17
|
-
|
16
|
+
unless have_library('winscard', 'SCardIsValidContext')
|
17
|
+
pcsc_defines << 'PCSC_SURROGATE_SCARD_IS_VALID_CONTEXT'
|
18
|
+
end
|
18
19
|
else
|
19
20
|
# pcsclite is retarded and uses stuff like '#include <wintypes.h>'
|
20
21
|
$CFLAGS += ' -I /usr/include/PCSC -I /usr/local/include/PCSC'
|
@@ -25,7 +26,9 @@ pcsc_headers = []
|
|
25
26
|
['wintypes.h', 'reader.h', 'winscard.h', 'pcsclite.h'].each do |header|
|
26
27
|
['', 'PCSC/', './pcsc_surrogate_'].each do |path_prefix|
|
27
28
|
if have_header(path_prefix + header)
|
28
|
-
pcsc_headers.push((path_prefix[0,1] == '.') ?
|
29
|
+
pcsc_headers.push((path_prefix[0,1] == '.') ?
|
30
|
+
"\"#{path_prefix + header}\"" :
|
31
|
+
"<#{path_prefix + header}>")
|
29
32
|
break
|
30
33
|
end
|
31
34
|
end
|
@@ -34,9 +37,15 @@ end
|
|
34
37
|
File.open('pcsc_autogen.h', 'w') do |f|
|
35
38
|
pcsc_defines.each { |d| f.write "\#define #{d}\n" }
|
36
39
|
pcsc_headers.each { |h| f.write "\#include #{h}\n" }
|
37
|
-
end
|
40
|
+
end
|
41
|
+
|
42
|
+
if have_macro('SCARDHANDLE', ['pcsc_autogen.h']) or
|
43
|
+
have_type('SCARDHANDLE', ['pcsc_autogen.h'])
|
44
|
+
create_makefile('smartcard/pcsc')
|
45
|
+
else
|
46
|
+
STDERR.write "PC/SC libraries missing!\n"
|
47
|
+
end
|
38
48
|
|
39
|
-
create_makefile('smartcard/pcsc')
|
40
49
|
|
41
50
|
def win32_hack(mf_name)
|
42
51
|
# get the version of MSVC
|
@@ -50,7 +59,7 @@ def win32_hack(mf_name)
|
|
50
59
|
return if msvc_ver == 12
|
51
60
|
end
|
52
61
|
|
53
|
-
#
|
62
|
+
# HACK: monkey-patch the makefile to embed a manifest in the extension dll
|
54
63
|
make_contents = File.open(mf_name, 'r') { |f| f.read }
|
55
64
|
make_rules = make_contents.split(/(\n|\r)(\n|\r)+/)
|
56
65
|
new_make_rules = make_rules.map do |rule|
|
@@ -38,7 +38,8 @@ static VALUE PCSC_ReaderStates_alloc(VALUE klass) {
|
|
38
38
|
* new(num_states) --> reader_states
|
39
39
|
*
|
40
40
|
* Creates an array of +num_states+ reader state elements.
|
41
|
-
* The states are unusable until they are assigned reader names by calling
|
41
|
+
* The states are unusable until they are assigned reader names by calling
|
42
|
+
* Smartcard::PCSC::ReaderStates#set_reader_name_of.
|
42
43
|
*/
|
43
44
|
static VALUE PCSC_ReaderStates_initialize(VALUE self, VALUE rbNumStates) {
|
44
45
|
struct PCSCReaderStates *states;
|
@@ -77,10 +78,12 @@ static int _validate_readerstates_args(VALUE rbReaderStates, VALUE rbIndex, stru
|
|
77
78
|
* call-seq:
|
78
79
|
* current_state_of(index) --> current_state
|
79
80
|
*
|
80
|
-
* The current state (_dwCurrentState_ in PC/SC) in the <tt>index</tt>th reader
|
81
|
-
* Smartcard::PCSC::Context#get_status_change blocks as long as
|
81
|
+
* The current state (_dwCurrentState_ in PC/SC) in the <tt>index</tt>th reader
|
82
|
+
* state element. Smartcard::PCSC::Context#get_status_change blocks as long as
|
83
|
+
* the reader state equals this value.
|
82
84
|
*
|
83
|
-
* The returned state is a bitfield; the bits are defined in the
|
85
|
+
* The returned state is a bitfield; the bits are defined in the
|
86
|
+
* Smartcard::PCSC::STATE_ constants. See Smartcard::PCSC::STATE_UNAWARE.
|
84
87
|
*
|
85
88
|
* +index+:: the 0-based index of the reader state element to be queried
|
86
89
|
*/
|
@@ -98,10 +101,12 @@ static VALUE PCSC_ReaderStates_current_state_of(VALUE self, VALUE rbIndex) {
|
|
98
101
|
* call-seq:
|
99
102
|
* event_state_of(index) --> event_state
|
100
103
|
*
|
101
|
-
* The event state (_dwEventState_ in PC/SC) in the <tt>index</tt>th reader
|
102
|
-
* Smartcard::PCSC::Context#get_status_change stores the updated
|
104
|
+
* The event state (_dwEventState_ in PC/SC) in the <tt>index</tt>th reader
|
105
|
+
* state element. Smartcard::PCSC::Context#get_status_change stores the updated
|
106
|
+
* reader state in this value.
|
103
107
|
*
|
104
|
-
* The returned state is a bitfield; the bits are defined in the
|
108
|
+
* The returned state is a bitfield; the bits are defined in the
|
109
|
+
* Smartcard::PCSC::STATE_ constants. See Smartcard::PCSC::STATE_UNAWARE.
|
105
110
|
*
|
106
111
|
* +index+:: the 0-based index of the reader state element to be queried
|
107
112
|
*/
|
data/lib/smartcard/pcsc.so
CHANGED
Binary file
|
data/smartcard.gemspec
CHANGED
@@ -1,66 +1,32 @@
|
|
1
|
-
|
2
|
-
# Gem::Specification for Smartcard-0.3.1
|
3
|
-
# Originally generated by Echoe
|
1
|
+
# -*- encoding: utf-8 -*-
|
4
2
|
|
5
3
|
Gem::Specification.new do |s|
|
6
4
|
s.name = %q{smartcard}
|
7
|
-
s.version = "0.3.
|
5
|
+
s.version = "0.3.2"
|
8
6
|
s.platform = %q{x86-mswin32-60}
|
9
7
|
|
10
|
-
s.
|
11
|
-
|
12
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
13
9
|
s.authors = ["Victor Costan"]
|
14
|
-
s.date = %q{
|
10
|
+
s.date = %q{2009-06-01}
|
15
11
|
s.description = %q{Interface with ISO 7816 smart cards.}
|
16
12
|
s.email = %q{victor@costan.us}
|
17
13
|
s.extra_rdoc_files = ["BUILD", "CHANGELOG", "ext/smartcard_pcsc/extconf.rb", "ext/smartcard_pcsc/pcsc.h", "ext/smartcard_pcsc/pcsc_card.c", "ext/smartcard_pcsc/pcsc_constants.c", "ext/smartcard_pcsc/pcsc_context.c", "ext/smartcard_pcsc/pcsc_exception.c", "ext/smartcard_pcsc/pcsc_io_request.c", "ext/smartcard_pcsc/pcsc_main.c", "ext/smartcard_pcsc/pcsc_multi_strings.c", "ext/smartcard_pcsc/pcsc_namespace.c", "ext/smartcard_pcsc/pcsc_reader_states.c", "ext/smartcard_pcsc/pcsc_surrogate_reader.h", "ext/smartcard_pcsc/pcsc_surrogate_wintypes.h", "lib/smartcard/pcsc_exception.rb", "lib/smartcard.rb", "LICENSE", "README"]
|
18
|
-
s.files = ["BUILD", "CHANGELOG", "ext/smartcard_pcsc/extconf.rb", "ext/smartcard_pcsc/pcsc.h", "ext/smartcard_pcsc/pcsc_card.c", "ext/smartcard_pcsc/pcsc_constants.c", "ext/smartcard_pcsc/pcsc_context.c", "ext/smartcard_pcsc/pcsc_exception.c", "ext/smartcard_pcsc/pcsc_io_request.c", "ext/smartcard_pcsc/pcsc_main.c", "ext/smartcard_pcsc/pcsc_multi_strings.c", "ext/smartcard_pcsc/pcsc_namespace.c", "ext/smartcard_pcsc/pcsc_reader_states.c", "ext/smartcard_pcsc/pcsc_surrogate_reader.h", "ext/smartcard_pcsc/pcsc_surrogate_wintypes.h", "lib/smartcard/pcsc_exception.rb", "lib/smartcard.rb", "LICENSE", "Manifest", "README", "test/test_containers.rb", "test/test_smoke.rb", "tests/ts_pcsc_ext.rb", "smartcard.gemspec", "lib/smartcard/pcsc.so"]
|
19
|
-
s.has_rdoc = true
|
14
|
+
s.files = ["BUILD", "CHANGELOG", "ext/smartcard_pcsc/extconf.rb", "ext/smartcard_pcsc/pcsc.h", "ext/smartcard_pcsc/pcsc_card.c", "ext/smartcard_pcsc/pcsc_constants.c", "ext/smartcard_pcsc/pcsc_context.c", "ext/smartcard_pcsc/pcsc_exception.c", "ext/smartcard_pcsc/pcsc_io_request.c", "ext/smartcard_pcsc/pcsc_main.c", "ext/smartcard_pcsc/pcsc_multi_strings.c", "ext/smartcard_pcsc/pcsc_namespace.c", "ext/smartcard_pcsc/pcsc_reader_states.c", "ext/smartcard_pcsc/pcsc_surrogate_reader.h", "ext/smartcard_pcsc/pcsc_surrogate_wintypes.h", "lib/smartcard/pcsc_exception.rb", "lib/smartcard.rb", "LICENSE", "Manifest", "README", "test/test_containers.rb", "test/test_smoke.rb", "tests/ts_pcsc_ext.rb", "smartcard.gemspec", "Rakefile", "lib/smartcard/pcsc.so"]
|
20
15
|
s.homepage = %q{http://www.costan.us/smartcard}
|
21
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Smartcard", "--main", "README"]
|
22
17
|
s.require_paths = ["lib", "ext"]
|
23
18
|
s.rubyforge_project = %q{smartcard}
|
24
|
-
s.rubygems_version = %q{1.
|
19
|
+
s.rubygems_version = %q{1.3.4}
|
25
20
|
s.summary = %q{Interface with ISO 7816 smart cards.}
|
26
21
|
s.test_files = ["test/test_containers.rb", "test/test_smoke.rb"]
|
27
|
-
end
|
28
22
|
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
+
s.specification_version = 3
|
29
26
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
# Echoe.new('smartcard') do |p|
|
37
|
-
# p.project = 'smartcard' # rubyforge project
|
38
|
-
#
|
39
|
-
# p.author = 'Victor Costan'
|
40
|
-
# p.email = 'victor@costan.us'
|
41
|
-
# p.summary = 'Interface with ISO 7816 smart cards.'
|
42
|
-
# p.url = 'http://www.costan.us/smartcard'
|
43
|
-
#
|
44
|
-
# p.need_tar_gz = false
|
45
|
-
# p.clean_pattern += ['ext/**/*.manifest', 'ext/**/*_autogen.h']
|
46
|
-
# p.rdoc_pattern = /^(lib|bin|tasks|ext)|^BUILD|^README|^CHANGELOG|^TODO|^LICENSE|^COPYING$/
|
47
|
-
#
|
48
|
-
# p.eval = proc do |p|
|
49
|
-
# if Platform.windows?
|
50
|
-
# p.files += ['lib/smartcard/pcsc.so']
|
51
|
-
# p.platform = Gem::Platform::CURRENT
|
52
|
-
#
|
53
|
-
# # take out the extension info from the gemspec
|
54
|
-
# task :postcompile_hacks => [:compile] do
|
55
|
-
# p.extensions.clear
|
56
|
-
# end
|
57
|
-
#
|
58
|
-
# task :package => [ :clean, :compile, :postcompile_hacks ]
|
59
|
-
# end
|
60
|
-
# end
|
61
|
-
# end
|
62
|
-
#
|
63
|
-
# if $0 == __FILE__
|
64
|
-
# Rake.application = Rake::Application.new
|
65
|
-
# Rake.application.run
|
66
|
-
# end
|
27
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
28
|
+
else
|
29
|
+
end
|
30
|
+
else
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartcard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: x86-mswin32-60
|
6
6
|
authors:
|
7
7
|
- Victor Costan
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-06-01 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -64,9 +64,12 @@ files:
|
|
64
64
|
- test/test_smoke.rb
|
65
65
|
- tests/ts_pcsc_ext.rb
|
66
66
|
- smartcard.gemspec
|
67
|
+
- Rakefile
|
67
68
|
- lib/smartcard/pcsc.so
|
68
69
|
has_rdoc: true
|
69
70
|
homepage: http://www.costan.us/smartcard
|
71
|
+
licenses: []
|
72
|
+
|
70
73
|
post_install_message:
|
71
74
|
rdoc_options:
|
72
75
|
- --line-numbers
|
@@ -88,14 +91,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
91
|
requirements:
|
89
92
|
- - ">="
|
90
93
|
- !ruby/object:Gem::Version
|
91
|
-
version: "
|
94
|
+
version: "1.2"
|
92
95
|
version:
|
93
96
|
requirements: []
|
94
97
|
|
95
98
|
rubyforge_project: smartcard
|
96
|
-
rubygems_version: 1.
|
99
|
+
rubygems_version: 1.3.4
|
97
100
|
signing_key:
|
98
|
-
specification_version:
|
101
|
+
specification_version: 3
|
99
102
|
summary: Interface with ISO 7816 smart cards.
|
100
103
|
test_files:
|
101
104
|
- test/test_containers.rb
|