#!/bin/sh #---------------------------------------------------------------------------- # /usr/bin/rpmbuild - wrapper to call rpmbuild (in.rpmbuild) # # Creation : 2013-03-14 holbru # Last update: $Id$ # # Copyright (c) 2015-@@YEAR@@ Holger Bruenjes, holgerbruenjes(at)gmx(dot)net # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------- #exec 2>/tmp/rpmbuild-trace$$.log #set -x # --------------------------------------------------------------------------- # search in $pkgconfig # --------------------------------------------------------------------------- search_pkgconfig() { if echo ${_pack} | grep -qi 'pkgconfig' then __pack=$( echo ${_pack} | sed 's/pkgconfig(//; s/)//' ) if ! pkg-config --exists ${__pack} then search_perl fi else search_perl fi } # --------------------------------------------------------------------------- # search for perl # --------------------------------------------------------------------------- search_perl() { if echo ${_pack} | grep -qi 'perl(' then __pack=$( echo ${_pack} | sed 's/perl(//; s/)//' ) if perl -e "use ${__pack};" 2>&1 | grep -q "Can't locate" then search_package fi else search_package fi } # --------------------------------------------------------------------------- # search in $packages # --------------------------------------------------------------------------- search_package() { installed=$(eisman check "$(echo "${_pack}" | tr [:upper:] [:lower:])") if [ "${installed}" != "installed" ] then search_libpackage fi } # --------------------------------------------------------------------------- # search also in lib$packages # --------------------------------------------------------------------------- search_libpackage() { installed=$(eisman check "lib${_pack}") if [ "${installed}" != "installed" ] then search_executable fi } # --------------------------------------------------------------------------- # search for $executable # --------------------------------------------------------------------------- search_executable() { __pack=$( which ${_pack} 2>/dev/null ) if [ -z "${__pack}" ] then write_printout fi } # --------------------------------------------------------------------------- # write printout # --------------------------------------------------------------------------- write_printout() { echo " ${_pack}" >> ${_tmp_file} } # --------------------------------------------------------------------------- # main # --------------------------------------------------------------------------- PARA=${*} _nodeps=false while [ ${#} -gt 0 ] do case ${1} in --nodeps) _nodeps=true ;; *.spec) _file="${1}" __nodeps='--nodeps' ;; esac shift done if [ -n "${_file}" ] then _tmp_file=$( mktemp -t .XXXXXXXXXXXXXX ) if ! ${_nodeps} then awk '/^BuildRequires:/ {print}' ${_file} | while read _pack do # python part if echo "${_pack}" | grep -q 'python_module' then py_pack=$(echo ${_pack} | cut -d ' ' -f3 | sed 's/}//; s/devel/dev/') py_inst=$(ls /usr/bin/python* | sed 's|.*python||; s|\.||; s|-config||' | uniq) # for i in 2 3 38 310 for i in ${py_inst} do if [ ${i} = 3 ] then continue fi _pack=python${i}-${py_pack} search_pkgconfig done # others else _pack=$(echo ${_pack} | cut -d ' ' -f2 | sed 's/devel/dev/; s/.*openssl-dev/libopenssl-3-dev/; s/libssl-dev/libopenssl-3-dev/; s/gcc-c++/gcc-cpp/; s/pkgconfig$/pkg-config/; s/gettext-dev/gettext-tools/') search_pkgconfig fi done fi if [ -s ${_tmp_file} ] then echo echo 'The following packages where missing, please solve that first.' echo cat ${_tmp_file} echo rm -f ${_tmp_file} exit 1 fi rm -f ${_tmp_file} fi # --------------------------------------------------------------------------- # exec bin # --------------------------------------------------------------------------- exec /usr/bin/in.rpmbuild ${__nodeps} $( echo ${PARA} | sed "s|'||g" ) # --------------------------------------------------------------------------- # end # ---------------------------------------------------------------------------