From c2108888df9b62b3d53ca5e77bd53f24b2ee1461 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Sat, 23 Jan 2021 14:35:23 +0000 Subject: [PATCH] bin/package: reallow building old ksh versions (re: 6cc2f6a0) When building old code for debugging purposes (e.g. when doing 'git bisect' runs), it's best to use the current build system even with the old code, because the old build system was very broken. E.g.: git checkout (some old commit) git checkout master bin src/cmd/INIT # use new build system bin/package make However, that became impossible in 6cc2f6a0 because the new SHOPT.sh script was unconditionally sourced. The error caused the script to exit because '.' is a special builtin. bin/package, src/cmd/INIT/package.sh: - If src/cmd/ksh93/SHOPT.sh doesn't exist, issue a warning instasd of trying to source it. --- README.md | 2 +- bin/package | 6 +++++- src/cmd/INIT/package.sh | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8f7fcd621..49c404943 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Though there are many bugs left to fix, we are confident at this point that ## Build To build ksh with a custom configuration of features, edit -[`src/cmd/ksh93/SHOPT.sh`](/ksh93/ksh/blob/master/src/cmd/ksh93/SHOPT.sh). +[`src/cmd/ksh93/SHOPT.sh`](https://github.com/ksh93/ksh/blob/master/src/cmd/ksh93/SHOPT.sh). Then `cd` to the top directory and run: ```sh diff --git a/bin/package b/bin/package index 743533886..0d57a3bfa 100755 --- a/bin/package +++ b/bin/package @@ -1436,7 +1436,11 @@ SHOPT() esac } ksh_shoptflags= -. src/cmd/ksh93/SHOPT.sh # this script calls SHOPT() to set options +shopt_sh='src/cmd/ksh93/SHOPT.sh' # this script calls SHOPT() to set options +if test -f "$shopt_sh" +then . "$shopt_sh" +else echo "WARNING: $shopt_sh is missing" >&2 +fi case $ksh_shoptflags in ?*) # add the extra flags as an argument to mamake assign="${assign:+$assign }KSH_SHOPTFLAGS=\"\$ksh_shoptflags\"" ;; diff --git a/src/cmd/INIT/package.sh b/src/cmd/INIT/package.sh index 1286b0f4d..dfbedb435 100644 --- a/src/cmd/INIT/package.sh +++ b/src/cmd/INIT/package.sh @@ -1435,7 +1435,11 @@ SHOPT() esac } ksh_shoptflags= -. src/cmd/ksh93/SHOPT.sh # this script calls SHOPT() to set options +shopt_sh='src/cmd/ksh93/SHOPT.sh' # this script calls SHOPT() to set options +if test -f "$shopt_sh" +then . "$shopt_sh" +else echo "WARNING: $shopt_sh is missing" >&2 +fi case $ksh_shoptflags in ?*) # add the extra flags as an argument to mamake assign="${assign:+$assign }KSH_SHOPTFLAGS=\"\$ksh_shoptflags\"" ;;