From e91a3696b56c7176a7fc18f38a50b65743ba7dc7 Mon Sep 17 00:00:00 2001 From: Martin Väth Date: Fri, 19 Apr 2024 22:06:39 +0200 Subject: sys-apps/less: Revision bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Väth --- metadata/pkg_desc_index | 2 +- sys-apps/less/files/less-643-LESSOPEN-escape.patch | 61 +++++++++++ sys-apps/less/less-643-r1.ebuild | 118 -------------------- sys-apps/less/less-643-r3.ebuild | 119 +++++++++++++++++++++ 4 files changed, 181 insertions(+), 119 deletions(-) create mode 100644 sys-apps/less/files/less-643-LESSOPEN-escape.patch delete mode 100644 sys-apps/less/less-643-r1.ebuild create mode 100644 sys-apps/less/less-643-r3.ebuild diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index b8826e7b..5dc1e912 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -98,7 +98,7 @@ net-print/foo2zjs 20200221: Support for printing to ZjStream-based printers sci-geosciences/googleearth 7.1.8.3036-r4 7.3.0.3832-r4 7.3.4-r2 7.3.6: A 3D interface to the planet sci-mathematics/reduce 20141130-r3 20190413: A general-purpose computer algebra system sys-apps/cpi 3.2: A wrapper for cp -i -a, making use of diff -sys-apps/less 643-r1: Excellent text file viewer, optionally with additional selection feature +sys-apps/less 643-r3: Excellent text file viewer, optionally with additional selection feature sys-apps/man 1.6g-r4: Standard commands to read man pages sys-apps/openrc-wrapper 2.4: Use openrc init scripts with systemd or other init systems sys-apps/paxopen 1.2: A wrapper script to set PAX kernel variables to an insecure/safe state diff --git a/sys-apps/less/files/less-643-LESSOPEN-escape.patch b/sys-apps/less/files/less-643-LESSOPEN-escape.patch new file mode 100644 index 00000000..f3fe50fc --- /dev/null +++ b/sys-apps/less/files/less-643-LESSOPEN-escape.patch @@ -0,0 +1,61 @@ +https://openwall.com/lists/oss-security/2024/04/12/5 +https://bugs.gentoo.org/929210 +https://github.com/gwsw/less/commit/007521ac3c95bc76e3d59c6dbfe75d06c8075c33 + +Upstream provided this version via email as a backport to 643. +--- a/filename.c ++++ b/filename.c +@@ -134,6 +134,15 @@ + } + + /* ++ * Must use quotes rather than escape char for this metachar? ++ */ ++static int must_quote(char c) ++{ ++ /* {{ Maybe the set of must_quote chars should be configurable? }} */ ++ return (c == '\n'); ++} ++ ++/* + * Insert a backslash before each metacharacter in a string. + */ + public char * shell_quote(char *s) +@@ -164,6 +173,9 @@ + * doesn't support escape chars. Use quotes. + */ + use_quotes = 1; ++ } else if (must_quote(*p)) ++ { ++ len += 3; /* open quote + char + close quote */ + } else + { + /* +@@ -193,15 +205,22 @@ + { + while (*s != '\0') + { +- if (metachar(*s)) ++ if (!metachar(*s)) + { +- /* +- * Add the escape char. +- */ ++ *p++ = *s++; ++ } else if (must_quote(*s)) ++ { ++ /* Surround the char with quotes. */ ++ *p++ = openquote; ++ *p++ = *s++; ++ *p++ = closequote; ++ } else ++ { ++ /* Insert an escape char before the char. */ + strcpy(p, esc); + p += esclen; ++ *p++ = *s++; + } +- *p++ = *s++; + } + *p = '\0'; + } diff --git a/sys-apps/less/less-643-r1.ebuild b/sys-apps/less/less-643-r1.ebuild deleted file mode 100644 index 0156255e..00000000 --- a/sys-apps/less/less-643-r1.ebuild +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors and Martin V\"ath -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -WANT_AUTOMAKE=none -WANT_LIBTOOL=none -inherit autotools flag-o-matic optfeature toolchain-funcs - -DESCRIPTION="Excellent text file viewer, optionally with additional selection feature" -PATCHN="less-select" -PATCHV="2.15" -PATCHVER="633" -PATCHRUMP="${PATCHN}-${PATCHV}" -PATCHBALL="${PATCHRUMP}.tar.gz" -SELECTDIR="${WORKDIR}/${PATCHRUMP}" -HOMEPAGE="http://www.greenwoodsoftware.com/less/ https://github.com/vaeth/less-select" -SRC_URI="mirror+http://www.greenwoodsoftware.com/less/${P}.tar.gz - less-select? ( https://github.com/vaeth/${PATCHN}/archive/v${PATCHV}.tar.gz -> ${PATCHBALL} )" -RESTRICT="mirror" - -LICENSE="|| ( GPL-3 BSD-2 )" -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="+lesspipe +less-select pcre original-gentoo source test" -RESTRICT="test !test? ( test )" - -DEPEND=" - >=app-misc/editor-wrapper-3 - >=sys-libs/ncurses-5.2:= - pcre? ( dev-libs/libpcre2 ) -" -RDEPEND="${DEPEND} - less-select? ( dev-lang/perl )" -# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Temp-0.19 ) -PDEPEND="lesspipe? ( app-text/lesspipe )" -BDEPEND="test? ( virtual/pkgconfig )" - -PATCHES=( - "${FILESDIR}"/${PN}-643-lesstest-pkg-config.patch -) - -pkg_setup() { - if use source && ! use less-select - then ewarn 'ignoring USE=source without USE=less-select' - fi -} - -src_prepare() { - if use less-select - then eapply "${SELECTDIR}/patches/less-${PATCHVER}-select.patch" - "${SELECTDIR}"/after-patch || die "${SELECTDIR}/after-patch failed" - sed -i -e 's|\([^a-zA-Z]\)/etc/less-select-key.bin|\1'"${EPREFIX}"'/etc/less/select-key.bin|g' \ - "${SELECTDIR}/bin/less-select" || die - fi - - default - # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. - # https://bugs.gentoo.org/870412 - eautoreconf -} - -src_configure() { - append-lfs-flags # bug #896316 - - local myeconfargs=( - --with-regex=$(usex pcre pcre2 posix) - --with-editor="${EPREFIX}"/usr/libexec/editor - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - default - if use less-select - then ./lesskey -o normal-key.bin "${SELECTDIR}/keys/less-normal-key.src" || die - ./lesskey -o select-key.bin "${SELECTDIR}/keys/less-select-key.src" || die - fi -} - -src_test() { - emake check VERBOSE=1 CC="$(tc-getCC)" PKG_CONFIG="$(tc-getPKG_CONFIG)" -} - -src_install() { - local a - default - - keepdir /usr/lib/lessfilter.d - keepdir /etc/lessfilter.d - - newbin "${FILESDIR}"/lesspipe-r3.sh lesspipe - - if use original-gentoo - then a="-R -M --shift 5" - else a="-sFRiMX --shift 5" - fi - printf '%s\n' \ - 'LESSOPEN="|lesspipe'$(usex lesspipe .sh)' %s"' \ - "LESS=\"${a}\"" \ - >70less || die - doenvd 70less - - if use less-select - then newdoc "${SELECTDIR}"/README.md README.less-select - dobin "${SELECTDIR}/bin/"* - insinto /etc/less - doins select-key.bin normal-key.bin - if use source - then newins "${SELECTDIR}/keys/less-select-key.src" select-key.src - newins "${SELECTDIR}/keys/less-normal-key.src" normal-key.src - fi - fi -} - -pkg_preinst() { - use lesspipe || optfeature "Colorized output support" dev-python/pygments -} diff --git a/sys-apps/less/less-643-r3.ebuild b/sys-apps/less/less-643-r3.ebuild new file mode 100644 index 00000000..62013910 --- /dev/null +++ b/sys-apps/less/less-643-r3.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2024 Gentoo Authors and Martin V\"ath +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +WANT_AUTOMAKE=none +WANT_LIBTOOL=none +inherit autotools flag-o-matic optfeature toolchain-funcs + +DESCRIPTION="Excellent text file viewer, optionally with additional selection feature" +PATCHN="less-select" +PATCHV="2.15" +PATCHVER="633" +PATCHRUMP="${PATCHN}-${PATCHV}" +PATCHBALL="${PATCHRUMP}.tar.gz" +SELECTDIR="${WORKDIR}/${PATCHRUMP}" +HOMEPAGE="http://www.greenwoodsoftware.com/less/ https://github.com/vaeth/less-select" +SRC_URI="mirror+http://www.greenwoodsoftware.com/less/${P}.tar.gz + less-select? ( https://github.com/vaeth/${PATCHN}/archive/v${PATCHV}.tar.gz -> ${PATCHBALL} )" +RESTRICT="mirror" + +LICENSE="|| ( GPL-3 BSD-2 )" +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="+lesspipe +less-select pcre original-gentoo source test" +RESTRICT="test !test? ( test )" + +DEPEND=" + >=app-misc/editor-wrapper-3 + >=sys-libs/ncurses-5.2:= + pcre? ( dev-libs/libpcre2 ) +" +RDEPEND="${DEPEND} + less-select? ( dev-lang/perl )" +# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Temp-0.19 ) +PDEPEND="lesspipe? ( app-text/lesspipe )" +BDEPEND="test? ( virtual/pkgconfig )" + +PATCHES=( + "${FILESDIR}"/${PN}-643-lesstest-pkg-config.patch + "${FILESDIR}"/${PN}-643-LESSOPEN-escape.patch +) + +pkg_setup() { + if use source && ! use less-select + then ewarn 'ignoring USE=source without USE=less-select' + fi +} + +src_prepare() { + if use less-select + then eapply "${SELECTDIR}/patches/less-${PATCHVER}-select.patch" + "${SELECTDIR}"/after-patch || die "${SELECTDIR}/after-patch failed" + sed -i -e 's|\([^a-zA-Z]\)/etc/less-select-key.bin|\1'"${EPREFIX}"'/etc/less/select-key.bin|g' \ + "${SELECTDIR}/bin/less-select" || die + fi + + default + # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. + # https://bugs.gentoo.org/870412 + eautoreconf +} + +src_configure() { + append-lfs-flags # bug #896316 + + local myeconfargs=( + --with-regex=$(usex pcre pcre2 posix) + --with-editor="${EPREFIX}"/usr/libexec/editor + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + default + if use less-select + then ./lesskey -o normal-key.bin "${SELECTDIR}/keys/less-normal-key.src" || die + ./lesskey -o select-key.bin "${SELECTDIR}/keys/less-select-key.src" || die + fi +} + +src_test() { + emake check VERBOSE=1 CC="$(tc-getCC)" PKG_CONFIG="$(tc-getPKG_CONFIG)" +} + +src_install() { + local a + default + + keepdir /usr/lib/lessfilter.d + keepdir /etc/lessfilter.d + + newbin "${FILESDIR}"/lesspipe-r3.sh lesspipe + + if use original-gentoo + then a="-R -M --shift 5" + else a="-sFRiMX --shift 5" + fi + printf '%s\n' \ + 'LESSOPEN="|lesspipe'$(usex lesspipe .sh)' %s"' \ + "LESS=\"${a}\"" \ + >70less || die + doenvd 70less + + if use less-select + then newdoc "${SELECTDIR}"/README.md README.less-select + dobin "${SELECTDIR}/bin/"* + insinto /etc/less + doins select-key.bin normal-key.bin + if use source + then newins "${SELECTDIR}/keys/less-select-key.src" select-key.src + newins "${SELECTDIR}/keys/less-normal-key.src" normal-key.src + fi + fi +} + +pkg_preinst() { + use lesspipe || optfeature "Colorized output support" dev-python/pygments +} -- cgit v1.2.3-65-gdbad