#!/bin/bash export LANG=POSIX dir=`dirname $0` inifile="$1" . $dir/ini-tools.sh cfg_section() { ini_section "$inifile" $@ } cfg_value() { ini_value "$inifile" $@ } cfg_escape() { sed 's/\$/\\$/g' } _cat() { sed 's/^ *|//' } subpackages() { echo $SUBPACKAGES } LICENSE=`cfg_value global.license` [ "$LICENSE" ] || LICENSE="janware GmbH proprietary license" SUBPACKAGES=`cfg_value global.subpackages` _cat << EOT |echo "Name: \$NAME" |echo "Summary: `cfg_value summary`" |echo "Version: \$VERSION" |echo "Release: \$RELEASE" |echo "License: $LICENSE" |echo "Group: System/Libraries" |[ -n "\$SOURCE" ] && echo "Source: \$SOURCE" |echo "Vendor: janware GmbH" |echo "URL: http://janware.com" |echo "BuildRoot: /var/tmp/%{name}-buildroot" |echo "Distribution: jw / openSUSE Tumbleweed" |echo "" |echo "%description" |echo "`cfg_value description`" |echo "" EOT subpackages | grep -q run && _cat << EOT |# --------------------------------------- |echo "%package -n \$NAME-run" |echo "Summary: `cfg_value summary`" |echo "Group: `cfg_value global.group`" |[ "\$REQUIRES_RUN" ] && echo "Requires: \$REQUIRES_RUN" |[ "\$CONFLICTS_RUN" ] && echo "Conflicts: \$CONFLICTS_RUN" |echo "%description -n \$NAME-run" |echo "Runtime package" |echo "" EOT subpackages | grep -q devel && _cat << EOT |# --------------------------------------- |echo "%package -n \$NAME-devel" |echo "Summary: `cfg_value summary`, development package" |echo "Group: `cfg_value global.group`" |[ "\$REQUIRES_DEVEL" ] && echo "Requires: \$REQUIRES_DEVEL" |[ "\$CONFLICTS_DEVEL" ] && echo "Conflicts: \$CONFLICTS_DEVEL" |echo "%description -n \$NAME-devel" |echo "Development package" |echo "" EOT subpackages | grep -q run && _cat << EOT |# --------------------------------------- |echo "%prep -n \$NAME-run" |echo "" EOT _cat << EOT |echo "%setup -q -n \$NAME-\$V" |echo "" |echo "%build" |echo 'pwd' |echo 'make config' |echo 'make' |echo "" |echo "%install" |echo 'rm -rf \$RPM_BUILD_ROOT' |echo "export ENV_PREFIX=\\\$RPM_BUILD_ROOT" |echo "export INSTALL_LOG=\$INSTALL_LOG" |echo "mkdir -p \`dirname \$INSTALL_LOG\`" |echo "> \$INSTALL_LOG" |echo "make install" |echo "export PATH=$MOD_SCRIPT_DIR:\\\$PATH" |echo "/bin/bash pkg.sh milk-install-log -p \\\$ENV_PREFIX -n \$NAME -t rpm -s \\"$SUBPACKAGES\\" \$INSTALL_LOG \`dirname \$INSTALL_LOG\`" |echo "" EOT # -- scripts for p in $SUBPACKAGES; do for stage in pre preun post postun; do echo "================= processing stage $stage: cfg_section pkg.$p.$stage" >&2 cfg_section pkg.$p.$stage >&2 cfg_section pkg.$p.$stage | grep -q . && { _cat <<- EOT |echo "%$stage -n \$NAME-$p" EOT echo "cat << EOT" cfg_section pkg.$p.$stage | cfg_escape echo "EOT" } done done _cat << EOT |echo "" |echo "%clean" |#echo 'rm -rf \$RPM_BUILD_ROOT' EOT subpackages | grep -q run && _cat << EOT |echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run" EOT if subpackages | grep -q devel; then _cat << EOT |echo "%files -n \$NAME-devel -f \$INSTALL_LOG.\$NAME-devel" EOT cfg_section pkg.devel.post else _cat << EOT |echo "%exclude /opt/\$NAME/make/*.mk" EOT fi _cat << EOT |echo '%defattr (-, root, root)' EOT