Merge lp:~kalon33/ubuntu/natty/pcsc-lite/merge-1.7.0-2-from-unstable into lp:ubuntu/natty/pcsc-lite

Proposed by Nicolas DERIVE
Status: Superseded
Proposed branch: lp:~kalon33/ubuntu/natty/pcsc-lite/merge-1.7.0-2-from-unstable
Merge into: lp:ubuntu/natty/pcsc-lite
Diff against target: 54050 lines
To merge this branch: bzr merge lp:~kalon33/ubuntu/natty/pcsc-lite/merge-1.7.0-2-from-unstable
Reviewer Review Type Date Requested Status
Martin Pitt Needs Fixing
Review via email: mp+53916@code.launchpad.net

This proposal has been superseded by a proposal from 2011-03-19.

Commit message

Merge new upstream version from Debian Unstable.

Description of the change

New branch merging latest 1.7.0-2 version from Debian Unstable, as requested by Ludovic Rousseau (the upstream maintainer)

Builds fine, see:

https://launchpad.net/~kalon33/+archive/rfid/+buildjob/2327847

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

Note that this merge moves libpcsclite.so.1.0.0 back from /lib/ to /usr/lib/, which we shouldn't do yet (before we also get a new wpasupplicant).

Also, why does this introduce all the flag mangling in debian/rules? The standard debhelper rules should handle nostrip, noopt, and parallel options just fine.

review: Needs Fixing
Revision history for this message
Nicolas DERIVE (kalon33) wrote :

@pitti: the libpcsclite1.install file is here, where should I change this?
For debian/rules: so there is no need to keep any change in our rules or I keep usbdrop, confdir and prefix?

Thanks for your help.

Revision history for this message
Martin Pitt (pitti) wrote :

> @pitti: the libpcsclite1.install file is here, where should I change this?

Same way as it was done before? The previous version did the moving in debian/rules:

       # move runtime libraries to /lib
       mv debian/libpcsclite1/usr/lib/libpcsclite.so.1* \
               debian/libpcsclite1/lib/
       rmdir -p --ignore-fail-on-non-empty debian/libpcsclite1/usr/lib
       ln -sf /lib/$$(readlink debian/libpcsclite-dev/usr/lib/libpcsclite.so) \
               debian/libpcsclite-dev/usr/lib/libpcsclite.so

So you might just do the same in an override_dh_install rule?

> For debian/rules: so there is no need to keep any change in our rules or I keep usbdrop, confdir and prefix?

If debian doesn't explicitly specify --enable-confdir=/var/lib/pcscd, then this might just be the default value? Likewise, --enable-usbdropdir=/usr/lib/pcsc/drivers might be the default as well?

The rest is not necessary.

32. By Nicolas DERIVE

* Merge from Debian Unstable (FFe LP: #723016). Remaining changes:
* debian/rules: Keep moving runtime libraries to /lib, for the benefit of
  wpasupplicant.

Revision history for this message
Nicolas DERIVE (kalon33) wrote :

> > @pitti: the libpcsclite1.install file is here, where should I change this?
>
> Same way as it was done before? The previous version did the moving in
> debian/rules:
>
> # move runtime libraries to /lib
> mv debian/libpcsclite1/usr/lib/libpcsclite.so.1* \
> debian/libpcsclite1/lib/
> rmdir -p --ignore-fail-on-non-empty debian/libpcsclite1/usr/lib
> ln -sf /lib/$$(readlink debian/libpcsclite-dev/usr/lib/libpcsclite.so)
> \
> debian/libpcsclite-dev/usr/lib/libpcsclite.so
>
> So you might just do the same in an override_dh_install rule?

I think it's done, what do you think?
>
> > For debian/rules: so there is no need to keep any change in our rules or I
> keep usbdrop, confdir and prefix?
>
> If debian doesn't explicitly specify --enable-confdir=/var/lib/pcscd, then
> this might just be the default value? Likewise, --enable-
> usbdropdir=/usr/lib/pcsc/drivers might be the default as well?

It seems that it was the case indeed.
>
> The rest is not necessary.
I dropped the rest.

Should I change other things?

Thanks for your help.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2010-07-10 11:15:59 +0000
+++ ChangeLog 2011-03-19 10:51:41 +0000
@@ -1,3 +1,249 @@
1pcsc-lite-1.7.0: Ludovic Rousseau
29 March 2011
3- use libudev instead of (the deprecated) libhal
4
5
6pcsc-lite-1.6.7: Ludovic Rousseau
722 February 2011
8- better Mac OS X support
9- Fix Alioth bug [#312960] SCardDisconnect when other context has transaction
10- add support of multi-interfaces readers with libusb and not just libhal
11- add a API tracing feature in the client side (#define DO_TRACE)
12- allow the use of tracing and profiling features from different
13 application threads
14- fix a problem with a multi-slots reader
15- fix minor problems detected by the clang tool
16- some other minor improvements and bug corrections
17
18
19pcsc-lite-1.6.6: Ludovic Rousseau
2012 December 2010
21- SCardGetStatusChange(): fix a bug on 64-bits systems
22- Fix another bug because of a regression in internal list manager
23
24
25pcsc-lite-1.6.5: Ludovic Rousseau
263 December 2010
27- Power on the card _only_ if an application requests a connection.
28 You can disable the feature using DISABLE_ON_DEMAND_POWER_ON in
29 src/pcscd.h.in
30 If DISABLE_AUTO_POWER_ON is defined then do not automatically power on
31 the card. The card will be powered on on the first SCardConnect()
32 See http://ludovicrousseau.blogspot.com/2010/10/card-auto-power-on-and-off.html
33- SCardReconnect(): return SCARD_E_NO_SMARTCARD when card is removed and
34 SCARD_W_UNRESPONSIVE_CARD when card is unresponsive instead of
35 SCARD_E_PROTO_MISMATCH
36- Install pcscd as sgid pcscd instead of suid root
37 See http://ludovicrousseau.blogspot.com/2010/09/pcscd-auto-start.html
38- SCardSetTimeout() is no more provided. This function is not provided
39 by Microsoft and is deprecated since 2004 in pcsc-lite.
40- SCardCancelTransaction() is no more provided. This function is not
41 provided by Microsoft and is deprecated since 2005 in pcsc-lite.
42- Parsing the CCID Info.plist (159 readers supported) was, on a i386
43 machine, done in 264306 µs and is now done 5547 µs => gain x47 or 4600%
44 See http://ludovicrousseau.blogspot.com/2010/08/ram-and-cpu-improvements-in-pcsc-lite.html
45- It is now possible to configure the local socket name to use using the
46 environment variable PCSCLITE_CSOCK_NAME
47 See http://ludovicrousseau.blogspot.com/2010/11/pcsc-client-and-server-on-two-different.html
48- Wait until all connected readers have a chance to power up a possibly
49 inserted card before accepting clients.
50- restrict pcscd features when not run by root (so using suid): APDU
51 logging or setting parameters are disabled for example
52- fix compilation problem on kfreebsd-* systems
53- PCSC/reader.h: HOST_TO_CCID_16() and HOST_TO_CCID_32() are now
54 identity functions
55 Since libccid 1.4.1 (revision 5252) the byte order is no more important
56- If you want to use IFDHCreateChannel() instead of
57 IFDHCreateChannelByName() then do not use any DEVICENAME line in the
58 configuration file. IFDHCreateChannel() will then be called with the
59 CHANNELID parameter.
60- the CHANNELID parameter can also be a decimal number.
61- Remove the support of IFDHandler v1 API. I don't know any driver using
62 this API.
63 See http://ludovicrousseau.blogspot.com/2010/10/ifdhandler-version-1-support-removed.html
64- avoids a buffer overflow with badly formed ATR
65- some other minor improvements and bug corrections
66
67
68pcsc-lite-1.6.4: Ludovic Rousseau
6915 August 2010
70- Do not use sysconfdir as configuration directory but
71 "${sysconfdir}/reader.conf.d" instead.
72 Use --enable-confdir=DIR if you want to set a specific value without
73 the "reader.conf.d" appended.
74
75
76pcsc-lite-1.6.3: Ludovic Rousseau
7715 August 2010
78- "/reader.conf.d" is only appended to sysconfdir if no value of
79 sysconfdir is provided
80- Define LPSCARD_READERSTATE since this is used in the MSDN prototype.
81 Use LPSCARD_READERSTATE in winscard.h instead of (SCARD_READERSTATE *)
82 to mimic the MSDN API.
83- fix a pcscd crash when the application uses a PCSC handle after a
84 fork. The crash was with openvpn.
85- some other minor improvements and bug corrections
86
87pcsc-lite-1.6.2: Ludovic Rousseau
884 August 2010
89- implement a "Forced suicide" mechanism.
90 After 3 Ctrl-C without much reaction from pcscd (in fact the drivers)
91 we force the suicide. Sometimes libusb is blocked in a kind of
92 dead-lock and kill -9 was the only option.
93- Add support of TAG_IFD_STOP_POLLING_THREAD to request the stop of the
94 driver polling function.
95- Avoid a division by 0. Closes [#312555] "simclist bug in pcsc-lite"
96- if pcscd is stared by libpcsclite then close all file handles except
97 stdin, stdout and stderr so that pcscd does not confiscate ressources
98 allocated by the application
99- in case of auto exit create a new session so that Ctrl-C on the
100 application will not also quit pcscd
101- src/hotplug_libusb.c: port from libusb-0.1 to libusb-1.0
102- default configuration is now $sysconfdir/reader.conf.d
103- fix crash with empty config dir
104- src/PCSC/winscard.h: Remove definitions of SCARD_READERSTATE_A
105 PSCARD_READERSTATE_A and LPSCARD_READERSTATE_A types
106- some other minor improvements and bug corrections
107
108
109pcsc-lite-1.6.1: Ludovic Rousseau
1104 June 2010
111- SCardControl(): do not check for card events since we are talking to
112 the reader not the card. A smart card removal should not make
113 SCardControl() fail with SCARD_W_REMOVED_CARD
114- pcscd do not timeout any more after 2 minutes of inactivity. If the
115 other side of the socket dies we will get an error from the kernel.
116 The problem was that if a client does nothing during
117 PCSCLITE_READ_TIMEOUT (120 seconds by default) then pcscd considers it
118 as a dead client and closes the connection. I guess this problem was
119 present since the first version of pcsc-lite but nobody complained
120 before.
121- pcscd: do not return before most of the initialisation are done
122 correctly. The idea is that pcscd can return an error code if the
123 daemon fails to start correctly (hald not started for example).
124 Before the patch pcscd became a daemon, then returned 0 (success) and
125 then continued with the initialisation. If the initialisation failed
126 it was too late to return an error code. The /etc/init.d/pcscd script
127 was not aware of the failure.
128 Closes https://bugzilla.redhat.com/show_bug.cgi?id=580321
129 "/usr/sbin/pcscd exit codes broken"
130- src/hotplug_libusb.c: Add a synchronisation so that if pcscd is auto
131 started the initial reader list is available before the server takes
132 commands from clients.
133 Before the change early calls of SCardListReaders() returned an empty
134 list of readers even if a reader was connected.
135 Thanks to Patrice Angelini for the bug report
136- SCardConnect() & SCardReconnect(): do not reset the cardProtocol in
137 SCARD_SHARE_DIRECT case since the card have _not_ been reseted. A new
138 PPS negociation would fail.
139- Do not install files in /etc any more. Serial drivers are rare now.
140- Avoids a crash if a client sends a unknown command.
141 Thanks to Martin Vogt for the bug report
142- some other minor improvements and bug corrections
143
144
145pcsc-lite-1.6.0: Ludovic Rousseau
1465 May 2010
147- redesign the client/server communication:
148 * no more shared memory used (allow pcscd and libpcsclite1.so to be on
149 different computer and talk over a network)
150 * no more difference between short and extended APDU
151 * no more use of a /var/run/pcscd/pcscd.events/ directory. events are
152 sent through the socket
153 * simpler command format between client and server
154 The side effect is that you are not able to mix an old pcscd with a
155 new libpcsclite1.so or the reverse. SCardEstablishContext() will fail
156 unless you update both sides of the communication.
157- Use lists instead of fixed size arrays to store handles.
158 It is now possible to have:
159 - 200 simultaneous PC/SC clients instead of 16
160 - 200 SCardConnect per client instead of 16
161 - 200 clients per reader instead of 16
162 The default value of 200 can be changed by giving an argument to pcscd
163 --max-thread --max-card-handle-per-thread --max-card-handle-per-reader
164 Thanks to Jean-Luc Giraud for the big patch
165- Make SCardReconnect(), SCardStatus() and SCardTransmit() block instead
166 of returning SCARD_E_SHARING_VIOLATION immediately. These functions
167 will then behave like on Windows.
168 This can happen if these functions are called when the reader is
169 locked by a PCSC transaction
170 (SCardBeginTransaction/SCardEndTransaction).
171 You can define the environment variable PCSCLITE_NO_BLOCKING to use
172 the old behavior.
173 Thanks to Jean-Luc Giraud for the patch.
174 http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0041.html
175- SCardEstablishContext(): try to start the pcscd daemon if not already
176 running.
177 . pcscd will suicide itself after 60 seconds of inactivity if it is
178 started using --auto-exit. This is the default behavior when pcscd is
179 started by libpcsclite
180 . Set PCSCLITE_PCSCD_ARGS with the argument you want to pass to pcscd in
181 autostart Only one argument is passed. The space character is not a
182 separator. example: export PCSCLITE_PCSCD_ARGS=-dfa
183- SCardListReaders(): can use SCARD_AUTOALLOCATE
184- SCardGetAttrib(): return SCARD_E_INSUFFICIENT_BUFFER if the driver
185 returns IFD_ERROR_INSUFFICIENT_BUFFER
186 . add support of SCARD_ATTR_DEVICE_FRIENDLY_NAME as it is better
187 implemented in pcscd (it knows the friendly name)
188- SCardGetStatusChange(): Calling with cReaders == 0 will now just
189 return SCARD_S_SUCCESS
190 . Use the special reader name "\\?PnP?\Notification" to wait for a
191 reader event notification
192- SCardTransmit(): do not limit the minimum size of an APDU to 4 bytes.
193 non ISO 7816-4 compliant cards (like Mifare DESFIRE) may use shorter
194 commands
195- SCardStatus(): returns SCARD_E_SHARING_VIOLATION if the reader is
196 already used More conform to Windows
197- PCSC/reader.h: update sruct PIN_PROPERTIES_STRUCTURE to be conform
198 with Revision 2.02.06, April 2009 of PCSCv2 part 10 Fields
199 wLcdMaxCharacters and wLcdMaxLines have been removed
200 . rename FEATURE_MCT_READERDIRECT in FEATURE_MCT_READER_DIRECT to be
201 conform with ch. 2.3 of PCSC v2 part 10
202 . add FEATURE_GET_TLV_PROPERTIES and FEATURE_CCID_ESC_COMMAND from
203 PC/SC part 10 v2.02.07 March 2010
204 . Add PCSCv2_PART10_PROPERTY_* defines
205- SCardControl() return SCARD_E_UNSUPPORTED_FEATURE if the driver
206 returned IFD_ERROR_NOT_SUPPORTED or IFD_NOT_SUPPORTED This is used to
207 separate an unsupported value of ControlCode from a general error
208- Use the standard --sysconfdir=DIR ($prefix/etc by default) instead of
209 --enable-confdir=DIR for defining the directory containing reader.conf
210- remove SCF support (PC/SC over Smart Card Framework). I never used
211 this feature and SCF is now dead and replaced by JSR 268
212 (javax.smartcardio)
213- Better handling of PCSCLITE_STATIC_DRIVER as can be used on platforms
214 using µClinux (without dynamic loader). This is used to statically
215 link the reader driver to pcscd. Since the link is static you must
216 define the IFDHandler API version at compilation time. Either define
217 IFDHANDLERv1, IFDHANDLERv2 or IFDHANDLERv3
218- Use dynamic instead of static allocation for the driver library
219 filename. The filename is no more limited to 100 characters.
220 Closes: [#312332] MAX_LIBNAME too short?
221- force the return codes SCARD_* to be long since the SCard* functions
222 return a LONG type
223- Add the ability to parse all the configuration files of a directory
224 instead of just one configuration file. update-reader.conf is then now
225 obsolete.
226- Add --enable-embedded (default is no) to build pcsc-lite for an
227 embedded system. This will activate the NO_LOG option to disable
228 logging and limit RAM and disk consumption.
229- If NO_LOG is defined then no log are displayed. The idea is to limit
230 the binaries size on disk and RAM consumption at execution time.
231 With NO_LOG defined we gain 26% (17 kB) for the .text segment of pcscd
232 and 15% (4 kB) for the .text segment of libpcsclite.so (for i386)
233- Define a minimal pcsc_stringify_error() if NO_LOG is defined. Only the
234 error code in hex is displayed in this case.
235 Gain: 2kB of .text (10%) for libpcsclite
236- Add --disable-serial and --disable-usb options
237 --disable-serial removes support of /etc/reader.conf gain: 8.0kB of
238 .text (12%) and 160 bytes of .bss (4%) for pcscd
239 --disable-usb removes support of USB hotplug gain: 9.7kB of .text
240 (14%) and 960 bytes of .bss (23%) for pcscd
241 If you use both options (and use a static driver configuration) gain:
242 17.7kB of .text (26%) and 1152 bytes of .bss (28%) for pcscd
243- Better support of Android
244- some other minor improvements and bug corrections
245
246
1pcsc-lite-1.5.5: Ludovic Rousseau247pcsc-lite-1.5.5: Ludovic Rousseau
228 July 200924828 July 2009
3- add the reader interface name if provided by the device249- add the reader interface name if provided by the device
@@ -40,7 +286,7 @@
40- reader.h: add PIN_PROPERTIES_STRUCTURE structure and FEATURE_IFD_PIN_PROPERTIES286- reader.h: add PIN_PROPERTIES_STRUCTURE structure and FEATURE_IFD_PIN_PROPERTIES
41 Thanks to Martin Paljak for the patch287 Thanks to Martin Paljak for the patch
42- remove powermgt_macosx.c since it is using APSL version 1.1 instead of288- remove powermgt_macosx.c since it is using APSL version 1.1 instead of
43 the BSD-like licence like the other files 289 the BSD-like licence like the other files
44 Thanks to Stanislav Brabec for the bug report290 Thanks to Stanislav Brabec for the bug report
45- avoid a possible crash due to a race condition291- avoid a possible crash due to a race condition
46 Thanks to Matheus Ribeiro for the patch292 Thanks to Matheus Ribeiro for the patch
@@ -65,7 +311,7 @@
65- log TxBuffer and RxBuffer if the SCardControl() command failed.311- log TxBuffer and RxBuffer if the SCardControl() command failed.
66 Closes: [#311376] PCSC_LOG_VERBOSE via -dd; print details of "Card not312 Closes: [#311376] PCSC_LOG_VERBOSE via -dd; print details of "Card not
67 transacted"313 transacted"
68- add a mutex to avoid a race condition 314- add a mutex to avoid a race condition
69 Closes: [#311377] Race condition in SCardBeginTransaction315 Closes: [#311377] Race condition in SCardBeginTransaction
70- SCardGetStatusChange() may not return if the reader was removed.316- SCardGetStatusChange() may not return if the reader was removed.
71- some other minor improvements and bug corrections317- some other minor improvements and bug corrections
@@ -105,7 +351,7 @@
105351
106pcsc-lite-1.4.102: Ludovic Rousseau352pcsc-lite-1.4.102: Ludovic Rousseau
10727 June 200835327 June 2008
108- pcscd -v now displays the enabled features 354- pcscd -v now displays the enabled features
109- add support of SCARD_AUTOALLOCATE in SCardListReaders(),355- add support of SCARD_AUTOALLOCATE in SCardListReaders(),
110 SCardListReaderGroups() and SCardGetAttrib356 SCardListReaderGroups() and SCardGetAttrib
111- add SCardFreeMemory()357- add SCardFreeMemory()
@@ -148,7 +394,7 @@
148 in case of "PCSC Not Running" or "PCSC restarted" so that nothing is394 in case of "PCSC Not Running" or "PCSC restarted" so that nothing is
149 logged by default. PCSCLITE_DEBUG can be defined to see the message.395 logged by default. PCSCLITE_DEBUG can be defined to see the message.
150 Programs linked with libpcsclite will not display anything if pcscd is396 Programs linked with libpcsclite will not display anything if pcscd is
151 not running. Solves Red Hat bug 428299. 397 not running. Solves Red Hat bug 428299.
152- default log level is PCSC_LOG_CRITICAL+1 so that NO log is sent to398- default log level is PCSC_LOG_CRITICAL+1 so that NO log is sent to
153 stderr by default. You need to explicitly set PCSCLITE_DEBUG to have399 stderr by default. You need to explicitly set PCSCLITE_DEBUG to have
154 logs. (in a library stderr(2) can be any file opened with fd=2 so400 logs. (in a library stderr(2) can be any file opened with fd=2 so
155401
=== modified file 'ChangeLog.svn'
--- ChangeLog.svn 2010-07-10 11:15:59 +0000
+++ ChangeLog.svn 2011-03-19 10:51:41 +0000
@@ -1,3 +1,2619 @@
12011-03-09 Ludovic Rousseau
2
3 * [r5650] ChangeLog: Typo caused by autocompletion without check
4 * [r5649] ChangeLog, configure.in: release 1.7.0
5
62011-02-25 Ludovic Rousseau
7
8 * [r5638] configure.in, src/Makefile.am, src/PCSC/ifdhandler.h,
9 src/hotplug_generic.c, src/hotplug_libhal.c,
10 src/hotplug_libudev.c, src/hotplug_linux.c: Use libudev instead
11 of (deprecated) libhal for the USB hotplug mechanism.
12
132011-02-24 Ludovic Rousseau
14
15 * [r5636] src/hotplug_libusb.c: Remove debug printf()
16
172011-02-22 Ludovic Rousseau
18
19 * [r5628] ChangeLog, configure.in: release 1.6.7
20
212011-02-21 Ludovic Rousseau
22
23 * [r5621] src/hotplug_libusb.c: If a device has more than one CCID
24 interface the "libhal:" naming scheme (with the interface number
25 included) is used instead of "libusb:".
26
27 The new mechanism allows to use multi-interfaces devices like the
28 Gemalto ProxDU also with hotplug_libusb. libhal is deprecated and
29 may not be available everywhere.
30
31 Thanks to Diego Elio Pettenò for the patch (for Gentoo)
32
332011-02-10 Ludovic Rousseau
34
35 * [r5589] src/winscard_clnt.c: Move the definition of DO_TRACE,
36 DO_PROFILE, and DO_CHECK_SAME_PROCESS at the top of the file, and
37 add documentation.
38
392011-02-09 Ludovic Rousseau
40
41 * [r5587] src/Makefile.am: Do not create empty directories
42 .../pcsc/drivers and .../pcsc/services any more. The needed
43 directory is created by the driver instead.
44
452011-02-04 Ludovic Rousseau
46
47 * [r5584] UnitaryTests/ThreadSafe.py, UnitaryTests/stress_apdu.py:
48 Fix PEP8 warnings
49 * [r5583] UnitaryTests/ThreadSafe.py: Display the thread id and
50 iterations
51 * [r5582] UnitaryTests/SCard_fork.py: Better documentation and
52 debug
53 * [r5581] src/winscard_clnt.c: Add a missing variable declaration
54 used if DO_CHECK_SAME_PROCESS is defined
55 * [r5580] UnitaryTests/SCardConnect_DIRECT.py: Test the behavior as
56 documented in revision 5579
57 * [r5579] src/winscard_clnt.c: Doxygen: CardConnect() &
58 SCardReconnect() pdwActiveProtocol is not set to
59 SCARD_PROTOCOL_UNDEFINED if SCARD_SHARE_DIRECT is used but the
60 card has already negociated its protocol
61
622011-02-01 Ludovic Rousseau
63
64 * [r5575] UnitaryTests/SCardBeginTransaction_ExclusiceMode.py:
65 Unitary test for Alioth bug [#312960] SCardDisconnect when other
66 context has transaction
67 * [r5574] src/winscard.c: SCardDisconnect(): RFUnlockAllSharing()
68 may fail with SCARD_E_SHARING_VIOLATION if a transaction is on
69 going on another card context and dwDisposition ==
70 SCARD_LEAVE_CARD. We should not stop and continue disconnecting
71 the card.
72
73 Fixes Alioth bug [#312960] SCardDisconnect when other context has
74 transaction
75 * [r5573] UnitaryTests/SCardConnect_DIRECT2.py: Use the protocol
76 negociated by SCardConnect() instead of hard coding SCARD_PCI_T1
77 * [r5572] src/winscard_clnt.c: SCardDisconnect(): remove the card
78 handle only if SCARD_DISCONNECT command succeeded on the server
79
80 Related to alioth bug [#312960] SCardDisconnect when other
81 context has transaction If a first SCardDisconnect() fails with
82 SCARD_E_SHARING_VIOLATION it is now possible to try again
83 SCardDisconnect(). Before the patch the second call to
84 SCardDisconnect() returned SCARD_E_INVALID_HANDLE but the
85 connection was still "in use".
86
872011-01-29 Ludovic Rousseau
88
89 * [r5569] src/PCSC/ifdhandler.h, src/readerfactory.h: Revert
90 revision 5568 since it has side effect on driver compilation
91 (like libccid fails to build)
92 * [r5568] src/PCSC/ifdhandler.h, src/readerfactory.h: Move #include
93 "pcsclite.h" from PCSC/ifdhandler.h to readerfactory.h so that
94 ifdhandler.h can be used as-is on Mac OS X (for handler_test.c)
95 * [r5567] src/eventhandler.c, src/ifdwrapper.c, src/prothandler.c,
96 src/readerfactory.c: Remove useless #include "ifdhandler.h"
97
982011-01-27 Ludovic Rousseau
99
100 * [r5560] src/winscard_clnt.c: SCardSetAttrib(): add profiling
101 calls
102 * [r5559] src/winscard_clnt.c: SCardGetSetAttrib(): remove a call
103 to PROFILE_END() since this is already done in SCardGetAttrib()
104 * [r5558] src/winscard_clnt.c: profiling: compare threads using
105 pthread_equal() instead of == to make the code more portable.
106 * [r5557] src/winscard_clnt.c: SCardGetAttrib(): Always exit from
107 the same point so that profiling does work even in case of error
108 * [r5556] src/winscard_clnt.c: profile_end(): add a missing \n in
109 the warning message
110 * [r5555] src/winscard_clnt.c: Send API traces do stderr instead of
111 stdout
112
1132011-01-25 Ludovic Rousseau
114
115 * [r5550] src/winscard_clnt.c: SCardReleaseContext(): Always exit
116 from the same point so that profiling does work even in case of
117 error
118 * [r5549] src/winscard_clnt.c: SCardCancel(): Always exit from the
119 same point so that profiling does work even in case of error
120 * [r5548] src/winscard_clnt.c: Profiling: allow to support up to
121 MAX_THREADS simultaneous calls
122
123 For example SCardCancel() is called from another thread when
124 SCardGetStatusChange() is running. This was not supported.
125 * [r5547] src/winscard_clnt.c: Use color names macros
126 * [r5546] src/winscard_clnt.c: Add API tracing with arguments
127 display
128 * [r5545] src/winscard_clnt.c: SCardGetStatusChange(): Always exit
129 from the same point so that profiling does work even in case of
130 error
131 * [r5544] src/winscard_clnt.c: SCardDisconnect(): Always exit from
132 the same point so that profiling does work even in case of error
133
1342011-01-21 Ludovic Rousseau
135
136 * [r5543] src/configfile.l: Display the correct line number if
137 garbage is found in the configuration file
138
1392011-01-20 Ludovic Rousseau
140
141 * [r5539] src/winscard_svc.c: contextsListhContext_seeker(): avoid
142 a potential crash if NULL values are used
143
144 src/winscard_svc.c:90:22: warning: Dereference of null pointer if
145 (currentContext->hContext == *(int32_t *)key) ^
146 src/winscard_svc.c:90:34: warning: Dereference of null pointer if
147 (currentContext->hContext == *(int32_t *)key) ^
148 * [r5538] src/winscard_clnt.c: SCardStatus(): initialize a dummy
149 variable to avoid warnings
150
151 src/winscard_clnt.c:1451:2: warning: Assigned value is garbage or
152 undefined dwReaderLen = *pcchReaderLen; ^ ~~~~~~~~~~~~~~
153 src/winscard_clnt.c:1452:2: warning: Assigned value is garbage or
154 undefined dwAtrLen = *pcbAtrLen; ^ ~~~~~~~~~~
155 * [r5537] src/winscard_clnt.c: Avoid a potential crash if NULL
156 values are used
157
158 src/winscard_clnt.c:226:27: warning: Dereference of null pointer
159 if (channelMap->hCard == *(SCARDHANDLE *)key) ^
160 src/winscard_clnt.c:226:18: warning: Dereference of null pointer
161 if (channelMap->hCard == *(SCARDHANDLE *)key) ^
162 src/winscard_clnt.c:260:18: warning: Dereference of null pointer
163 if (contextMap->hContext == *(SCARDCONTEXT *) key) ^
164 src/winscard_clnt.c:260:30: warning: Dereference of null pointer
165 if (contextMap->hContext == *(SCARDCONTEXT *) key) ^
166 * [r5536] src/winscard_clnt.c: SCardEstablishContext(): remove
167 useless affectation
168
169 src/winscard_clnt.c:439:5: warning: Value stored to 'ret' is
170 never read ...ret = execl(PCSCD_BINARY, "pcscd", "--auto-exit",
171 param, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172 * [r5535] src/winscard_clnt.c: SCardEndTransaction(): remove
173 useless code
174
175 src/winscard_clnt.c:1269:2: warning: Value stored to 'randnum' is
176 never read randnum = 0; ^
177 * [r5534] src/winscard.c: remove unused affectations
178
179 src/winscard.c:565:4: warning: Value stored to 'rv' is never read
180 rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^
181 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
182 src/winscard.c:835:4: warning: Value stored to 'rv' is never read
183 rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^
184 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185 src/winscard.c:1095:4: warning: Value stored to 'rv' is never
186 read rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^
187 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
188 * [r5533] clang-analyze.sh: Do not analyze tokenparser.c since it
189 is generated by flex
190 * [r5532] src/readerfactory.c: RDR_CLIHANDLES_seeker(): avoid a
191 potential crash if NULL values are used
192
193 src/readerfactory.c:72:30: warning: Dereference of null pointer
194 if (rdrCliHandles->hCard == *(SCARDHANDLE *)key) ^
195 src/readerfactory.c:72:21: warning: Dereference of null pointer
196 if (rdrCliHandles->hCard == *(SCARDHANDLE *)key) ^
197 * [r5531] src/readerfactory.c: RFAddReader(): remove unused
198 affectation
199
200 src/readerfactory.c:344:4: warning: Value stored to 'rv' is never
201 read rv = RFRemoveReader(readerName, port); ^
202 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
203 * [r5530] src/readerfactory.c: RFAddReaderHandle(): return the
204 error code if any
205
206 src/readerfactory.c:1116:3: warning: Value stored to 'rv' is
207 never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~
208 src/readerfactory.c:1103:3: warning: Value stored to 'rv' is
209 never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~
210 src/readerfactory.c:1095:3: warning: Value stored to 'rv' is
211 never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~
212
2132011-01-18 Ludovic Rousseau
214
215 * [r5525] src/pcscdaemon.c: Remove useless code
216
217 src/pcscdaemon.c:85:2: warning: Value stored to 'rv' is never
218 read rv = 0; ^ ~ src/pcscdaemon.c:175:2: warning: Value stored to
219 'rv' is never read rv = 0; ^ ~
220 * [r5524] src/ifdwrapper.c: IFDPowerICC(): remove useless code
221
222 src/ifdwrapper.c:294:2: warning: Value stored to 'ret' is never
223 read ret = ATRDecodeAtr(&sSmartCard, pucAtr, *pdwAtrLen); ^
224 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 src/ifdwrapper.c:268:2: warning: Value stored to 'rv' is never
226 read rv = IFD_SUCCESS; ^ ~~~~~~~~~~~
227 * [r5523] src/eventhandler.c: EHStatusHandlerThread(): check the
228 return value of IFDStatusICC()
229
230 Thanks to clang(1) for the warning src/eventhandler.c:235:2:
231 warning: Value stored to 'rv' is never read rv =
232 IFDStatusICC(rContext, &dwStatus); ^
233 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234 * [r5522] src/eventhandler.c: EHStatusHandlerThread(): remove
235 unused code
236
237 src/eventhandler.c:233:2: warning: Value stored to
238 'dwCurrentState' is never read dwCurrentState = 0; ^ ~
239 src/eventhandler.c:232:2: warning: Value stored to
240 'readerSharing' is never read readerSharing = 0; ^ ~
241 * [r5521] src/atrhandler.c: ATRDecodeAtr(): remove unused code
242
243 src/atrhandler.c:55:2: warning: Value stored to 'p' is never read
244 p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~~~~~~~~~~~
245 src/atrhandler.c:55:6: warning: Although the value stored to 'K'
246 is used in the enclosing expression, the value is never actually
247 read from 'K' p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~~~~~~~
248 src/atrhandler.c:55:10: warning: Although the value stored to
249 'TCK' is used in the enclosing expression, the value is never
250 actually read from 'TCK' p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~
251 src/atrhandler.c:55:16: warning: Although the value stored to
252 'Y1i' is used in the enclosing expression, the value is never
253 actually read from 'Y1i' p = K = TCK = Y1i = T = 0; ^ ~~~~~
254 src/atrhandler.c:55:22: warning: Although the value stored to 'T'
255 is used in the enclosing expression, the value is never actually
256 read from 'T' p = K = TCK = Y1i = T = 0; ^ ~
257 * [r5520] clang-analyze.sh: script to call clang --analyze
258 * [r5519] splint.sh: No more scf files since revision 4486
259 * [r5518] src/winscard_clnt.c: SCardGetStatusChange(): avoids a
260 compiler warning
261
262 winscard_clnt.c:1875:33: warning: comparison of integers of
263 different signs: 'uint32_t' (aka 'unsigned int') and 'int'
264 [-Wsign-compare] ...if (rContext->eventCounter != currentCounter)
265 ~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
266 * [r5517] src/readerfactory.c: Add an explicit cast to avoid a
267 compiler warning
268
269 readerfactory.c:1033:45: warning: comparison of integers of
270 different signs: 'unsigned long' and 'SCARDHANDLE' (aka 'long')
271 [-Wsign-compare] if ((rContext->dwIdentity + randHandle) ==
272 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
273
2742011-01-14 Ludovic Rousseau
275
276 * [r5509]
277 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py:
278 Also initialize the state of the PnP special reader (For Mac OS
279 X)
280 * [r5508] src/hotplug_macosx.c: HPSearchHotPluggables(): use the
281 same naming convention as used by Apple PC/SC layer on Leopard
282 (and later). The reader friendly name is used instead of
283 "usb:%04x/%04x" as documented in IFDHandler v3 API at
284 http://pcsclite.alioth.debian.org/api/group__IFDHandler.html#gabb9fe35a68fa080ce9397f0b830b1e7e
285
286 The same driver source code can be used by Apple PC/SC layer and
287 by this pcsc-lite.
288 * [r5507] src/hotplug_macosx.c: Fix compiler warning
289
290 hotplug_macosx.c: In function ‘HPDriversGetFromDirectory’:
291 hotplug_macosx.c:150: warning: comparison between signed and
292 unsigned
293 * [r5506] c.sh: Remove commented CFLAGS definition
294 * [r5505] src/PCSC/pcsclite.h.in, src/PCSC/wintypes.h: Mac OS X
295 "port" - Define Windows types as they are defined on Mac OS X in
296 /System/Library/Frameworks/PCSC.framework/Headers/wintypes.h -
297 Pack structures as they are packed on Mac OS X in
298 /System/Library/Frameworks/PCSC.framework/Headers/pcsclite.h
299
300 With these changes it is possible to build this pcsc-lite on Mac
301 OS X and use it with an application built using the PCSC
302 Framework headers provided by Apple.
303
304 One application is to temporarily replace the Apple PCSC layer by
305 a better/working one.
306 * [r5504] src/PCSC/pcsclite.h.in: Use LONG instead of long for
307 SCARDCONTEXT and SCARDHANDLE so that the exact type can be easily
308 changed by editing PCSC/wintypes.h
309
310 By default: typedef long LONG; so no change
311
3122011-01-13 Ludovic Rousseau
313
314 * [r5501] doc/pcscd.8.in: Remove references to a init.d/pcscd
315 script since pcscd is autostarted by default now.
316 * [r5500] doc/reader.conf.5.in: Use @confdir_exp@ instead of
317 (removed) @confdir@
318
3192011-01-12 Ludovic Rousseau
320
321 * [r5498] doc/pcscd.8.in: Use @confdir_exp@ instead of
322 @sysconfdir_exp@
323
324 Closes [#312929] @sysconfdir_exp@ not expanded in manual page
325
3262011-01-07 Ludovic Rousseau
327
328 * [r5496] src/readerfactory.c: RFAddReader(): correctly initialize
329 the pthCardEvent field for the other slots. The bug occured with
330 a multi slot reader and a driver with no
331 TAG_IFD_POLLING_THREAD_WITH_TIMEOUT function (as is the case with
332 my CCID driver since revision 5495)
333
3342011-01-06 Ludovic Rousseau
335
336 * [r5491] UnitaryTests/SCardConnect_DIRECT2.py: Add comments
337 * [r5490] src/winscard.c: SCardDisconnect(): Switch to
338 POWER_STATE_GRACE_PERIOD unless the card was not powered
339
340 In the previous implementation the state was changed to
341 POWER_STATE_GRACE_PERIOD only if the previous state was
342 POWER_STATE_INUSE. So if a SCARD_SHARE_DIRECT connection was used
343 the card state was not set POWER_STATE_INUSE and a power off
344 action was immediate at the SCardDisconnect(). Not nice if the
345 card is reused just after.
346
3472011-01-04 Ludovic Rousseau
348
349 * [r5478] src/winscard_svc.c: ContextThread(): in command
350 CMD_GET_READERS_STATE, wait until all the readers are ready (ATR
351 available) before sending the reader states.
352
353 The problem arrives when you connect two readers at the same time
354 (and one of them is slow to get the ATR). SCardGetStatusChange()
355 must not exit with one reader in state READER_NOT_INITIALIZED (as
356 implemented in revision 5217)
357
3582010-12-12 Ludovic Rousseau
359
360 * [r5442] ChangeLog, configure.in: release 1.6.6
361 * [r5441] src/simclist.c: Reapply change in revision 4986 since the
362 problem was not corrected in version 1.5 of simclist.
363
3642010-12-11 Ludovic Rousseau
365
366 * [r5440] src/winscard_msg.c: Use LONG instead of int to store
367 PC/SC return codes like SCARD_E_*
368
369 The problem comes from sign extenstion from int to LONG int rv =
370 SCARD_E_TIMEOUT; /* 0x8010000A */ is (sign) extended into a LONG
371 = 0xFFFFFFFF8010000A
372
373 So the line in winscard_clnt.c if (SCARD_E_TIMEOUT == rv) is
374 never true on a 64-bits system because rv has been extended from
375 int to LONG. The comparison is then between 0x8010000A and
376 0xFFFFFFFF8010000A
377
3782010-12-08 Ludovic Rousseau
379
380 * [r5434] src/PCSC/debuglog.h, src/PCSC/ifdhandler.h,
381 src/atrhandler.h, src/dyn_generic.h, src/eventhandler.h,
382 src/hotplug.h, src/ifdwrapper.h, src/misc.h, src/parser.h,
383 src/powermgt_generic.h, src/prothandler.h, src/readerfactory.h,
384 src/sys_generic.h, src/winscard_msg.h, src/winscard_svc.h: Do not
385 use extern "C" since we are in C and not C++
386
387 Follow rule 13 of "On C Library Implementation" by Rusty Russell
388 http://rusty.ozlabs.org/?p=140
389
3902010-12-03 Ludovic Rousseau
391
392 * [r5429] src/configfile.l: Fix configfile.l: In function
393 'evaluatetoken': configfile.l:205: warning: assignment discards
394 qualifiers from pointer target type
395 * [r5427] ChangeLog, configure.in: release 1.6.5
396
3972010-11-26 Ludovic Rousseau
398
399 * [r5420] src/simclist.c: From SimCList version 1.5
400 http://mij.oltrelinux.com/devel/simclist/
401
4022010-11-23 Ludovic Rousseau
403
404 * [r5415] src/eventhandler.c, src/readerfactory.c,
405 src/readerfactory.h, src/winscard.c: Add a mutex to make the test
406 and set of the powerState field atomic.
407
4082010-11-22 Ludovic Rousseau
409
410 * [r5414] src/eventhandler.c, src/winscard.c: Log the new
411 powerState value at DEBUG level
412 * [r5412] src/readerfactory.c: Remove dead code
413
4142010-11-16 Ludovic Rousseau
415
416 * [r5402] src/winscard.c: SCardDisconnect(): change powerState to
417 POWER_STATE_GRACE_PERIOD only if the previous state was
418 POWER_STATE_INUSE
419
420 If the powerState was POWER_STATE_UNPOWERED then do NOT change to
421 POWER_STATE_GRACE_PERIOD. POWER_STATE_GRACE_PERIOD indicates that
422 the card is powered on. That is the case if mode is
423 SCARD_SHARE_DIRECT at SCardConnect()
424 * [r5401] src/winscard.c: SCardConnect(): change the power state to
425 POWER_STATE_INUSE only if the card has been powered on. The card
426 is NOT powered on if mode is SCARD_SHARE_DIRECT
427 * [r5400] src/eventhandler.c, src/readerfactory.c: Move the zeroing
428 of the reader context from EHDestroyEventHandler() to
429 RFUnInitializeReader() where it is more appropriate.
430
431 The reader context shall be valid until the reader is
432 uninitialized in RFUnInitializeReader() and most importantly
433 after IFDCloseIFD() is called.
434 * [r5399] src/readerfactory.c: RFInitializeReader(): if
435 IFDOpenIFD() fails just mark the reader as "not correctly
436 started". This will present a call to IFDCloseIFD() in
437 RFUnInitializeReader() (revision 5393)
438
4392010-11-09 Ludovic Rousseau
440
441 * [r5393] src/readerfactory.c: RFUnInitializeReader(): Do not close
442 a reader if IFDOpenIFD() failed in RFInitializeReader()
443 * [r5392] src/readerfactory.c: RFRemoveReader(): destroy the event
444 handler only if it exists already
445
4462010-11-08 Ludovic Rousseau
447
448 * [r5391] src/winscard_msg_srv.c: ProcessCommonChannelRequest(): no
449 need to define serv_adr as static. Free a few bytes of memory.
450 * [r5390] src/winscard_msg.c, src/winscard_msg.h,
451 src/winscard_msg_srv.c: Remove CleanupSharedSegment() and do not
452 call it anymore
453
454 The function is not about shared segment any more The file
455 PCSCLITE_CSOCK_NAME will be removed in clean_temp_files() at exit
456 anyway
457 * [r5388] src/winscard_msg.c: MessageSend(): return
458 SCARD_E_NO_SERVICE instead of SCARD_F_COMM_ERROR if the daemon
459 died and we reveice a EPIPE error.
460 * [r5387] src/winscard_msg.c: MessageSendWithHeader(): do not send
461 a 0 length buffer.
462
463 Some commands only have a header and no data like
464 CMD_GET_READERS_STATE
465 * [r5386] src/winscard_clnt.c, src/winscard_msg.c,
466 src/winscard_msg.h, src/winscard_svc.c: MessageReceiveTimeout(),
467 MessageSendWithHeader(), MessageSend() and MessageReceive() now
468 returns a PC/SC error code instead of an internal value. So the
469 callers can just return the error code to the application with no
470 transcoding.
471 * [r5385] src/winscard_clnt.c: Move SCardInvalidateHandles() in the
472 same #ifdef DO_CHECK_SAME_PROCESS as SCardCheckSameProcess()
473 since it is only used in this case.
474 * [r5384] src/winscard_clnt.c: No need to check the server pid
475 anymore. If the server is restarted the socket communication will
476 fail and an "RPC transport error" SCARD_F_COMM_ERROR error will
477 be returned
478
479 This check was needed when the readers state was stored in
480 /var/run/pcscd/pcscd.pub. But that is no more the case. Every
481 command now uses the client/server Unix socket.
482
4832010-11-05 Ludovic Rousseau
484
485 * [r5379] src/winscard_msg.h: InitializeSocket() and
486 ProcessEventsServer() are used by the server side so must be
487 declared in the #ifdef PCSCD part of the header file
488 * [r5378] src/winscard_msg.h: Add missing getSocketName()
489 declaration used by winscard_clnt.c and winscard_msg.c
490 * [r5377] src/winscard_msg.h: Reorder the function definitions as
491 they are in winscard_msg.c in revision 5371
492 * [r5376] src/readerfactory.h: Remove definition of FctMap_V1 now
493 useless since revision 5321
494 * [r5375] src/atrhandler.c, src/atrhandler.h: Remove typedef of
495 PSMARTCARD_EXTENSION and use SMARTCARD_EXTENSION * instead
496
4972010-11-04 Ludovic Rousseau
498
499 * [r5373] src/winscard_clnt.c, src/winscard_msg.c: It is now
500 possible to configure the local socket name to use using the
501 environment variable PCSCLITE_CSOCK_NAME
502
503 This is used by Estobuntu LTSP to redirect the smart card reader
504 on the light terminal display to the application running on the
505 server. They use a patched SSH version to redirect
506 /var/run/pcscd/pcscd.comm on the client to ~/.pcscd.comm on the
507 server.
508 * [r5372] src/winscard_msg.c: MessageReceiveTimeout(): remove pcscd
509 specific code inside a function used only by libpcsclite
510 * [r5371] src/winscard_msg.c: reorganize the functions in 3
511 categories: - functions used by pcscd only:
512 CleanupSharedSegment() - functions used by libpcsclite only:
513 ClientSetupSession(), ClientCloseSession(),
514 MessageReceiveTimeout(), MessageSendWithHeader() - functions used
515 by pcscd and libpcsclite: MessageSend(), MessageReceive()
516
517 We gain on the code size: 1104 bytes for pcscd and 101 bytes for
518 libpcsclite
519
5202010-11-03 Ludovic Rousseau
521
522 * [r5370] src/atrhandler.c: ATRDecodeAtr(): avoids a buffer
523 overflow with badly formed ATR like 3B FF 11 22 33 F0 11 22 33 F0
524 11 22 33 F0 11 22 33 F0 11 22 33 F0 11 22 33 F0 11 22 33 00 11 22
525 33
526
527 Thanks to Rafael Dominguez Vega for the bug report
528
5292010-10-28 Ludovic Rousseau
530
531 * [r5368] src/winscard.c: Move declaration of dwAtrLen closer to
532 where it is used.
533 * [r5367] src/winscard.c: SCardConnect(): log the ATR in case of
534 auto power on
535
536 The ATR may be different from the previous one if the card has a
537 cold and a warm ATR.
538
5392010-10-26 Ludovic Rousseau
540
541 * [r5364] src/winscard.c: SCardDisconnect(): check for card removal
542 in case DISABLE_AUTO_POWER_ON
543 * [r5359] src/winscard.c: Doxygen documentation is done on the
544 client side (winscard_clnt.c) so remove documentation of
545 SCardEstablishContext()
546 * [r5358] src/winscard.c: SCardTransmit(): do not check for NULL
547 pointers since we are called from ContextThread() with correct
548 values
549 * [r5357] src/winscard.c: SCardReconnect(): do not check for
550 pdwActiveProtocol NULL pointer since we are called from
551 ContextThread() with a correct value
552 * [r5356] src/winscard.c: SCardConnect(): do not check for NULL
553 pointers since we are called from ContextThread() with correct
554 values
555 * [r5355] src/winscard.c: SCardEstablishContext(): do not check for
556 phContext NULL pointer since we are called from ContextThread()
557 with a correct value
558
5592010-10-25 Ludovic Rousseau
560
561 * [r5354] src/winscard.c: SCardConnect(): test for not
562 SCARD_POWERED instead of SCARD_SWALLOWED
563 * [r5351] src/hotplug_linux.c: Use the new bundle parser code
564 * [r5350] src/winscard.c: SCardConnect(): log an error if auto
565 power on failed
566 * [r5349] Makefile.am: Add a fix-rights rule at the top level to
567 call the fix-rights rule in src/
568
5692010-10-23 Ludovic Rousseau
570
571 * [r5348] src/winscard.c: SCardConnect(): check the returned value
572 of IFDPowerICC() to change the readerState if power up succeeded
573 * [r5347] src/winscard.c: SCardConnect(): power up the card before
574 checking for its SCARD_SWALLOWED state.
575
576 If a card fails to power up on card insertion a new power up will
577 be tried on SCardConnect().
578
5792010-10-22 Ludovic Rousseau
580
581 * [r5346] src/winscard_clnt.c: Remove the "This function " in the
582 Doxygen brief line
583 * [r5345] UnitaryTests/SCardCancel2.py: SCardCancel() should do
584 nothing if no cancellable call is ongoing bug fixed in revision
585 5344
586 * [r5344] src/winscard_clnt.c: Only SCardGetStatusChange() can be
587 cancelled using SCardCancel()
588
589 Thanks to Jan Rochat for the bug report
590 https://bugs.launchpad.net/ubuntu/+source/pcsc-lite/+bug/647545
591 * [r5343] src/eventhandler.c, src/eventhandler.h,
592 src/hotplug_libhal.c, src/hotplug_macosx.c, src/ifdwrapper.c,
593 src/misc.h, src/pcscdaemon.c, src/winscard.c,
594 src/winscard_clnt.c, src/winscard_msg.c: Remove spaces and tabs
595 at end of line
596 * [r5342] src/winscard_svc.c: Reformat
597 * [r5341] src/PCSC/winscard.h, src/winscard.c, src/winscard_clnt.c,
598 src/winscard_msg.h, src/winscard_svc.c: SCardCancelTransaction()
599 is no more provided. This function is not provided by Microsoft
600 and is deprecated since 2005 in pcsc-lite.
601 * [r5340] src/winscard.c: Reindent
602 * [r5339] src/winscard_clnt.c: Reformat
603 * [r5338] src/PCSC/winscard.h, src/winscard_clnt.c:
604 SCardSetTimeout() is no more provided. This function is not
605 provided by Microsoft and is deprecated since 2004 in pcsc-lite.
606 * [r5337] src/winscard.c: SCardSetTimeout() is implemented (and
607 deprecated) on the client side
608 * [r5336] src/winscard.c: SCardListReaders() and SCardCancel() are
609 implemented on the client side
610 * [r5335] src/winscard.c: SCardDisconnect(): if
611 DISABLE_AUTO_POWER_ON is defined then do not power on the card if
612 SCARD_UNPOWER_CARD is used.
613 * [r5334] src/eventhandler.c, src/pcscd.h.in: Move
614 DISABLE_ON_DEMAND_POWER_ON and DISABLE_AUTO_POWER_ON defines from
615 eventhandler.c to pcscd.h.in so they are visible by all the .c
616 files
617 * [r5333] src/winscard.c: SCardConnect(): remove debug log
618
6192010-10-21 Ludovic Rousseau
620
621 * [r5332] src/eventhandler.c: If DISABLE_AUTO_POWER_ON is defined
622 then do not automatically power on the card. The card will be
623 powered on on the first SCardConnect()
624 * [r5331] src/readerfactory.c: Remove extra parenthesis We are
625 using C not Lisp :-)
626 * [r5328] TODO, src/PCSC/ifdhandler.h, src/eventhandler.c,
627 src/eventhandler.h, src/pcscd.h.in, src/readerfactory.c,
628 src/readerfactory.h, src/winscard.c: Power on the card _only_ if
629 an application requests a connection see Alioth bug #301965
630
631 You can disable the feature using DISABLE_ON_DEMAND_POWER_ON in
632 src/eventhandler.c
633
6342010-10-17 Ludovic Rousseau
635
636 * [r5324] src/Makefile.am: PCSC/reader.h is no more generated from
637 PCSC/reader.h.in Directly use the filename in
638 nobase_include_HEADERS
639
6402010-10-15 Ludovic Rousseau
641
642 * [r5323] UnitaryTests/SCardStatus.py: Add a call to
643 SCardDisconnect() before SCardReleaseContext()
644 * [r5322] src/eventhandler.h, src/winscard.c, src/winscard_clnt.c:
645 Rename the sharing states unsing the PCSCLITE_SHARING_ prefix
646 Doxygen: document the READER_STATE structure
647 * [r5321] src/PCSC/ifdhandler.h, src/eventhandler.c,
648 src/ifdwrapper.c, src/ifdwrapper.h, src/readerfactory.c,
649 src/readerfactory.h: Remove the support of IFDHandler v1 API. I
650 don't know any driver using this API.
651
652 We can now simplify the API of IFDStatusICC() and remove the ATR
653 related parameters. These paremeters were only used by the
654 IFDHandler v1 API.
655
656 diffstat says: 6 files changed, 51 insertions(+), 335
657 deletions(-)
658
6592010-10-14 Ludovic Rousseau
660
661 * [r5317] src/hotplug_libhal.c: ifdCapabilities driver feature is
662 not used with libhal (and has never been). Remove dead/unused
663 code.
664
6652010-10-13 Ludovic Rousseau
666
667 * [r5316] src/winscard.c: Reformat
668 * [r5315] src/readerfactory.c, src/winscard.c: Use the simpler form
669 of IFDPowerICC(..., IFD_POWER_DOWN, ...) introduced in revision
670 5314
671 * [r5314] src/ifdwrapper.c: IFDPowerICC(): allow to use NULL for
672 pucAtr and pdwAtrLen to make power down easy with
673 IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL);
674 * [r5313] src/winscard.c: Correctly set dwAtrLen to the sizeof the
675 ATR array before calling IFDPowerICC().
676
677 Some drivers do not write more that dwAtrLen bytes in cardAtr
678 array.
679
6802010-10-12 Ludovic Rousseau
681
682 * [r5308] src/winscard_msg.h: Doxygen: SCARD_GET_STATUS_CHANGE is
683 not used anymore
684 * [r5307] src/winscard.c: Remove SCardStatus() (dead code) on the
685 server side.
686 * [r5306] src/winscard.c: SCardEndTransaction(): use the same code
687 to reset a card as in revision 5301
688 * [r5305] src/winscard.c: SCardReconnect(), SCardDisconnect() and
689 SCardEndTransaction(): reset the value of dwAtrLen before the
690 second call to IFDPowerICC() so that the driver gets a correct
691 value if the first call to IFDPowerICC(IFD_POWER_DOWN) set
692 dwAtrLen=0
693
694 Thanks to Frank Morgner for the bug report Closes: [#312754]
695 IFDHPowerICC is called with IFD_POWER_UP and *AtrLength==0
696 * [r5304] src/pcsc-wirecheck-gen.c, src/winscard.c,
697 src/winscard_clnt.c, src/winscard_msg.h, src/winscard_svc.c: A
698 large part of SCardStatus() is done on the client side using
699 readerStates[]. So remove a few lines of dead code on the server
700 side.
701 * [r5303] UnitaryTests/SCardStatus.py: Call SCardStatus() a second
702 time after a keypress
703 * [r5302] UnitaryTests/SCardStatus.py: Unit test for SCardStatus()
704 * [r5301] src/winscard.c: SCardReconnect(): Reorganize the code to
705 manage ATR and readerState after a power up. Remove a call to
706 IFDStatusICC() to know if a card is present or not since
707 IFDPowerICC() already gives us this information.
708
709 SCardDisconnect(): Use the same code as above
710 * [r5300] src/eventhandler.c, src/winscard.c, src/winscard_clnt.c:
711 Use uint32_t readerState instead of DWORD dwStatus to store the
712 state of the reader. DWORD and uint32_t may be different.
713 * [r5299] src/winscard.c: SCardReconnect(): return
714 SCARD_E_NO_SMARTCARD when card is removed and
715 SCARD_W_UNRESPONSIVE_CARD when card is unresponsive instead of
716 SCARD_E_PROTO_MISMATCH
717 * [r5298] src/winscard_msg.h: Increment minor version because of
718 changes in revision 5290
719 * [r5297] doc/Makefile.am, doc/ifdhandler-3.tex: Remove the
720 deprecated LaTeX version of IFDHandler documentation
721
7222010-10-11 Ludovic Rousseau
723
724 * [r5296] src/configfile.l: evaluatetoken(): the CHANNELID
725 parameter can also be a decimal number.
726 * [r5294] src/PCSC/ifdhandler.h, src/configfile.l: reader.conf
727 configuration: If you want to use IFDHCreateChannel() instead of
728 IFDHCreateChannelByName() then do not use any DEVICENAME line in
729 the configuration file. IFDHCreateChannel() will then be called
730 with the CHANNELID parameter.
731
732 Closes: [#312749] Should call IFDHCreateChannel for serial driver
733 with DEVICENAME /dev/null
734 * [r5293] src/readerfactory.c, src/winscard_clnt.c,
735 src/winscard_svc.c: list_* functions return an decimal integer so
736 use %d insteaf of %X to log the error value.
737 * [r5292] src/readerfactory.c: Add a "0x" before hex displays
738
7392010-10-10 Ludovic Rousseau
740
741 * [r5291] src/winscard_clnt.c: Doxygen SCardStatus(): *pdwState
742 also contains a number of events
743 * [r5290] src/eventhandler.c, src/eventhandler.h,
744 src/winscard_clnt.c: Split the card event counter out of the card
745 event state on the pcscd side to simplify the code in
746 EHStatusHandlerThread()
747
748 The two information are combined on the client side in
749 SCardGetStatusChange() and SCardStatus()
750 * [r5289]
751 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_loop.py:
752 Exit the endless loop in case of error
753 * [r5288] src/PCSC/pcsclite.h.in: struct SCARD_READERSTATE: use
754 "DWORD" instead of "unsigned long" type for the fields
755 dwCurrentState, dwEventState and cbAtr
756
757 This is compliant to the Windows definition and allows to
758 redefine DWORD to something other than unsigned long, like
759 uint32_t
760 * [r5287] src/PCSC/pcsclite.h.in, src/error.c:
761 pcsc_stringify_error(): Use "LONG" instead of "long" as parameter
762 type to reflect the return type from winscard.h
763
764 The LONG type may be redefined in PCSC/wintypes.h to int32_t for
765 example
766
7672010-10-05 Ludovic Rousseau
768
769 * [r5281] src/winscard_clnt.c: Doxygen: do not document unused
770 SCARD_STATE_ATRMATCH and SCARD_STATE_PRESENT states in
771 SCardGetStatusChange()
772
773 Thanks to Martin Paljak for the patch
774 * [r5280]
775 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_loop.py:
776 Call SCardGetStatusChange() in a endless loop
777 * [r5279] src/tokenparser.l: Doxygen: fix documentation of
778 LTPBundleFindValueWithKey()
779 * [r5278] src/winscard_clnt.c: SCardGetStatusChange(): include the
780 event counter in dwEventState even if dwCurrentState contains a
781 counter at 0 (default).
782 * [r5277] doc/doxygen.conf.in: Update from Doxygen 1.5.5 to 1.7.1
783
784 warning: Tag `DETAILS_AT_TOP' at line 163 of file
785 doc/doxygen.conf has become obsolete. To avoid this warning
786 please update your configuration file using "doxygen -u"
787
7882010-10-01 Ludovic Rousseau
789
790 * [r5275] src/pcscdaemon.c: main(): do not limit rights if run as
791 root
792
7932010-09-19 Ludovic Rousseau
794
795 * [r5262] src/Makefile.am: Do not change the access rights of pcscd
796 in the install rule but in another one. This is needed when
797 building the package in a system without the pcscd group.
798
7992010-09-14 Ludovic Rousseau
800
801 * [r5256] configure.in: Do not generate src/PCSC/reader.h from
802 src/PCSC/reader.h.in any more
803 * [r5255] src/PCSC/reader.h: HOST_TO_CCID_16() and
804 HOST_TO_CCID_32() are now identity functions
805
806 Since CCID 1.4.1 (revision 5252) the byte order is no more
807 important
808 * [r5254] src/PCSC/reader.h, src/PCSC/reader.h.in: Rename
809 reader.h.in in reader.h
810
8112010-09-04 Ludovic Rousseau
812
813 * [r5245] src/Makefile.am: Install pcscd as sgid pcscd instead of
814 suid root
815 * [r5241] src/hotplug_libhal.c: HPReadBundleValues(): do not fail
816 if the key "CFBundleName" is not found in a driver Info.plist.
817 This key should only be defined for the CCID class driver.
818
8192010-09-03 Ludovic Rousseau
820
821 * [r5231] src/winscard_msg.c: Doxygen: remove documentation about
822 the (now removed) timeOut parameter of MessageSend() and
823 MessageSendWithHeader()
824
8252010-09-02 Ludovic Rousseau
826
827 * [r5227] src/winscard_clnt.c: Doxygen: clarify the use of one
828 different SCARDCONTEXT per thread and the expection for
829 SCardCancel()
830 * [r5226] src/winscard_svc.c: Remove protocol_major, protocol_minor
831 fields from struct _psContext since they are not used.
832 * [r5225] src/winscard_msg.h: update PROTOCOL_VERSION_MINOR since
833 struct pubReaderStatesList changed (readerID removed)
834 * [r5224] src/winscard_svc.c: ContextThread(): check that the
835 procotol major.minor is the same for the daemon and lib. If not
836 just fail. We are not backward compatible.
837 * [r5219] src/winscard_clnt.c: Complete change in revision 5212
838
839 SCardGetStatusChange() and SCardListReaders() were broken.
840 * [r5218] src/ifdwrapper.c, src/readerfactory.c,
841 src/readerfactory.h: Rename lpcLibrary in library and lpcDevice
842 in device
843 * [r5217] src/eventhandler.c, src/eventhandler.h, src/pcscdaemon.c,
844 src/readerfactory.c, src/readerfactory.h: Wait until all
845 connected readers have a chance to power up a possibly inserted
846 card.
847
848 This is needed when auto start is used and a card is already
849 present in a USB reader. The reader presence is correctly
850 reported to libpcsclite but the power up has not yet happen. So
851 the ATR is not yet available.
852 * [r5216] src/eventhandler.c, src/readerfactory.c,
853 src/readerfactory.h, src/winscard_clnt.c: Rename lpcReaderName in
854 readerName and use (char *) instead of LPSTR
855 * [r5215] src/eventhandler.c, src/readerfactory.c,
856 src/readerfactory.h, src/winscard.c: Get rid of the lpcReader[]
857 field in struct ReaderContext
858
859 The reader name is already present in readerState->readerName
860 linked from struct ReaderContext
861
862 Gain: MAX_READERNAME*PCSCLITE_MAX_READERS_CONTEXTS = 100*16 =
863 1600 bytes fo RAM on pcscd
864 * [r5214] src/winscard.c: SCardStatus(): remove a useless test
865
866 lpcReader can't be larger than MAX_BUFFER_SIZE (264) since its
867 buffer is only MAX_READERNAME (100) bytes long. And I don't see
868 why we need this test anyway.
869 * [r5213] src/eventhandler.c, src/winscard.c: Complete change
870 started in revision 5212
871
872 rContext->readerState is never NULL now. So do not even check its
873 value.
874 * [r5212] src/eventhandler.c, src/eventhandler.h,
875 src/pcsc-wirecheck-gen.c, src/readerfactory.c,
876 src/winscard_clnt.c: Get rid of the readerID field in struct
877 pubReaderStatesList
878 * [r5211] src/readerfactory.c, src/readerfactory.h: Remove unused
879 RFSuspendAllReaders() and RFAwakeAllReaders()
880
8812010-08-31 Ludovic Rousseau
882
883 * [r5204] src/eventhandler.c: Reformat
884
8852010-08-30 Ludovic Rousseau
886
887 * [r5202] src/winscard_msg_srv.c: InitializeSocket(): do not set
888 the execution bit on the socket file. It is useless.
889
8902010-08-27 Ludovic Rousseau
891
892 * [r5196] src/debug.c, src/error.c, src/utils.c, src/utils.h: svn
893 propset svn:keywords 'Author Date Id Revision'
894 * [r5195] src/utils.c: GetDaemonPid(): use open(3) instead of
895 fopen(3) to avoid an internal malloc() call and gain some CPU
896 cycles
897 * [r5194] src/hotplug_libhal.c: HPAddDevice(): wait 1 millisecond
898 instead of 1 second until the device is visible to libusb/etc.
899
9002010-08-25 Ludovic Rousseau
901
902 * [r5183] src/winscard_clnt.c: Doxygen:
903 SCardCheckDaemonAvailability() do not invalidate handles after a
904 fork() any more
905
9062010-08-23 Ludovic Rousseau
907
908 * [r5179] src/hotplug_libusb.c: HPReadBundleValues(): use the new
909 Info.plist parsing API.
910
911 Parsing the CCID Info.plist (159 readers supported) was on a ARM9
912 machine 13193049 µs and is now 258262 µs => gain x51 or 5008%
913 * [r5178] src/readerfactory.c: RFBindFunctions(): rename rv in rvl
914 to avoid warnings warning: declaration of ‘rv’ shadows a previous
915 local
916
917 Also change type from DWORD to int since DYN_GetAddress() returns
918 an int
919 * [r5177] src/readerfactory.c: RFLoadReader(): optimize the
920 detection of Ifd Handler version by checking for
921 "IFDHCreateChannelByName", "IFDHCreateChannel" and then
922 "IO_Create_Channel" instead of the 3 symbols at once.
923
924 Also suppress the error message suppression. Ifd handler v2 or v1
925 will display one or two errors for symbols not found.
926 * [r5175] src/hotplug_libhal.c: HPReadBundleValues(): duplicate the
927 readerName and CFBundleName strings since the originals are
928 destroyed by bundleRelease() later
929
930 The reader names were corrupted.
931
9322010-08-18 Ludovic Rousseau
933
934 * [r5160] ChangeLog: Fix typo
935
9362010-08-17 Ludovic Rousseau
937
938 * [r5157] src/hotplug_libhal.c: HPReadBundleValues(): use the new
939 Info.plist parsing API.
940
941 Parsing the CCID Info.plist (159 readers supported) was on a i386
942 machine 264306 µs and is now 5547 µs => gain x47 or 4600%
943 * [r5156] src/parser.h, src/tokenparser.l: parse the Info.plist
944 file only once and generate a list of key/values
945 * [r5152] src/hotplug_libusb.c: HPSearchHotPluggables(): create the
946 synchronisation pipe only if the HPEstablishUSBNotifications
947 thread is created. Avoids to leak resources.
948 * [r5151] src/hotplug_libusb.c: HPSearchHotPluggables(): wait for
949 initial readers to setup only if HPEstablishUSBNotifications is
950 created. Otherwise the process is blocked for ever.
951 * [r5150] src/hotplug_libhal.c: HPRegisterForHotplugEvents():
952 having no bundle for USB readers is not an error. USB
953 support/hotplug is just disabled.
954 * [r5149] src/pcscdaemon.c: main(): Log a message if
955 HPRegisterForHotplugEvents() fails
956 * [r5148] src/hotplug_libusb.c: Do not hardcode the libusb-1.0
957 include header path (remove the libusb-1.0/ part)
958
9592010-08-16 Ludovic Rousseau
960
961 * [r5147] configure.in: Do not hardcode the libusb.h path.
962
963 See Debian bug #591782 ccid: FTBFS on kfreebsd-*: configure:
964 error: libusb.h not found
965 * [r5146] c.sh: add --sysconfdir=/etc
966 * [r5145] src/pcscdaemon.c: Do not allow restricting defaults
967 values of --max-thread, --max-card-handle-per-thread or
968 --max-card-handle-per-reader when restricted
969 * [r5144] src/pcscdaemon.c: Do not allow APDU logging when
970 restricted
971 * [r5143] src/pcscdaemon.c: If the process is setuid or setgid it
972 may have some restrictions
973
974 Do not allow to specify a configuration file when restricted
975
9762010-08-15 Ludovic Rousseau
977
978 * [r5138] ChangeLog, configure.in: release 1.6.4
979 * [r5137] configure.in: Do not use sysconfdir as configuration
980 directory but ${sysconfdir}/reader.conf.d instead.
981
982 Use --enable-confdir=DIR if you want to set a specific value
983 without the reader.conf.d appended.
984
985 Thanks to Kalev Lember for the bug report
986 http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0150.html
987 * [r5135] ChangeLog, configure.in: release 1.6.3
988 * [r5134] src/PCSC/pcsclite.h.in, src/PCSC/winscard.h: Define
989 LPSCARD_READERSTATE since this is used in the MSDN prototype.
990
991 Use LPSCARD_READERSTATE in winscard.h instead of
992 (SCARD_READERSTATE *) to mimic the MSDN API.
993
994 This partly reverts changeset 5096
995
9962010-08-13 Ludovic Rousseau
997
998 * [r5130] UnitaryTests/SCard_fork.py: Also call SCardDisconnect()
999 and SCardReleaseContext() in the forked process
1000 * [r5129] src/winscard_svc.c: ContextThread(): goto exit if
1001 MSGCheckHandleAssociation() fails instead of just returning no
1002 error.
1003
1004 Something wrong happened on the client side (like a fork) and the
1005 client needs to call SCardEstablishContext() to create a new
1006 connection.
1007 * [r5128] src/winscard_svc.c: ContextThread(): fix goto label when
1008 it _is_ an overflow
1009 * [r5127] src/winscard_svc.c: ContextThread(): fix goto label when
1010 it is not an overflow
1011 * [r5126] src/winscard_clnt.c: Revert changeset 5102 to add
1012 profiling on the client side again.
1013
1014 ltrace(1) can't be used with a dynamically loaded (dlopen(3))
1015 library like it is the case with the majority of PKCS#11 client
1016 application.
1017 * [r5125] src/simclist.c: Reset mid field when the list is empty to
1018 avoid assert() errors
1019 * [r5124] src/winscard_svc.c: MSGCheckHandleAssociation(): check
1020 that the context handle is still valid. Calling a PC/SC function
1021 after SCardReleaseContext() is not supported.
1022 * [r5123] src/eventhandler.c: Fix typo in comment
1023
10242010-08-05 Ludovic Rousseau
1025
1026 * [r5118] configure.in: remove debug line
1027 * [r5117] configure.in: "/reader.conf.d" is only appended to
1028 sysconfdir if no value of sysconfdir is provided
1029
1030 Thanks to Patrice Angelini for the bug report
1031 * [r5114] src/hotplug_libusb.c: HPAddHotPluggable(): do not use
1032 libusb_strerror() since it is not yet available in current stable
1033 libusb (1.0.8)
1034 * [r5113] src/ifdwrapper.c: Fix compilation warnings
1035 ifdwrapper.c:166:7: warning: "IFDHANDLERv2" is not defined
1036 ifdwrapper.c:589:7: warning: "IFDHANDLERv2" is not defined
1037 ifdwrapper.c:640:7: warning: "IFDHANDLERv3" is not defined
1038 * [r5112] src/ifdwrapper.c: Check that either IFDHANDLERv1,
1039 IFDHANDLERv2 or IFDHANDLERv3 is defined if PCSCLITE_STATIC_DRIVER
1040 is used
1041 * [r5111] c.sh: No need to use -D_REENTRANT. It was needed for
1042 LinuxThreads but we do not use LinuxThreads since a long time.
1043
1044 See Debian bug #475101 "Remove obsolete -D_REENTRANT requirement"
1045
10462010-08-04 Ludovic Rousseau
1047
1048 * [r5107] ChangeLog, configure.in: release 1.6.2
1049 * [r5106] src/Makefile.am: Remove useless $(COREFOUNDATION) from
1050 libpcsclite_la_LIBADD The library has no Mac OS X specific code.
1051 * [r5105] src/Makefile.am: Remove undefined $(LIBSMARTCARD) from
1052 libpcsclite_la_LIBADD
1053 * [r5104] src/Makefile.am: libpcsclite does not use dlopen() so no
1054 need to link with $(LIBDL)
1055
10562010-08-03 Ludovic Rousseau
1057
1058 * [r5102] src/winscard_clnt.c: Remove client side profiling since
1059 we can use ltrace(1) with better results
1060 * [r5098] configure.in: Remove 2 debug traces
1061
10622010-08-02 Ludovic Rousseau
1063
1064 * [r5097] src/PCSC/winscard.h, src/winscard.c, src/winscard_clnt.c:
1065 Use "SCARD_IO_REQUEST *" instead of LPSCARD_IO_REQUEST and "const
1066 SCARD_IO_REQUEST *" instead of "LPCSCARD_IO_REQUEST
1067
1068 Should make the code more easy to read
1069 * [r5096] doc/example/pcsc_demo.c, src/PCSC/pcsclite.h.in,
1070 src/PCSC/winscard.h, src/testpcsc.c, src/utils/formaticc.c,
1071 src/winscard.c, src/winscard_clnt.c: Use SCARD_READERSTATE
1072 instead of SCARD_READERSTATE_A
1073
1074 Remove definitions of SCARD_READERSTATE_A PSCARD_READERSTATE_A
1075 and LPSCARD_READERSTATE_A types
1076 * [r5093] configure.in: Use $libdir instead of $prefix/lib to set
1077 the default value of usbdropdir
1078
1079 " Fedora uses /usr/lib on 32 bit and /usr/lib64 on 64 bit
1080 multilib platforms. "
1081
1082 Thanks to Kalev Lember for the idea.
1083 http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0108.html
1084 * [r5092] c.sh: sysconfdir=/etc by default if prefix=/usr so remove
1085 the --sysconfdir line
1086 * [r5091] UnitaryTests/SCardBeginTransaction_Disconnect.py,
1087 UnitaryTests/SCardConnect_DIRECT.py,
1088 UnitaryTests/SCardConnect_DIRECT2.py,
1089 UnitaryTests/SCardExclusiveBehaviour.py,
1090 UnitaryTests/SCardReconnect.py, UnitaryTests/reset_card.py: Do
1091 not duplicate the reader index to avoids problems when I want to
1092 change it.
1093
10942010-08-01 Ludovic Rousseau
1095
1096 * [r5082] configure.in: Set sysconfdir to /etc if prefix=/usr
1097
1098 You should have a default working configuration only with
1099 --prefix=/usr
1100
11012010-07-31 Ludovic Rousseau
1102
1103 * [r5081] c.sh: --enable-muscledropdir is no more supported by
1104 pcsc-lite since a long time. So remove the line.
1105 * [r5080] c.sh: --enable-usbdropdir=/usr/lib/pcsc/drivers is now
1106 the default value. So remove the line.
1107 * [r5079] configure.in: Default value of usbdropdir is now
1108 $prefix/lib/pcsc/drivers instead of $prefix/pcsc/drivers
1109
1110 The new path is the path used on Debian (with prefix-/usr). So no
1111 need to change the default value.
1112
11132010-07-27 Ludovic Rousseau
1114
1115 * [r5073] src/Makefile.am: Create empty directories used by drivers
1116
1117 Thanks to Kalev Lember for the patch
1118 http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0065.html
1119
11202010-07-26 Ludovic Rousseau
1121
1122 * [r5071] src/hotplug_libhal.c, src/pcscdaemon.c, src/utils.c,
1123 src/winscard.c: Do not affect and check a variable on the same
1124 line
1125 * [r5070] src/readerfactory.c: reformat
1126 * [r5069] src/winscard.c: Get the value of rContext before its use.
1127 A simple call to SCardTransmit() crashed with a NULL pointer.
1128
11292010-07-08 Ludovic Rousseau
1130
1131 * [r5066] src/readerfactory.c: fix crash with empty config dir
1132
1133 Thanks to Kalev Lember for the patch
1134 http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0017.html
1135
1136 pcscd attempts to read uninitialized memory and free an invalid
1137 pointer when its configuration directory is empty.
1138
1139 The patch fixes this by initializing reader_list to NULL.
1140
1141 ==2658== Conditional jump or move depends on uninitialised
1142 value(s) ==2658== at 0x40A2EF: RFStartSerialReaders
1143 (readerfactory.c:1324) ==2658== by 0x40743F: main
1144 (pcscdaemon.c:522) ==2658== ==2658== Use of uninitialised value
1145 of size 8 ==2658== at 0x40A2F5: RFStartSerialReaders
1146 (readerfactory.c:1327) ==2658== by 0x40743F: main
1147 (pcscdaemon.c:522) ==2658== ==2658== Conditional jump or move
1148 depends on uninitialised value(s) ==2658== at 0x4C26D25: free
1149 (vg_replace_malloc.c:325) ==2658== by 0x40A404:
1150 RFStartSerialReaders (readerfactory.c:1348) ==2658== by 0x40743F:
1151 main (pcscdaemon.c:522) ==2658== ==2658== Invalid free() / delete
1152 / delete[] ==2658== at 0x4C26D72: free (vg_replace_malloc.c:325)
1153 ==2658== by 0x40A404: RFStartSerialReaders (readerfactory.c:1348)
1154 ==2658== by 0x40743F: main (pcscdaemon.c:522) ==2658== Address
1155 0x4222148 is not stack'd, malloc'd or (recently) free'd
1156
1157 --- pcsc-lite-1.6.1/src/readerfactory.c.orig2010-07-04
1158 23:42:14.000000000 +0300 +++
1159 pcsc-lite-1.6.1/src/readerfactory.configuration2010-07-04
1160 23:42:23.000000000 +0300 @@ -1312,7 +1312,7 @@ void
1161 RFCleanupReaders(void) #ifdef USE_SERIAL int
1162 RFStartSerialReaders(const char *readerconf) {
1163 -readerconfSerialReader *reader_list; +reader_listSerialReader
1164 *reader_list = NULL; int i, rv; /* remember the configuration
1165 filename for * RFReCheckReaderConf() */
1166 * [r5065] c.sh, configure.in, src/pcscd.h.in: more idiomatic
1167 sysconfdir usage
1168
1169 Thanks to Kalev Lember for the patch
1170 http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0015.html
1171
1172 > URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5060 > Log:
1173 set --sysconfdir=/etc/reader.conf.d so that we parse any file in
1174 > this directory > > [...] > - --sysconfdir=/etc \ > +
1175 --sysconfdir=/etc/reader.conf.d \
1176
1177 It's more common to set sysconfdir to /etc and have configure
1178 script figure out the subdirectory. The configure script should
1179 always default to sane values when no arguments are specified.
1180 The default value for sysconfdir is /usr/local/etc; so the
1181 configure script should just append /reader.conf.d to that. Right
1182 now if the user doesn't override sysconfdir, pcsc will try to go
1183 through every .conf file in /usr/local/etc, and I don't think
1184 anything good will come out of that.
1185
1186 I have a patch attached which should make it more idiomatic:
1187 default to $sysconfdir/reader.conf.d directory.
1188
11892010-07-02 Ludovic Rousseau
1190
1191 * [r5062] src/pcscd.h.in: remove PCSCLITE_READER_CONFIG now useless
1192 * [r5061] src/pcscdaemon.c: main(): use PCSCLITE_CONFIG_DIR instead
1193 of PCSCLITE_READER_CONFIG to use the directory configured using
1194 --sysconfdir=...
1195 * [r5060] c.sh: set --sysconfdir=/etc/reader.conf.d so that we
1196 parse any file in this directory
1197 * [r5059] src/configfile.l: DBGetReaderListDir(): add a log line
1198 when parsing a directory (containing config files)
1199 * [r5058] src/readerfactory.c, src/readerfactory.h, src/winscard.c:
1200 RFCheckSharing(), RFLockSharing(), RFUnlockSharing() &
1201 RFUnlockAllSharing(): add the READER_CONTEXT * rContext parameter
1202 to avoid recomputing it internally (gain a few CPU cycles)
1203
12042010-06-29 Ludovic Rousseau
1205
1206 * [r5047] src/configfile.h, src/configfile.l, src/debuglog.c,
1207 src/dyn_hpux.c, src/dyn_macosx.c, src/dyn_unix.c,
1208 src/eventhandler.c, src/eventhandler.h, src/hotplug_generic.c,
1209 src/hotplug_libhal.c, src/hotplug_libusb.c, src/hotplug_linux.c,
1210 src/hotplug_macosx.c, src/ifdwrapper.c, src/ifdwrapper.h,
1211 src/pcscdaemon.c, src/readerfactory.c, src/readerfactory.h,
1212 src/sys_generic.h, src/sys_unix.c, src/testpcsc.c,
1213 src/winscard.c, src/winscard_clnt.c, src/winscard_msg.h,
1214 src/winscard_svc.c, src/winscard_svc.h: update copyright date
1215 * [r5046] src/hotplug_libusb.c: Remove declaration of 3 static
1216 functions since they are defined before use. Declaration is then
1217 useless.
1218 * [r5045] configure.in: check for libusb-1.0 instead of libusb-0.1
1219 * [r5044] src/hotplug_libusb.c: port from libusb-0.1 to libusb-1.0
1220
12212010-06-25 Ludovic Rousseau
1222
1223 * [r5040] UnitaryTests/MCT_ReaderDirect.py,
1224 UnitaryTests/control_get_firmware.py,
1225 UnitaryTests/control_switch_interface.py,
1226 UnitaryTests/stress_get_firmware.py: use readers() from
1227 smartcard.System instead of smartcard.pcsc.PCSCReader
1228
1229 readers() method is now a staticmethod of the PCSCReader class
1230 since pyscard subversion revision 500.
1231
12322010-06-24 Ludovic Rousseau
1233
1234 * [r5039] src/pcscdaemon.c: signal_trap(): implement a "Forced
1235 suicide" mechanism.
1236
1237 After 3 Ctrl-C without much reaction from pcscd (in fact the
1238 drivers) we force the suicide. Sometimes libusb is blocked in a
1239 kind of dead-lock and kill -9 was the only option.
1240 * [r5038] UnitaryTests/stress_apdu.py,
1241 UnitaryTests/stress_get_firmware.py: - better display the list of
1242 available readers - display the command duration and log to
1243 stderr if the duration is more than 1 second indicating a problem
1244 * [r5037] UnitaryTests/stress_get_firmware.py: get firmware version
1245 of Gemalto readers in loop
1246 * [r5036] UnitaryTests/stress_apdu.py: send an apdu in loop
1247
12482010-06-22 Ludovic Rousseau
1249
1250 * [r5032] src/PCSC/debuglog.h: Add Log5() function
1251 * [r5031] src/PCSC/ifdhandler.h: fix a comment
1252 * [r5029] src/PCSC/ifdhandler.h, src/eventhandler.c: Add support of
1253 TAG_IFD_STOP_POLLING_THREAD to request the stop of the driver
1254 polling function.
1255
12562010-06-21 Ludovic Rousseau
1257
1258 * [r5023] configure.in: Use AC_CHECK_FUNCS() instead of
1259 AC_CHECK_FUNC() to have HAVE_PTHREAD_CANCEL defined when needed.
1260
1261 AC_CHECK_FUNC() defined nothing so HAVE_PTHREAD_CANCEL was not
1262 defined even if pthread_cancel() was available.
1263
12642010-06-17 Ludovic Rousseau
1265
1266 * [r5009] src/pcscdaemon.c: main(): in case of auto exit create a
1267 new session so that Ctrl-C on the application will not also quit
1268 pcscd
1269
1270 Thanks to Thierry Fabre for reporting the bug
1271
12722010-06-13 Ludovic Rousseau
1273
1274 * [r4992] src/winscard_msg.h: typo in comment
1275
12762010-06-12 Ludovic Rousseau
1277
1278 * [r4991] UnitaryTests/SCardBeginTransaction_Disconnect.py,
1279 UnitaryTests/SCardBlockingBehaviourTest.py,
1280 UnitaryTests/SCardCancel.py, UnitaryTests/SCardConnect_DIRECT.py,
1281 UnitaryTests/SCardConnect_DIRECT2.py,
1282 UnitaryTests/SCardExclusiveBehaviour.py,
1283 UnitaryTests/SCardGetAttrib.py, UnitaryTests/SCardReconnect.py,
1284 UnitaryTests/SCard_fork.py, UnitaryTests/ThreadSafe.py,
1285 UnitaryTests/ThreadSafeConnect.py, UnitaryTests/reset_card.py:
1286 return exception from smartcard.pcsc.PCSCExceptions when
1287 appropriate
1288
12892010-06-09 Ludovic Rousseau
1290
1291 * [r4986] src/simclist.c: Avoid a division by 0. Closes [#312555]
1292 simclist bug in pcsc-lite
1293 * [r4985] src/simclist.c, src/simclist.h: update to version version
1294 1.4.4rc4 Apr 2010
1295
12962010-06-07 Ludovic Rousseau
1297
1298 * [r4983] src/winscard_clnt.c: SCardEstablishContext(): if pcscd is
1299 stared by libpcsclite then close all file handles except stdin,
1300 stdout and stderr so that pcscd does not confiscate ressources
1301 allocated by the application
1302
1303 Thanks to Thierry Fabre for the bug report
1304
13052010-06-04 Ludovic Rousseau
1306
1307 * [r4978] configure.in: release 1.6.1
1308 * [r4977] ChangeLog: release 1.6.1
1309
13102010-06-01 Ludovic Rousseau
1311
1312 * [r4974] src/misc.h, src/strlcpycat.h, src/tokenparser.l: update
1313 copyright date
1314 * [r4969] src/pcscdaemon.c, src/sys_unix.c: pcscd: do not return
1315 before most of the initialisation are done correctly. The idea is
1316 that pcscd can return an error code if the daemon fails to start
1317 correctly (hald not started for example).
1318
1319 Before the patch pcscd became a daemon, then returned 0 (success)
1320 and then continued with the initialisation. If the initialisation
1321 failed it was too late to return an error code. The
1322 /etc/init.d/pcscd script was not aware of the failure.
1323
1324 Closes https://bugzilla.redhat.com/show_bug.cgi?id=580321
1325 "/usr/sbin/pcscd exit codes broken"
1326
13272010-05-31 Ludovic Rousseau
1328
1329 * [r4968] src/pcscdaemon.c: main(): return EXIT_FAILURE instead of
1330 EXIT_SUCCESS if a unknown argument is passed
1331
13322010-05-29 Ludovic Rousseau
1333
1334 * [r4967] src/winscard_msg.h, src/winscard_svc.c: Avoids a crash if
1335 a client sends a unknown command.
1336
1337 Thanks to Martin Vogt for the bug report
1338 http://archives.neohapsis.com/archives/dev/muscle/2010-q2/0096.html
1339
13402010-05-27 Ludovic Rousseau
1341
1342 * [r4964] src/winscard.c: SCardControl(): do not check for card
1343 events since we are talking to the reader not the card. A smart
1344 card removal should not make SCardControl() fail with
1345 SCARD_W_REMOVED_CARD
1346
13472010-05-20 Ludovic Rousseau
1348
1349 * [r4957] UnitaryTests/SCardGetAttrib.py: get
1350 SCARD_ATTR_VENDOR_IFD_SERIAL_NO PC/SC attribute
1351
13522010-05-18 Ludovic Rousseau
1353
1354 * [r4954] src/PCSC/reader.h.in: Add
1355 PCSCv2_PART10_PROPERTY_bPPDUSupport
1356 * [r4953]
1357 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange.py,
1358 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py:
1359 Also display the return value of SCardReleaseContext()
1360 * [r4952] src/pcscd.h.in, src/winscard_clnt.c, src/winscard_msg.c,
1361 src/winscard_msg.h, src/winscard_svc.c: MessageSend(),
1362 MessageReceive() & MessageSendWithHeader() do not timeout any
1363 more. If the other side of the socket dies we will get an error
1364 from the kernel.
1365
1366 Add a new MessageReceiveTimeout() to implement
1367 SCardGetStatusChange() with a timeout.
1368
1369 The constants PCSCLITE_WRITE_TIMEOUT & PCSCLITE_READ_TIMEOUT are
1370 now also removed.
1371
1372 The problem was that if a client does nothing during
1373 PCSCLITE_READ_TIMEOUT (120 seconds by default) then pcscd
1374 considers it as a dead client and closes the connection. I guess
1375 this problem was present since the first version of pcsc-lite but
1376 nobody complained before.
1377
1378 Thanks to Thierry Fabre for the bug report.
1379 * [r4951] src/pcscdaemon.c, src/winscard_clnt.c,
1380 src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c,
1381 src/winscard_svc.c: rename SHMfoobar() functions in foobar()
1382 since we do not use shared memory (SHM) anymore
1383
13842010-05-17 Ludovic Rousseau
1385
1386 * [r4949] src/hotplug_libusb.c: Add a synchronisation so that if
1387 pcscd is auto started the initial reader list is available before
1388 the server takes commands from clients.
1389
1390 Before the change early calls of SCardListReaders() returned an
1391 empty list of readers even if a reader was connected.
1392
1393 Thanks to Patrice Angelini for the bug report
1394 * [r4948] etc: Remove etc directory completely - serial readers are
1395 rare => no need for /etc/reader.conf.d/ - pcscd now autostarts =>
1396 no need for /etc/init.d/pcscd script or equivalent
1397 * [r4947] Makefile.am, configure.in: Do not install files in /etc
1398 any more. Serial drivers are rare now.
1399 * [r4946] etc/Makefile.am: Use $(sysconfdir_exp) instead of
1400 (removed) $(confdir_exp)
1401
1402 Fixes [#312498] Wrong installation path for reader.conf.d
1403
14042010-05-11 Ludovic Rousseau
1405
1406 * [r4941] UnitaryTests/SCardConnect_DIRECT2.py: Unitary test for
1407 bug fixed in revision 4940
1408 * [r4940] src/winscard.c: SCardConnect() & SCardReconnect(): do not
1409 reset the cardProtocol in SCARD_SHARE_DIRECT case since the card
1410 have _not_ been reseted. A new PPS negociation would fail.
1411
1412 See SCardConnect_DIRECT2.py for a Unitary Test
1413
14142010-05-05 Ludovic Rousseau
1415
1416 * [r4921] ChangeLog: update date and release for 1.6.0
1417 * [r4920] ChangeLog, configure.in: release 1.6.0
1418
14192010-05-04 Ludovic Rousseau
1420
1421 * [r4918] src/pcscdaemon.c: ExitValue default value is now
1422 EXIT_FAILURE instead of EXIT_SUCCESS
1423 * [r4917] src/pcscdaemon.c: main(): remove dead code "used" when no
1424 reader.conf file is found
1425
14262010-05-03 Ludovic Rousseau
1427
1428 * [r4913] src/winscard_clnt.c: SCardEstablishContext(): also log
1429 the binary name if execl() fails
1430 * [r4912] src/eventhandler.c: EHDestroyEventHandler(): use
1431 pthread_cancel() only if it is present (not the case on Android)
1432 * [r4911] configure.in: Add a check for pthread_cancel() (not
1433 present on Android)
1434 * [r4910] src/readerfactory.h: Add missing #include <pthread.h>
1435
1436 Compilation failed on Android but not on my Debian as the libC is
1437 different on the two systems. On Debian sys/types.h defines
1438 pthread types
1439
14402010-04-29 Ludovic Rousseau
1441
1442 * [r4906] src/strlcpycat.h: #include <string.h> on plateform that
1443 have strlcpy() to avoid a warning (Mac OS X and Android)
1444
1445 error.c: In function ‘pcsc_stringify_error’: error.c:64: warning:
1446 implicit declaration of function ‘strlcpy’ error.c:64: warning:
1447 nested extern declaration of ‘strlcpy’
1448 * [r4905] src/hotplug_linux.c: #include <pthread.h>
1449
1450 Declare pthread_mutex_* functions
1451 * [r4904] src/hotplug_linux.c: #include "utils.h"
1452
1453 Fix hotplug_linux.c:391: error: ‘THREAD_ATTR_DETACHED’ undeclared
1454 (first use in this function)
1455 * [r4903] src/hotplug_libusb.c: HPEstablishUSBNotifications(): do
1456 not call RFReCheckReaderConf if USE_SERIAL is defined. The
1457 function is not defined in this case.
1458 * [r4901] configure.in, src/Makefile.am, src/hotplug_libhal.c,
1459 src/pcscdaemon.c, src/readerfactory.c: Add --disable-serial and
1460 --disable-usb options
1461
1462 --disable-serial removes support of /etc/reader.conf gain: 8.0kB
1463 of .text (12%) and 160 bytes of .bss (4%) for pcscd
1464
1465 --disable-usb removes support of USB hotplug gain: 9.7kB of .text
1466 (14%) and 960 bytes of .bss (23%) for pcscd
1467
1468 If you use both options (and use a static driver configuration)
1469 gain: 17.7kB of .text (26%) and 1152 bytes of .bss (28%) for
1470 pcscd
1471 * [r4900] src/error.c: Define a minimal pcsc_stringify_error() if
1472 NO_LOG is defined. Only the error code in hex is displayed in
1473 this case.
1474
1475 Gain: 2kB of .text (10%) for libpcsclite
1476 * [r4899] src/pcscdaemon.c: main(): fork() only in case of auto
1477 exit to not detach from the terminal if launched in stand alone
1478 forground mode ("pcscd -fda" for example)
1479
14802010-04-22 Ludovic Rousseau
1481
1482 * [r4889] src/pcscdaemon.c: main(): always fork() so that pcscd
1483 always return in --auto-exit mode but do not close stdout yet
1484 since we may need to send logs
1485 * [r4888] src/winscard_clnt.c: SCardEstablishContext(): call
1486 waitpid() to avoid having a defunct pcscd process when pcscd is
1487 auto started by the client.
1488
1489 The process becomes defunct because pcscd calls daemon() and
1490 daemon() does fork() and exit() in the father. The father death
1491 must then be reclaimed by libpcsclite.
1492
1493 Thanks to Patrice Angelini for the bug report
1494
14952010-04-18 Ludovic Rousseau
1496
1497 * [r4885] src/Makefile.am, src/eventhandler.c,
1498 src/hotplug_libhal.c, src/hotplug_libusb.c, src/hotplug_linux.c,
1499 src/ifdwrapper.c, src/pcscdaemon.c, src/readerfactory.c,
1500 src/readerfactory.h, src/thread_generic.h, src/thread_unix.c,
1501 src/winscard.c, src/winscard_clnt.c, src/winscard_svc.c: Directly
1502 use pthread_mutex_* fucntions instead of using wrappers Remove
1503 thread_unix.c and thread_generic.h now useless
1504 * [r4884] src/hotplug_libhal.c, src/hotplug_libusb.c,
1505 src/hotplug_linux.c, src/hotplug_macosx.c, src/readerfactory.h,
1506 src/utils.c, src/winscard_svc.c: Use pthread_t instead of
1507 PCSCLITE_THREAD_T
1508 * [r4883] src/thread_generic.h, src/utils.h: move thread related
1509 definition from thread_generic.h to utils.h
1510 * [r4882] src/eventhandler.c, src/hotplug_libhal.c,
1511 src/hotplug_libusb.c, src/hotplug_linux.c, src/hotplug_macosx.c,
1512 src/thread_generic.h, src/thread_unix.c, src/utils.c,
1513 src/utils.h, src/winscard_svc.c: Directly use pthread_* instead
1514 of SYS_Thread* indirection
1515
1516 Move SYS_ThreadCreate in utils.c. This function is not just one
1517 pthread_* call
1518
15192010-04-16 Ludovic Rousseau
1520
1521 * [r4877] src/thread_unix.c: SYS_ThreadExit(): remove dead code
1522
1523 From Sun Studio CC "thread_unix.c", line 108: warning: statement
1524 not reached
1525 * [r4875] bootstrap: update versions of autotools used
1526
15272010-04-15 Ludovic Rousseau
1528
1529 * [r4874] src/simclist.c: remove ; at end of a { } block defined by
1530 a macro. The Solaris compiler complains with: "simclist.c", line
1531 1317: warning: syntax error: empty declaration
1532
1533 Thanks to Jörg Schilling for the bug report
1534 * [r4873] src/sys_unix.c: use fork(), close() and chdir() instead
1535 of SYS_Fork(), SYS_CloseFile() and SYS_Chdir() in SYS_Daemon() if
1536 HAVE_DAEMON is not defined (Solaris)
1537
1538 Thanks to Jörg Schilling for the bug report
1539
15402010-04-09 Ludovic Rousseau
1541
1542 * [r4867] src/winscard_svc.c: Log the command return code using
1543 DEBUG (SCARD_S_SUCCESS) or ERROR (every thing else) level
1544
15452010-04-08 Ludovic Rousseau
1546
1547 * [r4866] UnitaryTests/reset_card.py: reset a card using
1548 SCardDisconnect (default) or SCardReconnect (if an argument is
1549 passed)
1550 * [r4865] UnitaryTests/transmit_loop.py: call SCardTransmit in an
1551 endless loop
1552 * [r4864] src/winscard.c: SCardReconnect(): mimic the code from
1553 SCardDisconnect() regarding card event state notifications
1554 (changed in revision 4862).
1555 * [r4863] UnitaryTests/Makefile: no more pcsc_demo target
1556 * [r4862] src/winscard.c: SCardDisconnect(): Set the card event
1557 state to SCARD_RESET _before_ doing the reset.
1558
1559 This will avoid an SCardTransmit from another application between
1560 the card reset and the card event state change. In the
1561 problematic case the SCardTransmit was sending an APDU in T=1 to
1562 a reseted card but not yet configured (IFDHSetProtocolParameters
1563 was not yet called) and still in T=0 (default)
1564 * [r4861] src/winscard.c: SCardConnect() & SCardReconnect():
1565 correctly log SCARD_PROTOCOL_RAW protocol instead of "unknown"
1566
15672010-04-07 Ludovic Rousseau
1568
1569 * [r4859] src/winscard_msg.c, src/winscard_msg_srv.c: Fix copyright
1570 name and date
1571 * [r4858] src/winscard_msg.c: Doxygen: document SHMMessageReceive()
1572 command argument added in revision 4718
1573 * [r4857] src/winscard_clnt.c: Doxygen:
1574 SCARD_ATTR_DEVICE_FRIENDLY_NAME is implemented by
1575 SCardGetAttrib() if the IFD Handler (driver) returns
1576 IFD_ERROR_TAG. pcsc-lite then returns the same reader name as
1577 returned by SCardListReaders.
1578
15792010-04-01 Ludovic Rousseau
1580
1581 * [r4851] src/PCSC/reader.h.in: Add PCSCv2_PART10_PROPERTY_*
1582 defines
1583
15842010-03-30 Ludovic Rousseau
1585
1586 * [r4845] src/winscard_clnt.c: SCardEstablishContext(): try to
1587 relaunch pcscd if SCardCheckDaemonAvailability() succeeds but
1588 SCardEstablishContextTH() fails. This happens if pcscd crashed
1589 without cleaning /var/run/pcscd/pcscd.comm
1590
15912010-03-26 Ludovic Rousseau
1592
1593 * [r4843] src/PCSC/reader.h.in: add FEATURE_GET_TLV_PROPERTIES and
1594 FEATURE_CCID_ESC_COMMAND from PC/SC part 10 v2.02.07 March 2010
1595
15962010-03-22 Ludovic Rousseau
1597
1598 * [r4839] src/pcscdaemon.c: Call at_exit() instead of exit() since
1599 the libC of Android is bogus and atexit() does not work as it
1600 should.
1601
1602 Thanks to Patrice Angelini for the bug report.
1603 * [r4838] src/winscard_clnt.c: SCardCheckDaemonAvailability(): use
1604 stat(2) instead of the now removed SYS_Stat()
1605
16062010-03-19 Ludovic Rousseau
1607
1608 * [r4836] src/configfile.l, src/pcscdaemon.c, src/sys_generic.h,
1609 src/sys_unix.c, src/winscard_msg.c, src/winscard_msg_srv.c,
1610 src/winscard_svc.c: Remove the one line wrappers from sys_unix.c
1611 and use directly the POSIX functions instead.
1612
16132010-03-16 Ludovic Rousseau
1614
1615 * [r4825] src/Makefile.am: Install pcscd as suid so that autostart
1616 works correctly (as root)
1617 * [r4824] TODO: done: remove as much text messages (logs) as
1618 possible
1619 * [r4823] configure.in: Display PCSCLITE_FEATURES
1620 * [r4822] configure.in: Add --enable-embedded (default is no) to
1621 build pcsc-lite for an embedded system. This will activate the
1622 NO_LOG option to disable logging and limit RAM and disk
1623 consumption.
1624 * [r4821] src/PCSC/debuglog.h, src/debug.c, src/debuglog.c,
1625 src/hotplug_libhal.c, src/winscard_svc.c: If NO_LOG is defined
1626 then no log are displayed. The idea is to limit the binaries size
1627 on disk and RAM consumption at execution time.
1628
1629 With NO_LOG defined we gain 26% (17 kB) for the .text segment of
1630 pcscd and 15% (4 kB) for the .text segment of libpcsclite.so (for
1631 i386)
1632 * [r4820] src/utils.c: Include config.h before the other header
1633 files so the configuration set in config.h can be used in the
1634 other header files (NO_LOG for example)
1635 * [r4819] src/configfile.l: Include config.h before the other
1636 header files so the configuration set in config.h can be used in
1637 the other header files (NO_LOG for example)
1638 * [r4818] src/Makefile.am, src/debug.c, src/debug.h,
1639 src/dyn_hpux.c, src/dyn_macosx.c, src/dyn_unix.c, src/sys_unix.c,
1640 src/tokenparser.l, src/utils.c, src/winscard_clnt.c,
1641 src/winscard_msg.c: Remove debug.h and use debuglog.h instead.
1642 They both define the same log API.
1643
16442010-03-12 Ludovic Rousseau
1645
1646 * [r4813] UnitaryTests/ThreadSafe.py,
1647 UnitaryTests/ThreadSafeConnect.py: revert change in revision 4812
1648 since the problem is now solved in pyscard (revision 382)
1649 * [r4812] UnitaryTests/ThreadSafe.py,
1650 UnitaryTests/ThreadSafeConnect.py: do not initialise the library
1651 in a thread as it crashed on Mac OS X
1652
16532010-03-09 Ludovic Rousseau
1654
1655 * [r4809] src/winscard_svc.c: read only accesses to contextsList
1656 list shall also be protected by a mutex
1657 * [r4808] src/readerfactory.c: read only accesses to handlesList
1658 list shall also be protected by a mutex
1659 * [r4807] src/readerfactory.c, src/readerfactory.h: manipulations
1660 of handlesList field of ReaderContext should now be thread safe
1661 * [r4806] src/winscard_svc.c: MSGRemoveContext(): correctly indent
1662 a line
1663 * [r4805] src/winscard_svc.c: manipulations of cardsList should now
1664 be thread safe
1665 * [r4804] src/winscard_svc.c: remove extra tab
1666 * [r4803] UnitaryTests/ThreadSafeConnect.py: add more logging
1667 * [r4802] UnitaryTests/ThreadSafeConnect.py: stress thread safeness
1668 of SCardConnect/SCardDisconnect
1669 * [r4801] src/winscard_svc.c: manipulations of contextsList should
1670 now be thread safe
1671 * [r4800] UnitaryTests/ThreadSafe.py: stress thread safeness
1672
16732010-03-04 Ludovic Rousseau
1674
1675 * [r4793] UnitaryTests/SCardBlockingBehaviourTest.py,
1676 UnitaryTests/SCardExclusiveBehaviour.py: make pylint happier
1677 * [r4792] UnitaryTests/MCT_ReaderDirect.py: make pylint happier
1678 * [r4791] UnitaryTests/control_get_firmware.py: make pylint happy
1679 * [r4790] UnitaryTests/control_get_firmware.py: remove useless
1680 import
1681 * [r4789] UnitaryTests/MCT_ReaderDirect.py,
1682 UnitaryTests/control_get_firmware.py,
1683 UnitaryTests/control_switch_interface.py: use list comprehension
1684 instead of map() (more efficient and pylint does not like map())
1685
16862010-03-03 Ludovic Rousseau
1687
1688 * [r4788] UnitaryTests/control_switch_interface.py: make pylint
1689 happier
1690
16912010-03-02 Ludovic Rousseau
1692
1693 * [r4784] src/debuglog.c: debuglog.c is only used by pcscd. So no
1694 need to use #ifdef PCSCD
1695
16962010-03-01 Ludovic Rousseau
1697
1698 * [r4783] TODO: fix typo
1699
17002010-02-26 Ludovic Rousseau
1701
1702 * [r4779] configure.in, doc/Makefile.am,
1703 doc/update-reader.conf.8.in, etc/Makefile.am,
1704 etc/update-reader.conf.in, src/configfile.h, src/configfile.l,
1705 src/readerfactory.c: Add the ability to parse all the
1706 configuration files of a directory instead of just one
1707 configuration file. update-reader.conf is then now obsolete.
1708
1709 See Debian bug #565896 http://bugs.debian.org/565896
1710
17112010-02-25 Ludovic Rousseau
1712
1713 * [r4778] src/pcscdaemon.c: update copyright
1714
17152010-02-23 Ludovic Rousseau
1716
1717 * [r4769] src/winscard_clnt.c: SCardEstablishContextTH() &
1718 SCardGetStatusChange(): completly initialize structures sent to
1719 the daemon to avoid a valgrind warning: Syscall param
1720 socketcall.send(msg) points to uninitialised byte(s)
1721 * [r4768] UnitaryTests/SCardBlockingBehaviourTest.py: As of
1722 revision r4719 Linux is now Windows "compatible"
1723
17242010-02-21 Ludovic Rousseau
1725
1726 * [r4766] src/misc.h: " The gcc on Solaris 10 combined with the Sun
1727 loader appears to not handle the gcc visibility attribute
1728 correctly. The sparc version says it is ignored, the x86 version
1729 gives linker error. The attached patch sun.gcc.1.5.6-svn-477.txt
1730 tries to test for gcc on Sun and not use the visibility
1731 attribute. If on a sun and the compiler is not GCC, try and use
1732 the Sun __global and __hidden instead. (I did not try the Sun
1733 Studio compiler with this.) "
1734
1735 Thanks to Douglas E. Engert for the patch
1736 http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0127.html
1737 * [r4765] doc/pcscd.8.in: use @sysconfdir_exp@ instead of (removed)
1738 @confdir@
1739
17402010-02-12 Ludovic Rousseau
1741
1742 * [r4758] src/readerfactory.c: RFStartSerialReaders(): typo in
1743 comment
1744 * [r4756] src/configfile.l, src/tokenparser.l: Fix 2 compilation
1745 warnings
1746
1747 configfile.c:1151: warning: ‘input’ defined but not used
1748 tokenparser.c:1167: warning: ‘input’ defined but not used
1749 * [r4755] src/lassert.h: Fix splint error
1750 src/pcsc-wirecheck-dist.c:19:164: Body of if clause of if
1751 statement is empty
1752 * [r4754] src/hotplug_libhal.c: HPAddDevice(): fix a memory leak
1753 * [r4753] src/readerfactory.c: RFRemoveReader(): simplify/factorise
1754 the resources deallocation
1755
17562010-02-10 Ludovic Rousseau
1757
1758 * [r4751] etc/update-reader.conf.in: use @sysconfdir@ instead of
1759 (the now removed) @confdir@
1760
1761 Thanks to Sébastien Lorquet for the bug report
1762 http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0098.html
1763
17642010-02-09 Ludovic Rousseau
1765
1766 * [r4744] src/readerfactory.c, src/readerfactory.h: use a dynamic
1767 instead of static allocation for lpcDevice
1768 * [r4743] src/readerfactory.c: RFAddReader(): allocate an int
1769 instead of a DWORD for pFeeds
1770
1771 The patch in revision 4741 was not complete
1772 * [r4742] src/readerfactory.c, src/readerfactory.h: In struct
1773 ReaderContext rename pdwMutex to pMutex and change type from
1774 PDWORD to int *
1775 * [r4741] src/readerfactory.c, src/readerfactory.h: In struct
1776 ReaderContext rename pdwFeeds to pFeeds and change type from
1777 PDWORD to int *
1778 * [r4740] src/readerfactory.c, src/readerfactory.h: In struct
1779 ReaderContext remove the now useless dwBlockStatus field
1780 * [r4739] src/eventhandler.c, src/ifdwrapper.c,
1781 src/readerfactory.c, src/readerfactory.h, src/winscard.c: In
1782 struct ReaderContext rename dwSlot to slot and change type from
1783 DWORD to int
1784 * [r4738] src/ifdwrapper.c, src/readerfactory.c,
1785 src/readerfactory.h, src/winscard.c: In struct ReaderContext
1786 rename dwVersion to version and change type from DWORD to int
1787 * [r4737] src/ifdwrapper.c, src/readerfactory.c,
1788 src/readerfactory.h: In struct ReaderContext change dwPort from
1789 DWORD to int and rename it to port
1790
1791 Fix a compiler warning readerfactory.c: In function
1792 ‘RFReCheckReaderConf’: readerfactory.c:1393: warning: comparison
1793 between signed and unsigned
1794 * [r4736] src/tokenparser.l: Fix compiler warning
1795
1796 tokenparser.l: In function ‘tperrorCheck’: tokenparser.l:102:
1797 warning: unused parameter ‘token_error’
1798 * [r4735] src/configfile.l, src/readerfactory.c,
1799 src/readerfactory.h: In struct SerialReader rename dwChannelId in
1800 channelId since it is an int and no more a DWORD
1801 * [r4734] src/eventhandler.c: Fix a compiler warning
1802
1803 eventhandler.c: In function ‘EHStatusHandlerThread’:
1804 eventhandler.c:494: warning: comparison between signed and
1805 unsigned
1806 * [r4733] src/winscard_clnt.c: do not use the uint32_t rv structure
1807 field but copy it into rv first to avoid a compiler warning
1808
1809 winscard_clnt.c: In function ?SCardReconnect?:
1810 winscard_clnt.c:1035: warning: comparison between signed and
1811 unsigned winscard_clnt.c: In function ?SCardBeginTransaction?:
1812 winscard_clnt.c:1254: warning: comparison between signed and
1813 unsigned winscard_clnt.c: In function ?SCardStatus?:
1814 winscard_clnt.c:1657: warning: comparison between signed and
1815 unsigned winscard_clnt.c: In function ?SCardTransmit?:
1816 winscard_clnt.c:2939: warning: comparison between signed and
1817 unsigned
1818 * [r4732] src/PCSC/pcsclite.h.in: force the return codes SCARD_* to
1819 be long since the SCard* functions return a LONG type
1820 * [r4731] src/eventhandler.c, src/readerfactory.c,
1821 src/readerfactory.h, src/winscard.c, src/winscard_svc.c: In
1822 struct ReaderContext dwLockId is used to store a SCARDHANDLE so
1823 change its type from DWORD to SCARDHANDLE and rename the field to
1824 hLockId
1825
1826 Fix 2 compiler warning: winscard.c: In function
1827 'SCardDisconnect': winscard.c:847: warning: comparison between
1828 signed and unsigned winscard_svc.c: In function
1829 'MSGRemoveContext': winscard_svc.c:807: warning: comparison
1830 between signed and unsigned
1831 * [r4730] src/winscard_msg.c: fix a compilation warning
1832
1833 winscard_msg.c: In function ‘SHMMessageReceive’:
1834 winscard_msg.c:252: warning: unused parameter ‘command’
1835 * [r4729] src/winscard_svc.c: fix 2 compilation warnings
1836
1837 winscard_svc.c: In function ‘MSGRemoveContext’:
1838 winscard_svc.c:776: warning: comparison between signed and
1839 unsigned winscard_svc.c: In function ‘MSGAddHandle’:
1840 winscard_svc.c:848: warning: comparison between signed and
1841 unsigned
1842 * [r4728] src/eventhandler.h, src/winscard_clnt.c: Use READER_STATE
1843 * instead of PREADER_STATE to make it explicit it is a pointer
1844 * [r4727] src/eventhandler.c, src/eventhandler.h, src/ifdwrapper.c,
1845 src/ifdwrapper.h, src/readerfactory.c, src/readerfactory.h,
1846 src/winscard.c, src/winscard_svc.c: Use READER_CONTEXT * instead
1847 of PREADER_CONTEXT to make it explicit it is a pointer
1848 * [r4726] src/readerfactory.c: Fix a compilation warning
1849
1850 readerfactory.c: In function ‘RFAddReaderHandle’:
1851 readerfactory.c:1125: warning: comparison between signed and
1852 unsigned
1853 * [r4725] src/eventhandler.c, src/readerfactory.c,
1854 src/readerfactory.h, src/winscard.c: In struct ReaderContext
1855 rename "dwContexts" to "contexts" since it is no more a DWORD but
1856 a int32_t
1857 * [r4724] src/winscard_clnt.c: Fix a compilation warning
1858
1859 winscard_clnt.c: In function ‘SCardListReaderGroups’:
1860 winscard_clnt.c:3258: warning: comparison between signed and
1861 unsigned
1862 * [r4723] src/pcscd.h.in, src/readerfactory.c, src/readerfactory.h:
1863 Use dynamic instead of static allocation for the driver library
1864 filename. The filename is no more limited to 100 characters.
1865
1866 Closes: [#312332] MAX_LIBNAME too short?
1867 * [r4722] src/pcscdaemon.c, src/winscard_svc.c, src/winscard_svc.h:
1868 use int instead of unsigned int for customMaxThreadCounter,
1869 customMaxReaderHandles and customMaxThreadCardHandles since
1870 list_size() returns an int and we compare the two values (avoid
1871 sign mismatch)
1872 * [r4721] src/winscard_svc.c: fix 2 compilation warnings
1873
1874 winscard_svc.c: In function ‘CreateContextThread’:
1875 winscard_svc.c:146: warning: comparison between signed and
1876 unsigned winscard_svc.c: In function ‘MSGAddHandle’:
1877 winscard_svc.c:856: warning: comparison between signed and
1878 unsigned
1879
18802010-02-08 Ludovic Rousseau
1881
1882 * [r4720] src/winscard_clnt.c: SCardGetStatusChange(): fix 4
1883 compilation warnings
1884
1885 winscard_clnt.c: In function ‘SCardGetStatusChange’:
1886 winscard_clnt.c:1864: warning: comparison between signed and
1887 unsigned winscard_clnt.c:1875: warning: comparison between signed
1888 and unsigned winscard_clnt.c:1911: warning: comparison between
1889 signed and unsigned winscard_clnt.c:2189: warning: comparison
1890 between signed and unsigned
1891 * [r4719] src/winscard_clnt.c: Make SCardReconnect(), SCardStatus()
1892 and SCardTransmit() block instead of returning
1893 SCARD_E_SHARING_VIOLATION immediately. These functions will then
1894 behave like on Windows.
1895
1896 This can happen if these functions are called when the reader is
1897 locked by a PCSC transaction
1898 (SCardBeginTransaction/SCardEndTransaction).
1899
1900 You can define the environment variable PCSCLITE_NO_BLOCKING to
1901 use the old behavior.
1902
1903 Thanks to Jean-Luc Giraud for the patch.
1904 http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0041.html
1905 * [r4718] src/winscard_clnt.c, src/winscard_msg.c,
1906 src/winscard_msg.h, src/winscard_svc.c: add a command parameter
1907 to SHMMessageReceive() to be able log the ongoing command in case
1908 of problem
1909
19102010-02-05 Ludovic Rousseau
1911
1912 * [r4717] UnitaryTests/SCardExclusiveBehaviour.py: Check the return
1913 value of SCardConnect() on a reader already used in
1914 SCARD_SHARE_EXCLUSIVE mode
1915 * [r4716] src/winscard.c: fix a bug introduced by the previous
1916 revision
1917 * [r4715] src/winscard.c: SCardGetAttrib(): check for buffer
1918 overflow with SCARD_ATTR_DEVICE_FRIENDLY_NAME
1919
1920 Thanks to Jean-Luc Giraud for complete
1921 SCARD_ATTR_DEVICE_FRIENDLY_NAME patch
1922
19232010-02-04 Ludovic Rousseau
1924
1925 * [r4710] src/PCSC/pcsclite.h.in, src/winscard_clnt.c: add a
1926 copyright for Martin Paljak
1927
19282010-02-03 Ludovic Rousseau
1929
1930 * [r4708] configure.in, src/pcscd.h.in: Use the standard
1931 --sysconfdir=DIR ($prefix/etc by default) instead of
1932 --enable-confdir=DIR for defining the directory containing
1933 reader.conf
1934 * [r4707] configure.in: sysconfdir_exp is a configuration directory
1935 not configuration file
1936
19372010-02-02 Ludovic Rousseau
1938
1939 * [r4705] src/winscard.c: SCardStatus(): returns
1940 SCARD_E_SHARING_VIOLATION if the reader is already used More
1941 conform to Windows
1942 * [r4704] UnitaryTests/SCardBlockingBehaviourTest.py: allow to use
1943 any reader and not just the first one
1944 * [r4703] src/testpcsc.c: test SCARD_ATTR_DEVICE_FRIENDLY_NAME
1945 * [r4702] src/winscard.c: SCardGetAttrib(): add support of
1946 SCARD_ATTR_DEVICE_FRIENDLY_NAME as it is better implemented in
1947 pcscd (it knows the friendly name)
1948 * [r4701] src/winscard_clnt.c: SCardEstablishContext(): set
1949 PCSCLITE_PCSCD_ARGS with the argument you want to pass to pcscd
1950 in autostart Only one argument is passed. The space character is
1951 not a separator. example: export PCSCLITE_PCSCD_ARGS=-dfa
1952 * [r4700] src/pcscd.h.in, src/pcscdaemon.c, src/winscard_clnt.c,
1953 src/winscard_svc.c: pcscd will suicide itself after 60 seconds of
1954 inactivity if it is started using --auto-exit This is the default
1955 behavior when pcscd is started by libpcsclite
1956 * [r4699] src/pcscdaemon.c: do not ignore the SIGALRM signal any
1957 more since we need it for the auto exit feature
1958
19592010-01-22 Ludovic Rousseau
1960
1961 * [r4685] configure.in: add $host to the PCSCLITE_FEATURES
1962 definition (available with "pcscd -v") to display the CPU
1963 architecture host is something like x86_64-unknown-linux-gnu
1964 * [r4683] configure.in: use LT_INIT(disable-static) instead of the
1965 deprecated AM_DISABLE_STATIC
1966
1967 Thanks to Roumen Petrov
1968
19692010-01-21 Ludovic Rousseau
1970
1971 * [r4682] UnitaryTests/MCT_ReaderDirect.py,
1972 UnitaryTests/control_get_firmware.py,
1973 UnitaryTests/control_switch_interface.py: do not try to reset the
1974 card on exit. We are talking to the reader. A card may NOT be
1975 present.
1976 * [r4681] configure.in, src/Makefile.am: Do not completely disable
1977 building the static version of the library but just disable it by
1978 default
1979
1980 Use AM_DISABLE_STATIC in configure.in instead of -shared in
1981 Makefile.am
1982
19832010-01-16 Ludovic Rousseau
1984
1985 * [r4674] UnitaryTests/SCardBlockingBehaviourTest.py: Check the
1986 behavior of PCSC functions when a PCSC transaction is ongoing
1987
1988 Thanks to Jean-Luc Giraud for the original code
1989 * [r4673] src/Makefile.am: use -shared to only provide a shared
1990 library. If you need to use the static .a library you just need
1991 to remove -shared
1992
19932010-01-15 Ludovic Rousseau
1994
1995 * [r4672] UnitaryTests/control_switch_interface.py: parse error
1996 code
1997 * [r4671] UnitaryTests/control_switch_interface.py: improve
1998 documentation and output
1999 * [r4670] src/winscard_clnt.c: Only call SCardCheckSameProcess() if
2000 DO_CHECK_SAME_PROCESS is defined (default is not defined).
2001
2002 Some thread libraries (on embedded systems for example) have a
2003 different pid for each thread of a same process. So the check
2004 using getpid() is wrong and handles are invalidated when they
2005 should not. The PC/SC function returned SCARD_E_INVALID_HANDLE
2006 * [r4669] src/winscard_clnt.c: define and use the
2007 CHECK_SAME_PROCESS macro instead of calling
2008 SCardCheckSameProcess() directly
2009
20102010-01-14 Ludovic Rousseau
2011
2012 * [r4668] src/winscard_clnt.c: Doxygen: update
2013 SCardGetStatusChange() doc. The function returns on any events,
2014 not just those specified in dwCurrentState
2015 * [r4667] TODO: For embedded/constained systems
2016
2017 - remove as much text messages (logs) as possible to limit the
2018 size of the binaries (pcscd and libpcsclite)
2019
2020 - use static driver instead of reader polling and dynamic driver
2021 loading
2022
20232010-01-08 Ludovic Rousseau
2024
2025 * [r4646] src/readerfactory.c: RFInitializeReader(): do not
2026 dynamically load the driver if PCSCLITE_STATIC_DRIVER is defined
2027 * [r4645] src/ifdwrapper.c: better support of
2028 PCSCLITE_STATIC_DRIVER.
2029
2030 This is used to statically link the reader driver to pcscd. Since
2031 the link is static you must define the IFDHandler API version at
2032 compilation time. Either define IFDHANDLERv1, IFDHANDLERv2 or
2033 IFDHANDLERv3
2034 * [r4644] src/dyn_unix.c: fix a warning when compiling with
2035 PCSCLITE_STATIC_DRIVER defined
2036
2037 dyn_unix.c: In function ‘DYN_CloseLibrary’: dyn_unix.c:47:
2038 warning: unused variable ‘ret’
2039
20402010-01-03 Ludovic Rousseau
2041
2042 * [r4635] src/hotplug_macosx.c: hotplug_macosx.c: In function
2043 ‘HPDeviceAppeared’: hotplug_macosx.c:70: warning: unused
2044 parameter ‘refCon’ hotplug_macosx.c: In function
2045 ‘HPDeviceDisappeared’: hotplug_macosx.c:85: warning: unused
2046 parameter ‘refCon’
2047
20482010-01-02 Ludovic Rousseau
2049
2050 * [r4634] src/simclist.c: fix a compilation warning
2051 simclist.c:1335: warning: unused parameter ‘el’
2052 * [r4633] src/error.c: pcsc_stringify_error(): spelling error
2053 (detected by lintian(1))
2054
20552010-01-01 Ludovic Rousseau
2056
2057 * [r4630] src/ifdwrapper.c: add #include <unistd.h> to declare the
2058 timeval structure
2059
2060 In file included from ifdwrapper.c:31: utils.h:26: warning:
2061 ‘struct timeval’ declared inside parameter list utils.h:26:
2062 warning: its scope is only this definition or declaration, which
2063 is probably not what you want
2064 * [r4629] src/dyn_unix.c, src/ifdwrapper.c, src/pcscdaemon.c:
2065 better handling of PCSCLITE_STATIC_DRIVER as can be used on
2066 plateforms using µClinux (without dynamic loader)
2067
2068 Thanks to Guo Wenxue for a proto-patch
2069 * [r4628] src/hotplug_generic.c, src/hotplug_linux.c,
2070 src/hotplug_macosx.c: ReCheckSerialReaders variable is not used
2071 anymore
2072 * [r4627] src/winscard_msg_srv.c: ReCheckSerialReaders variable
2073 from hotplug_* is not used anymore
2074
20752009-12-18 Ludovic Rousseau
2076
2077 * [r4621] src/winscard_svc.c: typo in log message
2078
20792009-12-15 Ludovic Rousseau
2080
2081 * [r4616] src/atrhandler.c: ATRDecodeAtr(): reformat
2082 * [r4615] src/atrhandler.c: ATRDecodeAtr(): check for TA2 (specific
2083 mode) even if TD2 is not present "3F 80 10 01" was not parsed
2084 correctly for example and T=0 was used instead of T=1 (specific
2085 mode)
2086 * [r4613] UnitaryTests/MCT_ReaderDirect.py: rename
2087 FEATURE_MCT_READERDIRECT in FEATURE_MCT_READER_DIRECT
2088 * [r4612] src/PCSC/reader.h.in: rename FEATURE_MCT_READERDIRECT in
2089 FEATURE_MCT_READER_DIRECT to be conform with ch. 2.3 of PCSC v2
2090 part 10
2091
20922009-12-14 Ludovic Rousseau
2093
2094 * [r4611] UnitaryTests/SCard_fork.py: Unitary Test for fork()
2095 detection
2096
20972009-12-11 Ludovic Rousseau
2098
2099 * [r4608] src/winscard_clnt.c: Doxygen: add missing error codes
2100 * [r4607] src/winscard_svc.c: ContextThread(): SCARD_CANCEL return
2101 SCARD_E_INVALID_HANDLE instead of SCARD_E_INVALID_VALUE if the
2102 handle is invalid
2103 * [r4606] src/winscard_clnt.c: Doxygen: document 2 missing
2104 SCARD_F_COMM_ERROR possible return values
2105 * [r4605] src/winscard_clnt.c: Doxygen: document 3 missing error
2106 codes for SCardConnect()
2107 * [r4604] src/PCSC/pcsclite.h.in: reformat
2108 * [r4603] src/winscard_clnt.c: use sizeof(SCARD_IO_REQUEST) instead
2109 of 8 for the .cbPciLength field This is the correct value on
2110 64-bit system.
2111 * [r4602] src/pcscdaemon.c, src/winscard.c: g_rgSCard*Pci are not
2112 used on the server side
2113 * [r4601] src/pcscdaemon.c: SIGHUP signal has already been set to
2114 SIG_IGN. No need to quit on SIGHUP.
2115 * [r4600] src/pcscdaemon.c: revert revision 4599 and remove the
2116 second call to signal() instead of the first one. We need to
2117 clean-up as soon as we created the files.
2118 * [r4599] src/pcscdaemon.c: remove duplicate calls to signal()
2119
21202009-12-03 Ludovic Rousseau
2121
2122 * [r4587] src/winscard_clnt.c: Doxygen: SCardConnect() value 0 for
2123 dwPreferredProtocols valid only if dwShareMode is
2124 SCARD_SHARE_DIRECT
2125 * [r4585] src/winscard_clnt.c: use the more efficient
2126 SCardCheckSameProcess() instead of SCardCheckDaemonAvailability()
2127 to detect use of the API after a fork()
2128
21292009-12-02 Ludovic Rousseau
2130
2131 * [r4583] src/winscard_clnt.c: Doxygen: SCardEstablishContext()
2132 Each thread of an application shall use its own SCARDCONTEXT. On
2133 Windows the same SCARDCONTEXT can be shared by different threads
2134 of same application.
2135
21362009-11-27 Ludovic Rousseau
2137
2138 * [r4580] src/winscard_clnt.c: SCardEstablishContext(): try to
2139 start the pcscd daemon if not already running
2140 * [r4579] configure.in: define PCSCD_BINARY
2141 * [r4577] src/pcscdaemon.c: improve the checking of an already
2142 running pcscd
2143 * [r4576] src/winscard_clnt.c: Doxygen: For historical reasons the
2144 value of SCARD_E_UNSUPPORTED_FEATURE is 0x8010001F in pcsc-lite
2145 but 0x80100022 in Windows WinSCard
2146 * [r4575] src/PCSC/pcsclite.h.in: SCARD_E_UNSUPPORTED_FEATURE is
2147 not a PC/SC Lite specific extension, but its numerical value is
2148 different on Windows
2149
21502009-11-26 Ludovic Rousseau
2151
2152 * [r4574] src/PCSC/pcsclite.h.in, src/error.c: remove pcsc-lite
2153 specific SCARD_W_INSERTED_CARD code
2154
2155 SCARD_W_INSERTED_CARD value 0x8010006A was also in collision with
2156 SCARD_W_SECURITY_VIOLATION
2157 * [r4573] src/error.c: reorder error codes
2158
21592009-11-24 Ludovic Rousseau
2160
2161 * [r4570] src/winscard_clnt.c: do not declare the SCardUnload()
2162 function removed in revision 4435
2163 * [r4569] src/winscard_clnt.c: create a SCardInvalidateHandles()
2164 function from SCardCheckDaemonAvailability() code
2165 * [r4568] src/winscard_clnt.c: SCardCheckDaemonAvailability(): do
2166 not delete the context since it is already done by
2167 SCardCleanContext()
2168 * [r4567] src/winscard_clnt.c: SCardCleanContext(): deallocate the
2169 context memory
2170
21712009-11-23 Ludovic Rousseau
2172
2173 * [r4566] src/winscard_clnt.c: Doxygen: update SCardControl() list
2174 of possible error codes partly revert revision 4558
2175
2176 Thanks to Martin Paljak for the bug report
2177 http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0079.html
2178
21792009-11-19 Ludovic Rousseau
2180
2181 * [r4562] src/eventhandler.c, src/readerfactory.c,
2182 src/winscard_clnt.c, src/winscard_svc.c: use list_delete()
2183 instead of list_locate() + list_delete_at()
2184 * [r4561] src/simclist.c, src/simclist.h: add list_delete()
2185 "expunge the first found given element from the list"
2186
21872009-11-18 Ludovic Rousseau
2188
2189 * [r4560] UnitaryTests/MCT_ReaderDirect.py,
2190 UnitaryTests/SCardBeginTransaction_Disconnect.py,
2191 UnitaryTests/SCardCancel.py, UnitaryTests/SCardConnect_DIRECT.py,
2192 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange.py,
2193 UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py,
2194 UnitaryTests/SCardReconnect.py,
2195 UnitaryTests/control_get_firmware.py,
2196 UnitaryTests/control_switch_interface.py: reformat to make
2197 pep8(1) happy
2198 * [r4559] src/winscard_clnt.c: Doxygen improvement
2199 * [r4558] src/winscard_clnt.c: Doxygen: update SCardControl() list
2200 of possible error codes
2201 * [r4554] src/readerfactory.c, src/winscard_clnt.c,
2202 src/winscard_svc.c: add Jean-Luc Giraud in copyright holders
2203 because of his patch in revision 4553
2204
22052009-11-17 Ludovic Rousseau
2206
2207 * [r4553] src/Makefile.am, src/pcscd.h.in, src/pcscdaemon.c,
2208 src/readerfactory.c, src/readerfactory.h, src/winscard_clnt.c,
2209 src/winscard_svc.c, src/winscard_svc.h: Use lists instead of
2210 fixed size arrays to store handles.
2211
2212 It is now possible to have: - 200 simultaneous PC/SC clients
2213 instead of 16 - 200 SCardConnect per client instead of 16 - 200
2214 clients per reader instead of 16
2215
2216 The default value of 200 can be changed by giving an argument to
2217 pcscd --max-thread --max-card-handle-per-thread
2218 --max-card-handle-per-reader
2219
2220 Thanks to Jean-Luc Giraud for the big patch
2221 * [r4552] src/readerfactory.c: RFCreateReaderHandle(): add a
2222 comment that a 16-bit random is not secure enough
2223
22242009-11-16 Ludovic Rousseau
2225
2226 * [r4549] UnitaryTests/SCardReconnect.py: SCardReconnect() should
2227 block instead of returning SCARD_E_SHARING_VIOLATION
2228 * [r4548] UnitaryTests/SCardConnect_DIRECT.py: typo in text
2229 * [r4547] src/winscard_svc.c: remove printf() for debug from
2230 READ_BODY() macro
2231
22322009-11-12 Ludovic Rousseau
2233
2234 * [r4544] UnitaryTests/BufferOverflow.c, src/PCSC/ifdhandler.h,
2235 src/PCSC/pcsclite.h.in, src/PCSC/reader.h.in,
2236 src/PCSC/winscard.h, src/PCSC/wintypes.h, src/atrhandler.c,
2237 src/atrhandler.h, src/configfile.h, src/configfile.l,
2238 src/debug.c, src/debug.h, src/debuglog.c, src/dyn_generic.h,
2239 src/dyn_hpux.c, src/dyn_unix.c, src/error.c, src/eventhandler.c,
2240 src/eventhandler.h, src/hotplug.h, src/hotplug_libhal.c,
2241 src/hotplug_libusb.c, src/hotplug_linux.c, src/ifdwrapper.c,
2242 src/ifdwrapper.h, src/lassert.h, src/misc.h, src/parser.h,
2243 src/pcsc-wirecheck-gen.c, src/pcscd.h.in, src/pcscdaemon.c,
2244 src/powermgt_generic.c, src/readerfactory.c, src/readerfactory.h,
2245 src/strlcpycat.h, src/sys_generic.h, src/sys_unix.c,
2246 src/thread_generic.h, src/thread_unix.c, src/tokenparser.l,
2247 src/utils.c, src/utils.h, src/utils/formaticc.c,
2248 src/utils/installifd.c, src/winscard.c, src/winscard_clnt.c,
2249 src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c,
2250 src/winscard_svc.c, src/winscard_svc.h: update copyright dates
2251
22522009-11-07 Ludovic Rousseau
2253
2254 * [r4540] src/winscard_svc.c: remove ducplicate READ_BODY() and
2255 WRITE_BODY() macros
2256
22572009-11-06 Ludovic Rousseau
2258
2259 * [r4538] src/winscard_clnt.c: remove useless PCHANNEL_MAP type
2260 definition
2261 * [r4537] src/winscard_clnt.c: remove extra spaces at end of line
2262 * [r4536] src/hotplug_libusb.c: reindent
2263 * [r4535] src/hotplug_linux.c: reindent
2264 * [r4534] src/ifdwrapper.c: reindent
2265 * [r4533] src/readerfactory.c: RFAddReader(): make comment more
2266 clear for TAG_IFD_SLOT_THREAD_SAFE
2267 * [r4532] src/readerfactory.c: RFAddReader(): make comment more
2268 clear for TAG_IFD_THREAD_SAFE
2269
22702009-11-05 Ludovic Rousseau
2271
2272 * [r4531] src/winscard_msg.c, src/winscard_msg_srv.c: use PF_*
2273 instead of AF_* for socket(2) argument
2274
2275 Thanks to Sébastien Lorquet for the bug report
2276 http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0039.html
2277 * [r4530] src/winscard_msg.c, src/winscard_msg_srv.c: Revert change
2278 in revision 4395. Solaris does not have (Posix) AF_LOCAL
2279
2280 Thanks to Douglas E. Engert for the bug report
2281 http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0038.html
2282
22832009-11-03 Ludovic Rousseau
2284
2285 * [r4529] src/readerfactory.h: remove useless pointer types
2286
22872009-11-02 Ludovic Rousseau
2288
2289 * [r4528] src/winscard_clnt.c: SCardConnect(), SCardDisconnect() &
2290 SCardReleaseContext(): correctly handle error cases profiling
2291
22922009-10-28 Ludovic Rousseau
2293
2294 * [r4527] src/readerfactory.h, src/thread_generic.h,
2295 src/thread_unix.c, src/winscard_clnt.c: remove the type
2296 PCSCLITE_MUTEX_T and use an explicit pointer type (PCSCLITE_MUTEX
2297 *) instead
2298
2299 This should avoid bugs like the one corrected in revision 4525
2300 * [r4525] src/eventhandler.c: correctly use the lock API for
2301 ClientsWaitingForEvent_lock
2302 * [r4524] src/pcscdaemon.c, src/readerfactory.c,
2303 src/readerfactory.h: call exit() in SVCServiceRunLoop() instead
2304 of RFCleanupReaders() and remove the RFCleanupReaders() parameter
2305 * [r4523] src/readerfactory.c: use return() instead of exit() if
2306 DYN_GetAddress() fails
2307 * [r4522] src/eventhandler.c: explicitly use (void)fct() to ignore
2308 the returned value
2309
23102009-10-27 Ludovic Rousseau
2311
2312 * [r4520] src/eventhandler.c: EHStatusHandlerThread(): call
2313 EHSignalEventToClients() _after_ logging "Card inserted into ..."
2314 * [r4519] src/winscard_svc.c: ContextThread(): add the client ID to
2315 the command log message
2316 * [r4518] src/winscard_clnt.c: SCardGetStatusChange(): use
2317 SCARD_*_CONTEXT constants instead of numerical values
2318 * [r4517] src/eventhandler.h, src/winscard.c: move SCARD_*_CONTEXT
2319 from winscard.c to eventhandler.h
2320 * [r4516] src/winscard.c: remove useless SCARD_NO_LOCK define
2321 * [r4515] src/eventhandler.c: update comment
2322 * [r4514] src/winscard_clnt.c, src/winscard_msg.c,
2323 src/winscard_svc.c: SHMMessageReceive() now returns -2 in case of
2324 timeout and -1 in case of other error
2325
2326 This is used to correctly handle timeouts in
2327 SCardGetStatusChange()
2328 * [r4513] src/winscard_svc.c: ContextThread(): when a client dies
2329 call EHTryToUnregisterClientForEvent() to unregister it if needed
2330 * [r4512] src/eventhandler.c, src/eventhandler.h: add
2331 EHTryToUnregisterClientForEvent()
2332
23332009-10-18 Ludovic Rousseau
2334
2335 * [r4497] src/winscard_msg.c: SHMMessageSend(): document the use of
2336 MSG_NOSIGNAL to ignore SIGPIPE signal
2337
23382009-10-13 Ludovic Rousseau
2339
2340 * [r4491] src/Makefile.am: do not use PCSC_CLIENT_SRC variable
2341 anymore since SCF support has been removed
2342 * [r4490] src/Makefile.am: libpcsclite does not need to have
2343 dyn_hpux.c, dyn_macosx.c or dyn_unix.c. These files define
2344 DYN_LoadLibrary/DYN_CloseLibrary/DYN_GetAddress
2345 * [r4489] pbx, pcsc.pbproj: remove Xcode files. Apple has its own
2346 version of pcsc-lite for Mac OS X
2347 * [r4488] src/winscard_clnt.c: Doxygen(): better documentation for
2348 SCardCheckDaemonAvailability()
2349 * [r4487] src/winscard_clnt.c: revert changeset 4485.
2350 SCardCheckDaemonAvailability() is also used to invalidate the
2351 PC/SC handles after a fork or a pcscd restart
2352 * [r4486] configure.in, src/Makefile.am, src/winscard_scf.c: remove
2353 SCF support (PC/SC over Smart Card Framework). I never used this
2354 feature and SCF is now dead and replaced by JSR 268
2355 (javax.smartcardio)
2356
23572009-10-12 Ludovic Rousseau
2358
2359 * [r4485] src/winscard_clnt.c: SCardReleaseContext(),
2360 SCardConnect(), SCardReconnect(), SCardDisconnect(),
2361 SCardBeginTransaction(), SCardEndTransaction(),
2362 SCardCancelTransaction(), SCardStatus(), SCardGetStatusChange(),
2363 SCardControl(), SCardGetSetAttrib(), SCardTransmit(),
2364 SCardListReaders(), SCardFreeMemory()SCardListReaderGroups(),
2365 SCardIsValidContext(): do not SCardCheckDaemonAvailability()
2366 since we will try to talk to the server later. Any communication
2367 problem will be reported by SHMMessageSendWithHeader()
2368 * [r4484] src/winscard_clnt.c: SCardDisconnect(): factorize exit
2369 code
2370 * [r4483] src/winscard_clnt.c: SCardReconnect(): factorize exit
2371 code
2372 * [r4482] src/winscard_clnt.c: SCardConnect(): factorize exit code
2373 * [r4481] src/winscard_clnt.c: SCardReleaseContext(): release
2374 context even if communication with the server fails
2375 * [r4480] src/winscard_msg.c: SHMMessageSend(): use send(...,
2376 MSG_NOSIGNAL) instead of write(...) to avoid receiving a SIGPIPE
2377 signal if pcscd has exited. We just get EPIPE as return value
2378 * [r4479] src/winscard_clnt.c: SCardReconnect(),
2379 SCardBeginTransaction(), SCardEndTransaction(),
2380 SCardCancelTransaction(), SCardControl(), SCardGetSetAttrib() and
2381 SCardTransmit(): do not "synchronize reader states with daemon"
2382 since reader availability checks are done on the server side.
2383
23842009-10-09 Ludovic Rousseau
2385
2386 * [r4476] src/winscard_clnt.c: Doxygen improvement
2387 * [r4474] src/PCSC/ifdhandler.h: Doxygen: define an IFDHandler
2388 group
2389 * [r4473] src/PCSC/ifdhandler.h: Add Doxygen documentation of the
2390 IFD Handler API
2391 * [r4472] src/PCSC/ifdhandler.h: remove IFD_Handler 1.0 functions
2392 prototypes
2393 * [r4471] src/winscard_clnt.c: Doxygen: use @param[in,out] for in
2394 and out parameters
2395
23962009-10-08 Ludovic Rousseau
2397
2398 * [r4468] doc/example/pcsc_demo.c: cleanly exits in case of unknown
2399 protocol
2400 * [r4467] doc/example/pcsc_demo.c: use SCARD_AUTOALLOCATE for
2401 SCardListReaders()
2402 * [r4466] src/simclist.c, src/simclist.h: remove svn:executable
2403 property on source files
2404 * [r4465] src/sys_generic.h, src/sys_unix.c: Define SYS_Fork() only
2405 if used (if HAVE_DAEMON is not set)
2406 * [r4464] src/sys_generic.h, src/sys_unix.c: Remove useless
2407 SYS_GetPageSize(), SYS_MemoryMap(), SYS_PublicMemoryMap(),
2408 SYS_PublicMemoryUnmap() and SYS_MMapSynchronize()
2409 * [r4463] src/sys_generic.h, src/sys_unix.c: Remove useless
2410 SYS_ReadFile()
2411 * [r4462] src/sys_generic.h, src/sys_unix.c: Remove useless
2412 SYS_SeekFile()
2413 * [r4461] src/sys_generic.h: Remove SYS_ChangePermissions()
2414 prototype (the function is NOT defined anywhere)
2415 * [r4460] src/sys_generic.h, src/sys_unix.c: Remove useless
2416 SYS_GetUID() & SYS_GetGID()
2417 * [r4459] src/sys_generic.h, src/sys_unix.c: Remove useless
2418 SYS_GetPID()
2419 * [r4458] src/sys_generic.h, src/sys_unix.c, src/winscard_clnt.c:
2420 SYS_Initialize() does nothing. Remove it.
2421 * [r4457] src/readerfactory.c: Comment out RFSuspendAllReaders()
2422 and RFAwakeAllReaders(). We do not yet support suspend/resume on
2423 Linux
2424 * [r4456] src/readerfactory.c, src/readerfactory.h: remove useless
2425 RFListReaders()
2426 * [r4455] src/readerfactory.c, src/readerfactory.h: remove useless
2427 RFUnblockContext()
2428 * [r4454] src/readerfactory.c, src/readerfactory.h, src/winscard.c:
2429 remove useless RFUnblockReader()
2430 * [r4453] src/pcscd.h.in, src/readerfactory.c, src/winscard_clnt.c:
2431 do not use contextBlockStatus tpo block/unblock a context. We now
2432 use SCardCancel() on the server side to unblock
2433 SCardGetStatusChange()
2434 * [r4452] doc/Makefile.am, doc/pcsc-lite.bib, doc/pcsc-lite.tex:
2435 The .tex documentation is no more maintained. The reference
2436 WinSCard API documentation is from Doxygen now.
2437 * [r4451] UnitaryTests/SCardConnect_DIRECT.py: add documentation
2438 * [r4447] src/ifdwrapper.c: IFDControl(): return
2439 SCARD_E_INSUFFICIENT_BUFFER if the driver returns
2440 IFD_ERROR_INSUFFICIENT_BUFFER
2441 * [r4445] src/winscard.c: SCardGetAttrib(): return
2442 SCARD_E_INSUFFICIENT_BUFFER if the driver returns
2443 IFD_ERROR_INSUFFICIENT_BUFFER
2444
2445 Thanks to Emmanuel Deloget for the bug report
2446 http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0003.html
2447 * [r4444] src/PCSC/ifdhandler.h: add IFD_ERROR_INSUFFICIENT_BUFFER
2448 * [r4443] src/winscard.c: SCardReconnect(): log the selected
2449 protocol (as done in SCardConnect())
2450 * [r4442] src/winscard_clnt.c: SCardReconnect(): return
2451 SCARD_E_SHARING_VIOLATION instead of blocking if the reader
2452 cannot be shared.
2453
2454 This change was made in revision 2475 but I don't remember why.
2455
2456 Thanks to Paul Klissner for the bug report
2457 http://archives.neohapsis.com/archives/dev/muscle/2009-q3/0106.html
2458
24592009-10-06 Ludovic Rousseau
2460
2461 * [r4438] src/winscard_clnt.c, src/winscard_msg.h: remove typedefs
2462 and explicitly use struct for structures
2463 * [r4437] src/pcsc-wirecheck-gen.c: update to the new client/server
2464 ABI
2465 * [r4436] src/utils.c, src/utils.h: remove now useless
2466 StatSynchronize() and StatSynchronizeContext()
2467 * [r4435] src/winscard_clnt.c: remove now useless SCardUnload()
2468 * [r4434] src/eventhandler.c, src/pcscd.h.in, src/pcscdaemon.c,
2469 src/readerfactory.c, src/winscard.c, src/winscard_clnt.c,
2470 src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c,
2471 src/winscard_svc.c: redesign the client/server communication: -
2472 no more shared memory used (allow pcscd and libpcsclite1.so to be
2473 on different computer and talk over a network) - no more
2474 difference between short and extended APDU - no more use of a
2475 /var/run/pcscd/pcscd.events/ directory. events are sent through
2476 the socket - simpler command format between client and server
2477
2478 The side effect is that you are not able to mix an old pcscd with
2479 a new libpcsclite1.so or the reverse. SCardEstablishContext()
2480 will fail unless you update both sides of the communication.
2481 * [r4433] src/winscard_msg.c: reformat comment
2482 * [r4432] src/winscard_svc.c, src/winscard_svc.h: add
2483 MSGSignalClient()
2484 * [r4431] src/winscard_msg.h: add struct wait_reader_state_change
2485 * [r4430] src/pcscd.h.in: add PCSCLITE_WRITE_TIMEOUT and
2486 PCSCLITE_READ_TIMEOUT
2487 * [r4429] src/winscard_msg.c: reformat comments
2488 * [r4428] src/eventhandler.c, src/eventhandler.h: add
2489 EHRegisterClientForEvent(), EHUnregisterClientForEvent() and
2490 EHSignalEventToClients()
2491 * [r4427] src/Makefile.am: add simclist.{c,h} to pcscd dependencies
2492 * [r4426] src/simclist.c, src/simclist.h: Library to manage lists
2493 Fetched from http://mij.oltrelinux.com/devel/simclist/
2494
24952009-10-05 Ludovic Rousseau
2496
2497 * [r4425] UnitaryTests/SCardCancel.py: display return values even
2498 if no error returned
2499
25002009-10-03 Ludovic Rousseau
2501
2502 * [r4419] src/winscard_clnt.c: Doxygen document SCardConnect()
2503 difference with Windows for SCARD_SHARE_DIRECT
2504
25052009-10-02 Ludovic Rousseau
2506
2507 * [r4418] src/winscard_clnt.c: add Doxygen section: Known
2508 differences with Microsoft Windows WinSCard implementation
2509
25102009-09-29 Ludovic Rousseau
2511
2512 * [r4408] src/pcscdaemon.c: main(): check RFAllocateReaderSpace()
2513 returned value
2514 * [r4407] src/winscard_clnt.c: SCardGetStatusChange(): Calling with
2515 cReaders == 0 will now just return SCARD_S_SUCCESS
2516
2517 Use the special reader name "\\?PnP?\Notification" to wait for a
2518 reader event notification
2519 * [r4406] src/pcscd.h.in: remove comment about PCSCLITE_MAX_READERS
2520 * [r4405] src/pcscd.h.in: remove useless PCSCLITE_MAX_THREADS
2521 definition
2522 * [r4404] src/pcscd.h.in: remove useless
2523 PCSCLITE_TRANSACTION_TIMEOUT definition
2524 * [r4403] src/utils.c, src/utils.h, src/winscard.c,
2525 src/winscard_clnt.c: move time_sub() in utils.c
2526 * [r4402] src/pcsc-wirecheck-gen.c, src/pcscd.h.in,
2527 src/winscard_msg.c, src/winscard_msg.h: remove useless
2528 key[PCSCLITE_MSG_KEY_LEN] field
2529
25302009-09-28 Ludovic Rousseau
2531
2532 * [r4400] src/winscard.c: SCardTransmit(): do not limit the minimum
2533 size of an APDU to 4 bytes. non ISO 7816-4 compliant cards (like
2534 Mifare DESFIRE) may use shorter commands
2535
2536 Thanks to Björn Kupfer for the bug report
2537 * [r4399] src/winscard.c: SCardTransmit(): call IFDControl_v2
2538 instead of IFDTransmit only if dwProtocol == SCARD_PROTOCOL_RAW
2539 _and_ ifdhandler is v2.0
2540
2541 Thanks to Björn Kupfer for the patch
2542
25432009-09-23 Ludovic Rousseau
2544
2545 * [r4395] src/winscard_msg.c, src/winscard_msg_srv.c: use the POSIX
2546 name AF_LOCAL instead of AF_UNIX
2547
25482009-09-21 Ludovic Rousseau
2549
2550 * [r4388] src/pcscd.h.in: remove unsuned #define
2551 PCSCLITE_RW_ATTEMPTS
2552
25532009-09-17 Ludovic Rousseau
2554
2555 * [r4387] src/winscard_clnt.c: typo in Doxygen comment
2556
25572009-09-15 Ludovic Rousseau
2558
2559 * [r4386] src/winscard_clnt.c: SCardReleaseContext(),
2560 SCardControl(), SCardTransmit() and SCardListReaders(): add a
2561 call to PROFILE_END() before exiting with SCARD_E_INVALID_HANDLE
2562 error code to have a better profiling output
2563 * [r4385] src/winscard.c:
2564 SCardEstablishContext()/SCardReleaseContext(): log context value
2565 in hexadecimal instead of decimal
2566 * [r4384] src/winscard_msg.c: rename argument blockAmount in
2567 timeOut to better reflect its function
2568
25692009-09-08 Ludovic Rousseau
2570
2571 * [r4378] src/PCSC/reader.h.in: update sruct
2572 PIN_PROPERTIES_STRUCTURE to be conform with Revision 2.02.06,
2573 April 2009 of PCSCv2 part 10
2574
2575 Fields wLcdMaxCharacters and wLcdMaxLines have been removed
2576
25772009-09-01 Ludovic Rousseau
2578
2579 * [r4375] src/pcscdaemon.c: signal_reload(): reenable the signal
2580 handler. This is needed on Solaris and HPUX.
2581
2582 Thanks to Douglas E. Engert for the patch
2583 http://archives.neohapsis.com/archives/dev/muscle/2009-q3/0061.html
2584
25852009-08-31 Ludovic Rousseau
2586
2587 * [r4374] src/ifdwrapper.c, src/winscard.c: typo in comments
2588
25892009-08-28 Ludovic Rousseau
2590
2591 * [r4371] src/hotplug_libhal.c, src/hotplug_libusb.c,
2592 src/hotplug_linux.c, src/pcscdaemon.c: move definition of
2593 usbNotifierMutex in the underlying layers where it is used
2594
25952009-08-27 Ludovic Rousseau
2596
2597 * [r4367] src/ifdwrapper.c: IFDControl(): return
2598 SCARD_E_UNSUPPORTED_FEATURE if the driver returned
2599 IFD_ERROR_NOT_SUPPORTED or IFD_NOT_SUPPORTED
2600
2601 This is used to separate an unsupported value of ControlCode from
2602 a general error
2603
26042009-07-31 Ludovic Rousseau
2605
2606 * [r4359] UnitaryTests/control_switch_interface.py: switch
2607 interface on the GemProx DU
2608 * [r4357] UnitaryTests/control_get_firmware.py: get firmware
2609 version of Gemalto readers
2610
26112009-07-30 Ludovic Rousseau
2612
2613 * [r4354] src/ifdwrapper.c: remove extra spaces at end of line
2614 * [r4353] src/configfile.l: reformat
2615 * [r4352] src/configfile.l: remove extra spaces
2616
12009-07-28 Ludovic Rousseau26172009-07-28 Ludovic Rousseau
22618
3 * [r4349] ChangeLog, configure.in: release 1.5.52619 * [r4349] ChangeLog, configure.in: release 1.5.5
42620
=== modified file 'Makefile.am'
--- Makefile.am 2010-07-10 11:15:59 +0000
+++ Makefile.am 2011-03-19 10:51:41 +0000
@@ -1,4 +1,7 @@
1SUBDIRS = m4 src etc doc1SUBDIRS = m4 src doc
2
3fix-rights:
4 $(MAKE) -C src $@
25
3ACLOCAL_AMFLAGS = -I m46ACLOCAL_AMFLAGS = -I m4
47
58
=== modified file 'Makefile.in'
--- Makefile.in 2010-07-10 11:15:59 +0000
+++ Makefile.in 2011-03-19 10:51:41 +0000
@@ -1,8 +1,9 @@
1# Makefile.in generated by automake 1.10.2 from Makefile.am.1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@2# @configure_input@
33
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
6# This Makefile.in is free software; the Free Software Foundation7# This Makefile.in is free software; the Free Software Foundation
7# gives unlimited permission to copy and/or distribute it,8# gives unlimited permission to copy and/or distribute it,
8# with or without modifications, as long as this notice is preserved.9# with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
15@SET_MAKE@16@SET_MAKE@
16VPATH = @srcdir@17VPATH = @srcdir@
17pkgdatadir = $(datadir)/@PACKAGE@18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
18pkglibdir = $(libdir)/@PACKAGE@20pkglibdir = $(libdir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@21pkglibexecdir = $(libexecdir)/@PACKAGE@
20am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
21install_sh_DATA = $(install_sh) -c -m 64423install_sh_DATA = $(install_sh) -c -m 644
22install_sh_PROGRAM = $(install_sh) -c24install_sh_PROGRAM = $(install_sh) -c
@@ -35,9 +37,9 @@
35DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \37DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
36 $(srcdir)/Makefile.in $(srcdir)/config.h.in \38 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
37 $(top_srcdir)/configure $(top_srcdir)/src/PCSC/pcsclite.h.in \39 $(top_srcdir)/configure $(top_srcdir)/src/PCSC/pcsclite.h.in \
38 $(top_srcdir)/src/PCSC/reader.h.in AUTHORS COPYING ChangeLog \40 AUTHORS COPYING ChangeLog INSTALL NEWS TODO compile \
39 INSTALL NEWS TODO compile config.guess config.sub depcomp \41 config.guess config.sub depcomp install-sh ltmain.sh missing \
40 install-sh ltmain.sh missing ylwrap42 ylwrap
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m443ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \44am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
43 $(top_srcdir)/m4/as-ac-expand.m4 $(top_srcdir)/m4/libtool.m4 \45 $(top_srcdir)/m4/as-ac-expand.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -50,7 +52,8 @@
50 configure.lineno config.status.lineno52 configure.lineno config.status.lineno
51mkinstalldirs = $(install_sh) -d53mkinstalldirs = $(install_sh) -d
52CONFIG_HEADER = config.h54CONFIG_HEADER = config.h
53CONFIG_CLEAN_FILES = src/PCSC/pcsclite.h src/PCSC/reader.h55CONFIG_CLEAN_FILES = src/PCSC/pcsclite.h
56CONFIG_CLEAN_VPATH_FILES =
54SOURCES =57SOURCES =
55DIST_SOURCES =58DIST_SOURCES =
56RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \59RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -62,6 +65,9 @@
62 ps-recursive uninstall-recursive65 ps-recursive uninstall-recursive
63RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \66RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
64 distclean-recursive maintainer-clean-recursive67 distclean-recursive maintainer-clean-recursive
68AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
69 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
70 distdir dist dist-all distcheck
65ETAGS = etags71ETAGS = etags
66CTAGS = ctags72CTAGS = ctags
67DIST_SUBDIRS = $(SUBDIRS)73DIST_SUBDIRS = $(SUBDIRS)
@@ -69,9 +75,34 @@
69distdir = $(PACKAGE)-$(VERSION)75distdir = $(PACKAGE)-$(VERSION)
70top_distdir = $(distdir)76top_distdir = $(distdir)
71am__remove_distdir = \77am__remove_distdir = \
72 { test ! -d $(distdir) \78 { test ! -d "$(distdir)" \
73 || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \79 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
74 && rm -fr $(distdir); }; }80 && rm -fr "$(distdir)"; }; }
81am__relativize = \
82 dir0=`pwd`; \
83 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
84 sed_rest='s,^[^/]*/*,,'; \
85 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
86 sed_butlast='s,/*[^/]*$$,,'; \
87 while test -n "$$dir1"; do \
88 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
89 if test "$$first" != "."; then \
90 if test "$$first" = ".."; then \
91 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
92 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
93 else \
94 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
95 if test "$$first2" = "$$first"; then \
96 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
97 else \
98 dir2="../$$dir2"; \
99 fi; \
100 dir0="$$dir0"/"$$first"; \
101 fi; \
102 fi; \
103 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
104 done; \
105 reldir="$$dir2"
75GZIP_ENV = --best106GZIP_ENV = --best
76DIST_ARCHIVES = $(distdir).tar.bz2107DIST_ARCHIVES = $(distdir).tar.bz2
77distuninstallcheck_listfiles = find . -type f -print108distuninstallcheck_listfiles = find . -type f -print
@@ -113,12 +144,11 @@
113LEXLIB = @LEXLIB@144LEXLIB = @LEXLIB@
114LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@145LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
115LIBDL = @LIBDL@146LIBDL = @LIBDL@
116LIBHAL_CFLAGS = @LIBHAL_CFLAGS@
117LIBHAL_LIBS = @LIBHAL_LIBS@
118LIBOBJS = @LIBOBJS@147LIBOBJS = @LIBOBJS@
119LIBS = @LIBS@148LIBS = @LIBS@
120LIBSMARTCARD = @LIBSMARTCARD@
121LIBTOOL = @LIBTOOL@149LIBTOOL = @LIBTOOL@
150LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@
151LIBUDEV_LIBS = @LIBUDEV_LIBS@
122LIBUSBCONFIG = @LIBUSBCONFIG@152LIBUSBCONFIG = @LIBUSBCONFIG@
123LIBUSB_CFLAGS = @LIBUSB_CFLAGS@153LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
124LIBUSB_LIBS = @LIBUSB_LIBS@154LIBUSB_LIBS = @LIBUSB_LIBS@
@@ -139,9 +169,13 @@
139PACKAGE_NAME = @PACKAGE_NAME@169PACKAGE_NAME = @PACKAGE_NAME@
140PACKAGE_STRING = @PACKAGE_STRING@170PACKAGE_STRING = @PACKAGE_STRING@
141PACKAGE_TARNAME = @PACKAGE_TARNAME@171PACKAGE_TARNAME = @PACKAGE_TARNAME@
172PACKAGE_URL = @PACKAGE_URL@
142PACKAGE_VERSION = @PACKAGE_VERSION@173PACKAGE_VERSION = @PACKAGE_VERSION@
143PATH_SEPARATOR = @PATH_SEPARATOR@174PATH_SEPARATOR = @PATH_SEPARATOR@
175PCSCLITE_CONFIG_DIR = @PCSCLITE_CONFIG_DIR@
144PKG_CONFIG = @PKG_CONFIG@176PKG_CONFIG = @PKG_CONFIG@
177PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
178PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
145PTHREAD_CC = @PTHREAD_CC@179PTHREAD_CC = @PTHREAD_CC@
146PTHREAD_CFLAGS = @PTHREAD_CFLAGS@180PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
147PTHREAD_LIBS = @PTHREAD_LIBS@181PTHREAD_LIBS = @PTHREAD_LIBS@
@@ -171,7 +205,6 @@
171build_os = @build_os@205build_os = @build_os@
172build_vendor = @build_vendor@206build_vendor = @build_vendor@
173builddir = @builddir@207builddir = @builddir@
174confdir = @confdir@
175confdir_exp = @confdir_exp@208confdir_exp = @confdir_exp@
176datadir = @datadir@209datadir = @datadir@
177datarootdir = @datarootdir@210datarootdir = @datarootdir@
@@ -208,13 +241,13 @@
208sharedstatedir = @sharedstatedir@241sharedstatedir = @sharedstatedir@
209srcdir = @srcdir@242srcdir = @srcdir@
210sysconfdir = @sysconfdir@243sysconfdir = @sysconfdir@
211sysconfdir_exp = @sysconfdir_exp@
212target_alias = @target_alias@244target_alias = @target_alias@
213top_build_prefix = @top_build_prefix@245top_build_prefix = @top_build_prefix@
214top_builddir = @top_builddir@246top_builddir = @top_builddir@
215top_srcdir = @top_srcdir@247top_srcdir = @top_srcdir@
216usbdropdir = @usbdropdir@248usbdropdir = @usbdropdir@
217SUBDIRS = m4 src etc doc249usbdropdir_exp = @usbdropdir_exp@
250SUBDIRS = m4 src doc
218ACLOCAL_AMFLAGS = -I m4251ACLOCAL_AMFLAGS = -I m4
219EXTRA_DIST = DRIVERS SECURITY bootstrap HELP ChangeLog.svn252EXTRA_DIST = DRIVERS SECURITY bootstrap HELP ChangeLog.svn
220DISTCLEANFILES = ChangeLog.svn253DISTCLEANFILES = ChangeLog.svn
@@ -228,15 +261,15 @@
228 @for dep in $?; do \261 @for dep in $?; do \
229 case '$(am__configure_deps)' in \262 case '$(am__configure_deps)' in \
230 *$$dep*) \263 *$$dep*) \
231 echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \264 echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
232 cd $(srcdir) && $(AUTOMAKE) --gnu \265 $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
233 && exit 0; \266 && exit 0; \
234 exit 1;; \267 exit 1;; \
235 esac; \268 esac; \
236 done; \269 done; \
237 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \270 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
238 cd $(top_srcdir) && \271 $(am__cd) $(top_srcdir) && \
239 $(AUTOMAKE) --gnu Makefile272 $(AUTOMAKE) --gnu Makefile
240.PRECIOUS: Makefile273.PRECIOUS: Makefile
241Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status274Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
242 @case '$?' in \275 @case '$?' in \
@@ -252,9 +285,10 @@
252 $(SHELL) ./config.status --recheck285 $(SHELL) ./config.status --recheck
253286
254$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)287$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
255 cd $(srcdir) && $(AUTOCONF)288 $(am__cd) $(srcdir) && $(AUTOCONF)
256$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)289$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
257 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)290 $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
291$(am__aclocal_m4_deps):
258292
259config.h: stamp-h1293config.h: stamp-h1
260 @if test ! -f $@; then \294 @if test ! -f $@; then \
@@ -266,7 +300,7 @@
266 @rm -f stamp-h1300 @rm -f stamp-h1
267 cd $(top_builddir) && $(SHELL) ./config.status config.h301 cd $(top_builddir) && $(SHELL) ./config.status config.h
268$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 302$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
269 cd $(top_srcdir) && $(AUTOHEADER)303 ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
270 rm -f stamp-h1304 rm -f stamp-h1
271 touch $@305 touch $@
272306
@@ -274,8 +308,6 @@
274 -rm -f config.h stamp-h1308 -rm -f config.h stamp-h1
275src/PCSC/pcsclite.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/pcsclite.h.in309src/PCSC/pcsclite.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/pcsclite.h.in
276 cd $(top_builddir) && $(SHELL) ./config.status $@310 cd $(top_builddir) && $(SHELL) ./config.status $@
277src/PCSC/reader.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/reader.h.in
278 cd $(top_builddir) && $(SHELL) ./config.status $@
279311
280mostlyclean-libtool:312mostlyclean-libtool:
281 -rm -f *.lo313 -rm -f *.lo
@@ -293,7 +325,7 @@
293# (which will cause the Makefiles to be regenerated when you run `make');325# (which will cause the Makefiles to be regenerated when you run `make');
294# (2) otherwise, pass the desired values on the `make' command line.326# (2) otherwise, pass the desired values on the `make' command line.
295$(RECURSIVE_TARGETS):327$(RECURSIVE_TARGETS):
296 @failcom='exit 1'; \328 @fail= failcom='exit 1'; \
297 for f in x $$MAKEFLAGS; do \329 for f in x $$MAKEFLAGS; do \
298 case $$f in \330 case $$f in \
299 *=* | --[!k]*);; \331 *=* | --[!k]*);; \
@@ -310,7 +342,7 @@
310 else \342 else \
311 local_target="$$target"; \343 local_target="$$target"; \
312 fi; \344 fi; \
313 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \345 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
314 || eval $$failcom; \346 || eval $$failcom; \
315 done; \347 done; \
316 if test "$$dot_seen" = "no"; then \348 if test "$$dot_seen" = "no"; then \
@@ -318,7 +350,7 @@
318 fi; test -z "$$fail"350 fi; test -z "$$fail"
319351
320$(RECURSIVE_CLEAN_TARGETS):352$(RECURSIVE_CLEAN_TARGETS):
321 @failcom='exit 1'; \353 @fail= failcom='exit 1'; \
322 for f in x $$MAKEFLAGS; do \354 for f in x $$MAKEFLAGS; do \
323 case $$f in \355 case $$f in \
324 *=* | --[!k]*);; \356 *=* | --[!k]*);; \
@@ -344,16 +376,16 @@
344 else \376 else \
345 local_target="$$target"; \377 local_target="$$target"; \
346 fi; \378 fi; \
347 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \379 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
348 || eval $$failcom; \380 || eval $$failcom; \
349 done && test -z "$$fail"381 done && test -z "$$fail"
350tags-recursive:382tags-recursive:
351 list='$(SUBDIRS)'; for subdir in $$list; do \383 list='$(SUBDIRS)'; for subdir in $$list; do \
352 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \384 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
353 done385 done
354ctags-recursive:386ctags-recursive:
355 list='$(SUBDIRS)'; for subdir in $$list; do \387 list='$(SUBDIRS)'; for subdir in $$list; do \
356 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \388 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
357 done389 done
358390
359ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)391ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -368,7 +400,7 @@
368400
369TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \401TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
370 $(TAGS_FILES) $(LISP)402 $(TAGS_FILES) $(LISP)
371 tags=; \403 set x; \
372 here=`pwd`; \404 here=`pwd`; \
373 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \405 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
374 include_option=--etags-include; \406 include_option=--etags-include; \
@@ -380,7 +412,7 @@
380 list='$(SUBDIRS)'; for subdir in $$list; do \412 list='$(SUBDIRS)'; for subdir in $$list; do \
381 if test "$$subdir" = .; then :; else \413 if test "$$subdir" = .; then :; else \
382 test ! -f $$subdir/TAGS || \414 test ! -f $$subdir/TAGS || \
383 tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \415 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
384 fi; \416 fi; \
385 done; \417 done; \
386 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \418 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
@@ -389,36 +421,41 @@
389 done | \421 done | \
390 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \422 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
391 END { if (nonempty) { for (i in files) print i; }; }'`; \423 END { if (nonempty) { for (i in files) print i; }; }'`; \
392 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \424 shift; \
425 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
393 test -n "$$unique" || unique=$$empty_fix; \426 test -n "$$unique" || unique=$$empty_fix; \
394 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \427 if test $$# -gt 0; then \
395 $$tags $$unique; \428 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
429 "$$@" $$unique; \
430 else \
431 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
432 $$unique; \
433 fi; \
396 fi434 fi
397ctags: CTAGS435ctags: CTAGS
398CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \436CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
399 $(TAGS_FILES) $(LISP)437 $(TAGS_FILES) $(LISP)
400 tags=; \
401 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \438 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
402 unique=`for i in $$list; do \439 unique=`for i in $$list; do \
403 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \440 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
404 done | \441 done | \
405 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \442 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
406 END { if (nonempty) { for (i in files) print i; }; }'`; \443 END { if (nonempty) { for (i in files) print i; }; }'`; \
407 test -z "$(CTAGS_ARGS)$$tags$$unique" \444 test -z "$(CTAGS_ARGS)$$unique" \
408 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \445 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
409 $$tags $$unique446 $$unique
410447
411GTAGS:448GTAGS:
412 here=`$(am__cd) $(top_builddir) && pwd` \449 here=`$(am__cd) $(top_builddir) && pwd` \
413 && cd $(top_srcdir) \450 && $(am__cd) $(top_srcdir) \
414 && gtags -i $(GTAGS_ARGS) $$here451 && gtags -i $(GTAGS_ARGS) "$$here"
415452
416distclean-tags:453distclean-tags:
417 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags454 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
418455
419distdir: $(DISTFILES)456distdir: $(DISTFILES)
420 $(am__remove_distdir)457 $(am__remove_distdir)
421 test -d $(distdir) || mkdir $(distdir)458 test -d "$(distdir)" || mkdir "$(distdir)"
422 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \459 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
423 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \460 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
424 list='$(DISTFILES)'; \461 list='$(DISTFILES)'; \
@@ -434,38 +471,55 @@
434 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \471 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
435 if test -d $$d/$$file; then \472 if test -d $$d/$$file; then \
436 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \473 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
474 if test -d "$(distdir)/$$file"; then \
475 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
476 fi; \
437 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \477 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
438 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \478 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
479 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
439 fi; \480 fi; \
440 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \481 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
441 else \482 else \
442 test -f $(distdir)/$$file \483 test -f "$(distdir)/$$file" \
443 || cp -p $$d/$$file $(distdir)/$$file \484 || cp -p $$d/$$file "$(distdir)/$$file" \
444 || exit 1; \485 || exit 1; \
445 fi; \486 fi; \
446 done487 done
447 list='$(DIST_SUBDIRS)'; for subdir in $$list; do \488 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
448 if test "$$subdir" = .; then :; else \489 if test "$$subdir" = .; then :; else \
449 test -d "$(distdir)/$$subdir" \490 test -d "$(distdir)/$$subdir" \
450 || $(MKDIR_P) "$(distdir)/$$subdir" \491 || $(MKDIR_P) "$(distdir)/$$subdir" \
451 || exit 1; \492 || exit 1; \
452 distdir=`$(am__cd) $(distdir) && pwd`; \493 fi; \
453 top_distdir=`$(am__cd) $(top_distdir) && pwd`; \494 done
454 (cd $$subdir && \495 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
496 if test "$$subdir" = .; then :; else \
497 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
498 $(am__relativize); \
499 new_distdir=$$reldir; \
500 dir1=$$subdir; dir2="$(top_distdir)"; \
501 $(am__relativize); \
502 new_top_distdir=$$reldir; \
503 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
504 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
505 ($(am__cd) $$subdir && \
455 $(MAKE) $(AM_MAKEFLAGS) \506 $(MAKE) $(AM_MAKEFLAGS) \
456 top_distdir="$$top_distdir" \507 top_distdir="$$new_top_distdir" \
457 distdir="$$distdir/$$subdir" \508 distdir="$$new_distdir" \
458 am__remove_distdir=: \509 am__remove_distdir=: \
459 am__skip_length_check=: \510 am__skip_length_check=: \
511 am__skip_mode_fix=: \
460 distdir) \512 distdir) \
461 || exit 1; \513 || exit 1; \
462 fi; \514 fi; \
463 done515 done
464 -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \516 -test -n "$(am__skip_mode_fix)" \
517 || find "$(distdir)" -type d ! -perm -755 \
518 -exec chmod u+rwx,go+rx {} \; -o \
465 ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \519 ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
466 ! -type d ! -perm -400 -exec chmod a+r {} \; -o \520 ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
467 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \521 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
468 || chmod -R a+r $(distdir)522 || chmod -R a+r "$(distdir)"
469dist-gzip: distdir523dist-gzip: distdir
470 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz524 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
471 $(am__remove_distdir)525 $(am__remove_distdir)
@@ -477,6 +531,10 @@
477 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma531 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
478 $(am__remove_distdir)532 $(am__remove_distdir)
479533
534dist-xz: distdir
535 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
536 $(am__remove_distdir)
537
480dist-tarZ: distdir538dist-tarZ: distdir
481 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z539 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
482 $(am__remove_distdir)540 $(am__remove_distdir)
@@ -500,15 +558,17 @@
500distcheck: dist558distcheck: dist
501 case '$(DIST_ARCHIVES)' in \559 case '$(DIST_ARCHIVES)' in \
502 *.tar.gz*) \560 *.tar.gz*) \
503 GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\561 GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
504 *.tar.bz2*) \562 *.tar.bz2*) \
505 bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\563 bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
506 *.tar.lzma*) \564 *.tar.lzma*) \
507 unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\565 lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
566 *.tar.xz*) \
567 xz -dc $(distdir).tar.xz | $(am__untar) ;;\
508 *.tar.Z*) \568 *.tar.Z*) \
509 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\569 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
510 *.shar.gz*) \570 *.shar.gz*) \
511 GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\571 GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
512 *.zip*) \572 *.zip*) \
513 unzip $(distdir).zip ;;\573 unzip $(distdir).zip ;;\
514 esac574 esac
@@ -516,9 +576,11 @@
516 mkdir $(distdir)/_build576 mkdir $(distdir)/_build
517 mkdir $(distdir)/_inst577 mkdir $(distdir)/_inst
518 chmod a-w $(distdir)578 chmod a-w $(distdir)
579 test -d $(distdir)/_build || exit 0; \
519 dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \580 dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
520 && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \581 && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
521 && cd $(distdir)/_build \582 && am__cwd=`pwd` \
583 && $(am__cd) $(distdir)/_build \
522 && ../configure --srcdir=.. --prefix="$$dc_install_base" \584 && ../configure --srcdir=.. --prefix="$$dc_install_base" \
523 $(DISTCHECK_CONFIGURE_FLAGS) \585 $(DISTCHECK_CONFIGURE_FLAGS) \
524 && $(MAKE) $(AM_MAKEFLAGS) \586 && $(MAKE) $(AM_MAKEFLAGS) \
@@ -540,13 +602,15 @@
540 && rm -rf "$$dc_destdir" \602 && rm -rf "$$dc_destdir" \
541 && $(MAKE) $(AM_MAKEFLAGS) dist \603 && $(MAKE) $(AM_MAKEFLAGS) dist \
542 && rm -rf $(DIST_ARCHIVES) \604 && rm -rf $(DIST_ARCHIVES) \
543 && $(MAKE) $(AM_MAKEFLAGS) distcleancheck605 && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
606 && cd "$$am__cwd" \
607 || exit 1
544 $(am__remove_distdir)608 $(am__remove_distdir)
545 @(echo "$(distdir) archives ready for distribution: "; \609 @(echo "$(distdir) archives ready for distribution: "; \
546 list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \610 list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
547 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'611 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
548distuninstallcheck:612distuninstallcheck:
549 @cd $(distuninstallcheck_dir) \613 @$(am__cd) '$(distuninstallcheck_dir)' \
550 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \614 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
551 || { echo "ERROR: files left after uninstall:" ; \615 || { echo "ERROR: files left after uninstall:" ; \
552 if test -n "$(DESTDIR)"; then \616 if test -n "$(DESTDIR)"; then \
@@ -588,6 +652,7 @@
588652
589distclean-generic:653distclean-generic:
590 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)654 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
655 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
591 -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)656 -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
592657
593maintainer-clean-generic:658maintainer-clean-generic:
@@ -609,6 +674,8 @@
609674
610html: html-recursive675html: html-recursive
611676
677html-am:
678
612info: info-recursive679info: info-recursive
613680
614info-am:681info-am:
@@ -617,18 +684,28 @@
617684
618install-dvi: install-dvi-recursive685install-dvi: install-dvi-recursive
619686
687install-dvi-am:
688
620install-exec-am:689install-exec-am:
621690
622install-html: install-html-recursive691install-html: install-html-recursive
623692
693install-html-am:
694
624install-info: install-info-recursive695install-info: install-info-recursive
625696
697install-info-am:
698
626install-man:699install-man:
627700
628install-pdf: install-pdf-recursive701install-pdf: install-pdf-recursive
629702
703install-pdf-am:
704
630install-ps: install-ps-recursive705install-ps: install-ps-recursive
631706
707install-ps-am:
708
632installcheck-am:709installcheck-am:
633710
634maintainer-clean: maintainer-clean-recursive711maintainer-clean: maintainer-clean-recursive
@@ -651,25 +728,28 @@
651728
652uninstall-am:729uninstall-am:
653730
654.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \731.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
655 install-strip732 ctags-recursive install-am install-strip tags-recursive
656733
657.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \734.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
658 all all-am am--refresh check check-am clean clean-generic \735 all all-am am--refresh check check-am clean clean-generic \
659 clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \736 clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
660 dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \737 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
661 distclean distclean-generic distclean-hdr distclean-libtool \738 distcheck distclean distclean-generic distclean-hdr \
662 distclean-tags distcleancheck distdir distuninstallcheck dvi \739 distclean-libtool distclean-tags distcleancheck distdir \
663 dvi-am html html-am info info-am install install-am \740 distuninstallcheck dvi dvi-am html html-am info info-am \
664 install-data install-data-am install-dvi install-dvi-am \741 install install-am install-data install-data-am install-dvi \
665 install-exec install-exec-am install-html install-html-am \742 install-dvi-am install-exec install-exec-am install-html \
666 install-info install-info-am install-man install-pdf \743 install-html-am install-info install-info-am install-man \
667 install-pdf-am install-ps install-ps-am install-strip \744 install-pdf install-pdf-am install-ps install-ps-am \
668 installcheck installcheck-am installdirs installdirs-am \745 install-strip installcheck installcheck-am installdirs \
669 maintainer-clean maintainer-clean-generic mostlyclean \746 installdirs-am maintainer-clean maintainer-clean-generic \
670 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \747 mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
671 tags tags-recursive uninstall uninstall-am748 ps ps-am tags tags-recursive uninstall uninstall-am
672749
750
751fix-rights:
752 $(MAKE) -C src $@
673753
674ChangeLog.svn:754ChangeLog.svn:
675 -svn2cl --group-by-day --stdout --include-rev --reparagraph | perl -pe \755 -svn2cl --group-by-day --stdout --include-rev --reparagraph | perl -pe \
@@ -683,6 +763,7 @@
683 s/ aet-guest/ Antti Tapaninen/; \763 s/ aet-guest/ Antti Tapaninen/; \
684 s/ sauveron-guest/ Damien Sauveron/; \764 s/ sauveron-guest/ Damien Sauveron/; \
685 s+trunk/PCSC/++g;' > $@765 s+trunk/PCSC/++g;' > $@
766
686# Tell versions [3.59,3.63) of GNU make to not export all variables.767# Tell versions [3.59,3.63) of GNU make to not export all variables.
687# Otherwise a system limit (for SysV at least) may be exceeded.768# Otherwise a system limit (for SysV at least) may be exceeded.
688.NOEXPORT:769.NOEXPORT:
689770
=== modified file 'TODO'
--- TODO 2009-06-02 16:58:01 +0000
+++ TODO 2011-03-19 10:51:41 +0000
@@ -1,10 +1,5 @@
1- include Apple patches and improvements (if possible/needed)1- include Apple patches and improvements (if possible/needed)
22
3- power on the card _only_ if an application requests a connection
4 see Alioth bug #301965
5 That could be implemented by polling the reader only if an application
6 requests it.
7
8- allow to have pcscd and libpcsclite on two different machines.3- allow to have pcscd and libpcsclite on two different machines.
9 That would be needed to support remote PAM login.4 That would be needed to support remote PAM login.
10 Maybe use unix2tcp (http://dizzy.roedu.net/unix2tcp/)5 Maybe use unix2tcp (http://dizzy.roedu.net/unix2tcp/)
@@ -25,4 +20,9 @@
25 mode.20 mode.
26 http://www.opensc-project.org/pipermail/opensc-devel/2009-February/011801.html21 http://www.opensc-project.org/pipermail/opensc-devel/2009-February/011801.html
2722
28February 200923
24For embedded/constrained systems
25
26- use static driver instead of reader polling and dynamic driver loading
27
28October 2010
2929
=== modified file 'aclocal.m4'
--- aclocal.m4 2010-07-10 11:15:59 +0000
+++ aclocal.m4 2011-03-19 10:51:41 +0000
@@ -1,7 +1,7 @@
1# generated automatically by aclocal 1.10.2 -*- Autoconf -*-1# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
22
3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.4# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
5# This file is free software; the Free Software Foundation5# This file is free software; the Free Software Foundation
6# gives unlimited permission to copy and/or distribute it,6# gives unlimited permission to copy and/or distribute it,
7# with or without modifications, as long as this notice is preserved.7# with or without modifications, as long as this notice is preserved.
@@ -13,13 +13,14 @@
1313
14m4_ifndef([AC_AUTOCONF_VERSION],14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
17[m4_warning([this file was generated for autoconf 2.63.17[m4_warning([this file was generated for autoconf 2.67.
18You have another version of autoconf. It may work, but is not guaranteed to.18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely.19If you have problems, you may need to regenerate the build system entirely.
20To do so, use the procedure documented by the package, typically `autoreconf'.])])20To do so, use the procedure documented by the package, typically `autoreconf'.])])
2121
22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-22# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
23# serial 1 (pkg-config-0.24)
23# 24#
24# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.25# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
25#26#
@@ -47,7 +48,10 @@
47AC_DEFUN([PKG_PROG_PKG_CONFIG],48AC_DEFUN([PKG_PROG_PKG_CONFIG],
48[m4_pattern_forbid([^_?PKG_[A-Z_]+$])49[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
49m4_pattern_allow([^PKG_CONFIG(_PATH)?$])50m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
50AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
52AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
53AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
54
51if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
52 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
53fi57fi
@@ -60,7 +64,6 @@
60 AC_MSG_RESULT([no])64 AC_MSG_RESULT([no])
61 PKG_CONFIG=""65 PKG_CONFIG=""
62 fi66 fi
63
64fi[]dnl67fi[]dnl
65])# PKG_PROG_PKG_CONFIG68])# PKG_PROG_PKG_CONFIG
6669
@@ -69,34 +72,31 @@
69# Check to see whether a particular set of modules exists. Similar72# Check to see whether a particular set of modules exists. Similar
70# to PKG_CHECK_MODULES(), but does not set variables or print errors.73# to PKG_CHECK_MODULES(), but does not set variables or print errors.
71#74#
72#75# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
73# Similar to PKG_CHECK_MODULES, make sure that the first instance of76# only at the first occurence in configure.ac, so if the first place
74# this or PKG_CHECK_MODULES is called, or make sure to call77# it's called might be skipped (such as if it is within an "if", you
75# PKG_CHECK_EXISTS manually78# have to call PKG_CHECK_EXISTS manually
76# --------------------------------------------------------------79# --------------------------------------------------------------
77AC_DEFUN([PKG_CHECK_EXISTS],80AC_DEFUN([PKG_CHECK_EXISTS],
78[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
79if test -n "$PKG_CONFIG" && \82if test -n "$PKG_CONFIG" && \
80 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
81 m4_ifval([$2], [$2], [:])84 m4_default([$2], [:])
82m4_ifvaln([$3], [else85m4_ifvaln([$3], [else
83 $3])dnl86 $3])dnl
84fi])87fi])
8588
86
87# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
88# ---------------------------------------------90# ---------------------------------------------
89m4_define([_PKG_CONFIG],91m4_define([_PKG_CONFIG],
90[if test -n "$PKG_CONFIG"; then92[if test -n "$$1"; then
91 if test -n "$$1"; then93 pkg_cv_[]$1="$$1"
92 pkg_cv_[]$1="$$1"94 elif test -n "$PKG_CONFIG"; then
93 else95 PKG_CHECK_EXISTS([$3],
94 PKG_CHECK_EXISTS([$3],96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],97 [pkg_failed=yes])
96 [pkg_failed=yes])98 else
97 fi99 pkg_failed=untried
98else
99 pkg_failed=untried
100fi[]dnl100fi[]dnl
101])# _PKG_CONFIG101])# _PKG_CONFIG
102102
@@ -138,16 +138,17 @@
138See the pkg-config man page for more details.])138See the pkg-config man page for more details.])
139139
140if test $pkg_failed = yes; then140if test $pkg_failed = yes; then
141 AC_MSG_RESULT([no])
141 _PKG_SHORT_ERRORS_SUPPORTED142 _PKG_SHORT_ERRORS_SUPPORTED
142 if test $_pkg_short_errors_supported = yes; then143 if test $_pkg_short_errors_supported = yes; then
143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`144 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
144 else 145 else
145 $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`146 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
146 fi147 fi
147 # Put the nasty error message in config.log where it belongs148 # Put the nasty error message in config.log where it belongs
148 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD149 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
149150
150 ifelse([$4], , [AC_MSG_ERROR(dnl151 m4_default([$4], [AC_MSG_ERROR(
151[Package requirements ($2) were not met:152[Package requirements ($2) were not met:
152153
153$$1_PKG_ERRORS154$$1_PKG_ERRORS
@@ -155,25 +156,24 @@
155Consider adjusting the PKG_CONFIG_PATH environment variable if you156Consider adjusting the PKG_CONFIG_PATH environment variable if you
156installed software in a non-standard prefix.157installed software in a non-standard prefix.
157158
158_PKG_TEXT159_PKG_TEXT])[]dnl
159])],160 ])
160 [AC_MSG_RESULT([no])
161 $4])
162elif test $pkg_failed = untried; then161elif test $pkg_failed = untried; then
163 ifelse([$4], , [AC_MSG_FAILURE(dnl162 AC_MSG_RESULT([no])
163 m4_default([$4], [AC_MSG_FAILURE(
164[The pkg-config script could not be found or is too old. Make sure it164[The pkg-config script could not be found or is too old. Make sure it
165is in your PATH or set the PKG_CONFIG environment variable to the full165is in your PATH or set the PKG_CONFIG environment variable to the full
166path to pkg-config.166path to pkg-config.
167167
168_PKG_TEXT168_PKG_TEXT
169169
170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
171 [$4])171 ])
172else172else
173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
175 AC_MSG_RESULT([yes])175 AC_MSG_RESULT([yes])
176 ifelse([$3], , :, [$3])176 $3
177fi[]dnl177fi[]dnl
178])# PKG_CHECK_MODULES178])# PKG_CHECK_MODULES
179179
@@ -189,10 +189,10 @@
189# generated from the m4 files accompanying Automake X.Y.189# generated from the m4 files accompanying Automake X.Y.
190# (This private macro should not be called outside this file.)190# (This private macro should not be called outside this file.)
191AC_DEFUN([AM_AUTOMAKE_VERSION],191AC_DEFUN([AM_AUTOMAKE_VERSION],
192[am__api_version='1.10'192[am__api_version='1.11'
193dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to193dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
194dnl require some minimum version. Point them to the right macro.194dnl require some minimum version. Point them to the right macro.
195m4_if([$1], [1.10.2], [],195m4_if([$1], [1.11.1], [],
196 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl196 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
197])197])
198198
@@ -208,7 +208,7 @@
208# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.208# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
209# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.209# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
210AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],210AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
211[AM_AUTOMAKE_VERSION([1.10.2])dnl211[AM_AUTOMAKE_VERSION([1.11.1])dnl
212m4_ifndef([AC_AUTOCONF_VERSION],212m4_ifndef([AC_AUTOCONF_VERSION],
213 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl213 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
214_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])214_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -268,14 +268,14 @@
268268
269# AM_CONDITIONAL -*- Autoconf -*-269# AM_CONDITIONAL -*- Autoconf -*-
270270
271# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006271# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
272# Free Software Foundation, Inc.272# Free Software Foundation, Inc.
273#273#
274# This file is free software; the Free Software Foundation274# This file is free software; the Free Software Foundation
275# gives unlimited permission to copy and/or distribute it,275# gives unlimited permission to copy and/or distribute it,
276# with or without modifications, as long as this notice is preserved.276# with or without modifications, as long as this notice is preserved.
277277
278# serial 8278# serial 9
279279
280# AM_CONDITIONAL(NAME, SHELL-CONDITION)280# AM_CONDITIONAL(NAME, SHELL-CONDITION)
281# -------------------------------------281# -------------------------------------
@@ -288,6 +288,7 @@
288AC_SUBST([$1_FALSE])dnl288AC_SUBST([$1_FALSE])dnl
289_AM_SUBST_NOTMAKE([$1_TRUE])dnl289_AM_SUBST_NOTMAKE([$1_TRUE])dnl
290_AM_SUBST_NOTMAKE([$1_FALSE])dnl290_AM_SUBST_NOTMAKE([$1_FALSE])dnl
291m4_define([_AM_COND_VALUE_$1], [$2])dnl
291if $2; then292if $2; then
292 $1_TRUE=293 $1_TRUE=
293 $1_FALSE='#'294 $1_FALSE='#'
@@ -301,14 +302,14 @@
301Usually this means the macro was only invoked conditionally.]])302Usually this means the macro was only invoked conditionally.]])
302fi])])303fi])])
303304
304# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006305# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
305# Free Software Foundation, Inc.306# Free Software Foundation, Inc.
306#307#
307# This file is free software; the Free Software Foundation308# This file is free software; the Free Software Foundation
308# gives unlimited permission to copy and/or distribute it,309# gives unlimited permission to copy and/or distribute it,
309# with or without modifications, as long as this notice is preserved.310# with or without modifications, as long as this notice is preserved.
310311
311# serial 9312# serial 10
312313
313# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be314# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
314# written in clear, in which case automake, when reading aclocal.m4,315# written in clear, in which case automake, when reading aclocal.m4,
@@ -365,6 +366,16 @@
365 if test "$am_compiler_list" = ""; then366 if test "$am_compiler_list" = ""; then
366 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`367 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
367 fi368 fi
369 am__universal=false
370 m4_case([$1], [CC],
371 [case " $depcc " in #(
372 *\ -arch\ *\ -arch\ *) am__universal=true ;;
373 esac],
374 [CXX],
375 [case " $depcc " in #(
376 *\ -arch\ *\ -arch\ *) am__universal=true ;;
377 esac])
378
368 for depmode in $am_compiler_list; do379 for depmode in $am_compiler_list; do
369 # Setup a source with many dependencies, because some compilers380 # Setup a source with many dependencies, because some compilers
370 # like to wrap large dependency lists on column 80 (with \), and381 # like to wrap large dependency lists on column 80 (with \), and
@@ -382,7 +393,17 @@
382 done393 done
383 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf394 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
384395
396 # We check with `-c' and `-o' for the sake of the "dashmstdout"
397 # mode. It turns out that the SunPro C++ compiler does not properly
398 # handle `-M -o', and we need to detect this. Also, some Intel
399 # versions had trouble with output in subdirs
400 am__obj=sub/conftest.${OBJEXT-o}
401 am__minus_obj="-o $am__obj"
385 case $depmode in402 case $depmode in
403 gcc)
404 # This depmode causes a compiler race in universal mode.
405 test "$am__universal" = false || continue
406 ;;
386 nosideeffect)407 nosideeffect)
387 # after this tag, mechanisms are not by side-effect, so they'll408 # after this tag, mechanisms are not by side-effect, so they'll
388 # only be used when explicitly requested409 # only be used when explicitly requested
@@ -392,19 +413,23 @@
392 break413 break
393 fi414 fi
394 ;;415 ;;
416 msvisualcpp | msvcmsys)
417 # This compiler won't grok `-c -o', but also, the minuso test has
418 # not run yet. These depmodes are late enough in the game, and
419 # so weak that their functioning should not be impacted.
420 am__obj=conftest.${OBJEXT-o}
421 am__minus_obj=
422 ;;
395 none) break ;;423 none) break ;;
396 esac424 esac
397 # We check with `-c' and `-o' for the sake of the "dashmstdout"
398 # mode. It turns out that the SunPro C++ compiler does not properly
399 # handle `-M -o', and we need to detect this.
400 if depmode=$depmode \425 if depmode=$depmode \
401 source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \426 source=sub/conftest.c object=$am__obj \
402 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \427 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
403 $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \428 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
404 >/dev/null 2>conftest.err &&429 >/dev/null 2>conftest.err &&
405 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&430 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
406 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&431 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
407 grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&432 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
408 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then433 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
409 # icc doesn't choke on unknown options, it will just issue warnings434 # icc doesn't choke on unknown options, it will just issue warnings
410 # or remarks (even with -Werror). So we grep stderr for any message435 # or remarks (even with -Werror). So we grep stderr for any message
@@ -468,59 +493,61 @@
468# gives unlimited permission to copy and/or distribute it,493# gives unlimited permission to copy and/or distribute it,
469# with or without modifications, as long as this notice is preserved.494# with or without modifications, as long as this notice is preserved.
470495
471#serial 4496#serial 5
472497
473# _AM_OUTPUT_DEPENDENCY_COMMANDS498# _AM_OUTPUT_DEPENDENCY_COMMANDS
474# ------------------------------499# ------------------------------
475AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],500AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
476[# Autoconf 2.62 quotes --file arguments for eval, but not when files501[{
477# are listed without --file. Let's play safe and only enable the eval502 # Autoconf 2.62 quotes --file arguments for eval, but not when files
478# if we detect the quoting.503 # are listed without --file. Let's play safe and only enable the eval
479case $CONFIG_FILES in504 # if we detect the quoting.
480*\'*) eval set x "$CONFIG_FILES" ;;505 case $CONFIG_FILES in
481*) set x $CONFIG_FILES ;;506 *\'*) eval set x "$CONFIG_FILES" ;;
482esac507 *) set x $CONFIG_FILES ;;
483shift508 esac
484for mf509 shift
485do510 for mf
486 # Strip MF so we end up with the name of the file.511 do
487 mf=`echo "$mf" | sed -e 's/:.*$//'`512 # Strip MF so we end up with the name of the file.
488 # Check whether this is an Automake generated Makefile or not.513 mf=`echo "$mf" | sed -e 's/:.*$//'`
489 # We used to match only the files named `Makefile.in', but514 # Check whether this is an Automake generated Makefile or not.
490 # some people rename them; so instead we look at the file content.515 # We used to match only the files named `Makefile.in', but
491 # Grep'ing the first line is not enough: some people post-process516 # some people rename them; so instead we look at the file content.
492 # each Makefile.in and add a new line on top of each file to say so.517 # Grep'ing the first line is not enough: some people post-process
493 # Grep'ing the whole file is not good either: AIX grep has a line518 # each Makefile.in and add a new line on top of each file to say so.
494 # limit of 2048, but all sed's we know have understand at least 4000.519 # Grep'ing the whole file is not good either: AIX grep has a line
495 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then520 # limit of 2048, but all sed's we know have understand at least 4000.
496 dirpart=`AS_DIRNAME("$mf")`521 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
497 else522 dirpart=`AS_DIRNAME("$mf")`
498 continue523 else
499 fi524 continue
500 # Extract the definition of DEPDIR, am__include, and am__quote525 fi
501 # from the Makefile without running `make'.526 # Extract the definition of DEPDIR, am__include, and am__quote
502 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`527 # from the Makefile without running `make'.
503 test -z "$DEPDIR" && continue528 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
504 am__include=`sed -n 's/^am__include = //p' < "$mf"`529 test -z "$DEPDIR" && continue
505 test -z "am__include" && continue530 am__include=`sed -n 's/^am__include = //p' < "$mf"`
506 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`531 test -z "am__include" && continue
507 # When using ansi2knr, U may be empty or an underscore; expand it532 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
508 U=`sed -n 's/^U = //p' < "$mf"`533 # When using ansi2knr, U may be empty or an underscore; expand it
509 # Find all dependency output files, they are included files with534 U=`sed -n 's/^U = //p' < "$mf"`
510 # $(DEPDIR) in their names. We invoke sed twice because it is the535 # Find all dependency output files, they are included files with
511 # simplest approach to changing $(DEPDIR) to its actual value in the536 # $(DEPDIR) in their names. We invoke sed twice because it is the
512 # expansion.537 # simplest approach to changing $(DEPDIR) to its actual value in the
513 for file in `sed -n "538 # expansion.
514 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \539 for file in `sed -n "
515 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do540 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
516 # Make sure the directory exists.541 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
517 test -f "$dirpart/$file" && continue542 # Make sure the directory exists.
518 fdir=`AS_DIRNAME(["$file"])`543 test -f "$dirpart/$file" && continue
519 AS_MKDIR_P([$dirpart/$fdir])544 fdir=`AS_DIRNAME(["$file"])`
520 # echo "creating $dirpart/$file"545 AS_MKDIR_P([$dirpart/$fdir])
521 echo '# dummy' > "$dirpart/$file"546 # echo "creating $dirpart/$file"
547 echo '# dummy' > "$dirpart/$file"
548 done
522 done549 done
523done550}
524])# _AM_OUTPUT_DEPENDENCY_COMMANDS551])# _AM_OUTPUT_DEPENDENCY_COMMANDS
525552
526553
@@ -552,13 +579,13 @@
552# Do all the work for Automake. -*- Autoconf -*-579# Do all the work for Automake. -*- Autoconf -*-
553580
554# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,581# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
555# 2005, 2006, 2008 Free Software Foundation, Inc.582# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
556#583#
557# This file is free software; the Free Software Foundation584# This file is free software; the Free Software Foundation
558# gives unlimited permission to copy and/or distribute it,585# gives unlimited permission to copy and/or distribute it,
559# with or without modifications, as long as this notice is preserved.586# with or without modifications, as long as this notice is preserved.
560587
561# serial 13588# serial 16
562589
563# This macro actually does too much. Some checks are only needed if590# This macro actually does too much. Some checks are only needed if
564# your package does certain things. But this isn't really a big deal.591# your package does certain things. But this isn't really a big deal.
@@ -575,7 +602,7 @@
575# arguments mandatory, and then we can depend on a new Autoconf602# arguments mandatory, and then we can depend on a new Autoconf
576# release and drop the old call support.603# release and drop the old call support.
577AC_DEFUN([AM_INIT_AUTOMAKE],604AC_DEFUN([AM_INIT_AUTOMAKE],
578[AC_PREREQ([2.60])dnl605[AC_PREREQ([2.62])dnl
579dnl Autoconf wants to disallow AM_ names. We explicitly allow606dnl Autoconf wants to disallow AM_ names. We explicitly allow
580dnl the ones we care about.607dnl the ones we care about.
581m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl608m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -626,8 +653,8 @@
626AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})653AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
627AM_MISSING_PROG(AUTOHEADER, autoheader)654AM_MISSING_PROG(AUTOHEADER, autoheader)
628AM_MISSING_PROG(MAKEINFO, makeinfo)655AM_MISSING_PROG(MAKEINFO, makeinfo)
629AM_PROG_INSTALL_SH656AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
630AM_PROG_INSTALL_STRIP657AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
631AC_REQUIRE([AM_PROG_MKDIR_P])dnl658AC_REQUIRE([AM_PROG_MKDIR_P])dnl
632# We need awk for the "check" target. The system "awk" is bad on659# We need awk for the "check" target. The system "awk" is bad on
633# some platforms.660# some platforms.
@@ -635,23 +662,36 @@
635AC_REQUIRE([AC_PROG_MAKE_SET])dnl662AC_REQUIRE([AC_PROG_MAKE_SET])dnl
636AC_REQUIRE([AM_SET_LEADING_DOT])dnl663AC_REQUIRE([AM_SET_LEADING_DOT])dnl
637_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],664_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
638 [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],665 [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
639 [_AM_PROG_TAR([v7])])])666 [_AM_PROG_TAR([v7])])])
640_AM_IF_OPTION([no-dependencies],,667_AM_IF_OPTION([no-dependencies],,
641[AC_PROVIDE_IFELSE([AC_PROG_CC],668[AC_PROVIDE_IFELSE([AC_PROG_CC],
642 [_AM_DEPENDENCIES(CC)],669 [_AM_DEPENDENCIES(CC)],
643 [define([AC_PROG_CC],670 [define([AC_PROG_CC],
644 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl671 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
645AC_PROVIDE_IFELSE([AC_PROG_CXX],672AC_PROVIDE_IFELSE([AC_PROG_CXX],
646 [_AM_DEPENDENCIES(CXX)],673 [_AM_DEPENDENCIES(CXX)],
647 [define([AC_PROG_CXX],674 [define([AC_PROG_CXX],
648 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl675 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
649AC_PROVIDE_IFELSE([AC_PROG_OBJC],676AC_PROVIDE_IFELSE([AC_PROG_OBJC],
650 [_AM_DEPENDENCIES(OBJC)],677 [_AM_DEPENDENCIES(OBJC)],
651 [define([AC_PROG_OBJC],678 [define([AC_PROG_OBJC],
652 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl679 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
653])680])
654])681_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
682dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
683dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
684dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
685AC_CONFIG_COMMANDS_PRE(dnl
686[m4_provide_if([_AM_COMPILER_EXEEXT],
687 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
688])
689
690dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
691dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
692dnl mangled by Autoconf and run in a shell conditional statement.
693m4_define([_AC_COMPILER_EXEEXT],
694m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
655695
656696
657# When config.status generates a header, we must update the stamp-h file.697# When config.status generates a header, we must update the stamp-h file.
@@ -675,7 +715,7 @@
675done715done
676echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])716echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
677717
678# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.718# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
679#719#
680# This file is free software; the Free Software Foundation720# This file is free software; the Free Software Foundation
681# gives unlimited permission to copy and/or distribute it,721# gives unlimited permission to copy and/or distribute it,
@@ -686,7 +726,14 @@
686# Define $install_sh.726# Define $install_sh.
687AC_DEFUN([AM_PROG_INSTALL_SH],727AC_DEFUN([AM_PROG_INSTALL_SH],
688[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl728[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
689install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}729if test x"${install_sh}" != xset; then
730 case $am_aux_dir in
731 *\ * | *\ *)
732 install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
733 *)
734 install_sh="\${SHELL} $am_aux_dir/install-sh"
735 esac
736fi
690AC_SUBST(install_sh)])737AC_SUBST(install_sh)])
691738
692# Copyright (C) 2003, 2005 Free Software Foundation, Inc.739# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
@@ -734,27 +781,38 @@
734# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-781# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
735# From Jim Meyering782# From Jim Meyering
736783
737# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005784# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
738# Free Software Foundation, Inc.785# Free Software Foundation, Inc.
739#786#
740# This file is free software; the Free Software Foundation787# This file is free software; the Free Software Foundation
741# gives unlimited permission to copy and/or distribute it,788# gives unlimited permission to copy and/or distribute it,
742# with or without modifications, as long as this notice is preserved.789# with or without modifications, as long as this notice is preserved.
743790
744# serial 4791# serial 5
745792
793# AM_MAINTAINER_MODE([DEFAULT-MODE])
794# ----------------------------------
795# Control maintainer-specific portions of Makefiles.
796# Default is to disable them, unless `enable' is passed literally.
797# For symmetry, `disable' may be passed as well. Anyway, the user
798# can override the default with the --enable/--disable switch.
746AC_DEFUN([AM_MAINTAINER_MODE],799AC_DEFUN([AM_MAINTAINER_MODE],
747[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])800[m4_case(m4_default([$1], [disable]),
748 dnl maintainer-mode is disabled by default801 [enable], [m4_define([am_maintainer_other], [disable])],
749 AC_ARG_ENABLE(maintainer-mode,802 [disable], [m4_define([am_maintainer_other], [enable])],
750[ --enable-maintainer-mode enable make rules and dependencies not useful803 [m4_define([am_maintainer_other], [enable])
804 m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
805AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
806 dnl maintainer-mode's default is 'disable' unless 'enable' is passed
807 AC_ARG_ENABLE([maintainer-mode],
808[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
751 (and sometimes confusing) to the casual installer],809 (and sometimes confusing) to the casual installer],
752 USE_MAINTAINER_MODE=$enableval,810 [USE_MAINTAINER_MODE=$enableval],
753 USE_MAINTAINER_MODE=no)811 [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
754 AC_MSG_RESULT([$USE_MAINTAINER_MODE])812 AC_MSG_RESULT([$USE_MAINTAINER_MODE])
755 AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])813 AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
756 MAINT=$MAINTAINER_MODE_TRUE814 MAINT=$MAINTAINER_MODE_TRUE
757 AC_SUBST(MAINT)dnl815 AC_SUBST([MAINT])dnl
758]816]
759)817)
760818
@@ -762,13 +820,13 @@
762820
763# Check to see how 'make' treats includes. -*- Autoconf -*-821# Check to see how 'make' treats includes. -*- Autoconf -*-
764822
765# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.823# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
766#824#
767# This file is free software; the Free Software Foundation825# This file is free software; the Free Software Foundation
768# gives unlimited permission to copy and/or distribute it,826# gives unlimited permission to copy and/or distribute it,
769# with or without modifications, as long as this notice is preserved.827# with or without modifications, as long as this notice is preserved.
770828
771# serial 3829# serial 4
772830
773# AM_MAKE_INCLUDE()831# AM_MAKE_INCLUDE()
774# -----------------832# -----------------
@@ -777,7 +835,7 @@
777[am_make=${MAKE-make}835[am_make=${MAKE-make}
778cat > confinc << 'END'836cat > confinc << 'END'
779am__doit:837am__doit:
780 @echo done838 @echo this is the am__doit target
781.PHONY: am__doit839.PHONY: am__doit
782END840END
783# If we don't find an include directive, just comment out the code.841# If we don't find an include directive, just comment out the code.
@@ -787,24 +845,24 @@
787_am_result=none845_am_result=none
788# First try GNU make style include.846# First try GNU make style include.
789echo "include confinc" > confmf847echo "include confinc" > confmf
790# We grep out `Entering directory' and `Leaving directory'848# Ignore all kinds of additional output from `make'.
791# messages which can occur if `w' ends up in MAKEFLAGS.849case `$am_make -s -f confmf 2> /dev/null` in #(
792# In particular we don't look at `^make:' because GNU make might850*the\ am__doit\ target*)
793# be invoked under some other name (usually "gmake"), in which851 am__include=include
794# case it prints its new name instead of `make'.852 am__quote=
795if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then853 _am_result=GNU
796 am__include=include854 ;;
797 am__quote=855esac
798 _am_result=GNU
799fi
800# Now try BSD make style include.856# Now try BSD make style include.
801if test "$am__include" = "#"; then857if test "$am__include" = "#"; then
802 echo '.include "confinc"' > confmf858 echo '.include "confinc"' > confmf
803 if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then859 case `$am_make -s -f confmf 2> /dev/null` in #(
804 am__include=.include860 *the\ am__doit\ target*)
805 am__quote="\""861 am__include=.include
806 _am_result=BSD862 am__quote="\""
807 fi863 _am_result=BSD
864 ;;
865 esac
808fi866fi
809AC_SUBST([am__include])867AC_SUBST([am__include])
810AC_SUBST([am__quote])868AC_SUBST([am__quote])
@@ -849,14 +907,14 @@
849907
850# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-908# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
851909
852# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005910# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
853# Free Software Foundation, Inc.911# Free Software Foundation, Inc.
854#912#
855# This file is free software; the Free Software Foundation913# This file is free software; the Free Software Foundation
856# gives unlimited permission to copy and/or distribute it,914# gives unlimited permission to copy and/or distribute it,
857# with or without modifications, as long as this notice is preserved.915# with or without modifications, as long as this notice is preserved.
858916
859# serial 5917# serial 6
860918
861# AM_MISSING_PROG(NAME, PROGRAM)919# AM_MISSING_PROG(NAME, PROGRAM)
862# ------------------------------920# ------------------------------
@@ -873,7 +931,14 @@
873AC_DEFUN([AM_MISSING_HAS_RUN],931AC_DEFUN([AM_MISSING_HAS_RUN],
874[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl932[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
875AC_REQUIRE_AUX_FILE([missing])dnl933AC_REQUIRE_AUX_FILE([missing])dnl
876test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"934if test x"${MISSING+set}" != xset; then
935 case $am_aux_dir in
936 *\ * | *\ *)
937 MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
938 *)
939 MISSING="\${SHELL} $am_aux_dir/missing" ;;
940 esac
941fi
877# Use eval to expand $SHELL942# Use eval to expand $SHELL
878if eval "$MISSING --run true"; then943if eval "$MISSING --run true"; then
879 am_missing_run="$MISSING --run "944 am_missing_run="$MISSING --run "
@@ -944,14 +1009,14 @@
9441009
945# Check to make sure that the build environment is sane. -*- Autoconf -*-1010# Check to make sure that the build environment is sane. -*- Autoconf -*-
9461011
947# Copyright (C) 1996, 1997, 2000, 2001, 2003, 20051012# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
948# Free Software Foundation, Inc.1013# Free Software Foundation, Inc.
949#1014#
950# This file is free software; the Free Software Foundation1015# This file is free software; the Free Software Foundation
951# gives unlimited permission to copy and/or distribute it,1016# gives unlimited permission to copy and/or distribute it,
952# with or without modifications, as long as this notice is preserved.1017# with or without modifications, as long as this notice is preserved.
9531018
954# serial 41019# serial 5
9551020
956# AM_SANITY_CHECK1021# AM_SANITY_CHECK
957# ---------------1022# ---------------
@@ -960,16 +1025,29 @@
960# Just in case1025# Just in case
961sleep 11026sleep 1
962echo timestamp > conftest.file1027echo timestamp > conftest.file
1028# Reject unsafe characters in $srcdir or the absolute working directory
1029# name. Accept space and tab only in the latter.
1030am_lf='
1031'
1032case `pwd` in
1033 *[[\\\"\#\$\&\'\`$am_lf]]*)
1034 AC_MSG_ERROR([unsafe absolute working directory name]);;
1035esac
1036case $srcdir in
1037 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
1038 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
1039esac
1040
963# Do `set' in a subshell so we don't clobber the current shell's1041# Do `set' in a subshell so we don't clobber the current shell's
964# arguments. Must try -L first in case configure is actually a1042# arguments. Must try -L first in case configure is actually a
965# symlink; some systems play weird games with the mod time of symlinks1043# symlink; some systems play weird games with the mod time of symlinks
966# (eg FreeBSD returns the mod time of the symlink's containing1044# (eg FreeBSD returns the mod time of the symlink's containing
967# directory).1045# directory).
968if (1046if (
969 set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`1047 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
970 if test "$[*]" = "X"; then1048 if test "$[*]" = "X"; then
971 # -L didn't work.1049 # -L didn't work.
972 set X `ls -t $srcdir/configure conftest.file`1050 set X `ls -t "$srcdir/configure" conftest.file`
973 fi1051 fi
974 rm -f conftest.file1052 rm -f conftest.file
975 if test "$[*]" != "X $srcdir/configure conftest.file" \1053 if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -1022,18 +1100,25 @@
1022INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"1100INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1023AC_SUBST([INSTALL_STRIP_PROGRAM])])1101AC_SUBST([INSTALL_STRIP_PROGRAM])])
10241102
1025# Copyright (C) 2006 Free Software Foundation, Inc.1103# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
1026#1104#
1027# This file is free software; the Free Software Foundation1105# This file is free software; the Free Software Foundation
1028# gives unlimited permission to copy and/or distribute it,1106# gives unlimited permission to copy and/or distribute it,
1029# with or without modifications, as long as this notice is preserved.1107# with or without modifications, as long as this notice is preserved.
10301108
1109# serial 2
1110
1031# _AM_SUBST_NOTMAKE(VARIABLE)1111# _AM_SUBST_NOTMAKE(VARIABLE)
1032# ---------------------------1112# ---------------------------
1033# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.1113# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
1034# This macro is traced by Automake.1114# This macro is traced by Automake.
1035AC_DEFUN([_AM_SUBST_NOTMAKE])1115AC_DEFUN([_AM_SUBST_NOTMAKE])
10361116
1117# AM_SUBST_NOTMAKE(VARIABLE)
1118# ---------------------------
1119# Public sister of _AM_SUBST_NOTMAKE.
1120AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
1121
1037# Check how to create a tarball. -*- Autoconf -*-1122# Check how to create a tarball. -*- Autoconf -*-
10381123
1039# Copyright (C) 2004, 2005 Free Software Foundation, Inc.1124# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
10401125
=== modified file 'bootstrap'
--- bootstrap 2008-07-12 13:34:52 +0000
+++ bootstrap 2011-03-19 10:51:41 +0000
@@ -1,9 +1,9 @@
1#!/bin/sh1#!/bin/sh
22
3# I use3# I use
4# - autoconf (GNU Autoconf) 2.594# - autoconf (GNU Autoconf) 2.64
5# - automake (GNU automake) 1.7.95# - automake (GNU automake) 1.11
6# - libtool (GNU libtool) 1.5.6 (1.1220.2.95 2004/04/11 05:50:42)6# - libtool (GNU libtool) 2.2.6
77
8set -e8set -e
9set -x9set -x
1010
=== modified file 'config.guess'
--- config.guess 2010-07-10 11:15:59 +0000
+++ config.guess 2011-03-19 10:51:41 +0000
@@ -1,10 +1,10 @@
1#! /bin/sh1#! /bin/sh
2# Attempt to guess a canonical system name.2# Attempt to guess a canonical system name.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 20084# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.5# Free Software Foundation, Inc.
66
7timestamp='2009-04-27'7timestamp='2009-12-30'
88
9# This file is free software; you can redistribute it and/or modify it9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by10# under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@
27# the same distribution terms that you use for the rest of that program.27# the same distribution terms that you use for the rest of that program.
2828
2929
30# Originally written by Per Bothner <per@bothner.com>.30# Originally written by Per Bothner. Please send patches (context
31# Please send patches to <config-patches@gnu.org>. Submit a context31# diff format) to <config-patches@gnu.org> and include a ChangeLog
32# diff and a properly formatted ChangeLog entry.32# entry.
33#33#
34# This script attempts to guess a canonical system name similar to34# This script attempts to guess a canonical system name similar to
35# config.sub. If it succeeds, it prints the system name on stdout, and35# config.sub. If it succeeds, it prints the system name on stdout, and
36# exits with 0. Otherwise, it exits with 1.36# exits with 0. Otherwise, it exits with 1.
37#37#
38# The plan is that this can be called by configure scripts if you38# You can get the latest version of this script from:
39# don't specify an explicit build system type.39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
4040
41me=`echo "$0" | sed -e 's,.*/,,'`41me=`echo "$0" | sed -e 's,.*/,,'`
4242
@@ -56,8 +56,9 @@
56GNU config.guess ($timestamp)56GNU config.guess ($timestamp)
5757
58Originally written by Per Bothner.58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
602002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61Software Foundation, Inc.
6162
62This is free software; see the source for copying conditions. There is NO63This is free software; see the source for copying conditions. There is NO
63warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -170,7 +171,7 @@
170 arm*|i386|m68k|ns32k|sh3*|sparc|vax)171 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
171 eval $set_cc_for_build172 eval $set_cc_for_build
172 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \173 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
173 | grep __ELF__ >/dev/null174 | grep -q __ELF__
174 then175 then
175 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).176 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
176 # Return netbsd for either. FIX?177 # Return netbsd for either. FIX?
@@ -333,6 +334,9 @@
333 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
334 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335 exit ;;336 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
336 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
337 eval $set_cc_for_build341 eval $set_cc_for_build
338 SUN_ARCH="i386"342 SUN_ARCH="i386"
@@ -656,7 +660,7 @@
656 # => hppa64-hp-hpux11.23660 # => hppa64-hp-hpux11.23
657661
658 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |662 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
659 grep __LP64__ >/dev/null663 grep -q __LP64__
660 then664 then
661 HP_ARCH="hppa2.0w"665 HP_ARCH="hppa2.0w"
662 else666 else
@@ -807,12 +811,12 @@
807 i*:PW*:*)811 i*:PW*:*)
808 echo ${UNAME_MACHINE}-pc-pw32812 echo ${UNAME_MACHINE}-pc-pw32
809 exit ;;813 exit ;;
810 *:Interix*:[3456]*)814 *:Interix*:*)
811 case ${UNAME_MACHINE} in815 case ${UNAME_MACHINE} in
812 x86)816 x86)
813 echo i586-pc-interix${UNAME_RELEASE}817 echo i586-pc-interix${UNAME_RELEASE}
814 exit ;;818 exit ;;
815 EM64T | authenticamd | genuineintel)819 authenticamd | genuineintel | EM64T)
816 echo x86_64-unknown-interix${UNAME_RELEASE}820 echo x86_64-unknown-interix${UNAME_RELEASE}
817 exit ;;821 exit ;;
818 IA64)822 IA64)
@@ -822,6 +826,9 @@
822 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)826 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
823 echo i${UNAME_MACHINE}-pc-mks827 echo i${UNAME_MACHINE}-pc-mks
824 exit ;;828 exit ;;
829 8664:Windows_NT:*)
830 echo x86_64-pc-mks
831 exit ;;
825 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)832 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
826 # How do we know it's Interix rather than the generic POSIX subsystem?833 # How do we know it's Interix rather than the generic POSIX subsystem?
827 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we834 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -851,6 +858,20 @@
851 i*86:Minix:*:*)858 i*86:Minix:*:*)
852 echo ${UNAME_MACHINE}-pc-minix859 echo ${UNAME_MACHINE}-pc-minix
853 exit ;;860 exit ;;
861 alpha:Linux:*:*)
862 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
863 EV5) UNAME_MACHINE=alphaev5 ;;
864 EV56) UNAME_MACHINE=alphaev56 ;;
865 PCA56) UNAME_MACHINE=alphapca56 ;;
866 PCA57) UNAME_MACHINE=alphapca56 ;;
867 EV6) UNAME_MACHINE=alphaev6 ;;
868 EV67) UNAME_MACHINE=alphaev67 ;;
869 EV68*) UNAME_MACHINE=alphaev68 ;;
870 esac
871 objdump --private-headers /bin/sh | grep -q ld.so.1
872 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
873 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
874 exit ;;
854 arm*:Linux:*:*)875 arm*:Linux:*:*)
855 eval $set_cc_for_build876 eval $set_cc_for_build
856 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \877 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -873,6 +894,17 @@
873 frv:Linux:*:*)894 frv:Linux:*:*)
874 echo frv-unknown-linux-gnu895 echo frv-unknown-linux-gnu
875 exit ;;896 exit ;;
897 i*86:Linux:*:*)
898 LIBC=gnu
899 eval $set_cc_for_build
900 sed 's/^ //' << EOF >$dummy.c
901 #ifdef __dietlibc__
902 LIBC=dietlibc
903 #endif
904EOF
905 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
906 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
907 exit ;;
876 ia64:Linux:*:*)908 ia64:Linux:*:*)
877 echo ${UNAME_MACHINE}-unknown-linux-gnu909 echo ${UNAME_MACHINE}-unknown-linux-gnu
878 exit ;;910 exit ;;
@@ -882,78 +914,34 @@
882 m68*:Linux:*:*)914 m68*:Linux:*:*)
883 echo ${UNAME_MACHINE}-unknown-linux-gnu915 echo ${UNAME_MACHINE}-unknown-linux-gnu
884 exit ;;916 exit ;;
885 mips:Linux:*:*)917 mips:Linux:*:* | mips64:Linux:*:*)
886 eval $set_cc_for_build918 eval $set_cc_for_build
887 sed 's/^ //' << EOF >$dummy.c919 sed 's/^ //' << EOF >$dummy.c
888 #undef CPU920 #undef CPU
889 #undef mips921 #undef ${UNAME_MACHINE}
890 #undef mipsel922 #undef ${UNAME_MACHINE}el
891 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)923 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
892 CPU=mipsel924 CPU=${UNAME_MACHINE}el
893 #else925 #else
894 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)926 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
895 CPU=mips927 CPU=${UNAME_MACHINE}
896 #else928 #else
897 CPU=929 CPU=
898 #endif930 #endif
899 #endif931 #endif
900EOF932EOF
901 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '933 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
902 /^CPU/{
903 s: ::g
904 p
905 }'`"
906 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
907 ;;
908 mips64:Linux:*:*)
909 eval $set_cc_for_build
910 sed 's/^ //' << EOF >$dummy.c
911 #undef CPU
912 #undef mips64
913 #undef mips64el
914 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
915 CPU=mips64el
916 #else
917 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
918 CPU=mips64
919 #else
920 CPU=
921 #endif
922 #endif
923EOF
924 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
925 /^CPU/{
926 s: ::g
927 p
928 }'`"
929 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }934 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
930 ;;935 ;;
931 or32:Linux:*:*)936 or32:Linux:*:*)
932 echo or32-unknown-linux-gnu937 echo or32-unknown-linux-gnu
933 exit ;;938 exit ;;
934 ppc:Linux:*:*)
935 echo powerpc-unknown-linux-gnu
936 exit ;;
937 ppc64:Linux:*:*)
938 echo powerpc64-unknown-linux-gnu
939 exit ;;
940 alpha:Linux:*:*)
941 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
942 EV5) UNAME_MACHINE=alphaev5 ;;
943 EV56) UNAME_MACHINE=alphaev56 ;;
944 PCA56) UNAME_MACHINE=alphapca56 ;;
945 PCA57) UNAME_MACHINE=alphapca56 ;;
946 EV6) UNAME_MACHINE=alphaev6 ;;
947 EV67) UNAME_MACHINE=alphaev67 ;;
948 EV68*) UNAME_MACHINE=alphaev68 ;;
949 esac
950 objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
951 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
952 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
953 exit ;;
954 padre:Linux:*:*)939 padre:Linux:*:*)
955 echo sparc-unknown-linux-gnu940 echo sparc-unknown-linux-gnu
956 exit ;;941 exit ;;
942 parisc64:Linux:*:* | hppa64:Linux:*:*)
943 echo hppa64-unknown-linux-gnu
944 exit ;;
957 parisc:Linux:*:* | hppa:Linux:*:*)945 parisc:Linux:*:* | hppa:Linux:*:*)
958 # Look for CPU level946 # Look for CPU level
959 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in947 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -962,8 +950,11 @@
962 *) echo hppa-unknown-linux-gnu ;;950 *) echo hppa-unknown-linux-gnu ;;
963 esac951 esac
964 exit ;;952 exit ;;
965 parisc64:Linux:*:* | hppa64:Linux:*:*)953 ppc64:Linux:*:*)
966 echo hppa64-unknown-linux-gnu954 echo powerpc64-unknown-linux-gnu
955 exit ;;
956 ppc:Linux:*:*)
957 echo powerpc-unknown-linux-gnu
967 exit ;;958 exit ;;
968 s390:Linux:*:* | s390x:Linux:*:*)959 s390:Linux:*:* | s390x:Linux:*:*)
969 echo ${UNAME_MACHINE}-ibm-linux960 echo ${UNAME_MACHINE}-ibm-linux
@@ -986,66 +977,6 @@
986 xtensa*:Linux:*:*)977 xtensa*:Linux:*:*)
987 echo ${UNAME_MACHINE}-unknown-linux-gnu978 echo ${UNAME_MACHINE}-unknown-linux-gnu
988 exit ;;979 exit ;;
989 i*86:Linux:*:*)
990 # The BFD linker knows what the default object file format is, so
991 # first see if it will tell us. cd to the root directory to prevent
992 # problems with other programs or directories called `ld' in the path.
993 # Set LC_ALL=C to ensure ld outputs messages in English.
994 ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
995 | sed -ne '/supported targets:/!d
996 s/[ ][ ]*/ /g
997 s/.*supported targets: *//
998 s/ .*//
999 p'`
1000 case "$ld_supported_targets" in
1001 elf32-i386)
1002 TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
1003 ;;
1004 a.out-i386-linux)
1005 echo "${UNAME_MACHINE}-pc-linux-gnuaout"
1006 exit ;;
1007 "")
1008 # Either a pre-BFD a.out linker (linux-gnuoldld) or
1009 # one that does not give us useful --help.
1010 echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
1011 exit ;;
1012 esac
1013 # Determine whether the default compiler is a.out or elf
1014 eval $set_cc_for_build
1015 sed 's/^ //' << EOF >$dummy.c
1016 #include <features.h>
1017 #ifdef __ELF__
1018 # ifdef __GLIBC__
1019 # if __GLIBC__ >= 2
1020 LIBC=gnu
1021 # else
1022 LIBC=gnulibc1
1023 # endif
1024 # else
1025 LIBC=gnulibc1
1026 # endif
1027 #else
1028 #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1029 LIBC=gnu
1030 #else
1031 LIBC=gnuaout
1032 #endif
1033 #endif
1034 #ifdef __dietlibc__
1035 LIBC=dietlibc
1036 #endif
1037EOF
1038 eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1039 /^LIBC/{
1040 s: ::g
1041 p
1042 }'`"
1043 test x"${LIBC}" != x && {
1044 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1045 exit
1046 }
1047 test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1048 ;;
1049 i*86:DYNIX/ptx:4*:*)980 i*86:DYNIX/ptx:4*:*)
1050 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.981 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1051 # earlier versions are messed up and put the nodename in both982 # earlier versions are messed up and put the nodename in both
@@ -1074,7 +1005,7 @@
1074 i*86:syllable:*:*)1005 i*86:syllable:*:*)
1075 echo ${UNAME_MACHINE}-pc-syllable1006 echo ${UNAME_MACHINE}-pc-syllable
1076 exit ;;1007 exit ;;
1077 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)1008 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1078 echo i386-unknown-lynxos${UNAME_RELEASE}1009 echo i386-unknown-lynxos${UNAME_RELEASE}
1079 exit ;;1010 exit ;;
1080 i*86:*DOS:*:*)1011 i*86:*DOS:*:*)
@@ -1182,7 +1113,7 @@
1182 rs6000:LynxOS:2.*:*)1113 rs6000:LynxOS:2.*:*)
1183 echo rs6000-unknown-lynxos${UNAME_RELEASE}1114 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1184 exit ;;1115 exit ;;
1185 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)1116 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1186 echo powerpc-unknown-lynxos${UNAME_RELEASE}1117 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1187 exit ;;1118 exit ;;
1188 SM[BE]S:UNIX_SV:*:*)1119 SM[BE]S:UNIX_SV:*:*)
@@ -1275,6 +1206,16 @@
1275 *:Darwin:*:*)1206 *:Darwin:*:*)
1276 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown1207 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1277 case $UNAME_PROCESSOR in1208 case $UNAME_PROCESSOR in
1209 i386)
1210 eval $set_cc_for_build
1211 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1212 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1213 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1214 grep IS_64BIT_ARCH >/dev/null
1215 then
1216 UNAME_PROCESSOR="x86_64"
1217 fi
1218 fi ;;
1278 unknown) UNAME_PROCESSOR=powerpc ;;1219 unknown) UNAME_PROCESSOR=powerpc ;;
1279 esac1220 esac
1280 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}1221 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
12811222
=== modified file 'config.h.in'
--- config.h.in 2010-07-10 11:15:59 +0000
+++ config.h.in 2011-03-19 10:51:41 +0000
@@ -33,15 +33,18 @@
33/* Define to 1 if you have the <inttypes.h> header file. */33/* Define to 1 if you have the <inttypes.h> header file. */
34#undef HAVE_INTTYPES_H34#undef HAVE_INTTYPES_H
3535
36/* Libhal is available */36/* Libudev is available */
37#undef HAVE_LIBHAL37#undef HAVE_LIBUDEV
3838
39/* Define to 1 if you have the <libhal.h> header file. */39/* Define to 1 if you have the <libudev.h> header file. */
40#undef HAVE_LIBHAL_H40#undef HAVE_LIBUDEV_H
4141
42/* Libusb is available */42/* Libusb is available */
43#undef HAVE_LIBUSB43#undef HAVE_LIBUSB
4444
45/* Define to 1 if you have the <libusb.h> header file. */
46#undef HAVE_LIBUSB_H
47
45/* Define to 1 if you have the <memory.h> header file. */48/* Define to 1 if you have the <memory.h> header file. */
46#undef HAVE_MEMORY_H49#undef HAVE_MEMORY_H
4750
@@ -51,6 +54,9 @@
51/* Define if you have POSIX threads libraries and header files. */54/* Define if you have POSIX threads libraries and header files. */
52#undef HAVE_PTHREAD55#undef HAVE_PTHREAD
5356
57/* Define to 1 if you have the `pthread_cancel' function. */
58#undef HAVE_PTHREAD_CANCEL
59
54/* Define to 1 if `stat' has the bug that it succeeds when given the60/* Define to 1 if `stat' has the bug that it succeeds when given the
55 zero-length file name argument. */61 zero-length file name argument. */
56#undef HAVE_STAT_EMPTY_STRING_BUG62#undef HAVE_STAT_EMPTY_STRING_BUG
@@ -94,9 +100,6 @@
94/* Define to 1 if you have the <unistd.h> header file. */100/* Define to 1 if you have the <unistd.h> header file. */
95#undef HAVE_UNISTD_H101#undef HAVE_UNISTD_H
96102
97/* Define to 1 if you have the <usb.h> header file. */
98#undef HAVE_USB_H
99
100/* Define to 1 if you have the `vprintf' function. */103/* Define to 1 if you have the `vprintf' function. */
101#undef HAVE_VPRINTF104#undef HAVE_VPRINTF
102105
@@ -111,6 +114,9 @@
111 */114 */
112#undef LT_OBJDIR115#undef LT_OBJDIR
113116
117/* Disable logging support */
118#undef NO_LOG
119
114/* Define to 1 if your C compiler doesn't accept -c and -o together. */120/* Define to 1 if your C compiler doesn't accept -c and -o together. */
115#undef NO_MINUS_C_MINUS_O121#undef NO_MINUS_C_MINUS_O
116122
@@ -129,9 +135,15 @@
129/* Define to the one symbol short name of this package. */135/* Define to the one symbol short name of this package. */
130#undef PACKAGE_TARNAME136#undef PACKAGE_TARNAME
131137
138/* Define to the home page for this package. */
139#undef PACKAGE_URL
140
132/* Define to the version of this package. */141/* Define to the version of this package. */
133#undef PACKAGE_VERSION142#undef PACKAGE_VERSION
134143
144/* pcscd filename */
145#undef PCSCD_BINARY
146
135/* Enabled PC/SC lite features */147/* Enabled PC/SC lite features */
136#undef PCSCLITE_FEATURES148#undef PCSCLITE_FEATURES
137149
@@ -154,6 +166,12 @@
154/* directory containing IPC files */166/* directory containing IPC files */
155#undef USE_IPCDIR167#undef USE_IPCDIR
156168
169/* Use serial conf file mechanism */
170#undef USE_SERIAL
171
172/* Use USB hotplug mechanism */
173#undef USE_USB
174
157/* Version number of package */175/* Version number of package */
158#undef VERSION176#undef VERSION
159177
160178
=== modified file 'config.sub'
--- config.sub 2010-07-10 11:15:59 +0000
+++ config.sub 2011-03-19 10:51:41 +0000
@@ -1,10 +1,10 @@
1#! /bin/sh1#! /bin/sh
2# Configuration validation subroutine script.2# Configuration validation subroutine script.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 20084# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.5# Free Software Foundation, Inc.
66
7timestamp='2009-04-17'7timestamp='2010-01-22'
88
9# This file is (in principle) common to ALL GNU software.9# This file is (in principle) common to ALL GNU software.
10# The presence of a machine in this file suggests that SOME GNU software10# The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@
3232
3333
34# Please send patches to <config-patches@gnu.org>. Submit a context34# Please send patches to <config-patches@gnu.org>. Submit a context
35# diff and a properly formatted ChangeLog entry.35# diff and a properly formatted GNU ChangeLog entry.
36#36#
37# Configuration subroutine to validate and canonicalize a configuration type.37# Configuration subroutine to validate and canonicalize a configuration type.
38# Supply the specified configuration type as an argument.38# Supply the specified configuration type as an argument.
39# If it is invalid, we print an error message on stderr and exit with code 1.39# If it is invalid, we print an error message on stderr and exit with code 1.
40# Otherwise, we print the canonical config type on stdout and succeed.40# Otherwise, we print the canonical config type on stdout and succeed.
4141
42# You can get the latest version of this script from:
43# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44
42# This file is supposed to be the same for all GNU packages45# This file is supposed to be the same for all GNU packages
43# and recognize all the CPU types, system types and aliases46# and recognize all the CPU types, system types and aliases
44# that are meaningful with *any* GNU software.47# that are meaningful with *any* GNU software.
@@ -72,8 +75,9 @@
72version="\75version="\
73GNU config.sub ($timestamp)76GNU config.sub ($timestamp)
7477
75Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
762002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80Software Foundation, Inc.
7781
78This is free software; see the source for copying conditions. There is NO82This is free software; see the source for copying conditions. There is NO
79warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,10 +153,13 @@
149 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\153 -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \154 -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \155 -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152 -apple | -axis | -knuth | -cray)156 -apple | -axis | -knuth | -cray | -microblaze)
153 os=157 os=
154 basic_machine=$1158 basic_machine=$1
155 ;;159 ;;
160 -bluegene*)
161 os=-cnk
162 ;;
156 -sim | -cisco | -oki | -wec | -winbond)163 -sim | -cisco | -oki | -wec | -winbond)
157 os=164 os=
158 basic_machine=$1165 basic_machine=$1
@@ -281,6 +288,7 @@
281 | pdp10 | pdp11 | pj | pjl \288 | pdp10 | pdp11 | pj | pjl \
282 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \289 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
283 | pyramid \290 | pyramid \
291 | rx \
284 | score \292 | score \
285 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \293 | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
286 | sh64 | sh64le \294 | sh64 | sh64le \
@@ -288,13 +296,14 @@
288 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \296 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
289 | spu | strongarm \297 | spu | strongarm \
290 | tahoe | thumb | tic4x | tic80 | tron \298 | tahoe | thumb | tic4x | tic80 | tron \
299 | ubicom32 \
291 | v850 | v850e \300 | v850 | v850e \
292 | we32k \301 | we32k \
293 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \302 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
294 | z8k | z80)303 | z8k | z80)
295 basic_machine=$basic_machine-unknown304 basic_machine=$basic_machine-unknown
296 ;;305 ;;
297 m6811 | m68hc11 | m6812 | m68hc12)306 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
298 # Motorola 68HC11/12.307 # Motorola 68HC11/12.
299 basic_machine=$basic_machine-unknown308 basic_machine=$basic_machine-unknown
300 os=-none309 os=-none
@@ -337,7 +346,7 @@
337 | lm32-* \346 | lm32-* \
338 | m32c-* | m32r-* | m32rle-* \347 | m32c-* | m32r-* | m32rle-* \
339 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \348 | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
340 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \349 | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
341 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \350 | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
342 | mips16-* \351 | mips16-* \
343 | mips64-* | mips64el-* \352 | mips64-* | mips64el-* \
@@ -365,15 +374,17 @@
365 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \374 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
366 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \375 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
367 | pyramid-* \376 | pyramid-* \
368 | romp-* | rs6000-* \377 | romp-* | rs6000-* | rx-* \
369 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \378 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
370 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \379 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
371 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \380 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
372 | sparclite-* \381 | sparclite-* \
373 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \382 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
374 | tahoe-* | thumb-* \383 | tahoe-* | thumb-* \
375 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \384 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
385 | tile-* | tilegx-* \
376 | tron-* \386 | tron-* \
387 | ubicom32-* \
377 | v850-* | v850e-* | vax-* \388 | v850-* | v850e-* | vax-* \
378 | we32k-* \389 | we32k-* \
379 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \390 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
@@ -467,6 +478,10 @@
467 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`478 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
468 os=-linux479 os=-linux
469 ;;480 ;;
481 bluegene*)
482 basic_machine=powerpc-ibm
483 os=-cnk
484 ;;
470 c90)485 c90)
471 basic_machine=c90-cray486 basic_machine=c90-cray
472 os=-unicos487 os=-unicos
@@ -719,6 +734,9 @@
719 basic_machine=ns32k-utek734 basic_machine=ns32k-utek
720 os=-sysv735 os=-sysv
721 ;;736 ;;
737 microblaze)
738 basic_machine=microblaze-xilinx
739 ;;
722 mingw32)740 mingw32)
723 basic_machine=i386-pc741 basic_machine=i386-pc
724 os=-mingw32742 os=-mingw32
@@ -1069,6 +1087,11 @@
1069 basic_machine=tic6x-unknown1087 basic_machine=tic6x-unknown
1070 os=-coff1088 os=-coff
1071 ;;1089 ;;
1090 # This must be matched before tile*.
1091 tilegx*)
1092 basic_machine=tilegx-unknown
1093 os=-linux-gnu
1094 ;;
1072 tile*)1095 tile*)
1073 basic_machine=tile-unknown1096 basic_machine=tile-unknown
1074 os=-linux-gnu1097 os=-linux-gnu
@@ -1240,6 +1263,9 @@
1240 # First match some system type aliases1263 # First match some system type aliases
1241 # that might get confused with valid system types.1264 # that might get confused with valid system types.
1242 # -solaris* is a basic system type, with this one exception.1265 # -solaris* is a basic system type, with this one exception.
1266 -auroraux)
1267 os=-auroraux
1268 ;;
1243 -solaris1 | -solaris1.*)1269 -solaris1 | -solaris1.*)
1244 os=`echo $os | sed -e 's|solaris1|sunos4|'`1270 os=`echo $os | sed -e 's|solaris1|sunos4|'`
1245 ;;1271 ;;
@@ -1260,9 +1286,9 @@
1260 # Each alternative MUST END IN A *, to match a version number.1286 # Each alternative MUST END IN A *, to match a version number.
1261 # -sysv* is not here because it comes later, after sysvr4.1287 # -sysv* is not here because it comes later, after sysvr4.
1262 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \1288 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1263 | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\1289 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1264 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \1290 | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1265 | -kopensolaris* \1291 | -sym* | -kopensolaris* \
1266 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \1292 | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1267 | -aos* | -aros* \1293 | -aos* | -aros* \
1268 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \1294 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1283,7 +1309,7 @@
1283 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \1309 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1284 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \1310 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1285 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \1311 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1286 | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)1312 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1287 # Remember, each alternative MUST END IN *, to match a version number.1313 # Remember, each alternative MUST END IN *, to match a version number.
1288 ;;1314 ;;
1289 -qnx*)1315 -qnx*)
@@ -1416,6 +1442,8 @@
1416 -dicos*)1442 -dicos*)
1417 os=-dicos1443 os=-dicos
1418 ;;1444 ;;
1445 -nacl*)
1446 ;;
1419 -none)1447 -none)
1420 ;;1448 ;;
1421 *)1449 *)
@@ -1613,7 +1641,7 @@
1613 -sunos*)1641 -sunos*)
1614 vendor=sun1642 vendor=sun
1615 ;;1643 ;;
1616 -aix*)1644 -cnk*|-aix*)
1617 vendor=ibm1645 vendor=ibm
1618 ;;1646 ;;
1619 -beos*)1647 -beos*)
16201648
=== modified file 'configure'
--- configure 2010-07-10 11:15:59 +0000
+++ configure 2011-03-19 10:51:41 +0000
@@ -1,18 +1,22 @@
1#! /bin/sh1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles.2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.63 for pcsc-lite 1.5.5.3# Generated by GNU Autoconf 2.67 for pcsc-lite 1.7.0.
4#
4#5#
5# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,6# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
6# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.7# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
8# Foundation, Inc.
9#
10#
7# This configure script is free software; the Free Software Foundation11# This configure script is free software; the Free Software Foundation
8# gives unlimited permission to copy, distribute and modify it.12# gives unlimited permission to copy, distribute and modify it.
9## --------------------- ##13## -------------------- ##
10## M4sh Initialization. ##14## M4sh Initialization. ##
11## --------------------- ##15## -------------------- ##
1216
13# Be more Bourne compatible17# Be more Bourne compatible
14DUALCASE=1; export DUALCASE # for MKS sh18DUALCASE=1; export DUALCASE # for MKS sh
15if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then19if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
16 emulate sh20 emulate sh
17 NULLCMD=:21 NULLCMD=:
18 # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which22 # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -20,23 +24,15 @@
20 alias -g '${1+"$@"}'='"$@"'24 alias -g '${1+"$@"}'='"$@"'
21 setopt NO_GLOB_SUBST25 setopt NO_GLOB_SUBST
22else26else
23 case `(set -o) 2>/dev/null` in27 case `(set -o) 2>/dev/null` in #(
24 *posix*) set -o posix ;;28 *posix*) :
29 set -o posix ;; #(
30 *) :
31 ;;
25esac32esac
26
27fi33fi
2834
2935
30
31
32# PATH needs CR
33# Avoid depending upon Character Ranges.
34as_cr_letters='abcdefghijklmnopqrstuvwxyz'
35as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
36as_cr_Letters=$as_cr_letters$as_cr_LETTERS
37as_cr_digits='0123456789'
38as_cr_alnum=$as_cr_Letters$as_cr_digits
39
40as_nl='36as_nl='
41'37'
42export as_nl38export as_nl
@@ -44,7 +40,13 @@
44as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'40as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
45as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo41as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
46as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo42as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
47if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then43# Prefer a ksh shell builtin over an external printf program on Solaris,
44# but without wasting forks for bash or zsh.
45if test -z "$BASH_VERSION$ZSH_VERSION" \
46 && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
47 as_echo='print -r --'
48 as_echo_n='print -rn --'
49elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
48 as_echo='printf %s\n'50 as_echo='printf %s\n'
49 as_echo_n='printf %s'51 as_echo_n='printf %s'
50else52else
@@ -55,7 +57,7 @@
55 as_echo_body='eval expr "X$1" : "X\\(.*\\)"'57 as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
56 as_echo_n_body='eval58 as_echo_n_body='eval
57 arg=$1;59 arg=$1;
58 case $arg in60 case $arg in #(
59 *"$as_nl"*)61 *"$as_nl"*)
60 expr "X$arg" : "X\\(.*\\)$as_nl";62 expr "X$arg" : "X\\(.*\\)$as_nl";
61 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;63 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -78,13 +80,6 @@
78 }80 }
79fi81fi
8082
81# Support unset when possible.
82if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
83 as_unset=unset
84else
85 as_unset=false
86fi
87
8883
89# IFS84# IFS
90# We need space, tab and new line, in precisely that order. Quoting is85# We need space, tab and new line, in precisely that order. Quoting is
@@ -94,15 +89,15 @@
94IFS=" "" $as_nl"89IFS=" "" $as_nl"
9590
96# Find who we are. Look in the path if we contain no directory separator.91# Find who we are. Look in the path if we contain no directory separator.
97case $0 in92case $0 in #((
98 *[\\/]* ) as_myself=$0 ;;93 *[\\/]* ) as_myself=$0 ;;
99 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR94 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
100for as_dir in $PATH95for as_dir in $PATH
101do96do
102 IFS=$as_save_IFS97 IFS=$as_save_IFS
103 test -z "$as_dir" && as_dir=.98 test -z "$as_dir" && as_dir=.
104 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
105done
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches