Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 899898 - prepinfo: Don't remove dir files from subdirectories
Summary: prepinfo: Don't remove dir files from subdirectories
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on: 902189 916031
Blocks: 906128
  Show dependency tree
 
Reported: 2023-03-06 14:02 UTC by Ulrich Müller
Modified: 2023-10-25 05:49 UTC (History)
2 users (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 Ulrich Müller gentoo-dev 2023-03-06 14:02:49 UTC
install_qa_check calls prepinfo, which loops over the directories in INFOPATH and removes any dir{,.info} files (possibly with compress suffix) found there:

find "${ED%/}/${infodir#/}" -type d -print0 | while read -r -d $'\0' x ; do
	for f in "${x}"/.keepinfodir*; do
		[[ -e ${f} ]] && continue 2
	done
	rm -f "${x}"/dir{,.info}{,.Z,.gz,.bz2,.lzma,.lz,.xz,.zst}
done

Looks like this was introduced following bug 170133 comment #1, where I said:
> IMHO removal of the compressed dir file isn't the business of the Emacs
> ebuild, but should be handled by portage.

15 years later, the original reasons no longer apply. The compression issue has been solved with the introduction of docompress in EAPI 3, and there is no longer a reason for the package manager to remove Info dir files from subdirectories. Plus, none of this is specified in PMS.

So, I suggest the following. The goal would be:
a) Portage should not modify the installed image, and
b) ebuilds should be responsible to avoid any collisions, e.g. they should not install a /usr/share/info/dir file.

To transition to this:
1) Add a QA warning before the rm command.
2) Wait some time, so ebuild authors can fix this (i.e. remove potentially colliding dir files).
3) Drop the whole "for" loop. Add a QA notice if a dir file is found in the top-level Info dir (i.e. "${ED%/}"/usr/share/info or "${ED%/}/${infodir#/}").
Comment 1 Ulrich Müller gentoo-dev 2023-04-04 08:20:48 UTC
(In reply to Ulrich Müller from comment #0)
> To transition to this:
> 1) Add a QA warning before the rm command.
> 2) Wait some time, so ebuild authors can fix this (i.e. remove potentially
> colliding dir files).
> 3) Drop the whole "for" loop. Add a QA notice if a dir file is found in the
> top-level Info dir (i.e. "${ED%/}"/usr/share/info or "${ED%/}/${infodir#/}").

Update: Leave removing the top-level "${ED}"/usr/share/info/dir* in place, and apply the above only to (n-th level) subdirectories.
Comment 2 Larry the Git Cow gentoo-dev 2023-04-06 08:08:52 UTC
The bug has been referenced in the following commit(s):

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

commit 5e58a0d413d4154262f966759d05fe952075c965
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2023-04-05 16:36:49 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2023-04-05 16:36:49 +0000

    prepinfo: Deprecate
    
    According to PMS, calling prepinfo from ebuilds was never allowed.
    Last usage in Gentoo repository has been removed on 2018-11-22.
    
    Bug: https://bugs.gentoo.org/899898
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 bin/ebuild-helpers/prepinfo | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

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

commit 14fffea2fefa05e84bb1c5b10888031c6b598dfc
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2023-04-05 16:35:01 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2023-04-05 16:35:01 +0000

    misc-functions.sh: Inline prepinfo code in install_qa_check()
    
    Add a deprecation warning. Presumably, subdirs of /usr/share/info have
    never been used by any package except app-editors/emacs.
    
    Remove duplicate rm statement at the end of the function.
    
    Bug: https://bugs.gentoo.org/899898
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 bin/misc-functions.sh | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)
Comment 3 Larry the Git Cow gentoo-dev 2023-04-07 10:06:55 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05f0b3b184011060c86787f93e16a29002bdc54a

commit 05f0b3b184011060c86787f93e16a29002bdc54a
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-04-07 09:59:46 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-04-07 09:59:55 +0000

    sys-apps/portage: add 3.0.46
    
    Closes: https://bugs.gentoo.org/861659
    Closes: https://bugs.gentoo.org/877271
    Closes: https://bugs.gentoo.org/898224
    Closes: https://bugs.gentoo.org/899898
    Closes: https://bugs.gentoo.org/902189
    Closes: https://bugs.gentoo.org/903917
    Closes: https://bugs.gentoo.org/903926
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-apps/portage/Manifest              |   1 +
 sys-apps/portage/portage-3.0.46.ebuild | 285 +++++++++++++++++++++++++++++++++
 2 files changed, 286 insertions(+)
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-04-07 10:12:17 UTC
I guess I'll keep this open as a reminder to do the removal.
Comment 5 Larry the Git Cow gentoo-dev 2023-10-21 19:23:17 UTC
The bug has been closed via the following commit(s):

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

commit ce929d243678a2b1a3dc05fe9a21e1bf07fbcac6
Author:     Ulrich Müller <ulm@gentoo.org>
AuthorDate: 2023-05-12 17:27:32 +0000
Commit:     Ulrich Müller <ulm@gentoo.org>
CommitDate: 2023-10-21 08:01:24 +0000

    prepinfo: Ban in ebuild scope
    
    Also drop compatibility code from install_qa_check, i.e. don't recurse
    into subdirectories for removal of Info dir files.
    
    Closes: https://bugs.gentoo.org/899898
    Signed-off-by: Ulrich Müller <ulm@gentoo.org>

 bin/ebuild-helpers/prepinfo | 36 ++----------------------------------
 bin/misc-functions.sh       | 13 -------------
 2 files changed, 2 insertions(+), 47 deletions(-)
Comment 6 Larry the Git Cow gentoo-dev 2023-10-25 05:49:03 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b9128b401def05cac46f9e6d66048e5a0d888b8

commit 2b9128b401def05cac46f9e6d66048e5a0d888b8
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-10-25 05:48:31 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-10-25 05:48:40 +0000

    sys-apps/portage: add 3.0.54
    
    Closes: https://bugs.gentoo.org/905869
    Closes: https://bugs.gentoo.org/915551
    Closes: https://bugs.gentoo.org/915896
    Closes: https://bugs.gentoo.org/916106
    Closes: https://bugs.gentoo.org/916108
    Closes: https://bugs.gentoo.org/916112
    Closes: https://bugs.gentoo.org/916116
    Closes: https://bugs.gentoo.org/916139
    Closes: https://bugs.gentoo.org/916141
    Closes: https://bugs.gentoo.org/916142
    Closes: https://bugs.gentoo.org/916149
    Closes: https://bugs.gentoo.org/916182
    Closes: https://bugs.gentoo.org/916231
    Closes: https://bugs.gentoo.org/916235
    Closes: https://bugs.gentoo.org/916240
    Closes: https://bugs.gentoo.org/916242
    Closes: https://bugs.gentoo.org/916245
    Closes: https://bugs.gentoo.org/916248
    Closes: https://bugs.gentoo.org/899898
    Closes: https://bugs.gentoo.org/906129
    Closes: https://bugs.gentoo.org/906156
    Closes: https://bugs.gentoo.org/916031
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-apps/portage/Manifest              |   1 +
 sys-apps/portage/portage-3.0.54.ebuild | 238 +++++++++++++++++++++++++++++++++
 2 files changed, 239 insertions(+)