commit:     9290ddedaac06dc082d112f2b906c08433c204f9
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 12 12:32:58 2023 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Sun Mar 12 12:33:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9290dded

app-shells/zsh: 5.9-r4 revbump, fixes tests.

Closes: https://bugs.gentoo.org/869332
Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 .../files/zsh-5.9-do-not-use-egrep-in-tests.patch  | 166 ++++++++++++++
 app-shells/zsh/zsh-5.9-r4.ebuild                   | 239 +++++++++++++++++++++
 2 files changed, 405 insertions(+)

diff --git a/app-shells/zsh/files/zsh-5.9-do-not-use-egrep-in-tests.patch 
b/app-shells/zsh/files/zsh-5.9-do-not-use-egrep-in-tests.patch
new file mode 100644
index 000000000000..7cf605674e96
--- /dev/null
+++ b/app-shells/zsh/files/zsh-5.9-do-not-use-egrep-in-tests.patch
@@ -0,0 +1,166 @@
+commit 4fc5dc0292acd77f17281f451774ba2ca4203026
+Author: Jun-ichi Takimoto <takimot...@kba.biglobe.ne.jp>
+Date:   2022-09-15 18:56:20 +0900
+
+    50629: do not use egrep in tests
+
+    (ChangeLog changes removed)
+
+diff --git a/Test/D07multibyte.ztst b/Test/D07multibyte.ztst
+index e2e9a25ef..6909346cb 100644
+--- a/Test/D07multibyte.ztst
++++ b/Test/D07multibyte.ztst
+@@ -1,19 +1,7 @@
+ %prep
+ 
+-# Find a UTF-8 locale.
+-  setopt multibyte
+-# Don't let LC_* override our choice of locale.
+-  unset -m LC_\*
+-  mb_ok=
+-  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+-       $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+-  for LANG in $langs; do
+-    if [[ é = ? ]]; then
+-      mb_ok=1
+-      break;
+-    fi
+-  done
+-  if [[ -z $mb_ok ]]; then
++  LANG=$(ZTST_find_UTF8)
++  if [[ -z $LANG ]]; then
+     ZTST_unimplemented="no UTF-8 locale or multibyte mode is not implemented"
+   else
+     print -u $ZTST_fd Testing multibyte with locale $LANG
+diff --git a/Test/E01options.ztst b/Test/E01options.ztst
+index 2acbfd357..d38fbed74 100644
+--- a/Test/E01options.ztst
++++ b/Test/E01options.ztst
+@@ -651,7 +651,7 @@
+ >noktarg1
+ >0 1
+ 
+-  showopt() { setopt | egrep 'localoptions|ksharrays'; }
++  showopt() { echo ${(FM)${(@f)"$(setopt)"}:#(localoptions|ksharrays)*} }
+   f1() { setopt localoptions ksharrays; showopt }
+   f2() { setopt ksharrays; showopt }
+   setopt kshoptionprint
+diff --git a/Test/V07pcre.ztst b/Test/V07pcre.ztst
+index c9c844d2a..ca13419e5 100644
+--- a/Test/V07pcre.ztst
++++ b/Test/V07pcre.ztst
+@@ -6,20 +6,8 @@
+     return 0
+   fi
+   setopt rematch_pcre
+-# Find a UTF-8 locale.
+-  setopt multibyte
+-# Don't let LC_* override our choice of locale.
+-  unset -m LC_\*
+-  mb_ok=
+-  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+-       $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+-  for LANG in $langs; do
+-    if [[ é = ? ]]; then
+-      mb_ok=1
+-      break;
+-    fi
+-  done
+-  if [[ -z $mb_ok ]]; then
++  LANG=$(ZTST_find_UTF8)
++  if [[ -z $LANG ]]; then
+     ZTST_unimplemented="no UTF-8 locale or multibyte mode is not implemented"
+   else
+     print -u $ZTST_fd Testing PCRE multibyte with locale $LANG
+diff --git a/Test/X02zlevi.ztst b/Test/X02zlevi.ztst
+index 8146d6752..203c13c32 100644
+--- a/Test/X02zlevi.ztst
++++ b/Test/X02zlevi.ztst
+@@ -1,16 +1,7 @@
+ # Tests of the vi mode of ZLE
+ 
+ %prep
+-  unset -m LC_\*
+-  ZSH_TEST_LANG=
+-  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+-       $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+-  for LANG in $langs; do
+-    if [[ é = ? ]]; then
+-      ZSH_TEST_LANG=$LANG 
+-      break;
+-    fi
+-  done
++  ZSH_TEST_LANG=$(ZTST_find_UTF8)
+   if ( zmodload zsh/zpty 2>/dev/null ); then
+     . $ZTST_srcdir/comptest
+     comptestinit -v -z $ZTST_testdir/../Src/zsh
+diff --git a/Test/X03zlebindkey.ztst b/Test/X03zlebindkey.ztst
+index 43692a85b..5277332a7 100644
+--- a/Test/X03zlebindkey.ztst
++++ b/Test/X03zlebindkey.ztst
+@@ -3,16 +3,7 @@
+ # into bindings.  The latter is particularly tricky with multibyte sequences.
+ 
+ %prep
+-  unset -m LC_\*
+-  ZSH_TEST_LANG=
+-  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+-       $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+-  for LANG in $langs; do
+-    if [[ é = ? ]]; then
+-      ZSH_TEST_LANG=$LANG
+-      break;
+-    fi
+-  done
++  ZSH_TEST_LANG=$(ZTST_find_UTF8)
+   if ( zmodload zsh/zpty 2>/dev/null ); then
+     . $ZTST_srcdir/comptest
+     comptestinit -z $ZTST_testdir/../Src/zsh
+diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst
+index 6af0efc6d..f976f9f91 100644
+--- a/Test/Y01completion.ztst
++++ b/Test/Y01completion.ztst
+@@ -1,16 +1,7 @@
+ # Tests for completion system.
+ 
+ %prep
+-  unset -m LC_\*
+-  ZSH_TEST_LANG=
+-  langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
+-         $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
+-  for LANG in $langs; do
+-    if [[ é = ? ]]; then
+-      ZSH_TEST_LANG=$LANG
+-      break;
+-    fi
+-  done
++  ZSH_TEST_LANG=$(ZTST_find_UTF8)
+   if ( zmodload zsh/zpty 2>/dev/null ); then
+     . $ZTST_srcdir/comptest
+     mkdir comp.tmp
+diff --git a/Test/ztst.zsh b/Test/ztst.zsh
+index aca275c1c..d95b726e7 100755
+--- a/Test/ztst.zsh
++++ b/Test/ztst.zsh
+@@ -37,6 +37,21 @@ emulate -R zsh
+ # LANG must be passed to child zsh.
+ export LANG
+ 
++# find UTF-8 locale
++ZTST_find_UTF8 () {
++  setopt multibyte
++  # Don't let LC_* override our choice of locale.
++  unset -m LC_\*
++  local langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
++               ${(M)$(locale -a 2>/dev/null):#*.(utf8|UTF-8)})
++  for LANG in $langs; do
++    if [[ é = ? ]]; then
++      echo $LANG
++      return
++    fi
++  done
++}
++
+ # Don't propagate variables that are set by default in the shell.
+ typeset +x WORDCHARS
+ 

diff --git a/app-shells/zsh/zsh-5.9-r4.ebuild b/app-shells/zsh/zsh-5.9-r4.ebuild
new file mode 100644
index 000000000000..97907e6b79e4
--- /dev/null
+++ b/app-shells/zsh/zsh-5.9-r4.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic prefix
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+SRC_URI="https://www.zsh.org/pub/${P}.tar.xz
+       https://www.zsh.org/pub/old/${P}.tar.xz
+       mirror://sourceforge/${PN}/${P}.tar.xz
+       doc? (
+               https://www.zsh.org/pub/${P}-doc.tar.xz
+               mirror://sourceforge/${PN}/${P}-doc.tar.xz
+       )"
+
+DESCRIPTION="UNIX Shell similar to the Korn shell"
+HOMEPAGE="https://www.zsh.org/";
+
+LICENSE="ZSH gdbm? ( GPL-2 )"
+SLOT="0"
+IUSE="caps debug doc examples gdbm maildir pcre static"
+
+RDEPEND="
+       >=sys-libs/ncurses-5.1:0=
+       static? ( >=sys-libs/ncurses-5.7-r4:0=[static-libs] )
+       caps? ( sys-libs/libcap )
+       pcre? (
+               >=dev-libs/libpcre-3.9
+               static? ( >=dev-libs/libpcre-3.9[static-libs] )
+       )
+       gdbm? (
+               sys-libs/gdbm:=
+               static? ( sys-libs/gdbm:=[static-libs] )
+       )
+"
+DEPEND="sys-apps/groff
+       ${RDEPEND}"
+PDEPEND="
+       examples? ( app-doc/zsh-lovers )
+"
+if [[ ${PV} == *9999 ]] ; then
+       DEPEND+=" app-text/yodl
+               doc? (
+                       sys-apps/texinfo
+                       app-text/texi2html
+                       virtual/latex-base
+               )"
+fi
+
+PATCHES=(
+       # Add openrc specific options for init.d completion
+       "${FILESDIR}"/${PN}-5.3-init.d-gentoo.diff
+       # Please refer gentoo bug #833981
+       "${FILESDIR}"/${PN}-5.9-musl-V09datetime-test-fix.patch
+       # bug #869539
+       "${FILESDIR}"/${PN}-5.9-clang-15-configure.patch
+       "${FILESDIR}"/${PN}-5.9-do-not-use-egrep-in-tests.patch
+)
+
+src_prepare() {
+       if [[ ${PV} != *9999 ]]; then
+               # fix zshall problem with soelim
+               ln -s Doc man1 || die
+               mv Doc/zshall.1 Doc/zshall.1.soelim || die
+               soelim Doc/zshall.1.soelim > Doc/zshall.1 || die
+       fi
+
+       default
+
+       hprefixify configure.ac
+       if [[ ${PV} == *9999 ]] ; then
+               sed -i "/^VERSION=/s@=.*@=${PV}@" Config/version.mk || die
+       fi
+       eautoreconf
+}
+
+src_configure() {
+       local myconf=(
+               --bindir="${EPREFIX}"/bin
+               --libdir="${EPREFIX}"/usr/$(get_libdir)
+               --enable-etcdir="${EPREFIX}"/etc/zsh
+               --enable-runhelpdir="${EPREFIX}"/usr/share/zsh/${PV%_*}/help
+               --enable-fndir="${EPREFIX}"/usr/share/zsh/${PV%_*}/functions
+               --enable-site-fndir="${EPREFIX}"/usr/share/zsh/site-functions
+               --enable-function-subdirs
+               --with-tcsetpgrp
+               --enable-multibyte
+               --with-term-lib='tinfow ncursesw'
+               $(use_enable maildir maildir-support)
+               $(use_enable pcre)
+               $(use_enable caps cap)
+               $(use_enable gdbm)
+       )
+
+       if use static ; then
+               myconf+=( --disable-dynamic )
+               append-ldflags -static
+       fi
+       if use debug ; then
+               myconf+=(
+                       --enable-zsh-debug
+                       --enable-zsh-mem-debug
+                       --enable-zsh-mem-warning
+                       --enable-zsh-secure-free
+                       --enable-zsh-hash-debug
+               )
+       fi
+
+       if [[ ${CHOST} == *-darwin* ]]; then
+               myconf+=( --enable-libs=-liconv )
+               append-ldflags -Wl,-x
+       fi
+
+       econf "${myconf[@]}"
+
+       if use static ; then
+               # compile all modules statically, see Bug #27392
+               # removed cap and curses because linking failes
+               sed -e "s,link=no,link=static,g" \
+                       -e "/^name=zsh\/cap/s,link=static,link=no," \
+                       -e "/^name=zsh\/curses/s,link=static,link=no," \
+                       -i "${S}"/config.modules || die
+               if ! use gdbm ; then
+                       sed -i '/^name=zsh\/db\/gdbm/s,link=static,link=no,' \
+                               "${S}"/config.modules || die
+               fi
+       fi
+}
+
+src_compile() {
+       default
+
+       if [[ ${PV} == *9999 ]] && use doc ; then
+               emake -C Doc everything
+       fi
+}
+
+src_test() {
+       # Fixes tests A03quoting.ztst B03print.ztst on musl
+       # Please refer:
+       # https://www.zsh.org/mla/workers/2021/msg00805.html
+       # Test E02xtrace fails on musl, so we are removing it.
+       # Closes: https://bugs.gentoo.org/833981
+       if use elibc_musl ; then
+               unset LC_ALL
+               unset LC_COLLATE
+               unset LC_NUMERIC
+               unset LC_MESSAGES
+               unset LANG
+               rm "${S}"/Test/E02xtrace.ztst || die
+       fi
+
+       # Breaks tests if inherited from environment.
+       unset TMPPREFIX
+
+       addpredict /dev/ptmx
+       local i
+       for i in C02cond.ztst V08zpty.ztst X02zlevi.ztst Y01completion.ztst 
Y02compmatch.ztst Y03arguments.ztst ; do
+               rm "${S}"/Test/${i} || die
+       done
+       emake check
+}
+
+src_install() {
+       emake DESTDIR="${D}" install $(usex doc "install.info" "")
+
+       insinto /etc/zsh
+       export PREFIX_QUOTE_CHAR='"' PREFIX_EXTRA_REGEX="/EUID/s,0,${EUID},"
+       newins "$(prefixify_ro "${FILESDIR}"/zprofile-4)" zprofile
+
+       keepdir /usr/share/zsh/site-functions
+       insinto /usr/share/zsh/${PV%_*}/functions/Prompts
+       newins "${FILESDIR}"/prompt_gentoo_setup-1 prompt_gentoo_setup
+
+       local i
+
+       # install miscellaneous scripts (bug #54520)
+       sed -e "s:/usr/local/bin/perl:${EPREFIX}/usr/bin/perl:g" \
+               -e "s:/usr/local/bin/zsh:${EPREFIX}/bin/zsh:g" \
+               -i {Util,Misc}/* || die
+       for i in Util Misc ; do
+               insinto /usr/share/zsh/${PV%_*}/${i}
+               doins ${i}/*
+       done
+
+       # install header files (bug #538684)
+       insinto /usr/include/zsh
+       doins config.h Src/*.epro
+       for i in Src/{zsh.mdh,*.h} ; do
+               sed -e 's@\.\./config\.h@config.h@' \
+                       -e 's@#\(\s*\)include "\([^"]\+\)"@#\1include 
<zsh/\2>@' \
+                       -i "${i}"
+               doins "${i}"
+       done
+
+       dodoc ChangeLog* META-FAQ NEWS README config.modules
+
+       if use doc ; then
+               pushd "${WORKDIR}/${PN}-${PV%_*}" >/dev/null
+               dodoc Doc/zsh.{dvi,pdf}
+               docinto html
+               dodoc Doc/*.html
+               popd >/dev/null
+       fi
+
+       docinto StartupFiles
+       dodoc StartupFiles/z*
+}
+
+pkg_postinst() {
+       if [[ -z ${REPLACING_VERSIONS} ]] ; then
+               echo
+               elog "If you want to enable Portage completions and Gentoo 
prompt,"
+               elog "emerge app-shells/gentoo-zsh-completions and add"
+               elog "  autoload -U compinit promptinit"
+               elog "  compinit"
+               elog "  promptinit; prompt gentoo"
+               elog "to your ~/.zshrc"
+               echo
+               elog "Also, if you want to enable cache for the completions, 
add"
+               elog "  zstyle ':completion::complete:*' use-cache 1"
+               elog "to your ~/.zshrc"
+               echo
+               elog "Note that a system zprofile startup file is installed. 
This will override"
+               elog "PATH and possibly other variables that a user may set in 
~/.zshenv."
+               elog "Custom PATH settings and similar overridden variables can 
be moved to ~/.zprofile"
+               elog "or other user startup files that are sourced after the 
system zprofile."
+               echo
+               elog "If PATH must be set in ~/.zshenv to affect things like 
non-login ssh shells,"
+               elog "one method is to use a separate path-setting file that is 
conditionally sourced"
+               elog "in ~/.zshenv and also sourced from ~/.zprofile. For more 
information, see the"
+               elog "zshenv example in 
${EROOT}/usr/share/doc/${PF}/StartupFiles/."
+               echo
+               elog "See https://wiki.gentoo.org/wiki/Zsh/HOWTO for more 
introduction documentation."
+               echo
+       fi
+}

Reply via email to