[20:38] 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] `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] realtime-neil: it sounds like you are saying germinate ignores version requirements? [20:44] it does indeed [20:46] sounds like a bug - do you have a simple example? [20:46] CarlFK: it probably wouldn't take me too much to create one ... is (are) the maintainer(s) responsive ? [20:47] no clue, but 1/2 of this is to make sure things are as you think they are. [21:02] CarlFK: how does one even write a test unit that checks the germinate-ability of itself? [21:11] 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] ideally a package with only one dependency, but that might get tedious to find [21:12] I'm trying to create the package with the version requirement along with the script that exposes the bug [21:23] I would use a package that is already in the main repo [22:48] CarlFK: got any suggestions? I can't find anything with an uncomplicated `Depends:` stanza that also has a `(<< )` version association [22:58] 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] 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] CarlFK: okay, I'm using this https://paste.ubuntu.com/p/f98gzMSj2J/ [23:13] 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] 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] do any of ansible s deps have version requirements? [23:22] 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] oh... does germinate only give you lists of package names, not download the package? [23:31] yes, that's correct [23:31] hmm [23:32] and (I'm discovering) it only respects package names and not package versions [23:33] 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] 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] 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] planting is cute [23:40] # Does this seed still look the same as the one it was copied from [23:40] # after we've finished planting it? [23:41] given it doesn't output any version info, and sounds like you need it... hmm... [23:43] if apt_pkg.version_compare(last_ver, ver) >= 0: [23:44] huh [23:44] welp [23:44] ok, I was hoping "newest version of each package" refereed to "same version number, different dates" [23:44] looks like I'm using the wrong tool [23:44] or this tool needs a new feature ;) [23:45] I am a little surprised it is the way it is, and seems pretty intentional, not a oversite [23:47] 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] this == "the proposed feature we're discussing" [23:48] I don't think you are crazy [23:49] cjwatson: yoo-hoo... ^^^ [23:52] :D