51 lines
1.7 KiB
Bash
Executable file
51 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
set -x
|
|
set -o pipefail
|
|
if [ "$#" -ne 1 ];then
|
|
echo "Usage: ${0} [x86|x86_64|armhf|aarch64]"
|
|
echo "Example: ${0} x86_64"
|
|
exit 1
|
|
fi
|
|
source $GITHUB_WORKSPACE/build/lib.sh
|
|
init_lib $1
|
|
|
|
build_openssh() {
|
|
fetch "https://github.com/openssh/openssh-portable.git" "${BUILD_DIRECTORY}/openssh-portable" git
|
|
cd "${BUILD_DIRECTORY}/openssh-portable"
|
|
git checkout V_7_9
|
|
git clean -fdx
|
|
autoreconf -i
|
|
CC="gcc ${GCC_OPTS}" \
|
|
CXX="g++ ${GXX_OPTS}" \
|
|
CXXFLAGS="-I${BUILD_DIRECTORY}/openssl -I${BUILD_DIRECTORY}/binutils-gdb/zlib" \
|
|
./configure \
|
|
--with-ssl-engine \
|
|
--with-ssl-dir="${BUILD_DIRECTORY}/openssl" \
|
|
--with-zlib="${BUILD_DIRECTORY}/binutils-gdb/zlib" \
|
|
--with-ldflags=-static \
|
|
--host="$(get_host_triple)"
|
|
make -j4
|
|
strip ssh sshd
|
|
}
|
|
|
|
main() {
|
|
lib_build_openssl
|
|
lib_build_zlib
|
|
build_openssh
|
|
if [ ! -f "${BUILD_DIRECTORY}/openssh-portable/ssh" ] || \
|
|
[ ! -f "${BUILD_DIRECTORY}/openssh-portable/sshd" ];then
|
|
echo "[-] Building OpenSSH ${CURRENT_ARCH} failed!"
|
|
exit 1
|
|
fi
|
|
OPENSSH_VERSION=$(get_version "${BUILD_DIRECTORY}/openssh-portable/ssh -V 2>&1 | awk '{print \$1}' | sed 's/,//g'")
|
|
cp "${BUILD_DIRECTORY}/openssh-portable/ssh" "${OUTPUT_DIRECTORY}/ssh${OPENSSH_VERSION}"
|
|
cp "${BUILD_DIRECTORY}/openssh-portable/sshd" "${OUTPUT_DIRECTORY}/sshd${OPENSSH_VERSION}"
|
|
echo "[+] Finished building OpenSSH ${CURRENT_ARCH}"
|
|
|
|
OPENSSH_VERSION=$(echo "$OPENSSH_VERSION" | sed 's/-//')
|
|
echo ::set-output name=PACKAGED_NAME::"${OPENSSH_VERSION}"
|
|
echo ::set-output name=PACKAGED_NAME_PATH::"/output/*"
|
|
}
|
|
|
|
main
|