
Code: Select all
net-dns/bind-tools: add 9.18.0
This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too
fragile and gains nothing because the same software gets built again anyway,
just thrown away at the end.That is bizarre, yes bind-tools uses the same tarball, but what is installed at the end is quite different. You do not have any .h include files, not libraries, any init.d scripts polluting startup, no daemons (which can be launched accidentally). What are they talking about ?Hu wrote:As I read the git log output for net-dns/bind-tools, it is not a mistake. Commit net-dns/bind-tools: add 9.18.0 reads:Code: Select all
net-dns/bind-tools: add 9.18.0 This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too fragile and gains nothing because the same software gets built again anyway, just thrown away at the end.

I am not sure if the maintainer will see this discussion here. So I would suggestion open a bug request.Hu wrote:As I read the git log output for net-dns/bind-tools, it is not a mistake. Commit net-dns/bind-tools: add 9.18.0 reads:Code: Select all
net-dns/bind-tools: add 9.18.0 This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too fragile and gains nothing because the same software gets built again anyway, just thrown away at the end.
There's nothing bizarre about it. One can dislike the outcome without it being bizarre. You can read the discussion on the bug for the long-winded debate about it, including the issues from trying to make it split. It ended up being fragile, building redundant components, and having to manually keep a list of files to delete in sync. You would also end up with having to apply patches twice to both packages and doing hacks to avoid collisions with them installing the same internal libraries.dmpogo wrote:That is bizarre, yes bind-tools uses the same tarball, but what is installed at the end is quite different. You do not have any .h include files, not libraries, any init.d scripts polluting startup, no daemons (which can be launched accidentally). What are they talking about ?Hu wrote:As I read the git log output for net-dns/bind-tools, it is not a mistake. Commit net-dns/bind-tools: add 9.18.0 reads:Code: Select all
net-dns/bind-tools: add 9.18.0 This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too fragile and gains nothing because the same software gets built again anyway, just thrown away at the end.
Result matters more than how the compilation goes. Utilities are not daemons
I would agree the term "bizarre", because if it is due to difficult maintain, than the ebuild should just be dropped, not keep in tree. have the ebuild named bind-tools and yet it does not offer what the name imply is in my view a bizarre idea.sam_ wrote:There's nothing bizarre about it. One can dislike the outcome without it being bizarre. You can read the discussion on the bug for the long-winded debate about it, including the issues from trying to make it split. It ended up being fragile, building redundant components, and having to manually keep a list of files to delete in sync. You would also end up with having to apply patches twice to both packages and doing hacks to avoid collisions with them installing the same internal libraries.dmpogo wrote:That is bizarre, yes bind-tools uses the same tarball, but what is installed at the end is quite different. You do not have any .h include files, not libraries, any init.d scripts polluting startup, no daemons (which can be launched accidentally). What are they talking about ?Hu wrote:As I read the git log output for net-dns/bind-tools, it is not a mistake. Commit net-dns/bind-tools: add 9.18.0 reads:Code: Select all
net-dns/bind-tools: add 9.18.0 This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too fragile and gains nothing because the same software gets built again anyway, just thrown away at the end.
Result matters more than how the compilation goes. Utilities are not daemons
Thank you for clarification.sam_ wrote:I think we've done what you described. bind-tools is now a dummy ebuild which depends on bind (does nothing else - installs no files, etc). It will be dropped eventually, leaving only bind.
Bizarre is the logic offered. Any decisions can be made, but stating "gains nothing because the same software gets built again anyway,sam_ wrote:There's nothing bizarre about it. One can dislike the outcome without it being bizarre. You can read the discussion on the bug for the long-winded debate about it, including the issues from trying to make it split. It ended up being fragile, building redundant components, and having to manually keep a list of files to delete in sync. You would also end up with having to apply patches twice to both packages and doing hacks to avoid collisions with them installing the same internal libraries.dmpogo wrote:That is bizarre, yes bind-tools uses the same tarball, but what is installed at the end is quite different. You do not have any .h include files, not libraries, any init.d scripts polluting startup, no daemons (which can be launched accidentally). What are they talking about ?Hu wrote:As I read the git log output for net-dns/bind-tools, it is not a mistake. Commit net-dns/bind-tools: add 9.18.0 reads:Code: Select all
net-dns/bind-tools: add 9.18.0 This is just a proxy for net-dns/bind. Splitting the ebuilds is *way* too fragile and gains nothing because the same software gets built again anyway, just thrown away at the end.
Result matters more than how the compilation goes. Utilities are not daemons
Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!
Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!
I think that's the "correct" way if users do want to drop the server stuff.sam_ wrote:Use INSTALL_MASK.
Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!
I understand that some situations can be difficult and with no easy and obvious solution, so one lives with whatever it is.Zucca wrote:Yes. USE flags make things more complicated (in this case at least).
So maybe just introducing tools-only flag (which would be off by default) for users who really need to exclude the server side stuff for whatever reasons.
Oh, in this particular case it's looks quite easy: always enable tools, since they are useful for both, servers running bind, and power users on machines not running servers, as well as servers running other implementations than bind (I use powerdns and bind-tools still come in handy).sam_ wrote:You'd then be introducing REQUIRED_USE hassle (do we require at least-one-of? yes, I guess so. then what do we default it to?). It is ugly to have something where you need at least one USE flag for it to be useful.
That's a hack though, isn't it?Use INSTALL_MASK.
I think that's the "correct" way if users do want to drop the server stuff.
Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!
From user perspective that would be most logical setup. Should be easier, just have internal INSTALL_MASK on everything server related when USE='-server' ?Zucca wrote:My preferred way would be to have USE="server" for bind package. But if that could possibly cause a lot of breakages, then better to just go "all-in" and have the server stuff come along. I know some people like to drop all the unnecessary bits off to limit possible attack vectors...
I haven't dug enough deep to say which is the better option from packager's perspective, so I trust sam_ on this.