From 0371cec0472faa7384623af2024eb4789f2d041a Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Fri, 31 Aug 2018 11:19:44 +0000 Subject: [PATCH] create-mkspec.sh, pkg.sh: Fix RPM specs missing files from devel packages This commit makes pkg.sh and create-mkspec.sh check, if a -devel package is specified, and if not, adds the contents of the -devel file list from the install log to the -run file list. This also involves adding a [-s subpackage] option to the pkg.sh milk-install-log command. Not implemented for debian packages. Signed-off-by: Jan Lindemann --- scripts/create-mkspec.sh | 20 +++++++++++++------- scripts/pkg.sh | 27 ++++++++++++++++++--------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/scripts/create-mkspec.sh b/scripts/create-mkspec.sh index 861c5b0e..bbe0cc2b 100644 --- a/scripts/create-mkspec.sh +++ b/scripts/create-mkspec.sh @@ -25,8 +25,14 @@ _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" @@ -45,7 +51,7 @@ _cat << EOT |echo "`cfg_value description`" |echo "" EOT -cfg_value global.subpackages | grep -q run && _cat << EOT +subpackages | grep -q run && _cat << EOT |# --------------------------------------- |echo "%package -n \$NAME-run" |echo "Summary: `cfg_value summary`" @@ -56,7 +62,7 @@ cfg_value global.subpackages | grep -q run && _cat << EOT |echo "Runtime package" |echo "" EOT -cfg_value global.subpackages | grep -q devel && _cat << EOT +subpackages | grep -q devel && _cat << EOT |# --------------------------------------- |echo "%package -n \$NAME-devel" |echo "Summary: `cfg_value summary`, development package" @@ -67,7 +73,7 @@ cfg_value global.subpackages | grep -q devel && _cat << EOT |echo "Development package" |echo "" EOT -cfg_value global.subpackages | grep -q run && _cat << EOT +subpackages | grep -q run && _cat << EOT |# --------------------------------------- |echo "%prep -n \$NAME-run" |echo "" @@ -89,12 +95,12 @@ _cat << EOT |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 \$INSTALL_LOG \`dirname \$INSTALL_LOG\`" + |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 `cfg_value global.subpackages`; do +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 @@ -113,10 +119,10 @@ _cat << EOT |echo "%clean" |#echo 'rm -rf \$RPM_BUILD_ROOT' EOT -cfg_value global.subpackages | grep -q run && _cat << EOT +subpackages | grep -q run && _cat << EOT |echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run" EOT -if cfg_value global.subpackages | grep -q devel; then _cat << 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 diff --git a/scripts/pkg.sh b/scripts/pkg.sh index 4d2acf21..4c6917eb 100644 --- a/scripts/pkg.sh +++ b/scripts/pkg.sh @@ -857,7 +857,7 @@ cmd_milk_install_log() { milk_install_log_usage() { - echo "usage: $myname [-h] [-n pkg-name] [-t rpm|deb] [-p remove-prefix] install-log output-dir" + echo "usage: $myname milk-install-log [-h] [-n pkg-name] [-t rpm|deb] [-p remove-prefix] [-s subpackages] install-log output-dir" [ "$1" ] && exit $1 } @@ -878,9 +878,11 @@ cmd_milk_install_log() chmod 755 $1 } - local type name prefix in out - set -- `getopt ht:p:n: "$@"` + local type name prefix in out subpackages + subpackages="run devel" + + eval set -- `getopt -- ht:p:n:s: "$@"` while [ "$1" != -- ]; do case $1 in -h) @@ -891,14 +893,20 @@ cmd_milk_install_log() name="$2"; shift;; -p) prefix="$2"; shift;; + -s) + subpackages="$2"; shift;; *) + echo -e "Unexpected argument >$1<\n" >&2 milk_install_log_usage 1;; esac shift done shift - [ $# != 2 ] && milk_install_log_usage 1 + [ $# != 2 ] && { + echo -e "Too many arguments >$*<\n" >&2 + milk_install_log_usage 1 + } in=$1 out=$2 @@ -913,6 +921,8 @@ cmd_milk_install_log() rpm) cat $in | sed "s% $prefix% %" | grep -ve $filter_devel > $in.$name-run cat $in | sed "s% $prefix% %" | grep -e $filter_devel > $in.$name-devel + # TODO: this is unimplemented for debian packages + echo $subpackages | grep -q devel || cat $in.$name-devel >> $in.$name-run ;; deb) cat $in | grep -v "%dir" | sed "s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/inst-root\1\/\2 \1/' > $out/$name-run.install @@ -974,7 +984,6 @@ SCM=cvs [ "$CVS_RSH" ] && SSH=$CVS_RSH [ -d .git ] && SCM=git - opts='ht:p:m:N:R:D:X:Y:P:a:F:B:A:' args=("$@") global_args=() @@ -1088,10 +1097,10 @@ need-release) fi ;; update-version) - eval check_update_version "@" || exit 0 + check_update_version "@" || exit 0 ;; version) - eval cmd_version "$@" + cmd_version "$@" ;; build) check_cwd @@ -1128,10 +1137,10 @@ hash) calculate_hash ;; log-install) - eval cmd_log_install "$@" + cmd_log_install "$@" ;; milk-install-log) - eval cmd_milk_install_log "$@" + cmd_milk_install_log "$@" ;; *) usage 1