#!/bin/sh

## Make a clean room
eval "`env |sed -n 's/^\([a-zA-Z0-9_]*\)=.*$/unset \1 || :/p' |egrep -v ' (_|PATH|PWD|HOME|LOGNAME|VENDOR_RPM_[A-Z_]*) '`"
LC_ALL="C"
export LC_ALL

vendor_id="${VENDOR_RPM_VENDOR_ID-osstech}"
rpm_configdir="${VENDOR_RPM_CONFIGDIR-/usr/lib/rpm}"
rpmbuild_cmd="${VENDOR_RPM_BUILD_COMMAND-/usr/bin/rpmbuild}"
rpmbuild_wrapper_cmd="${VENDOR_RPM_BUILD_WRAPPER_COMMAND-}"
rpm_vendor_configdir="${VENDOR_RPM_VENDOR_CONFIGDIR-$rpm_configdir/$vendor_id}"

rpmbuild_b_opt="${1-}"

## OS-specific RPM macros
## ----------------------------------------------------------------------

## https://fedoraproject.org/wiki/Packaging:DistTag

os_name="unknown_`uname |tr '[A-Z]' '[a-z]' |tr - _`"
os_dist="unknown"
os_ver="0"

case `uname` in
Linux)
  if [ -f /etc/redhat-release ]; then
    os_name="rhel"
    os_dist="el"
    os_ver=`sed 's/^[^0-9]*//;s/[^0-9].*$//' /etc/redhat-release`
  fi
  if [ -f /etc/fedora-release ]; then
    os_name="fedora"
    os_dist="fc"
    os_ver=`sed 's/^[^0-9]*//;s/[^0-9].*$//' /etc/fedora-release`
  fi
  if [ -f /etc/turbolinux-release ]; then
    os_name="turbolinux"
    os_dist="tl"
    os_ver=`sed 's/^[^0-9]*//;s/[^0-9].*$//' /etc/turbolinux-release`
  fi
  if [ -f /etc/asianux-release ]; then
    os_name="asianux"
    os_dist="ax"
    os_ver=`sed 's/^[^0-9]*//;s/[^0-9].*$//' /etc/asianux-release`
  fi
  if [ -f /etc/debian_version ]; then
    os_name="debian"
    os_dist="deb"
    ## $os_ver='9999' means 'unstable' version (e.g. 'sid')
    os_ver=`sed 's/^[a-z][a-z]*.*$/9999/;s/\..*//' /etc/debian_version`
  fi
  if [ -f /etc/SuSE-release ]; then
    os_name="suse"
    os_dist="suse"
    os_ver=`cat /etc/SuSE-release | grep VERSION | awk -F ' ' '{print $3}'`
  fi
  ;;
SunOS)
  os_name="sol"
  os_dist="sol"
  ## SunOS 5.X = Solaris X (X >= 7)
  os_ver=`uname -r |sed 's/^[0-9]*\.//;s/\..*$//'`
  ;;
AIX)
  os_name="aix"
  os_dist="aix"
  os_ver=`uname -v`
  ;;
esac

if [ x"$rpmbuild_b_opt" != x"-bs" ]; then
  set -- --define "dist .$os_dist$os_ver" ${1+"$@"}
else
  if [ -z "$rpmbuild_wrapper_cmd" ] && type fakeroot >/dev/null 2>&1; then
    ## Use fakeroot by default for rpmbuild -bs to make file owner in
    ## SRPM package being root
    rpmbuild_wrapper_cmd="fakeroot"
  fi
fi
set -- --define "$os_name $os_ver" --define "$os_dist$os_ver 1" ${1+"$@"}

## Vendor-specific RPM macros
## ----------------------------------------------------------------------

## NOTE: The --rcfile or the --macros option must be specified as
##       the first argument for the rpmbuild command!

rpm_ver=`"$rpmbuild_cmd" --version |sed 's/.* //'`
[ -z "$rpm_ver" ] && exit 1

case X"$rpm_ver" in
X[1-3].*|X4.[0-4].*)
  ## RPM 4.4 and older
  set -- \
    --rcfile "$rpm_configdir/rpmrc:$rpm_vendor_configdir/rpmrc" \
    ${1+"$@"} \
    ;
  ;;
*)
  ## RPM 4.5 and newer
  set -- \
    --macros "$rpm_configdir/macros:$rpm_configdir/%{_target}/macros:$rpm_configdir/platform/%{_target}/macros:$rpm_configdir/fileattrs/*.attr:$rpm_vendor_configdir/macros.*:$rpm_vendor_configdir/macros:~/.rpmmacros.$vendor_id" \
    ${1+"$@"} \
    ;
  ;;
esac

## Debian RPM hack
## ----------------------------------------------------------------------

if [ -f /etc/debian_version ] && [ "$rpm_cmd" = "/usr/bin/rpm" ]; then
  set -- \
    --force-debian \
    ${1+"$@"} \
    ;
fi

## ----------------------------------------------------------------------

exec ${rpmbuild_wrapper_cmd:+"$rpmbuild_wrapper_cmd"} "$rpmbuild_cmd" ${1+"$@"}

