Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 688818 - >=app-emulation/lxd-3.0.4 should require only liblxc from app-emulation/lxc
Summary: >=app-emulation/lxd-3.0.4 should require only liblxc from app-emulation/lxc
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Erik Mackdanz
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-27 13:14 UTC by Stephen Bosch
Modified: 2019-07-02 00:13 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
New ebuild for =app-emulation/lxd-3.0.4 adds built USE dependency (lxd-3.0.4.ebuild,6.74 KB, text/plain)
2019-06-27 13:14 UTC, Stephen Bosch
Details
Metadata for ebuild (metadata.xml,1.01 KB, text/xml)
2019-06-27 13:15 UTC, Stephen Bosch
Details
New ebuild for =app-emulation/lxd-3.10 adds built USE dependency (lxd-3.10.ebuild,6.74 KB, text/plain)
2019-06-27 13:16 UTC, Stephen Bosch
Details
New ebuild for =app-emulation/lxd-3.11 adds built USE dependency (lxd-3.11.ebuild,6.74 KB, text/plain)
2019-06-27 13:17 UTC, Stephen Bosch
Details
New ebuild for =app-emulation/lxd-3.12 adds built USE dependency (lxd-3.12.ebuild,6.74 KB, text/plain)
2019-06-27 13:17 UTC, Stephen Bosch
Details
New ebuild for =app-emulation/lxc-3.0.3 adds USE="tools" (lxc-3.0.3.ebuild,4.96 KB, text/plain)
2019-06-27 13:20 UTC, Stephen Bosch
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stephen Bosch 2019-06-27 13:14:41 UTC
Created attachment 581138 [details]
New ebuild for =app-emulation/lxd-3.0.4 adds built USE dependency

Upstream recommends against installing LXC and LXD simultaneously. See https://discuss.linuxcontainers.org/t/comparing-lxd-vs-lxc/24.

However, app-emulation/lxd depends on liblxc. Require that app-emulation/lxc be built with --enable-tools=no to avoid confusion. See https://discuss.linuxcontainers.org/t/name-and-package-confusion-between-lxc-and-lxd/5120/6.

Also, make app-emulation/lxd-3.0.4 available, as this is the long-term support version.
Comment 1 Stephen Bosch 2019-06-27 13:15:31 UTC
Created attachment 581140 [details]
Metadata for ebuild
Comment 2 Stephen Bosch 2019-06-27 13:16:21 UTC
Created attachment 581142 [details]
New ebuild for =app-emulation/lxd-3.10 adds built USE dependency
Comment 3 Stephen Bosch 2019-06-27 13:17:07 UTC
Created attachment 581144 [details]
New ebuild for =app-emulation/lxd-3.11 adds built USE dependency
Comment 4 Stephen Bosch 2019-06-27 13:17:48 UTC
Created attachment 581146 [details]
New ebuild for =app-emulation/lxd-3.12 adds built USE dependency
Comment 5 Stephen Bosch 2019-06-27 13:20:42 UTC
Created attachment 581148 [details]
New ebuild for =app-emulation/lxc-3.0.3 adds USE="tools"

Sorry, I don't have a quick way of generating diffs.

A similar change may be applied to later versions.

This has has been tested and is working on my system.
Comment 6 Erik Mackdanz gentoo-dev 2019-07-01 13:43:07 UTC
I use the command line tools from both lxc and lxd for troubleshooting.  There's no reason not to have the lxc-* tools installed.  Nothing breaks and it's useful for some users.  You are free to set USE="-tools" in your package.use but that shouldn't be a requirement for all users.
Comment 7 Stephen Bosch 2019-07-01 21:52:14 UTC
(In reply to Erik Mackdanz from comment #6)
> I use the command line tools from both lxc and lxd for troubleshooting. 
> There's no reason not to have the lxc-* tools installed.

I beg to differ. There are numerous reasons not to have the lxc-* tools installed.

1. It's extremely confusing.
2. Upstream specifically recommends against it.
3. The lxc tools are unnecessary if lxd is installed.

> Nothing breaks and
> it's useful for some users.

How do you define "break"? Interchangeably using the two causes inconsistent and unexpected behaviour.

Just because something is useful for some users does not make it a sensible default.

> You are free to set USE="-tools" in your
> package.use but that shouldn't be a requirement for all users.

In order for me to be able to set USE="-tools" that USE flag has to actually be supported by the ebuild (it currently is not). If you feel a USE="-tools" default is inappropriate for app-emulation/lxc, then set it to USE="tools", but the option should at least be there. Please take another look at the attached files.

There are good reasons for integrating these changes into the main tree. Deviating from configurations recommended by upstream just makes it harder for Gentoo users to get effective support, which is not a good advertisement for Gentoo.
Comment 8 Erik Mackdanz gentoo-dev 2019-07-02 00:13:29 UTC
I recommend opening an item for app-emulation/lxc with that patch only.  The package has a different maintainer and I think the patch by itself is good and not controversial.  Then individuals can set USE="-tools" if they want.

The lxd patches are not acceptable because they don't set a sensible default, they set a hard requirement that lxc-* tools must no longer be available on a system with lxd.  A user that has installed lxc and now wants to take lxd for a spin shouldn't have to rebuild lxc to strip out the tools and abandon their existing containers even though the tools and containers work just fine.

I think it's good to distinguish lxd-the-software-project from lxd-the-apt-package.  The former is upstream and we've worked hard to maintain fidelity.  However there's no reason to make the same packaging decisions that the apt packagers made which remove capabilities (no lxc-* tools) and are frankly more confusing (lxc1 vs lxc2).  The linked discussion threads don't provide a compelling reason to make a restrict our users.