Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 595924

Summary: [Future EAPI] DESTTREE used inconsistently across the helpers
Product: Gentoo Hosted Projects Reporter: Michał Górny <mgorny>
Component: PMS/EAPIAssignee: PMS/EAPI <pms>
Status: RESOLVED FIXED    
Severity: normal CC: esigra
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=173630
Whiteboard: in-eapi-7
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 174380    

Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-02 11:10:28 UTC
AFAICS DESTTREE (into) is respected by:

- dobin,
- dolib,
- domo,
- dosbin.

The following helpers instead hardcode /usr:

- dodoc,
- doheader,
- dohtml,
- doinfo,
- doman.

I can grasp the rationale for using consistent documenation dir for dodoc/dohtml. I can understand that info & manpages should land in well-known location so that tools can find them.

However, I have serious doubts about domo (will gettext really find it?) and doinclude (why respect DESTTREE for dolib but not doheader?).


It seems that most of the time into is used to force / or /opt (which would fit doheader but not domo). In a few ebuilds it's also used to force subdirectories of /opt, /usr/lib* or /usr/share.

To avoid confusion, I would just go for deprecating it and require people to do explicit 'exeinto /bin' etc.
Comment 1 Ulrich Müller gentoo-dev 2016-10-03 00:13:34 UTC
Right, it is primarily used to set an install location under / vs /usr. Which makes sense for dobin, dosbin, and dolib*, but for none of the others (e.g., doheader installing into /include wouldn't make any sense).

(In reply to Michał Górny from comment #0)
> To avoid confusion, I would just go for deprecating it and require people to
> do explicit 'exeinto /bin' etc.

I doubt that there's much confusion currently. There will be if we change the longstanding behaviour.

What appears to be unsystematic is the domo helper (which I think is little used). So a less intrusive change would be to make it install into /usr instead of DESTTREE. But first, someone should scan the tree about actual usage.
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-03 06:18:30 UTC
Uses of domo (14 files, 7 packages):

app-emulation/lxd/lxd-2.0.3-r1.ebuild
app-emulation/lxd/lxd-2.1.ebuild
app-emulation/lxd/lxd-2.2.ebuild
app-portage/porthole/porthole-0.6.1-r1.ebuild
app-portage/porthole/porthole-0.6.1-r2.ebuild
app-portage/porthole/porthole-0.6.1-r3.ebuild
app-portage/porthole/porthole-0.6.1-r4.ebuild
app-text/txt2tags/txt2tags-2.6-r1.ebuild
app-text/txt2tags/txt2tags-2.6.ebuild
dev-java/jinklevel/jinklevel-0.1.ebuild
dev-tex/serienbrief/serienbrief-0.2.5.ebuild
net-firewall/ufw/ufw-0.34_pre805-r2.ebuild
net-firewall/ufw/ufw-0.35.ebuild
net-print/gmso2/gmso2-0.1-r1.ebuild

None of them combined with 'into'.
Comment 3 Ulrich Müller gentoo-dev 2016-10-03 09:44:36 UTC
(In reply to Michał Górny from comment #2)
> Uses of domo (14 files, 7 packages):
> 
> app-emulation/lxd/lxd-2.0.3-r1.ebuild
> app-emulation/lxd/lxd-2.1.ebuild
> app-emulation/lxd/lxd-2.2.ebuild
> app-portage/porthole/porthole-0.6.1-r1.ebuild
> app-portage/porthole/porthole-0.6.1-r2.ebuild
> app-portage/porthole/porthole-0.6.1-r3.ebuild
> app-portage/porthole/porthole-0.6.1-r4.ebuild
> app-text/txt2tags/txt2tags-2.6-r1.ebuild
> app-text/txt2tags/txt2tags-2.6.ebuild
> dev-java/jinklevel/jinklevel-0.1.ebuild
> dev-tex/serienbrief/serienbrief-0.2.5.ebuild
> net-firewall/ufw/ufw-0.34_pre805-r2.ebuild
> net-firewall/ufw/ufw-0.35.ebuild
> net-print/gmso2/gmso2-0.1-r1.ebuild
> 
> None of them combined with 'into'.

Domo arigatou. :)

So how about s:DESTTREE:/usr: for domo in the next EAPI? I'd rather not touch any of the others.
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2016-10-03 10:28:23 UTC
(In reply to Ulrich Müller from comment #3)
> So how about s:DESTTREE:/usr: for domo in the next EAPI? I'd rather not
> touch any of the others.

Worksforme. Plus, let's put an explicit list of helpers affected in 'into' desc.

However, I still don't like the idea of 'into' at all. We've recently seen an ebuild that does 'into', then calls some other random 'do*' helpers, including those from eclasses. It brings a pretty unpredictable result while reviewing.
Comment 5 Larry the Git Cow gentoo-dev 2018-03-04 21:04:56 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=bab6cc7268d0788d501e05f15b79b220de71664f

commit bab6cc7268d0788d501e05f15b79b220de71664f
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2017-09-21 15:07:17 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2018-03-04 21:03:53 +0000

    domo: force /usr prefix in EAPI 7
    
    Bug: https://bugs.gentoo.org/595924

 bin/eapi.sh             | 4 ++++
 bin/ebuild-helpers/domo | 7 ++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)}
Comment 6 Larry the Git Cow gentoo-dev 2018-04-30 22:14:26 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/pms.git/commit/?id=dabf617f2e20ae0c4f124a1a8efa303c4e1e382b

commit dabf617f2e20ae0c4f124a1a8efa303c4e1e382b
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2017-09-29 13:41:52 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2018-03-31 15:30:43 +0000

    EAPI 7: domo installs to /usr.
    
    Bug: https://bugs.gentoo.org/595924

 eapi-differences.tex |  4 ++++
 pkg-mgr-commands.tex | 25 ++++++++++++++++++++-----
 2 files changed, 24 insertions(+), 5 deletions(-)}