[20:38] <realtime-neil> How do I download a package and all of its dependencies if the package in question `Depends:` on a `libfoobar (<< 1.2.3)` and there are multiple `libfoobar` package versions in the available repositories?
[20:40] <realtime-neil> `germinate` can't do this because "the newest version of each source package across all archives will win" (https://manpages.debian.org/buster/germinate/germinate.1.en.html)
[20:44] <CarlFK> realtime-neil: it sounds like you are saying germinate ignores version requirements?
[20:44] <realtime-neil> it does indeed
[20:46] <CarlFK> sounds like a bug - do you have a simple example?
[20:46] <realtime-neil> CarlFK: it probably wouldn't take me too much to create one ... is (are) the maintainer(s) responsive ?
[20:47] <CarlFK> no clue, but 1/2 of this is to make sure things are as you think they are.
[21:02] <realtime-neil> CarlFK: how does one even write a test unit that checks the germinate-ability of itself?
[21:11] <CarlFK> realtime-neil: "unit test" sounds automated.  manually call it with one package that has a version requirement,  look at the results,  show that it ignores it.
[21:12] <CarlFK> ideally a package with only one dependency, but that might get tedious to find
[21:12] <realtime-neil> I'm trying to create the package with the version requirement along with the script that exposes the bug
[21:23] <CarlFK> I would use a package that is already in the main repo
[22:48] <realtime-neil> CarlFK: got any suggestions? I can't find anything with an uncomplicated `Depends:` stanza that also has a `(<< )` version association
[22:58] <CarlFK> realtime-neil: go with a complicated one.  I think it will be easy enough to show: it should have downloaded X, but it didn't.
[23:00] <CarlFK> the less extra things to deal with the better, but something solid is better than nothing, and also better than something built by hand that might introduce its own problems
[23:12] <realtime-neil> CarlFK: okay, I'm using this https://paste.ubuntu.com/p/f98gzMSj2J/
[23:13] <realtime-neil> and when I `./germinate-this.sh ansible`, I expect to see some kind of version specifier in the `standard.depends` ... but there's literally no version information at all
[23:14] <realtime-neil> Am I assuming too much from `germinate`? I thought it was supposed to generate files that told you what to apt-get download?
[23:21] <CarlFK> do any of ansible s deps have version requirements?
[23:22] <realtime-neil> Yes: `Depends: python-cryptography, python-jinja2, python-paramiko, python-pkg-resources, python-yaml, python:any (<< 2.8), python:any (>= 2.7.5-5~), python-crypto, python-httplib2, python-netaddr`
[23:31] <CarlFK> oh... does germinate only give you lists of package names, not download the package?
[23:31] <realtime-neil> yes, that's correct
[23:31] <CarlFK> hmm
[23:32] <realtime-neil> and (I'm discovering) it only respects package names and not package versions
[23:33] <realtime-neil> I think I need some kind of tool that will `apt-get depends --recurse ...` _and_ give me the versions of every package in the traversal
[23:35] <realtime-neil> Or maybe a `apt install` simulator that attempts to solve the dependency graph and spits a `package=version` list when it finds a solution?
[23:36] <CarlFK> looking at /usr/lib/python3/dist-packages/germinate/germinator.py   At this point, we only copy the parts of this seed that were filled         in by planting;
[23:36] <CarlFK> planting is cute
[23:40] <CarlFK>         # Does this seed still look the same as the one it was copied from
[23:40] <CarlFK>         # after we've finished planting it?
[23:41] <CarlFK> given it doesn't output any version info, and sounds like you need it... hmm...
[23:43] <CarlFK> if apt_pkg.version_compare(last_ver, ver) >= 0:
[23:44] <realtime-neil> huh
[23:44] <realtime-neil> welp
[23:44] <CarlFK> ok, I was hoping "newest version of each package" refereed to "same version number, different dates"
[23:44] <realtime-neil> looks like I'm using the wrong tool
[23:44] <CarlFK> or this tool needs a new feature  ;)
[23:45] <CarlFK> I am a little surprised it is the way it is, and seems pretty intentional, not a oversite
[23:47] <realtime-neil> CarlFK: I'm not crazy, right? I mean, this would be needed to correctly resolve any situation more complicated than "just give me the latest of everything you can see"
[23:48] <realtime-neil> this == "the proposed feature we're discussing"
[23:48] <CarlFK> I don't think you are crazy
[23:49] <CarlFK> cjwatson: yoo-hoo... ^^^
[23:52] <realtime-neil> :D