-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #113 from CachyOS/zsh-pgo
feat(zsh): zsh pgo
- Loading branch information
Showing
6 changed files
with
389 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
pkgbase = zsh | ||
pkgver = 5.9 | ||
pkgrel = 4 | ||
url = https://www.zsh.org/ | ||
arch = x86_64 | ||
license = custom | ||
makedepends = pcre | ||
makedepends = libcap | ||
makedepends = gdbm | ||
makedepends = yodl | ||
source = https://www.zsh.org/pub/zsh-5.9.tar.xz | ||
source = https://www.zsh.org/pub/zsh-5.9.tar.xz.asc | ||
source = https://www.zsh.org/pub/zsh-5.9-doc.tar.xz | ||
source = https://www.zsh.org/pub/zsh-5.9-doc.tar.xz.asc | ||
source = 0001-50629-do-not-use-egrep-in-tests.patch | ||
source = fix-autocompletion.patch | ||
source = zprofile | ||
validpgpkeys = F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3 | ||
validpgpkeys = E96646BE08C0AF0AA0F90788A5FEEE3AC7937444 | ||
validpgpkeys = 7CA7ECAAF06216B90F894146ACF8146CAE8CBBC4 | ||
sha512sums = d9138b7f379ad942a5f46819d2dd52d31f3a1129f2a0d1b53d4c5cd43c318b60396da6d37c57c477b8e958fb750209aca0ae93f8c9dd42ac958de006a0ff067e | ||
sha512sums = SKIP | ||
sha512sums = 5cc6abcdcfb4f5ad7bc4a31364ca49dfd87ae03e0082d89cc2ba1f00570f6757266ee60894ad31b562408de91494c22f177b414b03cb78c31d92328686be9860 | ||
sha512sums = SKIP | ||
sha512sums = af6a905e83807efb614a585ac1876e0a9cc8b745911b43915b06aab46757a6df6dfc64a7a60b53cc7e62e528c04aa7460e660a1de6720476030dd746af76c6e3 | ||
sha512sums = fa01836f40602e158fa5e802e8f2548af751c806c87a54e1761196497b2c35a68c6f8a195a5aac22c3c27e59b80b2f50bf590f124afe3ed4a9289b00033aff1f | ||
sha512sums = b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034 | ||
|
||
pkgname = zsh | ||
pkgdesc = A very advanced and programmable command interpreter (shell) for UNIX | ||
install = zsh.install | ||
depends = pcre | ||
depends = libcap | ||
depends = gdbm | ||
backup = etc/zsh/zprofile | ||
|
||
pkgname = zsh-doc | ||
pkgdesc = Info, HTML and PDF format of the ZSH documentation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
commit 4fc5dc0292acd77f17281f451774ba2ca4203026 | ||
Author: Jun-ichi Takimoto <[email protected]> | ||
Date: Thu Sep 15 18:56:20 2022 +0900 | ||
|
||
50629: do not use egrep in tests | ||
|
||
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Maintainer: Pierre Schmitz <[email protected]> | ||
# PGO Version: Laio Seman <laio [at] ieee.org> | ||
|
||
pkgbase=zsh | ||
pkgname=('zsh') | ||
pkgver=5.9 | ||
pkgrel=4 | ||
arch=('x86_64') | ||
url='https://www.zsh.org/' | ||
license=('custom') | ||
makedepends=('pcre' 'libcap' 'gdbm' 'yodl' 'gcc') | ||
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.xz"{,.asc} | ||
'0001-50629-do-not-use-egrep-in-tests.patch' | ||
'fix-autocompletion.patch' | ||
'zprofile') | ||
sha512sums=('d9138b7f379ad942a5f46819d2dd52d31f3a1129f2a0d1b53d4c5cd43c318b60396da6d37c57c477b8e958fb750209aca0ae93f8c9dd42ac958de006a0ff067e' | ||
'SKIP' | ||
'5cc6abcdcfb4f5ad7bc4a31364ca49dfd87ae03e0082d89cc2ba1f00570f6757266ee60894ad31b562408de91494c22f177b414b03cb78c31d92328686be9860' | ||
'SKIP' | ||
'af6a905e83807efb614a585ac1876e0a9cc8b745911b43915b06aab46757a6df6dfc64a7a60b53cc7e62e528c04aa7460e660a1de6720476030dd746af76c6e3' | ||
'fa01836f40602e158fa5e802e8f2548af751c806c87a54e1761196497b2c35a68c6f8a195a5aac22c3c27e59b80b2f50bf590f124afe3ed4a9289b00033aff1f' | ||
'b287e00d8de4dc4cfb1c52bb2aef1d4b191de3512baad4c91dc81e78ddc3e5bb07297f43924b022ac44ff401a348d8a9fa366e19ddc8ea1ea72df311f5ed0034') | ||
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3' | ||
'E96646BE08C0AF0AA0F90788A5FEEE3AC7937444' | ||
'7CA7ECAAF06216B90F894146ACF8146CAE8CBBC4') | ||
|
||
prepare() { | ||
cd "${srcdir}/${pkgbase}-${pkgver}" | ||
|
||
# 50629: do not use egrep in tests | ||
patch -Np1 <../0001-50629-do-not-use-egrep-in-tests.patch | ||
|
||
# https://github.com/zsh-users/zsh/commit/3e3cfabcc74dc79d4d8717c4e5859d8d01be6c54 | ||
# https://www.zsh.org/mla/workers/2022/msg00652.html | ||
patch -Np1 <../fix-autocompletion.patch | ||
|
||
# Set correct keymap path | ||
sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys | ||
|
||
# Fix usb.ids path | ||
sed -i 's#/usr/share/misc/usb.ids#/usr/share/hwdata/usb.ids#g' Completion/Linux/Command/_lsusb | ||
|
||
# Remove unneeded and conflicting completion scripts | ||
for _fpath in AIX BSD Cygwin Darwin Debian Mandriva openSUSE Redhat Solaris; do | ||
rm -rf Completion/$_fpath | ||
sed "s#\s*Completion/$_fpath/\*/\*##g" -i Src/Zle/complete.mdd | ||
done | ||
rm Completion/Linux/Command/_pkgtool | ||
|
||
# force generation of documentation with correct paths | ||
rm Doc/version.yo | ||
} | ||
|
||
build() { | ||
cd "${srcdir}/${pkgbase}-${pkgver}" | ||
|
||
|
||
export CFLAGS="${CFLAGS} -fprofile-generate -fprofile-update=atomic -fprofile-partial-training" | ||
export CXXFLAGS="${CXXFLAGS} -fprofile-generate -fprofile-update=atomic -fprofile-partial-training" | ||
|
||
./configure --prefix=/usr \ | ||
--docdir=/usr/share/doc/zsh \ | ||
--htmldir=/usr/share/doc/zsh/html \ | ||
--enable-etcdir=/etc/zsh \ | ||
--enable-zshenv=/etc/zsh/zshenv \ | ||
--enable-zlogin=/etc/zsh/zlogin \ | ||
--enable-zlogout=/etc/zsh/zlogout \ | ||
--enable-zprofile=/etc/zsh/zprofile \ | ||
--enable-zshrc=/etc/zsh/zshrc \ | ||
--enable-maildir-support \ | ||
--with-term-lib='ncursesw' \ | ||
--enable-multibyte \ | ||
--enable-function-subdirs \ | ||
--enable-fndir=/usr/share/zsh/functions \ | ||
--enable-scriptdir=/usr/share/zsh/scripts \ | ||
--with-tcsetpgrp \ | ||
--enable-pcre \ | ||
--enable-gdbm \ | ||
--enable-cap \ | ||
--enable-zsh-secure-free | ||
|
||
make | ||
cd Test | ||
ZTST_continue=1 make test || true | ||
cd .. | ||
|
||
export CFLAGS="${CFLAGS/-fprofile-generate/}" | ||
export CXXFLAGS="${CXXFLAGS/-fprofile-generate/}" | ||
export CFLAGS="${CFLAGS//-fprofile-update=atomic/}" | ||
export CXXFLAGS="${CXXFLAGS//-fprofile-update=atomic/}" | ||
|
||
export CFLAGS="${CFLAGS} -fprofile-use -Wno-error=coverage-mismatch" | ||
export CXXFLAGS="${CXXFLAGS} -fprofile-use -Wno-error=coverage-mismatch" | ||
|
||
make clean | ||
./configure --prefix=/usr \ | ||
--docdir=/usr/share/doc/zsh \ | ||
--htmldir=/usr/share/doc/zsh/html \ | ||
--enable-etcdir=/etc/zsh \ | ||
--enable-zshenv=/etc/zsh/zshenv \ | ||
--enable-zlogin=/etc/zsh/zlogin \ | ||
--enable-zlogout=/etc/zsh/zlogout \ | ||
--enable-zprofile=/etc/zsh/zprofile \ | ||
--enable-zshrc=/etc/zsh/zshrc \ | ||
--enable-maildir-support \ | ||
--with-term-lib='ncursesw' \ | ||
--enable-multibyte \ | ||
--enable-function-subdirs \ | ||
--enable-fndir=/usr/share/zsh/functions \ | ||
--enable-scriptdir=/usr/share/zsh/scripts \ | ||
--with-tcsetpgrp \ | ||
--enable-pcre \ | ||
--enable-gdbm \ | ||
--enable-cap \ | ||
--enable-zsh-secure-free | ||
|
||
make | ||
} | ||
|
||
check() { | ||
cd "${srcdir}/${pkgbase}-${pkgver}" | ||
HOME="${srcdir}" make check || true | ||
} | ||
|
||
package_zsh() { | ||
pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX' | ||
depends=('pcre' 'libcap' 'gdbm') | ||
backup=('etc/zsh/zprofile') | ||
install=zsh.install | ||
|
||
cd "${srcdir}/${pkgbase}-${pkgver}" | ||
make DESTDIR="${pkgdir}/" install | ||
install -D -m644 "${srcdir}/zprofile" "${pkgdir}/etc/zsh/zprofile" | ||
install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
From 3e3cfabcc74dc79d4d8717c4e5859d8d01be6c54 Mon Sep 17 00:00:00 2001 | ||
From: Bart Schaefer <[email protected]> | ||
Date: Fri, 3 Jun 2022 20:08:15 -0700 | ||
Subject: [PATCH] 50325: revert 38150 and fix in calling function | ||
cfp_matcher_range() instead | ||
|
||
--- | ||
Src/Zle/compmatch.c | 2 +- | ||
Src/Zle/computil.c | 2 +- | ||
1 files changed, 2 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/Src/Zle/compmatch.c b/Src/Zle/compmatch.c | ||
index bb8359f1d1..56e5509a45 100644 | ||
--- a/Src/Zle/compmatch.c | ||
+++ b/Src/Zle/compmatch.c | ||
@@ -1319,7 +1319,7 @@ pattern_match_equivalence(Cpattern lp, convchar_t wind, int wmtp, | ||
convchar_t lchr; | ||
int lmtp; | ||
|
||
- if (!PATMATCHINDEX(lp->u.str, wind, &lchr, &lmtp)) { | ||
+ if (!PATMATCHINDEX(lp->u.str, wind-1, &lchr, &lmtp)) { | ||
/* | ||
* No equivalent. No possible match; give up. | ||
*/ | ||
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c | ||
index 59abb4cc40..77ccdebf7e 100644 | ||
--- a/Src/Zle/computil.c | ||
+++ b/Src/Zle/computil.c | ||
@@ -4383,7 +4383,7 @@ cfp_matcher_range(Cmatcher *ms, char *add) | ||
* word pattern. | ||
*/ | ||
if ((ind = pattern_match_equivalence | ||
- (m->word, ind, mt, addc)) != CHR_INVALID) { | ||
+ (m->word, ind+1, mt, addc)) != CHR_INVALID) { | ||
if (ret) { | ||
if (imeta(ind)) { | ||
*p++ = Meta; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
emulate sh -c 'source /etc/profile' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/sh | ||
|
||
post_install() { | ||
grep -qe '^/bin/zsh$' etc/shells || echo '/bin/zsh' >> etc/shells | ||
grep -qe '^/usr/bin/zsh$' etc/shells || echo '/usr/bin/zsh' >> etc/shells | ||
} | ||
|
||
post_upgrade() { | ||
post_install | ||
} | ||
|
||
pre_remove() { | ||
sed -i -r '/^(\/usr)?\/bin\/zsh$/d' etc/shells | ||
} |