-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathbuildenv
More file actions
111 lines (92 loc) · 3.71 KB
/
buildenv
File metadata and controls
111 lines (92 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# bump: bash-version /BASH_VERSION="(.*)"/ https://ftp.gnu.org/gnu/bash/|re:/href="bash-([\d.]+).tar.gz"/$1/|semver:*
BASH_VERSION="5.3"
export ZOPEN_BUILD_LINE="STABLE" # default build level is stable
export ZOPEN_STABLE_URL="https://ftp.gnu.org/gnu/bash/bash-${BASH_VERSION}.tar.gz"
export ZOPEN_CATEGORIES="shell"
export ZOPEN_STABLE_DEPS="curl gzip tar make zoslib coreutils diffutils sed ncurses grep gettext zusage util-linux readline patch"
export ZOPEN_DEV_URL="https://github.com/bminor/bash.git"
export ZOPEN_DEV_DEPS="perl m4 autoconf curl gzip tar make zoslib coreutils diffutils sed ncurses bison grep gettext zusage"
export ZOPEN_DEV_BRANCH="devel"
export ZOPEN_EXTRA_CPPFLAGS="-DNO_MAIN_ENV_ARG=1 -DSSH_SOURCE_BASHRC=1 -DSYS_BASHRC='\\\"/etc/bashrc\\\"' -DNON_INTERACTIVE_LOGIN_SHELLS=1"
export ZOPEN_COMP=CLANG
export ZOPEN_EXTRA_CFLAGS="-mzos-target=zosv2r5 -march=z13"
export ZOPEN_SYSTEM_PREREQS="zos25"
export ZOPEN_CHECK="zopen_check"
export ZOPEN_CHECK_OPTS=""
export ZOPEN_CHECK_MINIMAL="yes"
export ZOPEN_CHECK_TIMEOUT="${ZOPEN_CHECK_NO_TIMEOUT}"
export ZOPEN_EXTRA_CONFIGURE_OPTS="--with-installed-readline=\${READLINE_HOME}"
zopen_post_extract()
{
# Download and apply official bash patches
src_dir="$1"
original_dir=$(pwd)
cp rename_builtins_header.sh $src_dir
cd "${src_dir}" || return 1
major_minor=$(echo "${BASH_VERSION}" | cut -d. -f1,2 | tr -d '.')
patches_url="https://ftp.gnu.org/gnu/bash/bash-${BASH_VERSION}-patches"
echo "Checking for bash patches at ${patches_url}..."
# Try to fetch the patches directory listing
patches_list=$(curl -s "${patches_url}/" | grep -o "bash${major_minor}-[0-9]\{3\}" | sort -u)
if [ -n "${patches_list}" ]; then
echo "Found patches, downloading and applying..."
for patch_name in ${patches_list}; do
echo "Applying ${patch_name}..."
curl -s "${patches_url}/${patch_name}" | patch -p0 -s
if [ $? -ne 0 ]; then
echo "Warning: Failed to apply ${patch_name}"
fi
done
echo "Finished applying patches"
else
echo "No patches found for bash ${BASH_VERSION}"
fi
/bin/sh rename_builtins_header.sh
rm rename_builtins_header.sh
cd "${original_dir}"
}
zopen_post_buildenv()
{
if [ "${ZOPEN_BUILD_LINE}x" = "DEVx" ]; then
export ZOPEN_EXTRA_CONFIGURE_OPTS="--without-libintl-prefix --disable-nls"
export ZOPEN_MAKE_OPTS="-j\$ZOPEN_NUM_JOBS LOCAL_LIBS=\"\$LIBS\" LIBS_FOR_BUILD=\"\$LIBS\""
export ZOPEN_CHECK_OPTS="-j\$ZOPEN_NUM_JOBS check LOCAL_LIBS=\"\$LIBS\" LIBS_FOR_BUILD=\"\$LIBS\""
export ZOPEN_INSTALL_OPTS="-j\$ZOPEN_NUM_JOBS install LOCAL_LIBS=\"\$LIBS\" LIBS_FOR_BUILD=\"\$LIBS\""
fi
}
zopen_check()
{
ZOSLIB_ERROR_COMPAT=1 _EDC_ADD_ERRNO2=0 make check
}
zopen_check_results()
{
dir="$1"
pfx="$2"
chk="$1/$2_check.log"
if [ "${ZOPEN_BUILD_LINE}x" = "DEVx" ]; then
failures=$(grep "Total # of failures:" $chk | cut -d' ' -f5)
successes=$(grep "Total # of successes:" $chk | cut -d' ' -f5)
total=$((successes+failures))
else
failuretests=$(/bin/find tests/ -name "*.output" ! -size 0)
failures=$(echo "${failuretests}" | wc -l)
total=$(/bin/find tests/ -name "*.output" | wc -l)
fi
# Echo the following information to gauge build health
echo "${failuretests}" >"$1/$2_check_failures.log"
echo "actualFailures:$failures"
echo "totalTests:$total"
if [ "${ZOPEN_BUILD_LINE}x" = "DEVx" ]; then
echo "expectedFailures:18" # Slightly higher in DEV
else
echo "expectedFailures:17" # need to adjust the testing to accomodate new -K option
fi
}
zopen_append_to_zoslib_env() {
cat <<EOF
ASCII_TERMINFO|set|PROJECT_ROOT/../../ncurses/ncurses/share/terminfo/
EOF
}
zopen_get_version() {
./bash --version | head -1 | awk -F" " '{print $4}' | awk -F"(" '{print $1}'
}