[Bug 732911] New: Wrong packaging of pcsc-lite - impossible retrieve list of terminals in any popular JVM
https://bugzilla.novell.com/show_bug.cgi?id=732911 https://bugzilla.novell.com/show_bug.cgi?id=732911#c0 Summary: Wrong packaging of pcsc-lite - impossible retrieve list of terminals in any popular JVM Classification: openSUSE Product: openSUSE 12.1 Version: Final Platform: x86 OS/Version: openSUSE 11.4 Status: NEW Severity: Normal Priority: P5 - None Component: Other AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: demsey@users.sourceforge.net QAContact: qa@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20100101 Firefox/8.0 Problem has been appear after upgrade pcsc-lite from 1.6.6 to 1.7.2 I noticed that in pcsc-lite.spec 1.6.6 was comment in section %files # .so must be in the main package (#235773): %{_libdir}/*.so Sections %files, %files -n libpcsclite1 and %files devel from psc-lite.spec 1.6.6 %files %defattr(-,root,root) %doc %{_docdir}/{name} # .so must be in the main package (#235773): %{_libdir}/*.so %doc %{_mandir}/man?/*.* .. %files -n libpcsclite1 %defattr(-,root,root) %{_libdir}/libpcsclite.so.* %files devel %defattr(-,root,root) %{_includedir}/* %{_libdir}/*.*a %{_libdir}/pkgconfig/*.pc I don't know what was in #235773 I have unauthorized access. In next released version 1.7.2 comment: # .so must be in the main package (#235773): and next line: %{_libdir}/*.so was moved to section %files devel In effect symlink /usr/lib/libpcsclite.so (/usr/lib64/libpcsclite.so) are placed in pcsc-lite-devel rpm package It caused problem at invoking libpcsclite.so by JVM's In earlier version eg. 1.6.6 it was placed in pcsc-lite witch is required at run-time. Unfortunately as stay in https://bugs.launchpad.net/ubuntu/+source/sun-java6/+bug/378294 JVM's use libpcsclite.so instead of libpcsclite.so.1 Reproducible: Always Steps to Reproduce: 1. install pcsc-lite and libpcsclite1 rpms in version 1.7.2 or above 2. Check ls -la /usr/lib/libpcsclite.so or ls -la /usr/lib64/libpcsclite.so JVM's can't call libpcsclite.so.1 so PCSC capable SmartCard readers don't work in java Actual Results: /usr/lib/libpcsclite.so appears after installation pcsc-lite-devel rpm Expected Results: /usr/lib/libpcsclite.so appears after installation libpcsclite1 rpm and for 1.8.0 and above /usr/lib/libpcscspy.so appears after installation libpcscspy0 rpm Proposed solution for 1.8.1 and above versions is use in pcsc-lite.spec .. %files -n libpcsclite1 %defattr(-,root,root) %{_libdir}/libpcsclite.so* %files -n libpcscspy0 %defattr(-,root,root) %{_libdir}/libpcscspy.so* .. instead of .. %files -n libpcsclite1 %defattr(-,root,root) %{_libdir}/libpcsclite.so.* %files -n libpcscspy0 %defattr(-,root,root) %{_libdir}/libpcscspy.so.* .. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c
Robert Demski
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c
Andreas Jaeger
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c1
Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c2
Robert Demski
But the proposed solution "/usr/lib/libpcscspy.so appears after installation libpcscspy0 rpm" is impossible. It violates Shared Library Packaging Policy and makes impossible to install more library versions in parallel. I was not aware of this policy:(
What exactly means "retrieve list of terminals"? Is it related to smart cards? Yes.
If the lack of the link causes just brokenness of the smart card infrastructure, Infrastructure is broken. (Without devel rpm) You may try that sample java code on sun-jdk or open-jdk (i don't test it on gnu java) http://ludovicrousseau.blogspot.com/2010/06/pcsc-sample-in-java.html
Just compile Blog.java and run: java Blog Assuming the "java -version" reports the use of sun-jdk or open-jdk
I propose to move the link to pcsc-lite package. => pcsc-lite has to be installed anyway to make smart card infrastructure working, and the missing link would make no problem on systems without any smart card hardware. I think the solution is acceptable. Exactly the same as was used prior to version 1.7.2:)
-- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c3
Stanislav Brabec
I think the solution is acceptable. Exactly the same as was used prior to version 1.7.2:)
OK. I will do it. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c4
Stanislav Brabec
I think the solution is acceptable. Exactly the same as was used prior to version 1.7.2:)
OK. I will do it. Package was modified by this change: Wed May 18 06:42:02 UTC 2011 - wr@rosenauer.org - moved libpcsclite1.so back to devel package To maintenance: It would be nice to fix it for 11.4 and 12.1 Bug 235773 refers to this problem on SLES10: When issueing "gpg --card-status" i get a "failed to open driver libpcsclite.so" ... "no such file or directory" error. It seems, that a corresponding link from /usr/lib/pcsclite.so.1.0.0 to /usr/lib/pcsclite.so is missing. gpg does not use smart cart API directly any more, so it is not an issue now. But it seems that more programs load libpcsclite.so instead of dynamic linking. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c5
--- Comment #5 from Robert Demski
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c6
--- Comment #6 from Wolfgang Rosenauer
I agree with the bug. Somebody ignored the comment and moved .so file to the devel package.
No, I didn't. Because I had no access to the original bugreport I talked to you about it before the move and the outcome was that it's not an issue anymore with gpg and therefore it should be fine ;-) This is just a new recognition that there is another reason to have it available and we didn't know about it before. About libpcscspy.so: There is no need to change anything here. That lib needs to be preloaded manually if needed anyway (for debug reasons). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c7
--- Comment #7 from Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c8
--- Comment #8 from Wolfgang Rosenauer
To Wolfgang Rosenauer: Sorry about that. I forgot about our talk and later found that the original problem is no issue any more.
np ;-)
I would propose to not move this link to the devel package, even if this bug will be no issue any more.
If it helps I'm perfectly fine to move it back. It'll cause issues once api soname changes to something else than 1
In case of this library, it makes sense to use dlopen(), especially for third party packages: - It does not force to install smart card libraries. - Library has a stable basic API.
Some third-party applications I know actually do dlopen() (I think) but still the .1 version. It has been "stable" for quite some time indeed. Interestingly pcsclite consumers still seem to fail with every other pcsc-lite version for whatever reason.
libpcscspy.so: Will the manual preload use libpcscspy.so or libpcscspy.so.something?
Manual preload means: Whatever the user sets as LD_PRELOAD. It's a tracing library to debug pcsc apps. See here http://ludovicrousseau.blogspot.com/2011/11/pcsc-api-spy-third-try.html -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c9
--- Comment #9 from Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c10
--- Comment #10 from Bernhard Wiedemann
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c11
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c13
--- Comment #13 from Bernhard Wiedemann
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c14
Stanislav Brabec
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c15
Swamp Workflow Management
https://bugzilla.novell.com/show_bug.cgi?id=732911
https://bugzilla.novell.com/show_bug.cgi?id=732911#c
Swamp Workflow Management
participants (1)
-
bugzilla_noreply@novell.com