[00:44] <tdaitx> slangasek, is there something I can run in a command line that will tell me how a given "Depends:" field will be resolved by apt? I can always build a dummy package and see how it goes, but I suspect there should be a smarter way to go about it
[01:43] <xnox> tdaitx, there isn't...
[01:44] <xnox> and apt & aptitude do things differently.
[01:44] <xnox> tdaitx, what is the magic Depends stanza you are trying to use?
[01:45] <tdaitx> xnox, k, thanks... yeah, I think I remember something about apt/aptitude behaving differently (do you have pointers on that? it would be good to know exactly how they differ)
[01:45] <xnox> tdaitx, just try things out. But even for a simple field, things can be resolved differently in an overall / upgrade transaction.
[01:45] <tdaitx> xnox, it's a simple one, I just want to make sure I won't be misleading users on a bug report
[01:46] <xnox> tdaitx, so what are you trying to test =) what's your stanza?
[01:46] <xnox> which bug?
[01:46] <tdaitx> xnox, just some combinations of javaX-runtime and openjdk-X-jre
[01:46] <tdaitx> xnox, lp: #1584118
[01:47] <xnox> multiarch / virtual packages / other fields / alternates resolutions / other installed packages / priorities / pinning -> all have funny corner cases.
[01:50] <xnox> tdaitx, look at this -
[01:50] <xnox> http://paste.ubuntu.com/23050611/
[01:51] <xnox> if someone depends on "java-runtime-headless" in a package Depends, an arbitrary one can be selected including opnjdk-9-jre-headless
[01:51] <xnox> ditto "java-runtime"
[01:52] <xnox> ditto java8-runtime.
[01:52] <tdaitx> xnox, I assumed there was a "right" order for that selection
[01:52] <tdaitx> like, comparing the available versions
[01:53] <xnox> in the metadata, these days one can do versioned provides.
[01:53] <xnox> but the metadata on e.g. openjdk-9-jre has version-less provides
[01:53] <xnox> which defaults to the package version itself
[01:53] <xnox> and thus openjdk 9 has the highest version.
[01:53] <jbicha> xnox: I'm not sure that versioned provides work though
[01:54] <xnox> jbicha, it works when there is a versioned depends on a virtual package
[01:54] <jbicha> ok
[01:57] <tdaitx> xnox, "these days" -> do you recall when that started being supported?
[01:59] <xnox> tdaitx, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=7330
[02:00] <xnox> tdaitx, but what worries me is the actual bug report of brekage in java9
[02:00] <xnox> "We are not compatible with Java 9 because there is a change in
[02:00] <xnox>    command line argument order and the JVM fails to start."
[02:00] <xnox> --> is there one that is compatible and is correct across 8 & 9?
[02:00] <xnox> was that intentional to use jdk9 as jdk8 provider by default?
[02:01] <tdaitx> xnox, I don't know what their particular problem is because they didn't provide examples for that
[02:02] <tdaitx> xnox, yes, openjdk 9 was supposed to be released somewhere around xenial/yakkety release, but then it got postponed
[02:02] <xnox> is it still intentional for jdk9 to provide jdk8 in xenial then?
[02:03] <xnox> maybe that provides should be dropped?
[02:03] <xnox> their depends is wrong as well.
[02:03] <tdaitx> yep, I have been thinking about this for a while
[02:04] <xnox> imho they should be doing "Depends: java8-runtime (<< 9~)"
[02:04] <xnox> but that needs to be tested first.
[02:04] <tdaitx> I'm not sure openjdk-9 should be marked as providing a jdk8, given that we don't even have an official openjdk-9 and - worse - it is badly broken right now
[02:04] <xnox> yeah, those that need/want openjdk-9 can have it.
[02:05] <xnox> but i don't think it should be forced on others.
[02:05] <xnox> however, I am not a release / sru team to judge a revert of jdk8 from being provided 9 back to 8.
[02:05] <xnox> infinity, slangasek ^
[02:05] <tdaitx> xnox, and doko should be involved as well
[02:07] <tdaitx> xnox, unfortunately it seems that "Depends: java8-runtime (<< 9~)" does not work as expected... installing a dummy package with that dependency and then trying apt-get -f install get's the package removed
[02:07] <tdaitx> I was trying a few combinations before, unfortunately versioning it does not help
[02:08] <xnox> btw, tdaitx did you know about http://eric.lubow.org/2010/system-administration/creating-dummy-packages-on-debian/ for quickly building fake packages?
[02:08] <xnox> tdaitx, =(
[02:08] <tdaitx> hmm, no, I didn't
[02:09] <tdaitx> I have a package called "dumb" that I use for those tests, just debuild it and then install on a chroot/lcx instance for tests
[02:09] <tdaitx> I keep that skeleton around just for those cases
[02:10] <tdaitx> but equivs seems much better
[02:10] <xnox> but then |apt-ftparchive packages ."
[02:11] <xnox> should be run as well, and add a "source" to a directory with fake packages too.
[02:11] <xnox> beacause "apt-get install" is one thing and "dpkg -i & apt-get install -f" are two different beasts =)
[02:11] <tdaitx> hmm
[02:16] <xnox> argh
[02:16] <xnox> Updating from such a repository can't be done securely, and is therefore disabled by default.
[02:24] <tdaitx> xnox, you probably know this, but just use "deb [trusted=yes] file:///"
[02:24] <xnox> ah [trusted=yes] -> did not know that trick =)
[02:24]  * xnox quickly signed the repository and imported the key
[02:33] <tdaitx> so asking for a version on "Depends:" only works when the control file has a "Provides:" that is versioned as well, otherwise unversioned "Provides:" are ignored... thus right now "Depends: java8-runtime (<< 9~)" will not work because no openjdk package versions its "Provides: java8-runtime" field
[02:33] <tdaitx> according to the debian bug #7330
[04:56] <infinity> xnox: The versioned dep would only work if it was a versioned provides, which it isn't.
[04:56] <infinity> xnox: And dropping the provides entirely also won't work because the version in the release pocket will still have it.
[04:56] <infinity> tdaitx: ^
[04:57] <infinity> tdaitx: The only fix is a real package called java8-runtime, as real packages always take precedence over virtuals if you have none installed.
[04:58] <tdaitx> infinity, updating openjdk-9 and removing the provides wouldn't fix it, is that what you mean?
[04:58] <infinity> tdaitx: Right.
[04:58] <infinity> tdaitx: Since the version in the release pocket will always be there, and will always have the provides.
[04:59] <infinity> tdaitx: (In xenial, that is)
[04:59] <tdaitx> oh, sure
[04:59] <infinity> tdaitx: Removing it would absolutely fix yakkety.
[04:59] <tdaitx> that makes sense
[04:59] <tdaitx> got it
[10:02] <doko> juliank, thanks for finally tracking that down
[11:10] <juliank> doko: David did all the work, I'm just the messenger :D