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 <jan@janware.com>
This commit is contained in:
Jan Lindemann 2018-08-31 11:19:44 +00:00
commit 0371cec047
2 changed files with 31 additions and 16 deletions

View file

@ -25,8 +25,14 @@ _cat()
sed 's/^ *|//' sed 's/^ *|//'
} }
subpackages()
{
echo $SUBPACKAGES
}
LICENSE=`cfg_value global.license` LICENSE=`cfg_value global.license`
[ "$LICENSE" ] || LICENSE="janware GmbH proprietary license" [ "$LICENSE" ] || LICENSE="janware GmbH proprietary license"
SUBPACKAGES=`cfg_value global.subpackages`
_cat << EOT _cat << EOT
|echo "Name: \$NAME" |echo "Name: \$NAME"
@ -45,7 +51,7 @@ _cat << EOT
|echo "`cfg_value description`" |echo "`cfg_value description`"
|echo "" |echo ""
EOT EOT
cfg_value global.subpackages | grep -q run && _cat << EOT subpackages | grep -q run && _cat << EOT
|# --------------------------------------- |# ---------------------------------------
|echo "%package -n \$NAME-run" |echo "%package -n \$NAME-run"
|echo "Summary: `cfg_value summary`" |echo "Summary: `cfg_value summary`"
@ -56,7 +62,7 @@ cfg_value global.subpackages | grep -q run && _cat << EOT
|echo "Runtime package" |echo "Runtime package"
|echo "" |echo ""
EOT EOT
cfg_value global.subpackages | grep -q devel && _cat << EOT subpackages | grep -q devel && _cat << EOT
|# --------------------------------------- |# ---------------------------------------
|echo "%package -n \$NAME-devel" |echo "%package -n \$NAME-devel"
|echo "Summary: `cfg_value summary`, development package" |echo "Summary: `cfg_value summary`, development package"
@ -67,7 +73,7 @@ cfg_value global.subpackages | grep -q devel && _cat << EOT
|echo "Development package" |echo "Development package"
|echo "" |echo ""
EOT EOT
cfg_value global.subpackages | grep -q run && _cat << EOT subpackages | grep -q run && _cat << EOT
|# --------------------------------------- |# ---------------------------------------
|echo "%prep -n \$NAME-run" |echo "%prep -n \$NAME-run"
|echo "" |echo ""
@ -89,12 +95,12 @@ _cat << EOT
|echo "> \$INSTALL_LOG" |echo "> \$INSTALL_LOG"
|echo "make install" |echo "make install"
|echo "export PATH=$MOD_SCRIPT_DIR:\\\$PATH" |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 "" |echo ""
EOT EOT
# -- scripts # -- scripts
for p in `cfg_value global.subpackages`; do for p in `$SUBPACKAGES`; do
for stage in pre preun post postun; do for stage in pre preun post postun; do
echo "================= processing stage $stage: cfg_section pkg.$p.$stage" >&2 echo "================= processing stage $stage: cfg_section pkg.$p.$stage" >&2
cfg_section pkg.$p.$stage >&2 cfg_section pkg.$p.$stage >&2
@ -113,10 +119,10 @@ _cat << EOT
|echo "%clean" |echo "%clean"
|#echo 'rm -rf \$RPM_BUILD_ROOT' |#echo 'rm -rf \$RPM_BUILD_ROOT'
EOT 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" |echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run"
EOT 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" |echo "%files -n \$NAME-devel -f \$INSTALL_LOG.\$NAME-devel"
EOT EOT
cfg_section pkg.devel.post cfg_section pkg.devel.post

View file

@ -857,7 +857,7 @@ cmd_milk_install_log()
{ {
milk_install_log_usage() 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 [ "$1" ] && exit $1
} }
@ -878,9 +878,11 @@ cmd_milk_install_log()
chmod 755 $1 chmod 755 $1
} }
local type name prefix in out local type name prefix in out subpackages
set -- `getopt ht:p:n: "$@"`
subpackages="run devel"
eval set -- `getopt -- ht:p:n:s: "$@"`
while [ "$1" != -- ]; do while [ "$1" != -- ]; do
case $1 in case $1 in
-h) -h)
@ -891,14 +893,20 @@ cmd_milk_install_log()
name="$2"; shift;; name="$2"; shift;;
-p) -p)
prefix="$2"; shift;; prefix="$2"; shift;;
-s)
subpackages="$2"; shift;;
*) *)
echo -e "Unexpected argument >$1<\n" >&2
milk_install_log_usage 1;; milk_install_log_usage 1;;
esac esac
shift shift
done done
shift shift
[ $# != 2 ] && milk_install_log_usage 1 [ $# != 2 ] && {
echo -e "Too many arguments >$*<\n" >&2
milk_install_log_usage 1
}
in=$1 in=$1
out=$2 out=$2
@ -913,6 +921,8 @@ cmd_milk_install_log()
rpm) rpm)
cat $in | sed "s% $prefix% %" | grep -ve $filter_devel > $in.$name-run cat $in | sed "s% $prefix% %" | grep -ve $filter_devel > $in.$name-run
cat $in | sed "s% $prefix% %" | grep -e $filter_devel > $in.$name-devel 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) 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 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 [ "$CVS_RSH" ] && SSH=$CVS_RSH
[ -d .git ] && SCM=git [ -d .git ] && SCM=git
opts='ht:p:m:N:R:D:X:Y:P:a:F:B:A:' opts='ht:p:m:N:R:D:X:Y:P:a:F:B:A:'
args=("$@") args=("$@")
global_args=() global_args=()
@ -1088,10 +1097,10 @@ need-release)
fi fi
;; ;;
update-version) update-version)
eval check_update_version "@" || exit 0 check_update_version "@" || exit 0
;; ;;
version) version)
eval cmd_version "$@" cmd_version "$@"
;; ;;
build) build)
check_cwd check_cwd
@ -1128,10 +1137,10 @@ hash)
calculate_hash calculate_hash
;; ;;
log-install) log-install)
eval cmd_log_install "$@" cmd_log_install "$@"
;; ;;
milk-install-log) milk-install-log)
eval cmd_milk_install_log "$@" cmd_milk_install_log "$@"
;; ;;
*) *)
usage 1 usage 1