commit:     bfceb288cb51af113eddd0fb3cf22ee00e0ff663
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 12 16:17:55 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Jun 12 16:24:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bfceb288

app-admin/eselect: More robust file type detection in env module

Bug: https://bugs.gentoo.org/908401
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 app-admin/eselect/eselect-1.4.22-r1.ebuild         | 60 ++++++++++++++++++++++
 .../eselect/files/eselect-1.4.22-env-module.patch  | 19 +++++++
 2 files changed, 79 insertions(+)

diff --git a/app-admin/eselect/eselect-1.4.22-r1.ebuild 
b/app-admin/eselect/eselect-1.4.22-r1.ebuild
new file mode 100644
index 000000000000..d3dee853583b
--- /dev/null
+++ b/app-admin/eselect/eselect-1.4.22-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1
+
+DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Eselect";
+SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz";
+
+LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+IUSE="doc emacs vim-syntax"
+
+DEPEND="sys-apps/sed
+       || (
+               sys-apps/coreutils
+               app-misc/realpath
+       )"
+RDEPEND="${DEPEND}
+       sys-apps/file
+       sys-libs/ncurses:0"
+BDEPEND="doc? ( dev-python/docutils )"
+PDEPEND="emacs? ( app-emacs/eselect-mode )
+       vim-syntax? ( app-vim/eselect-syntax )"
+
+PATCHES=( "${FILESDIR}/${P}-env-module.patch" )
+
+src_compile() {
+       emake
+       use doc && emake html
+}
+
+src_install() {
+       emake DESTDIR="${D}" install
+       newbashcomp misc/${PN}.bashcomp ${PN}
+       dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
+       if use doc; then
+               docinto html
+               dodoc *.html doc/*.html doc/*.css
+       fi
+
+       # needed by news module
+       keepdir /var/lib/gentoo/news
+       if ! use prefix; then
+               fowners root:portage /var/lib/gentoo/news
+               fperms g+w /var/lib/gentoo/news
+       fi
+}
+
+pkg_postinst() {
+       # fowners in src_install doesn't work for the portage group:
+       # merging changes the group back to root
+       if ! use prefix; then
+               chgrp portage "${EROOT}/var/lib/gentoo/news" \
+                       && chmod g+w "${EROOT}/var/lib/gentoo/news"
+       fi
+}

diff --git a/app-admin/eselect/files/eselect-1.4.22-env-module.patch 
b/app-admin/eselect/files/eselect-1.4.22-env-module.patch
new file mode 100644
index 000000000000..54eb20692d14
--- /dev/null
+++ b/app-admin/eselect/files/eselect-1.4.22-env-module.patch
@@ -0,0 +1,19 @@
+env.eselect: More robust file type detection
+https://bugs.gentoo.org/908401
+
+--- a/modules/env.eselect
++++ b/modules/env.eselect
+@@ -46,9 +46,10 @@ is_envfile() {
+       [[ -n ${envfile##*~} ]] || return 1
+       [[ ${envfile##*.} != bak ]] || return 1
+ 
+-      mime=$(POSIXLY_CORRECT=1 file -i "${envfile}" \
+-              | cut -d ' ' -f 2 | sed -e 's/;$//')
+-      if ! has ${mime} ${MIME_WHITELIST}; then
++      mime=$(POSIXLY_CORRECT=1 file -bi -e soft "${envfile}") \
++              || die "'file' command failed"
++      mime=${mime%%;*}
++      if ! has "${mime}" ${MIME_WHITELIST}; then
+               echo "Skipping non-text file ${envfile}."
+               return 1
+       fi

Reply via email to