On Tue, Aug 18, 2020 at 10:12:07PM +0200, Helmut Grohne wrote: > > I'm not sure whether the package not being a leaf has that much to do > > with it. Honestly, I feel like blaming libmaxminddb for bootstrappability > > issues is a bit odd. The chain I think is: > > isc-dhcp-client(?) -> bind9 -> libmaxminddb -> pandoc -> <bunch of > > Haskell> > > with Haskell being particularly hard to bootstrap. Did I get that right? > > The cycle seems wrong to me. isc-dhcp-client Build-Depends on > libbind-export-dev, which is built from src:bind9-libs and doesn't > depend on something built from libmaxminddb. So this particular cycle is > already solved at the bind level by splitting the bind source package. > > This is not to say that there would be no cycle. I haven't checked, but > it isn't this cycle.
Ah, apologies then. Not sure what the cycle is in that case :) > That said, if you want to break a cycle using cross compilation (which > is not applicable to all bootstrap scenarios), libmaxminddb would have > to be cross buildable, which presently isn't the case. This is due to > all the perl-ish dependencies. Do I understand correctly, that you only > need them for running unit tests? If yes, please annotate them > <!nocheck>. Not all, but from what I saw in the bug you filed, you figured that out already :) Thanks for that bug report, I applied that patch in git. > > All that said, I don't want to be an obstacle here and would be happy to > > help, as long as what we end up doing makes overall sense :) > > Speaking of sense: Having the libmaxminddb.3 manual page in the > libmaxminddb0 packages certainly does not make sense. You added the > developer documentation to the shared library package. A much better > place would be libmaxminddb-dev. Unfortunately, that doesn't help us in > any way with solving the bootstrapping problem at hand. Whoops! Thanks for spotting that! Fixed that in git as well. > So let's talk about alternatives. > > 1. nodoc. There is a build profile/option called nodoc. I really hate > it, because it makes things unreproducible and I like things to be > reproducible. However, making the manual pages optional via a nodoc > profile certainly solves the bootstrap cycle. It's just inconvenient > for the bootstrapper and requires manual work. I don't like it, but > it really is a solution. > > 2. Try a different converter. ronn (written in ruby) is such a > converter. I'm not sure whether ruby cycles with libmaxminddb in some > other way. Hmmm alright. That's helpful! I gave ronn a look just now, attempting to convert the mmdblookup manpage. The output is broken, apparently due to apjanke/ronn-ng#57 (very new), apjanke/ronn-ng#33 (old), as well as the requirement to use section 2 markdown headers instead of section 1 (the latter being relatively easy to workaround in the Perl script, though). I also did not check for current or potential bootstrap cycles. Best, Faidon