Package: germinate
Version: 2.30
Severity: normal
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Dear Maintainer,
Working on a debian derivative, I need to resolve my seeds with the
following setup:
Two mirrors:
- - a base mirror (eg. debian.org)
- - a partial mirror that contains my additional packages (eg.
derivative.org)
Two distros:
- - a distro from the base mirror (eg. 'stretch')
- - a distro from the partial mirror (eg. 'derivative')
A bunch of components: main, contrib, non-free, plus some additional
components from my partial mirror (eg. 'comp1', 'comp2').
So I throw it all to germinate with a command such as:
germinate -v \
-m http://deb.debian.org/debian \
-m http://deb.derivative.org/derivative \
-d stretch,derivative \
-c main,contrib,non-free,comp1,comp2 \
...
This makes germinate quite unhappy, with the following error:
Traceback (most recent call last):
File "/usr/bin/germinate", line 33, in <module>
main(sys.argv)
File "/usr/lib/python3/dist-packages/germinate/scripts/germinate_main.py",
line 155, in main
g.parse_archive(archive)
File "/usr/lib/python3/dist-packages/germinate/germinator.py", line 609, in
parse_archive
for indextype, section in archive.sections():
File "/usr/lib/python3/dist-packages/germinate/archive.py", line 237, in
sections
"binary-" + self._arch + "/Packages")
File "/usr/lib/python3/dist-packages/germinate/archive.py", line 214, in
_open_tag_files
raise IOError("no %s files found" % tagfile_type)
OSError: no Packages files found
After looking at the code, I can see that germinate iterates on the
distributions (ie. 'stretch' and 'derivative' in this case), and for each
distro it iterates on the components, and for each components, it tries
every mirror. germinate considers it an error if nothing is found for a
given (distro,component) combination.
So what happens in the example here is that at some point, germinate will
hit the case where it looks for the 'comp1' component in the 'stretch'
distro, and it will fail. Because the 'comp1' component only exists in the
'derivative' distro.
Looking further at the code, I can see that this is only a self-imposed
restriction in germinate. I could easily disable this restriction, and
then germinate can actually keep going, and work as expected (well, as I
personally expect it to work ;)
Would you consider relaxing this restriction, and allowing this use-case
to work with germinate?
I actually pushed such a change on a git repo here:
<https://salsa.debian.org/arnaudr-guest/germinate/tree/arno>
The patch is simple, and just follows some logic that is already in
place for debian installers packages: my change just extend the
exception for source and binary packages, and drop a warning.
Please tell me what you think about it. Thanks!
Arnaud
- -- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.18.0-3-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages germinate depends on:
ii perl 5.28.1-1
ii python3 3.6.7-1
ii python3-germinate 2.30
germinate recommends no packages.
germinate suggests no packages.
- -- no debconf information
-----BEGIN PGP SIGNATURE-----
iQJTBAEBCgA9FiEE0Kl7ndbut+9n4bYs5yXoeRRgAhYFAlwSs/QfHGFybmF1ZC5y
ZWJpbGxvdXRAY29sbGFib3JhLmNvbQAKCRDnJeh5FGACFrEiD/0U8GviOKYWH4+6
wWFD9eTspXeQVhkItxDWyZVQyF8ubtudRfH9ChX7ye8vcusNBrLg2BAQj2Cj9eXT
g29HCACg/FK4uUVJNDX57eW6OmMwRaTMLw7GyMghdtY8oen+NfvSR8PsF3SbTsHm
uZCzc4LcUEtKsY6EdAaoCK2TKw1FphzfqKxC0YdjN9AahizPsvlHMmd6jCRZNnRf
8OrpiJjaLZPUz0rzGy2E8yEkgkTaW8aCvQh7oFaZJRBmOnsZzV/TGQdSXK6GAeak
Q6SRsQseeo0LKF1fvJSvm5ENTFGp7lJc1tPSF6+05emAopKz11QAbWXhbnKMTwJI
VJUrISeJoPqG89Qt09a7BTsheuM3P+7RcNBkBCMuieWWTu7OL3DNEsqzPB2qklec
K9OXYcUUgRH/FjMzoagZ/CHeau8Slu0s3YWi7SZYGDUsvzr8cwVTiX2xIoKNLUzi
xFuRhQCnJMK8VOaxMGZf+93+9aVVkNqXWVIocqPUcess6eLyFdbMjUS+bYr1dAut
tt9dI9N24WksSf8Ia2Dsjwqfyw/9/jl46xxP0SbNQBnQR24T39EuyPpZhTJPinIU
55EpWfauEP9bsks74rZolG9QMnEj5Ww8SqUEtmnXI7esT7XMZKnpatFeeQzNZZiv
1GCXa1woWU0KEPKVSdqOX7LrHQOp+A==
=ZgMH
-----END PGP SIGNATURE-----