Dear maintainers, After being successful to set up an ebuild for LXC 2.1.1, I try to work out an ebuild for LXC 3.0.0. I adjust bash completion patch and disabled the obsolete other upstream patches for V2. But then I discovered that the language bindings for Python and LUA are now split into separate source packages; please take a look at https://linuxcontainers.org/lxc/downloads/#release-tarballs Now I wonder what is the Gentoo way to deal with this: Should this be handled by the LXC ebuild in dependence with the USE-flags, should this ebuild pull the separated source tarballs? Or might this be also split out to a separate package/ebuild? If yes,
I just found that others have already released an ebuild for 2.1.1 to the portage tree.
(In continue to Guido Jäkel from comment #0) > Or might this be also split out to a separate package/ebuild? If yes, ... If yes, how to name this package? I guess, this python-lxc package should be an USE-conditional dependency within the DEPEND of the app-emulation/lxc ebuild in this case. The same yields for LUA, but up to now there is no release for this binding upstream. I try to ask the state about this at the LXC developers maillist.
I was thinking about doing the bumping, but you beat me to it Guido :) That bindings thing is an interesting problem. As always, the best place to look is the portage tree for prior art. I've found that app-emulation/libvirt has python bindings in a separate package: dev-python/libvirt-python. We can see that it handles the situation by doing nothing: there is no "python" USE flag. Without a legacy, I'd be tempted to say that we do like libvirt does, but the problem is that we have users who already have that use flag enabled. So I'd be tempted to say that we create a separate python-lxc ebuild and add a USE flag conditional dependency to it, but then we end up with a circular dependency which isn't very clean. So maybe drop the USE flag? maybe that a more experience gentoo dev have a better notion.
(In reply to Virgil Dupras from comment #3) > So I'd be tempted to say that we create a separate python-lxc ebuild and add a > USE flag conditional dependency to it, but then we end up with a circular > dependency which isn't very clean. > > So maybe drop the USE flag? maybe that a more experience gentoo dev have a > better notion. Dear Virgil, Of course, (let say) dev-python/lxc-python will RDEPEND app-emulation/lxc[python] (or just app-emulation/lxc) and app-emulation/lxc will RDEPEND python? (dev-python/lxc-python) but this should not need to be a DEPEND (build dependency) because it's separate source tarbals upstream. Would that be a circular dependency for real? It's a "Gentoo-Style-Question": May an USE-flag be used "just" to pull other packages without any influence to the sources handled in the ebuild itself? Anyway, one can add comments in the DOC_CONTENTS about this package split ...
I don't think it's going to be a problem technically, I was wondering, just as you did, about the cleanliness, style-wise, of having that kind of circular dependencies.
I haven't read your comment properly earlier Guido. Using the readme eclass through DOC_CONTENTS and simply drop the USE flag seems like the way to go indeed.
One change in upstream 3.0.0 is that the cgfs PAM module has been moved from lxcfs into lxc proper. Whoever will package 3.0.0, can you include the PAM module? See [1] for rationale. Refer to the lxcfs 2.x ebuild for how it was installed before. [1] https://brauner.github.io/2018/02/28/lxc-includes-cgroup-pam-module.html
(In reply to Erik Mackdanz from comment #7) > One change in upstream 3.0.0 is that the cgfs PAM module has been moved from > lxcfs into lxc proper. I also notice that. The Gentoo common USE-flag 'pam' may be introduced here to handle this.
Guido, are you still planning on writing the bump? I've got some free time tonight and I've been wanting to try LXC 3.0 out. Since you don't seem to be actively working on the bump, I'll have a shot at it.
Oh! I forgot the pam module! Adding...
(In reply to Virgil Dupras from comment #9) > Guido, are you still planning on writing the bump? I've got some free time > tonight and I've been wanting to try LXC 3.0 out. Since you don't seem to be > actively working on the bump, I'll have a shot at it. Thank you for your time to work on it! I was waiting for a hint of the maintainers about their ideas on packaging, yet. And thank you also: I wasn't aware that I may use the GitHub workflow to propose and pass ebuilds!
Dear Virgil, by change today I was facing something comparable: The main mongodb ebuild pulls mongo-tools in dependence of the USE-flag tools. You find the dev-db/mongodb-3.4.10.ebuild have the lines IUSE="... +tools" and PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )". And app-admin/mongo-tools-3.4.10 have RDEPEND="!<dev-db/mongodb-3.0.0" .
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba77a0dedea123401b3015213dbcf6e1b9d44471 commit ba77a0dedea123401b3015213dbcf6e1b9d44471 Author: Virgil Dupras <hsoft@hardcoded.net> AuthorDate: 2018-04-11 01:14:59 +0000 Commit: Matthias Maier <tamiko@gentoo.org> CommitDate: 2018-04-26 01:35:49 +0000 app-emulation/lxc: Bump to v3.0.0 Many notable changes: 1. Drop python and lua. Bindings are no longer bundled with LXC and live in separate packages. 2. Drop cgmanager USE flag. cgmanager isn't supported anymore by upstream. 3. Remove versionator inherit. It wasn't used. 4. Remove two patches which were simple cherry pick from upstreams. They're applied upstream now. 5. Remove notice about path change in v1.1. It's been a while, it lost relevance. 6. Remove start-ephemeral bash completion. Upstream finally removed it from its own completions. 7. Add "pam" USE flag for the compilation and installation of the new builtin "pam_cgfs.so" module. Closes: https://bugs.gentoo.org/652582 Closes: https://github.com/gentoo/gentoo/pull/7934 Package-Manager: Portage-2.3.24, Repoman-2.3.6 Signed-off-by: Matthias Maier <tamiko@gentoo.org> app-emulation/lxc/Manifest | 1 + .../lxc/files/lxc-3.0.0-bash-completion.patch | 27 ++++ app-emulation/lxc/lxc-3.0.0.ebuild | 169 +++++++++++++++++++++ 3 files changed, 197 insertions(+)
Dear Virgil, thank you a lot for your work. I was busy with other things and will try it ASAP. Guido