On Thu, Nov 21, 2013 at 8:46 PM, Stanislav Ochotnicky <sochotnicky@xxxxxxxxxx> wrote: > Quoting Jerry James (2013-11-21 17:01:07) >> On Thu, Nov 21, 2013 at 5:33 AM, Miloslav Trmač <mitr@xxxxxxxx> wrote: >> > (IIRC somewhere in the thread it's been suggested that software can't >> > know which one to use: how would the maintainers know then?) >> >> Yes, I raised that question early on in this thread. The response I >> got was to read this: >> >> http://www.oracle.com/technetwork/articles/javase/headless-136834.html >> >> which is a 7 year old article about setting up a headless system with >> Java 6, and doesn't mention audio anywhere. I am willing to do the >> work to figure out which of my packages need full java and which can >> get by with java-headless, but I need a very clear set of criteria to >> work from. I don't think this article qualifies, nor have I yet seen >> such a clear set of criteria. > > I linked to that article because it's relevant. If you read it you know that: > * java.awt. classes are a problem for headless (except Canvas, Panel and > Image as mentioned in the article) > > Other than that a simple grep for one of following will give you a smoking gun: > * import javax.sound. > > But if you want a simpler guide: > * Install your app with headless Java > * Run it > * Did it crash? These two steps make it rather non-"simple"; one would also determine which parts of the code base have not been exercised. >> And Mirek's question bears repeating: if software can't figure this >> out reliably, how do you expect us fallible humans to do so? > > Software can't reliably detect licenses in packages, yet we routinely do license > review manually as part of Package Review process. It's really not that uncommon > for people to be better than computers at fuzzy tasks. This is not really that kind of a fuzzy question, and getting licenses wrong has a potentially much higher cost. > Call me silly but I expect maintainers to know what their packages actually do. Call me silly but I expect computers to do routine tasks, not people. (... under the assumption that somebody really wants to do a comprehensive conversion and get this applied to all future Java packages; I understand that this may not actually be what $you really want to achieve and spend time on.) >> Apparently it is not as easy as "if your software uses these packages >> and/or classes, it needs full java, otherwise java-headless is >> enough". Why not? What else could cause a dependency on full java? > > It is as easy as "if your software uses these packages and/or classes" but it's > almost impossible to say if your software uses them due to nature of Java/JVM > itself. There's too many ways to use parts of JVM. Interfaces, intermediate > libraries, various classloading tricks. Intermediate libraries would carry the non-headless dependency themselves, so their users wouldn't have to, would they? > Nobody is going to write a reliable detection if it should be headless requires > or not. I suppose this will show how hopelessly naive I am, but wouldn't "byte code refers to any class from $list or contains a string constant that starts with any class name from $list" be sufficently accurate? Not provably correct, certainly, but if it got us from 30 unknown false positives to 1-2 unknown false positives _and_ eliminated a manual packaging/review step... Mirek -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct