From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 314E9158086 for ; Wed, 15 Dec 2021 05:32:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id AC33D2BC010; Wed, 15 Dec 2021 05:32:17 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 83B362BC00B for ; Wed, 15 Dec 2021 05:32:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id AE4F834369A for ; Wed, 15 Dec 2021 05:32:13 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 38415D0 for ; Wed, 15 Dec 2021 05:32:12 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1639546229.934d7042efb591a3d37f6207bf35fd8680ee7599.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-shells/ksh/files/, app-shells/ksh/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-shells/ksh/Manifest app-shells/ksh/files/ksh-1.0.0-beta.1-regre-tests.patch app-shells/ksh/ksh-1.0.0_beta1.ebuild app-shells/ksh/metadata.xml X-VCS-Directories: app-shells/ksh/ app-shells/ksh/files/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: 934d7042efb591a3d37f6207bf35fd8680ee7599 X-VCS-Branch: master Date: Wed, 15 Dec 2021 05:32:12 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0efcf955-554d-4863-b72a-12dc88a3c39c X-Archives-Hash: b0d23469ed2d8ef5a1bd26058e25c547 commit: 934d7042efb591a3d37f6207bf35fd8680ee7599 Author: Stephan Hartmann gentoo org> AuthorDate: Sat Nov 20 20:10:40 2021 +0000 Commit: Georgy Yakovlev gentoo org> CommitDate: Wed Dec 15 05:30:29 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=934d7042 app-shells/ksh: bump to 1.0.0_beta1 PR: https://github.com/gentoo/gentoo/pull/23012 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Stephan Hartmann gentoo.org> Signed-off-by: Georgy Yakovlev gentoo.org> app-shells/ksh/Manifest | 1 + .../ksh/files/ksh-1.0.0-beta.1-regre-tests.patch | 365 +++++++++++++++++++++ app-shells/ksh/ksh-1.0.0_beta1.ebuild | 74 +++++ app-shells/ksh/metadata.xml | 11 +- 4 files changed, 449 insertions(+), 2 deletions(-) diff --git a/app-shells/ksh/Manifest b/app-shells/ksh/Manifest index 13f85b68cedb..cfd1ee45c7c6 100644 --- a/app-shells/ksh/Manifest +++ b/app-shells/ksh/Manifest @@ -1 +1,2 @@ DIST ksh-2020.0.0.tar.gz 2022880 BLAKE2B cb952c4febe88a3ccf8fd48f511a30a73bfc812ebf0b7a5fe799470b29ee13ca61004fd34e367d836940a88214da2aa05b7cb96f173a1b8d57c8e644c8c3a2a6 SHA512 7d6da3af341a62718d691ddc52e10bdf3b7290d74f1cd01610093c587af47b6d6d04b74b210eb31f93a3559855a5bc5155f9b188d2f8bb4444042c26bfaf1792 +DIST ksh-v1.0.0-beta.1.tar.gz 2376823 BLAKE2B 0c985bd17bd0a6301205cffa703536c99322b99953e86b8e8266616f70c7d8cab01801f55c5ba2964628cef8c05878f4e721be39987c418b35859952d3a07719 SHA512 968d7c1aef38f0a29f3a32d0aba7bd5138b70d96486443d5b13c4830907aa7344fb7599ca153a55116758413640ba84ec9e6be19a6f0941814f2515a3961b312 diff --git a/app-shells/ksh/files/ksh-1.0.0-beta.1-regre-tests.patch b/app-shells/ksh/files/ksh-1.0.0-beta.1-regre-tests.patch new file mode 100644 index 000000000000..d9f8b4697d6c --- /dev/null +++ b/app-shells/ksh/files/ksh-1.0.0-beta.1-regre-tests.patch @@ -0,0 +1,365 @@ +From 541dd6f286a71c0d1d874807e61551026d03f409 Mon Sep 17 00:00:00 2001 +From: Vincent Mihalkovic +Date: Tue, 3 Aug 2021 10:20:04 +0200 +Subject: [PATCH] src/cmd/ksh93/tests: (temporary) disable failing tests + +--- + src/cmd/ksh93/tests/functions.sh | 2 ++ + src/cmd/ksh93/tests/io.sh | 2 ++ + src/cmd/ksh93/tests/leaks.sh | 49 ++++++++++++++++++++++++++++++-- + src/cmd/ksh93/tests/tilde.sh | 4 +-- + src/cmd/ksh93/tests/variables.sh | 2 ++ + 5 files changed, 54 insertions(+), 5 deletions(-) + +diff --git a/src/cmd/ksh93/tests/functions.sh b/src/cmd/ksh93/tests/functions.sh +index 731c1a6..43bb32a 100755 +--- a/src/cmd/ksh93/tests/functions.sh ++++ b/src/cmd/ksh93/tests/functions.sh +@@ -146,10 +146,12 @@ fi + if [[ $PWD != "$dir" ]] + then err_exit 'cd inside nested subshell changes $PWD' + fi ++: <<'disabled' # TODO: failing only on i686 arch + fun() "$bin_echo" hello + if [[ $(fun) != hello ]] + then err_exit one line functions not working + fi ++disabled + cat > $tmp/script <<-\! + print -r -- "$1" + ! +diff --git a/src/cmd/ksh93/tests/io.sh b/src/cmd/ksh93/tests/io.sh +index 2752145..f94c801 100755 +--- a/src/cmd/ksh93/tests/io.sh ++++ b/src/cmd/ksh93/tests/io.sh +@@ -241,7 +241,9 @@ then [[ $(3<#) -eq 0 ]] || err_exit "not at position 0" + read -u3 && err_exit "not found pattern not positioning at eof" + cat $tmp/seek | read -r <# *WWW* + [[ $REPLY == *WWWWW* ]] || err_exit '<# not working for pipes' ++: <<'disabled' # TODO: failing only on armv7, i686 arch. Reason: https://github.com/att/ast/commit/a5c692e1bd0d800e3f19be249d3170e69cbe001d + { < $tmp/seek <# ((2358336120)) ;} 2> /dev/null || err_exit 'long seek not working' ++disabled + else err_exit "$tmp/seek: cannot open for reading" + fi + redirect 3<&- || 'cannot close 3' +diff --git a/src/cmd/ksh93/tests/leaks.sh b/src/cmd/ksh93/tests/leaks.sh +index 0f50da2..6c8acfd 100755 +--- a/src/cmd/ksh93/tests/leaks.sh ++++ b/src/cmd/ksh93/tests/leaks.sh +@@ -109,6 +109,7 @@ do got=$($SHELL -c 'x=$(printf "%.*c" '$exp' x); print ${#x}' 2>&1) + [[ $got == $exp ]] || err_exit "large command substitution failed -- expected $exp, got $got" + done + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + data="(v=;sid=;di=;hi=;ti='1328244300';lv='o';id='172.3.161.178';var=(k='conn_num._total';u=;fr=;l='Number of Connections';n='22';t='number';))" + read -C stat <<< "$data" + for ((i=0; i < 8; i++)) # steady state first +@@ -122,8 +123,10 @@ done | while read -u$n -C stat + done {n}<&0- + after=$(getmem) + err_exit_if_leak "memory leak with read -C when deleting compound variable" ++disabled + + # extra 'read's to get to steady state ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + for ((i=0; i < 10; i++)) + do read -C stat <<< "$data" + done +@@ -133,10 +136,12 @@ do read -C stat <<< "$data" + done + after=$(getmem) + err_exit_if_leak "memory leak with read -C when using <<<" ++disabled + + # ====== + # Unsetting an associative array shouldn't cause a memory leak + # See https://www.mail-archive.com/ast-users@lists.research.att.com/msg01016.html ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + typeset -A stuff + before=$(getmem) + for (( i=0; i < N; i++ )) +@@ -152,6 +157,7 @@ done + unset stuff + after=$(getmem) + err_exit_if_leak 'unset of associative array causes memory leak' ++disabled + + # ====== + # Memory leak when resetting PATH and clearing hash table +@@ -167,17 +173,20 @@ done >/dev/null + after=$(getmem) + err_exit_if_leak 'memory leak on PATH reset before PATH search' + # ...test for another leak that only shows up when building with nmake: ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do PATH=/dev/null true # set/restore PATH & clear hash table + done >/dev/null + after=$(getmem) + err_exit_if_leak 'memory leak on PATH reset' ++disabled + + # ====== + # Defining a function in a virtual subshell + # https://github.com/ksh93/ksh/issues/114 + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + unset -f foo + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -186,7 +195,9 @@ done + after=$(getmem) + err_exit_if_leak 'ksh function defined in virtual subshell' + typeset -f foo >/dev/null && err_exit 'ksh function leaks out of subshell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + unset -f foo + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -195,9 +206,10 @@ done + after=$(getmem) + err_exit_if_leak 'POSIX function defined in virtual subshell' + typeset -f foo >/dev/null && err_exit 'POSIX function leaks out of subshell' ++disabled + + # Unsetting a function in a virtual subshell +- ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + function foo { echo bar; } + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -206,8 +218,11 @@ done + after=$(getmem) + err_exit_if_leak 'ksh function unset in virtual subshell' + typeset -f foo >/dev/null || err_exit 'ksh function unset in subshell was unset in main shell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + foo() { echo bar; } ++ + before=$(getmem) + for ((i=0; i < N; i++)) + do (unset -f foo) +@@ -215,24 +230,29 @@ done + after=$(getmem) + err_exit_if_leak 'POSIX function unset in virtual subshell' + typeset -f foo >/dev/null || err_exit 'POSIX function unset in subshell was unset in main shell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do (function foo { echo baz; }; unset -f foo) + done + after=$(getmem) + err_exit_if_leak 'ksh function defined and unset in virtual subshell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do (foo() { echo baz; }; unset -f foo) + done + after=$(getmem) + err_exit_if_leak 'POSIX function defined and unset in virtual subshell' ++disabled + + # ====== + # Sourcing a dot script in a virtual subshell +- ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + echo 'echo "$@"' > $tmp/dot.sh + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -240,6 +260,7 @@ do (. "$tmp/dot.sh" dot one two three >/dev/null) + done + after=$(getmem) + err_exit_if_leak 'script dotted in virtual subshell' ++disabled + + echo 'echo "$@"' > $tmp/dot.sh + before=$(getmem) +@@ -253,6 +274,8 @@ err_exit_if_leak 'script sourced in virtual subshell' + # Multiple leaks when using arrays in functions (Red Hat #921455) + # Fix based on: https://src.fedoraproject.org/rpms/ksh/blob/642af4d6/f/ksh-20120801-memlik.patch + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs ++ + # TODO: both of these tests still leak (although much less after the patch) when run in a non-C locale. + saveLANG=$LANG; LANG=C # comment out to test remaining leak (1/2) + +@@ -268,7 +291,9 @@ do _hash + done + after=$(getmem) + err_exit_if_leak 'associative array in function' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + function _array + { + typeset w=(1 31534 42) +@@ -283,12 +308,13 @@ after=$(getmem) + err_exit_if_leak 'indexed array in function' + + LANG=$saveLANG # comment out to test remaining leak (2/2) ++disabled + + # ====== + # Memory leak in typeset (Red Hat #1036470) + # Fix based on: https://src.fedoraproject.org/rpms/ksh/blob/642af4d6/f/ksh-20120801-memlik3.patch + # The fix was backported from ksh 93v- beta. +- ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + function myFunction + { + typeset toPrint="something" +@@ -301,10 +327,12 @@ do state=$(myFunction) + done + after=$(getmem) + err_exit_if_leak 'typeset in function called by command substitution' ++disabled + + # ====== + # Check that unsetting an alias frees both the node and its value + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do alias "test$i=command$i" +@@ -312,10 +340,12 @@ do alias "test$i=command$i" + done + after=$(getmem) + err_exit_if_leak 'unalias' ++disabled + + # ====== + # Red Hat bug rhbz#982142: command substitution leaks + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + # case1: Nested command substitutions + # (reportedly already fixed in 93u+, but let's keep the test) + before=$(getmem) +@@ -324,8 +354,10 @@ do a=`true 1 + \`true 1 + 1\`` # was: a=`expr 1 + \`expr 1 + 1\`` + done + after=$(getmem) + err_exit_if_leak 'nested command substitutions' ++disabled + + # case2: Command alias ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + alias ls='true -ltr' # was: alias ls='ls -ltr' + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -334,8 +366,10 @@ done + after=$(getmem) + unalias ls + err_exit_if_leak 'alias in command substitution' ++disabled + + # case3: Function call via autoload ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + cat >$tmp/func1 <<\EOF + function func1 + { +@@ -353,12 +387,14 @@ after=$(getmem) + unset -f func1 + unset -v FPATH + err_exit_if_leak 'function call via autoload in command substitution' ++disabled + + # ====== + + # add some random utilities to the hash table to detect memory leak on hash table reset when changing PATH + random_utils=(chmod cp mv awk sed diff comm cut sort uniq date env find mkdir rmdir pr sleep) + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + save_PATH=$PATH + hash "${random_utils[@]}" + before=$(getmem) +@@ -368,7 +404,9 @@ do hash -r + done + after=$(getmem) + err_exit_if_leak 'clear hash table (hash -r) in main shell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do PATH=/dev/null +@@ -377,13 +415,16 @@ do PATH=/dev/null + done + after=$(getmem) + err_exit_if_leak 'set PATH value in main shell' ++disabled + ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + before=$(getmem) + for ((i=0; i < N; i++)) + do PATH=/dev/null command true + done + after=$(getmem) + err_exit_if_leak 'run command with preceding PATH assignment in main shell' ++disabled + + : <<'disabled' # TODO: known leak (approx 73552 bytes after 512 iterations) + before=$(getmem) +@@ -454,6 +495,7 @@ disabled + + # ====== + # Test for a memory leak after 'cd' (in relation to $PWD and $OLDPWD) ++: <<'disabled' # TODO: upstream, leak sometimes on some archs + original_pwd=$PWD + before=$(getmem) + for ((i=0; i < N; i++)) +@@ -473,6 +515,7 @@ done + after=$(getmem) + err_exit_if_leak 'PWD and/or OLDPWD changed by cd' + cd $original_pwd ++disabled + + # ====== + # https://github.com/ksh93/ksh/issues/253#issuecomment-815308466 +diff --git a/src/cmd/ksh93/tests/tilde.sh b/src/cmd/ksh93/tests/tilde.sh +index 1be00b9..1de0b16 100755 +--- a/src/cmd/ksh93/tests/tilde.sh ++++ b/src/cmd/ksh93/tests/tilde.sh +@@ -151,13 +151,13 @@ do ( + [[ $got == "$exp" ]] || err_exit "$disc discipline: counter:" \ + "expected $(printf %q "$exp"), got $(printf %q "$got")" + ((i==5)) || err_exit "$disc discipline: counter: $i != 5" +- ++: << 'disabled' # TODO sometimes fails on armv7 arch + set -- ~spc ~spc ~spc + got=$#,$1,$2,$3 + exp=$'3,one\ttwo three\n\tfour,one\ttwo three\n\tfour,one\ttwo three\n\tfour' + [[ $got == "$exp" ]] || err_exit "$disc discipline: quoting of whitespace:" \ + "expected $(printf %q "$exp"), got $(printf %q "$got")" +- ++disabled + print "$Errors" >$tmp/Errors + ) & + wait "$!" 2>crashmsg +diff --git a/src/cmd/ksh93/tests/variables.sh b/src/cmd/ksh93/tests/variables.sh +index 253f84a..8b306a1 100755 +--- a/src/cmd/ksh93/tests/variables.sh ++++ b/src/cmd/ksh93/tests/variables.sh +@@ -58,6 +58,7 @@ rand2=$($SHELL -c 'RANDOM=1; (echo $RANDOM)') + (( rand1 == rand2 )) && err_exit "Test 3: \$RANDOM seed in subshell doesn't change" \ + "(both results are $rand1)" + # $RANDOM should be reseeded for the ( simple_command & ) optimization ++: <<'disabled' # Reason: On slower systems it could fail with an arithmetic syntax error because the output was verified before it had been written. From: https://github.com/ksh93/ksh/commit/33269cae615c913592e776276b480bf1d722ff07 + ( echo $RANDOM & ) >r1 + ( echo $RANDOM & ) >r2 + integer giveup=0 +@@ -74,6 +75,7 @@ fi + kill $! 2>/dev/null + trap - USR1 + unset giveup ++disabled + # Virtual subshells should not influence the parent shell's RANDOM sequence + RANDOM=456 + exp="$RANDOM $RANDOM $RANDOM $RANDOM $RANDOM" +-- +2.31.1 + diff --git a/app-shells/ksh/ksh-1.0.0_beta1.ebuild b/app-shells/ksh/ksh-1.0.0_beta1.ebuild new file mode 100644 index 000000000000..2ef94ea8022c --- /dev/null +++ b/app-shells/ksh/ksh-1.0.0_beta1.ebuild @@ -0,0 +1,74 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="The Original ATT Korn Shell" +HOMEPAGE="http://www.kornshell.com/" + +MY_PV=$(ver_rs 3 - 4 .) +SRC_URI="https://github.com/ksh93/${PN}/archive/v${MY_PV}/ksh-v${MY_PV}.tar.gz" + +LICENSE="EPL-1.0" +SLOT="0" + +KEYWORDS="~amd64" + +PATCHES=( + "${FILESDIR}/ksh-1.0.0-beta.1-regre-tests.patch" +) + +S="${WORKDIR}/${PN}-${MY_PV}" + +src_prepare() { + default + + # disable register for debugging + sed -i 1i"#define register" src/lib/libast/include/ast.h || die +} + +src_compile() { + local extraflags=( + "-Wno-unknown-pragmas" + "-Wno-missing-braces" + "-Wno-unused-result" + "-Wno-return-type" + "-Wno-int-to-pointer-cast" + "-Wno-parentheses" + "-Wno-unused" + "-Wno-unused-but-set-variable" + "-Wno-cpp" + "-Wno-maybe-uninitialized" + "-Wno-lto-type-mismatch" + "-P" + ) + append-cflags $(test-flags-CC ${extraflags[@]}) + export CCFLAGS="${CFLAGS} -fno-strict-aliasing" + + tc-export AR CC LD NM + + sh bin/package only make ast-ksh SHELL="${BROOT}"/bin/sh || die +} + +src_test() { + # test tries to catch IO error + addwrite /proc/self/mem + + # arith.sh uses A for tests + unset A + + sh bin/shtests --compile || die +} + +src_install() { + local myhost="$(sh bin/package host)" + cd "arch/${myhost}" || die + + dodir /bin + mv bin/ksh "${ED}"/bin/ || die + dosym ksh /bin/rksh + + newman man/man1/sh.1 ksh.1 +} diff --git a/app-shells/ksh/metadata.xml b/app-shells/ksh/metadata.xml index 46ee6cb48b1d..2526e8d0cb13 100644 --- a/app-shells/ksh/metadata.xml +++ b/app-shells/ksh/metadata.xml @@ -1,7 +1,14 @@ - + + sultan@gentoo.org + Stephan Hartmann + + + gyakovlev@gentoo.org + Georgy Yakovlev + The KornShell language was designed and developed by David G. Korn at AT&T Bell Laboratories. It is an interactive command language that @@ -22,6 +29,6 @@ companies and universities. - att/ast + ksh93/ksh