You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
2.0 KiB

#!/usr/bin/env bash
set -e
NAME=shadowsocks-libev
SELF=$(readlink -f -- "$0")
HERE=$(dirname -- "$SELF")
SOURCES="${HERE}"/SOURCES
SPEC_TEMPLATE="${HERE}"/SPECS/${NAME}.spec.in
SPEC_FILE="${SPEC_TEMPLATE%%.in}"
GIT_VERSION=$("${HERE}"/../scripts/git_version.sh)
OPT_OUTDIR="${HERE}/SRPMS"
OPT_USE_SYSTEM_LIB=0
OUT_BUILD_RPM=0
version=$(echo ${GIT_VERSION} | cut -d' ' -f1)
release=$(echo ${GIT_VERSION} | cut -d' ' -f2)
name_version=${NAME}-${version}-${release}
source_name=${name_version}.tar.gz
archive()
{
"${HERE}"/../scripts/git_archive.sh -o "${SOURCES}" -n ${name_version}
}
build_src_rpm()
{
rpmbuild -bs "${SPEC_FILE}" \
--undefine "dist" \
--define "%_topdir ${HERE}" \
--define "%_srcrpmdir ${OPT_OUTDIR}"
}
build_rpm()
{
rpmbuild --rebuild "${OPT_OUTDIR}"/${name_version}.src.rpm \
--define "%_topdir ${HERE}" \
--define "%use_system_lib ${OPT_USE_SYSTEM_LIB}"
}
create_spec()
{
sed -e "s/@NAME@/${NAME}/g" \
-e "s/@VERSION@/${version}/g" \
-e "s/@RELEASE@/${release}/g" \
-e "s/@SOURCE@/${source_name}/g" \
-e "s/@NAME_VERSION@/${name_version}/g" \
"${SPEC_TEMPLATE}" > "${SPEC_FILE}"
}
show_help()
{
echo -e "$(basename $0) [OPTION...]"
echo -e "Create and build shadowsocks-libev SRPM"
echo
echo -e "Options:"
echo -e " -h show this help."
echo -e " -b use rpmbuld to build resulting SRPM"
echo -e " -s use system shared libraries (RPM only)"
echo -e " -o output directory"
}
while getopts "hbso:" opt
do
case ${opt} in
h)
show_help
exit 0
;;
b)
OPT_BUILD_RPM=1
;;
s)
OPT_USE_SYSTEM_LIB=1
;;
o)
OPT_OUTDIR=$(readlink -f -- $OPTARG)
;;
*)
show_help
exit 1
;;
esac
done
create_spec
archive
build_src_rpm
if [ "${OPT_BUILD_RPM}" = "1" ] ; then
build_rpm
fi