On 04/26/2013 10:52 AM, Andrew Haley wrote: > On 04/26/2013 10:39 AM, Stanislav Ochotnicky wrote: >> Quoting Andrew Haley (2013-04-26 11:11:41) >>> On 04/22/2013 11:01 PM, Orion Poplawski wrote: >>>> The eclipse PTP project that I package is starting to ship an executable in one of its plugins. The executable is packed into a jar file. This prevents debuginfo creation for the executable. >>>> >>>> I started taking a look at how this might be handled elsewhere and found: >>>> >>>> /usr/lib64/eclipse/dropins/cdt/eclipse/plugins/org.eclipse.cdt.core.linux.x86_64_5.2.0.201302132326.jar: 13327 Defl:X 3624 73% 02-13-2013 23:21 326488c7 os/linux/x86_64/libpty.so 23720 Defl:X 7151 70% 02-13-2013 23:21 c26c2c94 os/linux/x86_64/libspawner.so >>>> >>>> but no debuginfo package. >>>> >>>> Thoughts, comments? >>> >>> This is pretty obviously a breach of packaging guidelines. We shouldn't be hiding DSOs in archives. >> >> Hmm, I am not aware of any guideline touching this topic (perhaps because it's not that common). But from practical perspective these jars are extremely practical because they don't have to deal with JNI file locations and similar things which ten to be quite variable. > > I don't understand your point. It's a package, so the JNI file location is > fixed. What can be variable? > >> I don't consider this approach hiding, but we could surely improve the tooling support for it. > > It surely is. One of the things that packaging does is scour packages for > DSOs to make sure that the debuginfo is present. By putting the package in > a DSO we've hidden it from the package. > >> WRT original question, I am not sure how to proceed. Even if you generate debuginfo packages I have to wonder how easy will it be to use in a debugger? > > Well, quite. The right thing to do is not to hide the DSOs. Then everything > will just work. The alternative is to put the debuginfo in the jar with the > DSO, but IMO we should not be considering this option. Hmm, I just found this in https://fedoraproject.org/wiki/Packaging:Java?rd=Packaging/Java#Packaging_JAR_files_that_use_JNI "JAR files using JNI or containing JNI shared objects themselves MUST be placed in %{_jnidir} and CAN BE symlinked to %{_libdir}/%{name}." So, it seems as though the practice of putting DSOs into jarfiles is legitimate. I am appalled that this suggestion got past Fedora packaging, but I can't deny that it's there. The only sensible thing to do, if we must put DSOs into jarfiles, is to generate the DSO with proper debuginfo. Andrew. -- java-devel mailing list java-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/java-devel