create-mkdebian.sh, pkg.sh: Push milk-install-log.sh into pkg.sh

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2015-05-31 14:23:13 +00:00
commit eb5980b45b
2 changed files with 93 additions and 1 deletions

View file

@ -105,7 +105,7 @@ override_dh_auto_install:
mkdir -p \`dirname \$INSTALL_LOG\`
> \$INSTALL_LOG
\\\$(MAKE) ENV_PREFIX=\\\$(ENV_PREFIX) INSTALL_LOG=\\\$(INSTALL_LOG) install
/bin/bash milk-install-log.sh -p \\\$(ENV_PREFIX) -n \\\$(NAME) -t deb \$INSTALL_LOG \\\$(DEB_DIR)
/bin/bash pkg.sh milk-install-log -p \\\$(ENV_PREFIX) -n \\\$(NAME) -t deb \$INSTALL_LOG \\\$(DEB_DIR)
dh_installdirs
override_dh_shlibdeps:

View file

@ -652,6 +652,95 @@ cmd_log_install()
fi
}
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"
}
milk_install_log_spec_attr()
{
local attr=$1
shift
#echo "extracting attribute $attr from \"$@\"" >&2
echo "$*" | sed "s/.*attr(\([0-9]\+\),\([^,]\+\),\([^,)]\+\)).*/\\$attr/"
}
milk_install_log_init_postinst()
{
cat <<- EOT > $1
#!/bin/sh
EOT
chmod 755 $1
}
local type name prefix in out
set -- `getopt ht:p:n: "$@"`
while [ "$1" != -- ]; do
case $1 in
-h)
usage 0;;
-t)
type="$2"; shift;;
-n)
name="$2"; shift;;
-p)
prefix="$2"; shift;;
*)
milk_install_log_usage 1;;
esac
shift
done
shift
[ $# != 2 ] && milk_install_log_usage 1
in=$1
out=$2
local filter_devel='/include/.*.h$\|devel\|make\|lib.*\.a$\|lib.*\.so$\|.*\.exp$\|.*\.def$\|.*\.lib$'
# TODO: simplify this
case $type in
rpm)
cat $in | sed "s% $prefix% %//" | grep -ve $filter_devel > $out/files-$name-run
cat $in | sed "s% $prefix% %//" | grep -e $filter_devel > $out/files-$name-devel
;;
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 -e $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/inst-root\1\/\2 \1/' > $out/$name-devel.install
cat $in | grep "%dir" | sed "s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/\1\/\2/; s%^/%%' | sort -u > $out/$name-run.dirs
cat $in | grep "%dir" | sed "s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -e $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/\1\/\2/; s%^/%%' | sort -u > $out/$name-devel.dirs
#cat $in | sed "/%config/ !d; s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel > $out/conffiles
cat $in | sed "/%config/ !d; s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel > $out/conffiles.$name-run
cat $in | sed "/%config/ !d; s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -e $filter_devel > $out/conffiles.$name-devel
for p in run devel; do
postinst=$out/$name-$p.postinst
init_postinst $postinst
cat $out/$name-$p.dirs $out/$name-$p.install | grep . | while read file dir; do
#echo read file \"$file\" >&2
file=`echo /$file | sed 's/inst-root\///; s%^//*%/%'`
#echo file is now \"$file\" >&2
#echo grep \"$prefix/*$file$\" $in >&2
line=`grep $file$ $in`
perm=`milk_install_log_spec_attr 1 "$line"`
owner=`milk_install_log_spec_attr 2 "$line"`
group=`milk_install_log_spec_attr 3 "$line"`
echo "chown $owner:$group $file" >> $postinst
echo "chmod $perm $file" >> $postinst
done
done
;;
*)
milk_install_log_usage 1
;;
esac
}
# ---- here we go
umask 0022
trap goodbye SIGINT SIGKILL
@ -812,6 +901,9 @@ hash)
log-install)
eval cmd_log_install "$@"
;;
milk-install-log)
eval cmd_milk_install_log "$@"
;;
*)
usage 1
;;