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