Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions variants/mksh.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,21 +59,43 @@ shvr_build_mksh ()
tar --extract \
--file="${build_srcdir}.tar.gz" \
--strip-components=1 \
--directory="${build_srcdir}"
--directory="${build_srcdir}" \
--owner=0 \
--group=0 \
--mode=go-w \
--touch

cd "${build_srcdir}"

# Build with reproducible flags
# Use fixed source date epoch and disable compiler timestamp features
export SOURCE_DATE_EPOCH=1
export TZ=UTC
export CFLAGS="-frandom-seed=1"
export LDFLAGS="-Wl,--build-id=none"
export RANLIB="ranlib -D"
export AR="ar -D"

sh ./Build.sh

unset SOURCE_DATE_EPOCH TZ CFLAGS LDFLAGS RANLIB AR

mkdir -p "${SHVR_DIR_OUT}/mksh_${version}/bin"
cp "mksh" "${SHVR_DIR_OUT}/mksh_$version/bin"

# Strip binary to ensure reproducible output
strip --strip-all "${SHVR_DIR_OUT}/mksh_${version}/bin/mksh"

# Ensure consistent permissions and timestamps
touch -d "@1" "${SHVR_DIR_OUT}/mksh_${version}/bin/mksh"
chmod 755 "${SHVR_DIR_OUT}/mksh_${version}/bin/mksh"

"${SHVR_DIR_OUT}/mksh_${version}/bin/mksh" -c "echo mksh version $version"
}

shvr_deps_mksh ()
{
shvr_versioninfo_mksh "$1"
apt-get -y install \
wget gcc make
wget gcc make binutils
}