Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 595924 - [Future EAPI] DESTTREE used inconsistently across the helpers
Summary: [Future EAPI] DESTTREE used inconsistently across the helpers
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: PMS/EAPI (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: PMS/EAPI
URL:
Whiteboard: in-eapi-7
Keywords:
Depends on:
Blocks: future-eapi
  Show dependency tree
 
Reported: 2016-10-02 11:10 UTC by Michał Górny
Modified: 2018-04-30 22:46 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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(-)}