You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(10) |
Feb
(10) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(17) |
Sep
(9) |
Oct
(10) |
Nov
(2) |
Dec
(5) |
2009 |
Jan
(17) |
Feb
(8) |
Mar
(10) |
Apr
(1) |
May
|
Jun
(11) |
Jul
(18) |
Aug
|
Sep
|
Oct
(10) |
Nov
(40) |
Dec
(4) |
2010 |
Jan
(2) |
Feb
(5) |
Mar
(13) |
Apr
(14) |
May
(27) |
Jun
(86) |
Jul
(1) |
Aug
(12) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(5) |
2011 |
Jan
|
Feb
(2) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
(11) |
Aug
(1) |
Sep
(3) |
Oct
(65) |
Nov
|
Dec
(1) |
2012 |
Jan
(1) |
Feb
(4) |
Mar
(6) |
Apr
(6) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
(12) |
Oct
(3) |
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(4) |
Oct
(1) |
Nov
(24) |
Dec
(10) |
2015 |
Jan
(1) |
Feb
(10) |
Mar
|
Apr
|
May
(1) |
Jun
(15) |
Jul
(4) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <lu...@us...> - 2008-08-17 12:36:36
|
Revision: 212 http://pyscard.svn.sourceforge.net/pyscard/?rev=212&view=rev Author: ludov Date: 2008-08-17 12:36:45 +0000 (Sun, 17 Aug 2008) Log Message: ----------- improve package description Modified Paths: -------------- trunk/pyscard/src/debian/control Modified: trunk/pyscard/src/debian/control =================================================================== --- trunk/pyscard/src/debian/control 2008-08-14 15:16:20 UTC (rev 211) +++ trunk/pyscard/src/debian/control 2008-08-17 12:36:45 UTC (rev 212) @@ -13,5 +13,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} Provides: ${python:Provides} XB-Python-Version: ${python:Versions} -Description: Python wrapper above PC/SC +Description: Python wrapper above PC/SC API This package contains a wrapper to use PC/SC from a Python program. + PC/SC is an API to communicate with smart cards and smart card readers. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 15:16:13
|
Revision: 211 http://pyscard.svn.sourceforge.net/pyscard/?rev=211&view=rev Author: jdaussel Date: 2008-08-14 15:16:20 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Added missing import of ListReadersException Modified Paths: -------------- trunk/pyscard/src/smartcard/pcsc/PCSCCardRequest.py Modified: trunk/pyscard/src/smartcard/pcsc/PCSCCardRequest.py =================================================================== --- trunk/pyscard/src/smartcard/pcsc/PCSCCardRequest.py 2008-08-14 15:10:48 UTC (rev 210) +++ trunk/pyscard/src/smartcard/pcsc/PCSCCardRequest.py 2008-08-14 15:16:20 UTC (rev 211) @@ -25,7 +25,7 @@ import threading, time from smartcard.AbstractCardRequest import AbstractCardRequest -from smartcard.Exceptions import CardRequestTimeoutException, CardRequestException +from smartcard.Exceptions import CardRequestTimeoutException, CardRequestException, ListReadersException from smartcard.pcsc.PCSCReader import PCSCReader from smartcard.pcsc.PCSCContext import PCSCContext from smartcard import Card This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 15:10:41
|
Revision: 210 http://pyscard.svn.sourceforge.net/pyscard/?rev=210&view=rev Author: jdaussel Date: 2008-08-14 15:10:48 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Updated ReaderMonitoring logics Modified Paths: -------------- trunk/pyscard/src/smartcard/ReaderMonitoring.py trunk/pyscard/tools/vslick/pyscard.vpj Modified: trunk/pyscard/src/smartcard/ReaderMonitoring.py =================================================================== --- trunk/pyscard/src/smartcard/ReaderMonitoring.py 2008-08-14 15:08:16 UTC (rev 209) +++ trunk/pyscard/src/smartcard/ReaderMonitoring.py 2008-08-14 15:10:48 UTC (rev 210) @@ -1,210 +1,222 @@ -"""Smart card reader monitoring classes. - -ReaderObserver is a base class for objects that are to be notified -upon smartcard reader insertion/removal. - -ReaderMonitor is a singleton object notifying registered ReaderObservers -upon reader insertion/removal. - -__author__ = "http://www.gemalto.com" - -Copyright 2001-2008 gemalto -Author: Jean-Daniel Aussel, mailto:jea...@ge... - -This file is part of pyscard. - -pyscard is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -pyscard is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with pyscard; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -""" - -from sys import exc_info -from threading import Thread, Event, enumerate -from time import sleep - -from smartcard.System import readers -from smartcard.Exceptions import ListReadersException -from smartcard.Observer import Observer -from smartcard.Observer import Observable - -# ReaderObserver interface -class ReaderObserver(Observer): - """ - ReaderObserver is a base abstract class for objects that are to be notified - upon smartcard reader insertion/removal. - """ - def __init__(self): - pass - def update( self, observable, (addedreaders, removedreaders) ): - """Called upon reader insertion/removal. - - observable: - addedreaders: list of added readers causing notification - removedreaders: list of removed readers causing notification - """ - pass - -class ReaderMonitor( Observable ): - """Class that monitors reader insertion/removal. - and notify observers - - note: a reader monitoring thread will be running - as long as the reader monitor has observers, or ReaderMonitor.stop() - is called. - - It implements the shared state design pattern, where objects - of the same type all share the same state, in our case essentially - the ReaderMonitoring Thread. - """ - - - __shared_state = {} - - def __init__( self, startOnDemand=True ): - self.__dict__ = self.__shared_state - Observable.__init__( self ) - self.startOnDemand = startOnDemand - if self.startOnDemand: - self.rmthread=None - else: - self.rmthread = ReaderMonitoringThread( self ) - self.rmthread.start() - - def addObserver( self, observer ): - """Add an observer.""" - Observable.addObserver( self, observer ) - - # If self.startOnDemand is True, the reader monitoring - # thread only runs when there are observers. - if self.startOnDemand: - if 0<self.countObservers(): - if not self.rmthread: - self.rmthread = ReaderMonitoringThread( self ) - - # start reader monitoring thread in another thread to - # avoid a deadlock; addObserver and notifyObservers called - # in the ReaderMonitoringThread run() method are synchronized - import thread - thread.start_new_thread( self.rmthread.start, () ) - else: - observer.update( self, (self.rmthread.readers, []) ) - - def deleteObserver( self, observer ): - """Remove an observer.""" - Observable.deleteObserver( self, observer ) - # If self.startOnDemand is True, the reader monitoring - # thread is stopped when there are no more observers. - if self.startOnDemand: - if 0==self.countObservers(): - self.rmthread.stop() - del self.rmthread - self.rmthread = None - - def __str__(self): - return self.__class__.__name__ - -class ReaderMonitoringThread(Thread): - """Reader insertion thread. - This thread polls for pcsc reader insertion, since no - reader insertion event is available in pcsc. - """ - - - __shared_state = {} - def __init__( self, observable ): - self.__dict__ = self.__shared_state - Thread.__init__( self ) - self.observable = observable - self.stopEvent = Event() - self.stopEvent.clear() - self.readers = [] - self.setDaemon( True ) - self.setName( 'smartcard.ReaderMonitoringThread' ) - - def run(self): - """Runs until stopEvent is notified, and notify - observers of all reader insertion/removal. - """ - while not self.stopEvent.isSet(): - try: - # no need to monitor if no observers - if 0<self.observable.countObservers(): - currentReaders = readers() - addedReaders = [] - removedReaders = [] - - if currentReaders != self.readers: - for reader in currentReaders: - if not reader in self.readers: - addedReaders.append(reader) - for reader in self.readers: - if not reader in currentReaders: - removedReaders.append(reader) - - if addedReaders or removedReaders: - # Notify observers - self.readers = currentReaders - self.observable.setChanged() - self.observable.notifyObservers((addedReaders, removedReaders)) - - # wait every second on stopEvent - self.stopEvent.wait(1) - - except Exception, e: - # Most likely raised during interpreter shutdown due - # to unclean exit which failed to remove all observers. - # To solve this, we set the stop event and pass the - # exception to let the thread finish gracefully. - self.stopEvent.set() - - def stop(self): - self.stopEvent.set() - self.join() - - - -if __name__ == "__main__": - from smartcard.ReaderMonitoring import ReaderMonitor - print 'insert or remove readers in the next 10 seconds' - - # a simple reader observer that prints added/removed readers - class printobserver( ReaderObserver ): - def __init__( self, obsindex ): - self.obsindex=obsindex - - def update( self, observable, (addedreaders, removedreaders) ): - print "%d - added: " % self.obsindex, addedreaders - print "%d - removed: " % self.obsindex, removedreaders - - class testthread( Thread ): - def __init__(self, obsindex ): - Thread.__init__(self) - self.readermonitor = ReaderMonitor() - self.obsindex = obsindex - self.observer=None - - def run(self): - # create and register observer - self.observer = printobserver( self.obsindex ) - self.readermonitor.addObserver(self.observer) - sleep(10) - self.readermonitor.deleteObserver(self.observer) - - t1 = testthread(1) - t2 = testthread(2) - t1.start() - t2.start() - t1.join() - t2.join() - - +"""Smart card reader monitoring classes. + +ReaderObserver is a base class for objects that are to be notified +upon smartcard reader insertion/removal. + +ReaderMonitor is a singleton object notifying registered ReaderObservers +upon reader insertion/removal. + +__author__ = "http://www.gemalto.com" + +Copyright 2001-2008 gemalto +Author: Jean-Daniel Aussel, mailto:jea...@ge... + +This file is part of pyscard. + +pyscard is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +pyscard is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with pyscard; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +""" + +from sys import exc_info +from threading import Thread, Event, enumerate +from time import sleep + +import smartcard.System +from smartcard.Exceptions import ListReadersException +from smartcard.Observer import Observer +from smartcard.Observer import Observable +from smartcard.Synchronization import * + + +# ReaderObserver interface +class ReaderObserver(Observer): + """ + ReaderObserver is a base abstract class for objects that are to be notified + upon smartcard reader insertion/removal. + """ + def __init__(self): + pass + def update( self, observable, (addedreaders, removedreaders) ): + """Called upon reader insertion/removal. + + observable: + addedreaders: list of added readers causing notification + removedreaders: list of removed readers causing notification + """ + pass + +class ReaderMonitor( Observable ): + """Class that monitors reader insertion/removal. + and notify observers + + note: a reader monitoring thread will be running + as long as the reader monitor has observers, or ReaderMonitor.stop() + is called. + + It implements the shared state design pattern, where objects + of the same type all share the same state, in our case essentially + the ReaderMonitoring Thread. Thanks to Frank Aune for implementing + the shared state pattern logics. + """ + + + __shared_state = {} + + def __init__( self, startOnDemand=True, readerProc=smartcard.System.readers, period=1 ): + self.__dict__ = self.__shared_state + Observable.__init__( self ) + self.startOnDemand = startOnDemand + self.readerProc = readerProc + self.period = period + if self.startOnDemand: + self.rmthread=None + else: + self.rmthread = ReaderMonitoringThread( self, self.readerProc, self.period ) + self.rmthread.start() + + def addObserver( self, observer ): + """Add an observer.""" + Observable.addObserver( self, observer ) + + # If self.startOnDemand is True, the reader monitoring + # thread only runs when there are observers. + if self.startOnDemand: + if 0<self.countObservers(): + if not self.rmthread: + self.rmthread = ReaderMonitoringThread( self, self.readerProc, self.period ) + + # start reader monitoring thread in another thread to + # avoid a deadlock; addObserver and notifyObservers called + # in the ReaderMonitoringThread run() method are synchronized + import thread + thread.start_new_thread( self.rmthread.start, () ) + else: + observer.update( self, (self.rmthread.readers, []) ) + + def deleteObserver( self, observer ): + """Remove an observer.""" + Observable.deleteObserver( self, observer ) + # If self.startOnDemand is True, the reader monitoring + # thread is stopped when there are no more observers. + if self.startOnDemand: + if 0==self.countObservers(): + self.rmthread.stop() + del self.rmthread + self.rmthread = None + + def __str__(self): + return self.__class__.__name__ + +synchronize( ReaderMonitor, + "addObserver deleteObserver deleteObservers " + + "setChanged clearChanged hasChanged " + + "countObservers") + + +class ReaderMonitoringThread(Thread): + """Reader insertion thread. + This thread polls for pcsc reader insertion, since no + reader insertion event is available in pcsc. + """ + + + __shared_state = {} + def __init__( self, observable, readerProc, period ): + self.__dict__ = self.__shared_state + Thread.__init__( self ) + self.observable = observable + self.stopEvent = Event() + self.stopEvent.clear() + self.readers = [] + self.setDaemon( True ) + self.setName( 'smartcard.ReaderMonitoringThread' ) + self.readerProc = readerProc + self.period = period + + def run(self): + """Runs until stopEvent is notified, and notify + observers of all reader insertion/removal. + """ + while not self.stopEvent.isSet(): + try: + # no need to monitor if no observers + if 0<self.observable.countObservers(): + currentReaders = self.readerProc() + addedReaders = [] + removedReaders = [] + + if currentReaders!=self.readers: + for reader in currentReaders: + if not reader in self.readers: + addedReaders.append(reader) + for reader in self.readers: + if not reader in currentReaders: + removedReaders.append(reader) + + if addedReaders or removedReaders: + # Notify observers + self.readers=[] + for r in currentReaders: self.readers.append(r) + self.observable.setChanged() + self.observable.notifyObservers((addedReaders, removedReaders)) + + # wait every second on stopEvent + self.stopEvent.wait(self.period) + + except Exception, e: + # Most likely raised during interpreter shutdown due + # to unclean exit which failed to remove all observers. + # To solve this, we set the stop event and pass the + # exception to let the thread finish gracefully. + self.stopEvent.set() + + def stop(self): + self.stopEvent.set() + self.join() + +if __name__ == "__main__": + from smartcard.ReaderMonitoring import ReaderMonitor + print 'insert or remove readers in the next 20 seconds' + + # a simple reader observer that prints added/removed readers + class printobserver( ReaderObserver ): + def __init__( self, obsindex ): + self.obsindex=obsindex + + def update( self, observable, (addedreaders, removedreaders) ): + print "%d - added: " % self.obsindex, addedreaders + print "%d - removed: " % self.obsindex, removedreaders + + class testthread( Thread ): + def __init__(self, obsindex ): + Thread.__init__(self) + self.readermonitor = ReaderMonitor() + self.obsindex = obsindex + self.observer=None + + def run(self): + # create and register observer + self.observer = printobserver( self.obsindex ) + self.readermonitor.addObserver(self.observer) + sleep(20) + self.readermonitor.deleteObserver(self.observer) + + t1 = testthread(1) + t2 = testthread(2) + t1.start() + t2.start() + t1.join() + t2.join() + + Modified: trunk/pyscard/tools/vslick/pyscard.vpj =================================================================== --- trunk/pyscard/tools/vslick/pyscard.vpj 2008-08-14 15:08:16 UTC (rev 209) +++ trunk/pyscard/tools/vslick/pyscard.vpj 2008-08-14 15:10:48 UTC (rev 210) @@ -211,6 +211,7 @@ <F N="../../src/smartcard/test/framework/testcase_ExclusiveCardConnection.py"/> <F N="../../src/smartcard/test/framework/testcase_readergroups.py"/> <F N="../../src/smartcard/test/framework/testcase_readermonitor.py"/> + <F N="../../src/smartcard/test/framework/testcase_readermonitorstress.py"/> <F N="../../src/smartcard/test/framework/testcase_readers.py"/> <F N="../../src/smartcard/test/framework/testcase_ulist.py"/> <F N="../../src/smartcard/test/framework/testcase_utils.py"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 15:08:08
|
Revision: 209 http://pyscard.svn.sourceforge.net/pyscard/?rev=209&view=rev Author: jdaussel Date: 2008-08-14 15:08:16 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Added testcase_readermonitorstress Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py Added Paths: ----------- trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py Added: trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py (rev 0) +++ trunk/pyscard/src/smartcard/test/framework/testcase_readermonitorstress.py 2008-08-14 15:08:16 UTC (rev 209) @@ -0,0 +1,177 @@ +#! /usr/bin/env python +"""Unit tests for smartcard.ReaderMonitoring + +This test case can be executed individually, or with all other test cases +thru testsuite_framework.py. + +__author__ = "http://www.gemalto.com" + +Copyright 2001-2008 gemalto +Author: Jean-Daniel Aussel, mailto:jea...@ge... + +This file is part of pyscard. + +pyscard is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +pyscard is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with pyscard; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +""" + + +import random +import threading +import time +import unittest + +from smartcard.ReaderMonitoring import ReaderMonitor, ReaderObserver + +period=.1 + +# stats on virtual reader insertion/removal +insertedreaderstats={} +removedreaderstats={} + +# the virtual list of readers +mutexvreaders=threading.RLock() +virtualreaders=[] +def getReaders(): + '''Return virtual list of inserted readers. + Replacement of smartcard.system.readers for testing purpose''' + try: + mutexvreaders.acquire() + currentreaders = virtualreaders + finally: + mutexvreaders.release() + readerEvent.set() + return currentreaders + +# an event to signal test threads to end +exitEvent = threading.Event() + +# an event to ensure only one insertion/removal between getReaders() calls +readerEvent = threading.Event() +readerEvent.clear() + +# test running time in seconds +RUNNING_TIME=15 + +# the count of registered observers +OBS_COUNT=100 + +class readerInsertionThread( threading.Thread ): + '''Simulate reader insertion every 2 to 4 periods.''' + def __init__( self ): + threading.Thread.__init__( self ) + def run( self ): + while not exitEvent.isSet(): + time.sleep( random.uniform( 2*period, 4*period ) ) + readerEvent.wait() + newreader=random.choice( 'abcdefghijklmnopqrstuvwxyz' ) + try: + mutexvreaders.acquire() + if newreader not in virtualreaders: + virtualreaders.append( newreader ) + if insertedreaderstats.has_key(newreader): insertedreaderstats[newreader]+=1 + else: insertedreaderstats[newreader]=1 + finally: + readerEvent.clear() + mutexvreaders.release() + + +class readerRemovalThread( threading.Thread ): + '''Simulate reader removal every 5 to 6 periods.''' + def __init__(self ): + threading.Thread.__init__(self) + def run(self): + while not exitEvent.isSet(): + time.sleep( random.uniform( 5*period, 6*period ) ) + readerEvent.wait() + try: + mutexvreaders.acquire() + if virtualreaders: + oldreader=random.choice( virtualreaders ) + virtualreaders.remove(oldreader) + if removedreaderstats.has_key(oldreader): removedreaderstats[oldreader]+=1 + else: removedreaderstats[oldreader]=1 + finally: + readerEvent.clear() + mutexvreaders.release() + + +class countobserver( ReaderObserver ): + '''A simple reader observer that counts added/removed readers.''' + def __init__( self, obsindex ): + self.obsindex=obsindex + self.insertedreaderstats={} + self.removedreaderstats={} + self.countnotified=0 + def update( self, observable, (addedreaders, removedreaders) ): + self.countnotified+=1 + for newreader in addedreaders: + if self.insertedreaderstats.has_key(newreader): self.insertedreaderstats[newreader]+=1 + else: self.insertedreaderstats[newreader]=1 + for oldreader in removedreaders: + if self.removedreaderstats.has_key(oldreader): self.removedreaderstats[oldreader]+=1 + else: self.removedreaderstats[oldreader]=1 + + +class testcase_readermonitorstress( unittest.TestCase ): + '''Test smartcard framework reader monitoring''' + def testcase_readermonitorthread(self): + + # create thread that simulates reader insertion + insertionthread = readerInsertionThread() + + # create thread that simulates reader removal + removalthread = readerRemovalThread() + + readermonitor = ReaderMonitor( readerProc=getReaders, period=period ) + observers=[] + for i in range( 0, OBS_COUNT ): + observer = countobserver( i ) + readermonitor.addObserver( observer ) + observers.append( observer ) + + # signal threads to start + insertionthread.start() + removalthread.start() + + # let reader insertion/removal threads run for a while + # then signal threads to end + time.sleep( RUNNING_TIME ) + exitEvent.set() + + # wait until all threads ended + removalthread.join() + insertionthread.join() + time.sleep( 2*period ) + + for observer in observers: + #print observer.obsindex, observer.insertedreaderstats==insertedreaderstats, observer.countnotified + #print observer.obsindex, observer.removedreaderstats==removedreaderstats, observer.countnotified + #print observer.insertedreaderstats + #print insertedreaderstats + #print observer.removedreaderstats + #print removedreaderstats + self.assertEquals( observer.insertedreaderstats, insertedreaderstats ) + self.assertEquals( observer.removedreaderstats, removedreaderstats ) + + + +def suite(): + suite1 = unittest.makeSuite(testcase_readermonitorthread) + return unittest.TestSuite((suite1)) + + +if __name__ == '__main__': + unittest.main() + Modified: trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 12:47:34 UTC (rev 208) +++ trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 15:08:16 UTC (rev 209) @@ -45,6 +45,7 @@ 'testcase_readers', 'testcase_readergroups', 'testcase_readermonitor', + 'testcase_readermonitorstress', 'testcase_ulist', 'testcase_utils', ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 12:47:25
|
Revision: 208 http://pyscard.svn.sourceforge.net/pyscard/?rev=208&view=rev Author: jdaussel Date: 2008-08-14 12:47:34 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Added another expected card response in dictionnary Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testcase_Card.py Modified: trunk/pyscard/src/smartcard/test/framework/testcase_Card.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testcase_Card.py 2008-08-14 12:46:00 UTC (rev 207) +++ trunk/pyscard/src/smartcard/test/framework/testcase_Card.py 2008-08-14 12:47:34 UTC (rev 208) @@ -63,7 +63,7 @@ if []!=expectedATRinReader[str(reader)]: cc.connect() response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM ) - expectedSWs={ "9f 1a":1, "6e 0":2 } + expectedSWs={ "9f 1a":1, "9f 20":2, "6e 0":3 } self.assertEquals( [], response ) self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) else: @@ -81,7 +81,7 @@ if []!=expectedATRinReader[str(reader)]: cc.connect() response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM ) - expectedSWs={ "9f 1a":1, "6e 0":2 } + expectedSWs={ "9f 1a":1, "9f 20":2, "6e 0":3 } self.assertEquals( [], response ) self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) else: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 12:45:51
|
Revision: 207 http://pyscard.svn.sourceforge.net/pyscard/?rev=207&view=rev Author: jdaussel Date: 2008-08-14 12:46:00 +0000 (Thu, 14 Aug 2008) Log Message: ----------- added testcase_Card Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py Modified: trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 12:45:20 UTC (rev 206) +++ trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 12:46:00 UTC (rev 207) @@ -33,6 +33,7 @@ def suite(): modules_to_test = ( 'testcase_ATR', + 'testcase_Card', 'testcase_CardConnection', 'testcase_CardMonitor', 'testcase_CardRequest', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 12:45:12
|
Revision: 206 http://pyscard.svn.sourceforge.net/pyscard/?rev=206&view=rev Author: jdaussel Date: 2008-08-14 12:45:20 +0000 (Thu, 14 Aug 2008) Log Message: ----------- added testcase_ExclusiveCardConnection Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py Modified: trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 12:44:39 UTC (rev 205) +++ trunk/pyscard/src/smartcard/test/framework/testsuite_framework.py 2008-08-14 12:45:20 UTC (rev 206) @@ -40,6 +40,7 @@ 'testcase_CardType', 'testcase_CAtr', 'testcase_ErrorChecking', + 'testcase_ExclusiveCardConnection', 'testcase_readers', 'testcase_readergroups', 'testcase_readermonitor', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-14 12:44:30
|
Revision: 205 http://pyscard.svn.sourceforge.net/pyscard/?rev=205&view=rev Author: jdaussel Date: 2008-08-14 12:44:39 +0000 (Thu, 14 Aug 2008) Log Message: ----------- commented test output messasge Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py Modified: trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py 2008-08-01 13:54:24 UTC (rev 204) +++ trunk/pyscard/src/smartcard/test/framework/testcase_ExclusiveCardConnection.py 2008-08-14 12:44:39 UTC (rev 205) @@ -116,7 +116,8 @@ for t in threads: t.join() for t in threads: - print 'Thread %d: transmitted %ld apdus.' % (t.threadindex, t.countTransmitted ) + if 0==1: + print 'Thread %d: transmitted %ld apdus.' % (t.threadindex, t.countTransmitted ) def suite(): suite1 = unittest.makeSuite(testcase_cardmonitorthread) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-01 13:54:17
|
Revision: 204 http://pyscard.svn.sourceforge.net/pyscard/?rev=204&view=rev Author: jdaussel Date: 2008-08-01 13:54:24 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Doc updated to Version 1.6.7, including logs, acks, online doc Modified Paths: -------------- trunk/pyscard/src/PKG-INFO trunk/pyscard/src/README trunk/pyscard/src/setup.py trunk/pyscard/src/smartcard/ACKS trunk/pyscard/src/smartcard/ChangeLog trunk/pyscard/src/smartcard/README trunk/pyscard/src/smartcard/__init__.py trunk/pyscard/src/smartcard/doc/framework-samples.html trunk/pyscard/src/smartcard/doc/index.html trunk/pyscard/src/smartcard/doc/scard-samples.html Modified: trunk/pyscard/src/PKG-INFO =================================================================== --- trunk/pyscard/src/PKG-INFO 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/PKG-INFO 2008-08-01 13:54:24 UTC (rev 204) @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: pyscard -Version: 1.6.6 +Version: 1.6.7 Summary: Smartcard module for Python. Home-page: http://pyscard.sourceforge.net/ Author: Jean-Daniel Aussel @@ -10,7 +10,7 @@ Description: Smartcard package for Python Platform: linux Platform: win32 -Classifier: Development Status :: 1.6.6 - Release +Classifier: Development Status :: 1.6.7 - Release Classifier: License :: GNU LESSER GENERAL PUBLIC LICENSE Classifier: Intended Audience :: Developers Classifier: Operating System :: Unix Modified: trunk/pyscard/src/README =================================================================== --- trunk/pyscard/src/README 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/README 2008-08-01 13:54:24 UTC (rev 204) @@ -23,7 +23,7 @@ Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ------------------------------------------------------------------------------- -Last update : pyscard 1.6.6 (February 2008) +Last update : pyscard 1.6.7 (August 2008) ------------------------------------------------------------------------------- pyscard is a python module adding smart cards support to python. @@ -61,7 +61,7 @@ The binary msi installer and self-executable installer are packaged for a specific version of python, and have name similar to -pyscard-1.6.6.win32-py2.5.msi and pyscard-1.6.6.win32-py2.5.exe for +pyscard-1.6.7.win32-py2.5.msi and pyscard-1.6.7.win32-py2.5.exe for python 2.5. @@ -77,8 +77,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip for windows, -and pyscard-1.6.6.tar.gz for linux. +The source distribution is available as pyscard-1.6.7.zip for windows, +and pyscard-1.6.7.tar.gz for linux. 3. unzip the source distribution, open a console and type the following: @@ -99,8 +99,8 @@ 1. download the binary distribution The binary distribution is either an archive file or a rpm file, with -names similar to pyscard-1.6.6-1.i386.rpm for the rpm distribution, -or pyscard-1.6.6.linux-i686.tar.gz for the archive distribution. +names similar to pyscard-1.6.7-1.i386.rpm for the rpm distribution, +or pyscard-1.6.7.linux-i686.tar.gz for the archive distribution. 2. untar the binary distribution @@ -115,8 +115,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar the source distribution @@ -130,7 +130,7 @@ Installation on Max OS X Tiger: -------------------------------- -The Mac OS X Tiger support is experimental on pyscard 1.6.6. It was developed +The Mac OS X Tiger support is experimental on pyscard 1.6.7. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -140,14 +140,14 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.6-py-2.3-macosx10.4.mpkg or pyscard-1.6.6-py-2.5-macosx10.4.mpkg. +pyscard-1.6.7-py-2.3-macosx10.4.mpkg or pyscard-1.6.7-py-2.5-macosx10.4.mpkg. 2. Open the package and proceed with installation. -Python 2.3 is pre-installed, so install pyscard-1.6.6-py-2.3-macosx10.4.mpkg if +Python 2.3 is pre-installed, so install pyscard-1.6.7-py-2.3-macosx10.4.mpkg if you did not install another release of python. -Install pyscard-1.6.6-py-2.5-macosx10.4.mpkg if you installed python 2.5. +Install pyscard-1.6.7-py-2.5-macosx10.4.mpkg if you installed python 2.5. Installing on Mac OS X Tiger from the source distribution ---------------------------------------------------------- @@ -157,8 +157,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar or unzip the source distribution @@ -173,7 +173,7 @@ Installation on Max OS X Leopard: --------------------------------- -The Mac OS X Leopard support is experimental on pyscard 1.6.6. It was developed +The Mac OS X Leopard support is experimental on pyscard 1.6.7. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -183,7 +183,7 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.6-py-2.5-macosx10.5.mpkg. +pyscard-1.6.7-py-2.5-macosx10.5.mpkg. 2. Open the package and proceed with installation. @@ -195,8 +195,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar or unzip the source distribution @@ -235,9 +235,9 @@ setup.py build_ext bdist_wininst This will build the msi installer and self-executable installer in the dist -directory, with names similar to pyscard-1.6.6.win32-py2.5.msi and -pyscard-1.6.6.win32-py2.5.exe for python 2.5, and -pyscard-1.6.6.win32-py2.4.msi and pyscard-1.6.6.win32-py2.4.exe for +directory, with names similar to pyscard-1.6.7.win32-py2.5.msi and +pyscard-1.6.7.win32-py2.5.exe for python 2.5, and +pyscard-1.6.7.win32-py2.4.msi and pyscard-1.6.7.win32-py2.4.exe for python 2.4. Building a binary distribution for linux @@ -252,7 +252,7 @@ /usr/bin/python setup.py build_ext bdist -This will build a package similar to pyscard-1.6.6.linux-i686.tar.gz +This will build a package similar to pyscard-1.6.7.linux-i686.tar.gz containing a tree Building a rpm distribution for linux @@ -274,7 +274,7 @@ echo "%_unpackaged_files_terminate_build 0" >> /etc/rpm/macros This will build in the dist directory a binary distribution with a name -similar to pyscard-1.6.6-1.i386.rpm. +similar to pyscard-1.6.7-1.i386.rpm. Building a binary distribution for Mac OS X Tiger ------------------------------------------------- @@ -291,7 +291,7 @@ python setup.py build_ext /System/Library/Frameworks/Python.Framework/Versions/2.3/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.3-macosx10.4.mpkg. +This will build package pyscard-1.6.7-py-2.3-macosx10.4.mpkg. If you are using python 2.5, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -299,7 +299,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. +This will build package pyscard-1.6.7-py-2.6-macosx10.4.mpkg. Building a binary distribution for Mac OS X Leopard @@ -319,7 +319,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/Extras/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.5-macosx10.5.mpkg. +This will build package pyscard-1.6.7-py-2.5-macosx10.5.mpkg. ------------------------------------------------------------------------------- Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/setup.py 2008-08-01 13:54:24 UTC (rev 204) @@ -138,7 +138,7 @@ build_ext.swig_sources = swig_sources kw = {'name':"pyscard", - 'version':"1.6.6", + 'version':"1.6.7", 'description':"Smartcard module for Python.", 'author':"Jean-Daniel Aussel", 'author_email':"aus...@ge...", @@ -184,7 +184,7 @@ if hasattr(core, 'setup_keywords'): if 'classifiers' in core.setup_keywords: kw['classifiers'] = [ - 'Development Status :: 1.6.6 - Release', + 'Development Status :: 1.6.7 - Release', 'License :: GNU LESSER GENERAL PUBLIC LICENSE', 'Intended Audience :: Developers', 'Operating System :: Unix', Modified: trunk/pyscard/src/smartcard/ACKS =================================================================== --- trunk/pyscard/src/smartcard/ACKS 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/ACKS 2008-08-01 13:54:24 UTC (rev 204) @@ -9,7 +9,9 @@ Jarle Bauck Hamar Antonio Aranda +Frank Aune Michel Beziat +Mattias Br\xE4ndstr\xF6m Luc Duche Nodir Gulyamov Yong David Huang Modified: trunk/pyscard/src/smartcard/ChangeLog =================================================================== --- trunk/pyscard/src/smartcard/ChangeLog 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/ChangeLog 2008-08-01 13:54:24 UTC (rev 204) @@ -1,3 +1,8 @@ +1.6.7 +===== + * better thread support and clean-up in ReaderMonitoringThread (Frank Aune) + * fixed issue on Mac OS X Leopard with dlsym loading of bad SCardControl function (Mattias Br\xE4ndstr\xF6m) + 1.6.6 ===== * added support for Mac OS X Leopard Modified: trunk/pyscard/src/smartcard/README =================================================================== --- trunk/pyscard/src/smartcard/README 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/README 2008-08-01 13:54:24 UTC (rev 204) @@ -23,7 +23,7 @@ Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ------------------------------------------------------------------------------- -Last update : pyscard 1.6.6 (February 2008) +Last update : pyscard 1.6.7 (August 2008) ------------------------------------------------------------------------------- pyscard is a python module adding smart cards support to python. @@ -61,7 +61,7 @@ The binary msi installer and self-executable installer are packaged for a specific version of python, and have name similar to -pyscard-1.6.6.win32-py2.5.msi and pyscard-1.6.6.win32-py2.5.exe for +pyscard-1.6.7.win32-py2.5.msi and pyscard-1.6.7.win32-py2.5.exe for python 2.5. @@ -77,8 +77,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip for windows, -and pyscard-1.6.6.tar.gz for linux. +The source distribution is available as pyscard-1.6.7.zip for windows, +and pyscard-1.6.7.tar.gz for linux. 3. unzip the source distribution, open a console and type the following: @@ -99,8 +99,8 @@ 1. download the binary distribution The binary distribution is either an archive file or a rpm file, with -names similar to pyscard-1.6.6-1.i386.rpm for the rpm distribution, -or pyscard-1.6.6.linux-i686.tar.gz for the archive distribution. +names similar to pyscard-1.6.7-1.i386.rpm for the rpm distribution, +or pyscard-1.6.7.linux-i686.tar.gz for the archive distribution. 2. untar the binary distribution @@ -115,8 +115,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar the source distribution @@ -130,7 +130,7 @@ Installation on Max OS X Tiger: -------------------------------- -The Mac OS X Tiger support is experimental on pyscard 1.6.6. It was developed +The Mac OS X Tiger support is experimental on pyscard 1.6.7. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -140,14 +140,14 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.6-py-2.3-macosx10.4.mpkg or pyscard-1.6.6-py-2.5-macosx10.4.mpkg. +pyscard-1.6.7-py-2.3-macosx10.4.mpkg or pyscard-1.6.7-py-2.5-macosx10.4.mpkg. 2. Open the package and proceed with installation. -Python 2.3 is pre-installed, so install pyscard-1.6.6-py-2.3-macosx10.4.mpkg if +Python 2.3 is pre-installed, so install pyscard-1.6.7-py-2.3-macosx10.4.mpkg if you did not install another release of python. -Install pyscard-1.6.6-py-2.5-macosx10.4.mpkg if you installed python 2.5. +Install pyscard-1.6.7-py-2.5-macosx10.4.mpkg if you installed python 2.5. Installing on Mac OS X Tiger from the source distribution ---------------------------------------------------------- @@ -157,8 +157,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar or unzip the source distribution @@ -173,7 +173,7 @@ Installation on Max OS X Leopard: --------------------------------- -The Mac OS X Leopard support is experimental on pyscard 1.6.6. It was developed +The Mac OS X Leopard support is experimental on pyscard 1.6.7. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -183,7 +183,7 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.6-py-2.5-macosx10.5.mpkg. +pyscard-1.6.7-py-2.5-macosx10.5.mpkg. 2. Open the package and proceed with installation. @@ -195,8 +195,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.6.zip or -pyscard-1.6.6.tar.gz. +The source distribution is available as pyscard-1.6.7.zip or +pyscard-1.6.7.tar.gz. 3. untar or unzip the source distribution @@ -235,9 +235,9 @@ setup.py build_ext bdist_wininst This will build the msi installer and self-executable installer in the dist -directory, with names similar to pyscard-1.6.6.win32-py2.5.msi and -pyscard-1.6.6.win32-py2.5.exe for python 2.5, and -pyscard-1.6.6.win32-py2.4.msi and pyscard-1.6.6.win32-py2.4.exe for +directory, with names similar to pyscard-1.6.7.win32-py2.5.msi and +pyscard-1.6.7.win32-py2.5.exe for python 2.5, and +pyscard-1.6.7.win32-py2.4.msi and pyscard-1.6.7.win32-py2.4.exe for python 2.4. Building a binary distribution for linux @@ -252,7 +252,7 @@ /usr/bin/python setup.py build_ext bdist -This will build a package similar to pyscard-1.6.6.linux-i686.tar.gz +This will build a package similar to pyscard-1.6.7.linux-i686.tar.gz containing a tree Building a rpm distribution for linux @@ -274,7 +274,7 @@ echo "%_unpackaged_files_terminate_build 0" >> /etc/rpm/macros This will build in the dist directory a binary distribution with a name -similar to pyscard-1.6.6-1.i386.rpm. +similar to pyscard-1.6.7-1.i386.rpm. Building a binary distribution for Mac OS X Tiger ------------------------------------------------- @@ -291,7 +291,7 @@ python setup.py build_ext /System/Library/Frameworks/Python.Framework/Versions/2.3/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.3-macosx10.4.mpkg. +This will build package pyscard-1.6.7-py-2.3-macosx10.4.mpkg. If you are using python 2.5, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -299,7 +299,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. +This will build package pyscard-1.6.7-py-2.6-macosx10.4.mpkg. Building a binary distribution for Mac OS X Leopard @@ -319,7 +319,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/Extras/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.6-py-2.5-macosx10.5.mpkg. +This will build package pyscard-1.6.7-py-2.5-macosx10.5.mpkg. ------------------------------------------------------------------------------- Modified: trunk/pyscard/src/smartcard/__init__.py =================================================================== --- trunk/pyscard/src/smartcard/__init__.py 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/__init__.py 2008-08-01 13:54:24 UTC (rev 204) @@ -4,8 +4,8 @@ access smartcards and readers. __author__ = "gemalto http://www.gemalto.com" -__date__ = "January 2008" -__version__ = "1.6.6" +__date__ = "August 2008" +__version__ = "1.6.7" Copyright 2001-2008 gemalto Author: Jean-Daniel Aussel, mailto:jea...@ge... Modified: trunk/pyscard/src/smartcard/doc/framework-samples.html =================================================================== --- trunk/pyscard/src/smartcard/doc/framework-samples.html 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/doc/framework-samples.html 2008-08-01 13:54:24 UTC (rev 204) @@ -9,7 +9,7 @@ <a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a> <hr> <H1 align="center"> </h1> -Last update : pyscard 1.6.6 (February 2008) +Last update : pyscard 1.6.7 (August 2008) <p> <a href="pyscard-usersguide.html">pyscard</a> is a python module adding smart cards support to <a href="http://www.python.org">python</a>. <p>It consists of <a href="html/smartcard.scard.scard-module.html">smartcard.scard</a>, Modified: trunk/pyscard/src/smartcard/doc/index.html =================================================================== --- trunk/pyscard/src/smartcard/doc/index.html 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/doc/index.html 2008-08-01 13:54:24 UTC (rev 204) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> <H1 align="center">pyscard<a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a></h1> <hr> -Last update : pyscard 1.6.6 (February 2008) +Last update : pyscard 1.6.7 (August 2008) <p> <a href="pyscard-usersguide.html">pyscard - python smart card library</a> is a python module adding smart cards support to <a href="http://www.python.org">python.</a> Modified: trunk/pyscard/src/smartcard/doc/scard-samples.html =================================================================== --- trunk/pyscard/src/smartcard/doc/scard-samples.html 2008-08-01 13:53:08 UTC (rev 203) +++ trunk/pyscard/src/smartcard/doc/scard-samples.html 2008-08-01 13:54:24 UTC (rev 204) @@ -9,7 +9,7 @@ <a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a> <hr> <H1 align="center"> </h1> -Last update : pyscard 1.6.6 (February 2008) +Last update : pyscard 1.6.7 (August 2008) <p>Using the <a href="html/index.html">smartcard framework</a> is the preferred way to write python smart card application. You can however use the <a href="html/smartcard.scard.scard-module.html">smartcard.scard</a> library to write your python smart card application if you want to write your This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-08-01 13:52:59
|
Revision: 203 http://pyscard.svn.sourceforge.net/pyscard/?rev=203&view=rev Author: jdaussel Date: 2008-08-01 13:53:08 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Fixed issue with ScardControl renamed SCardControl132 on Mac OS X Leopard Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/gemalto.ver trunk/pyscard/src/smartcard/scard/winscarddll.c Modified: trunk/pyscard/src/smartcard/scard/gemalto.ver =================================================================== --- trunk/pyscard/src/smartcard/scard/gemalto.ver 2008-04-10 11:31:50 UTC (rev 202) +++ trunk/pyscard/src/smartcard/scard/gemalto.ver 2008-08-01 13:53:08 UTC (rev 203) @@ -24,7 +24,7 @@ #endif #ifndef VER_PRODUCTVERSION_STR -#define VER_PRODUCTVERSION_STR "1.6.6" +#define VER_PRODUCTVERSION_STR "1.6.7" #endif #ifndef VER_FILEFLAGSMASK Modified: trunk/pyscard/src/smartcard/scard/winscarddll.c =================================================================== --- trunk/pyscard/src/smartcard/scard/winscarddll.c 2008-04-10 11:31:50 UTC (rev 202) +++ trunk/pyscard/src/smartcard/scard/winscarddll.c 2008-08-01 13:53:08 UTC (rev 203) @@ -561,8 +561,17 @@ GETPROCADDRESS( SCARDRELEASECONTEXT , SCardReleaseContext , SCardReleaseContext ); GETPROCADDRESS( SCARDSTATUSA , SCardStatusA , SCardStatus ); GETPROCADDRESS( SCARDTRANSMIT , SCardTransmit , SCardTransmit ); - GETPROCADDRESS( SCARDCONTROL , SCardControl , SCardControl ); + #ifndef __APPLE__ + GETPROCADDRESS( SCARDCONTROL, SCardControl, SCardControl ); + #else // !__APPLE__ + #ifdef __TIGER__ + GETPROCADDRESS( SCARDCONTROL, SCardControl, SCardControl ); + #else // ! __TIGER__ + GETPROCADDRESS( SCARDCONTROL, SCardControl, SCardControl132 ); + #endif // __TIGER__ + #endif // __APPLE__ + #ifndef __TIGER__ SILENTGETPROCADDRESS( SCARDISVALIDCONTEXT , SCardIsValidContext , SCardIsValidContext ); GETPROCADDRESS( SCARDGETATTRIB , SCardGetAttrib , SCardGetAttrib ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-04-10 11:31:47
|
Revision: 202 http://pyscard.svn.sourceforge.net/pyscard/?rev=202&view=rev Author: jdaussel Date: 2008-04-10 04:31:50 -0700 (Thu, 10 Apr 2008) Log Message: ----------- Update to support shared state pattern; fixed deadlock issue between addObserver and notifyObserver in run(); added startOnDemand property Modified Paths: -------------- trunk/pyscard/src/smartcard/ReaderMonitoring.py Modified: trunk/pyscard/src/smartcard/ReaderMonitoring.py =================================================================== --- trunk/pyscard/src/smartcard/ReaderMonitoring.py 2008-02-28 15:17:46 UTC (rev 201) +++ trunk/pyscard/src/smartcard/ReaderMonitoring.py 2008-04-10 11:31:50 UTC (rev 202) @@ -1,242 +1,210 @@ -"""Smart card reader monitoring classes. - -ReaderObserver is a base class for objects that are to be notified -upon smartcard reader insertion/removal. - -ReaderMonitor is a singleton object notifying registered ReaderObservers -upon reader insertion/removal. - -__author__ = "http://www.gemalto.com" - -Copyright 2001-2008 gemalto -Author: Jean-Daniel Aussel, mailto:jea...@ge... - -This file is part of pyscard. - -pyscard is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -pyscard is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with pyscard; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -""" - -from sys import exc_info -from threading import Thread, Event -from time import sleep - -from smartcard.System import readers -from smartcard.Exceptions import ListReadersException -from smartcard.Observer import Observer -from smartcard.Observer import Observable - -from smartcard.Synchronization import * - -_START_ON_DEMAND_=False - -# ReaderObserver interface -class ReaderObserver(Observer): - """ - ReaderObserver is a base abstract class for objects that are to be notified - upon smartcard reader insertion/removal. - """ - def __init__(self): - pass - def update( self, observable, (addedreaders, removedreaders) ): - """Called upon reader insertion/removal. - - observable: - addedreaders: list of added readers causing notification - removedreaders: list of removed readers causing notification - """ - pass - -class ReaderMonitor: - """Class that monitors reader insertion/removal. - and notify observers - - note: a reader monitoring thread will be running - as long as the reader monitor has observers, or ReaderMonitor.stop() - is called. Do not forget to delete all your observer by - calling deleteObserver, or your program will run forever... - - Not that we use the singleton pattern from Thinking in Python - Bruce Eckel, http://mindview.net/Books/TIPython to make sure - there is only one ReaderMonitor. - """ - - class __ReaderMonitorSingleton( Observable ): - """The real reader monitor class. - - A single instance of this class is created - by the public ReaderMonitor class. - """ - def __init__(self): - Observable.__init__(self) - if _START_ON_DEMAND_: - self.rmthread=None - else: - self.rmthread = ReaderMonitoringThread( self ) - - def addObserver(self, observer): - """Add an observer. - - We only start the reader monitoring thread when - there are observers. - """ - Observable.addObserver( self, observer ) - if _START_ON_DEMAND_: - if self.countObservers()>0 and self.rmthread==None: - self.rmthread = ReaderMonitoringThread( self ) - else: - observer.update( self, (self.rmthread.readers, [] ) ) - - def deleteObserver(self, observer): - """Remove an observer. - - We stop the reader monitoring thread when there - are no more observers. - """ - Observable.deleteObserver( self, observer ) - if _START_ON_DEMAND_: - if self.countObservers()==0: - if self.rmthread!=None: - self.rmthread.stop() - self.rmthread=None - - def __str__( self ): - return 'ReaderMonitor' - - # the singleton - instance = None - - def __init__(self): - if not ReaderMonitor.instance: - ReaderMonitor.instance = ReaderMonitor.__ReaderMonitorSingleton() - - def __getattr__(self, name): - return getattr(self.instance, name) - -class ReaderMonitoringThread: - """Reader insertion thread. - This thread polls for pcsc reader insertion, since no - reader insertion event is available in pcsc. - """ - - class __ReaderMonitoringThreadSingleton( Thread ): - """The real reader monitoring thread class. - - A single instance of this class is created - by the public ReaderMonitoringThread class. - """ - def __init__(self, observable): - Thread.__init__(self) - self.observable=observable - self.stopEvent = Event() - self.stopEvent.clear() - self.readers = [] - self.setDaemon(True) - - # the actual monitoring thread - def run(self): - """Runs until stopEvent is notified, and notify - observers of all reader insertion/removal. - """ - while self.stopEvent.isSet()!=1: - try: - currentreaders = readers() - - addedreaders=[] - for reader in currentreaders: - if not self.readers.__contains__( reader ): - addedreaders.append( reader ) - - removedreaders=[] - for reader in self.readers: - if not currentreaders.__contains__( reader ): - removedreaders.append( reader ) - - if addedreaders!=[] or removedreaders!=[]: - self.readers=currentreaders - self.observable.setChanged() - self.observable.notifyObservers( (addedreaders, removedreaders) ) - - # when ReaderMonitoringThread.__del__() is invoked in response to shutdown, - # e.g., when execution of the program is done, other globals referenced - # by the __del__() method may already have been deleted. - # this causes ReaderMonitoringThread.run() to except with a TypeError - except TypeError: - pass - - except: - import sys - print sys.exc_info()[1] - print sys.exc_info()[2] - print sys.exc_info()[0] - - # don't poll too much - sleep(1) - - - # stop the thread by signaling stopEvent - def stop(self): - self.stopEvent.set() - - # the singleton - instance = None - - def __init__(self, observable): - if not ReaderMonitoringThread.instance: - ReaderMonitoringThread.instance = ReaderMonitoringThread.__ReaderMonitoringThreadSingleton( observable ) - ReaderMonitoringThread.instance.start() - - - def __getattr__(self, name): - return getattr(self.instance, name) - - def __del__(self): - if ReaderMonitoringThread.instance!=None: - ReaderMonitoringThread.instance.stop() - ReaderMonitoringThread.instance = None - - -if __name__ == "__main__": - from smartcard.ReaderMonitoring import ReaderMonitor - print 'insert or remove readers in the next 10 seconds' - - # a simple reader observer that prints added/removed readers - class printobserver( ReaderObserver ): - def __init__( self, obsindex ): - self.obsindex=obsindex - - def update( self, observable, (addedreaders, removedreaders) ): - print "%d - added: " % self.obsindex, addedreaders - print "%d - removed: " % self.obsindex, removedreaders - - class testthread( Thread ): - def __init__(self, obsindex ): - Thread.__init__(self) - self.readermonitor = ReaderMonitor() - self.obsindex = obsindex - self.observer=None - - def run(self): - # create and register observer - self.observer = printobserver( self.obsindex ) - self.readermonitor.addObserver(self.observer) - sleep(10) - self.readermonitor.deleteObserver(self.observer) - - t1 = testthread(1) - t2 = testthread(2) - t1.start() - t2.start() - - +"""Smart card reader monitoring classes. + +ReaderObserver is a base class for objects that are to be notified +upon smartcard reader insertion/removal. + +ReaderMonitor is a singleton object notifying registered ReaderObservers +upon reader insertion/removal. + +__author__ = "http://www.gemalto.com" + +Copyright 2001-2008 gemalto +Author: Jean-Daniel Aussel, mailto:jea...@ge... + +This file is part of pyscard. + +pyscard is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +pyscard is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with pyscard; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +""" + +from sys import exc_info +from threading import Thread, Event, enumerate +from time import sleep + +from smartcard.System import readers +from smartcard.Exceptions import ListReadersException +from smartcard.Observer import Observer +from smartcard.Observer import Observable + +# ReaderObserver interface +class ReaderObserver(Observer): + """ + ReaderObserver is a base abstract class for objects that are to be notified + upon smartcard reader insertion/removal. + """ + def __init__(self): + pass + def update( self, observable, (addedreaders, removedreaders) ): + """Called upon reader insertion/removal. + + observable: + addedreaders: list of added readers causing notification + removedreaders: list of removed readers causing notification + """ + pass + +class ReaderMonitor( Observable ): + """Class that monitors reader insertion/removal. + and notify observers + + note: a reader monitoring thread will be running + as long as the reader monitor has observers, or ReaderMonitor.stop() + is called. + + It implements the shared state design pattern, where objects + of the same type all share the same state, in our case essentially + the ReaderMonitoring Thread. + """ + + + __shared_state = {} + + def __init__( self, startOnDemand=True ): + self.__dict__ = self.__shared_state + Observable.__init__( self ) + self.startOnDemand = startOnDemand + if self.startOnDemand: + self.rmthread=None + else: + self.rmthread = ReaderMonitoringThread( self ) + self.rmthread.start() + + def addObserver( self, observer ): + """Add an observer.""" + Observable.addObserver( self, observer ) + + # If self.startOnDemand is True, the reader monitoring + # thread only runs when there are observers. + if self.startOnDemand: + if 0<self.countObservers(): + if not self.rmthread: + self.rmthread = ReaderMonitoringThread( self ) + + # start reader monitoring thread in another thread to + # avoid a deadlock; addObserver and notifyObservers called + # in the ReaderMonitoringThread run() method are synchronized + import thread + thread.start_new_thread( self.rmthread.start, () ) + else: + observer.update( self, (self.rmthread.readers, []) ) + + def deleteObserver( self, observer ): + """Remove an observer.""" + Observable.deleteObserver( self, observer ) + # If self.startOnDemand is True, the reader monitoring + # thread is stopped when there are no more observers. + if self.startOnDemand: + if 0==self.countObservers(): + self.rmthread.stop() + del self.rmthread + self.rmthread = None + + def __str__(self): + return self.__class__.__name__ + +class ReaderMonitoringThread(Thread): + """Reader insertion thread. + This thread polls for pcsc reader insertion, since no + reader insertion event is available in pcsc. + """ + + + __shared_state = {} + def __init__( self, observable ): + self.__dict__ = self.__shared_state + Thread.__init__( self ) + self.observable = observable + self.stopEvent = Event() + self.stopEvent.clear() + self.readers = [] + self.setDaemon( True ) + self.setName( 'smartcard.ReaderMonitoringThread' ) + + def run(self): + """Runs until stopEvent is notified, and notify + observers of all reader insertion/removal. + """ + while not self.stopEvent.isSet(): + try: + # no need to monitor if no observers + if 0<self.observable.countObservers(): + currentReaders = readers() + addedReaders = [] + removedReaders = [] + + if currentReaders != self.readers: + for reader in currentReaders: + if not reader in self.readers: + addedReaders.append(reader) + for reader in self.readers: + if not reader in currentReaders: + removedReaders.append(reader) + + if addedReaders or removedReaders: + # Notify observers + self.readers = currentReaders + self.observable.setChanged() + self.observable.notifyObservers((addedReaders, removedReaders)) + + # wait every second on stopEvent + self.stopEvent.wait(1) + + except Exception, e: + # Most likely raised during interpreter shutdown due + # to unclean exit which failed to remove all observers. + # To solve this, we set the stop event and pass the + # exception to let the thread finish gracefully. + self.stopEvent.set() + + def stop(self): + self.stopEvent.set() + self.join() + + + +if __name__ == "__main__": + from smartcard.ReaderMonitoring import ReaderMonitor + print 'insert or remove readers in the next 10 seconds' + + # a simple reader observer that prints added/removed readers + class printobserver( ReaderObserver ): + def __init__( self, obsindex ): + self.obsindex=obsindex + + def update( self, observable, (addedreaders, removedreaders) ): + print "%d - added: " % self.obsindex, addedreaders + print "%d - removed: " % self.obsindex, removedreaders + + class testthread( Thread ): + def __init__(self, obsindex ): + Thread.__init__(self) + self.readermonitor = ReaderMonitor() + self.obsindex = obsindex + self.observer=None + + def run(self): + # create and register observer + self.observer = printobserver( self.obsindex ) + self.readermonitor.addObserver(self.observer) + sleep(10) + self.readermonitor.deleteObserver(self.observer) + + t1 = testthread(1) + t2 = testthread(2) + t1.start() + t2.start() + t1.join() + t2.join() + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lu...@us...> - 2008-02-28 15:17:42
|
Revision: 201 http://pyscard.svn.sourceforge.net/pyscard/?rev=201&view=rev Author: ludov Date: 2008-02-28 07:17:46 -0800 (Thu, 28 Feb 2008) Log Message: ----------- release 1.6.6 Modified Paths: -------------- trunk/pyscard/src/debian/changelog Modified: trunk/pyscard/src/debian/changelog =================================================================== --- trunk/pyscard/src/debian/changelog 2008-02-26 16:51:51 UTC (rev 200) +++ trunk/pyscard/src/debian/changelog 2008-02-28 15:17:46 UTC (rev 201) @@ -1,3 +1,9 @@ +pyscard (1.6.6-1) unstable; urgency=low + + * new upstream version + + -- Ludovic Rousseau <rou...@de...> Thu, 28 Feb 2008 16:12:25 +0100 + pyscard (1.6.4-1) unstable; urgency=low * new upstream version This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 17:06:02
|
Revision: 200 http://pyscard.svn.sourceforge.net/pyscard/?rev=200&view=rev Author: jdaussel Date: 2008-02-26 08:51:51 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Tagging the 1.6.6 release of pyscard. Added Paths: ----------- tags/release-1.6.6/ Copied: tags/release-1.6.6 (from rev 199, trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 17:06:02
|
Revision: 199 http://pyscard.svn.sourceforge.net/pyscard/?rev=199&view=rev Author: jdaussel Date: 2008-02-26 08:51:39 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Updated release number to 1.6.6 Modified Paths: -------------- trunk/pyscard/sourceforge/tag-it.bat Modified: trunk/pyscard/sourceforge/tag-it.bat =================================================================== --- trunk/pyscard/sourceforge/tag-it.bat 2008-02-26 14:34:36 UTC (rev 198) +++ trunk/pyscard/sourceforge/tag-it.bat 2008-02-26 16:51:39 UTC (rev 199) @@ -1,2 +1,2 @@ rem just change the release number for creating a new tag -svn copy https://pyscard.svn.sourceforge.net/svnroot/pyscard/trunk https://pyscard.svn.sourceforge.net/svnroot/pyscard/tags/release-1.6.4 -m "Tagging the 1.6.4 release of pyscard." +svn copy https://pyscard.svn.sourceforge.net/svnroot/pyscard/trunk https://pyscard.svn.sourceforge.net/svnroot/pyscard/tags/release-1.6.6 -m "Tagging the 1.6.6 release of pyscard." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 14:34:31
|
Revision: 198 http://pyscard.svn.sourceforge.net/pyscard/?rev=198&view=rev Author: jdaussel Date: 2008-02-26 06:34:36 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Fixed link flags for Mac OS X Tiger Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2008-02-26 13:45:22 UTC (rev 197) +++ trunk/pyscard/src/setup.py 2008-02-26 14:34:36 UTC (rev 198) @@ -61,7 +61,7 @@ platform_libraries=[] platform_include_dirs=['PCSC'] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] - platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] + platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb', '-framework', 'PCSC' ] # # Mac OS X Leopard has python 2.5 preinstalled This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 13:45:16
|
Revision: 197 http://pyscard.svn.sourceforge.net/pyscard/?rev=197&view=rev Author: jdaussel Date: 2008-02-26 05:45:22 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Added instruction on installation and build for Mac OS X Leopard Modified Paths: -------------- trunk/pyscard/src/README trunk/pyscard/src/smartcard/README Modified: trunk/pyscard/src/README =================================================================== --- trunk/pyscard/src/README 2008-02-26 13:20:33 UTC (rev 196) +++ trunk/pyscard/src/README 2008-02-26 13:45:22 UTC (rev 197) @@ -4,7 +4,7 @@ http://pyscard.sourceforge.net/ ------------------------------------------------------------------------------- -Copyright 2001-2007 gemalto +Copyright 2001-2008 gemalto Author: Jean-Daniel Aussel, mailto:jea...@ge... This file is part of pyscard. @@ -153,7 +153,7 @@ ---------------------------------------------------------- 1. you will need swig 1.3.31 (http://www.swig.org); gcc and pcsc-lite are available -out of the box on Max OS X darwin +out of the box on Max OS X Tiger 2. download the source distribution @@ -170,6 +170,44 @@ /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib/site-packages/smartcard +Installation on Max OS X Leopard: +--------------------------------- + +The Mac OS X Leopard support is experimental on pyscard 1.6.6. It was developed +and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a +ppc MacBook. + +Installing on Mac OS X Leopard from the binary distribution: +---------------------------------------------------- + +1. download the binary distribution + +The binary distribution is an archive file, with a name similar to +pyscard-1.6.6-py-2.5-macosx10.5.mpkg. + +2. Open the package and proceed with installation. + +Installing on Mac OS X Leopard from the source distribution +------------------------------------------------------------ + +1. you will need swig 1.3.31 (http://www.swig.org); gcc and pcsc-lite are available +out of the box on Max OS X Leopard + +2. download the source distribution + +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. + +3. untar or unzip the source distribution + +4. from a terminal, type the following: + +sudo python setup.py build_ext install + +This will build pyscard and install it in the site-packages directory of your python distribution, e.g. +/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.3/lib/site-packages/smartcard + + ------------------------------------------------------------------------------- Developer documentation, unit tests and examples ------------------------------------------------------------------------------- @@ -246,7 +284,7 @@ and bdist_mpkg 0.4.3 (http://cheeseshop.python.org/pypi/bdist_mpkg/). -If you are using the pre-installed python 2.3 distributuion, in the root directory +If you are using the pre-installed python 2.3 distribution, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -264,6 +302,26 @@ This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. +Building a binary distribution for Mac OS X Leopard +--------------------------------------------------- + +To build a binary distribution from the source distribution, you will need +swig 1.3.31 (same requirements as for installing from the source distribution) +and bdist_mpkg 0.4.3 (http://cheeseshop.python.org/pypi/bdist_mpkg/). + +Install bdist_mpkg by executing the bdist_mpkg setup.py script with build and +install as arguments, i.e. from the root directory of the bdist_mpkg +source distribution enter: python setup.py build install. + +From the root directory of the pyscard source distribution, +i.e. in the src directory, execute the following commands in a terminal: + +python setup.py build_ext +/Library/Frameworks/Python.Framework/Versions/2.5/Extras/bin/bdist_mpkg setup.py + +This will build package pyscard-1.6.6-py-2.5-macosx10.5.mpkg. + + ------------------------------------------------------------------------------- Issue Tracking ------------------------------------------------------------------------------- Modified: trunk/pyscard/src/smartcard/README =================================================================== --- trunk/pyscard/src/smartcard/README 2008-02-26 13:20:33 UTC (rev 196) +++ trunk/pyscard/src/smartcard/README 2008-02-26 13:45:22 UTC (rev 197) @@ -4,7 +4,7 @@ http://pyscard.sourceforge.net/ ------------------------------------------------------------------------------- -Copyright 2001-2007 gemalto +Copyright 2001-2008 gemalto Author: Jean-Daniel Aussel, mailto:jea...@ge... This file is part of pyscard. @@ -153,7 +153,7 @@ ---------------------------------------------------------- 1. you will need swig 1.3.31 (http://www.swig.org); gcc and pcsc-lite are available -out of the box on Max OS X darwin +out of the box on Max OS X Tiger 2. download the source distribution @@ -170,6 +170,44 @@ /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib/site-packages/smartcard +Installation on Max OS X Leopard: +--------------------------------- + +The Mac OS X Leopard support is experimental on pyscard 1.6.6. It was developed +and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a +ppc MacBook. + +Installing on Mac OS X Leopard from the binary distribution: +---------------------------------------------------- + +1. download the binary distribution + +The binary distribution is an archive file, with a name similar to +pyscard-1.6.6-py-2.5-macosx10.5.mpkg. + +2. Open the package and proceed with installation. + +Installing on Mac OS X Leopard from the source distribution +------------------------------------------------------------ + +1. you will need swig 1.3.31 (http://www.swig.org); gcc and pcsc-lite are available +out of the box on Max OS X Leopard + +2. download the source distribution + +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. + +3. untar or unzip the source distribution + +4. from a terminal, type the following: + +sudo python setup.py build_ext install + +This will build pyscard and install it in the site-packages directory of your python distribution, e.g. +/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.3/lib/site-packages/smartcard + + ------------------------------------------------------------------------------- Developer documentation, unit tests and examples ------------------------------------------------------------------------------- @@ -246,7 +284,7 @@ and bdist_mpkg 0.4.3 (http://cheeseshop.python.org/pypi/bdist_mpkg/). -If you are using the pre-installed python 2.3 distributuion, in the root directory +If you are using the pre-installed python 2.3 distribution, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -264,6 +302,26 @@ This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. +Building a binary distribution for Mac OS X Leopard +--------------------------------------------------- + +To build a binary distribution from the source distribution, you will need +swig 1.3.31 (same requirements as for installing from the source distribution) +and bdist_mpkg 0.4.3 (http://cheeseshop.python.org/pypi/bdist_mpkg/). + +Install bdist_mpkg by executing the bdist_mpkg setup.py script with build and +install as arguments, i.e. from the root directory of the bdist_mpkg +source distribution enter: python setup.py build install. + +From the root directory of the pyscard source distribution, +i.e. in the src directory, execute the following commands in a terminal: + +python setup.py build_ext +/Library/Frameworks/Python.Framework/Versions/2.5/Extras/bin/bdist_mpkg setup.py + +This will build package pyscard-1.6.6-py-2.5-macosx10.5.mpkg. + + ------------------------------------------------------------------------------- Issue Tracking ------------------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 13:20:27
|
Revision: 196 http://pyscard.svn.sourceforge.net/pyscard/?rev=196&view=rev Author: jdaussel Date: 2008-02-26 05:20:33 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Updated release number to 1.6.6 and date to Feb 2008 Modified Paths: -------------- trunk/pyscard/src/PKG-INFO trunk/pyscard/src/README trunk/pyscard/src/setup.py trunk/pyscard/src/smartcard/ChangeLog trunk/pyscard/src/smartcard/README trunk/pyscard/src/smartcard/TODO trunk/pyscard/src/smartcard/__init__.py trunk/pyscard/src/smartcard/doc/framework-samples.html trunk/pyscard/src/smartcard/doc/index.html trunk/pyscard/src/smartcard/doc/scard-samples.html trunk/pyscard/src/smartcard/scard/gemalto.ver trunk/pyscard/tools/vslick/pyscard.macosX.darwin.vpj Modified: trunk/pyscard/src/PKG-INFO =================================================================== --- trunk/pyscard/src/PKG-INFO 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/PKG-INFO 2008-02-26 13:20:33 UTC (rev 196) @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: pyscard -Version: 1.6.5 +Version: 1.6.6 Summary: Smartcard module for Python. Home-page: http://pyscard.sourceforge.net/ Author: Jean-Daniel Aussel @@ -10,7 +10,7 @@ Description: Smartcard package for Python Platform: linux Platform: win32 -Classifier: Development Status :: 1.6.5 - Release +Classifier: Development Status :: 1.6.6 - Release Classifier: License :: GNU LESSER GENERAL PUBLIC LICENSE Classifier: Intended Audience :: Developers Classifier: Operating System :: Unix Modified: trunk/pyscard/src/README =================================================================== --- trunk/pyscard/src/README 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/README 2008-02-26 13:20:33 UTC (rev 196) @@ -23,7 +23,7 @@ Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ------------------------------------------------------------------------------- -Last update : pyscard 1.6.5 (January 2008) +Last update : pyscard 1.6.6 (February 2008) ------------------------------------------------------------------------------- pyscard is a python module adding smart cards support to python. @@ -61,7 +61,7 @@ The binary msi installer and self-executable installer are packaged for a specific version of python, and have name similar to -pyscard-1.6.5.win32-py2.5.msi and pyscard-1.6.5.win32-py2.5.exe for +pyscard-1.6.6.win32-py2.5.msi and pyscard-1.6.6.win32-py2.5.exe for python 2.5. @@ -77,8 +77,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip for windows, -and pyscard-1.6.5.tar.gz for linux. +The source distribution is available as pyscard-1.6.6.zip for windows, +and pyscard-1.6.6.tar.gz for linux. 3. unzip the source distribution, open a console and type the following: @@ -99,8 +99,8 @@ 1. download the binary distribution The binary distribution is either an archive file or a rpm file, with -names similar to pyscard-1.6.5-1.i386.rpm for the rpm distribution, -or pyscard-1.6.5.linux-i686.tar.gz for the archive distribution. +names similar to pyscard-1.6.6-1.i386.rpm for the rpm distribution, +or pyscard-1.6.6.linux-i686.tar.gz for the archive distribution. 2. untar the binary distribution @@ -115,8 +115,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip or -pyscard-1.6.5.tar.gz. +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. 3. untar the source distribution @@ -130,7 +130,7 @@ Installation on Max OS X Tiger: -------------------------------- -The Mac OS X Tiger support is experimental on pyscard 1.6.5. It was developed +The Mac OS X Tiger support is experimental on pyscard 1.6.6. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -140,14 +140,14 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.5-py-2.3-macosx10.4.mpkg or pyscard-1.6.5-py-2.5-macosx10.4.mpkg. +pyscard-1.6.6-py-2.3-macosx10.4.mpkg or pyscard-1.6.6-py-2.5-macosx10.4.mpkg. 2. Open the package and proceed with installation. -Python 2.3 is pre-installed, so install pyscard-1.6.5-py-2.3-macosx10.4.mpkg if +Python 2.3 is pre-installed, so install pyscard-1.6.6-py-2.3-macosx10.4.mpkg if you did not install another release of python. -Install pyscard-1.6.5-py-2.5-macosx10.4.mpkg if you installed python 2.5. +Install pyscard-1.6.6-py-2.5-macosx10.4.mpkg if you installed python 2.5. Installing on Mac OS X Tiger from the source distribution ---------------------------------------------------------- @@ -157,8 +157,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip or -pyscard-1.6.5.tar.gz. +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. 3. untar or unzip the source distribution @@ -197,9 +197,9 @@ setup.py build_ext bdist_wininst This will build the msi installer and self-executable installer in the dist -directory, with names similar to pyscard-1.6.5.win32-py2.5.msi and -pyscard-1.6.5.win32-py2.5.exe for python 2.5, and -pyscard-1.6.5.win32-py2.4.msi and pyscard-1.6.5.win32-py2.4.exe for +directory, with names similar to pyscard-1.6.6.win32-py2.5.msi and +pyscard-1.6.6.win32-py2.5.exe for python 2.5, and +pyscard-1.6.6.win32-py2.4.msi and pyscard-1.6.6.win32-py2.4.exe for python 2.4. Building a binary distribution for linux @@ -214,7 +214,7 @@ /usr/bin/python setup.py build_ext bdist -This will build a package similar to pyscard-1.6.5.linux-i686.tar.gz +This will build a package similar to pyscard-1.6.6.linux-i686.tar.gz containing a tree Building a rpm distribution for linux @@ -236,7 +236,7 @@ echo "%_unpackaged_files_terminate_build 0" >> /etc/rpm/macros This will build in the dist directory a binary distribution with a name -similar to pyscard-1.6.5-1.i386.rpm. +similar to pyscard-1.6.6-1.i386.rpm. Building a binary distribution for Mac OS X Tiger ------------------------------------------------- @@ -253,7 +253,7 @@ python setup.py build_ext /System/Library/Frameworks/Python.Framework/Versions/2.3/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.5-py-2.3-macosx10.4.mpkg. +This will build package pyscard-1.6.6-py-2.3-macosx10.4.mpkg. If you are using python 2.5, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -261,7 +261,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.5-py-2.6-macosx10.4.mpkg. +This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. ------------------------------------------------------------------------------- Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/setup.py 2008-02-26 13:20:33 UTC (rev 196) @@ -138,7 +138,7 @@ build_ext.swig_sources = swig_sources kw = {'name':"pyscard", - 'version':"1.6.5", + 'version':"1.6.6", 'description':"Smartcard module for Python.", 'author':"Jean-Daniel Aussel", 'author_email':"aus...@ge...", @@ -184,7 +184,7 @@ if hasattr(core, 'setup_keywords'): if 'classifiers' in core.setup_keywords: kw['classifiers'] = [ - 'Development Status :: 1.6.5 - Release', + 'Development Status :: 1.6.6 - Release', 'License :: GNU LESSER GENERAL PUBLIC LICENSE', 'Intended Audience :: Developers', 'Operating System :: Unix', Modified: trunk/pyscard/src/smartcard/ChangeLog =================================================================== --- trunk/pyscard/src/smartcard/ChangeLog 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/ChangeLog 2008-02-26 13:20:33 UTC (rev 196) @@ -1,3 +1,7 @@ +1.6.6 +===== + * added support for Mac OS X Leopard + 1.6.5 ===== * added sample_MonitorCardsAndTransmit.py sample to illustrate how to transmit apdu to a card notified Modified: trunk/pyscard/src/smartcard/README =================================================================== --- trunk/pyscard/src/smartcard/README 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/README 2008-02-26 13:20:33 UTC (rev 196) @@ -23,7 +23,7 @@ Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ------------------------------------------------------------------------------- -Last update : pyscard 1.6.5 (January 2008) +Last update : pyscard 1.6.6 (February 2008) ------------------------------------------------------------------------------- pyscard is a python module adding smart cards support to python. @@ -61,7 +61,7 @@ The binary msi installer and self-executable installer are packaged for a specific version of python, and have name similar to -pyscard-1.6.5.win32-py2.5.msi and pyscard-1.6.5.win32-py2.5.exe for +pyscard-1.6.6.win32-py2.5.msi and pyscard-1.6.6.win32-py2.5.exe for python 2.5. @@ -77,8 +77,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip for windows, -and pyscard-1.6.5.tar.gz for linux. +The source distribution is available as pyscard-1.6.6.zip for windows, +and pyscard-1.6.6.tar.gz for linux. 3. unzip the source distribution, open a console and type the following: @@ -99,8 +99,8 @@ 1. download the binary distribution The binary distribution is either an archive file or a rpm file, with -names similar to pyscard-1.6.5-1.i386.rpm for the rpm distribution, -or pyscard-1.6.5.linux-i686.tar.gz for the archive distribution. +names similar to pyscard-1.6.6-1.i386.rpm for the rpm distribution, +or pyscard-1.6.6.linux-i686.tar.gz for the archive distribution. 2. untar the binary distribution @@ -115,8 +115,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip or -pyscard-1.6.5.tar.gz. +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. 3. untar the source distribution @@ -130,7 +130,7 @@ Installation on Max OS X Tiger: -------------------------------- -The Mac OS X Tiger support is experimental on pyscard 1.6.5. It was developed +The Mac OS X Tiger support is experimental on pyscard 1.6.6. It was developed and tested on a i386 MacBook Pro. Please drop me a mail if you succeed on a ppc MacBook. @@ -140,14 +140,14 @@ 1. download the binary distribution The binary distribution is an archive file, with a name similar to -pyscard-1.6.5-py-2.3-macosx10.4.mpkg or pyscard-1.6.5-py-2.5-macosx10.4.mpkg. +pyscard-1.6.6-py-2.3-macosx10.4.mpkg or pyscard-1.6.6-py-2.5-macosx10.4.mpkg. 2. Open the package and proceed with installation. -Python 2.3 is pre-installed, so install pyscard-1.6.5-py-2.3-macosx10.4.mpkg if +Python 2.3 is pre-installed, so install pyscard-1.6.6-py-2.3-macosx10.4.mpkg if you did not install another release of python. -Install pyscard-1.6.5-py-2.5-macosx10.4.mpkg if you installed python 2.5. +Install pyscard-1.6.6-py-2.5-macosx10.4.mpkg if you installed python 2.5. Installing on Mac OS X Tiger from the source distribution ---------------------------------------------------------- @@ -157,8 +157,8 @@ 2. download the source distribution -The source distribution is available as pyscard-1.6.5.zip or -pyscard-1.6.5.tar.gz. +The source distribution is available as pyscard-1.6.6.zip or +pyscard-1.6.6.tar.gz. 3. untar or unzip the source distribution @@ -197,9 +197,9 @@ setup.py build_ext bdist_wininst This will build the msi installer and self-executable installer in the dist -directory, with names similar to pyscard-1.6.5.win32-py2.5.msi and -pyscard-1.6.5.win32-py2.5.exe for python 2.5, and -pyscard-1.6.5.win32-py2.4.msi and pyscard-1.6.5.win32-py2.4.exe for +directory, with names similar to pyscard-1.6.6.win32-py2.5.msi and +pyscard-1.6.6.win32-py2.5.exe for python 2.5, and +pyscard-1.6.6.win32-py2.4.msi and pyscard-1.6.6.win32-py2.4.exe for python 2.4. Building a binary distribution for linux @@ -214,7 +214,7 @@ /usr/bin/python setup.py build_ext bdist -This will build a package similar to pyscard-1.6.5.linux-i686.tar.gz +This will build a package similar to pyscard-1.6.6.linux-i686.tar.gz containing a tree Building a rpm distribution for linux @@ -236,7 +236,7 @@ echo "%_unpackaged_files_terminate_build 0" >> /etc/rpm/macros This will build in the dist directory a binary distribution with a name -similar to pyscard-1.6.5-1.i386.rpm. +similar to pyscard-1.6.6-1.i386.rpm. Building a binary distribution for Mac OS X Tiger ------------------------------------------------- @@ -253,7 +253,7 @@ python setup.py build_ext /System/Library/Frameworks/Python.Framework/Versions/2.3/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.5-py-2.3-macosx10.4.mpkg. +This will build package pyscard-1.6.6-py-2.3-macosx10.4.mpkg. If you are using python 2.5, in the root directory of the source distribution, i.e. in the src directory, execute the following commands in a terminal: @@ -261,7 +261,7 @@ python setup.py build_ext /Library/Frameworks/Python.Framework/Versions/2.5/bin/bdist_mpkg setup.py -This will build package pyscard-1.6.5-py-2.6-macosx10.4.mpkg. +This will build package pyscard-1.6.6-py-2.6-macosx10.4.mpkg. ------------------------------------------------------------------------------- Modified: trunk/pyscard/src/smartcard/TODO =================================================================== --- trunk/pyscard/src/smartcard/TODO 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/TODO 2008-02-26 13:20:33 UTC (rev 196) @@ -8,6 +8,4 @@ - more unit tests -- support of Mac OS X leopard - -January 2008 +February 2008 Modified: trunk/pyscard/src/smartcard/__init__.py =================================================================== --- trunk/pyscard/src/smartcard/__init__.py 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/__init__.py 2008-02-26 13:20:33 UTC (rev 196) @@ -5,7 +5,7 @@ __author__ = "gemalto http://www.gemalto.com" __date__ = "January 2008" -__version__ = "1.6.5" +__version__ = "1.6.6" Copyright 2001-2008 gemalto Author: Jean-Daniel Aussel, mailto:jea...@ge... Modified: trunk/pyscard/src/smartcard/doc/framework-samples.html =================================================================== --- trunk/pyscard/src/smartcard/doc/framework-samples.html 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/doc/framework-samples.html 2008-02-26 13:20:33 UTC (rev 196) @@ -9,7 +9,7 @@ <a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a> <hr> <H1 align="center"> </h1> -Last update : pyscard 1.6.5 (January 2008) +Last update : pyscard 1.6.6 (February 2008) <p> <a href="pyscard-usersguide.html">pyscard</a> is a python module adding smart cards support to <a href="http://www.python.org">python</a>. <p>It consists of <a href="html/smartcard.scard.scard-module.html">smartcard.scard</a>, Modified: trunk/pyscard/src/smartcard/doc/index.html =================================================================== --- trunk/pyscard/src/smartcard/doc/index.html 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/doc/index.html 2008-02-26 13:20:33 UTC (rev 196) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> <H1 align="center">pyscard<a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a></h1> <hr> -Last update : pyscard 1.6.5 (January 2008) +Last update : pyscard 1.6.6 (February 2008) <p> <a href="pyscard-usersguide.html">pyscard - python smart card library</a> is a python module adding smart cards support to <a href="http://www.python.org">python.</a> @@ -16,9 +16,9 @@ sourceforge.net. <p>Pyscard consists of <a href="epydoc/smartcard.scard.scard-module.html">smartcard.scard</a>, an extension module wrapping Windows smart card base components (also known - as PCSC) on Windows and PCSC lite on linux and Mac OS X Tiger, and <a - href="epydoc/index.html">smartcard</a>, a higher level python framework built - on top of the raw PCSC API. + as PCSC) on Windows and PCSC lite on linux and Mac OS X Tiger and Leopard, and + <a href="epydoc/index.html">smartcard</a>, a higher level python framework + built on top of the raw PCSC API. <p align="center"><img src="images/pyscard.jpg" width="396" height="540" align="middle"> <h2>Documentation Index</h2> Modified: trunk/pyscard/src/smartcard/doc/scard-samples.html =================================================================== --- trunk/pyscard/src/smartcard/doc/scard-samples.html 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/doc/scard-samples.html 2008-02-26 13:20:33 UTC (rev 196) @@ -9,7 +9,7 @@ <a href="http://sourceforge.net"></a><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=196342&type=3" width="125" height="37" border="0" align="right" alt="SourceForge.net Logo" /></a> <hr> <H1 align="center"> </h1> -Last update : pyscard 1.6.5 (January 2008) +Last update : pyscard 1.6.6 (February 2008) <p>Using the <a href="html/index.html">smartcard framework</a> is the preferred way to write python smart card application. You can however use the <a href="html/smartcard.scard.scard-module.html">smartcard.scard</a> library to write your python smart card application if you want to write your Modified: trunk/pyscard/src/smartcard/scard/gemalto.ver =================================================================== --- trunk/pyscard/src/smartcard/scard/gemalto.ver 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/src/smartcard/scard/gemalto.ver 2008-02-26 13:20:33 UTC (rev 196) @@ -16,7 +16,7 @@ #endif #ifndef VER_PRODUCTVERSION -#define VER_PRODUCTVERSION 1,06,05,0002 +#define VER_PRODUCTVERSION 1,06,06,0002 #endif #ifndef VER_FILEVERSION @@ -24,7 +24,7 @@ #endif #ifndef VER_PRODUCTVERSION_STR -#define VER_PRODUCTVERSION_STR "1.6.5" +#define VER_PRODUCTVERSION_STR "1.6.6" #endif #ifndef VER_FILEFLAGSMASK Modified: trunk/pyscard/tools/vslick/pyscard.macosX.darwin.vpj =================================================================== --- trunk/pyscard/tools/vslick/pyscard.macosX.darwin.vpj 2008-02-26 13:08:00 UTC (rev 195) +++ trunk/pyscard/tools/vslick/pyscard.macosX.darwin.vpj 2008-02-26 13:20:33 UTC (rev 196) @@ -66,6 +66,14 @@ RunFromDir="%wp"> <Exec CmdLine="sudo /usr/bin/env python ../commands/uninstall.py"/> </Target> + <Target + Name="run" + MenuCaption="&run" + RunFromDir="%p" + CaptureOutputWith="ProcessBuffer" + ClearProcessBuffer="1"> + <Exec CmdLine="python %f"/> + </Target> </Menu> </Config> <Files> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 13:07:56
|
Revision: 195 http://pyscard.svn.sourceforge.net/pyscard/?rev=195&view=rev Author: jdaussel Date: 2008-02-26 05:08:00 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Fixed link flags on Max OS X Leopard Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2008-02-26 13:04:19 UTC (rev 194) +++ trunk/pyscard/src/setup.py 2008-02-26 13:08:00 UTC (rev 195) @@ -74,8 +74,7 @@ platform_libraries=[] platform_include_dirs=['PCSC'] platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] - platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] -# Leopard not supported yet + platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb', '-framework', 'PCSC' ] else: sys.exit("unsupported platform: " + get_platform() ) @@ -178,7 +177,7 @@ extra_compile_args=platform_extra_compile_args, extra_link_args=platform_extra_link_args, swig_opts=['-outdir','smartcard/scard']+platform_swig_opts)], - 'cmdclass':{'build_ext': _pyscardBuildExt} + 'cmdclass':{'build_ext': _pyscardBuildExt}, } # If we're running >Python 2.3, add extra information This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-26 13:04:17
|
Revision: 194 http://pyscard.svn.sourceforge.net/pyscard/?rev=194&view=rev Author: jdaussel Date: 2008-02-26 05:04:19 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Fixed expected responses of SELECT DF_TELECOM Modified Paths: -------------- trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py Modified: trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py 2008-02-24 16:43:39 UTC (rev 193) +++ trunk/pyscard/src/smartcard/test/framework/testcase_CardConnection.py 2008-02-26 13:04:19 UTC (rev 194) @@ -53,7 +53,7 @@ """Test case for CardConnection.""" def testcase_CardConnection(self): - """Test with default protocols that the response to SELECT DF_TELECOM has two bytes.""" + """Test with default protocols the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] @@ -64,13 +64,13 @@ response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM ) expectedSWs={ "9f 1a":1, "6e 0":2, "9f 20":3, "9f 22":4 } self.assertEquals( [], response ) - self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) + self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) or "9f"==sw1 ) else: self.assertRaises( NoCardException, cc.connect ) cc.disconnect() def testcase_CardConnectionT0(self): - """Test with T0 that the response to SELECT DF_TELECOM has two bytes.""" + """Test with T0 the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] @@ -81,7 +81,7 @@ response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM ) expectedSWs={ "9f 1a":1, "6e 0":2, "9f 20":3, "9f 22":4 } self.assertEquals( [], response ) - self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) + self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) or "9f"==sw1 ) else: self.assertRaises( NoCardException, cc.connect ) cc.disconnect() @@ -116,7 +116,7 @@ cc.disconnect() def testcase_CardConnectionT0T1(self): - """Test test with T0 | T1 that the response to SELECT DF_TELECOM has two bytes.""" + """Test test with T0 | T1 the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] @@ -127,14 +127,14 @@ response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM ) expectedSWs={ "9f 1a":1, "6e 0":2, "9f 20":3, "9f 22":4 } self.assertEquals( [], response ) - self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) + self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) or "9f"==sw1 ) else: self.assertRaises( NoCardException, cc.connect ) cc.disconnect() def testcase_CardConnectionT0inTransmit(self): - """Test with T0 in transmit that the response to SELECT DF_TELECOM has two bytes.""" + """Test with T0 in transmit the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] @@ -145,14 +145,14 @@ response, sw1, sw2 = cc.transmit( SELECT + DF_TELECOM, CardConnection.T0_protocol ) expectedSWs={ "9f 1a":1, "6e 0":2, "9f 20":3, "9f 22":4 } self.assertEquals( [], response ) - self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) + self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) or "9f"==sw1 ) else: self.assertRaises( NoCardException, cc.connect ) cc.disconnect() def testcase_CardConnectionT0T1inTransmitMustFail(self): - """Test with bad parameter in transmit that the response to SELECT DF_TELECOM has two bytes.""" + """Test with bad parameter in transmit the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] Modified: trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py =================================================================== --- trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py 2008-02-24 16:43:39 UTC (rev 193) +++ trunk/pyscard/src/smartcard/test/framework/testcase_CardService.py 2008-02-26 13:04:19 UTC (rev 194) @@ -51,7 +51,7 @@ """Test case for CardService.""" def testcase_CardService(self): - """Test that the response to SELECT DF_TELECOM has two bytes.""" + """Test the response to SELECT DF_TELECOM.""" SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02] DF_TELECOM = [0x7F, 0x10] @@ -63,7 +63,7 @@ response, sw1, sw2 = cs.connection.transmit( SELECT + DF_TELECOM ) expectedSWs={ "9f 1a":1, "6e 0":2, "9f 20":3, "9f 22":4 } self.assertEquals( [], response ) - self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) ) + self.assert_( expectedSWs.has_key( "%x %x" % (sw1, sw2 ) ) or "9f"==sw1 ) def suite(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-24 16:43:36
|
Revision: 193 http://pyscard.svn.sourceforge.net/pyscard/?rev=193&view=rev Author: jdaussel Date: 2008-02-24 08:43:39 -0800 (Sun, 24 Feb 2008) Log Message: ----------- pcsc_stringify not dynamically loaded for Apple Leopard Modified Paths: -------------- trunk/pyscard/src/smartcard/scard/scard.i Modified: trunk/pyscard/src/smartcard/scard/scard.i =================================================================== --- trunk/pyscard/src/smartcard/scard/scard.i 2008-02-24 16:29:51 UTC (rev 192) +++ trunk/pyscard/src/smartcard/scard/scard.i 2008-02-24 16:43:39 UTC (rev 193) @@ -995,11 +995,16 @@ return ppszError; #endif // WIN32 #ifdef PCSCLITE - #ifdef __TIGER__ - return (ERRORSTRING*)_pcsc_stringify_error( lErrCode ); - #endif - return (ERRORSTRING*)pcsc_stringify_error( lErrCode ); - #else + #ifdef __APPLE__ + #ifdef __TIGER__ + return (ERRORSTRING*)_pcsc_stringify_error( lErrCode ); + #endif + #ifdef __LEOPARD__ + return (ERRORSTRING*)_pcsc_stringify_error( lErrCode ); + #endif + #else + return (ERRORSTRING*)pcsc_stringify_error( lErrCode ); + #endif #endif // PCSCLITE } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-02-24 16:43:35
|
Revision: 192 http://pyscard.svn.sourceforge.net/pyscard/?rev=192&view=rev Author: jdaussel Date: 2008-02-24 08:29:51 -0800 (Sun, 24 Feb 2008) Log Message: ----------- Fixed detection of Apple Tiger and restored compilation for Apple Leopard Modified Paths: -------------- trunk/pyscard/src/setup.py Modified: trunk/pyscard/src/setup.py =================================================================== --- trunk/pyscard/src/setup.py 2008-01-12 12:03:23 UTC (rev 191) +++ trunk/pyscard/src/setup.py 2008-02-24 16:29:51 UTC (rev 192) @@ -54,7 +54,7 @@ # Mac OS X Tiger has python 2.3 preinstalled # get_platform() returns a string similar to 'darwin-8.11.1-i386' with python 2.3 # if python 2.5 is installed, get_platform() returns a string similar to 'macosx-10.3-fat' -elif 'darwin' in get_platform() or 'macosx-10.3' or 'macosx-10.4' in get_platform(): +elif 'darwin' in get_platform() or 'macosx-10.3' in get_platform() or 'macosx-10.4' in get_platform(): platform__cc_defines=[ ('PCSCLITE', '1'), ('__APPLE__','1'), ('__TIGER__','1')] platform_swig_opts=[ '-DPCSCLITE', '-D__APPLE__', '-D__TIGER__' ] platform_sources=[] @@ -76,7 +76,7 @@ platform_extra_compile_args=['-v','-framework', 'PCSC', '-arch', 'i386', '-arch', 'ppc', '-ggdb', '-O0'] platform_extra_link_args=['-arch', 'i386', '-arch', 'ppc','-ggdb'] # Leopard not supported yet -#else: +else: sys.exit("unsupported platform: " + get_platform() ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-01-12 12:03:20
|
Revision: 191 http://pyscard.svn.sourceforge.net/pyscard/?rev=191&view=rev Author: jdaussel Date: 2008-01-12 04:03:23 -0800 (Sat, 12 Jan 2008) Log Message: ----------- Catch AttributeError raised when waitfocardevent attribute does not exist anymore at shutdown Modified Paths: -------------- trunk/pyscard/src/smartcard/CardMonitoring.py Modified: trunk/pyscard/src/smartcard/CardMonitoring.py =================================================================== --- trunk/pyscard/src/smartcard/CardMonitoring.py 2008-01-12 12:01:32 UTC (rev 190) +++ trunk/pyscard/src/smartcard/CardMonitoring.py 2008-01-12 12:03:23 UTC (rev 191) @@ -173,7 +173,9 @@ # e.g., when execution of the program is done, other globals referenced # by the __del__() method may already have been deleted. # this causes ReaderMonitoringThread.run() to except with a TypeError + # or AttributeError except TypeError: pass + except AttributeError: pass except: try: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-01-12 12:01:30
|
Revision: 190 http://pyscard.svn.sourceforge.net/pyscard/?rev=190&view=rev Author: jdaussel Date: 2008-01-12 04:01:32 -0800 (Sat, 12 Jan 2008) Log Message: ----------- Catch CardConnectionException raised when no card in reader Modified Paths: -------------- trunk/pyscard/src/smartcard/wx/CardAndReaderTreePanel.py Modified: trunk/pyscard/src/smartcard/wx/CardAndReaderTreePanel.py =================================================================== --- trunk/pyscard/src/smartcard/wx/CardAndReaderTreePanel.py 2008-01-07 12:29:12 UTC (rev 189) +++ trunk/pyscard/src/smartcard/wx/CardAndReaderTreePanel.py 2008-01-12 12:01:32 UTC (rev 190) @@ -24,7 +24,7 @@ # smartcard imports from threading import RLock -from smartcard.Exceptions import NoCardException +from smartcard.Exceptions import CardConnectionException, NoCardException from smartcard.ReaderMonitoring import ReaderMonitor, ReaderObserver from smartcard.CardMonitoring import CardMonitor, CardObserver from smartcard.util import toHexString @@ -160,6 +160,8 @@ connection.disconnect() except NoCardException: pass + except CardConnectionException: + pass return atr def OnAddCards( self, addedcards ): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-01-07 12:29:07
|
Revision: 189 http://pyscard.svn.sourceforge.net/pyscard/?rev=189&view=rev Author: jdaussel Date: 2008-01-07 04:29:12 -0800 (Mon, 07 Jan 2008) Log Message: ----------- Added copy of pcsctypes.h to source distribution Modified Paths: -------------- trunk/pyscard/src/MANIFEST.in Modified: trunk/pyscard/src/MANIFEST.in =================================================================== --- trunk/pyscard/src/MANIFEST.in 2008-01-06 19:50:43 UTC (rev 188) +++ trunk/pyscard/src/MANIFEST.in 2008-01-07 12:29:12 UTC (rev 189) @@ -10,6 +10,7 @@ include smartcard/scard/helpers.c include smartcard/scard/helpers.h include smartcard/scard/memlog.h +include smartcard/scard/pcsctypes.h include smartcard/scard/PcscDefs.i include smartcard/scard/PcscTypemaps.i include smartcard/scard/scard.def This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jda...@us...> - 2008-01-06 19:50:39
|
Revision: 188 http://pyscard.svn.sourceforge.net/pyscard/?rev=188&view=rev Author: jdaussel Date: 2008-01-06 11:50:43 -0800 (Sun, 06 Jan 2008) Log Message: ----------- Tagging the 1.6.5 release of pyscard. Added Paths: ----------- tags/release-1.6.5/ Copied: tags/release-1.6.5 (from rev 187, trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |