Merge lp:~kalon33/ubuntu/natty/pcsc-lite/merge-1.7.0-2-from-unstable into lp:ubuntu/natty/pcsc-lite
- Natty (11.04)
- merge-1.7.0-2-from-unstable
- Merge into natty
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 |
Related bugs: |
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:/
Nicolas DERIVE (kalon33) wrote : | # |
@pitti: the libpcsclite1.
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.
Martin Pitt (pitti) wrote : | # |
> @pitti: the libpcsclite1.
Same way as it was done before? The previous version did the moving in debian/rules:
# move runtime libraries to /lib
mv debian/
rmdir -p --ignore-
ln -sf /lib/$$(readlink debian/
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-
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.
Nicolas DERIVE (kalon33) wrote : | # |
> > @pitti: the libpcsclite1.
>
> Same way as it was done before? The previous version did the moving in
> debian/rules:
>
> # move runtime libraries to /lib
> mv debian/
> debian/
> rmdir -p --ignore-
> ln -sf /lib/$$(readlink debian/
> \
> debian/
>
> 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-
> this might just be the default value? Likewise, --enable-
> usbdropdir=
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
1 | === modified file 'ChangeLog' | |||
2 | --- ChangeLog 2010-07-10 11:15:59 +0000 | |||
3 | +++ ChangeLog 2011-03-19 10:51:41 +0000 | |||
4 | @@ -1,3 +1,249 @@ | |||
5 | 1 | pcsc-lite-1.7.0: Ludovic Rousseau | ||
6 | 2 | 9 March 2011 | ||
7 | 3 | - use libudev instead of (the deprecated) libhal | ||
8 | 4 | |||
9 | 5 | |||
10 | 6 | pcsc-lite-1.6.7: Ludovic Rousseau | ||
11 | 7 | 22 February 2011 | ||
12 | 8 | - better Mac OS X support | ||
13 | 9 | - Fix Alioth bug [#312960] SCardDisconnect when other context has transaction | ||
14 | 10 | - add support of multi-interfaces readers with libusb and not just libhal | ||
15 | 11 | - add a API tracing feature in the client side (#define DO_TRACE) | ||
16 | 12 | - allow the use of tracing and profiling features from different | ||
17 | 13 | application threads | ||
18 | 14 | - fix a problem with a multi-slots reader | ||
19 | 15 | - fix minor problems detected by the clang tool | ||
20 | 16 | - some other minor improvements and bug corrections | ||
21 | 17 | |||
22 | 18 | |||
23 | 19 | pcsc-lite-1.6.6: Ludovic Rousseau | ||
24 | 20 | 12 December 2010 | ||
25 | 21 | - SCardGetStatusChange(): fix a bug on 64-bits systems | ||
26 | 22 | - Fix another bug because of a regression in internal list manager | ||
27 | 23 | |||
28 | 24 | |||
29 | 25 | pcsc-lite-1.6.5: Ludovic Rousseau | ||
30 | 26 | 3 December 2010 | ||
31 | 27 | - Power on the card _only_ if an application requests a connection. | ||
32 | 28 | You can disable the feature using DISABLE_ON_DEMAND_POWER_ON in | ||
33 | 29 | src/pcscd.h.in | ||
34 | 30 | If DISABLE_AUTO_POWER_ON is defined then do not automatically power on | ||
35 | 31 | the card. The card will be powered on on the first SCardConnect() | ||
36 | 32 | See http://ludovicrousseau.blogspot.com/2010/10/card-auto-power-on-and-off.html | ||
37 | 33 | - SCardReconnect(): return SCARD_E_NO_SMARTCARD when card is removed and | ||
38 | 34 | SCARD_W_UNRESPONSIVE_CARD when card is unresponsive instead of | ||
39 | 35 | SCARD_E_PROTO_MISMATCH | ||
40 | 36 | - Install pcscd as sgid pcscd instead of suid root | ||
41 | 37 | See http://ludovicrousseau.blogspot.com/2010/09/pcscd-auto-start.html | ||
42 | 38 | - SCardSetTimeout() is no more provided. This function is not provided | ||
43 | 39 | by Microsoft and is deprecated since 2004 in pcsc-lite. | ||
44 | 40 | - SCardCancelTransaction() is no more provided. This function is not | ||
45 | 41 | provided by Microsoft and is deprecated since 2005 in pcsc-lite. | ||
46 | 42 | - Parsing the CCID Info.plist (159 readers supported) was, on a i386 | ||
47 | 43 | machine, done in 264306 µs and is now done 5547 µs => gain x47 or 4600% | ||
48 | 44 | See http://ludovicrousseau.blogspot.com/2010/08/ram-and-cpu-improvements-in-pcsc-lite.html | ||
49 | 45 | - It is now possible to configure the local socket name to use using the | ||
50 | 46 | environment variable PCSCLITE_CSOCK_NAME | ||
51 | 47 | See http://ludovicrousseau.blogspot.com/2010/11/pcsc-client-and-server-on-two-different.html | ||
52 | 48 | - Wait until all connected readers have a chance to power up a possibly | ||
53 | 49 | inserted card before accepting clients. | ||
54 | 50 | - restrict pcscd features when not run by root (so using suid): APDU | ||
55 | 51 | logging or setting parameters are disabled for example | ||
56 | 52 | - fix compilation problem on kfreebsd-* systems | ||
57 | 53 | - PCSC/reader.h: HOST_TO_CCID_16() and HOST_TO_CCID_32() are now | ||
58 | 54 | identity functions | ||
59 | 55 | Since libccid 1.4.1 (revision 5252) the byte order is no more important | ||
60 | 56 | - If you want to use IFDHCreateChannel() instead of | ||
61 | 57 | IFDHCreateChannelByName() then do not use any DEVICENAME line in the | ||
62 | 58 | configuration file. IFDHCreateChannel() will then be called with the | ||
63 | 59 | CHANNELID parameter. | ||
64 | 60 | - the CHANNELID parameter can also be a decimal number. | ||
65 | 61 | - Remove the support of IFDHandler v1 API. I don't know any driver using | ||
66 | 62 | this API. | ||
67 | 63 | See http://ludovicrousseau.blogspot.com/2010/10/ifdhandler-version-1-support-removed.html | ||
68 | 64 | - avoids a buffer overflow with badly formed ATR | ||
69 | 65 | - some other minor improvements and bug corrections | ||
70 | 66 | |||
71 | 67 | |||
72 | 68 | pcsc-lite-1.6.4: Ludovic Rousseau | ||
73 | 69 | 15 August 2010 | ||
74 | 70 | - Do not use sysconfdir as configuration directory but | ||
75 | 71 | "${sysconfdir}/reader.conf.d" instead. | ||
76 | 72 | Use --enable-confdir=DIR if you want to set a specific value without | ||
77 | 73 | the "reader.conf.d" appended. | ||
78 | 74 | |||
79 | 75 | |||
80 | 76 | pcsc-lite-1.6.3: Ludovic Rousseau | ||
81 | 77 | 15 August 2010 | ||
82 | 78 | - "/reader.conf.d" is only appended to sysconfdir if no value of | ||
83 | 79 | sysconfdir is provided | ||
84 | 80 | - Define LPSCARD_READERSTATE since this is used in the MSDN prototype. | ||
85 | 81 | Use LPSCARD_READERSTATE in winscard.h instead of (SCARD_READERSTATE *) | ||
86 | 82 | to mimic the MSDN API. | ||
87 | 83 | - fix a pcscd crash when the application uses a PCSC handle after a | ||
88 | 84 | fork. The crash was with openvpn. | ||
89 | 85 | - some other minor improvements and bug corrections | ||
90 | 86 | |||
91 | 87 | pcsc-lite-1.6.2: Ludovic Rousseau | ||
92 | 88 | 4 August 2010 | ||
93 | 89 | - implement a "Forced suicide" mechanism. | ||
94 | 90 | After 3 Ctrl-C without much reaction from pcscd (in fact the drivers) | ||
95 | 91 | we force the suicide. Sometimes libusb is blocked in a kind of | ||
96 | 92 | dead-lock and kill -9 was the only option. | ||
97 | 93 | - Add support of TAG_IFD_STOP_POLLING_THREAD to request the stop of the | ||
98 | 94 | driver polling function. | ||
99 | 95 | - Avoid a division by 0. Closes [#312555] "simclist bug in pcsc-lite" | ||
100 | 96 | - if pcscd is stared by libpcsclite then close all file handles except | ||
101 | 97 | stdin, stdout and stderr so that pcscd does not confiscate ressources | ||
102 | 98 | allocated by the application | ||
103 | 99 | - in case of auto exit create a new session so that Ctrl-C on the | ||
104 | 100 | application will not also quit pcscd | ||
105 | 101 | - src/hotplug_libusb.c: port from libusb-0.1 to libusb-1.0 | ||
106 | 102 | - default configuration is now $sysconfdir/reader.conf.d | ||
107 | 103 | - fix crash with empty config dir | ||
108 | 104 | - src/PCSC/winscard.h: Remove definitions of SCARD_READERSTATE_A | ||
109 | 105 | PSCARD_READERSTATE_A and LPSCARD_READERSTATE_A types | ||
110 | 106 | - some other minor improvements and bug corrections | ||
111 | 107 | |||
112 | 108 | |||
113 | 109 | pcsc-lite-1.6.1: Ludovic Rousseau | ||
114 | 110 | 4 June 2010 | ||
115 | 111 | - SCardControl(): do not check for card events since we are talking to | ||
116 | 112 | the reader not the card. A smart card removal should not make | ||
117 | 113 | SCardControl() fail with SCARD_W_REMOVED_CARD | ||
118 | 114 | - pcscd do not timeout any more after 2 minutes of inactivity. If the | ||
119 | 115 | other side of the socket dies we will get an error from the kernel. | ||
120 | 116 | The problem was that if a client does nothing during | ||
121 | 117 | PCSCLITE_READ_TIMEOUT (120 seconds by default) then pcscd considers it | ||
122 | 118 | as a dead client and closes the connection. I guess this problem was | ||
123 | 119 | present since the first version of pcsc-lite but nobody complained | ||
124 | 120 | before. | ||
125 | 121 | - pcscd: do not return before most of the initialisation are done | ||
126 | 122 | correctly. The idea is that pcscd can return an error code if the | ||
127 | 123 | daemon fails to start correctly (hald not started for example). | ||
128 | 124 | Before the patch pcscd became a daemon, then returned 0 (success) and | ||
129 | 125 | then continued with the initialisation. If the initialisation failed | ||
130 | 126 | it was too late to return an error code. The /etc/init.d/pcscd script | ||
131 | 127 | was not aware of the failure. | ||
132 | 128 | Closes https://bugzilla.redhat.com/show_bug.cgi?id=580321 | ||
133 | 129 | "/usr/sbin/pcscd exit codes broken" | ||
134 | 130 | - src/hotplug_libusb.c: Add a synchronisation so that if pcscd is auto | ||
135 | 131 | started the initial reader list is available before the server takes | ||
136 | 132 | commands from clients. | ||
137 | 133 | Before the change early calls of SCardListReaders() returned an empty | ||
138 | 134 | list of readers even if a reader was connected. | ||
139 | 135 | Thanks to Patrice Angelini for the bug report | ||
140 | 136 | - SCardConnect() & SCardReconnect(): do not reset the cardProtocol in | ||
141 | 137 | SCARD_SHARE_DIRECT case since the card have _not_ been reseted. A new | ||
142 | 138 | PPS negociation would fail. | ||
143 | 139 | - Do not install files in /etc any more. Serial drivers are rare now. | ||
144 | 140 | - Avoids a crash if a client sends a unknown command. | ||
145 | 141 | Thanks to Martin Vogt for the bug report | ||
146 | 142 | - some other minor improvements and bug corrections | ||
147 | 143 | |||
148 | 144 | |||
149 | 145 | pcsc-lite-1.6.0: Ludovic Rousseau | ||
150 | 146 | 5 May 2010 | ||
151 | 147 | - redesign the client/server communication: | ||
152 | 148 | * no more shared memory used (allow pcscd and libpcsclite1.so to be on | ||
153 | 149 | different computer and talk over a network) | ||
154 | 150 | * no more difference between short and extended APDU | ||
155 | 151 | * no more use of a /var/run/pcscd/pcscd.events/ directory. events are | ||
156 | 152 | sent through the socket | ||
157 | 153 | * simpler command format between client and server | ||
158 | 154 | The side effect is that you are not able to mix an old pcscd with a | ||
159 | 155 | new libpcsclite1.so or the reverse. SCardEstablishContext() will fail | ||
160 | 156 | unless you update both sides of the communication. | ||
161 | 157 | - Use lists instead of fixed size arrays to store handles. | ||
162 | 158 | It is now possible to have: | ||
163 | 159 | - 200 simultaneous PC/SC clients instead of 16 | ||
164 | 160 | - 200 SCardConnect per client instead of 16 | ||
165 | 161 | - 200 clients per reader instead of 16 | ||
166 | 162 | The default value of 200 can be changed by giving an argument to pcscd | ||
167 | 163 | --max-thread --max-card-handle-per-thread --max-card-handle-per-reader | ||
168 | 164 | Thanks to Jean-Luc Giraud for the big patch | ||
169 | 165 | - Make SCardReconnect(), SCardStatus() and SCardTransmit() block instead | ||
170 | 166 | of returning SCARD_E_SHARING_VIOLATION immediately. These functions | ||
171 | 167 | will then behave like on Windows. | ||
172 | 168 | This can happen if these functions are called when the reader is | ||
173 | 169 | locked by a PCSC transaction | ||
174 | 170 | (SCardBeginTransaction/SCardEndTransaction). | ||
175 | 171 | You can define the environment variable PCSCLITE_NO_BLOCKING to use | ||
176 | 172 | the old behavior. | ||
177 | 173 | Thanks to Jean-Luc Giraud for the patch. | ||
178 | 174 | http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0041.html | ||
179 | 175 | - SCardEstablishContext(): try to start the pcscd daemon if not already | ||
180 | 176 | running. | ||
181 | 177 | . pcscd will suicide itself after 60 seconds of inactivity if it is | ||
182 | 178 | started using --auto-exit. This is the default behavior when pcscd is | ||
183 | 179 | started by libpcsclite | ||
184 | 180 | . Set PCSCLITE_PCSCD_ARGS with the argument you want to pass to pcscd in | ||
185 | 181 | autostart Only one argument is passed. The space character is not a | ||
186 | 182 | separator. example: export PCSCLITE_PCSCD_ARGS=-dfa | ||
187 | 183 | - SCardListReaders(): can use SCARD_AUTOALLOCATE | ||
188 | 184 | - SCardGetAttrib(): return SCARD_E_INSUFFICIENT_BUFFER if the driver | ||
189 | 185 | returns IFD_ERROR_INSUFFICIENT_BUFFER | ||
190 | 186 | . add support of SCARD_ATTR_DEVICE_FRIENDLY_NAME as it is better | ||
191 | 187 | implemented in pcscd (it knows the friendly name) | ||
192 | 188 | - SCardGetStatusChange(): Calling with cReaders == 0 will now just | ||
193 | 189 | return SCARD_S_SUCCESS | ||
194 | 190 | . Use the special reader name "\\?PnP?\Notification" to wait for a | ||
195 | 191 | reader event notification | ||
196 | 192 | - SCardTransmit(): do not limit the minimum size of an APDU to 4 bytes. | ||
197 | 193 | non ISO 7816-4 compliant cards (like Mifare DESFIRE) may use shorter | ||
198 | 194 | commands | ||
199 | 195 | - SCardStatus(): returns SCARD_E_SHARING_VIOLATION if the reader is | ||
200 | 196 | already used More conform to Windows | ||
201 | 197 | - PCSC/reader.h: update sruct PIN_PROPERTIES_STRUCTURE to be conform | ||
202 | 198 | with Revision 2.02.06, April 2009 of PCSCv2 part 10 Fields | ||
203 | 199 | wLcdMaxCharacters and wLcdMaxLines have been removed | ||
204 | 200 | . rename FEATURE_MCT_READERDIRECT in FEATURE_MCT_READER_DIRECT to be | ||
205 | 201 | conform with ch. 2.3 of PCSC v2 part 10 | ||
206 | 202 | . add FEATURE_GET_TLV_PROPERTIES and FEATURE_CCID_ESC_COMMAND from | ||
207 | 203 | PC/SC part 10 v2.02.07 March 2010 | ||
208 | 204 | . Add PCSCv2_PART10_PROPERTY_* defines | ||
209 | 205 | - SCardControl() return SCARD_E_UNSUPPORTED_FEATURE if the driver | ||
210 | 206 | returned IFD_ERROR_NOT_SUPPORTED or IFD_NOT_SUPPORTED This is used to | ||
211 | 207 | separate an unsupported value of ControlCode from a general error | ||
212 | 208 | - Use the standard --sysconfdir=DIR ($prefix/etc by default) instead of | ||
213 | 209 | --enable-confdir=DIR for defining the directory containing reader.conf | ||
214 | 210 | - remove SCF support (PC/SC over Smart Card Framework). I never used | ||
215 | 211 | this feature and SCF is now dead and replaced by JSR 268 | ||
216 | 212 | (javax.smartcardio) | ||
217 | 213 | - Better handling of PCSCLITE_STATIC_DRIVER as can be used on platforms | ||
218 | 214 | using µClinux (without dynamic loader). This is used to statically | ||
219 | 215 | link the reader driver to pcscd. Since the link is static you must | ||
220 | 216 | define the IFDHandler API version at compilation time. Either define | ||
221 | 217 | IFDHANDLERv1, IFDHANDLERv2 or IFDHANDLERv3 | ||
222 | 218 | - Use dynamic instead of static allocation for the driver library | ||
223 | 219 | filename. The filename is no more limited to 100 characters. | ||
224 | 220 | Closes: [#312332] MAX_LIBNAME too short? | ||
225 | 221 | - force the return codes SCARD_* to be long since the SCard* functions | ||
226 | 222 | return a LONG type | ||
227 | 223 | - Add the ability to parse all the configuration files of a directory | ||
228 | 224 | instead of just one configuration file. update-reader.conf is then now | ||
229 | 225 | obsolete. | ||
230 | 226 | - Add --enable-embedded (default is no) to build pcsc-lite for an | ||
231 | 227 | embedded system. This will activate the NO_LOG option to disable | ||
232 | 228 | logging and limit RAM and disk consumption. | ||
233 | 229 | - If NO_LOG is defined then no log are displayed. The idea is to limit | ||
234 | 230 | the binaries size on disk and RAM consumption at execution time. | ||
235 | 231 | With NO_LOG defined we gain 26% (17 kB) for the .text segment of pcscd | ||
236 | 232 | and 15% (4 kB) for the .text segment of libpcsclite.so (for i386) | ||
237 | 233 | - Define a minimal pcsc_stringify_error() if NO_LOG is defined. Only the | ||
238 | 234 | error code in hex is displayed in this case. | ||
239 | 235 | Gain: 2kB of .text (10%) for libpcsclite | ||
240 | 236 | - Add --disable-serial and --disable-usb options | ||
241 | 237 | --disable-serial removes support of /etc/reader.conf gain: 8.0kB of | ||
242 | 238 | .text (12%) and 160 bytes of .bss (4%) for pcscd | ||
243 | 239 | --disable-usb removes support of USB hotplug gain: 9.7kB of .text | ||
244 | 240 | (14%) and 960 bytes of .bss (23%) for pcscd | ||
245 | 241 | If you use both options (and use a static driver configuration) gain: | ||
246 | 242 | 17.7kB of .text (26%) and 1152 bytes of .bss (28%) for pcscd | ||
247 | 243 | - Better support of Android | ||
248 | 244 | - some other minor improvements and bug corrections | ||
249 | 245 | |||
250 | 246 | |||
251 | 1 | pcsc-lite-1.5.5: Ludovic Rousseau | 247 | pcsc-lite-1.5.5: Ludovic Rousseau |
252 | 2 | 28 July 2009 | 248 | 28 July 2009 |
253 | 3 | - add the reader interface name if provided by the device | 249 | - add the reader interface name if provided by the device |
254 | @@ -40,7 +286,7 @@ | |||
255 | 40 | - reader.h: add PIN_PROPERTIES_STRUCTURE structure and FEATURE_IFD_PIN_PROPERTIES | 286 | - reader.h: add PIN_PROPERTIES_STRUCTURE structure and FEATURE_IFD_PIN_PROPERTIES |
256 | 41 | Thanks to Martin Paljak for the patch | 287 | Thanks to Martin Paljak for the patch |
257 | 42 | - remove powermgt_macosx.c since it is using APSL version 1.1 instead of | 288 | - remove powermgt_macosx.c since it is using APSL version 1.1 instead of |
259 | 43 | the BSD-like licence like the other files | 289 | the BSD-like licence like the other files |
260 | 44 | Thanks to Stanislav Brabec for the bug report | 290 | Thanks to Stanislav Brabec for the bug report |
261 | 45 | - avoid a possible crash due to a race condition | 291 | - avoid a possible crash due to a race condition |
262 | 46 | Thanks to Matheus Ribeiro for the patch | 292 | Thanks to Matheus Ribeiro for the patch |
263 | @@ -65,7 +311,7 @@ | |||
264 | 65 | - log TxBuffer and RxBuffer if the SCardControl() command failed. | 311 | - log TxBuffer and RxBuffer if the SCardControl() command failed. |
265 | 66 | Closes: [#311376] PCSC_LOG_VERBOSE via -dd; print details of "Card not | 312 | Closes: [#311376] PCSC_LOG_VERBOSE via -dd; print details of "Card not |
266 | 67 | transacted" | 313 | transacted" |
268 | 68 | - add a mutex to avoid a race condition | 314 | - add a mutex to avoid a race condition |
269 | 69 | Closes: [#311377] Race condition in SCardBeginTransaction | 315 | Closes: [#311377] Race condition in SCardBeginTransaction |
270 | 70 | - SCardGetStatusChange() may not return if the reader was removed. | 316 | - SCardGetStatusChange() may not return if the reader was removed. |
271 | 71 | - some other minor improvements and bug corrections | 317 | - some other minor improvements and bug corrections |
272 | @@ -105,7 +351,7 @@ | |||
273 | 105 | 351 | ||
274 | 106 | pcsc-lite-1.4.102: Ludovic Rousseau | 352 | pcsc-lite-1.4.102: Ludovic Rousseau |
275 | 107 | 27 June 2008 | 353 | 27 June 2008 |
277 | 108 | - pcscd -v now displays the enabled features | 354 | - pcscd -v now displays the enabled features |
278 | 109 | - add support of SCARD_AUTOALLOCATE in SCardListReaders(), | 355 | - add support of SCARD_AUTOALLOCATE in SCardListReaders(), |
279 | 110 | SCardListReaderGroups() and SCardGetAttrib | 356 | SCardListReaderGroups() and SCardGetAttrib |
280 | 111 | - add SCardFreeMemory() | 357 | - add SCardFreeMemory() |
281 | @@ -148,7 +394,7 @@ | |||
282 | 148 | in case of "PCSC Not Running" or "PCSC restarted" so that nothing is | 394 | in case of "PCSC Not Running" or "PCSC restarted" so that nothing is |
283 | 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. |
284 | 150 | Programs linked with libpcsclite will not display anything if pcscd is | 396 | Programs linked with libpcsclite will not display anything if pcscd is |
286 | 151 | not running. Solves Red Hat bug 428299. | 397 | not running. Solves Red Hat bug 428299. |
287 | 152 | - default log level is PCSC_LOG_CRITICAL+1 so that NO log is sent to | 398 | - default log level is PCSC_LOG_CRITICAL+1 so that NO log is sent to |
288 | 153 | stderr by default. You need to explicitly set PCSCLITE_DEBUG to have | 399 | stderr by default. You need to explicitly set PCSCLITE_DEBUG to have |
289 | 154 | logs. (in a library stderr(2) can be any file opened with fd=2 so | 400 | logs. (in a library stderr(2) can be any file opened with fd=2 so |
290 | 155 | 401 | ||
291 | === modified file 'ChangeLog.svn' | |||
292 | --- ChangeLog.svn 2010-07-10 11:15:59 +0000 | |||
293 | +++ ChangeLog.svn 2011-03-19 10:51:41 +0000 | |||
294 | @@ -1,3 +1,2619 @@ | |||
295 | 1 | 2011-03-09 Ludovic Rousseau | ||
296 | 2 | |||
297 | 3 | * [r5650] ChangeLog: Typo caused by autocompletion without check | ||
298 | 4 | * [r5649] ChangeLog, configure.in: release 1.7.0 | ||
299 | 5 | |||
300 | 6 | 2011-02-25 Ludovic Rousseau | ||
301 | 7 | |||
302 | 8 | * [r5638] configure.in, src/Makefile.am, src/PCSC/ifdhandler.h, | ||
303 | 9 | src/hotplug_generic.c, src/hotplug_libhal.c, | ||
304 | 10 | src/hotplug_libudev.c, src/hotplug_linux.c: Use libudev instead | ||
305 | 11 | of (deprecated) libhal for the USB hotplug mechanism. | ||
306 | 12 | |||
307 | 13 | 2011-02-24 Ludovic Rousseau | ||
308 | 14 | |||
309 | 15 | * [r5636] src/hotplug_libusb.c: Remove debug printf() | ||
310 | 16 | |||
311 | 17 | 2011-02-22 Ludovic Rousseau | ||
312 | 18 | |||
313 | 19 | * [r5628] ChangeLog, configure.in: release 1.6.7 | ||
314 | 20 | |||
315 | 21 | 2011-02-21 Ludovic Rousseau | ||
316 | 22 | |||
317 | 23 | * [r5621] src/hotplug_libusb.c: If a device has more than one CCID | ||
318 | 24 | interface the "libhal:" naming scheme (with the interface number | ||
319 | 25 | included) is used instead of "libusb:". | ||
320 | 26 | |||
321 | 27 | The new mechanism allows to use multi-interfaces devices like the | ||
322 | 28 | Gemalto ProxDU also with hotplug_libusb. libhal is deprecated and | ||
323 | 29 | may not be available everywhere. | ||
324 | 30 | |||
325 | 31 | Thanks to Diego Elio Pettenò for the patch (for Gentoo) | ||
326 | 32 | |||
327 | 33 | 2011-02-10 Ludovic Rousseau | ||
328 | 34 | |||
329 | 35 | * [r5589] src/winscard_clnt.c: Move the definition of DO_TRACE, | ||
330 | 36 | DO_PROFILE, and DO_CHECK_SAME_PROCESS at the top of the file, and | ||
331 | 37 | add documentation. | ||
332 | 38 | |||
333 | 39 | 2011-02-09 Ludovic Rousseau | ||
334 | 40 | |||
335 | 41 | * [r5587] src/Makefile.am: Do not create empty directories | ||
336 | 42 | .../pcsc/drivers and .../pcsc/services any more. The needed | ||
337 | 43 | directory is created by the driver instead. | ||
338 | 44 | |||
339 | 45 | 2011-02-04 Ludovic Rousseau | ||
340 | 46 | |||
341 | 47 | * [r5584] UnitaryTests/ThreadSafe.py, UnitaryTests/stress_apdu.py: | ||
342 | 48 | Fix PEP8 warnings | ||
343 | 49 | * [r5583] UnitaryTests/ThreadSafe.py: Display the thread id and | ||
344 | 50 | iterations | ||
345 | 51 | * [r5582] UnitaryTests/SCard_fork.py: Better documentation and | ||
346 | 52 | debug | ||
347 | 53 | * [r5581] src/winscard_clnt.c: Add a missing variable declaration | ||
348 | 54 | used if DO_CHECK_SAME_PROCESS is defined | ||
349 | 55 | * [r5580] UnitaryTests/SCardConnect_DIRECT.py: Test the behavior as | ||
350 | 56 | documented in revision 5579 | ||
351 | 57 | * [r5579] src/winscard_clnt.c: Doxygen: CardConnect() & | ||
352 | 58 | SCardReconnect() pdwActiveProtocol is not set to | ||
353 | 59 | SCARD_PROTOCOL_UNDEFINED if SCARD_SHARE_DIRECT is used but the | ||
354 | 60 | card has already negociated its protocol | ||
355 | 61 | |||
356 | 62 | 2011-02-01 Ludovic Rousseau | ||
357 | 63 | |||
358 | 64 | * [r5575] UnitaryTests/SCardBeginTransaction_ExclusiceMode.py: | ||
359 | 65 | Unitary test for Alioth bug [#312960] SCardDisconnect when other | ||
360 | 66 | context has transaction | ||
361 | 67 | * [r5574] src/winscard.c: SCardDisconnect(): RFUnlockAllSharing() | ||
362 | 68 | may fail with SCARD_E_SHARING_VIOLATION if a transaction is on | ||
363 | 69 | going on another card context and dwDisposition == | ||
364 | 70 | SCARD_LEAVE_CARD. We should not stop and continue disconnecting | ||
365 | 71 | the card. | ||
366 | 72 | |||
367 | 73 | Fixes Alioth bug [#312960] SCardDisconnect when other context has | ||
368 | 74 | transaction | ||
369 | 75 | * [r5573] UnitaryTests/SCardConnect_DIRECT2.py: Use the protocol | ||
370 | 76 | negociated by SCardConnect() instead of hard coding SCARD_PCI_T1 | ||
371 | 77 | * [r5572] src/winscard_clnt.c: SCardDisconnect(): remove the card | ||
372 | 78 | handle only if SCARD_DISCONNECT command succeeded on the server | ||
373 | 79 | |||
374 | 80 | Related to alioth bug [#312960] SCardDisconnect when other | ||
375 | 81 | context has transaction If a first SCardDisconnect() fails with | ||
376 | 82 | SCARD_E_SHARING_VIOLATION it is now possible to try again | ||
377 | 83 | SCardDisconnect(). Before the patch the second call to | ||
378 | 84 | SCardDisconnect() returned SCARD_E_INVALID_HANDLE but the | ||
379 | 85 | connection was still "in use". | ||
380 | 86 | |||
381 | 87 | 2011-01-29 Ludovic Rousseau | ||
382 | 88 | |||
383 | 89 | * [r5569] src/PCSC/ifdhandler.h, src/readerfactory.h: Revert | ||
384 | 90 | revision 5568 since it has side effect on driver compilation | ||
385 | 91 | (like libccid fails to build) | ||
386 | 92 | * [r5568] src/PCSC/ifdhandler.h, src/readerfactory.h: Move #include | ||
387 | 93 | "pcsclite.h" from PCSC/ifdhandler.h to readerfactory.h so that | ||
388 | 94 | ifdhandler.h can be used as-is on Mac OS X (for handler_test.c) | ||
389 | 95 | * [r5567] src/eventhandler.c, src/ifdwrapper.c, src/prothandler.c, | ||
390 | 96 | src/readerfactory.c: Remove useless #include "ifdhandler.h" | ||
391 | 97 | |||
392 | 98 | 2011-01-27 Ludovic Rousseau | ||
393 | 99 | |||
394 | 100 | * [r5560] src/winscard_clnt.c: SCardSetAttrib(): add profiling | ||
395 | 101 | calls | ||
396 | 102 | * [r5559] src/winscard_clnt.c: SCardGetSetAttrib(): remove a call | ||
397 | 103 | to PROFILE_END() since this is already done in SCardGetAttrib() | ||
398 | 104 | * [r5558] src/winscard_clnt.c: profiling: compare threads using | ||
399 | 105 | pthread_equal() instead of == to make the code more portable. | ||
400 | 106 | * [r5557] src/winscard_clnt.c: SCardGetAttrib(): Always exit from | ||
401 | 107 | the same point so that profiling does work even in case of error | ||
402 | 108 | * [r5556] src/winscard_clnt.c: profile_end(): add a missing \n in | ||
403 | 109 | the warning message | ||
404 | 110 | * [r5555] src/winscard_clnt.c: Send API traces do stderr instead of | ||
405 | 111 | stdout | ||
406 | 112 | |||
407 | 113 | 2011-01-25 Ludovic Rousseau | ||
408 | 114 | |||
409 | 115 | * [r5550] src/winscard_clnt.c: SCardReleaseContext(): Always exit | ||
410 | 116 | from the same point so that profiling does work even in case of | ||
411 | 117 | error | ||
412 | 118 | * [r5549] src/winscard_clnt.c: SCardCancel(): Always exit from the | ||
413 | 119 | same point so that profiling does work even in case of error | ||
414 | 120 | * [r5548] src/winscard_clnt.c: Profiling: allow to support up to | ||
415 | 121 | MAX_THREADS simultaneous calls | ||
416 | 122 | |||
417 | 123 | For example SCardCancel() is called from another thread when | ||
418 | 124 | SCardGetStatusChange() is running. This was not supported. | ||
419 | 125 | * [r5547] src/winscard_clnt.c: Use color names macros | ||
420 | 126 | * [r5546] src/winscard_clnt.c: Add API tracing with arguments | ||
421 | 127 | display | ||
422 | 128 | * [r5545] src/winscard_clnt.c: SCardGetStatusChange(): Always exit | ||
423 | 129 | from the same point so that profiling does work even in case of | ||
424 | 130 | error | ||
425 | 131 | * [r5544] src/winscard_clnt.c: SCardDisconnect(): Always exit from | ||
426 | 132 | the same point so that profiling does work even in case of error | ||
427 | 133 | |||
428 | 134 | 2011-01-21 Ludovic Rousseau | ||
429 | 135 | |||
430 | 136 | * [r5543] src/configfile.l: Display the correct line number if | ||
431 | 137 | garbage is found in the configuration file | ||
432 | 138 | |||
433 | 139 | 2011-01-20 Ludovic Rousseau | ||
434 | 140 | |||
435 | 141 | * [r5539] src/winscard_svc.c: contextsListhContext_seeker(): avoid | ||
436 | 142 | a potential crash if NULL values are used | ||
437 | 143 | |||
438 | 144 | src/winscard_svc.c:90:22: warning: Dereference of null pointer if | ||
439 | 145 | (currentContext->hContext == *(int32_t *)key) ^ | ||
440 | 146 | src/winscard_svc.c:90:34: warning: Dereference of null pointer if | ||
441 | 147 | (currentContext->hContext == *(int32_t *)key) ^ | ||
442 | 148 | * [r5538] src/winscard_clnt.c: SCardStatus(): initialize a dummy | ||
443 | 149 | variable to avoid warnings | ||
444 | 150 | |||
445 | 151 | src/winscard_clnt.c:1451:2: warning: Assigned value is garbage or | ||
446 | 152 | undefined dwReaderLen = *pcchReaderLen; ^ ~~~~~~~~~~~~~~ | ||
447 | 153 | src/winscard_clnt.c:1452:2: warning: Assigned value is garbage or | ||
448 | 154 | undefined dwAtrLen = *pcbAtrLen; ^ ~~~~~~~~~~ | ||
449 | 155 | * [r5537] src/winscard_clnt.c: Avoid a potential crash if NULL | ||
450 | 156 | values are used | ||
451 | 157 | |||
452 | 158 | src/winscard_clnt.c:226:27: warning: Dereference of null pointer | ||
453 | 159 | if (channelMap->hCard == *(SCARDHANDLE *)key) ^ | ||
454 | 160 | src/winscard_clnt.c:226:18: warning: Dereference of null pointer | ||
455 | 161 | if (channelMap->hCard == *(SCARDHANDLE *)key) ^ | ||
456 | 162 | src/winscard_clnt.c:260:18: warning: Dereference of null pointer | ||
457 | 163 | if (contextMap->hContext == *(SCARDCONTEXT *) key) ^ | ||
458 | 164 | src/winscard_clnt.c:260:30: warning: Dereference of null pointer | ||
459 | 165 | if (contextMap->hContext == *(SCARDCONTEXT *) key) ^ | ||
460 | 166 | * [r5536] src/winscard_clnt.c: SCardEstablishContext(): remove | ||
461 | 167 | useless affectation | ||
462 | 168 | |||
463 | 169 | src/winscard_clnt.c:439:5: warning: Value stored to 'ret' is | ||
464 | 170 | never read ...ret = execl(PCSCD_BINARY, "pcscd", "--auto-exit", | ||
465 | 171 | param, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
466 | 172 | * [r5535] src/winscard_clnt.c: SCardEndTransaction(): remove | ||
467 | 173 | useless code | ||
468 | 174 | |||
469 | 175 | src/winscard_clnt.c:1269:2: warning: Value stored to 'randnum' is | ||
470 | 176 | never read randnum = 0; ^ | ||
471 | 177 | * [r5534] src/winscard.c: remove unused affectations | ||
472 | 178 | |||
473 | 179 | src/winscard.c:565:4: warning: Value stored to 'rv' is never read | ||
474 | 180 | rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^ | ||
475 | 181 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
476 | 182 | src/winscard.c:835:4: warning: Value stored to 'rv' is never read | ||
477 | 183 | rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^ | ||
478 | 184 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
479 | 185 | src/winscard.c:1095:4: warning: Value stored to 'rv' is never | ||
480 | 186 | read rv = IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); ^ | ||
481 | 187 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
482 | 188 | * [r5533] clang-analyze.sh: Do not analyze tokenparser.c since it | ||
483 | 189 | is generated by flex | ||
484 | 190 | * [r5532] src/readerfactory.c: RDR_CLIHANDLES_seeker(): avoid a | ||
485 | 191 | potential crash if NULL values are used | ||
486 | 192 | |||
487 | 193 | src/readerfactory.c:72:30: warning: Dereference of null pointer | ||
488 | 194 | if (rdrCliHandles->hCard == *(SCARDHANDLE *)key) ^ | ||
489 | 195 | src/readerfactory.c:72:21: warning: Dereference of null pointer | ||
490 | 196 | if (rdrCliHandles->hCard == *(SCARDHANDLE *)key) ^ | ||
491 | 197 | * [r5531] src/readerfactory.c: RFAddReader(): remove unused | ||
492 | 198 | affectation | ||
493 | 199 | |||
494 | 200 | src/readerfactory.c:344:4: warning: Value stored to 'rv' is never | ||
495 | 201 | read rv = RFRemoveReader(readerName, port); ^ | ||
496 | 202 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
497 | 203 | * [r5530] src/readerfactory.c: RFAddReaderHandle(): return the | ||
498 | 204 | error code if any | ||
499 | 205 | |||
500 | 206 | src/readerfactory.c:1116:3: warning: Value stored to 'rv' is | ||
501 | 207 | never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~ | ||
502 | 208 | src/readerfactory.c:1103:3: warning: Value stored to 'rv' is | ||
503 | 209 | never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~ | ||
504 | 210 | src/readerfactory.c:1095:3: warning: Value stored to 'rv' is | ||
505 | 211 | never read rv = SCARD_E_NO_MEMORY; ^ ~~~~~~~~~~~~~~~~~ | ||
506 | 212 | |||
507 | 213 | 2011-01-18 Ludovic Rousseau | ||
508 | 214 | |||
509 | 215 | * [r5525] src/pcscdaemon.c: Remove useless code | ||
510 | 216 | |||
511 | 217 | src/pcscdaemon.c:85:2: warning: Value stored to 'rv' is never | ||
512 | 218 | read rv = 0; ^ ~ src/pcscdaemon.c:175:2: warning: Value stored to | ||
513 | 219 | 'rv' is never read rv = 0; ^ ~ | ||
514 | 220 | * [r5524] src/ifdwrapper.c: IFDPowerICC(): remove useless code | ||
515 | 221 | |||
516 | 222 | src/ifdwrapper.c:294:2: warning: Value stored to 'ret' is never | ||
517 | 223 | read ret = ATRDecodeAtr(&sSmartCard, pucAtr, *pdwAtrLen); ^ | ||
518 | 224 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
519 | 225 | src/ifdwrapper.c:268:2: warning: Value stored to 'rv' is never | ||
520 | 226 | read rv = IFD_SUCCESS; ^ ~~~~~~~~~~~ | ||
521 | 227 | * [r5523] src/eventhandler.c: EHStatusHandlerThread(): check the | ||
522 | 228 | return value of IFDStatusICC() | ||
523 | 229 | |||
524 | 230 | Thanks to clang(1) for the warning src/eventhandler.c:235:2: | ||
525 | 231 | warning: Value stored to 'rv' is never read rv = | ||
526 | 232 | IFDStatusICC(rContext, &dwStatus); ^ | ||
527 | 233 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
528 | 234 | * [r5522] src/eventhandler.c: EHStatusHandlerThread(): remove | ||
529 | 235 | unused code | ||
530 | 236 | |||
531 | 237 | src/eventhandler.c:233:2: warning: Value stored to | ||
532 | 238 | 'dwCurrentState' is never read dwCurrentState = 0; ^ ~ | ||
533 | 239 | src/eventhandler.c:232:2: warning: Value stored to | ||
534 | 240 | 'readerSharing' is never read readerSharing = 0; ^ ~ | ||
535 | 241 | * [r5521] src/atrhandler.c: ATRDecodeAtr(): remove unused code | ||
536 | 242 | |||
537 | 243 | src/atrhandler.c:55:2: warning: Value stored to 'p' is never read | ||
538 | 244 | p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~~~~~~~~~~~ | ||
539 | 245 | src/atrhandler.c:55:6: warning: Although the value stored to 'K' | ||
540 | 246 | is used in the enclosing expression, the value is never actually | ||
541 | 247 | read from 'K' p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~~~~~~~ | ||
542 | 248 | src/atrhandler.c:55:10: warning: Although the value stored to | ||
543 | 249 | 'TCK' is used in the enclosing expression, the value is never | ||
544 | 250 | actually read from 'TCK' p = K = TCK = Y1i = T = 0; ^ ~~~~~~~~~~~ | ||
545 | 251 | src/atrhandler.c:55:16: warning: Although the value stored to | ||
546 | 252 | 'Y1i' is used in the enclosing expression, the value is never | ||
547 | 253 | actually read from 'Y1i' p = K = TCK = Y1i = T = 0; ^ ~~~~~ | ||
548 | 254 | src/atrhandler.c:55:22: warning: Although the value stored to 'T' | ||
549 | 255 | is used in the enclosing expression, the value is never actually | ||
550 | 256 | read from 'T' p = K = TCK = Y1i = T = 0; ^ ~ | ||
551 | 257 | * [r5520] clang-analyze.sh: script to call clang --analyze | ||
552 | 258 | * [r5519] splint.sh: No more scf files since revision 4486 | ||
553 | 259 | * [r5518] src/winscard_clnt.c: SCardGetStatusChange(): avoids a | ||
554 | 260 | compiler warning | ||
555 | 261 | |||
556 | 262 | winscard_clnt.c:1875:33: warning: comparison of integers of | ||
557 | 263 | different signs: 'uint32_t' (aka 'unsigned int') and 'int' | ||
558 | 264 | [-Wsign-compare] ...if (rContext->eventCounter != currentCounter) | ||
559 | 265 | ~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ | ||
560 | 266 | * [r5517] src/readerfactory.c: Add an explicit cast to avoid a | ||
561 | 267 | compiler warning | ||
562 | 268 | |||
563 | 269 | readerfactory.c:1033:45: warning: comparison of integers of | ||
564 | 270 | different signs: 'unsigned long' and 'SCARDHANDLE' (aka 'long') | ||
565 | 271 | [-Wsign-compare] if ((rContext->dwIdentity + randHandle) == | ||
566 | 272 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ | ||
567 | 273 | |||
568 | 274 | 2011-01-14 Ludovic Rousseau | ||
569 | 275 | |||
570 | 276 | * [r5509] | ||
571 | 277 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py: | ||
572 | 278 | Also initialize the state of the PnP special reader (For Mac OS | ||
573 | 279 | X) | ||
574 | 280 | * [r5508] src/hotplug_macosx.c: HPSearchHotPluggables(): use the | ||
575 | 281 | same naming convention as used by Apple PC/SC layer on Leopard | ||
576 | 282 | (and later). The reader friendly name is used instead of | ||
577 | 283 | "usb:%04x/%04x" as documented in IFDHandler v3 API at | ||
578 | 284 | http://pcsclite.alioth.debian.org/api/group__IFDHandler.html#gabb9fe35a68fa080ce9397f0b830b1e7e | ||
579 | 285 | |||
580 | 286 | The same driver source code can be used by Apple PC/SC layer and | ||
581 | 287 | by this pcsc-lite. | ||
582 | 288 | * [r5507] src/hotplug_macosx.c: Fix compiler warning | ||
583 | 289 | |||
584 | 290 | hotplug_macosx.c: In function ‘HPDriversGetFromDirectory’: | ||
585 | 291 | hotplug_macosx.c:150: warning: comparison between signed and | ||
586 | 292 | unsigned | ||
587 | 293 | * [r5506] c.sh: Remove commented CFLAGS definition | ||
588 | 294 | * [r5505] src/PCSC/pcsclite.h.in, src/PCSC/wintypes.h: Mac OS X | ||
589 | 295 | "port" - Define Windows types as they are defined on Mac OS X in | ||
590 | 296 | /System/Library/Frameworks/PCSC.framework/Headers/wintypes.h - | ||
591 | 297 | Pack structures as they are packed on Mac OS X in | ||
592 | 298 | /System/Library/Frameworks/PCSC.framework/Headers/pcsclite.h | ||
593 | 299 | |||
594 | 300 | With these changes it is possible to build this pcsc-lite on Mac | ||
595 | 301 | OS X and use it with an application built using the PCSC | ||
596 | 302 | Framework headers provided by Apple. | ||
597 | 303 | |||
598 | 304 | One application is to temporarily replace the Apple PCSC layer by | ||
599 | 305 | a better/working one. | ||
600 | 306 | * [r5504] src/PCSC/pcsclite.h.in: Use LONG instead of long for | ||
601 | 307 | SCARDCONTEXT and SCARDHANDLE so that the exact type can be easily | ||
602 | 308 | changed by editing PCSC/wintypes.h | ||
603 | 309 | |||
604 | 310 | By default: typedef long LONG; so no change | ||
605 | 311 | |||
606 | 312 | 2011-01-13 Ludovic Rousseau | ||
607 | 313 | |||
608 | 314 | * [r5501] doc/pcscd.8.in: Remove references to a init.d/pcscd | ||
609 | 315 | script since pcscd is autostarted by default now. | ||
610 | 316 | * [r5500] doc/reader.conf.5.in: Use @confdir_exp@ instead of | ||
611 | 317 | (removed) @confdir@ | ||
612 | 318 | |||
613 | 319 | 2011-01-12 Ludovic Rousseau | ||
614 | 320 | |||
615 | 321 | * [r5498] doc/pcscd.8.in: Use @confdir_exp@ instead of | ||
616 | 322 | @sysconfdir_exp@ | ||
617 | 323 | |||
618 | 324 | Closes [#312929] @sysconfdir_exp@ not expanded in manual page | ||
619 | 325 | |||
620 | 326 | 2011-01-07 Ludovic Rousseau | ||
621 | 327 | |||
622 | 328 | * [r5496] src/readerfactory.c: RFAddReader(): correctly initialize | ||
623 | 329 | the pthCardEvent field for the other slots. The bug occured with | ||
624 | 330 | a multi slot reader and a driver with no | ||
625 | 331 | TAG_IFD_POLLING_THREAD_WITH_TIMEOUT function (as is the case with | ||
626 | 332 | my CCID driver since revision 5495) | ||
627 | 333 | |||
628 | 334 | 2011-01-06 Ludovic Rousseau | ||
629 | 335 | |||
630 | 336 | * [r5491] UnitaryTests/SCardConnect_DIRECT2.py: Add comments | ||
631 | 337 | * [r5490] src/winscard.c: SCardDisconnect(): Switch to | ||
632 | 338 | POWER_STATE_GRACE_PERIOD unless the card was not powered | ||
633 | 339 | |||
634 | 340 | In the previous implementation the state was changed to | ||
635 | 341 | POWER_STATE_GRACE_PERIOD only if the previous state was | ||
636 | 342 | POWER_STATE_INUSE. So if a SCARD_SHARE_DIRECT connection was used | ||
637 | 343 | the card state was not set POWER_STATE_INUSE and a power off | ||
638 | 344 | action was immediate at the SCardDisconnect(). Not nice if the | ||
639 | 345 | card is reused just after. | ||
640 | 346 | |||
641 | 347 | 2011-01-04 Ludovic Rousseau | ||
642 | 348 | |||
643 | 349 | * [r5478] src/winscard_svc.c: ContextThread(): in command | ||
644 | 350 | CMD_GET_READERS_STATE, wait until all the readers are ready (ATR | ||
645 | 351 | available) before sending the reader states. | ||
646 | 352 | |||
647 | 353 | The problem arrives when you connect two readers at the same time | ||
648 | 354 | (and one of them is slow to get the ATR). SCardGetStatusChange() | ||
649 | 355 | must not exit with one reader in state READER_NOT_INITIALIZED (as | ||
650 | 356 | implemented in revision 5217) | ||
651 | 357 | |||
652 | 358 | 2010-12-12 Ludovic Rousseau | ||
653 | 359 | |||
654 | 360 | * [r5442] ChangeLog, configure.in: release 1.6.6 | ||
655 | 361 | * [r5441] src/simclist.c: Reapply change in revision 4986 since the | ||
656 | 362 | problem was not corrected in version 1.5 of simclist. | ||
657 | 363 | |||
658 | 364 | 2010-12-11 Ludovic Rousseau | ||
659 | 365 | |||
660 | 366 | * [r5440] src/winscard_msg.c: Use LONG instead of int to store | ||
661 | 367 | PC/SC return codes like SCARD_E_* | ||
662 | 368 | |||
663 | 369 | The problem comes from sign extenstion from int to LONG int rv = | ||
664 | 370 | SCARD_E_TIMEOUT; /* 0x8010000A */ is (sign) extended into a LONG | ||
665 | 371 | = 0xFFFFFFFF8010000A | ||
666 | 372 | |||
667 | 373 | So the line in winscard_clnt.c if (SCARD_E_TIMEOUT == rv) is | ||
668 | 374 | never true on a 64-bits system because rv has been extended from | ||
669 | 375 | int to LONG. The comparison is then between 0x8010000A and | ||
670 | 376 | 0xFFFFFFFF8010000A | ||
671 | 377 | |||
672 | 378 | 2010-12-08 Ludovic Rousseau | ||
673 | 379 | |||
674 | 380 | * [r5434] src/PCSC/debuglog.h, src/PCSC/ifdhandler.h, | ||
675 | 381 | src/atrhandler.h, src/dyn_generic.h, src/eventhandler.h, | ||
676 | 382 | src/hotplug.h, src/ifdwrapper.h, src/misc.h, src/parser.h, | ||
677 | 383 | src/powermgt_generic.h, src/prothandler.h, src/readerfactory.h, | ||
678 | 384 | src/sys_generic.h, src/winscard_msg.h, src/winscard_svc.h: Do not | ||
679 | 385 | use extern "C" since we are in C and not C++ | ||
680 | 386 | |||
681 | 387 | Follow rule 13 of "On C Library Implementation" by Rusty Russell | ||
682 | 388 | http://rusty.ozlabs.org/?p=140 | ||
683 | 389 | |||
684 | 390 | 2010-12-03 Ludovic Rousseau | ||
685 | 391 | |||
686 | 392 | * [r5429] src/configfile.l: Fix configfile.l: In function | ||
687 | 393 | 'evaluatetoken': configfile.l:205: warning: assignment discards | ||
688 | 394 | qualifiers from pointer target type | ||
689 | 395 | * [r5427] ChangeLog, configure.in: release 1.6.5 | ||
690 | 396 | |||
691 | 397 | 2010-11-26 Ludovic Rousseau | ||
692 | 398 | |||
693 | 399 | * [r5420] src/simclist.c: From SimCList version 1.5 | ||
694 | 400 | http://mij.oltrelinux.com/devel/simclist/ | ||
695 | 401 | |||
696 | 402 | 2010-11-23 Ludovic Rousseau | ||
697 | 403 | |||
698 | 404 | * [r5415] src/eventhandler.c, src/readerfactory.c, | ||
699 | 405 | src/readerfactory.h, src/winscard.c: Add a mutex to make the test | ||
700 | 406 | and set of the powerState field atomic. | ||
701 | 407 | |||
702 | 408 | 2010-11-22 Ludovic Rousseau | ||
703 | 409 | |||
704 | 410 | * [r5414] src/eventhandler.c, src/winscard.c: Log the new | ||
705 | 411 | powerState value at DEBUG level | ||
706 | 412 | * [r5412] src/readerfactory.c: Remove dead code | ||
707 | 413 | |||
708 | 414 | 2010-11-16 Ludovic Rousseau | ||
709 | 415 | |||
710 | 416 | * [r5402] src/winscard.c: SCardDisconnect(): change powerState to | ||
711 | 417 | POWER_STATE_GRACE_PERIOD only if the previous state was | ||
712 | 418 | POWER_STATE_INUSE | ||
713 | 419 | |||
714 | 420 | If the powerState was POWER_STATE_UNPOWERED then do NOT change to | ||
715 | 421 | POWER_STATE_GRACE_PERIOD. POWER_STATE_GRACE_PERIOD indicates that | ||
716 | 422 | the card is powered on. That is the case if mode is | ||
717 | 423 | SCARD_SHARE_DIRECT at SCardConnect() | ||
718 | 424 | * [r5401] src/winscard.c: SCardConnect(): change the power state to | ||
719 | 425 | POWER_STATE_INUSE only if the card has been powered on. The card | ||
720 | 426 | is NOT powered on if mode is SCARD_SHARE_DIRECT | ||
721 | 427 | * [r5400] src/eventhandler.c, src/readerfactory.c: Move the zeroing | ||
722 | 428 | of the reader context from EHDestroyEventHandler() to | ||
723 | 429 | RFUnInitializeReader() where it is more appropriate. | ||
724 | 430 | |||
725 | 431 | The reader context shall be valid until the reader is | ||
726 | 432 | uninitialized in RFUnInitializeReader() and most importantly | ||
727 | 433 | after IFDCloseIFD() is called. | ||
728 | 434 | * [r5399] src/readerfactory.c: RFInitializeReader(): if | ||
729 | 435 | IFDOpenIFD() fails just mark the reader as "not correctly | ||
730 | 436 | started". This will present a call to IFDCloseIFD() in | ||
731 | 437 | RFUnInitializeReader() (revision 5393) | ||
732 | 438 | |||
733 | 439 | 2010-11-09 Ludovic Rousseau | ||
734 | 440 | |||
735 | 441 | * [r5393] src/readerfactory.c: RFUnInitializeReader(): Do not close | ||
736 | 442 | a reader if IFDOpenIFD() failed in RFInitializeReader() | ||
737 | 443 | * [r5392] src/readerfactory.c: RFRemoveReader(): destroy the event | ||
738 | 444 | handler only if it exists already | ||
739 | 445 | |||
740 | 446 | 2010-11-08 Ludovic Rousseau | ||
741 | 447 | |||
742 | 448 | * [r5391] src/winscard_msg_srv.c: ProcessCommonChannelRequest(): no | ||
743 | 449 | need to define serv_adr as static. Free a few bytes of memory. | ||
744 | 450 | * [r5390] src/winscard_msg.c, src/winscard_msg.h, | ||
745 | 451 | src/winscard_msg_srv.c: Remove CleanupSharedSegment() and do not | ||
746 | 452 | call it anymore | ||
747 | 453 | |||
748 | 454 | The function is not about shared segment any more The file | ||
749 | 455 | PCSCLITE_CSOCK_NAME will be removed in clean_temp_files() at exit | ||
750 | 456 | anyway | ||
751 | 457 | * [r5388] src/winscard_msg.c: MessageSend(): return | ||
752 | 458 | SCARD_E_NO_SERVICE instead of SCARD_F_COMM_ERROR if the daemon | ||
753 | 459 | died and we reveice a EPIPE error. | ||
754 | 460 | * [r5387] src/winscard_msg.c: MessageSendWithHeader(): do not send | ||
755 | 461 | a 0 length buffer. | ||
756 | 462 | |||
757 | 463 | Some commands only have a header and no data like | ||
758 | 464 | CMD_GET_READERS_STATE | ||
759 | 465 | * [r5386] src/winscard_clnt.c, src/winscard_msg.c, | ||
760 | 466 | src/winscard_msg.h, src/winscard_svc.c: MessageReceiveTimeout(), | ||
761 | 467 | MessageSendWithHeader(), MessageSend() and MessageReceive() now | ||
762 | 468 | returns a PC/SC error code instead of an internal value. So the | ||
763 | 469 | callers can just return the error code to the application with no | ||
764 | 470 | transcoding. | ||
765 | 471 | * [r5385] src/winscard_clnt.c: Move SCardInvalidateHandles() in the | ||
766 | 472 | same #ifdef DO_CHECK_SAME_PROCESS as SCardCheckSameProcess() | ||
767 | 473 | since it is only used in this case. | ||
768 | 474 | * [r5384] src/winscard_clnt.c: No need to check the server pid | ||
769 | 475 | anymore. If the server is restarted the socket communication will | ||
770 | 476 | fail and an "RPC transport error" SCARD_F_COMM_ERROR error will | ||
771 | 477 | be returned | ||
772 | 478 | |||
773 | 479 | This check was needed when the readers state was stored in | ||
774 | 480 | /var/run/pcscd/pcscd.pub. But that is no more the case. Every | ||
775 | 481 | command now uses the client/server Unix socket. | ||
776 | 482 | |||
777 | 483 | 2010-11-05 Ludovic Rousseau | ||
778 | 484 | |||
779 | 485 | * [r5379] src/winscard_msg.h: InitializeSocket() and | ||
780 | 486 | ProcessEventsServer() are used by the server side so must be | ||
781 | 487 | declared in the #ifdef PCSCD part of the header file | ||
782 | 488 | * [r5378] src/winscard_msg.h: Add missing getSocketName() | ||
783 | 489 | declaration used by winscard_clnt.c and winscard_msg.c | ||
784 | 490 | * [r5377] src/winscard_msg.h: Reorder the function definitions as | ||
785 | 491 | they are in winscard_msg.c in revision 5371 | ||
786 | 492 | * [r5376] src/readerfactory.h: Remove definition of FctMap_V1 now | ||
787 | 493 | useless since revision 5321 | ||
788 | 494 | * [r5375] src/atrhandler.c, src/atrhandler.h: Remove typedef of | ||
789 | 495 | PSMARTCARD_EXTENSION and use SMARTCARD_EXTENSION * instead | ||
790 | 496 | |||
791 | 497 | 2010-11-04 Ludovic Rousseau | ||
792 | 498 | |||
793 | 499 | * [r5373] src/winscard_clnt.c, src/winscard_msg.c: It is now | ||
794 | 500 | possible to configure the local socket name to use using the | ||
795 | 501 | environment variable PCSCLITE_CSOCK_NAME | ||
796 | 502 | |||
797 | 503 | This is used by Estobuntu LTSP to redirect the smart card reader | ||
798 | 504 | on the light terminal display to the application running on the | ||
799 | 505 | server. They use a patched SSH version to redirect | ||
800 | 506 | /var/run/pcscd/pcscd.comm on the client to ~/.pcscd.comm on the | ||
801 | 507 | server. | ||
802 | 508 | * [r5372] src/winscard_msg.c: MessageReceiveTimeout(): remove pcscd | ||
803 | 509 | specific code inside a function used only by libpcsclite | ||
804 | 510 | * [r5371] src/winscard_msg.c: reorganize the functions in 3 | ||
805 | 511 | categories: - functions used by pcscd only: | ||
806 | 512 | CleanupSharedSegment() - functions used by libpcsclite only: | ||
807 | 513 | ClientSetupSession(), ClientCloseSession(), | ||
808 | 514 | MessageReceiveTimeout(), MessageSendWithHeader() - functions used | ||
809 | 515 | by pcscd and libpcsclite: MessageSend(), MessageReceive() | ||
810 | 516 | |||
811 | 517 | We gain on the code size: 1104 bytes for pcscd and 101 bytes for | ||
812 | 518 | libpcsclite | ||
813 | 519 | |||
814 | 520 | 2010-11-03 Ludovic Rousseau | ||
815 | 521 | |||
816 | 522 | * [r5370] src/atrhandler.c: ATRDecodeAtr(): avoids a buffer | ||
817 | 523 | overflow with badly formed ATR like 3B FF 11 22 33 F0 11 22 33 F0 | ||
818 | 524 | 11 22 33 F0 11 22 33 F0 11 22 33 F0 11 22 33 F0 11 22 33 00 11 22 | ||
819 | 525 | 33 | ||
820 | 526 | |||
821 | 527 | Thanks to Rafael Dominguez Vega for the bug report | ||
822 | 528 | |||
823 | 529 | 2010-10-28 Ludovic Rousseau | ||
824 | 530 | |||
825 | 531 | * [r5368] src/winscard.c: Move declaration of dwAtrLen closer to | ||
826 | 532 | where it is used. | ||
827 | 533 | * [r5367] src/winscard.c: SCardConnect(): log the ATR in case of | ||
828 | 534 | auto power on | ||
829 | 535 | |||
830 | 536 | The ATR may be different from the previous one if the card has a | ||
831 | 537 | cold and a warm ATR. | ||
832 | 538 | |||
833 | 539 | 2010-10-26 Ludovic Rousseau | ||
834 | 540 | |||
835 | 541 | * [r5364] src/winscard.c: SCardDisconnect(): check for card removal | ||
836 | 542 | in case DISABLE_AUTO_POWER_ON | ||
837 | 543 | * [r5359] src/winscard.c: Doxygen documentation is done on the | ||
838 | 544 | client side (winscard_clnt.c) so remove documentation of | ||
839 | 545 | SCardEstablishContext() | ||
840 | 546 | * [r5358] src/winscard.c: SCardTransmit(): do not check for NULL | ||
841 | 547 | pointers since we are called from ContextThread() with correct | ||
842 | 548 | values | ||
843 | 549 | * [r5357] src/winscard.c: SCardReconnect(): do not check for | ||
844 | 550 | pdwActiveProtocol NULL pointer since we are called from | ||
845 | 551 | ContextThread() with a correct value | ||
846 | 552 | * [r5356] src/winscard.c: SCardConnect(): do not check for NULL | ||
847 | 553 | pointers since we are called from ContextThread() with correct | ||
848 | 554 | values | ||
849 | 555 | * [r5355] src/winscard.c: SCardEstablishContext(): do not check for | ||
850 | 556 | phContext NULL pointer since we are called from ContextThread() | ||
851 | 557 | with a correct value | ||
852 | 558 | |||
853 | 559 | 2010-10-25 Ludovic Rousseau | ||
854 | 560 | |||
855 | 561 | * [r5354] src/winscard.c: SCardConnect(): test for not | ||
856 | 562 | SCARD_POWERED instead of SCARD_SWALLOWED | ||
857 | 563 | * [r5351] src/hotplug_linux.c: Use the new bundle parser code | ||
858 | 564 | * [r5350] src/winscard.c: SCardConnect(): log an error if auto | ||
859 | 565 | power on failed | ||
860 | 566 | * [r5349] Makefile.am: Add a fix-rights rule at the top level to | ||
861 | 567 | call the fix-rights rule in src/ | ||
862 | 568 | |||
863 | 569 | 2010-10-23 Ludovic Rousseau | ||
864 | 570 | |||
865 | 571 | * [r5348] src/winscard.c: SCardConnect(): check the returned value | ||
866 | 572 | of IFDPowerICC() to change the readerState if power up succeeded | ||
867 | 573 | * [r5347] src/winscard.c: SCardConnect(): power up the card before | ||
868 | 574 | checking for its SCARD_SWALLOWED state. | ||
869 | 575 | |||
870 | 576 | If a card fails to power up on card insertion a new power up will | ||
871 | 577 | be tried on SCardConnect(). | ||
872 | 578 | |||
873 | 579 | 2010-10-22 Ludovic Rousseau | ||
874 | 580 | |||
875 | 581 | * [r5346] src/winscard_clnt.c: Remove the "This function " in the | ||
876 | 582 | Doxygen brief line | ||
877 | 583 | * [r5345] UnitaryTests/SCardCancel2.py: SCardCancel() should do | ||
878 | 584 | nothing if no cancellable call is ongoing bug fixed in revision | ||
879 | 585 | 5344 | ||
880 | 586 | * [r5344] src/winscard_clnt.c: Only SCardGetStatusChange() can be | ||
881 | 587 | cancelled using SCardCancel() | ||
882 | 588 | |||
883 | 589 | Thanks to Jan Rochat for the bug report | ||
884 | 590 | https://bugs.launchpad.net/ubuntu/+source/pcsc-lite/+bug/647545 | ||
885 | 591 | * [r5343] src/eventhandler.c, src/eventhandler.h, | ||
886 | 592 | src/hotplug_libhal.c, src/hotplug_macosx.c, src/ifdwrapper.c, | ||
887 | 593 | src/misc.h, src/pcscdaemon.c, src/winscard.c, | ||
888 | 594 | src/winscard_clnt.c, src/winscard_msg.c: Remove spaces and tabs | ||
889 | 595 | at end of line | ||
890 | 596 | * [r5342] src/winscard_svc.c: Reformat | ||
891 | 597 | * [r5341] src/PCSC/winscard.h, src/winscard.c, src/winscard_clnt.c, | ||
892 | 598 | src/winscard_msg.h, src/winscard_svc.c: SCardCancelTransaction() | ||
893 | 599 | is no more provided. This function is not provided by Microsoft | ||
894 | 600 | and is deprecated since 2005 in pcsc-lite. | ||
895 | 601 | * [r5340] src/winscard.c: Reindent | ||
896 | 602 | * [r5339] src/winscard_clnt.c: Reformat | ||
897 | 603 | * [r5338] src/PCSC/winscard.h, src/winscard_clnt.c: | ||
898 | 604 | SCardSetTimeout() is no more provided. This function is not | ||
899 | 605 | provided by Microsoft and is deprecated since 2004 in pcsc-lite. | ||
900 | 606 | * [r5337] src/winscard.c: SCardSetTimeout() is implemented (and | ||
901 | 607 | deprecated) on the client side | ||
902 | 608 | * [r5336] src/winscard.c: SCardListReaders() and SCardCancel() are | ||
903 | 609 | implemented on the client side | ||
904 | 610 | * [r5335] src/winscard.c: SCardDisconnect(): if | ||
905 | 611 | DISABLE_AUTO_POWER_ON is defined then do not power on the card if | ||
906 | 612 | SCARD_UNPOWER_CARD is used. | ||
907 | 613 | * [r5334] src/eventhandler.c, src/pcscd.h.in: Move | ||
908 | 614 | DISABLE_ON_DEMAND_POWER_ON and DISABLE_AUTO_POWER_ON defines from | ||
909 | 615 | eventhandler.c to pcscd.h.in so they are visible by all the .c | ||
910 | 616 | files | ||
911 | 617 | * [r5333] src/winscard.c: SCardConnect(): remove debug log | ||
912 | 618 | |||
913 | 619 | 2010-10-21 Ludovic Rousseau | ||
914 | 620 | |||
915 | 621 | * [r5332] src/eventhandler.c: If DISABLE_AUTO_POWER_ON is defined | ||
916 | 622 | then do not automatically power on the card. The card will be | ||
917 | 623 | powered on on the first SCardConnect() | ||
918 | 624 | * [r5331] src/readerfactory.c: Remove extra parenthesis We are | ||
919 | 625 | using C not Lisp :-) | ||
920 | 626 | * [r5328] TODO, src/PCSC/ifdhandler.h, src/eventhandler.c, | ||
921 | 627 | src/eventhandler.h, src/pcscd.h.in, src/readerfactory.c, | ||
922 | 628 | src/readerfactory.h, src/winscard.c: Power on the card _only_ if | ||
923 | 629 | an application requests a connection see Alioth bug #301965 | ||
924 | 630 | |||
925 | 631 | You can disable the feature using DISABLE_ON_DEMAND_POWER_ON in | ||
926 | 632 | src/eventhandler.c | ||
927 | 633 | |||
928 | 634 | 2010-10-17 Ludovic Rousseau | ||
929 | 635 | |||
930 | 636 | * [r5324] src/Makefile.am: PCSC/reader.h is no more generated from | ||
931 | 637 | PCSC/reader.h.in Directly use the filename in | ||
932 | 638 | nobase_include_HEADERS | ||
933 | 639 | |||
934 | 640 | 2010-10-15 Ludovic Rousseau | ||
935 | 641 | |||
936 | 642 | * [r5323] UnitaryTests/SCardStatus.py: Add a call to | ||
937 | 643 | SCardDisconnect() before SCardReleaseContext() | ||
938 | 644 | * [r5322] src/eventhandler.h, src/winscard.c, src/winscard_clnt.c: | ||
939 | 645 | Rename the sharing states unsing the PCSCLITE_SHARING_ prefix | ||
940 | 646 | Doxygen: document the READER_STATE structure | ||
941 | 647 | * [r5321] src/PCSC/ifdhandler.h, src/eventhandler.c, | ||
942 | 648 | src/ifdwrapper.c, src/ifdwrapper.h, src/readerfactory.c, | ||
943 | 649 | src/readerfactory.h: Remove the support of IFDHandler v1 API. I | ||
944 | 650 | don't know any driver using this API. | ||
945 | 651 | |||
946 | 652 | We can now simplify the API of IFDStatusICC() and remove the ATR | ||
947 | 653 | related parameters. These paremeters were only used by the | ||
948 | 654 | IFDHandler v1 API. | ||
949 | 655 | |||
950 | 656 | diffstat says: 6 files changed, 51 insertions(+), 335 | ||
951 | 657 | deletions(-) | ||
952 | 658 | |||
953 | 659 | 2010-10-14 Ludovic Rousseau | ||
954 | 660 | |||
955 | 661 | * [r5317] src/hotplug_libhal.c: ifdCapabilities driver feature is | ||
956 | 662 | not used with libhal (and has never been). Remove dead/unused | ||
957 | 663 | code. | ||
958 | 664 | |||
959 | 665 | 2010-10-13 Ludovic Rousseau | ||
960 | 666 | |||
961 | 667 | * [r5316] src/winscard.c: Reformat | ||
962 | 668 | * [r5315] src/readerfactory.c, src/winscard.c: Use the simpler form | ||
963 | 669 | of IFDPowerICC(..., IFD_POWER_DOWN, ...) introduced in revision | ||
964 | 670 | 5314 | ||
965 | 671 | * [r5314] src/ifdwrapper.c: IFDPowerICC(): allow to use NULL for | ||
966 | 672 | pucAtr and pdwAtrLen to make power down easy with | ||
967 | 673 | IFDPowerICC(rContext, IFD_POWER_DOWN, NULL, NULL); | ||
968 | 674 | * [r5313] src/winscard.c: Correctly set dwAtrLen to the sizeof the | ||
969 | 675 | ATR array before calling IFDPowerICC(). | ||
970 | 676 | |||
971 | 677 | Some drivers do not write more that dwAtrLen bytes in cardAtr | ||
972 | 678 | array. | ||
973 | 679 | |||
974 | 680 | 2010-10-12 Ludovic Rousseau | ||
975 | 681 | |||
976 | 682 | * [r5308] src/winscard_msg.h: Doxygen: SCARD_GET_STATUS_CHANGE is | ||
977 | 683 | not used anymore | ||
978 | 684 | * [r5307] src/winscard.c: Remove SCardStatus() (dead code) on the | ||
979 | 685 | server side. | ||
980 | 686 | * [r5306] src/winscard.c: SCardEndTransaction(): use the same code | ||
981 | 687 | to reset a card as in revision 5301 | ||
982 | 688 | * [r5305] src/winscard.c: SCardReconnect(), SCardDisconnect() and | ||
983 | 689 | SCardEndTransaction(): reset the value of dwAtrLen before the | ||
984 | 690 | second call to IFDPowerICC() so that the driver gets a correct | ||
985 | 691 | value if the first call to IFDPowerICC(IFD_POWER_DOWN) set | ||
986 | 692 | dwAtrLen=0 | ||
987 | 693 | |||
988 | 694 | Thanks to Frank Morgner for the bug report Closes: [#312754] | ||
989 | 695 | IFDHPowerICC is called with IFD_POWER_UP and *AtrLength==0 | ||
990 | 696 | * [r5304] src/pcsc-wirecheck-gen.c, src/winscard.c, | ||
991 | 697 | src/winscard_clnt.c, src/winscard_msg.h, src/winscard_svc.c: A | ||
992 | 698 | large part of SCardStatus() is done on the client side using | ||
993 | 699 | readerStates[]. So remove a few lines of dead code on the server | ||
994 | 700 | side. | ||
995 | 701 | * [r5303] UnitaryTests/SCardStatus.py: Call SCardStatus() a second | ||
996 | 702 | time after a keypress | ||
997 | 703 | * [r5302] UnitaryTests/SCardStatus.py: Unit test for SCardStatus() | ||
998 | 704 | * [r5301] src/winscard.c: SCardReconnect(): Reorganize the code to | ||
999 | 705 | manage ATR and readerState after a power up. Remove a call to | ||
1000 | 706 | IFDStatusICC() to know if a card is present or not since | ||
1001 | 707 | IFDPowerICC() already gives us this information. | ||
1002 | 708 | |||
1003 | 709 | SCardDisconnect(): Use the same code as above | ||
1004 | 710 | * [r5300] src/eventhandler.c, src/winscard.c, src/winscard_clnt.c: | ||
1005 | 711 | Use uint32_t readerState instead of DWORD dwStatus to store the | ||
1006 | 712 | state of the reader. DWORD and uint32_t may be different. | ||
1007 | 713 | * [r5299] src/winscard.c: SCardReconnect(): return | ||
1008 | 714 | SCARD_E_NO_SMARTCARD when card is removed and | ||
1009 | 715 | SCARD_W_UNRESPONSIVE_CARD when card is unresponsive instead of | ||
1010 | 716 | SCARD_E_PROTO_MISMATCH | ||
1011 | 717 | * [r5298] src/winscard_msg.h: Increment minor version because of | ||
1012 | 718 | changes in revision 5290 | ||
1013 | 719 | * [r5297] doc/Makefile.am, doc/ifdhandler-3.tex: Remove the | ||
1014 | 720 | deprecated LaTeX version of IFDHandler documentation | ||
1015 | 721 | |||
1016 | 722 | 2010-10-11 Ludovic Rousseau | ||
1017 | 723 | |||
1018 | 724 | * [r5296] src/configfile.l: evaluatetoken(): the CHANNELID | ||
1019 | 725 | parameter can also be a decimal number. | ||
1020 | 726 | * [r5294] src/PCSC/ifdhandler.h, src/configfile.l: reader.conf | ||
1021 | 727 | configuration: If you want to use IFDHCreateChannel() instead of | ||
1022 | 728 | IFDHCreateChannelByName() then do not use any DEVICENAME line in | ||
1023 | 729 | the configuration file. IFDHCreateChannel() will then be called | ||
1024 | 730 | with the CHANNELID parameter. | ||
1025 | 731 | |||
1026 | 732 | Closes: [#312749] Should call IFDHCreateChannel for serial driver | ||
1027 | 733 | with DEVICENAME /dev/null | ||
1028 | 734 | * [r5293] src/readerfactory.c, src/winscard_clnt.c, | ||
1029 | 735 | src/winscard_svc.c: list_* functions return an decimal integer so | ||
1030 | 736 | use %d insteaf of %X to log the error value. | ||
1031 | 737 | * [r5292] src/readerfactory.c: Add a "0x" before hex displays | ||
1032 | 738 | |||
1033 | 739 | 2010-10-10 Ludovic Rousseau | ||
1034 | 740 | |||
1035 | 741 | * [r5291] src/winscard_clnt.c: Doxygen SCardStatus(): *pdwState | ||
1036 | 742 | also contains a number of events | ||
1037 | 743 | * [r5290] src/eventhandler.c, src/eventhandler.h, | ||
1038 | 744 | src/winscard_clnt.c: Split the card event counter out of the card | ||
1039 | 745 | event state on the pcscd side to simplify the code in | ||
1040 | 746 | EHStatusHandlerThread() | ||
1041 | 747 | |||
1042 | 748 | The two information are combined on the client side in | ||
1043 | 749 | SCardGetStatusChange() and SCardStatus() | ||
1044 | 750 | * [r5289] | ||
1045 | 751 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_loop.py: | ||
1046 | 752 | Exit the endless loop in case of error | ||
1047 | 753 | * [r5288] src/PCSC/pcsclite.h.in: struct SCARD_READERSTATE: use | ||
1048 | 754 | "DWORD" instead of "unsigned long" type for the fields | ||
1049 | 755 | dwCurrentState, dwEventState and cbAtr | ||
1050 | 756 | |||
1051 | 757 | This is compliant to the Windows definition and allows to | ||
1052 | 758 | redefine DWORD to something other than unsigned long, like | ||
1053 | 759 | uint32_t | ||
1054 | 760 | * [r5287] src/PCSC/pcsclite.h.in, src/error.c: | ||
1055 | 761 | pcsc_stringify_error(): Use "LONG" instead of "long" as parameter | ||
1056 | 762 | type to reflect the return type from winscard.h | ||
1057 | 763 | |||
1058 | 764 | The LONG type may be redefined in PCSC/wintypes.h to int32_t for | ||
1059 | 765 | example | ||
1060 | 766 | |||
1061 | 767 | 2010-10-05 Ludovic Rousseau | ||
1062 | 768 | |||
1063 | 769 | * [r5281] src/winscard_clnt.c: Doxygen: do not document unused | ||
1064 | 770 | SCARD_STATE_ATRMATCH and SCARD_STATE_PRESENT states in | ||
1065 | 771 | SCardGetStatusChange() | ||
1066 | 772 | |||
1067 | 773 | Thanks to Martin Paljak for the patch | ||
1068 | 774 | * [r5280] | ||
1069 | 775 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_loop.py: | ||
1070 | 776 | Call SCardGetStatusChange() in a endless loop | ||
1071 | 777 | * [r5279] src/tokenparser.l: Doxygen: fix documentation of | ||
1072 | 778 | LTPBundleFindValueWithKey() | ||
1073 | 779 | * [r5278] src/winscard_clnt.c: SCardGetStatusChange(): include the | ||
1074 | 780 | event counter in dwEventState even if dwCurrentState contains a | ||
1075 | 781 | counter at 0 (default). | ||
1076 | 782 | * [r5277] doc/doxygen.conf.in: Update from Doxygen 1.5.5 to 1.7.1 | ||
1077 | 783 | |||
1078 | 784 | warning: Tag `DETAILS_AT_TOP' at line 163 of file | ||
1079 | 785 | doc/doxygen.conf has become obsolete. To avoid this warning | ||
1080 | 786 | please update your configuration file using "doxygen -u" | ||
1081 | 787 | |||
1082 | 788 | 2010-10-01 Ludovic Rousseau | ||
1083 | 789 | |||
1084 | 790 | * [r5275] src/pcscdaemon.c: main(): do not limit rights if run as | ||
1085 | 791 | root | ||
1086 | 792 | |||
1087 | 793 | 2010-09-19 Ludovic Rousseau | ||
1088 | 794 | |||
1089 | 795 | * [r5262] src/Makefile.am: Do not change the access rights of pcscd | ||
1090 | 796 | in the install rule but in another one. This is needed when | ||
1091 | 797 | building the package in a system without the pcscd group. | ||
1092 | 798 | |||
1093 | 799 | 2010-09-14 Ludovic Rousseau | ||
1094 | 800 | |||
1095 | 801 | * [r5256] configure.in: Do not generate src/PCSC/reader.h from | ||
1096 | 802 | src/PCSC/reader.h.in any more | ||
1097 | 803 | * [r5255] src/PCSC/reader.h: HOST_TO_CCID_16() and | ||
1098 | 804 | HOST_TO_CCID_32() are now identity functions | ||
1099 | 805 | |||
1100 | 806 | Since CCID 1.4.1 (revision 5252) the byte order is no more | ||
1101 | 807 | important | ||
1102 | 808 | * [r5254] src/PCSC/reader.h, src/PCSC/reader.h.in: Rename | ||
1103 | 809 | reader.h.in in reader.h | ||
1104 | 810 | |||
1105 | 811 | 2010-09-04 Ludovic Rousseau | ||
1106 | 812 | |||
1107 | 813 | * [r5245] src/Makefile.am: Install pcscd as sgid pcscd instead of | ||
1108 | 814 | suid root | ||
1109 | 815 | * [r5241] src/hotplug_libhal.c: HPReadBundleValues(): do not fail | ||
1110 | 816 | if the key "CFBundleName" is not found in a driver Info.plist. | ||
1111 | 817 | This key should only be defined for the CCID class driver. | ||
1112 | 818 | |||
1113 | 819 | 2010-09-03 Ludovic Rousseau | ||
1114 | 820 | |||
1115 | 821 | * [r5231] src/winscard_msg.c: Doxygen: remove documentation about | ||
1116 | 822 | the (now removed) timeOut parameter of MessageSend() and | ||
1117 | 823 | MessageSendWithHeader() | ||
1118 | 824 | |||
1119 | 825 | 2010-09-02 Ludovic Rousseau | ||
1120 | 826 | |||
1121 | 827 | * [r5227] src/winscard_clnt.c: Doxygen: clarify the use of one | ||
1122 | 828 | different SCARDCONTEXT per thread and the expection for | ||
1123 | 829 | SCardCancel() | ||
1124 | 830 | * [r5226] src/winscard_svc.c: Remove protocol_major, protocol_minor | ||
1125 | 831 | fields from struct _psContext since they are not used. | ||
1126 | 832 | * [r5225] src/winscard_msg.h: update PROTOCOL_VERSION_MINOR since | ||
1127 | 833 | struct pubReaderStatesList changed (readerID removed) | ||
1128 | 834 | * [r5224] src/winscard_svc.c: ContextThread(): check that the | ||
1129 | 835 | procotol major.minor is the same for the daemon and lib. If not | ||
1130 | 836 | just fail. We are not backward compatible. | ||
1131 | 837 | * [r5219] src/winscard_clnt.c: Complete change in revision 5212 | ||
1132 | 838 | |||
1133 | 839 | SCardGetStatusChange() and SCardListReaders() were broken. | ||
1134 | 840 | * [r5218] src/ifdwrapper.c, src/readerfactory.c, | ||
1135 | 841 | src/readerfactory.h: Rename lpcLibrary in library and lpcDevice | ||
1136 | 842 | in device | ||
1137 | 843 | * [r5217] src/eventhandler.c, src/eventhandler.h, src/pcscdaemon.c, | ||
1138 | 844 | src/readerfactory.c, src/readerfactory.h: Wait until all | ||
1139 | 845 | connected readers have a chance to power up a possibly inserted | ||
1140 | 846 | card. | ||
1141 | 847 | |||
1142 | 848 | This is needed when auto start is used and a card is already | ||
1143 | 849 | present in a USB reader. The reader presence is correctly | ||
1144 | 850 | reported to libpcsclite but the power up has not yet happen. So | ||
1145 | 851 | the ATR is not yet available. | ||
1146 | 852 | * [r5216] src/eventhandler.c, src/readerfactory.c, | ||
1147 | 853 | src/readerfactory.h, src/winscard_clnt.c: Rename lpcReaderName in | ||
1148 | 854 | readerName and use (char *) instead of LPSTR | ||
1149 | 855 | * [r5215] src/eventhandler.c, src/readerfactory.c, | ||
1150 | 856 | src/readerfactory.h, src/winscard.c: Get rid of the lpcReader[] | ||
1151 | 857 | field in struct ReaderContext | ||
1152 | 858 | |||
1153 | 859 | The reader name is already present in readerState->readerName | ||
1154 | 860 | linked from struct ReaderContext | ||
1155 | 861 | |||
1156 | 862 | Gain: MAX_READERNAME*PCSCLITE_MAX_READERS_CONTEXTS = 100*16 = | ||
1157 | 863 | 1600 bytes fo RAM on pcscd | ||
1158 | 864 | * [r5214] src/winscard.c: SCardStatus(): remove a useless test | ||
1159 | 865 | |||
1160 | 866 | lpcReader can't be larger than MAX_BUFFER_SIZE (264) since its | ||
1161 | 867 | buffer is only MAX_READERNAME (100) bytes long. And I don't see | ||
1162 | 868 | why we need this test anyway. | ||
1163 | 869 | * [r5213] src/eventhandler.c, src/winscard.c: Complete change | ||
1164 | 870 | started in revision 5212 | ||
1165 | 871 | |||
1166 | 872 | rContext->readerState is never NULL now. So do not even check its | ||
1167 | 873 | value. | ||
1168 | 874 | * [r5212] src/eventhandler.c, src/eventhandler.h, | ||
1169 | 875 | src/pcsc-wirecheck-gen.c, src/readerfactory.c, | ||
1170 | 876 | src/winscard_clnt.c: Get rid of the readerID field in struct | ||
1171 | 877 | pubReaderStatesList | ||
1172 | 878 | * [r5211] src/readerfactory.c, src/readerfactory.h: Remove unused | ||
1173 | 879 | RFSuspendAllReaders() and RFAwakeAllReaders() | ||
1174 | 880 | |||
1175 | 881 | 2010-08-31 Ludovic Rousseau | ||
1176 | 882 | |||
1177 | 883 | * [r5204] src/eventhandler.c: Reformat | ||
1178 | 884 | |||
1179 | 885 | 2010-08-30 Ludovic Rousseau | ||
1180 | 886 | |||
1181 | 887 | * [r5202] src/winscard_msg_srv.c: InitializeSocket(): do not set | ||
1182 | 888 | the execution bit on the socket file. It is useless. | ||
1183 | 889 | |||
1184 | 890 | 2010-08-27 Ludovic Rousseau | ||
1185 | 891 | |||
1186 | 892 | * [r5196] src/debug.c, src/error.c, src/utils.c, src/utils.h: svn | ||
1187 | 893 | propset svn:keywords 'Author Date Id Revision' | ||
1188 | 894 | * [r5195] src/utils.c: GetDaemonPid(): use open(3) instead of | ||
1189 | 895 | fopen(3) to avoid an internal malloc() call and gain some CPU | ||
1190 | 896 | cycles | ||
1191 | 897 | * [r5194] src/hotplug_libhal.c: HPAddDevice(): wait 1 millisecond | ||
1192 | 898 | instead of 1 second until the device is visible to libusb/etc. | ||
1193 | 899 | |||
1194 | 900 | 2010-08-25 Ludovic Rousseau | ||
1195 | 901 | |||
1196 | 902 | * [r5183] src/winscard_clnt.c: Doxygen: | ||
1197 | 903 | SCardCheckDaemonAvailability() do not invalidate handles after a | ||
1198 | 904 | fork() any more | ||
1199 | 905 | |||
1200 | 906 | 2010-08-23 Ludovic Rousseau | ||
1201 | 907 | |||
1202 | 908 | * [r5179] src/hotplug_libusb.c: HPReadBundleValues(): use the new | ||
1203 | 909 | Info.plist parsing API. | ||
1204 | 910 | |||
1205 | 911 | Parsing the CCID Info.plist (159 readers supported) was on a ARM9 | ||
1206 | 912 | machine 13193049 µs and is now 258262 µs => gain x51 or 5008% | ||
1207 | 913 | * [r5178] src/readerfactory.c: RFBindFunctions(): rename rv in rvl | ||
1208 | 914 | to avoid warnings warning: declaration of ‘rv’ shadows a previous | ||
1209 | 915 | local | ||
1210 | 916 | |||
1211 | 917 | Also change type from DWORD to int since DYN_GetAddress() returns | ||
1212 | 918 | an int | ||
1213 | 919 | * [r5177] src/readerfactory.c: RFLoadReader(): optimize the | ||
1214 | 920 | detection of Ifd Handler version by checking for | ||
1215 | 921 | "IFDHCreateChannelByName", "IFDHCreateChannel" and then | ||
1216 | 922 | "IO_Create_Channel" instead of the 3 symbols at once. | ||
1217 | 923 | |||
1218 | 924 | Also suppress the error message suppression. Ifd handler v2 or v1 | ||
1219 | 925 | will display one or two errors for symbols not found. | ||
1220 | 926 | * [r5175] src/hotplug_libhal.c: HPReadBundleValues(): duplicate the | ||
1221 | 927 | readerName and CFBundleName strings since the originals are | ||
1222 | 928 | destroyed by bundleRelease() later | ||
1223 | 929 | |||
1224 | 930 | The reader names were corrupted. | ||
1225 | 931 | |||
1226 | 932 | 2010-08-18 Ludovic Rousseau | ||
1227 | 933 | |||
1228 | 934 | * [r5160] ChangeLog: Fix typo | ||
1229 | 935 | |||
1230 | 936 | 2010-08-17 Ludovic Rousseau | ||
1231 | 937 | |||
1232 | 938 | * [r5157] src/hotplug_libhal.c: HPReadBundleValues(): use the new | ||
1233 | 939 | Info.plist parsing API. | ||
1234 | 940 | |||
1235 | 941 | Parsing the CCID Info.plist (159 readers supported) was on a i386 | ||
1236 | 942 | machine 264306 µs and is now 5547 µs => gain x47 or 4600% | ||
1237 | 943 | * [r5156] src/parser.h, src/tokenparser.l: parse the Info.plist | ||
1238 | 944 | file only once and generate a list of key/values | ||
1239 | 945 | * [r5152] src/hotplug_libusb.c: HPSearchHotPluggables(): create the | ||
1240 | 946 | synchronisation pipe only if the HPEstablishUSBNotifications | ||
1241 | 947 | thread is created. Avoids to leak resources. | ||
1242 | 948 | * [r5151] src/hotplug_libusb.c: HPSearchHotPluggables(): wait for | ||
1243 | 949 | initial readers to setup only if HPEstablishUSBNotifications is | ||
1244 | 950 | created. Otherwise the process is blocked for ever. | ||
1245 | 951 | * [r5150] src/hotplug_libhal.c: HPRegisterForHotplugEvents(): | ||
1246 | 952 | having no bundle for USB readers is not an error. USB | ||
1247 | 953 | support/hotplug is just disabled. | ||
1248 | 954 | * [r5149] src/pcscdaemon.c: main(): Log a message if | ||
1249 | 955 | HPRegisterForHotplugEvents() fails | ||
1250 | 956 | * [r5148] src/hotplug_libusb.c: Do not hardcode the libusb-1.0 | ||
1251 | 957 | include header path (remove the libusb-1.0/ part) | ||
1252 | 958 | |||
1253 | 959 | 2010-08-16 Ludovic Rousseau | ||
1254 | 960 | |||
1255 | 961 | * [r5147] configure.in: Do not hardcode the libusb.h path. | ||
1256 | 962 | |||
1257 | 963 | See Debian bug #591782 ccid: FTBFS on kfreebsd-*: configure: | ||
1258 | 964 | error: libusb.h not found | ||
1259 | 965 | * [r5146] c.sh: add --sysconfdir=/etc | ||
1260 | 966 | * [r5145] src/pcscdaemon.c: Do not allow restricting defaults | ||
1261 | 967 | values of --max-thread, --max-card-handle-per-thread or | ||
1262 | 968 | --max-card-handle-per-reader when restricted | ||
1263 | 969 | * [r5144] src/pcscdaemon.c: Do not allow APDU logging when | ||
1264 | 970 | restricted | ||
1265 | 971 | * [r5143] src/pcscdaemon.c: If the process is setuid or setgid it | ||
1266 | 972 | may have some restrictions | ||
1267 | 973 | |||
1268 | 974 | Do not allow to specify a configuration file when restricted | ||
1269 | 975 | |||
1270 | 976 | 2010-08-15 Ludovic Rousseau | ||
1271 | 977 | |||
1272 | 978 | * [r5138] ChangeLog, configure.in: release 1.6.4 | ||
1273 | 979 | * [r5137] configure.in: Do not use sysconfdir as configuration | ||
1274 | 980 | directory but ${sysconfdir}/reader.conf.d instead. | ||
1275 | 981 | |||
1276 | 982 | Use --enable-confdir=DIR if you want to set a specific value | ||
1277 | 983 | without the reader.conf.d appended. | ||
1278 | 984 | |||
1279 | 985 | Thanks to Kalev Lember for the bug report | ||
1280 | 986 | http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0150.html | ||
1281 | 987 | * [r5135] ChangeLog, configure.in: release 1.6.3 | ||
1282 | 988 | * [r5134] src/PCSC/pcsclite.h.in, src/PCSC/winscard.h: Define | ||
1283 | 989 | LPSCARD_READERSTATE since this is used in the MSDN prototype. | ||
1284 | 990 | |||
1285 | 991 | Use LPSCARD_READERSTATE in winscard.h instead of | ||
1286 | 992 | (SCARD_READERSTATE *) to mimic the MSDN API. | ||
1287 | 993 | |||
1288 | 994 | This partly reverts changeset 5096 | ||
1289 | 995 | |||
1290 | 996 | 2010-08-13 Ludovic Rousseau | ||
1291 | 997 | |||
1292 | 998 | * [r5130] UnitaryTests/SCard_fork.py: Also call SCardDisconnect() | ||
1293 | 999 | and SCardReleaseContext() in the forked process | ||
1294 | 1000 | * [r5129] src/winscard_svc.c: ContextThread(): goto exit if | ||
1295 | 1001 | MSGCheckHandleAssociation() fails instead of just returning no | ||
1296 | 1002 | error. | ||
1297 | 1003 | |||
1298 | 1004 | Something wrong happened on the client side (like a fork) and the | ||
1299 | 1005 | client needs to call SCardEstablishContext() to create a new | ||
1300 | 1006 | connection. | ||
1301 | 1007 | * [r5128] src/winscard_svc.c: ContextThread(): fix goto label when | ||
1302 | 1008 | it _is_ an overflow | ||
1303 | 1009 | * [r5127] src/winscard_svc.c: ContextThread(): fix goto label when | ||
1304 | 1010 | it is not an overflow | ||
1305 | 1011 | * [r5126] src/winscard_clnt.c: Revert changeset 5102 to add | ||
1306 | 1012 | profiling on the client side again. | ||
1307 | 1013 | |||
1308 | 1014 | ltrace(1) can't be used with a dynamically loaded (dlopen(3)) | ||
1309 | 1015 | library like it is the case with the majority of PKCS#11 client | ||
1310 | 1016 | application. | ||
1311 | 1017 | * [r5125] src/simclist.c: Reset mid field when the list is empty to | ||
1312 | 1018 | avoid assert() errors | ||
1313 | 1019 | * [r5124] src/winscard_svc.c: MSGCheckHandleAssociation(): check | ||
1314 | 1020 | that the context handle is still valid. Calling a PC/SC function | ||
1315 | 1021 | after SCardReleaseContext() is not supported. | ||
1316 | 1022 | * [r5123] src/eventhandler.c: Fix typo in comment | ||
1317 | 1023 | |||
1318 | 1024 | 2010-08-05 Ludovic Rousseau | ||
1319 | 1025 | |||
1320 | 1026 | * [r5118] configure.in: remove debug line | ||
1321 | 1027 | * [r5117] configure.in: "/reader.conf.d" is only appended to | ||
1322 | 1028 | sysconfdir if no value of sysconfdir is provided | ||
1323 | 1029 | |||
1324 | 1030 | Thanks to Patrice Angelini for the bug report | ||
1325 | 1031 | * [r5114] src/hotplug_libusb.c: HPAddHotPluggable(): do not use | ||
1326 | 1032 | libusb_strerror() since it is not yet available in current stable | ||
1327 | 1033 | libusb (1.0.8) | ||
1328 | 1034 | * [r5113] src/ifdwrapper.c: Fix compilation warnings | ||
1329 | 1035 | ifdwrapper.c:166:7: warning: "IFDHANDLERv2" is not defined | ||
1330 | 1036 | ifdwrapper.c:589:7: warning: "IFDHANDLERv2" is not defined | ||
1331 | 1037 | ifdwrapper.c:640:7: warning: "IFDHANDLERv3" is not defined | ||
1332 | 1038 | * [r5112] src/ifdwrapper.c: Check that either IFDHANDLERv1, | ||
1333 | 1039 | IFDHANDLERv2 or IFDHANDLERv3 is defined if PCSCLITE_STATIC_DRIVER | ||
1334 | 1040 | is used | ||
1335 | 1041 | * [r5111] c.sh: No need to use -D_REENTRANT. It was needed for | ||
1336 | 1042 | LinuxThreads but we do not use LinuxThreads since a long time. | ||
1337 | 1043 | |||
1338 | 1044 | See Debian bug #475101 "Remove obsolete -D_REENTRANT requirement" | ||
1339 | 1045 | |||
1340 | 1046 | 2010-08-04 Ludovic Rousseau | ||
1341 | 1047 | |||
1342 | 1048 | * [r5107] ChangeLog, configure.in: release 1.6.2 | ||
1343 | 1049 | * [r5106] src/Makefile.am: Remove useless $(COREFOUNDATION) from | ||
1344 | 1050 | libpcsclite_la_LIBADD The library has no Mac OS X specific code. | ||
1345 | 1051 | * [r5105] src/Makefile.am: Remove undefined $(LIBSMARTCARD) from | ||
1346 | 1052 | libpcsclite_la_LIBADD | ||
1347 | 1053 | * [r5104] src/Makefile.am: libpcsclite does not use dlopen() so no | ||
1348 | 1054 | need to link with $(LIBDL) | ||
1349 | 1055 | |||
1350 | 1056 | 2010-08-03 Ludovic Rousseau | ||
1351 | 1057 | |||
1352 | 1058 | * [r5102] src/winscard_clnt.c: Remove client side profiling since | ||
1353 | 1059 | we can use ltrace(1) with better results | ||
1354 | 1060 | * [r5098] configure.in: Remove 2 debug traces | ||
1355 | 1061 | |||
1356 | 1062 | 2010-08-02 Ludovic Rousseau | ||
1357 | 1063 | |||
1358 | 1064 | * [r5097] src/PCSC/winscard.h, src/winscard.c, src/winscard_clnt.c: | ||
1359 | 1065 | Use "SCARD_IO_REQUEST *" instead of LPSCARD_IO_REQUEST and "const | ||
1360 | 1066 | SCARD_IO_REQUEST *" instead of "LPCSCARD_IO_REQUEST | ||
1361 | 1067 | |||
1362 | 1068 | Should make the code more easy to read | ||
1363 | 1069 | * [r5096] doc/example/pcsc_demo.c, src/PCSC/pcsclite.h.in, | ||
1364 | 1070 | src/PCSC/winscard.h, src/testpcsc.c, src/utils/formaticc.c, | ||
1365 | 1071 | src/winscard.c, src/winscard_clnt.c: Use SCARD_READERSTATE | ||
1366 | 1072 | instead of SCARD_READERSTATE_A | ||
1367 | 1073 | |||
1368 | 1074 | Remove definitions of SCARD_READERSTATE_A PSCARD_READERSTATE_A | ||
1369 | 1075 | and LPSCARD_READERSTATE_A types | ||
1370 | 1076 | * [r5093] configure.in: Use $libdir instead of $prefix/lib to set | ||
1371 | 1077 | the default value of usbdropdir | ||
1372 | 1078 | |||
1373 | 1079 | " Fedora uses /usr/lib on 32 bit and /usr/lib64 on 64 bit | ||
1374 | 1080 | multilib platforms. " | ||
1375 | 1081 | |||
1376 | 1082 | Thanks to Kalev Lember for the idea. | ||
1377 | 1083 | http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0108.html | ||
1378 | 1084 | * [r5092] c.sh: sysconfdir=/etc by default if prefix=/usr so remove | ||
1379 | 1085 | the --sysconfdir line | ||
1380 | 1086 | * [r5091] UnitaryTests/SCardBeginTransaction_Disconnect.py, | ||
1381 | 1087 | UnitaryTests/SCardConnect_DIRECT.py, | ||
1382 | 1088 | UnitaryTests/SCardConnect_DIRECT2.py, | ||
1383 | 1089 | UnitaryTests/SCardExclusiveBehaviour.py, | ||
1384 | 1090 | UnitaryTests/SCardReconnect.py, UnitaryTests/reset_card.py: Do | ||
1385 | 1091 | not duplicate the reader index to avoids problems when I want to | ||
1386 | 1092 | change it. | ||
1387 | 1093 | |||
1388 | 1094 | 2010-08-01 Ludovic Rousseau | ||
1389 | 1095 | |||
1390 | 1096 | * [r5082] configure.in: Set sysconfdir to /etc if prefix=/usr | ||
1391 | 1097 | |||
1392 | 1098 | You should have a default working configuration only with | ||
1393 | 1099 | --prefix=/usr | ||
1394 | 1100 | |||
1395 | 1101 | 2010-07-31 Ludovic Rousseau | ||
1396 | 1102 | |||
1397 | 1103 | * [r5081] c.sh: --enable-muscledropdir is no more supported by | ||
1398 | 1104 | pcsc-lite since a long time. So remove the line. | ||
1399 | 1105 | * [r5080] c.sh: --enable-usbdropdir=/usr/lib/pcsc/drivers is now | ||
1400 | 1106 | the default value. So remove the line. | ||
1401 | 1107 | * [r5079] configure.in: Default value of usbdropdir is now | ||
1402 | 1108 | $prefix/lib/pcsc/drivers instead of $prefix/pcsc/drivers | ||
1403 | 1109 | |||
1404 | 1110 | The new path is the path used on Debian (with prefix-/usr). So no | ||
1405 | 1111 | need to change the default value. | ||
1406 | 1112 | |||
1407 | 1113 | 2010-07-27 Ludovic Rousseau | ||
1408 | 1114 | |||
1409 | 1115 | * [r5073] src/Makefile.am: Create empty directories used by drivers | ||
1410 | 1116 | |||
1411 | 1117 | Thanks to Kalev Lember for the patch | ||
1412 | 1118 | http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0065.html | ||
1413 | 1119 | |||
1414 | 1120 | 2010-07-26 Ludovic Rousseau | ||
1415 | 1121 | |||
1416 | 1122 | * [r5071] src/hotplug_libhal.c, src/pcscdaemon.c, src/utils.c, | ||
1417 | 1123 | src/winscard.c: Do not affect and check a variable on the same | ||
1418 | 1124 | line | ||
1419 | 1125 | * [r5070] src/readerfactory.c: reformat | ||
1420 | 1126 | * [r5069] src/winscard.c: Get the value of rContext before its use. | ||
1421 | 1127 | A simple call to SCardTransmit() crashed with a NULL pointer. | ||
1422 | 1128 | |||
1423 | 1129 | 2010-07-08 Ludovic Rousseau | ||
1424 | 1130 | |||
1425 | 1131 | * [r5066] src/readerfactory.c: fix crash with empty config dir | ||
1426 | 1132 | |||
1427 | 1133 | Thanks to Kalev Lember for the patch | ||
1428 | 1134 | http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0017.html | ||
1429 | 1135 | |||
1430 | 1136 | pcscd attempts to read uninitialized memory and free an invalid | ||
1431 | 1137 | pointer when its configuration directory is empty. | ||
1432 | 1138 | |||
1433 | 1139 | The patch fixes this by initializing reader_list to NULL. | ||
1434 | 1140 | |||
1435 | 1141 | ==2658== Conditional jump or move depends on uninitialised | ||
1436 | 1142 | value(s) ==2658== at 0x40A2EF: RFStartSerialReaders | ||
1437 | 1143 | (readerfactory.c:1324) ==2658== by 0x40743F: main | ||
1438 | 1144 | (pcscdaemon.c:522) ==2658== ==2658== Use of uninitialised value | ||
1439 | 1145 | of size 8 ==2658== at 0x40A2F5: RFStartSerialReaders | ||
1440 | 1146 | (readerfactory.c:1327) ==2658== by 0x40743F: main | ||
1441 | 1147 | (pcscdaemon.c:522) ==2658== ==2658== Conditional jump or move | ||
1442 | 1148 | depends on uninitialised value(s) ==2658== at 0x4C26D25: free | ||
1443 | 1149 | (vg_replace_malloc.c:325) ==2658== by 0x40A404: | ||
1444 | 1150 | RFStartSerialReaders (readerfactory.c:1348) ==2658== by 0x40743F: | ||
1445 | 1151 | main (pcscdaemon.c:522) ==2658== ==2658== Invalid free() / delete | ||
1446 | 1152 | / delete[] ==2658== at 0x4C26D72: free (vg_replace_malloc.c:325) | ||
1447 | 1153 | ==2658== by 0x40A404: RFStartSerialReaders (readerfactory.c:1348) | ||
1448 | 1154 | ==2658== by 0x40743F: main (pcscdaemon.c:522) ==2658== Address | ||
1449 | 1155 | 0x4222148 is not stack'd, malloc'd or (recently) free'd | ||
1450 | 1156 | |||
1451 | 1157 | --- pcsc-lite-1.6.1/src/readerfactory.c.orig2010-07-04 | ||
1452 | 1158 | 23:42:14.000000000 +0300 +++ | ||
1453 | 1159 | pcsc-lite-1.6.1/src/readerfactory.configuration2010-07-04 | ||
1454 | 1160 | 23:42:23.000000000 +0300 @@ -1312,7 +1312,7 @@ void | ||
1455 | 1161 | RFCleanupReaders(void) #ifdef USE_SERIAL int | ||
1456 | 1162 | RFStartSerialReaders(const char *readerconf) { | ||
1457 | 1163 | -readerconfSerialReader *reader_list; +reader_listSerialReader | ||
1458 | 1164 | *reader_list = NULL; int i, rv; /* remember the configuration | ||
1459 | 1165 | filename for * RFReCheckReaderConf() */ | ||
1460 | 1166 | * [r5065] c.sh, configure.in, src/pcscd.h.in: more idiomatic | ||
1461 | 1167 | sysconfdir usage | ||
1462 | 1168 | |||
1463 | 1169 | Thanks to Kalev Lember for the patch | ||
1464 | 1170 | http://archives.neohapsis.com/archives/dev/muscle/2010-q3/0015.html | ||
1465 | 1171 | |||
1466 | 1172 | > URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5060 > Log: | ||
1467 | 1173 | set --sysconfdir=/etc/reader.conf.d so that we parse any file in | ||
1468 | 1174 | > this directory > > [...] > - --sysconfdir=/etc \ > + | ||
1469 | 1175 | --sysconfdir=/etc/reader.conf.d \ | ||
1470 | 1176 | |||
1471 | 1177 | It's more common to set sysconfdir to /etc and have configure | ||
1472 | 1178 | script figure out the subdirectory. The configure script should | ||
1473 | 1179 | always default to sane values when no arguments are specified. | ||
1474 | 1180 | The default value for sysconfdir is /usr/local/etc; so the | ||
1475 | 1181 | configure script should just append /reader.conf.d to that. Right | ||
1476 | 1182 | now if the user doesn't override sysconfdir, pcsc will try to go | ||
1477 | 1183 | through every .conf file in /usr/local/etc, and I don't think | ||
1478 | 1184 | anything good will come out of that. | ||
1479 | 1185 | |||
1480 | 1186 | I have a patch attached which should make it more idiomatic: | ||
1481 | 1187 | default to $sysconfdir/reader.conf.d directory. | ||
1482 | 1188 | |||
1483 | 1189 | 2010-07-02 Ludovic Rousseau | ||
1484 | 1190 | |||
1485 | 1191 | * [r5062] src/pcscd.h.in: remove PCSCLITE_READER_CONFIG now useless | ||
1486 | 1192 | * [r5061] src/pcscdaemon.c: main(): use PCSCLITE_CONFIG_DIR instead | ||
1487 | 1193 | of PCSCLITE_READER_CONFIG to use the directory configured using | ||
1488 | 1194 | --sysconfdir=... | ||
1489 | 1195 | * [r5060] c.sh: set --sysconfdir=/etc/reader.conf.d so that we | ||
1490 | 1196 | parse any file in this directory | ||
1491 | 1197 | * [r5059] src/configfile.l: DBGetReaderListDir(): add a log line | ||
1492 | 1198 | when parsing a directory (containing config files) | ||
1493 | 1199 | * [r5058] src/readerfactory.c, src/readerfactory.h, src/winscard.c: | ||
1494 | 1200 | RFCheckSharing(), RFLockSharing(), RFUnlockSharing() & | ||
1495 | 1201 | RFUnlockAllSharing(): add the READER_CONTEXT * rContext parameter | ||
1496 | 1202 | to avoid recomputing it internally (gain a few CPU cycles) | ||
1497 | 1203 | |||
1498 | 1204 | 2010-06-29 Ludovic Rousseau | ||
1499 | 1205 | |||
1500 | 1206 | * [r5047] src/configfile.h, src/configfile.l, src/debuglog.c, | ||
1501 | 1207 | src/dyn_hpux.c, src/dyn_macosx.c, src/dyn_unix.c, | ||
1502 | 1208 | src/eventhandler.c, src/eventhandler.h, src/hotplug_generic.c, | ||
1503 | 1209 | src/hotplug_libhal.c, src/hotplug_libusb.c, src/hotplug_linux.c, | ||
1504 | 1210 | src/hotplug_macosx.c, src/ifdwrapper.c, src/ifdwrapper.h, | ||
1505 | 1211 | src/pcscdaemon.c, src/readerfactory.c, src/readerfactory.h, | ||
1506 | 1212 | src/sys_generic.h, src/sys_unix.c, src/testpcsc.c, | ||
1507 | 1213 | src/winscard.c, src/winscard_clnt.c, src/winscard_msg.h, | ||
1508 | 1214 | src/winscard_svc.c, src/winscard_svc.h: update copyright date | ||
1509 | 1215 | * [r5046] src/hotplug_libusb.c: Remove declaration of 3 static | ||
1510 | 1216 | functions since they are defined before use. Declaration is then | ||
1511 | 1217 | useless. | ||
1512 | 1218 | * [r5045] configure.in: check for libusb-1.0 instead of libusb-0.1 | ||
1513 | 1219 | * [r5044] src/hotplug_libusb.c: port from libusb-0.1 to libusb-1.0 | ||
1514 | 1220 | |||
1515 | 1221 | 2010-06-25 Ludovic Rousseau | ||
1516 | 1222 | |||
1517 | 1223 | * [r5040] UnitaryTests/MCT_ReaderDirect.py, | ||
1518 | 1224 | UnitaryTests/control_get_firmware.py, | ||
1519 | 1225 | UnitaryTests/control_switch_interface.py, | ||
1520 | 1226 | UnitaryTests/stress_get_firmware.py: use readers() from | ||
1521 | 1227 | smartcard.System instead of smartcard.pcsc.PCSCReader | ||
1522 | 1228 | |||
1523 | 1229 | readers() method is now a staticmethod of the PCSCReader class | ||
1524 | 1230 | since pyscard subversion revision 500. | ||
1525 | 1231 | |||
1526 | 1232 | 2010-06-24 Ludovic Rousseau | ||
1527 | 1233 | |||
1528 | 1234 | * [r5039] src/pcscdaemon.c: signal_trap(): implement a "Forced | ||
1529 | 1235 | suicide" mechanism. | ||
1530 | 1236 | |||
1531 | 1237 | After 3 Ctrl-C without much reaction from pcscd (in fact the | ||
1532 | 1238 | drivers) we force the suicide. Sometimes libusb is blocked in a | ||
1533 | 1239 | kind of dead-lock and kill -9 was the only option. | ||
1534 | 1240 | * [r5038] UnitaryTests/stress_apdu.py, | ||
1535 | 1241 | UnitaryTests/stress_get_firmware.py: - better display the list of | ||
1536 | 1242 | available readers - display the command duration and log to | ||
1537 | 1243 | stderr if the duration is more than 1 second indicating a problem | ||
1538 | 1244 | * [r5037] UnitaryTests/stress_get_firmware.py: get firmware version | ||
1539 | 1245 | of Gemalto readers in loop | ||
1540 | 1246 | * [r5036] UnitaryTests/stress_apdu.py: send an apdu in loop | ||
1541 | 1247 | |||
1542 | 1248 | 2010-06-22 Ludovic Rousseau | ||
1543 | 1249 | |||
1544 | 1250 | * [r5032] src/PCSC/debuglog.h: Add Log5() function | ||
1545 | 1251 | * [r5031] src/PCSC/ifdhandler.h: fix a comment | ||
1546 | 1252 | * [r5029] src/PCSC/ifdhandler.h, src/eventhandler.c: Add support of | ||
1547 | 1253 | TAG_IFD_STOP_POLLING_THREAD to request the stop of the driver | ||
1548 | 1254 | polling function. | ||
1549 | 1255 | |||
1550 | 1256 | 2010-06-21 Ludovic Rousseau | ||
1551 | 1257 | |||
1552 | 1258 | * [r5023] configure.in: Use AC_CHECK_FUNCS() instead of | ||
1553 | 1259 | AC_CHECK_FUNC() to have HAVE_PTHREAD_CANCEL defined when needed. | ||
1554 | 1260 | |||
1555 | 1261 | AC_CHECK_FUNC() defined nothing so HAVE_PTHREAD_CANCEL was not | ||
1556 | 1262 | defined even if pthread_cancel() was available. | ||
1557 | 1263 | |||
1558 | 1264 | 2010-06-17 Ludovic Rousseau | ||
1559 | 1265 | |||
1560 | 1266 | * [r5009] src/pcscdaemon.c: main(): in case of auto exit create a | ||
1561 | 1267 | new session so that Ctrl-C on the application will not also quit | ||
1562 | 1268 | pcscd | ||
1563 | 1269 | |||
1564 | 1270 | Thanks to Thierry Fabre for reporting the bug | ||
1565 | 1271 | |||
1566 | 1272 | 2010-06-13 Ludovic Rousseau | ||
1567 | 1273 | |||
1568 | 1274 | * [r4992] src/winscard_msg.h: typo in comment | ||
1569 | 1275 | |||
1570 | 1276 | 2010-06-12 Ludovic Rousseau | ||
1571 | 1277 | |||
1572 | 1278 | * [r4991] UnitaryTests/SCardBeginTransaction_Disconnect.py, | ||
1573 | 1279 | UnitaryTests/SCardBlockingBehaviourTest.py, | ||
1574 | 1280 | UnitaryTests/SCardCancel.py, UnitaryTests/SCardConnect_DIRECT.py, | ||
1575 | 1281 | UnitaryTests/SCardConnect_DIRECT2.py, | ||
1576 | 1282 | UnitaryTests/SCardExclusiveBehaviour.py, | ||
1577 | 1283 | UnitaryTests/SCardGetAttrib.py, UnitaryTests/SCardReconnect.py, | ||
1578 | 1284 | UnitaryTests/SCard_fork.py, UnitaryTests/ThreadSafe.py, | ||
1579 | 1285 | UnitaryTests/ThreadSafeConnect.py, UnitaryTests/reset_card.py: | ||
1580 | 1286 | return exception from smartcard.pcsc.PCSCExceptions when | ||
1581 | 1287 | appropriate | ||
1582 | 1288 | |||
1583 | 1289 | 2010-06-09 Ludovic Rousseau | ||
1584 | 1290 | |||
1585 | 1291 | * [r4986] src/simclist.c: Avoid a division by 0. Closes [#312555] | ||
1586 | 1292 | simclist bug in pcsc-lite | ||
1587 | 1293 | * [r4985] src/simclist.c, src/simclist.h: update to version version | ||
1588 | 1294 | 1.4.4rc4 Apr 2010 | ||
1589 | 1295 | |||
1590 | 1296 | 2010-06-07 Ludovic Rousseau | ||
1591 | 1297 | |||
1592 | 1298 | * [r4983] src/winscard_clnt.c: SCardEstablishContext(): if pcscd is | ||
1593 | 1299 | stared by libpcsclite then close all file handles except stdin, | ||
1594 | 1300 | stdout and stderr so that pcscd does not confiscate ressources | ||
1595 | 1301 | allocated by the application | ||
1596 | 1302 | |||
1597 | 1303 | Thanks to Thierry Fabre for the bug report | ||
1598 | 1304 | |||
1599 | 1305 | 2010-06-04 Ludovic Rousseau | ||
1600 | 1306 | |||
1601 | 1307 | * [r4978] configure.in: release 1.6.1 | ||
1602 | 1308 | * [r4977] ChangeLog: release 1.6.1 | ||
1603 | 1309 | |||
1604 | 1310 | 2010-06-01 Ludovic Rousseau | ||
1605 | 1311 | |||
1606 | 1312 | * [r4974] src/misc.h, src/strlcpycat.h, src/tokenparser.l: update | ||
1607 | 1313 | copyright date | ||
1608 | 1314 | * [r4969] src/pcscdaemon.c, src/sys_unix.c: pcscd: do not return | ||
1609 | 1315 | before most of the initialisation are done correctly. The idea is | ||
1610 | 1316 | that pcscd can return an error code if the daemon fails to start | ||
1611 | 1317 | correctly (hald not started for example). | ||
1612 | 1318 | |||
1613 | 1319 | Before the patch pcscd became a daemon, then returned 0 (success) | ||
1614 | 1320 | and then continued with the initialisation. If the initialisation | ||
1615 | 1321 | failed it was too late to return an error code. The | ||
1616 | 1322 | /etc/init.d/pcscd script was not aware of the failure. | ||
1617 | 1323 | |||
1618 | 1324 | Closes https://bugzilla.redhat.com/show_bug.cgi?id=580321 | ||
1619 | 1325 | "/usr/sbin/pcscd exit codes broken" | ||
1620 | 1326 | |||
1621 | 1327 | 2010-05-31 Ludovic Rousseau | ||
1622 | 1328 | |||
1623 | 1329 | * [r4968] src/pcscdaemon.c: main(): return EXIT_FAILURE instead of | ||
1624 | 1330 | EXIT_SUCCESS if a unknown argument is passed | ||
1625 | 1331 | |||
1626 | 1332 | 2010-05-29 Ludovic Rousseau | ||
1627 | 1333 | |||
1628 | 1334 | * [r4967] src/winscard_msg.h, src/winscard_svc.c: Avoids a crash if | ||
1629 | 1335 | a client sends a unknown command. | ||
1630 | 1336 | |||
1631 | 1337 | Thanks to Martin Vogt for the bug report | ||
1632 | 1338 | http://archives.neohapsis.com/archives/dev/muscle/2010-q2/0096.html | ||
1633 | 1339 | |||
1634 | 1340 | 2010-05-27 Ludovic Rousseau | ||
1635 | 1341 | |||
1636 | 1342 | * [r4964] src/winscard.c: SCardControl(): do not check for card | ||
1637 | 1343 | events since we are talking to the reader not the card. A smart | ||
1638 | 1344 | card removal should not make SCardControl() fail with | ||
1639 | 1345 | SCARD_W_REMOVED_CARD | ||
1640 | 1346 | |||
1641 | 1347 | 2010-05-20 Ludovic Rousseau | ||
1642 | 1348 | |||
1643 | 1349 | * [r4957] UnitaryTests/SCardGetAttrib.py: get | ||
1644 | 1350 | SCARD_ATTR_VENDOR_IFD_SERIAL_NO PC/SC attribute | ||
1645 | 1351 | |||
1646 | 1352 | 2010-05-18 Ludovic Rousseau | ||
1647 | 1353 | |||
1648 | 1354 | * [r4954] src/PCSC/reader.h.in: Add | ||
1649 | 1355 | PCSCv2_PART10_PROPERTY_bPPDUSupport | ||
1650 | 1356 | * [r4953] | ||
1651 | 1357 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange.py, | ||
1652 | 1358 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py: | ||
1653 | 1359 | Also display the return value of SCardReleaseContext() | ||
1654 | 1360 | * [r4952] src/pcscd.h.in, src/winscard_clnt.c, src/winscard_msg.c, | ||
1655 | 1361 | src/winscard_msg.h, src/winscard_svc.c: MessageSend(), | ||
1656 | 1362 | MessageReceive() & MessageSendWithHeader() do not timeout any | ||
1657 | 1363 | more. If the other side of the socket dies we will get an error | ||
1658 | 1364 | from the kernel. | ||
1659 | 1365 | |||
1660 | 1366 | Add a new MessageReceiveTimeout() to implement | ||
1661 | 1367 | SCardGetStatusChange() with a timeout. | ||
1662 | 1368 | |||
1663 | 1369 | The constants PCSCLITE_WRITE_TIMEOUT & PCSCLITE_READ_TIMEOUT are | ||
1664 | 1370 | now also removed. | ||
1665 | 1371 | |||
1666 | 1372 | The problem was that if a client does nothing during | ||
1667 | 1373 | PCSCLITE_READ_TIMEOUT (120 seconds by default) then pcscd | ||
1668 | 1374 | considers it as a dead client and closes the connection. I guess | ||
1669 | 1375 | this problem was present since the first version of pcsc-lite but | ||
1670 | 1376 | nobody complained before. | ||
1671 | 1377 | |||
1672 | 1378 | Thanks to Thierry Fabre for the bug report. | ||
1673 | 1379 | * [r4951] src/pcscdaemon.c, src/winscard_clnt.c, | ||
1674 | 1380 | src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c, | ||
1675 | 1381 | src/winscard_svc.c: rename SHMfoobar() functions in foobar() | ||
1676 | 1382 | since we do not use shared memory (SHM) anymore | ||
1677 | 1383 | |||
1678 | 1384 | 2010-05-17 Ludovic Rousseau | ||
1679 | 1385 | |||
1680 | 1386 | * [r4949] src/hotplug_libusb.c: Add a synchronisation so that if | ||
1681 | 1387 | pcscd is auto started the initial reader list is available before | ||
1682 | 1388 | the server takes commands from clients. | ||
1683 | 1389 | |||
1684 | 1390 | Before the change early calls of SCardListReaders() returned an | ||
1685 | 1391 | empty list of readers even if a reader was connected. | ||
1686 | 1392 | |||
1687 | 1393 | Thanks to Patrice Angelini for the bug report | ||
1688 | 1394 | * [r4948] etc: Remove etc directory completely - serial readers are | ||
1689 | 1395 | rare => no need for /etc/reader.conf.d/ - pcscd now autostarts => | ||
1690 | 1396 | no need for /etc/init.d/pcscd script or equivalent | ||
1691 | 1397 | * [r4947] Makefile.am, configure.in: Do not install files in /etc | ||
1692 | 1398 | any more. Serial drivers are rare now. | ||
1693 | 1399 | * [r4946] etc/Makefile.am: Use $(sysconfdir_exp) instead of | ||
1694 | 1400 | (removed) $(confdir_exp) | ||
1695 | 1401 | |||
1696 | 1402 | Fixes [#312498] Wrong installation path for reader.conf.d | ||
1697 | 1403 | |||
1698 | 1404 | 2010-05-11 Ludovic Rousseau | ||
1699 | 1405 | |||
1700 | 1406 | * [r4941] UnitaryTests/SCardConnect_DIRECT2.py: Unitary test for | ||
1701 | 1407 | bug fixed in revision 4940 | ||
1702 | 1408 | * [r4940] src/winscard.c: SCardConnect() & SCardReconnect(): do not | ||
1703 | 1409 | reset the cardProtocol in SCARD_SHARE_DIRECT case since the card | ||
1704 | 1410 | have _not_ been reseted. A new PPS negociation would fail. | ||
1705 | 1411 | |||
1706 | 1412 | See SCardConnect_DIRECT2.py for a Unitary Test | ||
1707 | 1413 | |||
1708 | 1414 | 2010-05-05 Ludovic Rousseau | ||
1709 | 1415 | |||
1710 | 1416 | * [r4921] ChangeLog: update date and release for 1.6.0 | ||
1711 | 1417 | * [r4920] ChangeLog, configure.in: release 1.6.0 | ||
1712 | 1418 | |||
1713 | 1419 | 2010-05-04 Ludovic Rousseau | ||
1714 | 1420 | |||
1715 | 1421 | * [r4918] src/pcscdaemon.c: ExitValue default value is now | ||
1716 | 1422 | EXIT_FAILURE instead of EXIT_SUCCESS | ||
1717 | 1423 | * [r4917] src/pcscdaemon.c: main(): remove dead code "used" when no | ||
1718 | 1424 | reader.conf file is found | ||
1719 | 1425 | |||
1720 | 1426 | 2010-05-03 Ludovic Rousseau | ||
1721 | 1427 | |||
1722 | 1428 | * [r4913] src/winscard_clnt.c: SCardEstablishContext(): also log | ||
1723 | 1429 | the binary name if execl() fails | ||
1724 | 1430 | * [r4912] src/eventhandler.c: EHDestroyEventHandler(): use | ||
1725 | 1431 | pthread_cancel() only if it is present (not the case on Android) | ||
1726 | 1432 | * [r4911] configure.in: Add a check for pthread_cancel() (not | ||
1727 | 1433 | present on Android) | ||
1728 | 1434 | * [r4910] src/readerfactory.h: Add missing #include <pthread.h> | ||
1729 | 1435 | |||
1730 | 1436 | Compilation failed on Android but not on my Debian as the libC is | ||
1731 | 1437 | different on the two systems. On Debian sys/types.h defines | ||
1732 | 1438 | pthread types | ||
1733 | 1439 | |||
1734 | 1440 | 2010-04-29 Ludovic Rousseau | ||
1735 | 1441 | |||
1736 | 1442 | * [r4906] src/strlcpycat.h: #include <string.h> on plateform that | ||
1737 | 1443 | have strlcpy() to avoid a warning (Mac OS X and Android) | ||
1738 | 1444 | |||
1739 | 1445 | error.c: In function ‘pcsc_stringify_error’: error.c:64: warning: | ||
1740 | 1446 | implicit declaration of function ‘strlcpy’ error.c:64: warning: | ||
1741 | 1447 | nested extern declaration of ‘strlcpy’ | ||
1742 | 1448 | * [r4905] src/hotplug_linux.c: #include <pthread.h> | ||
1743 | 1449 | |||
1744 | 1450 | Declare pthread_mutex_* functions | ||
1745 | 1451 | * [r4904] src/hotplug_linux.c: #include "utils.h" | ||
1746 | 1452 | |||
1747 | 1453 | Fix hotplug_linux.c:391: error: ‘THREAD_ATTR_DETACHED’ undeclared | ||
1748 | 1454 | (first use in this function) | ||
1749 | 1455 | * [r4903] src/hotplug_libusb.c: HPEstablishUSBNotifications(): do | ||
1750 | 1456 | not call RFReCheckReaderConf if USE_SERIAL is defined. The | ||
1751 | 1457 | function is not defined in this case. | ||
1752 | 1458 | * [r4901] configure.in, src/Makefile.am, src/hotplug_libhal.c, | ||
1753 | 1459 | src/pcscdaemon.c, src/readerfactory.c: Add --disable-serial and | ||
1754 | 1460 | --disable-usb options | ||
1755 | 1461 | |||
1756 | 1462 | --disable-serial removes support of /etc/reader.conf gain: 8.0kB | ||
1757 | 1463 | of .text (12%) and 160 bytes of .bss (4%) for pcscd | ||
1758 | 1464 | |||
1759 | 1465 | --disable-usb removes support of USB hotplug gain: 9.7kB of .text | ||
1760 | 1466 | (14%) and 960 bytes of .bss (23%) for pcscd | ||
1761 | 1467 | |||
1762 | 1468 | If you use both options (and use a static driver configuration) | ||
1763 | 1469 | gain: 17.7kB of .text (26%) and 1152 bytes of .bss (28%) for | ||
1764 | 1470 | pcscd | ||
1765 | 1471 | * [r4900] src/error.c: Define a minimal pcsc_stringify_error() if | ||
1766 | 1472 | NO_LOG is defined. Only the error code in hex is displayed in | ||
1767 | 1473 | this case. | ||
1768 | 1474 | |||
1769 | 1475 | Gain: 2kB of .text (10%) for libpcsclite | ||
1770 | 1476 | * [r4899] src/pcscdaemon.c: main(): fork() only in case of auto | ||
1771 | 1477 | exit to not detach from the terminal if launched in stand alone | ||
1772 | 1478 | forground mode ("pcscd -fda" for example) | ||
1773 | 1479 | |||
1774 | 1480 | 2010-04-22 Ludovic Rousseau | ||
1775 | 1481 | |||
1776 | 1482 | * [r4889] src/pcscdaemon.c: main(): always fork() so that pcscd | ||
1777 | 1483 | always return in --auto-exit mode but do not close stdout yet | ||
1778 | 1484 | since we may need to send logs | ||
1779 | 1485 | * [r4888] src/winscard_clnt.c: SCardEstablishContext(): call | ||
1780 | 1486 | waitpid() to avoid having a defunct pcscd process when pcscd is | ||
1781 | 1487 | auto started by the client. | ||
1782 | 1488 | |||
1783 | 1489 | The process becomes defunct because pcscd calls daemon() and | ||
1784 | 1490 | daemon() does fork() and exit() in the father. The father death | ||
1785 | 1491 | must then be reclaimed by libpcsclite. | ||
1786 | 1492 | |||
1787 | 1493 | Thanks to Patrice Angelini for the bug report | ||
1788 | 1494 | |||
1789 | 1495 | 2010-04-18 Ludovic Rousseau | ||
1790 | 1496 | |||
1791 | 1497 | * [r4885] src/Makefile.am, src/eventhandler.c, | ||
1792 | 1498 | src/hotplug_libhal.c, src/hotplug_libusb.c, src/hotplug_linux.c, | ||
1793 | 1499 | src/ifdwrapper.c, src/pcscdaemon.c, src/readerfactory.c, | ||
1794 | 1500 | src/readerfactory.h, src/thread_generic.h, src/thread_unix.c, | ||
1795 | 1501 | src/winscard.c, src/winscard_clnt.c, src/winscard_svc.c: Directly | ||
1796 | 1502 | use pthread_mutex_* fucntions instead of using wrappers Remove | ||
1797 | 1503 | thread_unix.c and thread_generic.h now useless | ||
1798 | 1504 | * [r4884] src/hotplug_libhal.c, src/hotplug_libusb.c, | ||
1799 | 1505 | src/hotplug_linux.c, src/hotplug_macosx.c, src/readerfactory.h, | ||
1800 | 1506 | src/utils.c, src/winscard_svc.c: Use pthread_t instead of | ||
1801 | 1507 | PCSCLITE_THREAD_T | ||
1802 | 1508 | * [r4883] src/thread_generic.h, src/utils.h: move thread related | ||
1803 | 1509 | definition from thread_generic.h to utils.h | ||
1804 | 1510 | * [r4882] src/eventhandler.c, src/hotplug_libhal.c, | ||
1805 | 1511 | src/hotplug_libusb.c, src/hotplug_linux.c, src/hotplug_macosx.c, | ||
1806 | 1512 | src/thread_generic.h, src/thread_unix.c, src/utils.c, | ||
1807 | 1513 | src/utils.h, src/winscard_svc.c: Directly use pthread_* instead | ||
1808 | 1514 | of SYS_Thread* indirection | ||
1809 | 1515 | |||
1810 | 1516 | Move SYS_ThreadCreate in utils.c. This function is not just one | ||
1811 | 1517 | pthread_* call | ||
1812 | 1518 | |||
1813 | 1519 | 2010-04-16 Ludovic Rousseau | ||
1814 | 1520 | |||
1815 | 1521 | * [r4877] src/thread_unix.c: SYS_ThreadExit(): remove dead code | ||
1816 | 1522 | |||
1817 | 1523 | From Sun Studio CC "thread_unix.c", line 108: warning: statement | ||
1818 | 1524 | not reached | ||
1819 | 1525 | * [r4875] bootstrap: update versions of autotools used | ||
1820 | 1526 | |||
1821 | 1527 | 2010-04-15 Ludovic Rousseau | ||
1822 | 1528 | |||
1823 | 1529 | * [r4874] src/simclist.c: remove ; at end of a { } block defined by | ||
1824 | 1530 | a macro. The Solaris compiler complains with: "simclist.c", line | ||
1825 | 1531 | 1317: warning: syntax error: empty declaration | ||
1826 | 1532 | |||
1827 | 1533 | Thanks to Jörg Schilling for the bug report | ||
1828 | 1534 | * [r4873] src/sys_unix.c: use fork(), close() and chdir() instead | ||
1829 | 1535 | of SYS_Fork(), SYS_CloseFile() and SYS_Chdir() in SYS_Daemon() if | ||
1830 | 1536 | HAVE_DAEMON is not defined (Solaris) | ||
1831 | 1537 | |||
1832 | 1538 | Thanks to Jörg Schilling for the bug report | ||
1833 | 1539 | |||
1834 | 1540 | 2010-04-09 Ludovic Rousseau | ||
1835 | 1541 | |||
1836 | 1542 | * [r4867] src/winscard_svc.c: Log the command return code using | ||
1837 | 1543 | DEBUG (SCARD_S_SUCCESS) or ERROR (every thing else) level | ||
1838 | 1544 | |||
1839 | 1545 | 2010-04-08 Ludovic Rousseau | ||
1840 | 1546 | |||
1841 | 1547 | * [r4866] UnitaryTests/reset_card.py: reset a card using | ||
1842 | 1548 | SCardDisconnect (default) or SCardReconnect (if an argument is | ||
1843 | 1549 | passed) | ||
1844 | 1550 | * [r4865] UnitaryTests/transmit_loop.py: call SCardTransmit in an | ||
1845 | 1551 | endless loop | ||
1846 | 1552 | * [r4864] src/winscard.c: SCardReconnect(): mimic the code from | ||
1847 | 1553 | SCardDisconnect() regarding card event state notifications | ||
1848 | 1554 | (changed in revision 4862). | ||
1849 | 1555 | * [r4863] UnitaryTests/Makefile: no more pcsc_demo target | ||
1850 | 1556 | * [r4862] src/winscard.c: SCardDisconnect(): Set the card event | ||
1851 | 1557 | state to SCARD_RESET _before_ doing the reset. | ||
1852 | 1558 | |||
1853 | 1559 | This will avoid an SCardTransmit from another application between | ||
1854 | 1560 | the card reset and the card event state change. In the | ||
1855 | 1561 | problematic case the SCardTransmit was sending an APDU in T=1 to | ||
1856 | 1562 | a reseted card but not yet configured (IFDHSetProtocolParameters | ||
1857 | 1563 | was not yet called) and still in T=0 (default) | ||
1858 | 1564 | * [r4861] src/winscard.c: SCardConnect() & SCardReconnect(): | ||
1859 | 1565 | correctly log SCARD_PROTOCOL_RAW protocol instead of "unknown" | ||
1860 | 1566 | |||
1861 | 1567 | 2010-04-07 Ludovic Rousseau | ||
1862 | 1568 | |||
1863 | 1569 | * [r4859] src/winscard_msg.c, src/winscard_msg_srv.c: Fix copyright | ||
1864 | 1570 | name and date | ||
1865 | 1571 | * [r4858] src/winscard_msg.c: Doxygen: document SHMMessageReceive() | ||
1866 | 1572 | command argument added in revision 4718 | ||
1867 | 1573 | * [r4857] src/winscard_clnt.c: Doxygen: | ||
1868 | 1574 | SCARD_ATTR_DEVICE_FRIENDLY_NAME is implemented by | ||
1869 | 1575 | SCardGetAttrib() if the IFD Handler (driver) returns | ||
1870 | 1576 | IFD_ERROR_TAG. pcsc-lite then returns the same reader name as | ||
1871 | 1577 | returned by SCardListReaders. | ||
1872 | 1578 | |||
1873 | 1579 | 2010-04-01 Ludovic Rousseau | ||
1874 | 1580 | |||
1875 | 1581 | * [r4851] src/PCSC/reader.h.in: Add PCSCv2_PART10_PROPERTY_* | ||
1876 | 1582 | defines | ||
1877 | 1583 | |||
1878 | 1584 | 2010-03-30 Ludovic Rousseau | ||
1879 | 1585 | |||
1880 | 1586 | * [r4845] src/winscard_clnt.c: SCardEstablishContext(): try to | ||
1881 | 1587 | relaunch pcscd if SCardCheckDaemonAvailability() succeeds but | ||
1882 | 1588 | SCardEstablishContextTH() fails. This happens if pcscd crashed | ||
1883 | 1589 | without cleaning /var/run/pcscd/pcscd.comm | ||
1884 | 1590 | |||
1885 | 1591 | 2010-03-26 Ludovic Rousseau | ||
1886 | 1592 | |||
1887 | 1593 | * [r4843] src/PCSC/reader.h.in: add FEATURE_GET_TLV_PROPERTIES and | ||
1888 | 1594 | FEATURE_CCID_ESC_COMMAND from PC/SC part 10 v2.02.07 March 2010 | ||
1889 | 1595 | |||
1890 | 1596 | 2010-03-22 Ludovic Rousseau | ||
1891 | 1597 | |||
1892 | 1598 | * [r4839] src/pcscdaemon.c: Call at_exit() instead of exit() since | ||
1893 | 1599 | the libC of Android is bogus and atexit() does not work as it | ||
1894 | 1600 | should. | ||
1895 | 1601 | |||
1896 | 1602 | Thanks to Patrice Angelini for the bug report. | ||
1897 | 1603 | * [r4838] src/winscard_clnt.c: SCardCheckDaemonAvailability(): use | ||
1898 | 1604 | stat(2) instead of the now removed SYS_Stat() | ||
1899 | 1605 | |||
1900 | 1606 | 2010-03-19 Ludovic Rousseau | ||
1901 | 1607 | |||
1902 | 1608 | * [r4836] src/configfile.l, src/pcscdaemon.c, src/sys_generic.h, | ||
1903 | 1609 | src/sys_unix.c, src/winscard_msg.c, src/winscard_msg_srv.c, | ||
1904 | 1610 | src/winscard_svc.c: Remove the one line wrappers from sys_unix.c | ||
1905 | 1611 | and use directly the POSIX functions instead. | ||
1906 | 1612 | |||
1907 | 1613 | 2010-03-16 Ludovic Rousseau | ||
1908 | 1614 | |||
1909 | 1615 | * [r4825] src/Makefile.am: Install pcscd as suid so that autostart | ||
1910 | 1616 | works correctly (as root) | ||
1911 | 1617 | * [r4824] TODO: done: remove as much text messages (logs) as | ||
1912 | 1618 | possible | ||
1913 | 1619 | * [r4823] configure.in: Display PCSCLITE_FEATURES | ||
1914 | 1620 | * [r4822] configure.in: Add --enable-embedded (default is no) to | ||
1915 | 1621 | build pcsc-lite for an embedded system. This will activate the | ||
1916 | 1622 | NO_LOG option to disable logging and limit RAM and disk | ||
1917 | 1623 | consumption. | ||
1918 | 1624 | * [r4821] src/PCSC/debuglog.h, src/debug.c, src/debuglog.c, | ||
1919 | 1625 | src/hotplug_libhal.c, src/winscard_svc.c: If NO_LOG is defined | ||
1920 | 1626 | then no log are displayed. The idea is to limit the binaries size | ||
1921 | 1627 | on disk and RAM consumption at execution time. | ||
1922 | 1628 | |||
1923 | 1629 | With NO_LOG defined we gain 26% (17 kB) for the .text segment of | ||
1924 | 1630 | pcscd and 15% (4 kB) for the .text segment of libpcsclite.so (for | ||
1925 | 1631 | i386) | ||
1926 | 1632 | * [r4820] src/utils.c: Include config.h before the other header | ||
1927 | 1633 | files so the configuration set in config.h can be used in the | ||
1928 | 1634 | other header files (NO_LOG for example) | ||
1929 | 1635 | * [r4819] src/configfile.l: Include config.h before the other | ||
1930 | 1636 | header files so the configuration set in config.h can be used in | ||
1931 | 1637 | the other header files (NO_LOG for example) | ||
1932 | 1638 | * [r4818] src/Makefile.am, src/debug.c, src/debug.h, | ||
1933 | 1639 | src/dyn_hpux.c, src/dyn_macosx.c, src/dyn_unix.c, src/sys_unix.c, | ||
1934 | 1640 | src/tokenparser.l, src/utils.c, src/winscard_clnt.c, | ||
1935 | 1641 | src/winscard_msg.c: Remove debug.h and use debuglog.h instead. | ||
1936 | 1642 | They both define the same log API. | ||
1937 | 1643 | |||
1938 | 1644 | 2010-03-12 Ludovic Rousseau | ||
1939 | 1645 | |||
1940 | 1646 | * [r4813] UnitaryTests/ThreadSafe.py, | ||
1941 | 1647 | UnitaryTests/ThreadSafeConnect.py: revert change in revision 4812 | ||
1942 | 1648 | since the problem is now solved in pyscard (revision 382) | ||
1943 | 1649 | * [r4812] UnitaryTests/ThreadSafe.py, | ||
1944 | 1650 | UnitaryTests/ThreadSafeConnect.py: do not initialise the library | ||
1945 | 1651 | in a thread as it crashed on Mac OS X | ||
1946 | 1652 | |||
1947 | 1653 | 2010-03-09 Ludovic Rousseau | ||
1948 | 1654 | |||
1949 | 1655 | * [r4809] src/winscard_svc.c: read only accesses to contextsList | ||
1950 | 1656 | list shall also be protected by a mutex | ||
1951 | 1657 | * [r4808] src/readerfactory.c: read only accesses to handlesList | ||
1952 | 1658 | list shall also be protected by a mutex | ||
1953 | 1659 | * [r4807] src/readerfactory.c, src/readerfactory.h: manipulations | ||
1954 | 1660 | of handlesList field of ReaderContext should now be thread safe | ||
1955 | 1661 | * [r4806] src/winscard_svc.c: MSGRemoveContext(): correctly indent | ||
1956 | 1662 | a line | ||
1957 | 1663 | * [r4805] src/winscard_svc.c: manipulations of cardsList should now | ||
1958 | 1664 | be thread safe | ||
1959 | 1665 | * [r4804] src/winscard_svc.c: remove extra tab | ||
1960 | 1666 | * [r4803] UnitaryTests/ThreadSafeConnect.py: add more logging | ||
1961 | 1667 | * [r4802] UnitaryTests/ThreadSafeConnect.py: stress thread safeness | ||
1962 | 1668 | of SCardConnect/SCardDisconnect | ||
1963 | 1669 | * [r4801] src/winscard_svc.c: manipulations of contextsList should | ||
1964 | 1670 | now be thread safe | ||
1965 | 1671 | * [r4800] UnitaryTests/ThreadSafe.py: stress thread safeness | ||
1966 | 1672 | |||
1967 | 1673 | 2010-03-04 Ludovic Rousseau | ||
1968 | 1674 | |||
1969 | 1675 | * [r4793] UnitaryTests/SCardBlockingBehaviourTest.py, | ||
1970 | 1676 | UnitaryTests/SCardExclusiveBehaviour.py: make pylint happier | ||
1971 | 1677 | * [r4792] UnitaryTests/MCT_ReaderDirect.py: make pylint happier | ||
1972 | 1678 | * [r4791] UnitaryTests/control_get_firmware.py: make pylint happy | ||
1973 | 1679 | * [r4790] UnitaryTests/control_get_firmware.py: remove useless | ||
1974 | 1680 | import | ||
1975 | 1681 | * [r4789] UnitaryTests/MCT_ReaderDirect.py, | ||
1976 | 1682 | UnitaryTests/control_get_firmware.py, | ||
1977 | 1683 | UnitaryTests/control_switch_interface.py: use list comprehension | ||
1978 | 1684 | instead of map() (more efficient and pylint does not like map()) | ||
1979 | 1685 | |||
1980 | 1686 | 2010-03-03 Ludovic Rousseau | ||
1981 | 1687 | |||
1982 | 1688 | * [r4788] UnitaryTests/control_switch_interface.py: make pylint | ||
1983 | 1689 | happier | ||
1984 | 1690 | |||
1985 | 1691 | 2010-03-02 Ludovic Rousseau | ||
1986 | 1692 | |||
1987 | 1693 | * [r4784] src/debuglog.c: debuglog.c is only used by pcscd. So no | ||
1988 | 1694 | need to use #ifdef PCSCD | ||
1989 | 1695 | |||
1990 | 1696 | 2010-03-01 Ludovic Rousseau | ||
1991 | 1697 | |||
1992 | 1698 | * [r4783] TODO: fix typo | ||
1993 | 1699 | |||
1994 | 1700 | 2010-02-26 Ludovic Rousseau | ||
1995 | 1701 | |||
1996 | 1702 | * [r4779] configure.in, doc/Makefile.am, | ||
1997 | 1703 | doc/update-reader.conf.8.in, etc/Makefile.am, | ||
1998 | 1704 | etc/update-reader.conf.in, src/configfile.h, src/configfile.l, | ||
1999 | 1705 | src/readerfactory.c: Add the ability to parse all the | ||
2000 | 1706 | configuration files of a directory instead of just one | ||
2001 | 1707 | configuration file. update-reader.conf is then now obsolete. | ||
2002 | 1708 | |||
2003 | 1709 | See Debian bug #565896 http://bugs.debian.org/565896 | ||
2004 | 1710 | |||
2005 | 1711 | 2010-02-25 Ludovic Rousseau | ||
2006 | 1712 | |||
2007 | 1713 | * [r4778] src/pcscdaemon.c: update copyright | ||
2008 | 1714 | |||
2009 | 1715 | 2010-02-23 Ludovic Rousseau | ||
2010 | 1716 | |||
2011 | 1717 | * [r4769] src/winscard_clnt.c: SCardEstablishContextTH() & | ||
2012 | 1718 | SCardGetStatusChange(): completly initialize structures sent to | ||
2013 | 1719 | the daemon to avoid a valgrind warning: Syscall param | ||
2014 | 1720 | socketcall.send(msg) points to uninitialised byte(s) | ||
2015 | 1721 | * [r4768] UnitaryTests/SCardBlockingBehaviourTest.py: As of | ||
2016 | 1722 | revision r4719 Linux is now Windows "compatible" | ||
2017 | 1723 | |||
2018 | 1724 | 2010-02-21 Ludovic Rousseau | ||
2019 | 1725 | |||
2020 | 1726 | * [r4766] src/misc.h: " The gcc on Solaris 10 combined with the Sun | ||
2021 | 1727 | loader appears to not handle the gcc visibility attribute | ||
2022 | 1728 | correctly. The sparc version says it is ignored, the x86 version | ||
2023 | 1729 | gives linker error. The attached patch sun.gcc.1.5.6-svn-477.txt | ||
2024 | 1730 | tries to test for gcc on Sun and not use the visibility | ||
2025 | 1731 | attribute. If on a sun and the compiler is not GCC, try and use | ||
2026 | 1732 | the Sun __global and __hidden instead. (I did not try the Sun | ||
2027 | 1733 | Studio compiler with this.) " | ||
2028 | 1734 | |||
2029 | 1735 | Thanks to Douglas E. Engert for the patch | ||
2030 | 1736 | http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0127.html | ||
2031 | 1737 | * [r4765] doc/pcscd.8.in: use @sysconfdir_exp@ instead of (removed) | ||
2032 | 1738 | @confdir@ | ||
2033 | 1739 | |||
2034 | 1740 | 2010-02-12 Ludovic Rousseau | ||
2035 | 1741 | |||
2036 | 1742 | * [r4758] src/readerfactory.c: RFStartSerialReaders(): typo in | ||
2037 | 1743 | comment | ||
2038 | 1744 | * [r4756] src/configfile.l, src/tokenparser.l: Fix 2 compilation | ||
2039 | 1745 | warnings | ||
2040 | 1746 | |||
2041 | 1747 | configfile.c:1151: warning: ‘input’ defined but not used | ||
2042 | 1748 | tokenparser.c:1167: warning: ‘input’ defined but not used | ||
2043 | 1749 | * [r4755] src/lassert.h: Fix splint error | ||
2044 | 1750 | src/pcsc-wirecheck-dist.c:19:164: Body of if clause of if | ||
2045 | 1751 | statement is empty | ||
2046 | 1752 | * [r4754] src/hotplug_libhal.c: HPAddDevice(): fix a memory leak | ||
2047 | 1753 | * [r4753] src/readerfactory.c: RFRemoveReader(): simplify/factorise | ||
2048 | 1754 | the resources deallocation | ||
2049 | 1755 | |||
2050 | 1756 | 2010-02-10 Ludovic Rousseau | ||
2051 | 1757 | |||
2052 | 1758 | * [r4751] etc/update-reader.conf.in: use @sysconfdir@ instead of | ||
2053 | 1759 | (the now removed) @confdir@ | ||
2054 | 1760 | |||
2055 | 1761 | Thanks to Sébastien Lorquet for the bug report | ||
2056 | 1762 | http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0098.html | ||
2057 | 1763 | |||
2058 | 1764 | 2010-02-09 Ludovic Rousseau | ||
2059 | 1765 | |||
2060 | 1766 | * [r4744] src/readerfactory.c, src/readerfactory.h: use a dynamic | ||
2061 | 1767 | instead of static allocation for lpcDevice | ||
2062 | 1768 | * [r4743] src/readerfactory.c: RFAddReader(): allocate an int | ||
2063 | 1769 | instead of a DWORD for pFeeds | ||
2064 | 1770 | |||
2065 | 1771 | The patch in revision 4741 was not complete | ||
2066 | 1772 | * [r4742] src/readerfactory.c, src/readerfactory.h: In struct | ||
2067 | 1773 | ReaderContext rename pdwMutex to pMutex and change type from | ||
2068 | 1774 | PDWORD to int * | ||
2069 | 1775 | * [r4741] src/readerfactory.c, src/readerfactory.h: In struct | ||
2070 | 1776 | ReaderContext rename pdwFeeds to pFeeds and change type from | ||
2071 | 1777 | PDWORD to int * | ||
2072 | 1778 | * [r4740] src/readerfactory.c, src/readerfactory.h: In struct | ||
2073 | 1779 | ReaderContext remove the now useless dwBlockStatus field | ||
2074 | 1780 | * [r4739] src/eventhandler.c, src/ifdwrapper.c, | ||
2075 | 1781 | src/readerfactory.c, src/readerfactory.h, src/winscard.c: In | ||
2076 | 1782 | struct ReaderContext rename dwSlot to slot and change type from | ||
2077 | 1783 | DWORD to int | ||
2078 | 1784 | * [r4738] src/ifdwrapper.c, src/readerfactory.c, | ||
2079 | 1785 | src/readerfactory.h, src/winscard.c: In struct ReaderContext | ||
2080 | 1786 | rename dwVersion to version and change type from DWORD to int | ||
2081 | 1787 | * [r4737] src/ifdwrapper.c, src/readerfactory.c, | ||
2082 | 1788 | src/readerfactory.h: In struct ReaderContext change dwPort from | ||
2083 | 1789 | DWORD to int and rename it to port | ||
2084 | 1790 | |||
2085 | 1791 | Fix a compiler warning readerfactory.c: In function | ||
2086 | 1792 | ‘RFReCheckReaderConf’: readerfactory.c:1393: warning: comparison | ||
2087 | 1793 | between signed and unsigned | ||
2088 | 1794 | * [r4736] src/tokenparser.l: Fix compiler warning | ||
2089 | 1795 | |||
2090 | 1796 | tokenparser.l: In function ‘tperrorCheck’: tokenparser.l:102: | ||
2091 | 1797 | warning: unused parameter ‘token_error’ | ||
2092 | 1798 | * [r4735] src/configfile.l, src/readerfactory.c, | ||
2093 | 1799 | src/readerfactory.h: In struct SerialReader rename dwChannelId in | ||
2094 | 1800 | channelId since it is an int and no more a DWORD | ||
2095 | 1801 | * [r4734] src/eventhandler.c: Fix a compiler warning | ||
2096 | 1802 | |||
2097 | 1803 | eventhandler.c: In function ‘EHStatusHandlerThread’: | ||
2098 | 1804 | eventhandler.c:494: warning: comparison between signed and | ||
2099 | 1805 | unsigned | ||
2100 | 1806 | * [r4733] src/winscard_clnt.c: do not use the uint32_t rv structure | ||
2101 | 1807 | field but copy it into rv first to avoid a compiler warning | ||
2102 | 1808 | |||
2103 | 1809 | winscard_clnt.c: In function ?SCardReconnect?: | ||
2104 | 1810 | winscard_clnt.c:1035: warning: comparison between signed and | ||
2105 | 1811 | unsigned winscard_clnt.c: In function ?SCardBeginTransaction?: | ||
2106 | 1812 | winscard_clnt.c:1254: warning: comparison between signed and | ||
2107 | 1813 | unsigned winscard_clnt.c: In function ?SCardStatus?: | ||
2108 | 1814 | winscard_clnt.c:1657: warning: comparison between signed and | ||
2109 | 1815 | unsigned winscard_clnt.c: In function ?SCardTransmit?: | ||
2110 | 1816 | winscard_clnt.c:2939: warning: comparison between signed and | ||
2111 | 1817 | unsigned | ||
2112 | 1818 | * [r4732] src/PCSC/pcsclite.h.in: force the return codes SCARD_* to | ||
2113 | 1819 | be long since the SCard* functions return a LONG type | ||
2114 | 1820 | * [r4731] src/eventhandler.c, src/readerfactory.c, | ||
2115 | 1821 | src/readerfactory.h, src/winscard.c, src/winscard_svc.c: In | ||
2116 | 1822 | struct ReaderContext dwLockId is used to store a SCARDHANDLE so | ||
2117 | 1823 | change its type from DWORD to SCARDHANDLE and rename the field to | ||
2118 | 1824 | hLockId | ||
2119 | 1825 | |||
2120 | 1826 | Fix 2 compiler warning: winscard.c: In function | ||
2121 | 1827 | 'SCardDisconnect': winscard.c:847: warning: comparison between | ||
2122 | 1828 | signed and unsigned winscard_svc.c: In function | ||
2123 | 1829 | 'MSGRemoveContext': winscard_svc.c:807: warning: comparison | ||
2124 | 1830 | between signed and unsigned | ||
2125 | 1831 | * [r4730] src/winscard_msg.c: fix a compilation warning | ||
2126 | 1832 | |||
2127 | 1833 | winscard_msg.c: In function ‘SHMMessageReceive’: | ||
2128 | 1834 | winscard_msg.c:252: warning: unused parameter ‘command’ | ||
2129 | 1835 | * [r4729] src/winscard_svc.c: fix 2 compilation warnings | ||
2130 | 1836 | |||
2131 | 1837 | winscard_svc.c: In function ‘MSGRemoveContext’: | ||
2132 | 1838 | winscard_svc.c:776: warning: comparison between signed and | ||
2133 | 1839 | unsigned winscard_svc.c: In function ‘MSGAddHandle’: | ||
2134 | 1840 | winscard_svc.c:848: warning: comparison between signed and | ||
2135 | 1841 | unsigned | ||
2136 | 1842 | * [r4728] src/eventhandler.h, src/winscard_clnt.c: Use READER_STATE | ||
2137 | 1843 | * instead of PREADER_STATE to make it explicit it is a pointer | ||
2138 | 1844 | * [r4727] src/eventhandler.c, src/eventhandler.h, src/ifdwrapper.c, | ||
2139 | 1845 | src/ifdwrapper.h, src/readerfactory.c, src/readerfactory.h, | ||
2140 | 1846 | src/winscard.c, src/winscard_svc.c: Use READER_CONTEXT * instead | ||
2141 | 1847 | of PREADER_CONTEXT to make it explicit it is a pointer | ||
2142 | 1848 | * [r4726] src/readerfactory.c: Fix a compilation warning | ||
2143 | 1849 | |||
2144 | 1850 | readerfactory.c: In function ‘RFAddReaderHandle’: | ||
2145 | 1851 | readerfactory.c:1125: warning: comparison between signed and | ||
2146 | 1852 | unsigned | ||
2147 | 1853 | * [r4725] src/eventhandler.c, src/readerfactory.c, | ||
2148 | 1854 | src/readerfactory.h, src/winscard.c: In struct ReaderContext | ||
2149 | 1855 | rename "dwContexts" to "contexts" since it is no more a DWORD but | ||
2150 | 1856 | a int32_t | ||
2151 | 1857 | * [r4724] src/winscard_clnt.c: Fix a compilation warning | ||
2152 | 1858 | |||
2153 | 1859 | winscard_clnt.c: In function ‘SCardListReaderGroups’: | ||
2154 | 1860 | winscard_clnt.c:3258: warning: comparison between signed and | ||
2155 | 1861 | unsigned | ||
2156 | 1862 | * [r4723] src/pcscd.h.in, src/readerfactory.c, src/readerfactory.h: | ||
2157 | 1863 | Use dynamic instead of static allocation for the driver library | ||
2158 | 1864 | filename. The filename is no more limited to 100 characters. | ||
2159 | 1865 | |||
2160 | 1866 | Closes: [#312332] MAX_LIBNAME too short? | ||
2161 | 1867 | * [r4722] src/pcscdaemon.c, src/winscard_svc.c, src/winscard_svc.h: | ||
2162 | 1868 | use int instead of unsigned int for customMaxThreadCounter, | ||
2163 | 1869 | customMaxReaderHandles and customMaxThreadCardHandles since | ||
2164 | 1870 | list_size() returns an int and we compare the two values (avoid | ||
2165 | 1871 | sign mismatch) | ||
2166 | 1872 | * [r4721] src/winscard_svc.c: fix 2 compilation warnings | ||
2167 | 1873 | |||
2168 | 1874 | winscard_svc.c: In function ‘CreateContextThread’: | ||
2169 | 1875 | winscard_svc.c:146: warning: comparison between signed and | ||
2170 | 1876 | unsigned winscard_svc.c: In function ‘MSGAddHandle’: | ||
2171 | 1877 | winscard_svc.c:856: warning: comparison between signed and | ||
2172 | 1878 | unsigned | ||
2173 | 1879 | |||
2174 | 1880 | 2010-02-08 Ludovic Rousseau | ||
2175 | 1881 | |||
2176 | 1882 | * [r4720] src/winscard_clnt.c: SCardGetStatusChange(): fix 4 | ||
2177 | 1883 | compilation warnings | ||
2178 | 1884 | |||
2179 | 1885 | winscard_clnt.c: In function ‘SCardGetStatusChange’: | ||
2180 | 1886 | winscard_clnt.c:1864: warning: comparison between signed and | ||
2181 | 1887 | unsigned winscard_clnt.c:1875: warning: comparison between signed | ||
2182 | 1888 | and unsigned winscard_clnt.c:1911: warning: comparison between | ||
2183 | 1889 | signed and unsigned winscard_clnt.c:2189: warning: comparison | ||
2184 | 1890 | between signed and unsigned | ||
2185 | 1891 | * [r4719] src/winscard_clnt.c: Make SCardReconnect(), SCardStatus() | ||
2186 | 1892 | and SCardTransmit() block instead of returning | ||
2187 | 1893 | SCARD_E_SHARING_VIOLATION immediately. These functions will then | ||
2188 | 1894 | behave like on Windows. | ||
2189 | 1895 | |||
2190 | 1896 | This can happen if these functions are called when the reader is | ||
2191 | 1897 | locked by a PCSC transaction | ||
2192 | 1898 | (SCardBeginTransaction/SCardEndTransaction). | ||
2193 | 1899 | |||
2194 | 1900 | You can define the environment variable PCSCLITE_NO_BLOCKING to | ||
2195 | 1901 | use the old behavior. | ||
2196 | 1902 | |||
2197 | 1903 | Thanks to Jean-Luc Giraud for the patch. | ||
2198 | 1904 | http://archives.neohapsis.com/archives/dev/muscle/2010-q1/0041.html | ||
2199 | 1905 | * [r4718] src/winscard_clnt.c, src/winscard_msg.c, | ||
2200 | 1906 | src/winscard_msg.h, src/winscard_svc.c: add a command parameter | ||
2201 | 1907 | to SHMMessageReceive() to be able log the ongoing command in case | ||
2202 | 1908 | of problem | ||
2203 | 1909 | |||
2204 | 1910 | 2010-02-05 Ludovic Rousseau | ||
2205 | 1911 | |||
2206 | 1912 | * [r4717] UnitaryTests/SCardExclusiveBehaviour.py: Check the return | ||
2207 | 1913 | value of SCardConnect() on a reader already used in | ||
2208 | 1914 | SCARD_SHARE_EXCLUSIVE mode | ||
2209 | 1915 | * [r4716] src/winscard.c: fix a bug introduced by the previous | ||
2210 | 1916 | revision | ||
2211 | 1917 | * [r4715] src/winscard.c: SCardGetAttrib(): check for buffer | ||
2212 | 1918 | overflow with SCARD_ATTR_DEVICE_FRIENDLY_NAME | ||
2213 | 1919 | |||
2214 | 1920 | Thanks to Jean-Luc Giraud for complete | ||
2215 | 1921 | SCARD_ATTR_DEVICE_FRIENDLY_NAME patch | ||
2216 | 1922 | |||
2217 | 1923 | 2010-02-04 Ludovic Rousseau | ||
2218 | 1924 | |||
2219 | 1925 | * [r4710] src/PCSC/pcsclite.h.in, src/winscard_clnt.c: add a | ||
2220 | 1926 | copyright for Martin Paljak | ||
2221 | 1927 | |||
2222 | 1928 | 2010-02-03 Ludovic Rousseau | ||
2223 | 1929 | |||
2224 | 1930 | * [r4708] configure.in, src/pcscd.h.in: Use the standard | ||
2225 | 1931 | --sysconfdir=DIR ($prefix/etc by default) instead of | ||
2226 | 1932 | --enable-confdir=DIR for defining the directory containing | ||
2227 | 1933 | reader.conf | ||
2228 | 1934 | * [r4707] configure.in: sysconfdir_exp is a configuration directory | ||
2229 | 1935 | not configuration file | ||
2230 | 1936 | |||
2231 | 1937 | 2010-02-02 Ludovic Rousseau | ||
2232 | 1938 | |||
2233 | 1939 | * [r4705] src/winscard.c: SCardStatus(): returns | ||
2234 | 1940 | SCARD_E_SHARING_VIOLATION if the reader is already used More | ||
2235 | 1941 | conform to Windows | ||
2236 | 1942 | * [r4704] UnitaryTests/SCardBlockingBehaviourTest.py: allow to use | ||
2237 | 1943 | any reader and not just the first one | ||
2238 | 1944 | * [r4703] src/testpcsc.c: test SCARD_ATTR_DEVICE_FRIENDLY_NAME | ||
2239 | 1945 | * [r4702] src/winscard.c: SCardGetAttrib(): add support of | ||
2240 | 1946 | SCARD_ATTR_DEVICE_FRIENDLY_NAME as it is better implemented in | ||
2241 | 1947 | pcscd (it knows the friendly name) | ||
2242 | 1948 | * [r4701] src/winscard_clnt.c: SCardEstablishContext(): set | ||
2243 | 1949 | PCSCLITE_PCSCD_ARGS with the argument you want to pass to pcscd | ||
2244 | 1950 | in autostart Only one argument is passed. The space character is | ||
2245 | 1951 | not a separator. example: export PCSCLITE_PCSCD_ARGS=-dfa | ||
2246 | 1952 | * [r4700] src/pcscd.h.in, src/pcscdaemon.c, src/winscard_clnt.c, | ||
2247 | 1953 | src/winscard_svc.c: pcscd will suicide itself after 60 seconds of | ||
2248 | 1954 | inactivity if it is started using --auto-exit This is the default | ||
2249 | 1955 | behavior when pcscd is started by libpcsclite | ||
2250 | 1956 | * [r4699] src/pcscdaemon.c: do not ignore the SIGALRM signal any | ||
2251 | 1957 | more since we need it for the auto exit feature | ||
2252 | 1958 | |||
2253 | 1959 | 2010-01-22 Ludovic Rousseau | ||
2254 | 1960 | |||
2255 | 1961 | * [r4685] configure.in: add $host to the PCSCLITE_FEATURES | ||
2256 | 1962 | definition (available with "pcscd -v") to display the CPU | ||
2257 | 1963 | architecture host is something like x86_64-unknown-linux-gnu | ||
2258 | 1964 | * [r4683] configure.in: use LT_INIT(disable-static) instead of the | ||
2259 | 1965 | deprecated AM_DISABLE_STATIC | ||
2260 | 1966 | |||
2261 | 1967 | Thanks to Roumen Petrov | ||
2262 | 1968 | |||
2263 | 1969 | 2010-01-21 Ludovic Rousseau | ||
2264 | 1970 | |||
2265 | 1971 | * [r4682] UnitaryTests/MCT_ReaderDirect.py, | ||
2266 | 1972 | UnitaryTests/control_get_firmware.py, | ||
2267 | 1973 | UnitaryTests/control_switch_interface.py: do not try to reset the | ||
2268 | 1974 | card on exit. We are talking to the reader. A card may NOT be | ||
2269 | 1975 | present. | ||
2270 | 1976 | * [r4681] configure.in, src/Makefile.am: Do not completely disable | ||
2271 | 1977 | building the static version of the library but just disable it by | ||
2272 | 1978 | default | ||
2273 | 1979 | |||
2274 | 1980 | Use AM_DISABLE_STATIC in configure.in instead of -shared in | ||
2275 | 1981 | Makefile.am | ||
2276 | 1982 | |||
2277 | 1983 | 2010-01-16 Ludovic Rousseau | ||
2278 | 1984 | |||
2279 | 1985 | * [r4674] UnitaryTests/SCardBlockingBehaviourTest.py: Check the | ||
2280 | 1986 | behavior of PCSC functions when a PCSC transaction is ongoing | ||
2281 | 1987 | |||
2282 | 1988 | Thanks to Jean-Luc Giraud for the original code | ||
2283 | 1989 | * [r4673] src/Makefile.am: use -shared to only provide a shared | ||
2284 | 1990 | library. If you need to use the static .a library you just need | ||
2285 | 1991 | to remove -shared | ||
2286 | 1992 | |||
2287 | 1993 | 2010-01-15 Ludovic Rousseau | ||
2288 | 1994 | |||
2289 | 1995 | * [r4672] UnitaryTests/control_switch_interface.py: parse error | ||
2290 | 1996 | code | ||
2291 | 1997 | * [r4671] UnitaryTests/control_switch_interface.py: improve | ||
2292 | 1998 | documentation and output | ||
2293 | 1999 | * [r4670] src/winscard_clnt.c: Only call SCardCheckSameProcess() if | ||
2294 | 2000 | DO_CHECK_SAME_PROCESS is defined (default is not defined). | ||
2295 | 2001 | |||
2296 | 2002 | Some thread libraries (on embedded systems for example) have a | ||
2297 | 2003 | different pid for each thread of a same process. So the check | ||
2298 | 2004 | using getpid() is wrong and handles are invalidated when they | ||
2299 | 2005 | should not. The PC/SC function returned SCARD_E_INVALID_HANDLE | ||
2300 | 2006 | * [r4669] src/winscard_clnt.c: define and use the | ||
2301 | 2007 | CHECK_SAME_PROCESS macro instead of calling | ||
2302 | 2008 | SCardCheckSameProcess() directly | ||
2303 | 2009 | |||
2304 | 2010 | 2010-01-14 Ludovic Rousseau | ||
2305 | 2011 | |||
2306 | 2012 | * [r4668] src/winscard_clnt.c: Doxygen: update | ||
2307 | 2013 | SCardGetStatusChange() doc. The function returns on any events, | ||
2308 | 2014 | not just those specified in dwCurrentState | ||
2309 | 2015 | * [r4667] TODO: For embedded/constained systems | ||
2310 | 2016 | |||
2311 | 2017 | - remove as much text messages (logs) as possible to limit the | ||
2312 | 2018 | size of the binaries (pcscd and libpcsclite) | ||
2313 | 2019 | |||
2314 | 2020 | - use static driver instead of reader polling and dynamic driver | ||
2315 | 2021 | loading | ||
2316 | 2022 | |||
2317 | 2023 | 2010-01-08 Ludovic Rousseau | ||
2318 | 2024 | |||
2319 | 2025 | * [r4646] src/readerfactory.c: RFInitializeReader(): do not | ||
2320 | 2026 | dynamically load the driver if PCSCLITE_STATIC_DRIVER is defined | ||
2321 | 2027 | * [r4645] src/ifdwrapper.c: better support of | ||
2322 | 2028 | PCSCLITE_STATIC_DRIVER. | ||
2323 | 2029 | |||
2324 | 2030 | This is used to statically link the reader driver to pcscd. Since | ||
2325 | 2031 | the link is static you must define the IFDHandler API version at | ||
2326 | 2032 | compilation time. Either define IFDHANDLERv1, IFDHANDLERv2 or | ||
2327 | 2033 | IFDHANDLERv3 | ||
2328 | 2034 | * [r4644] src/dyn_unix.c: fix a warning when compiling with | ||
2329 | 2035 | PCSCLITE_STATIC_DRIVER defined | ||
2330 | 2036 | |||
2331 | 2037 | dyn_unix.c: In function ‘DYN_CloseLibrary’: dyn_unix.c:47: | ||
2332 | 2038 | warning: unused variable ‘ret’ | ||
2333 | 2039 | |||
2334 | 2040 | 2010-01-03 Ludovic Rousseau | ||
2335 | 2041 | |||
2336 | 2042 | * [r4635] src/hotplug_macosx.c: hotplug_macosx.c: In function | ||
2337 | 2043 | ‘HPDeviceAppeared’: hotplug_macosx.c:70: warning: unused | ||
2338 | 2044 | parameter ‘refCon’ hotplug_macosx.c: In function | ||
2339 | 2045 | ‘HPDeviceDisappeared’: hotplug_macosx.c:85: warning: unused | ||
2340 | 2046 | parameter ‘refCon’ | ||
2341 | 2047 | |||
2342 | 2048 | 2010-01-02 Ludovic Rousseau | ||
2343 | 2049 | |||
2344 | 2050 | * [r4634] src/simclist.c: fix a compilation warning | ||
2345 | 2051 | simclist.c:1335: warning: unused parameter ‘el’ | ||
2346 | 2052 | * [r4633] src/error.c: pcsc_stringify_error(): spelling error | ||
2347 | 2053 | (detected by lintian(1)) | ||
2348 | 2054 | |||
2349 | 2055 | 2010-01-01 Ludovic Rousseau | ||
2350 | 2056 | |||
2351 | 2057 | * [r4630] src/ifdwrapper.c: add #include <unistd.h> to declare the | ||
2352 | 2058 | timeval structure | ||
2353 | 2059 | |||
2354 | 2060 | In file included from ifdwrapper.c:31: utils.h:26: warning: | ||
2355 | 2061 | ‘struct timeval’ declared inside parameter list utils.h:26: | ||
2356 | 2062 | warning: its scope is only this definition or declaration, which | ||
2357 | 2063 | is probably not what you want | ||
2358 | 2064 | * [r4629] src/dyn_unix.c, src/ifdwrapper.c, src/pcscdaemon.c: | ||
2359 | 2065 | better handling of PCSCLITE_STATIC_DRIVER as can be used on | ||
2360 | 2066 | plateforms using µClinux (without dynamic loader) | ||
2361 | 2067 | |||
2362 | 2068 | Thanks to Guo Wenxue for a proto-patch | ||
2363 | 2069 | * [r4628] src/hotplug_generic.c, src/hotplug_linux.c, | ||
2364 | 2070 | src/hotplug_macosx.c: ReCheckSerialReaders variable is not used | ||
2365 | 2071 | anymore | ||
2366 | 2072 | * [r4627] src/winscard_msg_srv.c: ReCheckSerialReaders variable | ||
2367 | 2073 | from hotplug_* is not used anymore | ||
2368 | 2074 | |||
2369 | 2075 | 2009-12-18 Ludovic Rousseau | ||
2370 | 2076 | |||
2371 | 2077 | * [r4621] src/winscard_svc.c: typo in log message | ||
2372 | 2078 | |||
2373 | 2079 | 2009-12-15 Ludovic Rousseau | ||
2374 | 2080 | |||
2375 | 2081 | * [r4616] src/atrhandler.c: ATRDecodeAtr(): reformat | ||
2376 | 2082 | * [r4615] src/atrhandler.c: ATRDecodeAtr(): check for TA2 (specific | ||
2377 | 2083 | mode) even if TD2 is not present "3F 80 10 01" was not parsed | ||
2378 | 2084 | correctly for example and T=0 was used instead of T=1 (specific | ||
2379 | 2085 | mode) | ||
2380 | 2086 | * [r4613] UnitaryTests/MCT_ReaderDirect.py: rename | ||
2381 | 2087 | FEATURE_MCT_READERDIRECT in FEATURE_MCT_READER_DIRECT | ||
2382 | 2088 | * [r4612] src/PCSC/reader.h.in: rename FEATURE_MCT_READERDIRECT in | ||
2383 | 2089 | FEATURE_MCT_READER_DIRECT to be conform with ch. 2.3 of PCSC v2 | ||
2384 | 2090 | part 10 | ||
2385 | 2091 | |||
2386 | 2092 | 2009-12-14 Ludovic Rousseau | ||
2387 | 2093 | |||
2388 | 2094 | * [r4611] UnitaryTests/SCard_fork.py: Unitary Test for fork() | ||
2389 | 2095 | detection | ||
2390 | 2096 | |||
2391 | 2097 | 2009-12-11 Ludovic Rousseau | ||
2392 | 2098 | |||
2393 | 2099 | * [r4608] src/winscard_clnt.c: Doxygen: add missing error codes | ||
2394 | 2100 | * [r4607] src/winscard_svc.c: ContextThread(): SCARD_CANCEL return | ||
2395 | 2101 | SCARD_E_INVALID_HANDLE instead of SCARD_E_INVALID_VALUE if the | ||
2396 | 2102 | handle is invalid | ||
2397 | 2103 | * [r4606] src/winscard_clnt.c: Doxygen: document 2 missing | ||
2398 | 2104 | SCARD_F_COMM_ERROR possible return values | ||
2399 | 2105 | * [r4605] src/winscard_clnt.c: Doxygen: document 3 missing error | ||
2400 | 2106 | codes for SCardConnect() | ||
2401 | 2107 | * [r4604] src/PCSC/pcsclite.h.in: reformat | ||
2402 | 2108 | * [r4603] src/winscard_clnt.c: use sizeof(SCARD_IO_REQUEST) instead | ||
2403 | 2109 | of 8 for the .cbPciLength field This is the correct value on | ||
2404 | 2110 | 64-bit system. | ||
2405 | 2111 | * [r4602] src/pcscdaemon.c, src/winscard.c: g_rgSCard*Pci are not | ||
2406 | 2112 | used on the server side | ||
2407 | 2113 | * [r4601] src/pcscdaemon.c: SIGHUP signal has already been set to | ||
2408 | 2114 | SIG_IGN. No need to quit on SIGHUP. | ||
2409 | 2115 | * [r4600] src/pcscdaemon.c: revert revision 4599 and remove the | ||
2410 | 2116 | second call to signal() instead of the first one. We need to | ||
2411 | 2117 | clean-up as soon as we created the files. | ||
2412 | 2118 | * [r4599] src/pcscdaemon.c: remove duplicate calls to signal() | ||
2413 | 2119 | |||
2414 | 2120 | 2009-12-03 Ludovic Rousseau | ||
2415 | 2121 | |||
2416 | 2122 | * [r4587] src/winscard_clnt.c: Doxygen: SCardConnect() value 0 for | ||
2417 | 2123 | dwPreferredProtocols valid only if dwShareMode is | ||
2418 | 2124 | SCARD_SHARE_DIRECT | ||
2419 | 2125 | * [r4585] src/winscard_clnt.c: use the more efficient | ||
2420 | 2126 | SCardCheckSameProcess() instead of SCardCheckDaemonAvailability() | ||
2421 | 2127 | to detect use of the API after a fork() | ||
2422 | 2128 | |||
2423 | 2129 | 2009-12-02 Ludovic Rousseau | ||
2424 | 2130 | |||
2425 | 2131 | * [r4583] src/winscard_clnt.c: Doxygen: SCardEstablishContext() | ||
2426 | 2132 | Each thread of an application shall use its own SCARDCONTEXT. On | ||
2427 | 2133 | Windows the same SCARDCONTEXT can be shared by different threads | ||
2428 | 2134 | of same application. | ||
2429 | 2135 | |||
2430 | 2136 | 2009-11-27 Ludovic Rousseau | ||
2431 | 2137 | |||
2432 | 2138 | * [r4580] src/winscard_clnt.c: SCardEstablishContext(): try to | ||
2433 | 2139 | start the pcscd daemon if not already running | ||
2434 | 2140 | * [r4579] configure.in: define PCSCD_BINARY | ||
2435 | 2141 | * [r4577] src/pcscdaemon.c: improve the checking of an already | ||
2436 | 2142 | running pcscd | ||
2437 | 2143 | * [r4576] src/winscard_clnt.c: Doxygen: For historical reasons the | ||
2438 | 2144 | value of SCARD_E_UNSUPPORTED_FEATURE is 0x8010001F in pcsc-lite | ||
2439 | 2145 | but 0x80100022 in Windows WinSCard | ||
2440 | 2146 | * [r4575] src/PCSC/pcsclite.h.in: SCARD_E_UNSUPPORTED_FEATURE is | ||
2441 | 2147 | not a PC/SC Lite specific extension, but its numerical value is | ||
2442 | 2148 | different on Windows | ||
2443 | 2149 | |||
2444 | 2150 | 2009-11-26 Ludovic Rousseau | ||
2445 | 2151 | |||
2446 | 2152 | * [r4574] src/PCSC/pcsclite.h.in, src/error.c: remove pcsc-lite | ||
2447 | 2153 | specific SCARD_W_INSERTED_CARD code | ||
2448 | 2154 | |||
2449 | 2155 | SCARD_W_INSERTED_CARD value 0x8010006A was also in collision with | ||
2450 | 2156 | SCARD_W_SECURITY_VIOLATION | ||
2451 | 2157 | * [r4573] src/error.c: reorder error codes | ||
2452 | 2158 | |||
2453 | 2159 | 2009-11-24 Ludovic Rousseau | ||
2454 | 2160 | |||
2455 | 2161 | * [r4570] src/winscard_clnt.c: do not declare the SCardUnload() | ||
2456 | 2162 | function removed in revision 4435 | ||
2457 | 2163 | * [r4569] src/winscard_clnt.c: create a SCardInvalidateHandles() | ||
2458 | 2164 | function from SCardCheckDaemonAvailability() code | ||
2459 | 2165 | * [r4568] src/winscard_clnt.c: SCardCheckDaemonAvailability(): do | ||
2460 | 2166 | not delete the context since it is already done by | ||
2461 | 2167 | SCardCleanContext() | ||
2462 | 2168 | * [r4567] src/winscard_clnt.c: SCardCleanContext(): deallocate the | ||
2463 | 2169 | context memory | ||
2464 | 2170 | |||
2465 | 2171 | 2009-11-23 Ludovic Rousseau | ||
2466 | 2172 | |||
2467 | 2173 | * [r4566] src/winscard_clnt.c: Doxygen: update SCardControl() list | ||
2468 | 2174 | of possible error codes partly revert revision 4558 | ||
2469 | 2175 | |||
2470 | 2176 | Thanks to Martin Paljak for the bug report | ||
2471 | 2177 | http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0079.html | ||
2472 | 2178 | |||
2473 | 2179 | 2009-11-19 Ludovic Rousseau | ||
2474 | 2180 | |||
2475 | 2181 | * [r4562] src/eventhandler.c, src/readerfactory.c, | ||
2476 | 2182 | src/winscard_clnt.c, src/winscard_svc.c: use list_delete() | ||
2477 | 2183 | instead of list_locate() + list_delete_at() | ||
2478 | 2184 | * [r4561] src/simclist.c, src/simclist.h: add list_delete() | ||
2479 | 2185 | "expunge the first found given element from the list" | ||
2480 | 2186 | |||
2481 | 2187 | 2009-11-18 Ludovic Rousseau | ||
2482 | 2188 | |||
2483 | 2189 | * [r4560] UnitaryTests/MCT_ReaderDirect.py, | ||
2484 | 2190 | UnitaryTests/SCardBeginTransaction_Disconnect.py, | ||
2485 | 2191 | UnitaryTests/SCardCancel.py, UnitaryTests/SCardConnect_DIRECT.py, | ||
2486 | 2192 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange.py, | ||
2487 | 2193 | UnitaryTests/SCardGetStatusChange/SCardGetStatusChange_PnP.py, | ||
2488 | 2194 | UnitaryTests/SCardReconnect.py, | ||
2489 | 2195 | UnitaryTests/control_get_firmware.py, | ||
2490 | 2196 | UnitaryTests/control_switch_interface.py: reformat to make | ||
2491 | 2197 | pep8(1) happy | ||
2492 | 2198 | * [r4559] src/winscard_clnt.c: Doxygen improvement | ||
2493 | 2199 | * [r4558] src/winscard_clnt.c: Doxygen: update SCardControl() list | ||
2494 | 2200 | of possible error codes | ||
2495 | 2201 | * [r4554] src/readerfactory.c, src/winscard_clnt.c, | ||
2496 | 2202 | src/winscard_svc.c: add Jean-Luc Giraud in copyright holders | ||
2497 | 2203 | because of his patch in revision 4553 | ||
2498 | 2204 | |||
2499 | 2205 | 2009-11-17 Ludovic Rousseau | ||
2500 | 2206 | |||
2501 | 2207 | * [r4553] src/Makefile.am, src/pcscd.h.in, src/pcscdaemon.c, | ||
2502 | 2208 | src/readerfactory.c, src/readerfactory.h, src/winscard_clnt.c, | ||
2503 | 2209 | src/winscard_svc.c, src/winscard_svc.h: Use lists instead of | ||
2504 | 2210 | fixed size arrays to store handles. | ||
2505 | 2211 | |||
2506 | 2212 | It is now possible to have: - 200 simultaneous PC/SC clients | ||
2507 | 2213 | instead of 16 - 200 SCardConnect per client instead of 16 - 200 | ||
2508 | 2214 | clients per reader instead of 16 | ||
2509 | 2215 | |||
2510 | 2216 | The default value of 200 can be changed by giving an argument to | ||
2511 | 2217 | pcscd --max-thread --max-card-handle-per-thread | ||
2512 | 2218 | --max-card-handle-per-reader | ||
2513 | 2219 | |||
2514 | 2220 | Thanks to Jean-Luc Giraud for the big patch | ||
2515 | 2221 | * [r4552] src/readerfactory.c: RFCreateReaderHandle(): add a | ||
2516 | 2222 | comment that a 16-bit random is not secure enough | ||
2517 | 2223 | |||
2518 | 2224 | 2009-11-16 Ludovic Rousseau | ||
2519 | 2225 | |||
2520 | 2226 | * [r4549] UnitaryTests/SCardReconnect.py: SCardReconnect() should | ||
2521 | 2227 | block instead of returning SCARD_E_SHARING_VIOLATION | ||
2522 | 2228 | * [r4548] UnitaryTests/SCardConnect_DIRECT.py: typo in text | ||
2523 | 2229 | * [r4547] src/winscard_svc.c: remove printf() for debug from | ||
2524 | 2230 | READ_BODY() macro | ||
2525 | 2231 | |||
2526 | 2232 | 2009-11-12 Ludovic Rousseau | ||
2527 | 2233 | |||
2528 | 2234 | * [r4544] UnitaryTests/BufferOverflow.c, src/PCSC/ifdhandler.h, | ||
2529 | 2235 | src/PCSC/pcsclite.h.in, src/PCSC/reader.h.in, | ||
2530 | 2236 | src/PCSC/winscard.h, src/PCSC/wintypes.h, src/atrhandler.c, | ||
2531 | 2237 | src/atrhandler.h, src/configfile.h, src/configfile.l, | ||
2532 | 2238 | src/debug.c, src/debug.h, src/debuglog.c, src/dyn_generic.h, | ||
2533 | 2239 | src/dyn_hpux.c, src/dyn_unix.c, src/error.c, src/eventhandler.c, | ||
2534 | 2240 | src/eventhandler.h, src/hotplug.h, src/hotplug_libhal.c, | ||
2535 | 2241 | src/hotplug_libusb.c, src/hotplug_linux.c, src/ifdwrapper.c, | ||
2536 | 2242 | src/ifdwrapper.h, src/lassert.h, src/misc.h, src/parser.h, | ||
2537 | 2243 | src/pcsc-wirecheck-gen.c, src/pcscd.h.in, src/pcscdaemon.c, | ||
2538 | 2244 | src/powermgt_generic.c, src/readerfactory.c, src/readerfactory.h, | ||
2539 | 2245 | src/strlcpycat.h, src/sys_generic.h, src/sys_unix.c, | ||
2540 | 2246 | src/thread_generic.h, src/thread_unix.c, src/tokenparser.l, | ||
2541 | 2247 | src/utils.c, src/utils.h, src/utils/formaticc.c, | ||
2542 | 2248 | src/utils/installifd.c, src/winscard.c, src/winscard_clnt.c, | ||
2543 | 2249 | src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c, | ||
2544 | 2250 | src/winscard_svc.c, src/winscard_svc.h: update copyright dates | ||
2545 | 2251 | |||
2546 | 2252 | 2009-11-07 Ludovic Rousseau | ||
2547 | 2253 | |||
2548 | 2254 | * [r4540] src/winscard_svc.c: remove ducplicate READ_BODY() and | ||
2549 | 2255 | WRITE_BODY() macros | ||
2550 | 2256 | |||
2551 | 2257 | 2009-11-06 Ludovic Rousseau | ||
2552 | 2258 | |||
2553 | 2259 | * [r4538] src/winscard_clnt.c: remove useless PCHANNEL_MAP type | ||
2554 | 2260 | definition | ||
2555 | 2261 | * [r4537] src/winscard_clnt.c: remove extra spaces at end of line | ||
2556 | 2262 | * [r4536] src/hotplug_libusb.c: reindent | ||
2557 | 2263 | * [r4535] src/hotplug_linux.c: reindent | ||
2558 | 2264 | * [r4534] src/ifdwrapper.c: reindent | ||
2559 | 2265 | * [r4533] src/readerfactory.c: RFAddReader(): make comment more | ||
2560 | 2266 | clear for TAG_IFD_SLOT_THREAD_SAFE | ||
2561 | 2267 | * [r4532] src/readerfactory.c: RFAddReader(): make comment more | ||
2562 | 2268 | clear for TAG_IFD_THREAD_SAFE | ||
2563 | 2269 | |||
2564 | 2270 | 2009-11-05 Ludovic Rousseau | ||
2565 | 2271 | |||
2566 | 2272 | * [r4531] src/winscard_msg.c, src/winscard_msg_srv.c: use PF_* | ||
2567 | 2273 | instead of AF_* for socket(2) argument | ||
2568 | 2274 | |||
2569 | 2275 | Thanks to Sébastien Lorquet for the bug report | ||
2570 | 2276 | http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0039.html | ||
2571 | 2277 | * [r4530] src/winscard_msg.c, src/winscard_msg_srv.c: Revert change | ||
2572 | 2278 | in revision 4395. Solaris does not have (Posix) AF_LOCAL | ||
2573 | 2279 | |||
2574 | 2280 | Thanks to Douglas E. Engert for the bug report | ||
2575 | 2281 | http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0038.html | ||
2576 | 2282 | |||
2577 | 2283 | 2009-11-03 Ludovic Rousseau | ||
2578 | 2284 | |||
2579 | 2285 | * [r4529] src/readerfactory.h: remove useless pointer types | ||
2580 | 2286 | |||
2581 | 2287 | 2009-11-02 Ludovic Rousseau | ||
2582 | 2288 | |||
2583 | 2289 | * [r4528] src/winscard_clnt.c: SCardConnect(), SCardDisconnect() & | ||
2584 | 2290 | SCardReleaseContext(): correctly handle error cases profiling | ||
2585 | 2291 | |||
2586 | 2292 | 2009-10-28 Ludovic Rousseau | ||
2587 | 2293 | |||
2588 | 2294 | * [r4527] src/readerfactory.h, src/thread_generic.h, | ||
2589 | 2295 | src/thread_unix.c, src/winscard_clnt.c: remove the type | ||
2590 | 2296 | PCSCLITE_MUTEX_T and use an explicit pointer type (PCSCLITE_MUTEX | ||
2591 | 2297 | *) instead | ||
2592 | 2298 | |||
2593 | 2299 | This should avoid bugs like the one corrected in revision 4525 | ||
2594 | 2300 | * [r4525] src/eventhandler.c: correctly use the lock API for | ||
2595 | 2301 | ClientsWaitingForEvent_lock | ||
2596 | 2302 | * [r4524] src/pcscdaemon.c, src/readerfactory.c, | ||
2597 | 2303 | src/readerfactory.h: call exit() in SVCServiceRunLoop() instead | ||
2598 | 2304 | of RFCleanupReaders() and remove the RFCleanupReaders() parameter | ||
2599 | 2305 | * [r4523] src/readerfactory.c: use return() instead of exit() if | ||
2600 | 2306 | DYN_GetAddress() fails | ||
2601 | 2307 | * [r4522] src/eventhandler.c: explicitly use (void)fct() to ignore | ||
2602 | 2308 | the returned value | ||
2603 | 2309 | |||
2604 | 2310 | 2009-10-27 Ludovic Rousseau | ||
2605 | 2311 | |||
2606 | 2312 | * [r4520] src/eventhandler.c: EHStatusHandlerThread(): call | ||
2607 | 2313 | EHSignalEventToClients() _after_ logging "Card inserted into ..." | ||
2608 | 2314 | * [r4519] src/winscard_svc.c: ContextThread(): add the client ID to | ||
2609 | 2315 | the command log message | ||
2610 | 2316 | * [r4518] src/winscard_clnt.c: SCardGetStatusChange(): use | ||
2611 | 2317 | SCARD_*_CONTEXT constants instead of numerical values | ||
2612 | 2318 | * [r4517] src/eventhandler.h, src/winscard.c: move SCARD_*_CONTEXT | ||
2613 | 2319 | from winscard.c to eventhandler.h | ||
2614 | 2320 | * [r4516] src/winscard.c: remove useless SCARD_NO_LOCK define | ||
2615 | 2321 | * [r4515] src/eventhandler.c: update comment | ||
2616 | 2322 | * [r4514] src/winscard_clnt.c, src/winscard_msg.c, | ||
2617 | 2323 | src/winscard_svc.c: SHMMessageReceive() now returns -2 in case of | ||
2618 | 2324 | timeout and -1 in case of other error | ||
2619 | 2325 | |||
2620 | 2326 | This is used to correctly handle timeouts in | ||
2621 | 2327 | SCardGetStatusChange() | ||
2622 | 2328 | * [r4513] src/winscard_svc.c: ContextThread(): when a client dies | ||
2623 | 2329 | call EHTryToUnregisterClientForEvent() to unregister it if needed | ||
2624 | 2330 | * [r4512] src/eventhandler.c, src/eventhandler.h: add | ||
2625 | 2331 | EHTryToUnregisterClientForEvent() | ||
2626 | 2332 | |||
2627 | 2333 | 2009-10-18 Ludovic Rousseau | ||
2628 | 2334 | |||
2629 | 2335 | * [r4497] src/winscard_msg.c: SHMMessageSend(): document the use of | ||
2630 | 2336 | MSG_NOSIGNAL to ignore SIGPIPE signal | ||
2631 | 2337 | |||
2632 | 2338 | 2009-10-13 Ludovic Rousseau | ||
2633 | 2339 | |||
2634 | 2340 | * [r4491] src/Makefile.am: do not use PCSC_CLIENT_SRC variable | ||
2635 | 2341 | anymore since SCF support has been removed | ||
2636 | 2342 | * [r4490] src/Makefile.am: libpcsclite does not need to have | ||
2637 | 2343 | dyn_hpux.c, dyn_macosx.c or dyn_unix.c. These files define | ||
2638 | 2344 | DYN_LoadLibrary/DYN_CloseLibrary/DYN_GetAddress | ||
2639 | 2345 | * [r4489] pbx, pcsc.pbproj: remove Xcode files. Apple has its own | ||
2640 | 2346 | version of pcsc-lite for Mac OS X | ||
2641 | 2347 | * [r4488] src/winscard_clnt.c: Doxygen(): better documentation for | ||
2642 | 2348 | SCardCheckDaemonAvailability() | ||
2643 | 2349 | * [r4487] src/winscard_clnt.c: revert changeset 4485. | ||
2644 | 2350 | SCardCheckDaemonAvailability() is also used to invalidate the | ||
2645 | 2351 | PC/SC handles after a fork or a pcscd restart | ||
2646 | 2352 | * [r4486] configure.in, src/Makefile.am, src/winscard_scf.c: remove | ||
2647 | 2353 | SCF support (PC/SC over Smart Card Framework). I never used this | ||
2648 | 2354 | feature and SCF is now dead and replaced by JSR 268 | ||
2649 | 2355 | (javax.smartcardio) | ||
2650 | 2356 | |||
2651 | 2357 | 2009-10-12 Ludovic Rousseau | ||
2652 | 2358 | |||
2653 | 2359 | * [r4485] src/winscard_clnt.c: SCardReleaseContext(), | ||
2654 | 2360 | SCardConnect(), SCardReconnect(), SCardDisconnect(), | ||
2655 | 2361 | SCardBeginTransaction(), SCardEndTransaction(), | ||
2656 | 2362 | SCardCancelTransaction(), SCardStatus(), SCardGetStatusChange(), | ||
2657 | 2363 | SCardControl(), SCardGetSetAttrib(), SCardTransmit(), | ||
2658 | 2364 | SCardListReaders(), SCardFreeMemory()SCardListReaderGroups(), | ||
2659 | 2365 | SCardIsValidContext(): do not SCardCheckDaemonAvailability() | ||
2660 | 2366 | since we will try to talk to the server later. Any communication | ||
2661 | 2367 | problem will be reported by SHMMessageSendWithHeader() | ||
2662 | 2368 | * [r4484] src/winscard_clnt.c: SCardDisconnect(): factorize exit | ||
2663 | 2369 | code | ||
2664 | 2370 | * [r4483] src/winscard_clnt.c: SCardReconnect(): factorize exit | ||
2665 | 2371 | code | ||
2666 | 2372 | * [r4482] src/winscard_clnt.c: SCardConnect(): factorize exit code | ||
2667 | 2373 | * [r4481] src/winscard_clnt.c: SCardReleaseContext(): release | ||
2668 | 2374 | context even if communication with the server fails | ||
2669 | 2375 | * [r4480] src/winscard_msg.c: SHMMessageSend(): use send(..., | ||
2670 | 2376 | MSG_NOSIGNAL) instead of write(...) to avoid receiving a SIGPIPE | ||
2671 | 2377 | signal if pcscd has exited. We just get EPIPE as return value | ||
2672 | 2378 | * [r4479] src/winscard_clnt.c: SCardReconnect(), | ||
2673 | 2379 | SCardBeginTransaction(), SCardEndTransaction(), | ||
2674 | 2380 | SCardCancelTransaction(), SCardControl(), SCardGetSetAttrib() and | ||
2675 | 2381 | SCardTransmit(): do not "synchronize reader states with daemon" | ||
2676 | 2382 | since reader availability checks are done on the server side. | ||
2677 | 2383 | |||
2678 | 2384 | 2009-10-09 Ludovic Rousseau | ||
2679 | 2385 | |||
2680 | 2386 | * [r4476] src/winscard_clnt.c: Doxygen improvement | ||
2681 | 2387 | * [r4474] src/PCSC/ifdhandler.h: Doxygen: define an IFDHandler | ||
2682 | 2388 | group | ||
2683 | 2389 | * [r4473] src/PCSC/ifdhandler.h: Add Doxygen documentation of the | ||
2684 | 2390 | IFD Handler API | ||
2685 | 2391 | * [r4472] src/PCSC/ifdhandler.h: remove IFD_Handler 1.0 functions | ||
2686 | 2392 | prototypes | ||
2687 | 2393 | * [r4471] src/winscard_clnt.c: Doxygen: use @param[in,out] for in | ||
2688 | 2394 | and out parameters | ||
2689 | 2395 | |||
2690 | 2396 | 2009-10-08 Ludovic Rousseau | ||
2691 | 2397 | |||
2692 | 2398 | * [r4468] doc/example/pcsc_demo.c: cleanly exits in case of unknown | ||
2693 | 2399 | protocol | ||
2694 | 2400 | * [r4467] doc/example/pcsc_demo.c: use SCARD_AUTOALLOCATE for | ||
2695 | 2401 | SCardListReaders() | ||
2696 | 2402 | * [r4466] src/simclist.c, src/simclist.h: remove svn:executable | ||
2697 | 2403 | property on source files | ||
2698 | 2404 | * [r4465] src/sys_generic.h, src/sys_unix.c: Define SYS_Fork() only | ||
2699 | 2405 | if used (if HAVE_DAEMON is not set) | ||
2700 | 2406 | * [r4464] src/sys_generic.h, src/sys_unix.c: Remove useless | ||
2701 | 2407 | SYS_GetPageSize(), SYS_MemoryMap(), SYS_PublicMemoryMap(), | ||
2702 | 2408 | SYS_PublicMemoryUnmap() and SYS_MMapSynchronize() | ||
2703 | 2409 | * [r4463] src/sys_generic.h, src/sys_unix.c: Remove useless | ||
2704 | 2410 | SYS_ReadFile() | ||
2705 | 2411 | * [r4462] src/sys_generic.h, src/sys_unix.c: Remove useless | ||
2706 | 2412 | SYS_SeekFile() | ||
2707 | 2413 | * [r4461] src/sys_generic.h: Remove SYS_ChangePermissions() | ||
2708 | 2414 | prototype (the function is NOT defined anywhere) | ||
2709 | 2415 | * [r4460] src/sys_generic.h, src/sys_unix.c: Remove useless | ||
2710 | 2416 | SYS_GetUID() & SYS_GetGID() | ||
2711 | 2417 | * [r4459] src/sys_generic.h, src/sys_unix.c: Remove useless | ||
2712 | 2418 | SYS_GetPID() | ||
2713 | 2419 | * [r4458] src/sys_generic.h, src/sys_unix.c, src/winscard_clnt.c: | ||
2714 | 2420 | SYS_Initialize() does nothing. Remove it. | ||
2715 | 2421 | * [r4457] src/readerfactory.c: Comment out RFSuspendAllReaders() | ||
2716 | 2422 | and RFAwakeAllReaders(). We do not yet support suspend/resume on | ||
2717 | 2423 | Linux | ||
2718 | 2424 | * [r4456] src/readerfactory.c, src/readerfactory.h: remove useless | ||
2719 | 2425 | RFListReaders() | ||
2720 | 2426 | * [r4455] src/readerfactory.c, src/readerfactory.h: remove useless | ||
2721 | 2427 | RFUnblockContext() | ||
2722 | 2428 | * [r4454] src/readerfactory.c, src/readerfactory.h, src/winscard.c: | ||
2723 | 2429 | remove useless RFUnblockReader() | ||
2724 | 2430 | * [r4453] src/pcscd.h.in, src/readerfactory.c, src/winscard_clnt.c: | ||
2725 | 2431 | do not use contextBlockStatus tpo block/unblock a context. We now | ||
2726 | 2432 | use SCardCancel() on the server side to unblock | ||
2727 | 2433 | SCardGetStatusChange() | ||
2728 | 2434 | * [r4452] doc/Makefile.am, doc/pcsc-lite.bib, doc/pcsc-lite.tex: | ||
2729 | 2435 | The .tex documentation is no more maintained. The reference | ||
2730 | 2436 | WinSCard API documentation is from Doxygen now. | ||
2731 | 2437 | * [r4451] UnitaryTests/SCardConnect_DIRECT.py: add documentation | ||
2732 | 2438 | * [r4447] src/ifdwrapper.c: IFDControl(): return | ||
2733 | 2439 | SCARD_E_INSUFFICIENT_BUFFER if the driver returns | ||
2734 | 2440 | IFD_ERROR_INSUFFICIENT_BUFFER | ||
2735 | 2441 | * [r4445] src/winscard.c: SCardGetAttrib(): return | ||
2736 | 2442 | SCARD_E_INSUFFICIENT_BUFFER if the driver returns | ||
2737 | 2443 | IFD_ERROR_INSUFFICIENT_BUFFER | ||
2738 | 2444 | |||
2739 | 2445 | Thanks to Emmanuel Deloget for the bug report | ||
2740 | 2446 | http://archives.neohapsis.com/archives/dev/muscle/2009-q4/0003.html | ||
2741 | 2447 | * [r4444] src/PCSC/ifdhandler.h: add IFD_ERROR_INSUFFICIENT_BUFFER | ||
2742 | 2448 | * [r4443] src/winscard.c: SCardReconnect(): log the selected | ||
2743 | 2449 | protocol (as done in SCardConnect()) | ||
2744 | 2450 | * [r4442] src/winscard_clnt.c: SCardReconnect(): return | ||
2745 | 2451 | SCARD_E_SHARING_VIOLATION instead of blocking if the reader | ||
2746 | 2452 | cannot be shared. | ||
2747 | 2453 | |||
2748 | 2454 | This change was made in revision 2475 but I don't remember why. | ||
2749 | 2455 | |||
2750 | 2456 | Thanks to Paul Klissner for the bug report | ||
2751 | 2457 | http://archives.neohapsis.com/archives/dev/muscle/2009-q3/0106.html | ||
2752 | 2458 | |||
2753 | 2459 | 2009-10-06 Ludovic Rousseau | ||
2754 | 2460 | |||
2755 | 2461 | * [r4438] src/winscard_clnt.c, src/winscard_msg.h: remove typedefs | ||
2756 | 2462 | and explicitly use struct for structures | ||
2757 | 2463 | * [r4437] src/pcsc-wirecheck-gen.c: update to the new client/server | ||
2758 | 2464 | ABI | ||
2759 | 2465 | * [r4436] src/utils.c, src/utils.h: remove now useless | ||
2760 | 2466 | StatSynchronize() and StatSynchronizeContext() | ||
2761 | 2467 | * [r4435] src/winscard_clnt.c: remove now useless SCardUnload() | ||
2762 | 2468 | * [r4434] src/eventhandler.c, src/pcscd.h.in, src/pcscdaemon.c, | ||
2763 | 2469 | src/readerfactory.c, src/winscard.c, src/winscard_clnt.c, | ||
2764 | 2470 | src/winscard_msg.c, src/winscard_msg.h, src/winscard_msg_srv.c, | ||
2765 | 2471 | src/winscard_svc.c: redesign the client/server communication: - | ||
2766 | 2472 | no more shared memory used (allow pcscd and libpcsclite1.so to be | ||
2767 | 2473 | on different computer and talk over a network) - no more | ||
2768 | 2474 | difference between short and extended APDU - no more use of a | ||
2769 | 2475 | /var/run/pcscd/pcscd.events/ directory. events are sent through | ||
2770 | 2476 | the socket - simpler command format between client and server | ||
2771 | 2477 | |||
2772 | 2478 | The side effect is that you are not able to mix an old pcscd with | ||
2773 | 2479 | a new libpcsclite1.so or the reverse. SCardEstablishContext() | ||
2774 | 2480 | will fail unless you update both sides of the communication. | ||
2775 | 2481 | * [r4433] src/winscard_msg.c: reformat comment | ||
2776 | 2482 | * [r4432] src/winscard_svc.c, src/winscard_svc.h: add | ||
2777 | 2483 | MSGSignalClient() | ||
2778 | 2484 | * [r4431] src/winscard_msg.h: add struct wait_reader_state_change | ||
2779 | 2485 | * [r4430] src/pcscd.h.in: add PCSCLITE_WRITE_TIMEOUT and | ||
2780 | 2486 | PCSCLITE_READ_TIMEOUT | ||
2781 | 2487 | * [r4429] src/winscard_msg.c: reformat comments | ||
2782 | 2488 | * [r4428] src/eventhandler.c, src/eventhandler.h: add | ||
2783 | 2489 | EHRegisterClientForEvent(), EHUnregisterClientForEvent() and | ||
2784 | 2490 | EHSignalEventToClients() | ||
2785 | 2491 | * [r4427] src/Makefile.am: add simclist.{c,h} to pcscd dependencies | ||
2786 | 2492 | * [r4426] src/simclist.c, src/simclist.h: Library to manage lists | ||
2787 | 2493 | Fetched from http://mij.oltrelinux.com/devel/simclist/ | ||
2788 | 2494 | |||
2789 | 2495 | 2009-10-05 Ludovic Rousseau | ||
2790 | 2496 | |||
2791 | 2497 | * [r4425] UnitaryTests/SCardCancel.py: display return values even | ||
2792 | 2498 | if no error returned | ||
2793 | 2499 | |||
2794 | 2500 | 2009-10-03 Ludovic Rousseau | ||
2795 | 2501 | |||
2796 | 2502 | * [r4419] src/winscard_clnt.c: Doxygen document SCardConnect() | ||
2797 | 2503 | difference with Windows for SCARD_SHARE_DIRECT | ||
2798 | 2504 | |||
2799 | 2505 | 2009-10-02 Ludovic Rousseau | ||
2800 | 2506 | |||
2801 | 2507 | * [r4418] src/winscard_clnt.c: add Doxygen section: Known | ||
2802 | 2508 | differences with Microsoft Windows WinSCard implementation | ||
2803 | 2509 | |||
2804 | 2510 | 2009-09-29 Ludovic Rousseau | ||
2805 | 2511 | |||
2806 | 2512 | * [r4408] src/pcscdaemon.c: main(): check RFAllocateReaderSpace() | ||
2807 | 2513 | returned value | ||
2808 | 2514 | * [r4407] src/winscard_clnt.c: SCardGetStatusChange(): Calling with | ||
2809 | 2515 | cReaders == 0 will now just return SCARD_S_SUCCESS | ||
2810 | 2516 | |||
2811 | 2517 | Use the special reader name "\\?PnP?\Notification" to wait for a | ||
2812 | 2518 | reader event notification | ||
2813 | 2519 | * [r4406] src/pcscd.h.in: remove comment about PCSCLITE_MAX_READERS | ||
2814 | 2520 | * [r4405] src/pcscd.h.in: remove useless PCSCLITE_MAX_THREADS | ||
2815 | 2521 | definition | ||
2816 | 2522 | * [r4404] src/pcscd.h.in: remove useless | ||
2817 | 2523 | PCSCLITE_TRANSACTION_TIMEOUT definition | ||
2818 | 2524 | * [r4403] src/utils.c, src/utils.h, src/winscard.c, | ||
2819 | 2525 | src/winscard_clnt.c: move time_sub() in utils.c | ||
2820 | 2526 | * [r4402] src/pcsc-wirecheck-gen.c, src/pcscd.h.in, | ||
2821 | 2527 | src/winscard_msg.c, src/winscard_msg.h: remove useless | ||
2822 | 2528 | key[PCSCLITE_MSG_KEY_LEN] field | ||
2823 | 2529 | |||
2824 | 2530 | 2009-09-28 Ludovic Rousseau | ||
2825 | 2531 | |||
2826 | 2532 | * [r4400] src/winscard.c: SCardTransmit(): do not limit the minimum | ||
2827 | 2533 | size of an APDU to 4 bytes. non ISO 7816-4 compliant cards (like | ||
2828 | 2534 | Mifare DESFIRE) may use shorter commands | ||
2829 | 2535 | |||
2830 | 2536 | Thanks to Björn Kupfer for the bug report | ||
2831 | 2537 | * [r4399] src/winscard.c: SCardTransmit(): call IFDControl_v2 | ||
2832 | 2538 | instead of IFDTransmit only if dwProtocol == SCARD_PROTOCOL_RAW | ||
2833 | 2539 | _and_ ifdhandler is v2.0 | ||
2834 | 2540 | |||
2835 | 2541 | Thanks to Björn Kupfer for the patch | ||
2836 | 2542 | |||
2837 | 2543 | 2009-09-23 Ludovic Rousseau | ||
2838 | 2544 | |||
2839 | 2545 | * [r4395] src/winscard_msg.c, src/winscard_msg_srv.c: use the POSIX | ||
2840 | 2546 | name AF_LOCAL instead of AF_UNIX | ||
2841 | 2547 | |||
2842 | 2548 | 2009-09-21 Ludovic Rousseau | ||
2843 | 2549 | |||
2844 | 2550 | * [r4388] src/pcscd.h.in: remove unsuned #define | ||
2845 | 2551 | PCSCLITE_RW_ATTEMPTS | ||
2846 | 2552 | |||
2847 | 2553 | 2009-09-17 Ludovic Rousseau | ||
2848 | 2554 | |||
2849 | 2555 | * [r4387] src/winscard_clnt.c: typo in Doxygen comment | ||
2850 | 2556 | |||
2851 | 2557 | 2009-09-15 Ludovic Rousseau | ||
2852 | 2558 | |||
2853 | 2559 | * [r4386] src/winscard_clnt.c: SCardReleaseContext(), | ||
2854 | 2560 | SCardControl(), SCardTransmit() and SCardListReaders(): add a | ||
2855 | 2561 | call to PROFILE_END() before exiting with SCARD_E_INVALID_HANDLE | ||
2856 | 2562 | error code to have a better profiling output | ||
2857 | 2563 | * [r4385] src/winscard.c: | ||
2858 | 2564 | SCardEstablishContext()/SCardReleaseContext(): log context value | ||
2859 | 2565 | in hexadecimal instead of decimal | ||
2860 | 2566 | * [r4384] src/winscard_msg.c: rename argument blockAmount in | ||
2861 | 2567 | timeOut to better reflect its function | ||
2862 | 2568 | |||
2863 | 2569 | 2009-09-08 Ludovic Rousseau | ||
2864 | 2570 | |||
2865 | 2571 | * [r4378] src/PCSC/reader.h.in: update sruct | ||
2866 | 2572 | PIN_PROPERTIES_STRUCTURE to be conform with Revision 2.02.06, | ||
2867 | 2573 | April 2009 of PCSCv2 part 10 | ||
2868 | 2574 | |||
2869 | 2575 | Fields wLcdMaxCharacters and wLcdMaxLines have been removed | ||
2870 | 2576 | |||
2871 | 2577 | 2009-09-01 Ludovic Rousseau | ||
2872 | 2578 | |||
2873 | 2579 | * [r4375] src/pcscdaemon.c: signal_reload(): reenable the signal | ||
2874 | 2580 | handler. This is needed on Solaris and HPUX. | ||
2875 | 2581 | |||
2876 | 2582 | Thanks to Douglas E. Engert for the patch | ||
2877 | 2583 | http://archives.neohapsis.com/archives/dev/muscle/2009-q3/0061.html | ||
2878 | 2584 | |||
2879 | 2585 | 2009-08-31 Ludovic Rousseau | ||
2880 | 2586 | |||
2881 | 2587 | * [r4374] src/ifdwrapper.c, src/winscard.c: typo in comments | ||
2882 | 2588 | |||
2883 | 2589 | 2009-08-28 Ludovic Rousseau | ||
2884 | 2590 | |||
2885 | 2591 | * [r4371] src/hotplug_libhal.c, src/hotplug_libusb.c, | ||
2886 | 2592 | src/hotplug_linux.c, src/pcscdaemon.c: move definition of | ||
2887 | 2593 | usbNotifierMutex in the underlying layers where it is used | ||
2888 | 2594 | |||
2889 | 2595 | 2009-08-27 Ludovic Rousseau | ||
2890 | 2596 | |||
2891 | 2597 | * [r4367] src/ifdwrapper.c: IFDControl(): return | ||
2892 | 2598 | SCARD_E_UNSUPPORTED_FEATURE if the driver returned | ||
2893 | 2599 | IFD_ERROR_NOT_SUPPORTED or IFD_NOT_SUPPORTED | ||
2894 | 2600 | |||
2895 | 2601 | This is used to separate an unsupported value of ControlCode from | ||
2896 | 2602 | a general error | ||
2897 | 2603 | |||
2898 | 2604 | 2009-07-31 Ludovic Rousseau | ||
2899 | 2605 | |||
2900 | 2606 | * [r4359] UnitaryTests/control_switch_interface.py: switch | ||
2901 | 2607 | interface on the GemProx DU | ||
2902 | 2608 | * [r4357] UnitaryTests/control_get_firmware.py: get firmware | ||
2903 | 2609 | version of Gemalto readers | ||
2904 | 2610 | |||
2905 | 2611 | 2009-07-30 Ludovic Rousseau | ||
2906 | 2612 | |||
2907 | 2613 | * [r4354] src/ifdwrapper.c: remove extra spaces at end of line | ||
2908 | 2614 | * [r4353] src/configfile.l: reformat | ||
2909 | 2615 | * [r4352] src/configfile.l: remove extra spaces | ||
2910 | 2616 | |||
2911 | 1 | 2009-07-28 Ludovic Rousseau | 2617 | 2009-07-28 Ludovic Rousseau |
2912 | 2 | 2618 | ||
2913 | 3 | * [r4349] ChangeLog, configure.in: release 1.5.5 | 2619 | * [r4349] ChangeLog, configure.in: release 1.5.5 |
2914 | 4 | 2620 | ||
2915 | === modified file 'Makefile.am' | |||
2916 | --- Makefile.am 2010-07-10 11:15:59 +0000 | |||
2917 | +++ Makefile.am 2011-03-19 10:51:41 +0000 | |||
2918 | @@ -1,4 +1,7 @@ | |||
2920 | 1 | SUBDIRS = m4 src etc doc | 1 | SUBDIRS = m4 src doc |
2921 | 2 | |||
2922 | 3 | fix-rights: | ||
2923 | 4 | $(MAKE) -C src $@ | ||
2924 | 2 | 5 | ||
2925 | 3 | ACLOCAL_AMFLAGS = -I m4 | 6 | ACLOCAL_AMFLAGS = -I m4 |
2926 | 4 | 7 | ||
2927 | 5 | 8 | ||
2928 | === modified file 'Makefile.in' | |||
2929 | --- Makefile.in 2010-07-10 11:15:59 +0000 | |||
2930 | +++ Makefile.in 2011-03-19 10:51:41 +0000 | |||
2931 | @@ -1,8 +1,9 @@ | |||
2933 | 1 | # Makefile.in generated by automake 1.10.2 from Makefile.am. | 1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. |
2934 | 2 | # @configure_input@ | 2 | # @configure_input@ |
2935 | 3 | 3 | ||
2936 | 4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | 4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
2938 | 5 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, |
2939 | 6 | # Inc. | ||
2940 | 6 | # This Makefile.in is free software; the Free Software Foundation | 7 | # This Makefile.in is free software; the Free Software Foundation |
2941 | 7 | # gives unlimited permission to copy and/or distribute it, | 8 | # gives unlimited permission to copy and/or distribute it, |
2942 | 8 | # with or without modifications, as long as this notice is preserved. | 9 | # with or without modifications, as long as this notice is preserved. |
2943 | @@ -15,8 +16,9 @@ | |||
2944 | 15 | @SET_MAKE@ | 16 | @SET_MAKE@ |
2945 | 16 | VPATH = @srcdir@ | 17 | VPATH = @srcdir@ |
2946 | 17 | pkgdatadir = $(datadir)/@PACKAGE@ | 18 | pkgdatadir = $(datadir)/@PACKAGE@ |
2947 | 19 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
2948 | 18 | pkglibdir = $(libdir)/@PACKAGE@ | 20 | pkglibdir = $(libdir)/@PACKAGE@ |
2950 | 19 | pkgincludedir = $(includedir)/@PACKAGE@ | 21 | pkglibexecdir = $(libexecdir)/@PACKAGE@ |
2951 | 20 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | 22 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
2952 | 21 | install_sh_DATA = $(install_sh) -c -m 644 | 23 | install_sh_DATA = $(install_sh) -c -m 644 |
2953 | 22 | install_sh_PROGRAM = $(install_sh) -c | 24 | install_sh_PROGRAM = $(install_sh) -c |
2954 | @@ -35,9 +37,9 @@ | |||
2955 | 35 | DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ | 37 | DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ |
2956 | 36 | $(srcdir)/Makefile.in $(srcdir)/config.h.in \ | 38 | $(srcdir)/Makefile.in $(srcdir)/config.h.in \ |
2957 | 37 | $(top_srcdir)/configure $(top_srcdir)/src/PCSC/pcsclite.h.in \ | 39 | $(top_srcdir)/configure $(top_srcdir)/src/PCSC/pcsclite.h.in \ |
2961 | 38 | $(top_srcdir)/src/PCSC/reader.h.in AUTHORS COPYING ChangeLog \ | 40 | AUTHORS COPYING ChangeLog INSTALL NEWS TODO compile \ |
2962 | 39 | INSTALL NEWS TODO compile config.guess config.sub depcomp \ | 41 | config.guess config.sub depcomp install-sh ltmain.sh missing \ |
2963 | 40 | install-sh ltmain.sh missing ylwrap | 42 | ylwrap |
2964 | 41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | 43 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
2965 | 42 | am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ | 44 | am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ |
2966 | 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 \ |
2967 | @@ -50,7 +52,8 @@ | |||
2968 | 50 | configure.lineno config.status.lineno | 52 | configure.lineno config.status.lineno |
2969 | 51 | mkinstalldirs = $(install_sh) -d | 53 | mkinstalldirs = $(install_sh) -d |
2970 | 52 | CONFIG_HEADER = config.h | 54 | CONFIG_HEADER = config.h |
2972 | 53 | CONFIG_CLEAN_FILES = src/PCSC/pcsclite.h src/PCSC/reader.h | 55 | CONFIG_CLEAN_FILES = src/PCSC/pcsclite.h |
2973 | 56 | CONFIG_CLEAN_VPATH_FILES = | ||
2974 | 54 | SOURCES = | 57 | SOURCES = |
2975 | 55 | DIST_SOURCES = | 58 | DIST_SOURCES = |
2976 | 56 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | 59 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ |
2977 | @@ -62,6 +65,9 @@ | |||
2978 | 62 | ps-recursive uninstall-recursive | 65 | ps-recursive uninstall-recursive |
2979 | 63 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | 66 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ |
2980 | 64 | distclean-recursive maintainer-clean-recursive | 67 | distclean-recursive maintainer-clean-recursive |
2981 | 68 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | ||
2982 | 69 | $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | ||
2983 | 70 | distdir dist dist-all distcheck | ||
2984 | 65 | ETAGS = etags | 71 | ETAGS = etags |
2985 | 66 | CTAGS = ctags | 72 | CTAGS = ctags |
2986 | 67 | DIST_SUBDIRS = $(SUBDIRS) | 73 | DIST_SUBDIRS = $(SUBDIRS) |
2987 | @@ -69,9 +75,34 @@ | |||
2988 | 69 | distdir = $(PACKAGE)-$(VERSION) | 75 | distdir = $(PACKAGE)-$(VERSION) |
2989 | 70 | top_distdir = $(distdir) | 76 | top_distdir = $(distdir) |
2990 | 71 | am__remove_distdir = \ | 77 | am__remove_distdir = \ |
2994 | 72 | { test ! -d $(distdir) \ | 78 | { test ! -d "$(distdir)" \ |
2995 | 73 | || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ | 79 | || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ |
2996 | 74 | && rm -fr $(distdir); }; } | 80 | && rm -fr "$(distdir)"; }; } |
2997 | 81 | am__relativize = \ | ||
2998 | 82 | dir0=`pwd`; \ | ||
2999 | 83 | sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | ||
3000 | 84 | sed_rest='s,^[^/]*/*,,'; \ | ||
3001 | 85 | sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | ||
3002 | 86 | sed_butlast='s,/*[^/]*$$,,'; \ | ||
3003 | 87 | while test -n "$$dir1"; do \ | ||
3004 | 88 | first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | ||
3005 | 89 | if test "$$first" != "."; then \ | ||
3006 | 90 | if test "$$first" = ".."; then \ | ||
3007 | 91 | dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | ||
3008 | 92 | dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | ||
3009 | 93 | else \ | ||
3010 | 94 | first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | ||
3011 | 95 | if test "$$first2" = "$$first"; then \ | ||
3012 | 96 | dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | ||
3013 | 97 | else \ | ||
3014 | 98 | dir2="../$$dir2"; \ | ||
3015 | 99 | fi; \ | ||
3016 | 100 | dir0="$$dir0"/"$$first"; \ | ||
3017 | 101 | fi; \ | ||
3018 | 102 | fi; \ | ||
3019 | 103 | dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | ||
3020 | 104 | done; \ | ||
3021 | 105 | reldir="$$dir2" | ||
3022 | 75 | GZIP_ENV = --best | 106 | GZIP_ENV = --best |
3023 | 76 | DIST_ARCHIVES = $(distdir).tar.bz2 | 107 | DIST_ARCHIVES = $(distdir).tar.bz2 |
3024 | 77 | distuninstallcheck_listfiles = find . -type f -print | 108 | distuninstallcheck_listfiles = find . -type f -print |
3025 | @@ -113,12 +144,11 @@ | |||
3026 | 113 | LEXLIB = @LEXLIB@ | 144 | LEXLIB = @LEXLIB@ |
3027 | 114 | LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ | 145 | LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ |
3028 | 115 | LIBDL = @LIBDL@ | 146 | LIBDL = @LIBDL@ |
3029 | 116 | LIBHAL_CFLAGS = @LIBHAL_CFLAGS@ | ||
3030 | 117 | LIBHAL_LIBS = @LIBHAL_LIBS@ | ||
3031 | 118 | LIBOBJS = @LIBOBJS@ | 147 | LIBOBJS = @LIBOBJS@ |
3032 | 119 | LIBS = @LIBS@ | 148 | LIBS = @LIBS@ |
3033 | 120 | LIBSMARTCARD = @LIBSMARTCARD@ | ||
3034 | 121 | LIBTOOL = @LIBTOOL@ | 149 | LIBTOOL = @LIBTOOL@ |
3035 | 150 | LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ | ||
3036 | 151 | LIBUDEV_LIBS = @LIBUDEV_LIBS@ | ||
3037 | 122 | LIBUSBCONFIG = @LIBUSBCONFIG@ | 152 | LIBUSBCONFIG = @LIBUSBCONFIG@ |
3038 | 123 | LIBUSB_CFLAGS = @LIBUSB_CFLAGS@ | 153 | LIBUSB_CFLAGS = @LIBUSB_CFLAGS@ |
3039 | 124 | LIBUSB_LIBS = @LIBUSB_LIBS@ | 154 | LIBUSB_LIBS = @LIBUSB_LIBS@ |
3040 | @@ -139,9 +169,13 @@ | |||
3041 | 139 | PACKAGE_NAME = @PACKAGE_NAME@ | 169 | PACKAGE_NAME = @PACKAGE_NAME@ |
3042 | 140 | PACKAGE_STRING = @PACKAGE_STRING@ | 170 | PACKAGE_STRING = @PACKAGE_STRING@ |
3043 | 141 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | 171 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
3044 | 172 | PACKAGE_URL = @PACKAGE_URL@ | ||
3045 | 142 | PACKAGE_VERSION = @PACKAGE_VERSION@ | 173 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
3046 | 143 | PATH_SEPARATOR = @PATH_SEPARATOR@ | 174 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
3047 | 175 | PCSCLITE_CONFIG_DIR = @PCSCLITE_CONFIG_DIR@ | ||
3048 | 144 | PKG_CONFIG = @PKG_CONFIG@ | 176 | PKG_CONFIG = @PKG_CONFIG@ |
3049 | 177 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
3050 | 178 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
3051 | 145 | PTHREAD_CC = @PTHREAD_CC@ | 179 | PTHREAD_CC = @PTHREAD_CC@ |
3052 | 146 | PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ | 180 | PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
3053 | 147 | PTHREAD_LIBS = @PTHREAD_LIBS@ | 181 | PTHREAD_LIBS = @PTHREAD_LIBS@ |
3054 | @@ -171,7 +205,6 @@ | |||
3055 | 171 | build_os = @build_os@ | 205 | build_os = @build_os@ |
3056 | 172 | build_vendor = @build_vendor@ | 206 | build_vendor = @build_vendor@ |
3057 | 173 | builddir = @builddir@ | 207 | builddir = @builddir@ |
3058 | 174 | confdir = @confdir@ | ||
3059 | 175 | confdir_exp = @confdir_exp@ | 208 | confdir_exp = @confdir_exp@ |
3060 | 176 | datadir = @datadir@ | 209 | datadir = @datadir@ |
3061 | 177 | datarootdir = @datarootdir@ | 210 | datarootdir = @datarootdir@ |
3062 | @@ -208,13 +241,13 @@ | |||
3063 | 208 | sharedstatedir = @sharedstatedir@ | 241 | sharedstatedir = @sharedstatedir@ |
3064 | 209 | srcdir = @srcdir@ | 242 | srcdir = @srcdir@ |
3065 | 210 | sysconfdir = @sysconfdir@ | 243 | sysconfdir = @sysconfdir@ |
3066 | 211 | sysconfdir_exp = @sysconfdir_exp@ | ||
3067 | 212 | target_alias = @target_alias@ | 244 | target_alias = @target_alias@ |
3068 | 213 | top_build_prefix = @top_build_prefix@ | 245 | top_build_prefix = @top_build_prefix@ |
3069 | 214 | top_builddir = @top_builddir@ | 246 | top_builddir = @top_builddir@ |
3070 | 215 | top_srcdir = @top_srcdir@ | 247 | top_srcdir = @top_srcdir@ |
3071 | 216 | usbdropdir = @usbdropdir@ | 248 | usbdropdir = @usbdropdir@ |
3073 | 217 | SUBDIRS = m4 src etc doc | 249 | usbdropdir_exp = @usbdropdir_exp@ |
3074 | 250 | SUBDIRS = m4 src doc | ||
3075 | 218 | ACLOCAL_AMFLAGS = -I m4 | 251 | ACLOCAL_AMFLAGS = -I m4 |
3076 | 219 | EXTRA_DIST = DRIVERS SECURITY bootstrap HELP ChangeLog.svn | 252 | EXTRA_DIST = DRIVERS SECURITY bootstrap HELP ChangeLog.svn |
3077 | 220 | DISTCLEANFILES = ChangeLog.svn | 253 | DISTCLEANFILES = ChangeLog.svn |
3078 | @@ -228,15 +261,15 @@ | |||
3079 | 228 | @for dep in $?; do \ | 261 | @for dep in $?; do \ |
3080 | 229 | case '$(am__configure_deps)' in \ | 262 | case '$(am__configure_deps)' in \ |
3081 | 230 | *$$dep*) \ | 263 | *$$dep*) \ |
3084 | 231 | echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ | 264 | echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ |
3085 | 232 | cd $(srcdir) && $(AUTOMAKE) --gnu \ | 265 | $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ |
3086 | 233 | && exit 0; \ | 266 | && exit 0; \ |
3087 | 234 | exit 1;; \ | 267 | exit 1;; \ |
3088 | 235 | esac; \ | 268 | esac; \ |
3089 | 236 | done; \ | 269 | done; \ |
3093 | 237 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ | 270 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ |
3094 | 238 | cd $(top_srcdir) && \ | 271 | $(am__cd) $(top_srcdir) && \ |
3095 | 239 | $(AUTOMAKE) --gnu Makefile | 272 | $(AUTOMAKE) --gnu Makefile |
3096 | 240 | .PRECIOUS: Makefile | 273 | .PRECIOUS: Makefile |
3097 | 241 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | 274 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
3098 | 242 | @case '$?' in \ | 275 | @case '$?' in \ |
3099 | @@ -252,9 +285,10 @@ | |||
3100 | 252 | $(SHELL) ./config.status --recheck | 285 | $(SHELL) ./config.status --recheck |
3101 | 253 | 286 | ||
3102 | 254 | $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) | 287 | $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
3104 | 255 | cd $(srcdir) && $(AUTOCONF) | 288 | $(am__cd) $(srcdir) && $(AUTOCONF) |
3105 | 256 | $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) | 289 | $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
3107 | 257 | cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | 290 | $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) |
3108 | 291 | $(am__aclocal_m4_deps): | ||
3109 | 258 | 292 | ||
3110 | 259 | config.h: stamp-h1 | 293 | config.h: stamp-h1 |
3111 | 260 | @if test ! -f $@; then \ | 294 | @if test ! -f $@; then \ |
3112 | @@ -266,7 +300,7 @@ | |||
3113 | 266 | @rm -f stamp-h1 | 300 | @rm -f stamp-h1 |
3114 | 267 | cd $(top_builddir) && $(SHELL) ./config.status config.h | 301 | cd $(top_builddir) && $(SHELL) ./config.status config.h |
3115 | 268 | $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) | 302 | $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
3117 | 269 | cd $(top_srcdir) && $(AUTOHEADER) | 303 | ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) |
3118 | 270 | rm -f stamp-h1 | 304 | rm -f stamp-h1 |
3119 | 271 | touch $@ | 305 | touch $@ |
3120 | 272 | 306 | ||
3121 | @@ -274,8 +308,6 @@ | |||
3122 | 274 | -rm -f config.h stamp-h1 | 308 | -rm -f config.h stamp-h1 |
3123 | 275 | src/PCSC/pcsclite.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/pcsclite.h.in | 309 | src/PCSC/pcsclite.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/pcsclite.h.in |
3124 | 276 | cd $(top_builddir) && $(SHELL) ./config.status $@ | 310 | cd $(top_builddir) && $(SHELL) ./config.status $@ |
3125 | 277 | src/PCSC/reader.h: $(top_builddir)/config.status $(top_srcdir)/src/PCSC/reader.h.in | ||
3126 | 278 | cd $(top_builddir) && $(SHELL) ./config.status $@ | ||
3127 | 279 | 311 | ||
3128 | 280 | mostlyclean-libtool: | 312 | mostlyclean-libtool: |
3129 | 281 | -rm -f *.lo | 313 | -rm -f *.lo |
3130 | @@ -293,7 +325,7 @@ | |||
3131 | 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'); |
3132 | 294 | # (2) otherwise, pass the desired values on the `make' command line. | 326 | # (2) otherwise, pass the desired values on the `make' command line. |
3133 | 295 | $(RECURSIVE_TARGETS): | 327 | $(RECURSIVE_TARGETS): |
3135 | 296 | @failcom='exit 1'; \ | 328 | @fail= failcom='exit 1'; \ |
3136 | 297 | for f in x $$MAKEFLAGS; do \ | 329 | for f in x $$MAKEFLAGS; do \ |
3137 | 298 | case $$f in \ | 330 | case $$f in \ |
3138 | 299 | *=* | --[!k]*);; \ | 331 | *=* | --[!k]*);; \ |
3139 | @@ -310,7 +342,7 @@ | |||
3140 | 310 | else \ | 342 | else \ |
3141 | 311 | local_target="$$target"; \ | 343 | local_target="$$target"; \ |
3142 | 312 | fi; \ | 344 | fi; \ |
3144 | 313 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | 345 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |
3145 | 314 | || eval $$failcom; \ | 346 | || eval $$failcom; \ |
3146 | 315 | done; \ | 347 | done; \ |
3147 | 316 | if test "$$dot_seen" = "no"; then \ | 348 | if test "$$dot_seen" = "no"; then \ |
3148 | @@ -318,7 +350,7 @@ | |||
3149 | 318 | fi; test -z "$$fail" | 350 | fi; test -z "$$fail" |
3150 | 319 | 351 | ||
3151 | 320 | $(RECURSIVE_CLEAN_TARGETS): | 352 | $(RECURSIVE_CLEAN_TARGETS): |
3153 | 321 | @failcom='exit 1'; \ | 353 | @fail= failcom='exit 1'; \ |
3154 | 322 | for f in x $$MAKEFLAGS; do \ | 354 | for f in x $$MAKEFLAGS; do \ |
3155 | 323 | case $$f in \ | 355 | case $$f in \ |
3156 | 324 | *=* | --[!k]*);; \ | 356 | *=* | --[!k]*);; \ |
3157 | @@ -344,16 +376,16 @@ | |||
3158 | 344 | else \ | 376 | else \ |
3159 | 345 | local_target="$$target"; \ | 377 | local_target="$$target"; \ |
3160 | 346 | fi; \ | 378 | fi; \ |
3162 | 347 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | 379 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ |
3163 | 348 | || eval $$failcom; \ | 380 | || eval $$failcom; \ |
3164 | 349 | done && test -z "$$fail" | 381 | done && test -z "$$fail" |
3165 | 350 | tags-recursive: | 382 | tags-recursive: |
3166 | 351 | list='$(SUBDIRS)'; for subdir in $$list; do \ | 383 | list='$(SUBDIRS)'; for subdir in $$list; do \ |
3168 | 352 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | 384 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ |
3169 | 353 | done | 385 | done |
3170 | 354 | ctags-recursive: | 386 | ctags-recursive: |
3171 | 355 | list='$(SUBDIRS)'; for subdir in $$list; do \ | 387 | list='$(SUBDIRS)'; for subdir in $$list; do \ |
3173 | 356 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | 388 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ |
3174 | 357 | done | 389 | done |
3175 | 358 | 390 | ||
3176 | 359 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | 391 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
3177 | @@ -368,7 +400,7 @@ | |||
3178 | 368 | 400 | ||
3179 | 369 | TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | 401 | TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
3180 | 370 | $(TAGS_FILES) $(LISP) | 402 | $(TAGS_FILES) $(LISP) |
3182 | 371 | tags=; \ | 403 | set x; \ |
3183 | 372 | here=`pwd`; \ | 404 | here=`pwd`; \ |
3184 | 373 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | 405 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ |
3185 | 374 | include_option=--etags-include; \ | 406 | include_option=--etags-include; \ |
3186 | @@ -380,7 +412,7 @@ | |||
3187 | 380 | list='$(SUBDIRS)'; for subdir in $$list; do \ | 412 | list='$(SUBDIRS)'; for subdir in $$list; do \ |
3188 | 381 | if test "$$subdir" = .; then :; else \ | 413 | if test "$$subdir" = .; then :; else \ |
3189 | 382 | test ! -f $$subdir/TAGS || \ | 414 | test ! -f $$subdir/TAGS || \ |
3191 | 383 | tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ | 415 | set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ |
3192 | 384 | fi; \ | 416 | fi; \ |
3193 | 385 | done; \ | 417 | done; \ |
3194 | 386 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ | 418 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
3195 | @@ -389,36 +421,41 @@ | |||
3196 | 389 | done | \ | 421 | done | \ |
3197 | 390 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | 422 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
3198 | 391 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | 423 | END { if (nonempty) { for (i in files) print i; }; }'`; \ |
3200 | 392 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ | 424 | shift; \ |
3201 | 425 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
3202 | 393 | test -n "$$unique" || unique=$$empty_fix; \ | 426 | test -n "$$unique" || unique=$$empty_fix; \ |
3205 | 394 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | 427 | if test $$# -gt 0; then \ |
3206 | 395 | $$tags $$unique; \ | 428 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
3207 | 429 | "$$@" $$unique; \ | ||
3208 | 430 | else \ | ||
3209 | 431 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
3210 | 432 | $$unique; \ | ||
3211 | 433 | fi; \ | ||
3212 | 396 | fi | 434 | fi |
3213 | 397 | ctags: CTAGS | 435 | ctags: CTAGS |
3214 | 398 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | 436 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
3215 | 399 | $(TAGS_FILES) $(LISP) | 437 | $(TAGS_FILES) $(LISP) |
3216 | 400 | tags=; \ | ||
3217 | 401 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ | 438 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
3218 | 402 | unique=`for i in $$list; do \ | 439 | unique=`for i in $$list; do \ |
3219 | 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; \ |
3220 | 404 | done | \ | 441 | done | \ |
3221 | 405 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | 442 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ |
3222 | 406 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | 443 | END { if (nonempty) { for (i in files) print i; }; }'`; \ |
3224 | 407 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ | 444 | test -z "$(CTAGS_ARGS)$$unique" \ |
3225 | 408 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | 445 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
3227 | 409 | $$tags $$unique | 446 | $$unique |
3228 | 410 | 447 | ||
3229 | 411 | GTAGS: | 448 | GTAGS: |
3230 | 412 | here=`$(am__cd) $(top_builddir) && pwd` \ | 449 | here=`$(am__cd) $(top_builddir) && pwd` \ |
3233 | 413 | && cd $(top_srcdir) \ | 450 | && $(am__cd) $(top_srcdir) \ |
3234 | 414 | && gtags -i $(GTAGS_ARGS) $$here | 451 | && gtags -i $(GTAGS_ARGS) "$$here" |
3235 | 415 | 452 | ||
3236 | 416 | distclean-tags: | 453 | distclean-tags: |
3237 | 417 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | 454 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
3238 | 418 | 455 | ||
3239 | 419 | distdir: $(DISTFILES) | 456 | distdir: $(DISTFILES) |
3240 | 420 | $(am__remove_distdir) | 457 | $(am__remove_distdir) |
3242 | 421 | test -d $(distdir) || mkdir $(distdir) | 458 | test -d "$(distdir)" || mkdir "$(distdir)" |
3243 | 422 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | 459 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
3244 | 423 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | 460 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
3245 | 424 | list='$(DISTFILES)'; \ | 461 | list='$(DISTFILES)'; \ |
3246 | @@ -434,38 +471,55 @@ | |||
3247 | 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; \ |
3248 | 435 | if test -d $$d/$$file; then \ | 472 | if test -d $$d/$$file; then \ |
3249 | 436 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | 473 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ |
3250 | 474 | if test -d "$(distdir)/$$file"; then \ | ||
3251 | 475 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
3252 | 476 | fi; \ | ||
3253 | 437 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | 477 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ |
3255 | 438 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | 478 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ |
3256 | 479 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
3257 | 439 | fi; \ | 480 | fi; \ |
3259 | 440 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | 481 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ |
3260 | 441 | else \ | 482 | else \ |
3263 | 442 | test -f $(distdir)/$$file \ | 483 | test -f "$(distdir)/$$file" \ |
3264 | 443 | || cp -p $$d/$$file $(distdir)/$$file \ | 484 | || cp -p $$d/$$file "$(distdir)/$$file" \ |
3265 | 444 | || exit 1; \ | 485 | || exit 1; \ |
3266 | 445 | fi; \ | 486 | fi; \ |
3267 | 446 | done | 487 | done |
3269 | 447 | list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | 488 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |
3270 | 448 | if test "$$subdir" = .; then :; else \ | 489 | if test "$$subdir" = .; then :; else \ |
3271 | 449 | test -d "$(distdir)/$$subdir" \ | 490 | test -d "$(distdir)/$$subdir" \ |
3272 | 450 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | 491 | || $(MKDIR_P) "$(distdir)/$$subdir" \ |
3273 | 451 | || exit 1; \ | 492 | || exit 1; \ |
3277 | 452 | distdir=`$(am__cd) $(distdir) && pwd`; \ | 493 | fi; \ |
3278 | 453 | top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ | 494 | done |
3279 | 454 | (cd $$subdir && \ | 495 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ |
3280 | 496 | if test "$$subdir" = .; then :; else \ | ||
3281 | 497 | dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | ||
3282 | 498 | $(am__relativize); \ | ||
3283 | 499 | new_distdir=$$reldir; \ | ||
3284 | 500 | dir1=$$subdir; dir2="$(top_distdir)"; \ | ||
3285 | 501 | $(am__relativize); \ | ||
3286 | 502 | new_top_distdir=$$reldir; \ | ||
3287 | 503 | echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | ||
3288 | 504 | echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | ||
3289 | 505 | ($(am__cd) $$subdir && \ | ||
3290 | 455 | $(MAKE) $(AM_MAKEFLAGS) \ | 506 | $(MAKE) $(AM_MAKEFLAGS) \ |
3293 | 456 | top_distdir="$$top_distdir" \ | 507 | top_distdir="$$new_top_distdir" \ |
3294 | 457 | distdir="$$distdir/$$subdir" \ | 508 | distdir="$$new_distdir" \ |
3295 | 458 | am__remove_distdir=: \ | 509 | am__remove_distdir=: \ |
3296 | 459 | am__skip_length_check=: \ | 510 | am__skip_length_check=: \ |
3297 | 511 | am__skip_mode_fix=: \ | ||
3298 | 460 | distdir) \ | 512 | distdir) \ |
3299 | 461 | || exit 1; \ | 513 | || exit 1; \ |
3300 | 462 | fi; \ | 514 | fi; \ |
3301 | 463 | done | 515 | done |
3303 | 464 | -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ | 516 | -test -n "$(am__skip_mode_fix)" \ |
3304 | 517 | || find "$(distdir)" -type d ! -perm -755 \ | ||
3305 | 518 | -exec chmod u+rwx,go+rx {} \; -o \ | ||
3306 | 465 | ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | 519 | ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ |
3307 | 466 | ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | 520 | ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ |
3308 | 467 | ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | 521 | ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ |
3310 | 468 | || chmod -R a+r $(distdir) | 522 | || chmod -R a+r "$(distdir)" |
3311 | 469 | dist-gzip: distdir | 523 | dist-gzip: distdir |
3312 | 470 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | 524 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
3313 | 471 | $(am__remove_distdir) | 525 | $(am__remove_distdir) |
3314 | @@ -477,6 +531,10 @@ | |||
3315 | 477 | tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | 531 | tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma |
3316 | 478 | $(am__remove_distdir) | 532 | $(am__remove_distdir) |
3317 | 479 | 533 | ||
3318 | 534 | dist-xz: distdir | ||
3319 | 535 | tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | ||
3320 | 536 | $(am__remove_distdir) | ||
3321 | 537 | |||
3322 | 480 | dist-tarZ: distdir | 538 | dist-tarZ: distdir |
3323 | 481 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | 539 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z |
3324 | 482 | $(am__remove_distdir) | 540 | $(am__remove_distdir) |
3325 | @@ -500,15 +558,17 @@ | |||
3326 | 500 | distcheck: dist | 558 | distcheck: dist |
3327 | 501 | case '$(DIST_ARCHIVES)' in \ | 559 | case '$(DIST_ARCHIVES)' in \ |
3328 | 502 | *.tar.gz*) \ | 560 | *.tar.gz*) \ |
3330 | 503 | GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ | 561 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ |
3331 | 504 | *.tar.bz2*) \ | 562 | *.tar.bz2*) \ |
3333 | 505 | bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ | 563 | bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ |
3334 | 506 | *.tar.lzma*) \ | 564 | *.tar.lzma*) \ |
3336 | 507 | unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ | 565 | lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ |
3337 | 566 | *.tar.xz*) \ | ||
3338 | 567 | xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | ||
3339 | 508 | *.tar.Z*) \ | 568 | *.tar.Z*) \ |
3340 | 509 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | 569 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ |
3341 | 510 | *.shar.gz*) \ | 570 | *.shar.gz*) \ |
3343 | 511 | GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ | 571 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ |
3344 | 512 | *.zip*) \ | 572 | *.zip*) \ |
3345 | 513 | unzip $(distdir).zip ;;\ | 573 | unzip $(distdir).zip ;;\ |
3346 | 514 | esac | 574 | esac |
3347 | @@ -516,9 +576,11 @@ | |||
3348 | 516 | mkdir $(distdir)/_build | 576 | mkdir $(distdir)/_build |
3349 | 517 | mkdir $(distdir)/_inst | 577 | mkdir $(distdir)/_inst |
3350 | 518 | chmod a-w $(distdir) | 578 | chmod a-w $(distdir) |
3351 | 579 | test -d $(distdir)/_build || exit 0; \ | ||
3352 | 519 | dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | 580 | dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ |
3353 | 520 | && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | 581 | && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ |
3355 | 521 | && cd $(distdir)/_build \ | 582 | && am__cwd=`pwd` \ |
3356 | 583 | && $(am__cd) $(distdir)/_build \ | ||
3357 | 522 | && ../configure --srcdir=.. --prefix="$$dc_install_base" \ | 584 | && ../configure --srcdir=.. --prefix="$$dc_install_base" \ |
3358 | 523 | $(DISTCHECK_CONFIGURE_FLAGS) \ | 585 | $(DISTCHECK_CONFIGURE_FLAGS) \ |
3359 | 524 | && $(MAKE) $(AM_MAKEFLAGS) \ | 586 | && $(MAKE) $(AM_MAKEFLAGS) \ |
3360 | @@ -540,13 +602,15 @@ | |||
3361 | 540 | && rm -rf "$$dc_destdir" \ | 602 | && rm -rf "$$dc_destdir" \ |
3362 | 541 | && $(MAKE) $(AM_MAKEFLAGS) dist \ | 603 | && $(MAKE) $(AM_MAKEFLAGS) dist \ |
3363 | 542 | && rm -rf $(DIST_ARCHIVES) \ | 604 | && rm -rf $(DIST_ARCHIVES) \ |
3365 | 543 | && $(MAKE) $(AM_MAKEFLAGS) distcleancheck | 605 | && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ |
3366 | 606 | && cd "$$am__cwd" \ | ||
3367 | 607 | || exit 1 | ||
3368 | 544 | $(am__remove_distdir) | 608 | $(am__remove_distdir) |
3369 | 545 | @(echo "$(distdir) archives ready for distribution: "; \ | 609 | @(echo "$(distdir) archives ready for distribution: "; \ |
3370 | 546 | list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | 610 | list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ |
3371 | 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' |
3372 | 548 | distuninstallcheck: | 612 | distuninstallcheck: |
3374 | 549 | @cd $(distuninstallcheck_dir) \ | 613 | @$(am__cd) '$(distuninstallcheck_dir)' \ |
3375 | 550 | && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ | 614 | && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ |
3376 | 551 | || { echo "ERROR: files left after uninstall:" ; \ | 615 | || { echo "ERROR: files left after uninstall:" ; \ |
3377 | 552 | if test -n "$(DESTDIR)"; then \ | 616 | if test -n "$(DESTDIR)"; then \ |
3378 | @@ -588,6 +652,7 @@ | |||
3379 | 588 | 652 | ||
3380 | 589 | distclean-generic: | 653 | distclean-generic: |
3381 | 590 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | 654 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
3382 | 655 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
3383 | 591 | -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) | 656 | -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) |
3384 | 592 | 657 | ||
3385 | 593 | maintainer-clean-generic: | 658 | maintainer-clean-generic: |
3386 | @@ -609,6 +674,8 @@ | |||
3387 | 609 | 674 | ||
3388 | 610 | html: html-recursive | 675 | html: html-recursive |
3389 | 611 | 676 | ||
3390 | 677 | html-am: | ||
3391 | 678 | |||
3392 | 612 | info: info-recursive | 679 | info: info-recursive |
3393 | 613 | 680 | ||
3394 | 614 | info-am: | 681 | info-am: |
3395 | @@ -617,18 +684,28 @@ | |||
3396 | 617 | 684 | ||
3397 | 618 | install-dvi: install-dvi-recursive | 685 | install-dvi: install-dvi-recursive |
3398 | 619 | 686 | ||
3399 | 687 | install-dvi-am: | ||
3400 | 688 | |||
3401 | 620 | install-exec-am: | 689 | install-exec-am: |
3402 | 621 | 690 | ||
3403 | 622 | install-html: install-html-recursive | 691 | install-html: install-html-recursive |
3404 | 623 | 692 | ||
3405 | 693 | install-html-am: | ||
3406 | 694 | |||
3407 | 624 | install-info: install-info-recursive | 695 | install-info: install-info-recursive |
3408 | 625 | 696 | ||
3409 | 697 | install-info-am: | ||
3410 | 698 | |||
3411 | 626 | install-man: | 699 | install-man: |
3412 | 627 | 700 | ||
3413 | 628 | install-pdf: install-pdf-recursive | 701 | install-pdf: install-pdf-recursive |
3414 | 629 | 702 | ||
3415 | 703 | install-pdf-am: | ||
3416 | 704 | |||
3417 | 630 | install-ps: install-ps-recursive | 705 | install-ps: install-ps-recursive |
3418 | 631 | 706 | ||
3419 | 707 | install-ps-am: | ||
3420 | 708 | |||
3421 | 632 | installcheck-am: | 709 | installcheck-am: |
3422 | 633 | 710 | ||
3423 | 634 | maintainer-clean: maintainer-clean-recursive | 711 | maintainer-clean: maintainer-clean-recursive |
3424 | @@ -651,25 +728,28 @@ | |||
3425 | 651 | 728 | ||
3426 | 652 | uninstall-am: | 729 | uninstall-am: |
3427 | 653 | 730 | ||
3430 | 654 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ | 731 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ |
3431 | 655 | install-strip | 732 | ctags-recursive install-am install-strip tags-recursive |
3432 | 656 | 733 | ||
3433 | 657 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | 734 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ |
3434 | 658 | all all-am am--refresh check check-am clean clean-generic \ | 735 | all all-am am--refresh check check-am clean clean-generic \ |
3435 | 659 | clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ | 736 | clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ |
3449 | 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 \ |
3450 | 661 | distclean distclean-generic distclean-hdr distclean-libtool \ | 738 | distcheck distclean distclean-generic distclean-hdr \ |
3451 | 662 | distclean-tags distcleancheck distdir distuninstallcheck dvi \ | 739 | distclean-libtool distclean-tags distcleancheck distdir \ |
3452 | 663 | dvi-am html html-am info info-am install install-am \ | 740 | distuninstallcheck dvi dvi-am html html-am info info-am \ |
3453 | 664 | install-data install-data-am install-dvi install-dvi-am \ | 741 | install install-am install-data install-data-am install-dvi \ |
3454 | 665 | install-exec install-exec-am install-html install-html-am \ | 742 | install-dvi-am install-exec install-exec-am install-html \ |
3455 | 666 | install-info install-info-am install-man install-pdf \ | 743 | install-html-am install-info install-info-am install-man \ |
3456 | 667 | install-pdf-am install-ps install-ps-am install-strip \ | 744 | install-pdf install-pdf-am install-ps install-ps-am \ |
3457 | 668 | installcheck installcheck-am installdirs installdirs-am \ | 745 | install-strip installcheck installcheck-am installdirs \ |
3458 | 669 | maintainer-clean maintainer-clean-generic mostlyclean \ | 746 | installdirs-am maintainer-clean maintainer-clean-generic \ |
3459 | 670 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | 747 | mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ |
3460 | 671 | tags tags-recursive uninstall uninstall-am | 748 | ps ps-am tags tags-recursive uninstall uninstall-am |
3461 | 672 | 749 | ||
3462 | 750 | |||
3463 | 751 | fix-rights: | ||
3464 | 752 | $(MAKE) -C src $@ | ||
3465 | 673 | 753 | ||
3466 | 674 | ChangeLog.svn: | 754 | ChangeLog.svn: |
3467 | 675 | -svn2cl --group-by-day --stdout --include-rev --reparagraph | perl -pe \ | 755 | -svn2cl --group-by-day --stdout --include-rev --reparagraph | perl -pe \ |
3468 | @@ -683,6 +763,7 @@ | |||
3469 | 683 | s/ aet-guest/ Antti Tapaninen/; \ | 763 | s/ aet-guest/ Antti Tapaninen/; \ |
3470 | 684 | s/ sauveron-guest/ Damien Sauveron/; \ | 764 | s/ sauveron-guest/ Damien Sauveron/; \ |
3471 | 685 | s+trunk/PCSC/++g;' > $@ | 765 | s+trunk/PCSC/++g;' > $@ |
3472 | 766 | |||
3473 | 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. |
3474 | 687 | # Otherwise a system limit (for SysV at least) may be exceeded. | 768 | # Otherwise a system limit (for SysV at least) may be exceeded. |
3475 | 688 | .NOEXPORT: | 769 | .NOEXPORT: |
3476 | 689 | 770 | ||
3477 | === modified file 'TODO' | |||
3478 | --- TODO 2009-06-02 16:58:01 +0000 | |||
3479 | +++ TODO 2011-03-19 10:51:41 +0000 | |||
3480 | @@ -1,10 +1,5 @@ | |||
3481 | 1 | - include Apple patches and improvements (if possible/needed) | 1 | - include Apple patches and improvements (if possible/needed) |
3482 | 2 | 2 | ||
3483 | 3 | - power on the card _only_ if an application requests a connection | ||
3484 | 4 | see Alioth bug #301965 | ||
3485 | 5 | That could be implemented by polling the reader only if an application | ||
3486 | 6 | requests it. | ||
3487 | 7 | |||
3488 | 8 | - allow to have pcscd and libpcsclite on two different machines. | 3 | - allow to have pcscd and libpcsclite on two different machines. |
3489 | 9 | That would be needed to support remote PAM login. | 4 | That would be needed to support remote PAM login. |
3490 | 10 | Maybe use unix2tcp (http://dizzy.roedu.net/unix2tcp/) | 5 | Maybe use unix2tcp (http://dizzy.roedu.net/unix2tcp/) |
3491 | @@ -25,4 +20,9 @@ | |||
3492 | 25 | mode. | 20 | mode. |
3493 | 26 | http://www.opensc-project.org/pipermail/opensc-devel/2009-February/011801.html | 21 | http://www.opensc-project.org/pipermail/opensc-devel/2009-February/011801.html |
3494 | 27 | 22 | ||
3496 | 28 | February 2009 | 23 | |
3497 | 24 | For embedded/constrained systems | ||
3498 | 25 | |||
3499 | 26 | - use static driver instead of reader polling and dynamic driver loading | ||
3500 | 27 | |||
3501 | 28 | October 2010 | ||
3502 | 29 | 29 | ||
3503 | === modified file 'aclocal.m4' | |||
3504 | --- aclocal.m4 2010-07-10 11:15:59 +0000 | |||
3505 | +++ aclocal.m4 2011-03-19 10:51:41 +0000 | |||
3506 | @@ -1,7 +1,7 @@ | |||
3508 | 1 | # generated automatically by aclocal 1.10.2 -*- Autoconf -*- | 1 | # generated automatically by aclocal 1.11.1 -*- Autoconf -*- |
3509 | 2 | 2 | ||
3510 | 3 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 3 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
3512 | 4 | # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 4 | # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
3513 | 5 | # This file is free software; the Free Software Foundation | 5 | # This file is free software; the Free Software Foundation |
3514 | 6 | # gives unlimited permission to copy and/or distribute it, | 6 | # gives unlimited permission to copy and/or distribute it, |
3515 | 7 | # with or without modifications, as long as this notice is preserved. | 7 | # with or without modifications, as long as this notice is preserved. |
3516 | @@ -13,13 +13,14 @@ | |||
3517 | 13 | 13 | ||
3518 | 14 | m4_ifndef([AC_AUTOCONF_VERSION], | 14 | m4_ifndef([AC_AUTOCONF_VERSION], |
3519 | 15 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | 15 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
3522 | 16 | m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, | 16 | m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, |
3523 | 17 | [m4_warning([this file was generated for autoconf 2.63. | 17 | [m4_warning([this file was generated for autoconf 2.67. |
3524 | 18 | You have another version of autoconf. It may work, but is not guaranteed to. | 18 | You have another version of autoconf. It may work, but is not guaranteed to. |
3525 | 19 | If you have problems, you may need to regenerate the build system entirely. | 19 | If you have problems, you may need to regenerate the build system entirely. |
3526 | 20 | To do so, use the procedure documented by the package, typically `autoreconf'.])]) | 20 | To do so, use the procedure documented by the package, typically `autoreconf'.])]) |
3527 | 21 | 21 | ||
3528 | 22 | # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- | 22 | # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- |
3529 | 23 | # serial 1 (pkg-config-0.24) | ||
3530 | 23 | # | 24 | # |
3531 | 24 | # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. | 25 | # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. |
3532 | 25 | # | 26 | # |
3533 | @@ -47,7 +48,10 @@ | |||
3534 | 47 | AC_DEFUN([PKG_PROG_PKG_CONFIG], | 48 | AC_DEFUN([PKG_PROG_PKG_CONFIG], |
3535 | 48 | [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) | 49 | [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) |
3536 | 49 | m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) | 50 | m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) |
3538 | 50 | AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl | 51 | AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) |
3539 | 52 | AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) | ||
3540 | 53 | AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) | ||
3541 | 54 | |||
3542 | 51 | if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then | 55 | if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then |
3543 | 52 | AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) | 56 | AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) |
3544 | 53 | fi | 57 | fi |
3545 | @@ -60,7 +64,6 @@ | |||
3546 | 60 | AC_MSG_RESULT([no]) | 64 | AC_MSG_RESULT([no]) |
3547 | 61 | PKG_CONFIG="" | 65 | PKG_CONFIG="" |
3548 | 62 | fi | 66 | fi |
3549 | 63 | |||
3550 | 64 | fi[]dnl | 67 | fi[]dnl |
3551 | 65 | ])# PKG_PROG_PKG_CONFIG | 68 | ])# PKG_PROG_PKG_CONFIG |
3552 | 66 | 69 | ||
3553 | @@ -69,34 +72,31 @@ | |||
3554 | 69 | # Check to see whether a particular set of modules exists. Similar | 72 | # Check to see whether a particular set of modules exists. Similar |
3555 | 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. |
3556 | 71 | # | 74 | # |
3561 | 72 | # | 75 | # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) |
3562 | 73 | # Similar to PKG_CHECK_MODULES, make sure that the first instance of | 76 | # only at the first occurence in configure.ac, so if the first place |
3563 | 74 | # this or PKG_CHECK_MODULES is called, or make sure to call | 77 | # it's called might be skipped (such as if it is within an "if", you |
3564 | 75 | # PKG_CHECK_EXISTS manually | 78 | # have to call PKG_CHECK_EXISTS manually |
3565 | 76 | # -------------------------------------------------------------- | 79 | # -------------------------------------------------------------- |
3566 | 77 | AC_DEFUN([PKG_CHECK_EXISTS], | 80 | AC_DEFUN([PKG_CHECK_EXISTS], |
3567 | 78 | [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl | 81 | [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl |
3568 | 79 | if test -n "$PKG_CONFIG" && \ | 82 | if test -n "$PKG_CONFIG" && \ |
3569 | 80 | AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then | 83 | AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then |
3571 | 81 | m4_ifval([$2], [$2], [:]) | 84 | m4_default([$2], [:]) |
3572 | 82 | m4_ifvaln([$3], [else | 85 | m4_ifvaln([$3], [else |
3573 | 83 | $3])dnl | 86 | $3])dnl |
3574 | 84 | fi]) | 87 | fi]) |
3575 | 85 | 88 | ||
3576 | 86 | |||
3577 | 87 | # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) | 89 | # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) |
3578 | 88 | # --------------------------------------------- | 90 | # --------------------------------------------- |
3579 | 89 | m4_define([_PKG_CONFIG], | 91 | m4_define([_PKG_CONFIG], |
3590 | 90 | [if test -n "$PKG_CONFIG"; then | 92 | [if test -n "$$1"; then |
3591 | 91 | if test -n "$$1"; then | 93 | pkg_cv_[]$1="$$1" |
3592 | 92 | pkg_cv_[]$1="$$1" | 94 | elif test -n "$PKG_CONFIG"; then |
3593 | 93 | else | 95 | PKG_CHECK_EXISTS([$3], |
3594 | 94 | PKG_CHECK_EXISTS([$3], | 96 | [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], |
3595 | 95 | [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], | 97 | [pkg_failed=yes]) |
3596 | 96 | [pkg_failed=yes]) | 98 | else |
3597 | 97 | fi | 99 | pkg_failed=untried |
3588 | 98 | else | ||
3589 | 99 | pkg_failed=untried | ||
3598 | 100 | fi[]dnl | 100 | fi[]dnl |
3599 | 101 | ])# _PKG_CONFIG | 101 | ])# _PKG_CONFIG |
3600 | 102 | 102 | ||
3601 | @@ -138,16 +138,17 @@ | |||
3602 | 138 | See the pkg-config man page for more details.]) | 138 | See the pkg-config man page for more details.]) |
3603 | 139 | 139 | ||
3604 | 140 | if test $pkg_failed = yes; then | 140 | if test $pkg_failed = yes; then |
3605 | 141 | AC_MSG_RESULT([no]) | ||
3606 | 141 | _PKG_SHORT_ERRORS_SUPPORTED | 142 | _PKG_SHORT_ERRORS_SUPPORTED |
3607 | 142 | if test $_pkg_short_errors_supported = yes; then | 143 | if test $_pkg_short_errors_supported = yes; then |
3609 | 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` |
3610 | 144 | else | 145 | else |
3612 | 145 | $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` | 146 | $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` |
3613 | 146 | fi | 147 | fi |
3614 | 147 | # Put the nasty error message in config.log where it belongs | 148 | # Put the nasty error message in config.log where it belongs |
3615 | 148 | echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD | 149 | echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD |
3616 | 149 | 150 | ||
3618 | 150 | ifelse([$4], , [AC_MSG_ERROR(dnl | 151 | m4_default([$4], [AC_MSG_ERROR( |
3619 | 151 | [Package requirements ($2) were not met: | 152 | [Package requirements ($2) were not met: |
3620 | 152 | 153 | ||
3621 | 153 | $$1_PKG_ERRORS | 154 | $$1_PKG_ERRORS |
3622 | @@ -155,25 +156,24 @@ | |||
3623 | 155 | Consider adjusting the PKG_CONFIG_PATH environment variable if you | 156 | Consider adjusting the PKG_CONFIG_PATH environment variable if you |
3624 | 156 | installed software in a non-standard prefix. | 157 | installed software in a non-standard prefix. |
3625 | 157 | 158 | ||
3630 | 158 | _PKG_TEXT | 159 | _PKG_TEXT])[]dnl |
3631 | 159 | ])], | 160 | ]) |
3628 | 160 | [AC_MSG_RESULT([no]) | ||
3629 | 161 | $4]) | ||
3632 | 162 | elif test $pkg_failed = untried; then | 161 | elif test $pkg_failed = untried; then |
3634 | 163 | ifelse([$4], , [AC_MSG_FAILURE(dnl | 162 | AC_MSG_RESULT([no]) |
3635 | 163 | m4_default([$4], [AC_MSG_FAILURE( | ||
3636 | 164 | [The pkg-config script could not be found or is too old. Make sure it | 164 | [The pkg-config script could not be found or is too old. Make sure it |
3637 | 165 | is in your PATH or set the PKG_CONFIG environment variable to the full | 165 | is in your PATH or set the PKG_CONFIG environment variable to the full |
3638 | 166 | path to pkg-config. | 166 | path to pkg-config. |
3639 | 167 | 167 | ||
3640 | 168 | _PKG_TEXT | 168 | _PKG_TEXT |
3641 | 169 | 169 | ||
3644 | 170 | To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], | 170 | To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl |
3645 | 171 | [$4]) | 171 | ]) |
3646 | 172 | else | 172 | else |
3647 | 173 | $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS | 173 | $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS |
3648 | 174 | $1[]_LIBS=$pkg_cv_[]$1[]_LIBS | 174 | $1[]_LIBS=$pkg_cv_[]$1[]_LIBS |
3649 | 175 | AC_MSG_RESULT([yes]) | 175 | AC_MSG_RESULT([yes]) |
3651 | 176 | ifelse([$3], , :, [$3]) | 176 | $3 |
3652 | 177 | fi[]dnl | 177 | fi[]dnl |
3653 | 178 | ])# PKG_CHECK_MODULES | 178 | ])# PKG_CHECK_MODULES |
3654 | 179 | 179 | ||
3655 | @@ -189,10 +189,10 @@ | |||
3656 | 189 | # generated from the m4 files accompanying Automake X.Y. | 189 | # generated from the m4 files accompanying Automake X.Y. |
3657 | 190 | # (This private macro should not be called outside this file.) | 190 | # (This private macro should not be called outside this file.) |
3658 | 191 | AC_DEFUN([AM_AUTOMAKE_VERSION], | 191 | AC_DEFUN([AM_AUTOMAKE_VERSION], |
3660 | 192 | [am__api_version='1.10' | 192 | [am__api_version='1.11' |
3661 | 193 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to | 193 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
3662 | 194 | dnl require some minimum version. Point them to the right macro. | 194 | dnl require some minimum version. Point them to the right macro. |
3664 | 195 | m4_if([$1], [1.10.2], [], | 195 | m4_if([$1], [1.11.1], [], |
3665 | 196 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl | 196 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
3666 | 197 | ]) | 197 | ]) |
3667 | 198 | 198 | ||
3668 | @@ -208,7 +208,7 @@ | |||
3669 | 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. |
3670 | 209 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. | 209 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
3671 | 210 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], | 210 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
3673 | 211 | [AM_AUTOMAKE_VERSION([1.10.2])dnl | 211 | [AM_AUTOMAKE_VERSION([1.11.1])dnl |
3674 | 212 | m4_ifndef([AC_AUTOCONF_VERSION], | 212 | m4_ifndef([AC_AUTOCONF_VERSION], |
3675 | 213 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | 213 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
3676 | 214 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) | 214 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
3677 | @@ -268,14 +268,14 @@ | |||
3678 | 268 | 268 | ||
3679 | 269 | # AM_CONDITIONAL -*- Autoconf -*- | 269 | # AM_CONDITIONAL -*- Autoconf -*- |
3680 | 270 | 270 | ||
3682 | 271 | # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 | 271 | # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 |
3683 | 272 | # Free Software Foundation, Inc. | 272 | # Free Software Foundation, Inc. |
3684 | 273 | # | 273 | # |
3685 | 274 | # This file is free software; the Free Software Foundation | 274 | # This file is free software; the Free Software Foundation |
3686 | 275 | # gives unlimited permission to copy and/or distribute it, | 275 | # gives unlimited permission to copy and/or distribute it, |
3687 | 276 | # with or without modifications, as long as this notice is preserved. | 276 | # with or without modifications, as long as this notice is preserved. |
3688 | 277 | 277 | ||
3690 | 278 | # serial 8 | 278 | # serial 9 |
3691 | 279 | 279 | ||
3692 | 280 | # AM_CONDITIONAL(NAME, SHELL-CONDITION) | 280 | # AM_CONDITIONAL(NAME, SHELL-CONDITION) |
3693 | 281 | # ------------------------------------- | 281 | # ------------------------------------- |
3694 | @@ -288,6 +288,7 @@ | |||
3695 | 288 | AC_SUBST([$1_FALSE])dnl | 288 | AC_SUBST([$1_FALSE])dnl |
3696 | 289 | _AM_SUBST_NOTMAKE([$1_TRUE])dnl | 289 | _AM_SUBST_NOTMAKE([$1_TRUE])dnl |
3697 | 290 | _AM_SUBST_NOTMAKE([$1_FALSE])dnl | 290 | _AM_SUBST_NOTMAKE([$1_FALSE])dnl |
3698 | 291 | m4_define([_AM_COND_VALUE_$1], [$2])dnl | ||
3699 | 291 | if $2; then | 292 | if $2; then |
3700 | 292 | $1_TRUE= | 293 | $1_TRUE= |
3701 | 293 | $1_FALSE='#' | 294 | $1_FALSE='#' |
3702 | @@ -301,14 +302,14 @@ | |||
3703 | 301 | Usually this means the macro was only invoked conditionally.]]) | 302 | Usually this means the macro was only invoked conditionally.]]) |
3704 | 302 | fi])]) | 303 | fi])]) |
3705 | 303 | 304 | ||
3707 | 304 | # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 | 305 | # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 |
3708 | 305 | # Free Software Foundation, Inc. | 306 | # Free Software Foundation, Inc. |
3709 | 306 | # | 307 | # |
3710 | 307 | # This file is free software; the Free Software Foundation | 308 | # This file is free software; the Free Software Foundation |
3711 | 308 | # gives unlimited permission to copy and/or distribute it, | 309 | # gives unlimited permission to copy and/or distribute it, |
3712 | 309 | # with or without modifications, as long as this notice is preserved. | 310 | # with or without modifications, as long as this notice is preserved. |
3713 | 310 | 311 | ||
3715 | 311 | # serial 9 | 312 | # serial 10 |
3716 | 312 | 313 | ||
3717 | 313 | # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be | 314 | # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be |
3718 | 314 | # written in clear, in which case automake, when reading aclocal.m4, | 315 | # written in clear, in which case automake, when reading aclocal.m4, |
3719 | @@ -365,6 +366,16 @@ | |||
3720 | 365 | if test "$am_compiler_list" = ""; then | 366 | if test "$am_compiler_list" = ""; then |
3721 | 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` |
3722 | 367 | fi | 368 | fi |
3723 | 369 | am__universal=false | ||
3724 | 370 | m4_case([$1], [CC], | ||
3725 | 371 | [case " $depcc " in #( | ||
3726 | 372 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
3727 | 373 | esac], | ||
3728 | 374 | [CXX], | ||
3729 | 375 | [case " $depcc " in #( | ||
3730 | 376 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
3731 | 377 | esac]) | ||
3732 | 378 | |||
3733 | 368 | for depmode in $am_compiler_list; do | 379 | for depmode in $am_compiler_list; do |
3734 | 369 | # Setup a source with many dependencies, because some compilers | 380 | # Setup a source with many dependencies, because some compilers |
3735 | 370 | # like to wrap large dependency lists on column 80 (with \), and | 381 | # like to wrap large dependency lists on column 80 (with \), and |
3736 | @@ -382,7 +393,17 @@ | |||
3737 | 382 | done | 393 | done |
3738 | 383 | echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | 394 | echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf |
3739 | 384 | 395 | ||
3740 | 396 | # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||
3741 | 397 | # mode. It turns out that the SunPro C++ compiler does not properly | ||
3742 | 398 | # handle `-M -o', and we need to detect this. Also, some Intel | ||
3743 | 399 | # versions had trouble with output in subdirs | ||
3744 | 400 | am__obj=sub/conftest.${OBJEXT-o} | ||
3745 | 401 | am__minus_obj="-o $am__obj" | ||
3746 | 385 | case $depmode in | 402 | case $depmode in |
3747 | 403 | gcc) | ||
3748 | 404 | # This depmode causes a compiler race in universal mode. | ||
3749 | 405 | test "$am__universal" = false || continue | ||
3750 | 406 | ;; | ||
3751 | 386 | nosideeffect) | 407 | nosideeffect) |
3752 | 387 | # after this tag, mechanisms are not by side-effect, so they'll | 408 | # after this tag, mechanisms are not by side-effect, so they'll |
3753 | 388 | # only be used when explicitly requested | 409 | # only be used when explicitly requested |
3754 | @@ -392,19 +413,23 @@ | |||
3755 | 392 | break | 413 | break |
3756 | 393 | fi | 414 | fi |
3757 | 394 | ;; | 415 | ;; |
3758 | 416 | msvisualcpp | msvcmsys) | ||
3759 | 417 | # This compiler won't grok `-c -o', but also, the minuso test has | ||
3760 | 418 | # not run yet. These depmodes are late enough in the game, and | ||
3761 | 419 | # so weak that their functioning should not be impacted. | ||
3762 | 420 | am__obj=conftest.${OBJEXT-o} | ||
3763 | 421 | am__minus_obj= | ||
3764 | 422 | ;; | ||
3765 | 395 | none) break ;; | 423 | none) break ;; |
3766 | 396 | esac | 424 | esac |
3767 | 397 | # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||
3768 | 398 | # mode. It turns out that the SunPro C++ compiler does not properly | ||
3769 | 399 | # handle `-M -o', and we need to detect this. | ||
3770 | 400 | if depmode=$depmode \ | 425 | if depmode=$depmode \ |
3772 | 401 | source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ | 426 | source=sub/conftest.c object=$am__obj \ |
3773 | 402 | depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | 427 | depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ |
3775 | 403 | $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ | 428 | $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ |
3776 | 404 | >/dev/null 2>conftest.err && | 429 | >/dev/null 2>conftest.err && |
3777 | 405 | grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && | 430 | grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && |
3778 | 406 | grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | 431 | grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && |
3780 | 407 | grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && | 432 | grep $am__obj sub/conftest.Po > /dev/null 2>&1 && |
3781 | 408 | ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | 433 | ${MAKE-make} -s -f confmf > /dev/null 2>&1; then |
3782 | 409 | # icc doesn't choke on unknown options, it will just issue warnings | 434 | # icc doesn't choke on unknown options, it will just issue warnings |
3783 | 410 | # or remarks (even with -Werror). So we grep stderr for any message | 435 | # or remarks (even with -Werror). So we grep stderr for any message |
3784 | @@ -468,59 +493,61 @@ | |||
3785 | 468 | # gives unlimited permission to copy and/or distribute it, | 493 | # gives unlimited permission to copy and/or distribute it, |
3786 | 469 | # with or without modifications, as long as this notice is preserved. | 494 | # with or without modifications, as long as this notice is preserved. |
3787 | 470 | 495 | ||
3789 | 471 | #serial 4 | 496 | #serial 5 |
3790 | 472 | 497 | ||
3791 | 473 | # _AM_OUTPUT_DEPENDENCY_COMMANDS | 498 | # _AM_OUTPUT_DEPENDENCY_COMMANDS |
3792 | 474 | # ------------------------------ | 499 | # ------------------------------ |
3793 | 475 | AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], | 500 | AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], |
3840 | 476 | [# Autoconf 2.62 quotes --file arguments for eval, but not when files | 501 | [{ |
3841 | 477 | # are listed without --file. Let's play safe and only enable the eval | 502 | # Autoconf 2.62 quotes --file arguments for eval, but not when files |
3842 | 478 | # if we detect the quoting. | 503 | # are listed without --file. Let's play safe and only enable the eval |
3843 | 479 | case $CONFIG_FILES in | 504 | # if we detect the quoting. |
3844 | 480 | *\'*) eval set x "$CONFIG_FILES" ;; | 505 | case $CONFIG_FILES in |
3845 | 481 | *) set x $CONFIG_FILES ;; | 506 | *\'*) eval set x "$CONFIG_FILES" ;; |
3846 | 482 | esac | 507 | *) set x $CONFIG_FILES ;; |
3847 | 483 | shift | 508 | esac |
3848 | 484 | for mf | 509 | shift |
3849 | 485 | do | 510 | for mf |
3850 | 486 | # Strip MF so we end up with the name of the file. | 511 | do |
3851 | 487 | mf=`echo "$mf" | sed -e 's/:.*$//'` | 512 | # Strip MF so we end up with the name of the file. |
3852 | 488 | # Check whether this is an Automake generated Makefile or not. | 513 | mf=`echo "$mf" | sed -e 's/:.*$//'` |
3853 | 489 | # We used to match only the files named `Makefile.in', but | 514 | # Check whether this is an Automake generated Makefile or not. |
3854 | 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 |
3855 | 491 | # Grep'ing the first line is not enough: some people post-process | 516 | # some people rename them; so instead we look at the file content. |
3856 | 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 |
3857 | 493 | # Grep'ing the whole file is not good either: AIX grep has a line | 518 | # each Makefile.in and add a new line on top of each file to say so. |
3858 | 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 |
3859 | 495 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | 520 | # limit of 2048, but all sed's we know have understand at least 4000. |
3860 | 496 | dirpart=`AS_DIRNAME("$mf")` | 521 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then |
3861 | 497 | else | 522 | dirpart=`AS_DIRNAME("$mf")` |
3862 | 498 | continue | 523 | else |
3863 | 499 | fi | 524 | continue |
3864 | 500 | # Extract the definition of DEPDIR, am__include, and am__quote | 525 | fi |
3865 | 501 | # from the Makefile without running `make'. | 526 | # Extract the definition of DEPDIR, am__include, and am__quote |
3866 | 502 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | 527 | # from the Makefile without running `make'. |
3867 | 503 | test -z "$DEPDIR" && continue | 528 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` |
3868 | 504 | am__include=`sed -n 's/^am__include = //p' < "$mf"` | 529 | test -z "$DEPDIR" && continue |
3869 | 505 | test -z "am__include" && continue | 530 | am__include=`sed -n 's/^am__include = //p' < "$mf"` |
3870 | 506 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | 531 | test -z "am__include" && continue |
3871 | 507 | # When using ansi2knr, U may be empty or an underscore; expand it | 532 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` |
3872 | 508 | U=`sed -n 's/^U = //p' < "$mf"` | 533 | # When using ansi2knr, U may be empty or an underscore; expand it |
3873 | 509 | # Find all dependency output files, they are included files with | 534 | U=`sed -n 's/^U = //p' < "$mf"` |
3874 | 510 | # $(DEPDIR) in their names. We invoke sed twice because it is the | 535 | # Find all dependency output files, they are included files with |
3875 | 511 | # simplest approach to changing $(DEPDIR) to its actual value in the | 536 | # $(DEPDIR) in their names. We invoke sed twice because it is the |
3876 | 512 | # expansion. | 537 | # simplest approach to changing $(DEPDIR) to its actual value in the |
3877 | 513 | for file in `sed -n " | 538 | # expansion. |
3878 | 514 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | 539 | for file in `sed -n " |
3879 | 515 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do | 540 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ |
3880 | 516 | # Make sure the directory exists. | 541 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do |
3881 | 517 | test -f "$dirpart/$file" && continue | 542 | # Make sure the directory exists. |
3882 | 518 | fdir=`AS_DIRNAME(["$file"])` | 543 | test -f "$dirpart/$file" && continue |
3883 | 519 | AS_MKDIR_P([$dirpart/$fdir]) | 544 | fdir=`AS_DIRNAME(["$file"])` |
3884 | 520 | # echo "creating $dirpart/$file" | 545 | AS_MKDIR_P([$dirpart/$fdir]) |
3885 | 521 | echo '# dummy' > "$dirpart/$file" | 546 | # echo "creating $dirpart/$file" |
3886 | 547 | echo '# dummy' > "$dirpart/$file" | ||
3887 | 548 | done | ||
3888 | 522 | done | 549 | done |
3890 | 523 | done | 550 | } |
3891 | 524 | ])# _AM_OUTPUT_DEPENDENCY_COMMANDS | 551 | ])# _AM_OUTPUT_DEPENDENCY_COMMANDS |
3892 | 525 | 552 | ||
3893 | 526 | 553 | ||
3894 | @@ -552,13 +579,13 @@ | |||
3895 | 552 | # Do all the work for Automake. -*- Autoconf -*- | 579 | # Do all the work for Automake. -*- Autoconf -*- |
3896 | 553 | 580 | ||
3897 | 554 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 581 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
3899 | 555 | # 2005, 2006, 2008 Free Software Foundation, Inc. | 582 | # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. |
3900 | 556 | # | 583 | # |
3901 | 557 | # This file is free software; the Free Software Foundation | 584 | # This file is free software; the Free Software Foundation |
3902 | 558 | # gives unlimited permission to copy and/or distribute it, | 585 | # gives unlimited permission to copy and/or distribute it, |
3903 | 559 | # with or without modifications, as long as this notice is preserved. | 586 | # with or without modifications, as long as this notice is preserved. |
3904 | 560 | 587 | ||
3906 | 561 | # serial 13 | 588 | # serial 16 |
3907 | 562 | 589 | ||
3908 | 563 | # This macro actually does too much. Some checks are only needed if | 590 | # This macro actually does too much. Some checks are only needed if |
3909 | 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. |
3910 | @@ -575,7 +602,7 @@ | |||
3911 | 575 | # arguments mandatory, and then we can depend on a new Autoconf | 602 | # arguments mandatory, and then we can depend on a new Autoconf |
3912 | 576 | # release and drop the old call support. | 603 | # release and drop the old call support. |
3913 | 577 | AC_DEFUN([AM_INIT_AUTOMAKE], | 604 | AC_DEFUN([AM_INIT_AUTOMAKE], |
3915 | 578 | [AC_PREREQ([2.60])dnl | 605 | [AC_PREREQ([2.62])dnl |
3916 | 579 | dnl Autoconf wants to disallow AM_ names. We explicitly allow | 606 | dnl Autoconf wants to disallow AM_ names. We explicitly allow |
3917 | 580 | dnl the ones we care about. | 607 | dnl the ones we care about. |
3918 | 581 | m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl | 608 | m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl |
3919 | @@ -626,8 +653,8 @@ | |||
3920 | 626 | AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) | 653 | AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) |
3921 | 627 | AM_MISSING_PROG(AUTOHEADER, autoheader) | 654 | AM_MISSING_PROG(AUTOHEADER, autoheader) |
3922 | 628 | AM_MISSING_PROG(MAKEINFO, makeinfo) | 655 | AM_MISSING_PROG(MAKEINFO, makeinfo) |
3925 | 629 | AM_PROG_INSTALL_SH | 656 | AC_REQUIRE([AM_PROG_INSTALL_SH])dnl |
3926 | 630 | AM_PROG_INSTALL_STRIP | 657 | AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl |
3927 | 631 | AC_REQUIRE([AM_PROG_MKDIR_P])dnl | 658 | AC_REQUIRE([AM_PROG_MKDIR_P])dnl |
3928 | 632 | # We need awk for the "check" target. The system "awk" is bad on | 659 | # We need awk for the "check" target. The system "awk" is bad on |
3929 | 633 | # some platforms. | 660 | # some platforms. |
3930 | @@ -635,23 +662,36 @@ | |||
3931 | 635 | AC_REQUIRE([AC_PROG_MAKE_SET])dnl | 662 | AC_REQUIRE([AC_PROG_MAKE_SET])dnl |
3932 | 636 | AC_REQUIRE([AM_SET_LEADING_DOT])dnl | 663 | AC_REQUIRE([AM_SET_LEADING_DOT])dnl |
3933 | 637 | _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], | 664 | _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], |
3936 | 638 | [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], | 665 | [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], |
3937 | 639 | [_AM_PROG_TAR([v7])])]) | 666 | [_AM_PROG_TAR([v7])])]) |
3938 | 640 | _AM_IF_OPTION([no-dependencies],, | 667 | _AM_IF_OPTION([no-dependencies],, |
3939 | 641 | [AC_PROVIDE_IFELSE([AC_PROG_CC], | 668 | [AC_PROVIDE_IFELSE([AC_PROG_CC], |
3943 | 642 | [_AM_DEPENDENCIES(CC)], | 669 | [_AM_DEPENDENCIES(CC)], |
3944 | 643 | [define([AC_PROG_CC], | 670 | [define([AC_PROG_CC], |
3945 | 644 | defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl | 671 | defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl |
3946 | 645 | AC_PROVIDE_IFELSE([AC_PROG_CXX], | 672 | AC_PROVIDE_IFELSE([AC_PROG_CXX], |
3950 | 646 | [_AM_DEPENDENCIES(CXX)], | 673 | [_AM_DEPENDENCIES(CXX)], |
3951 | 647 | [define([AC_PROG_CXX], | 674 | [define([AC_PROG_CXX], |
3952 | 648 | defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl | 675 | defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl |
3953 | 649 | AC_PROVIDE_IFELSE([AC_PROG_OBJC], | 676 | AC_PROVIDE_IFELSE([AC_PROG_OBJC], |
3959 | 650 | [_AM_DEPENDENCIES(OBJC)], | 677 | [_AM_DEPENDENCIES(OBJC)], |
3960 | 651 | [define([AC_PROG_OBJC], | 678 | [define([AC_PROG_OBJC], |
3961 | 652 | defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl | 679 | defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl |
3962 | 653 | ]) | 680 | ]) |
3963 | 654 | ]) | 681 | _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl |
3964 | 682 | dnl The `parallel-tests' driver may need to know about EXEEXT, so add the | ||
3965 | 683 | dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro | ||
3966 | 684 | dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. | ||
3967 | 685 | AC_CONFIG_COMMANDS_PRE(dnl | ||
3968 | 686 | [m4_provide_if([_AM_COMPILER_EXEEXT], | ||
3969 | 687 | [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl | ||
3970 | 688 | ]) | ||
3971 | 689 | |||
3972 | 690 | dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not | ||
3973 | 691 | dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further | ||
3974 | 692 | dnl mangled by Autoconf and run in a shell conditional statement. | ||
3975 | 693 | m4_define([_AC_COMPILER_EXEEXT], | ||
3976 | 694 | m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) | ||
3977 | 655 | 695 | ||
3978 | 656 | 696 | ||
3979 | 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. |
3980 | @@ -675,7 +715,7 @@ | |||
3981 | 675 | done | 715 | done |
3982 | 676 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) | 716 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
3983 | 677 | 717 | ||
3985 | 678 | # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. | 718 | # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. |
3986 | 679 | # | 719 | # |
3987 | 680 | # This file is free software; the Free Software Foundation | 720 | # This file is free software; the Free Software Foundation |
3988 | 681 | # gives unlimited permission to copy and/or distribute it, | 721 | # gives unlimited permission to copy and/or distribute it, |
3989 | @@ -686,7 +726,14 @@ | |||
3990 | 686 | # Define $install_sh. | 726 | # Define $install_sh. |
3991 | 687 | AC_DEFUN([AM_PROG_INSTALL_SH], | 727 | AC_DEFUN([AM_PROG_INSTALL_SH], |
3992 | 688 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | 728 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl |
3994 | 689 | install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} | 729 | if test x"${install_sh}" != xset; then |
3995 | 730 | case $am_aux_dir in | ||
3996 | 731 | *\ * | *\ *) | ||
3997 | 732 | install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; | ||
3998 | 733 | *) | ||
3999 | 734 | install_sh="\${SHELL} $am_aux_dir/install-sh" | ||
4000 | 735 | esac | ||
4001 | 736 | fi | ||
4002 | 690 | AC_SUBST(install_sh)]) | 737 | AC_SUBST(install_sh)]) |
4003 | 691 | 738 | ||
4004 | 692 | # Copyright (C) 2003, 2005 Free Software Foundation, Inc. | 739 | # Copyright (C) 2003, 2005 Free Software Foundation, Inc. |
4005 | @@ -734,27 +781,38 @@ | |||
4006 | 734 | # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- | 781 | # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- |
4007 | 735 | # From Jim Meyering | 782 | # From Jim Meyering |
4008 | 736 | 783 | ||
4010 | 737 | # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 | 784 | # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 |
4011 | 738 | # Free Software Foundation, Inc. | 785 | # Free Software Foundation, Inc. |
4012 | 739 | # | 786 | # |
4013 | 740 | # This file is free software; the Free Software Foundation | 787 | # This file is free software; the Free Software Foundation |
4014 | 741 | # gives unlimited permission to copy and/or distribute it, | 788 | # gives unlimited permission to copy and/or distribute it, |
4015 | 742 | # with or without modifications, as long as this notice is preserved. | 789 | # with or without modifications, as long as this notice is preserved. |
4016 | 743 | 790 | ||
4018 | 744 | # serial 4 | 791 | # serial 5 |
4019 | 745 | 792 | ||
4020 | 793 | # AM_MAINTAINER_MODE([DEFAULT-MODE]) | ||
4021 | 794 | # ---------------------------------- | ||
4022 | 795 | # Control maintainer-specific portions of Makefiles. | ||
4023 | 796 | # Default is to disable them, unless `enable' is passed literally. | ||
4024 | 797 | # For symmetry, `disable' may be passed as well. Anyway, the user | ||
4025 | 798 | # can override the default with the --enable/--disable switch. | ||
4026 | 746 | AC_DEFUN([AM_MAINTAINER_MODE], | 799 | AC_DEFUN([AM_MAINTAINER_MODE], |
4031 | 747 | [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) | 800 | [m4_case(m4_default([$1], [disable]), |
4032 | 748 | dnl maintainer-mode is disabled by default | 801 | [enable], [m4_define([am_maintainer_other], [disable])], |
4033 | 749 | AC_ARG_ENABLE(maintainer-mode, | 802 | [disable], [m4_define([am_maintainer_other], [enable])], |
4034 | 750 | [ --enable-maintainer-mode enable make rules and dependencies not useful | 803 | [m4_define([am_maintainer_other], [enable]) |
4035 | 804 | m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) | ||
4036 | 805 | AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) | ||
4037 | 806 | dnl maintainer-mode's default is 'disable' unless 'enable' is passed | ||
4038 | 807 | AC_ARG_ENABLE([maintainer-mode], | ||
4039 | 808 | [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful | ||
4040 | 751 | (and sometimes confusing) to the casual installer], | 809 | (and sometimes confusing) to the casual installer], |
4043 | 752 | USE_MAINTAINER_MODE=$enableval, | 810 | [USE_MAINTAINER_MODE=$enableval], |
4044 | 753 | USE_MAINTAINER_MODE=no) | 811 | [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) |
4045 | 754 | AC_MSG_RESULT([$USE_MAINTAINER_MODE]) | 812 | AC_MSG_RESULT([$USE_MAINTAINER_MODE]) |
4047 | 755 | AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) | 813 | AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) |
4048 | 756 | MAINT=$MAINTAINER_MODE_TRUE | 814 | MAINT=$MAINTAINER_MODE_TRUE |
4050 | 757 | AC_SUBST(MAINT)dnl | 815 | AC_SUBST([MAINT])dnl |
4051 | 758 | ] | 816 | ] |
4052 | 759 | ) | 817 | ) |
4053 | 760 | 818 | ||
4054 | @@ -762,13 +820,13 @@ | |||
4055 | 762 | 820 | ||
4056 | 763 | # Check to see how 'make' treats includes. -*- Autoconf -*- | 821 | # Check to see how 'make' treats includes. -*- Autoconf -*- |
4057 | 764 | 822 | ||
4059 | 765 | # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. | 823 | # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. |
4060 | 766 | # | 824 | # |
4061 | 767 | # This file is free software; the Free Software Foundation | 825 | # This file is free software; the Free Software Foundation |
4062 | 768 | # gives unlimited permission to copy and/or distribute it, | 826 | # gives unlimited permission to copy and/or distribute it, |
4063 | 769 | # with or without modifications, as long as this notice is preserved. | 827 | # with or without modifications, as long as this notice is preserved. |
4064 | 770 | 828 | ||
4066 | 771 | # serial 3 | 829 | # serial 4 |
4067 | 772 | 830 | ||
4068 | 773 | # AM_MAKE_INCLUDE() | 831 | # AM_MAKE_INCLUDE() |
4069 | 774 | # ----------------- | 832 | # ----------------- |
4070 | @@ -777,7 +835,7 @@ | |||
4071 | 777 | [am_make=${MAKE-make} | 835 | [am_make=${MAKE-make} |
4072 | 778 | cat > confinc << 'END' | 836 | cat > confinc << 'END' |
4073 | 779 | am__doit: | 837 | am__doit: |
4075 | 780 | @echo done | 838 | @echo this is the am__doit target |
4076 | 781 | .PHONY: am__doit | 839 | .PHONY: am__doit |
4077 | 782 | END | 840 | END |
4078 | 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. |
4079 | @@ -787,24 +845,24 @@ | |||
4080 | 787 | _am_result=none | 845 | _am_result=none |
4081 | 788 | # First try GNU make style include. | 846 | # First try GNU make style include. |
4082 | 789 | echo "include confinc" > confmf | 847 | echo "include confinc" > confmf |
4093 | 790 | # We grep out `Entering directory' and `Leaving directory' | 848 | # Ignore all kinds of additional output from `make'. |
4094 | 791 | # messages which can occur if `w' ends up in MAKEFLAGS. | 849 | case `$am_make -s -f confmf 2> /dev/null` in #( |
4095 | 792 | # In particular we don't look at `^make:' because GNU make might | 850 | *the\ am__doit\ target*) |
4096 | 793 | # be invoked under some other name (usually "gmake"), in which | 851 | am__include=include |
4097 | 794 | # case it prints its new name instead of `make'. | 852 | am__quote= |
4098 | 795 | if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then | 853 | _am_result=GNU |
4099 | 796 | am__include=include | 854 | ;; |
4100 | 797 | am__quote= | 855 | esac |
4091 | 798 | _am_result=GNU | ||
4092 | 799 | fi | ||
4101 | 800 | # Now try BSD make style include. | 856 | # Now try BSD make style include. |
4102 | 801 | if test "$am__include" = "#"; then | 857 | if test "$am__include" = "#"; then |
4103 | 802 | echo '.include "confinc"' > confmf | 858 | echo '.include "confinc"' > confmf |
4109 | 803 | if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then | 859 | case `$am_make -s -f confmf 2> /dev/null` in #( |
4110 | 804 | am__include=.include | 860 | *the\ am__doit\ target*) |
4111 | 805 | am__quote="\"" | 861 | am__include=.include |
4112 | 806 | _am_result=BSD | 862 | am__quote="\"" |
4113 | 807 | fi | 863 | _am_result=BSD |
4114 | 864 | ;; | ||
4115 | 865 | esac | ||
4116 | 808 | fi | 866 | fi |
4117 | 809 | AC_SUBST([am__include]) | 867 | AC_SUBST([am__include]) |
4118 | 810 | AC_SUBST([am__quote]) | 868 | AC_SUBST([am__quote]) |
4119 | @@ -849,14 +907,14 @@ | |||
4120 | 849 | 907 | ||
4121 | 850 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- | 908 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
4122 | 851 | 909 | ||
4124 | 852 | # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 | 910 | # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 |
4125 | 853 | # Free Software Foundation, Inc. | 911 | # Free Software Foundation, Inc. |
4126 | 854 | # | 912 | # |
4127 | 855 | # This file is free software; the Free Software Foundation | 913 | # This file is free software; the Free Software Foundation |
4128 | 856 | # gives unlimited permission to copy and/or distribute it, | 914 | # gives unlimited permission to copy and/or distribute it, |
4129 | 857 | # with or without modifications, as long as this notice is preserved. | 915 | # with or without modifications, as long as this notice is preserved. |
4130 | 858 | 916 | ||
4132 | 859 | # serial 5 | 917 | # serial 6 |
4133 | 860 | 918 | ||
4134 | 861 | # AM_MISSING_PROG(NAME, PROGRAM) | 919 | # AM_MISSING_PROG(NAME, PROGRAM) |
4135 | 862 | # ------------------------------ | 920 | # ------------------------------ |
4136 | @@ -873,7 +931,14 @@ | |||
4137 | 873 | AC_DEFUN([AM_MISSING_HAS_RUN], | 931 | AC_DEFUN([AM_MISSING_HAS_RUN], |
4138 | 874 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | 932 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl |
4139 | 875 | AC_REQUIRE_AUX_FILE([missing])dnl | 933 | AC_REQUIRE_AUX_FILE([missing])dnl |
4141 | 876 | test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" | 934 | if test x"${MISSING+set}" != xset; then |
4142 | 935 | case $am_aux_dir in | ||
4143 | 936 | *\ * | *\ *) | ||
4144 | 937 | MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; | ||
4145 | 938 | *) | ||
4146 | 939 | MISSING="\${SHELL} $am_aux_dir/missing" ;; | ||
4147 | 940 | esac | ||
4148 | 941 | fi | ||
4149 | 877 | # Use eval to expand $SHELL | 942 | # Use eval to expand $SHELL |
4150 | 878 | if eval "$MISSING --run true"; then | 943 | if eval "$MISSING --run true"; then |
4151 | 879 | am_missing_run="$MISSING --run " | 944 | am_missing_run="$MISSING --run " |
4152 | @@ -944,14 +1009,14 @@ | |||
4153 | 944 | 1009 | ||
4154 | 945 | # Check to make sure that the build environment is sane. -*- Autoconf -*- | 1010 | # Check to make sure that the build environment is sane. -*- Autoconf -*- |
4155 | 946 | 1011 | ||
4157 | 947 | # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 | 1012 | # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 |
4158 | 948 | # Free Software Foundation, Inc. | 1013 | # Free Software Foundation, Inc. |
4159 | 949 | # | 1014 | # |
4160 | 950 | # This file is free software; the Free Software Foundation | 1015 | # This file is free software; the Free Software Foundation |
4161 | 951 | # gives unlimited permission to copy and/or distribute it, | 1016 | # gives unlimited permission to copy and/or distribute it, |
4162 | 952 | # with or without modifications, as long as this notice is preserved. | 1017 | # with or without modifications, as long as this notice is preserved. |
4163 | 953 | 1018 | ||
4165 | 954 | # serial 4 | 1019 | # serial 5 |
4166 | 955 | 1020 | ||
4167 | 956 | # AM_SANITY_CHECK | 1021 | # AM_SANITY_CHECK |
4168 | 957 | # --------------- | 1022 | # --------------- |
4169 | @@ -960,16 +1025,29 @@ | |||
4170 | 960 | # Just in case | 1025 | # Just in case |
4171 | 961 | sleep 1 | 1026 | sleep 1 |
4172 | 962 | echo timestamp > conftest.file | 1027 | echo timestamp > conftest.file |
4173 | 1028 | # Reject unsafe characters in $srcdir or the absolute working directory | ||
4174 | 1029 | # name. Accept space and tab only in the latter. | ||
4175 | 1030 | am_lf=' | ||
4176 | 1031 | ' | ||
4177 | 1032 | case `pwd` in | ||
4178 | 1033 | *[[\\\"\#\$\&\'\`$am_lf]]*) | ||
4179 | 1034 | AC_MSG_ERROR([unsafe absolute working directory name]);; | ||
4180 | 1035 | esac | ||
4181 | 1036 | case $srcdir in | ||
4182 | 1037 | *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) | ||
4183 | 1038 | AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; | ||
4184 | 1039 | esac | ||
4185 | 1040 | |||
4186 | 963 | # Do `set' in a subshell so we don't clobber the current shell's | 1041 | # Do `set' in a subshell so we don't clobber the current shell's |
4187 | 964 | # arguments. Must try -L first in case configure is actually a | 1042 | # arguments. Must try -L first in case configure is actually a |
4188 | 965 | # symlink; some systems play weird games with the mod time of symlinks | 1043 | # symlink; some systems play weird games with the mod time of symlinks |
4189 | 966 | # (eg FreeBSD returns the mod time of the symlink's containing | 1044 | # (eg FreeBSD returns the mod time of the symlink's containing |
4190 | 967 | # directory). | 1045 | # directory). |
4191 | 968 | if ( | 1046 | if ( |
4193 | 969 | set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` | 1047 | set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` |
4194 | 970 | if test "$[*]" = "X"; then | 1048 | if test "$[*]" = "X"; then |
4195 | 971 | # -L didn't work. | 1049 | # -L didn't work. |
4197 | 972 | set X `ls -t $srcdir/configure conftest.file` | 1050 | set X `ls -t "$srcdir/configure" conftest.file` |
4198 | 973 | fi | 1051 | fi |
4199 | 974 | rm -f conftest.file | 1052 | rm -f conftest.file |
4200 | 975 | if test "$[*]" != "X $srcdir/configure conftest.file" \ | 1053 | if test "$[*]" != "X $srcdir/configure conftest.file" \ |
4201 | @@ -1022,18 +1100,25 @@ | |||
4202 | 1022 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" | 1100 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
4203 | 1023 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) | 1101 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
4204 | 1024 | 1102 | ||
4206 | 1025 | # Copyright (C) 2006 Free Software Foundation, Inc. | 1103 | # Copyright (C) 2006, 2008 Free Software Foundation, Inc. |
4207 | 1026 | # | 1104 | # |
4208 | 1027 | # This file is free software; the Free Software Foundation | 1105 | # This file is free software; the Free Software Foundation |
4209 | 1028 | # gives unlimited permission to copy and/or distribute it, | 1106 | # gives unlimited permission to copy and/or distribute it, |
4210 | 1029 | # with or without modifications, as long as this notice is preserved. | 1107 | # with or without modifications, as long as this notice is preserved. |
4211 | 1030 | 1108 | ||
4212 | 1109 | # serial 2 | ||
4213 | 1110 | |||
4214 | 1031 | # _AM_SUBST_NOTMAKE(VARIABLE) | 1111 | # _AM_SUBST_NOTMAKE(VARIABLE) |
4215 | 1032 | # --------------------------- | 1112 | # --------------------------- |
4216 | 1033 | # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. | 1113 | # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. |
4217 | 1034 | # This macro is traced by Automake. | 1114 | # This macro is traced by Automake. |
4218 | 1035 | AC_DEFUN([_AM_SUBST_NOTMAKE]) | 1115 | AC_DEFUN([_AM_SUBST_NOTMAKE]) |
4219 | 1036 | 1116 | ||
4220 | 1117 | # AM_SUBST_NOTMAKE(VARIABLE) | ||
4221 | 1118 | # --------------------------- | ||
4222 | 1119 | # Public sister of _AM_SUBST_NOTMAKE. | ||
4223 | 1120 | AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) | ||
4224 | 1121 | |||
4225 | 1037 | # Check how to create a tarball. -*- Autoconf -*- | 1122 | # Check how to create a tarball. -*- Autoconf -*- |
4226 | 1038 | 1123 | ||
4227 | 1039 | # Copyright (C) 2004, 2005 Free Software Foundation, Inc. | 1124 | # Copyright (C) 2004, 2005 Free Software Foundation, Inc. |
4228 | 1040 | 1125 | ||
4229 | === modified file 'bootstrap' | |||
4230 | --- bootstrap 2008-07-12 13:34:52 +0000 | |||
4231 | +++ bootstrap 2011-03-19 10:51:41 +0000 | |||
4232 | @@ -1,9 +1,9 @@ | |||
4233 | 1 | #!/bin/sh | 1 | #!/bin/sh |
4234 | 2 | 2 | ||
4235 | 3 | # I use | 3 | # I use |
4239 | 4 | # - autoconf (GNU Autoconf) 2.59 | 4 | # - autoconf (GNU Autoconf) 2.64 |
4240 | 5 | # - automake (GNU automake) 1.7.9 | 5 | # - automake (GNU automake) 1.11 |
4241 | 6 | # - libtool (GNU libtool) 1.5.6 (1.1220.2.95 2004/04/11 05:50:42) | 6 | # - libtool (GNU libtool) 2.2.6 |
4242 | 7 | 7 | ||
4243 | 8 | set -e | 8 | set -e |
4244 | 9 | set -x | 9 | set -x |
4245 | 10 | 10 | ||
4246 | === modified file 'config.guess' | |||
4247 | --- config.guess 2010-07-10 11:15:59 +0000 | |||
4248 | +++ config.guess 2011-03-19 10:51:41 +0000 | |||
4249 | @@ -1,10 +1,10 @@ | |||
4250 | 1 | #! /bin/sh | 1 | #! /bin/sh |
4251 | 2 | # Attempt to guess a canonical system name. | 2 | # Attempt to guess a canonical system name. |
4252 | 3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | 3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
4254 | 4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | 4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
4255 | 5 | # Free Software Foundation, Inc. | 5 | # Free Software Foundation, Inc. |
4256 | 6 | 6 | ||
4258 | 7 | timestamp='2009-04-27' | 7 | timestamp='2009-12-30' |
4259 | 8 | 8 | ||
4260 | 9 | # This file is free software; you can redistribute it and/or modify it | 9 | # This file is free software; you can redistribute it and/or modify it |
4261 | 10 | # under the terms of the GNU General Public License as published by | 10 | # under the terms of the GNU General Public License as published by |
4262 | @@ -27,16 +27,16 @@ | |||
4263 | 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. |
4264 | 28 | 28 | ||
4265 | 29 | 29 | ||
4269 | 30 | # Originally written by Per Bothner <per@bothner.com>. | 30 | # Originally written by Per Bothner. Please send patches (context |
4270 | 31 | # Please send patches to <config-patches@gnu.org>. Submit a context | 31 | # diff format) to <config-patches@gnu.org> and include a ChangeLog |
4271 | 32 | # diff and a properly formatted ChangeLog entry. | 32 | # entry. |
4272 | 33 | # | 33 | # |
4273 | 34 | # This script attempts to guess a canonical system name similar to | 34 | # This script attempts to guess a canonical system name similar to |
4274 | 35 | # config.sub. If it succeeds, it prints the system name on stdout, and | 35 | # config.sub. If it succeeds, it prints the system name on stdout, and |
4275 | 36 | # exits with 0. Otherwise, it exits with 1. | 36 | # exits with 0. Otherwise, it exits with 1. |
4276 | 37 | # | 37 | # |
4279 | 38 | # The plan is that this can be called by configure scripts if you | 38 | # You can get the latest version of this script from: |
4280 | 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 |
4281 | 40 | 40 | ||
4282 | 41 | me=`echo "$0" | sed -e 's,.*/,,'` | 41 | me=`echo "$0" | sed -e 's,.*/,,'` |
4283 | 42 | 42 | ||
4284 | @@ -56,8 +56,9 @@ | |||
4285 | 56 | GNU config.guess ($timestamp) | 56 | GNU config.guess ($timestamp) |
4286 | 57 | 57 | ||
4287 | 58 | Originally written by Per Bothner. | 58 | Originally written by Per Bothner. |
4290 | 59 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 59 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
4291 | 60 | 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 60 | 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free |
4292 | 61 | Software Foundation, Inc. | ||
4293 | 61 | 62 | ||
4294 | 62 | This is free software; see the source for copying conditions. There is NO | 63 | This is free software; see the source for copying conditions. There is NO |
4295 | 63 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | 64 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
4296 | @@ -170,7 +171,7 @@ | |||
4297 | 170 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) | 171 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
4298 | 171 | eval $set_cc_for_build | 172 | eval $set_cc_for_build |
4299 | 172 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | 173 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
4301 | 173 | | grep __ELF__ >/dev/null | 174 | | grep -q __ELF__ |
4302 | 174 | then | 175 | then |
4303 | 175 | # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). | 176 | # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). |
4304 | 176 | # Return netbsd for either. FIX? | 177 | # Return netbsd for either. FIX? |
4305 | @@ -333,6 +334,9 @@ | |||
4306 | 333 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) | 334 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
4307 | 334 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | 335 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
4308 | 335 | exit ;; | 336 | exit ;; |
4309 | 337 | i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) | ||
4310 | 338 | echo i386-pc-auroraux${UNAME_RELEASE} | ||
4311 | 339 | exit ;; | ||
4312 | 336 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) | 340 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) |
4313 | 337 | eval $set_cc_for_build | 341 | eval $set_cc_for_build |
4314 | 338 | SUN_ARCH="i386" | 342 | SUN_ARCH="i386" |
4315 | @@ -656,7 +660,7 @@ | |||
4316 | 656 | # => hppa64-hp-hpux11.23 | 660 | # => hppa64-hp-hpux11.23 |
4317 | 657 | 661 | ||
4318 | 658 | if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | | 662 | if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | |
4320 | 659 | grep __LP64__ >/dev/null | 663 | grep -q __LP64__ |
4321 | 660 | then | 664 | then |
4322 | 661 | HP_ARCH="hppa2.0w" | 665 | HP_ARCH="hppa2.0w" |
4323 | 662 | else | 666 | else |
4324 | @@ -807,12 +811,12 @@ | |||
4325 | 807 | i*:PW*:*) | 811 | i*:PW*:*) |
4326 | 808 | echo ${UNAME_MACHINE}-pc-pw32 | 812 | echo ${UNAME_MACHINE}-pc-pw32 |
4327 | 809 | exit ;; | 813 | exit ;; |
4329 | 810 | *:Interix*:[3456]*) | 814 | *:Interix*:*) |
4330 | 811 | case ${UNAME_MACHINE} in | 815 | case ${UNAME_MACHINE} in |
4331 | 812 | x86) | 816 | x86) |
4332 | 813 | echo i586-pc-interix${UNAME_RELEASE} | 817 | echo i586-pc-interix${UNAME_RELEASE} |
4333 | 814 | exit ;; | 818 | exit ;; |
4335 | 815 | EM64T | authenticamd | genuineintel) | 819 | authenticamd | genuineintel | EM64T) |
4336 | 816 | echo x86_64-unknown-interix${UNAME_RELEASE} | 820 | echo x86_64-unknown-interix${UNAME_RELEASE} |
4337 | 817 | exit ;; | 821 | exit ;; |
4338 | 818 | IA64) | 822 | IA64) |
4339 | @@ -822,6 +826,9 @@ | |||
4340 | 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:*) |
4341 | 823 | echo i${UNAME_MACHINE}-pc-mks | 827 | echo i${UNAME_MACHINE}-pc-mks |
4342 | 824 | exit ;; | 828 | exit ;; |
4343 | 829 | 8664:Windows_NT:*) | ||
4344 | 830 | echo x86_64-pc-mks | ||
4345 | 831 | exit ;; | ||
4346 | 825 | i*:Windows_NT*:* | Pentium*:Windows_NT*:*) | 832 | i*:Windows_NT*:* | Pentium*:Windows_NT*:*) |
4347 | 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? |
4348 | 827 | # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we | 834 | # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we |
4349 | @@ -851,6 +858,20 @@ | |||
4350 | 851 | i*86:Minix:*:*) | 858 | i*86:Minix:*:*) |
4351 | 852 | echo ${UNAME_MACHINE}-pc-minix | 859 | echo ${UNAME_MACHINE}-pc-minix |
4352 | 853 | exit ;; | 860 | exit ;; |
4353 | 861 | alpha:Linux:*:*) | ||
4354 | 862 | case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in | ||
4355 | 863 | EV5) UNAME_MACHINE=alphaev5 ;; | ||
4356 | 864 | EV56) UNAME_MACHINE=alphaev56 ;; | ||
4357 | 865 | PCA56) UNAME_MACHINE=alphapca56 ;; | ||
4358 | 866 | PCA57) UNAME_MACHINE=alphapca56 ;; | ||
4359 | 867 | EV6) UNAME_MACHINE=alphaev6 ;; | ||
4360 | 868 | EV67) UNAME_MACHINE=alphaev67 ;; | ||
4361 | 869 | EV68*) UNAME_MACHINE=alphaev68 ;; | ||
4362 | 870 | esac | ||
4363 | 871 | objdump --private-headers /bin/sh | grep -q ld.so.1 | ||
4364 | 872 | if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi | ||
4365 | 873 | echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | ||
4366 | 874 | exit ;; | ||
4367 | 854 | arm*:Linux:*:*) | 875 | arm*:Linux:*:*) |
4368 | 855 | eval $set_cc_for_build | 876 | eval $set_cc_for_build |
4369 | 856 | if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | 877 | if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
4370 | @@ -873,6 +894,17 @@ | |||
4371 | 873 | frv:Linux:*:*) | 894 | frv:Linux:*:*) |
4372 | 874 | echo frv-unknown-linux-gnu | 895 | echo frv-unknown-linux-gnu |
4373 | 875 | exit ;; | 896 | exit ;; |
4374 | 897 | i*86:Linux:*:*) | ||
4375 | 898 | LIBC=gnu | ||
4376 | 899 | eval $set_cc_for_build | ||
4377 | 900 | sed 's/^ //' << EOF >$dummy.c | ||
4378 | 901 | #ifdef __dietlibc__ | ||
4379 | 902 | LIBC=dietlibc | ||
4380 | 903 | #endif | ||
4381 | 904 | EOF | ||
4382 | 905 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` | ||
4383 | 906 | echo "${UNAME_MACHINE}-pc-linux-${LIBC}" | ||
4384 | 907 | exit ;; | ||
4385 | 876 | ia64:Linux:*:*) | 908 | ia64:Linux:*:*) |
4386 | 877 | echo ${UNAME_MACHINE}-unknown-linux-gnu | 909 | echo ${UNAME_MACHINE}-unknown-linux-gnu |
4387 | 878 | exit ;; | 910 | exit ;; |
4388 | @@ -882,78 +914,34 @@ | |||
4389 | 882 | m68*:Linux:*:*) | 914 | m68*:Linux:*:*) |
4390 | 883 | echo ${UNAME_MACHINE}-unknown-linux-gnu | 915 | echo ${UNAME_MACHINE}-unknown-linux-gnu |
4391 | 884 | exit ;; | 916 | exit ;; |
4436 | 885 | mips:Linux:*:*) | 917 | mips:Linux:*:* | mips64:Linux:*:*) |
4437 | 886 | eval $set_cc_for_build | 918 | eval $set_cc_for_build |
4438 | 887 | sed 's/^ //' << EOF >$dummy.c | 919 | sed 's/^ //' << EOF >$dummy.c |
4439 | 888 | #undef CPU | 920 | #undef CPU |
4440 | 889 | #undef mips | 921 | #undef ${UNAME_MACHINE} |
4441 | 890 | #undef mipsel | 922 | #undef ${UNAME_MACHINE}el |
4442 | 891 | #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) | 923 | #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
4443 | 892 | CPU=mipsel | 924 | CPU=${UNAME_MACHINE}el |
4444 | 893 | #else | 925 | #else |
4445 | 894 | #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) | 926 | #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
4446 | 895 | CPU=mips | 927 | CPU=${UNAME_MACHINE} |
4447 | 896 | #else | 928 | #else |
4448 | 897 | CPU= | 929 | CPU= |
4449 | 898 | #endif | 930 | #endif |
4450 | 899 | #endif | 931 | #endif |
4451 | 900 | EOF | 932 | EOF |
4452 | 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'` |
4409 | 902 | /^CPU/{ | ||
4410 | 903 | s: ::g | ||
4411 | 904 | p | ||
4412 | 905 | }'`" | ||
4413 | 906 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } | ||
4414 | 907 | ;; | ||
4415 | 908 | mips64:Linux:*:*) | ||
4416 | 909 | eval $set_cc_for_build | ||
4417 | 910 | sed 's/^ //' << EOF >$dummy.c | ||
4418 | 911 | #undef CPU | ||
4419 | 912 | #undef mips64 | ||
4420 | 913 | #undef mips64el | ||
4421 | 914 | #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) | ||
4422 | 915 | CPU=mips64el | ||
4423 | 916 | #else | ||
4424 | 917 | #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) | ||
4425 | 918 | CPU=mips64 | ||
4426 | 919 | #else | ||
4427 | 920 | CPU= | ||
4428 | 921 | #endif | ||
4429 | 922 | #endif | ||
4430 | 923 | EOF | ||
4431 | 924 | eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' | ||
4432 | 925 | /^CPU/{ | ||
4433 | 926 | s: ::g | ||
4434 | 927 | p | ||
4435 | 928 | }'`" | ||
4453 | 929 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } | 934 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } |
4454 | 930 | ;; | 935 | ;; |
4455 | 931 | or32:Linux:*:*) | 936 | or32:Linux:*:*) |
4456 | 932 | echo or32-unknown-linux-gnu | 937 | echo or32-unknown-linux-gnu |
4457 | 933 | exit ;; | 938 | exit ;; |
4458 | 934 | ppc:Linux:*:*) | ||
4459 | 935 | echo powerpc-unknown-linux-gnu | ||
4460 | 936 | exit ;; | ||
4461 | 937 | ppc64:Linux:*:*) | ||
4462 | 938 | echo powerpc64-unknown-linux-gnu | ||
4463 | 939 | exit ;; | ||
4464 | 940 | alpha:Linux:*:*) | ||
4465 | 941 | case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in | ||
4466 | 942 | EV5) UNAME_MACHINE=alphaev5 ;; | ||
4467 | 943 | EV56) UNAME_MACHINE=alphaev56 ;; | ||
4468 | 944 | PCA56) UNAME_MACHINE=alphapca56 ;; | ||
4469 | 945 | PCA57) UNAME_MACHINE=alphapca56 ;; | ||
4470 | 946 | EV6) UNAME_MACHINE=alphaev6 ;; | ||
4471 | 947 | EV67) UNAME_MACHINE=alphaev67 ;; | ||
4472 | 948 | EV68*) UNAME_MACHINE=alphaev68 ;; | ||
4473 | 949 | esac | ||
4474 | 950 | objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null | ||
4475 | 951 | if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi | ||
4476 | 952 | echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | ||
4477 | 953 | exit ;; | ||
4478 | 954 | padre:Linux:*:*) | 939 | padre:Linux:*:*) |
4479 | 955 | echo sparc-unknown-linux-gnu | 940 | echo sparc-unknown-linux-gnu |
4480 | 956 | exit ;; | 941 | exit ;; |
4481 | 942 | parisc64:Linux:*:* | hppa64:Linux:*:*) | ||
4482 | 943 | echo hppa64-unknown-linux-gnu | ||
4483 | 944 | exit ;; | ||
4484 | 957 | parisc:Linux:*:* | hppa:Linux:*:*) | 945 | parisc:Linux:*:* | hppa:Linux:*:*) |
4485 | 958 | # Look for CPU level | 946 | # Look for CPU level |
4486 | 959 | case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in | 947 | case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in |
4487 | @@ -962,8 +950,11 @@ | |||
4488 | 962 | *) echo hppa-unknown-linux-gnu ;; | 950 | *) echo hppa-unknown-linux-gnu ;; |
4489 | 963 | esac | 951 | esac |
4490 | 964 | exit ;; | 952 | exit ;; |
4493 | 965 | parisc64:Linux:*:* | hppa64:Linux:*:*) | 953 | ppc64:Linux:*:*) |
4494 | 966 | echo hppa64-unknown-linux-gnu | 954 | echo powerpc64-unknown-linux-gnu |
4495 | 955 | exit ;; | ||
4496 | 956 | ppc:Linux:*:*) | ||
4497 | 957 | echo powerpc-unknown-linux-gnu | ||
4498 | 967 | exit ;; | 958 | exit ;; |
4499 | 968 | s390:Linux:*:* | s390x:Linux:*:*) | 959 | s390:Linux:*:* | s390x:Linux:*:*) |
4500 | 969 | echo ${UNAME_MACHINE}-ibm-linux | 960 | echo ${UNAME_MACHINE}-ibm-linux |
4501 | @@ -986,66 +977,6 @@ | |||
4502 | 986 | xtensa*:Linux:*:*) | 977 | xtensa*:Linux:*:*) |
4503 | 987 | echo ${UNAME_MACHINE}-unknown-linux-gnu | 978 | echo ${UNAME_MACHINE}-unknown-linux-gnu |
4504 | 988 | exit ;; | 979 | exit ;; |
4505 | 989 | i*86:Linux:*:*) | ||
4506 | 990 | # The BFD linker knows what the default object file format is, so | ||
4507 | 991 | # first see if it will tell us. cd to the root directory to prevent | ||
4508 | 992 | # problems with other programs or directories called `ld' in the path. | ||
4509 | 993 | # Set LC_ALL=C to ensure ld outputs messages in English. | ||
4510 | 994 | ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | ||
4511 | 995 | | sed -ne '/supported targets:/!d | ||
4512 | 996 | s/[ ][ ]*/ /g | ||
4513 | 997 | s/.*supported targets: *// | ||
4514 | 998 | s/ .*// | ||
4515 | 999 | p'` | ||
4516 | 1000 | case "$ld_supported_targets" in | ||
4517 | 1001 | elf32-i386) | ||
4518 | 1002 | TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" | ||
4519 | 1003 | ;; | ||
4520 | 1004 | a.out-i386-linux) | ||
4521 | 1005 | echo "${UNAME_MACHINE}-pc-linux-gnuaout" | ||
4522 | 1006 | exit ;; | ||
4523 | 1007 | "") | ||
4524 | 1008 | # Either a pre-BFD a.out linker (linux-gnuoldld) or | ||
4525 | 1009 | # one that does not give us useful --help. | ||
4526 | 1010 | echo "${UNAME_MACHINE}-pc-linux-gnuoldld" | ||
4527 | 1011 | exit ;; | ||
4528 | 1012 | esac | ||
4529 | 1013 | # Determine whether the default compiler is a.out or elf | ||
4530 | 1014 | eval $set_cc_for_build | ||
4531 | 1015 | sed 's/^ //' << EOF >$dummy.c | ||
4532 | 1016 | #include <features.h> | ||
4533 | 1017 | #ifdef __ELF__ | ||
4534 | 1018 | # ifdef __GLIBC__ | ||
4535 | 1019 | # if __GLIBC__ >= 2 | ||
4536 | 1020 | LIBC=gnu | ||
4537 | 1021 | # else | ||
4538 | 1022 | LIBC=gnulibc1 | ||
4539 | 1023 | # endif | ||
4540 | 1024 | # else | ||
4541 | 1025 | LIBC=gnulibc1 | ||
4542 | 1026 | # endif | ||
4543 | 1027 | #else | ||
4544 | 1028 | #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) | ||
4545 | 1029 | LIBC=gnu | ||
4546 | 1030 | #else | ||
4547 | 1031 | LIBC=gnuaout | ||
4548 | 1032 | #endif | ||
4549 | 1033 | #endif | ||
4550 | 1034 | #ifdef __dietlibc__ | ||
4551 | 1035 | LIBC=dietlibc | ||
4552 | 1036 | #endif | ||
4553 | 1037 | EOF | ||
4554 | 1038 | eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' | ||
4555 | 1039 | /^LIBC/{ | ||
4556 | 1040 | s: ::g | ||
4557 | 1041 | p | ||
4558 | 1042 | }'`" | ||
4559 | 1043 | test x"${LIBC}" != x && { | ||
4560 | 1044 | echo "${UNAME_MACHINE}-pc-linux-${LIBC}" | ||
4561 | 1045 | exit | ||
4562 | 1046 | } | ||
4563 | 1047 | test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } | ||
4564 | 1048 | ;; | ||
4565 | 1049 | i*86:DYNIX/ptx:4*:*) | 980 | i*86:DYNIX/ptx:4*:*) |
4566 | 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. |
4567 | 1051 | # earlier versions are messed up and put the nodename in both | 982 | # earlier versions are messed up and put the nodename in both |
4568 | @@ -1074,7 +1005,7 @@ | |||
4569 | 1074 | i*86:syllable:*:*) | 1005 | i*86:syllable:*:*) |
4570 | 1075 | echo ${UNAME_MACHINE}-pc-syllable | 1006 | echo ${UNAME_MACHINE}-pc-syllable |
4571 | 1076 | exit ;; | 1007 | exit ;; |
4573 | 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]*:*) |
4574 | 1078 | echo i386-unknown-lynxos${UNAME_RELEASE} | 1009 | echo i386-unknown-lynxos${UNAME_RELEASE} |
4575 | 1079 | exit ;; | 1010 | exit ;; |
4576 | 1080 | i*86:*DOS:*:*) | 1011 | i*86:*DOS:*:*) |
4577 | @@ -1182,7 +1113,7 @@ | |||
4578 | 1182 | rs6000:LynxOS:2.*:*) | 1113 | rs6000:LynxOS:2.*:*) |
4579 | 1183 | echo rs6000-unknown-lynxos${UNAME_RELEASE} | 1114 | echo rs6000-unknown-lynxos${UNAME_RELEASE} |
4580 | 1184 | exit ;; | 1115 | exit ;; |
4582 | 1185 | PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) | 1116 | PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) |
4583 | 1186 | echo powerpc-unknown-lynxos${UNAME_RELEASE} | 1117 | echo powerpc-unknown-lynxos${UNAME_RELEASE} |
4584 | 1187 | exit ;; | 1118 | exit ;; |
4585 | 1188 | SM[BE]S:UNIX_SV:*:*) | 1119 | SM[BE]S:UNIX_SV:*:*) |
4586 | @@ -1275,6 +1206,16 @@ | |||
4587 | 1275 | *:Darwin:*:*) | 1206 | *:Darwin:*:*) |
4588 | 1276 | UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown | 1207 | UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown |
4589 | 1277 | case $UNAME_PROCESSOR in | 1208 | case $UNAME_PROCESSOR in |
4590 | 1209 | i386) | ||
4591 | 1210 | eval $set_cc_for_build | ||
4592 | 1211 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then | ||
4593 | 1212 | if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ | ||
4594 | 1213 | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ | ||
4595 | 1214 | grep IS_64BIT_ARCH >/dev/null | ||
4596 | 1215 | then | ||
4597 | 1216 | UNAME_PROCESSOR="x86_64" | ||
4598 | 1217 | fi | ||
4599 | 1218 | fi ;; | ||
4600 | 1278 | unknown) UNAME_PROCESSOR=powerpc ;; | 1219 | unknown) UNAME_PROCESSOR=powerpc ;; |
4601 | 1279 | esac | 1220 | esac |
4602 | 1280 | echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} | 1221 | echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} |
4603 | 1281 | 1222 | ||
4604 | === modified file 'config.h.in' | |||
4605 | --- config.h.in 2010-07-10 11:15:59 +0000 | |||
4606 | +++ config.h.in 2011-03-19 10:51:41 +0000 | |||
4607 | @@ -33,15 +33,18 @@ | |||
4608 | 33 | /* Define to 1 if you have the <inttypes.h> header file. */ | 33 | /* Define to 1 if you have the <inttypes.h> header file. */ |
4609 | 34 | #undef HAVE_INTTYPES_H | 34 | #undef HAVE_INTTYPES_H |
4610 | 35 | 35 | ||
4613 | 36 | /* Libhal is available */ | 36 | /* Libudev is available */ |
4614 | 37 | #undef HAVE_LIBHAL | 37 | #undef HAVE_LIBUDEV |
4615 | 38 | 38 | ||
4618 | 39 | /* Define to 1 if you have the <libhal.h> header file. */ | 39 | /* Define to 1 if you have the <libudev.h> header file. */ |
4619 | 40 | #undef HAVE_LIBHAL_H | 40 | #undef HAVE_LIBUDEV_H |
4620 | 41 | 41 | ||
4621 | 42 | /* Libusb is available */ | 42 | /* Libusb is available */ |
4622 | 43 | #undef HAVE_LIBUSB | 43 | #undef HAVE_LIBUSB |
4623 | 44 | 44 | ||
4624 | 45 | /* Define to 1 if you have the <libusb.h> header file. */ | ||
4625 | 46 | #undef HAVE_LIBUSB_H | ||
4626 | 47 | |||
4627 | 45 | /* Define to 1 if you have the <memory.h> header file. */ | 48 | /* Define to 1 if you have the <memory.h> header file. */ |
4628 | 46 | #undef HAVE_MEMORY_H | 49 | #undef HAVE_MEMORY_H |
4629 | 47 | 50 | ||
4630 | @@ -51,6 +54,9 @@ | |||
4631 | 51 | /* Define if you have POSIX threads libraries and header files. */ | 54 | /* Define if you have POSIX threads libraries and header files. */ |
4632 | 52 | #undef HAVE_PTHREAD | 55 | #undef HAVE_PTHREAD |
4633 | 53 | 56 | ||
4634 | 57 | /* Define to 1 if you have the `pthread_cancel' function. */ | ||
4635 | 58 | #undef HAVE_PTHREAD_CANCEL | ||
4636 | 59 | |||
4637 | 54 | /* Define to 1 if `stat' has the bug that it succeeds when given the | 60 | /* Define to 1 if `stat' has the bug that it succeeds when given the |
4638 | 55 | zero-length file name argument. */ | 61 | zero-length file name argument. */ |
4639 | 56 | #undef HAVE_STAT_EMPTY_STRING_BUG | 62 | #undef HAVE_STAT_EMPTY_STRING_BUG |
4640 | @@ -94,9 +100,6 @@ | |||
4641 | 94 | /* Define to 1 if you have the <unistd.h> header file. */ | 100 | /* Define to 1 if you have the <unistd.h> header file. */ |
4642 | 95 | #undef HAVE_UNISTD_H | 101 | #undef HAVE_UNISTD_H |
4643 | 96 | 102 | ||
4644 | 97 | /* Define to 1 if you have the <usb.h> header file. */ | ||
4645 | 98 | #undef HAVE_USB_H | ||
4646 | 99 | |||
4647 | 100 | /* Define to 1 if you have the `vprintf' function. */ | 103 | /* Define to 1 if you have the `vprintf' function. */ |
4648 | 101 | #undef HAVE_VPRINTF | 104 | #undef HAVE_VPRINTF |
4649 | 102 | 105 | ||
4650 | @@ -111,6 +114,9 @@ | |||
4651 | 111 | */ | 114 | */ |
4652 | 112 | #undef LT_OBJDIR | 115 | #undef LT_OBJDIR |
4653 | 113 | 116 | ||
4654 | 117 | /* Disable logging support */ | ||
4655 | 118 | #undef NO_LOG | ||
4656 | 119 | |||
4657 | 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. */ |
4658 | 115 | #undef NO_MINUS_C_MINUS_O | 121 | #undef NO_MINUS_C_MINUS_O |
4659 | 116 | 122 | ||
4660 | @@ -129,9 +135,15 @@ | |||
4661 | 129 | /* Define to the one symbol short name of this package. */ | 135 | /* Define to the one symbol short name of this package. */ |
4662 | 130 | #undef PACKAGE_TARNAME | 136 | #undef PACKAGE_TARNAME |
4663 | 131 | 137 | ||
4664 | 138 | /* Define to the home page for this package. */ | ||
4665 | 139 | #undef PACKAGE_URL | ||
4666 | 140 | |||
4667 | 132 | /* Define to the version of this package. */ | 141 | /* Define to the version of this package. */ |
4668 | 133 | #undef PACKAGE_VERSION | 142 | #undef PACKAGE_VERSION |
4669 | 134 | 143 | ||
4670 | 144 | /* pcscd filename */ | ||
4671 | 145 | #undef PCSCD_BINARY | ||
4672 | 146 | |||
4673 | 135 | /* Enabled PC/SC lite features */ | 147 | /* Enabled PC/SC lite features */ |
4674 | 136 | #undef PCSCLITE_FEATURES | 148 | #undef PCSCLITE_FEATURES |
4675 | 137 | 149 | ||
4676 | @@ -154,6 +166,12 @@ | |||
4677 | 154 | /* directory containing IPC files */ | 166 | /* directory containing IPC files */ |
4678 | 155 | #undef USE_IPCDIR | 167 | #undef USE_IPCDIR |
4679 | 156 | 168 | ||
4680 | 169 | /* Use serial conf file mechanism */ | ||
4681 | 170 | #undef USE_SERIAL | ||
4682 | 171 | |||
4683 | 172 | /* Use USB hotplug mechanism */ | ||
4684 | 173 | #undef USE_USB | ||
4685 | 174 | |||
4686 | 157 | /* Version number of package */ | 175 | /* Version number of package */ |
4687 | 158 | #undef VERSION | 176 | #undef VERSION |
4688 | 159 | 177 | ||
4689 | 160 | 178 | ||
4690 | === modified file 'config.sub' | |||
4691 | --- config.sub 2010-07-10 11:15:59 +0000 | |||
4692 | +++ config.sub 2011-03-19 10:51:41 +0000 | |||
4693 | @@ -1,10 +1,10 @@ | |||
4694 | 1 | #! /bin/sh | 1 | #! /bin/sh |
4695 | 2 | # Configuration validation subroutine script. | 2 | # Configuration validation subroutine script. |
4696 | 3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | 3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
4698 | 4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | 4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
4699 | 5 | # Free Software Foundation, Inc. | 5 | # Free Software Foundation, Inc. |
4700 | 6 | 6 | ||
4702 | 7 | timestamp='2009-04-17' | 7 | timestamp='2010-01-22' |
4703 | 8 | 8 | ||
4704 | 9 | # This file is (in principle) common to ALL GNU software. | 9 | # This file is (in principle) common to ALL GNU software. |
4705 | 10 | # The presence of a machine in this file suggests that SOME GNU software | 10 | # The presence of a machine in this file suggests that SOME GNU software |
4706 | @@ -32,13 +32,16 @@ | |||
4707 | 32 | 32 | ||
4708 | 33 | 33 | ||
4709 | 34 | # Please send patches to <config-patches@gnu.org>. Submit a context | 34 | # Please send patches to <config-patches@gnu.org>. Submit a context |
4711 | 35 | # diff and a properly formatted ChangeLog entry. | 35 | # diff and a properly formatted GNU ChangeLog entry. |
4712 | 36 | # | 36 | # |
4713 | 37 | # Configuration subroutine to validate and canonicalize a configuration type. | 37 | # Configuration subroutine to validate and canonicalize a configuration type. |
4714 | 38 | # Supply the specified configuration type as an argument. | 38 | # Supply the specified configuration type as an argument. |
4715 | 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. |
4716 | 40 | # Otherwise, we print the canonical config type on stdout and succeed. | 40 | # Otherwise, we print the canonical config type on stdout and succeed. |
4717 | 41 | 41 | ||
4718 | 42 | # You can get the latest version of this script from: | ||
4719 | 43 | # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD | ||
4720 | 44 | |||
4721 | 42 | # This file is supposed to be the same for all GNU packages | 45 | # This file is supposed to be the same for all GNU packages |
4722 | 43 | # and recognize all the CPU types, system types and aliases | 46 | # and recognize all the CPU types, system types and aliases |
4723 | 44 | # that are meaningful with *any* GNU software. | 47 | # that are meaningful with *any* GNU software. |
4724 | @@ -72,8 +75,9 @@ | |||
4725 | 72 | version="\ | 75 | version="\ |
4726 | 73 | GNU config.sub ($timestamp) | 76 | GNU config.sub ($timestamp) |
4727 | 74 | 77 | ||
4730 | 75 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 78 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
4731 | 76 | 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 79 | 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free |
4732 | 80 | Software Foundation, Inc. | ||
4733 | 77 | 81 | ||
4734 | 78 | This is free software; see the source for copying conditions. There is NO | 82 | This is free software; see the source for copying conditions. There is NO |
4735 | 79 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | 83 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
4736 | @@ -149,10 +153,13 @@ | |||
4737 | 149 | -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ | 153 | -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ |
4738 | 150 | -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ | 154 | -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ |
4739 | 151 | -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ | 155 | -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ |
4741 | 152 | -apple | -axis | -knuth | -cray) | 156 | -apple | -axis | -knuth | -cray | -microblaze) |
4742 | 153 | os= | 157 | os= |
4743 | 154 | basic_machine=$1 | 158 | basic_machine=$1 |
4744 | 155 | ;; | 159 | ;; |
4745 | 160 | -bluegene*) | ||
4746 | 161 | os=-cnk | ||
4747 | 162 | ;; | ||
4748 | 156 | -sim | -cisco | -oki | -wec | -winbond) | 163 | -sim | -cisco | -oki | -wec | -winbond) |
4749 | 157 | os= | 164 | os= |
4750 | 158 | basic_machine=$1 | 165 | basic_machine=$1 |
4751 | @@ -281,6 +288,7 @@ | |||
4752 | 281 | | pdp10 | pdp11 | pj | pjl \ | 288 | | pdp10 | pdp11 | pj | pjl \ |
4753 | 282 | | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | 289 | | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ |
4754 | 283 | | pyramid \ | 290 | | pyramid \ |
4755 | 291 | | rx \ | ||
4756 | 284 | | score \ | 292 | | score \ |
4757 | 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 \ |
4758 | 286 | | sh64 | sh64le \ | 294 | | sh64 | sh64le \ |
4759 | @@ -288,13 +296,14 @@ | |||
4760 | 288 | | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | 296 | | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ |
4761 | 289 | | spu | strongarm \ | 297 | | spu | strongarm \ |
4762 | 290 | | tahoe | thumb | tic4x | tic80 | tron \ | 298 | | tahoe | thumb | tic4x | tic80 | tron \ |
4763 | 299 | | ubicom32 \ | ||
4764 | 291 | | v850 | v850e \ | 300 | | v850 | v850e \ |
4765 | 292 | | we32k \ | 301 | | we32k \ |
4766 | 293 | | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | 302 | | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ |
4767 | 294 | | z8k | z80) | 303 | | z8k | z80) |
4768 | 295 | basic_machine=$basic_machine-unknown | 304 | basic_machine=$basic_machine-unknown |
4769 | 296 | ;; | 305 | ;; |
4771 | 297 | m6811 | m68hc11 | m6812 | m68hc12) | 306 | m6811 | m68hc11 | m6812 | m68hc12 | picochip) |
4772 | 298 | # Motorola 68HC11/12. | 307 | # Motorola 68HC11/12. |
4773 | 299 | basic_machine=$basic_machine-unknown | 308 | basic_machine=$basic_machine-unknown |
4774 | 300 | os=-none | 309 | os=-none |
4775 | @@ -337,7 +346,7 @@ | |||
4776 | 337 | | lm32-* \ | 346 | | lm32-* \ |
4777 | 338 | | m32c-* | m32r-* | m32rle-* \ | 347 | | m32c-* | m32r-* | m32rle-* \ |
4778 | 339 | | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | 348 | | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ |
4780 | 340 | | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | 349 | | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ |
4781 | 341 | | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | 350 | | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ |
4782 | 342 | | mips16-* \ | 351 | | mips16-* \ |
4783 | 343 | | mips64-* | mips64el-* \ | 352 | | mips64-* | mips64el-* \ |
4784 | @@ -365,15 +374,17 @@ | |||
4785 | 365 | | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | 374 | | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ |
4786 | 366 | | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | 375 | | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ |
4787 | 367 | | pyramid-* \ | 376 | | pyramid-* \ |
4789 | 368 | | romp-* | rs6000-* \ | 377 | | romp-* | rs6000-* | rx-* \ |
4790 | 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-* \ |
4791 | 370 | | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | 379 | | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ |
4792 | 371 | | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | 380 | | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ |
4793 | 372 | | sparclite-* \ | 381 | | sparclite-* \ |
4794 | 373 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | 382 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ |
4795 | 374 | | tahoe-* | thumb-* \ | 383 | | tahoe-* | thumb-* \ |
4797 | 375 | | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | 384 | | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ |
4798 | 385 | | tile-* | tilegx-* \ | ||
4799 | 376 | | tron-* \ | 386 | | tron-* \ |
4800 | 387 | | ubicom32-* \ | ||
4801 | 377 | | v850-* | v850e-* | vax-* \ | 388 | | v850-* | v850e-* | vax-* \ |
4802 | 378 | | we32k-* \ | 389 | | we32k-* \ |
4803 | 379 | | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | 390 | | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ |
4804 | @@ -467,6 +478,10 @@ | |||
4805 | 467 | basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` | 478 | basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` |
4806 | 468 | os=-linux | 479 | os=-linux |
4807 | 469 | ;; | 480 | ;; |
4808 | 481 | bluegene*) | ||
4809 | 482 | basic_machine=powerpc-ibm | ||
4810 | 483 | os=-cnk | ||
4811 | 484 | ;; | ||
4812 | 470 | c90) | 485 | c90) |
4813 | 471 | basic_machine=c90-cray | 486 | basic_machine=c90-cray |
4814 | 472 | os=-unicos | 487 | os=-unicos |
4815 | @@ -719,6 +734,9 @@ | |||
4816 | 719 | basic_machine=ns32k-utek | 734 | basic_machine=ns32k-utek |
4817 | 720 | os=-sysv | 735 | os=-sysv |
4818 | 721 | ;; | 736 | ;; |
4819 | 737 | microblaze) | ||
4820 | 738 | basic_machine=microblaze-xilinx | ||
4821 | 739 | ;; | ||
4822 | 722 | mingw32) | 740 | mingw32) |
4823 | 723 | basic_machine=i386-pc | 741 | basic_machine=i386-pc |
4824 | 724 | os=-mingw32 | 742 | os=-mingw32 |
4825 | @@ -1069,6 +1087,11 @@ | |||
4826 | 1069 | basic_machine=tic6x-unknown | 1087 | basic_machine=tic6x-unknown |
4827 | 1070 | os=-coff | 1088 | os=-coff |
4828 | 1071 | ;; | 1089 | ;; |
4829 | 1090 | # This must be matched before tile*. | ||
4830 | 1091 | tilegx*) | ||
4831 | 1092 | basic_machine=tilegx-unknown | ||
4832 | 1093 | os=-linux-gnu | ||
4833 | 1094 | ;; | ||
4834 | 1072 | tile*) | 1095 | tile*) |
4835 | 1073 | basic_machine=tile-unknown | 1096 | basic_machine=tile-unknown |
4836 | 1074 | os=-linux-gnu | 1097 | os=-linux-gnu |
4837 | @@ -1240,6 +1263,9 @@ | |||
4838 | 1240 | # First match some system type aliases | 1263 | # First match some system type aliases |
4839 | 1241 | # that might get confused with valid system types. | 1264 | # that might get confused with valid system types. |
4840 | 1242 | # -solaris* is a basic system type, with this one exception. | 1265 | # -solaris* is a basic system type, with this one exception. |
4841 | 1266 | -auroraux) | ||
4842 | 1267 | os=-auroraux | ||
4843 | 1268 | ;; | ||
4844 | 1243 | -solaris1 | -solaris1.*) | 1269 | -solaris1 | -solaris1.*) |
4845 | 1244 | os=`echo $os | sed -e 's|solaris1|sunos4|'` | 1270 | os=`echo $os | sed -e 's|solaris1|sunos4|'` |
4846 | 1245 | ;; | 1271 | ;; |
4847 | @@ -1260,9 +1286,9 @@ | |||
4848 | 1260 | # Each alternative MUST END IN A *, to match a version number. | 1286 | # Each alternative MUST END IN A *, to match a version number. |
4849 | 1261 | # -sysv* is not here because it comes later, after sysvr4. | 1287 | # -sysv* is not here because it comes later, after sysvr4. |
4850 | 1262 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | 1288 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ |
4854 | 1263 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | 1289 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ |
4855 | 1264 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | 1290 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ |
4856 | 1265 | | -kopensolaris* \ | 1291 | | -sym* | -kopensolaris* \ |
4857 | 1266 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | 1292 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ |
4858 | 1267 | | -aos* | -aros* \ | 1293 | | -aos* | -aros* \ |
4859 | 1268 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | 1294 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ |
4860 | @@ -1283,7 +1309,7 @@ | |||
4861 | 1283 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | 1309 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ |
4862 | 1284 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | 1310 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ |
4863 | 1285 | | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | 1311 | | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ |
4865 | 1286 | | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) | 1312 | | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) |
4866 | 1287 | # Remember, each alternative MUST END IN *, to match a version number. | 1313 | # Remember, each alternative MUST END IN *, to match a version number. |
4867 | 1288 | ;; | 1314 | ;; |
4868 | 1289 | -qnx*) | 1315 | -qnx*) |
4869 | @@ -1416,6 +1442,8 @@ | |||
4870 | 1416 | -dicos*) | 1442 | -dicos*) |
4871 | 1417 | os=-dicos | 1443 | os=-dicos |
4872 | 1418 | ;; | 1444 | ;; |
4873 | 1445 | -nacl*) | ||
4874 | 1446 | ;; | ||
4875 | 1419 | -none) | 1447 | -none) |
4876 | 1420 | ;; | 1448 | ;; |
4877 | 1421 | *) | 1449 | *) |
4878 | @@ -1613,7 +1641,7 @@ | |||
4879 | 1613 | -sunos*) | 1641 | -sunos*) |
4880 | 1614 | vendor=sun | 1642 | vendor=sun |
4881 | 1615 | ;; | 1643 | ;; |
4883 | 1616 | -aix*) | 1644 | -cnk*|-aix*) |
4884 | 1617 | vendor=ibm | 1645 | vendor=ibm |
4885 | 1618 | ;; | 1646 | ;; |
4886 | 1619 | -beos*) | 1647 | -beos*) |
4887 | 1620 | 1648 | ||
4888 | === modified file 'configure' | |||
4889 | --- configure 2010-07-10 11:15:59 +0000 | |||
4890 | +++ configure 2011-03-19 10:51:41 +0000 | |||
4891 | @@ -1,18 +1,22 @@ | |||
4892 | 1 | #! /bin/sh | 1 | #! /bin/sh |
4893 | 2 | # Guess values for system-dependent variables and create Makefiles. | 2 | # Guess values for system-dependent variables and create Makefiles. |
4895 | 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. |
4896 | 4 | # | ||
4897 | 4 | # | 5 | # |
4898 | 5 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, | 6 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
4900 | 6 | # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 7 | # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software |
4901 | 8 | # Foundation, Inc. | ||
4902 | 9 | # | ||
4903 | 10 | # | ||
4904 | 7 | # This configure script is free software; the Free Software Foundation | 11 | # This configure script is free software; the Free Software Foundation |
4905 | 8 | # gives unlimited permission to copy, distribute and modify it. | 12 | # gives unlimited permission to copy, distribute and modify it. |
4909 | 9 | ## --------------------- ## | 13 | ## -------------------- ## |
4910 | 10 | ## M4sh Initialization. ## | 14 | ## M4sh Initialization. ## |
4911 | 11 | ## --------------------- ## | 15 | ## -------------------- ## |
4912 | 12 | 16 | ||
4913 | 13 | # Be more Bourne compatible | 17 | # Be more Bourne compatible |
4914 | 14 | DUALCASE=1; export DUALCASE # for MKS sh | 18 | DUALCASE=1; export DUALCASE # for MKS sh |
4916 | 15 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then | 19 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : |
4917 | 16 | emulate sh | 20 | emulate sh |
4918 | 17 | NULLCMD=: | 21 | NULLCMD=: |
4919 | 18 | # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which | 22 | # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which |
4920 | @@ -20,23 +24,15 @@ | |||
4921 | 20 | alias -g '${1+"$@"}'='"$@"' | 24 | alias -g '${1+"$@"}'='"$@"' |
4922 | 21 | setopt NO_GLOB_SUBST | 25 | setopt NO_GLOB_SUBST |
4923 | 22 | else | 26 | else |
4926 | 23 | case `(set -o) 2>/dev/null` in | 27 | case `(set -o) 2>/dev/null` in #( |
4927 | 24 | *posix*) set -o posix ;; | 28 | *posix*) : |
4928 | 29 | set -o posix ;; #( | ||
4929 | 30 | *) : | ||
4930 | 31 | ;; | ||
4931 | 25 | esac | 32 | esac |
4932 | 26 | |||
4933 | 27 | fi | 33 | fi |
4934 | 28 | 34 | ||
4935 | 29 | 35 | ||
4936 | 30 | |||
4937 | 31 | |||
4938 | 32 | # PATH needs CR | ||
4939 | 33 | # Avoid depending upon Character Ranges. | ||
4940 | 34 | as_cr_letters='abcdefghijklmnopqrstuvwxyz' | ||
4941 | 35 | as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' | ||
4942 | 36 | as_cr_Letters=$as_cr_letters$as_cr_LETTERS | ||
4943 | 37 | as_cr_digits='0123456789' | ||
4944 | 38 | as_cr_alnum=$as_cr_Letters$as_cr_digits | ||
4945 | 39 | |||
4946 | 40 | as_nl=' | 36 | as_nl=' |
4947 | 41 | ' | 37 | ' |
4948 | 42 | export as_nl | 38 | export as_nl |
4949 | @@ -44,7 +40,13 @@ | |||
4950 | 44 | as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' | 40 | as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' |
4951 | 45 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo | 41 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo |
4952 | 46 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo | 42 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo |
4954 | 47 | if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then | 43 | # Prefer a ksh shell builtin over an external printf program on Solaris, |
4955 | 44 | # but without wasting forks for bash or zsh. | ||
4956 | 45 | if test -z "$BASH_VERSION$ZSH_VERSION" \ | ||
4957 | 46 | && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
4958 | 47 | as_echo='print -r --' | ||
4959 | 48 | as_echo_n='print -rn --' | ||
4960 | 49 | elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
4961 | 48 | as_echo='printf %s\n' | 50 | as_echo='printf %s\n' |
4962 | 49 | as_echo_n='printf %s' | 51 | as_echo_n='printf %s' |
4963 | 50 | else | 52 | else |
4964 | @@ -55,7 +57,7 @@ | |||
4965 | 55 | as_echo_body='eval expr "X$1" : "X\\(.*\\)"' | 57 | as_echo_body='eval expr "X$1" : "X\\(.*\\)"' |
4966 | 56 | as_echo_n_body='eval | 58 | as_echo_n_body='eval |
4967 | 57 | arg=$1; | 59 | arg=$1; |
4969 | 58 | case $arg in | 60 | case $arg in #( |
4970 | 59 | *"$as_nl"*) | 61 | *"$as_nl"*) |
4971 | 60 | expr "X$arg" : "X\\(.*\\)$as_nl"; | 62 | expr "X$arg" : "X\\(.*\\)$as_nl"; |
4972 | 61 | arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; | 63 | arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; |
4973 | @@ -78,13 +80,6 @@ | |||
4974 | 78 | } | 80 | } |
4975 | 79 | fi | 81 | fi |
4976 | 80 | 82 | ||
4977 | 81 | # Support unset when possible. | ||
4978 | 82 | if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then | ||
4979 | 83 | as_unset=unset | ||
4980 | 84 | else | ||
4981 | 85 | as_unset=false | ||
4982 | 86 | fi | ||
4983 | 87 | |||
4984 | 88 | 83 | ||
4985 | 89 | # IFS | 84 | # IFS |
4986 | 90 | # We need space, tab and new line, in precisely that order. Quoting is | 85 | # We need space, tab and new line, in precisely that order. Quoting is |
4987 | @@ -94,15 +89,15 @@ | |||
4988 | 94 | IFS=" "" $as_nl" | 89 | IFS=" "" $as_nl" |
4989 | 95 | 90 | ||
4990 | 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. |
4992 | 97 | case $0 in | 92 | case $0 in #(( |
4993 | 98 | *[\\/]* ) as_myself=$0 ;; | 93 | *[\\/]* ) as_myself=$0 ;; |
4994 | 99 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | 94 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
4995 | 100 | for as_dir in $PATH | 95 | for as_dir in $PATH |
4996 | 101 | do | 96 | do |
4997 | 102 | IFS=$as_save_IFS | 97 | IFS=$as_save_IFS |
4998 | 103 | test -z "$as_dir" && as_dir=. | 98 | test -z "$as_dir" && as_dir=. |
4999 | 104 | test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break | ||
5000 | 105 | done |
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.