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 | 00:44 |
---|---|---|
xnox | tdaitx, there isn't... | 01:43 |
xnox | and apt & aptitude do things differently. | 01:44 |
=== Guest21717 is now known as karstensrage | ||
xnox | tdaitx, what is the magic Depends stanza you are trying to use? | 01:44 |
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:45 |
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:46 |
ubottu | 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:46 |
xnox | multiarch / virtual packages / other fields / alternates resolutions / other installed packages / priorities / pinning -> all have funny corner cases. | 01:47 |
=== juliank is now known as Guest11883 | ||
=== juliank_ is now known as juliank | ||
xnox | tdaitx, look at this - | 01:50 |
xnox | http://paste.ubuntu.com/23050611/ | 01:50 |
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:51 |
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:52 |
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:53 |
xnox | jbicha, it works when there is a versioned depends on a virtual package | 01:54 |
jbicha | ok | 01:54 |
tdaitx | xnox, "these days" -> do you recall when that started being supported? | 01:57 |
xnox | tdaitx, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=7330 | 01:59 |
ubottu | Debian bug 7330 in dpkg "dpkg: support versioned Provides" [Wishlist,Fixed] | 01:59 |
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:00 |
tdaitx | xnox, I don't know what their particular problem is because they didn't provide examples for that | 02:01 |
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:02 |
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:03 |
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:04 |
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:05 |
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:07 |
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:08 |
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:09 |
tdaitx | but equivs seems much better | 02:10 |
xnox | but then |apt-ftparchive packages ." | 02:10 |
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:11 |
xnox | argh | 02:16 |
xnox | Updating from such a repository can't be done securely, and is therefore disabled by default. | 02:16 |
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:24 | |
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 | 02:33 |
ubottu | Debian bug 7330 in dpkg "dpkg: support versioned Provides" [Wishlist,Fixed] http://bugs.debian.org/7330 | 02:33 |
=== JanC_ is now known as JanC | ||
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:56 |
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:57 |
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:58 |
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 | 04:59 |
doko | juliank, thanks for finally tracking that down | 10:02 |
juliank | doko: David did all the work, I'm just the messenger :D | 11:10 |
=== JanC_ is now known as JanC | ||
=== mnepton is now known as mneptok | ||
=== JanC_ is now known as JanC |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!