mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
pkg.sh and defs.mk: Add pkg.sh install-log -N, fix links
pkg.sh install-log now supports a -N option, meaning no-log-directories. This installs directories, but doesn't log then in the install log, effectively excluding them from being packaged. This is necessary for directories provided by other packages. -N can be activated by adding LOG_INSTALL_EXTRA_OPTS += -N to a Makefile, see changes in defs.mk. pgk.sh install-log now also omits addition of %attr tags to symbolic links. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
cea7078fae
commit
e37e7f91c1
2 changed files with 50 additions and 25 deletions
22
make/defs.mk
22
make/defs.mk
|
|
@ -200,6 +200,10 @@ else
|
|||
endif
|
||||
endif
|
||||
|
||||
USE_COMPILER_OPTIMIZATION_OPTS = false
|
||||
USE_COMPILER_DEBUG_OPTS = true
|
||||
COMPILE_DEBUG_CODE = true
|
||||
|
||||
BUILD_CFLAGS += $(CFLAGS)
|
||||
BUILD_CPPFLAGS += $(CPPFLAGS)
|
||||
BUILD_LDFLAGS += $(LDFLAGS)
|
||||
|
|
@ -497,7 +501,7 @@ INSTALLED_CGI += $(addprefix $(INSTALL_CGIDIR)/,$(EXE_CGI))
|
|||
# -- HTML
|
||||
INSTALLATION_FILE_TYPES += HTML
|
||||
BUILD_HTMLDIR = $(TOPDIR)/htdocs
|
||||
LOCAL_HTML += $(filter-out $(DONT_INSTALL),$(wildcard *.html *.css *.php *.js *.cgi) $(FONTS) $(IMAGES))
|
||||
LOCAL_HTML += $(filter-out $(DONT_INSTALL),$(wildcard *.html *.css *.php *.js) $(FONTS) $(IMAGES))
|
||||
HTML_SUBDIR ?= $(shell $(PWD) | $(SED) '/.*\/htdocs\(\/\|$$\)/!d; s%.*/htdocs\(/\|$$\)%%')
|
||||
ifeq ($(HTML_SUBDIR),)
|
||||
INSTALL_HTMLDIR ?= $(PROJECT_HTMLDIR)
|
||||
|
|
@ -707,25 +711,27 @@ ifeq ($(LOG_THREAD_NAMES), true)
|
|||
endif
|
||||
|
||||
ifdef INSTALL_LINK
|
||||
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -WA
|
||||
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA
|
||||
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -WA $(LOG_INSTALL_EXTRA_OPTS)
|
||||
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
|
||||
else ifdef INSTALL_SYMLINK
|
||||
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -LA
|
||||
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA
|
||||
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
|
||||
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
|
||||
else
|
||||
ifdef INSTALL_LOG
|
||||
INSTALL=$(LOG_INSTALL_SH) -p -l $(INSTALL_LOG)
|
||||
LINK_LIB=$(LOG_INSTALL_SH) -L -l $(INSTALL_LOG)
|
||||
INSTALL = $(LOG_INSTALL_SH) -p -l $(INSTALL_LOG) $(LOG_INSTALL_EXTRA_OPTS)
|
||||
LINK_LIB = $(LOG_INSTALL_SH) -L -l $(INSTALL_LOG) $(LOG_INSTALL_EXTRA_OPTS)
|
||||
else
|
||||
ifndef INSTALL
|
||||
INSTALL = install
|
||||
endif
|
||||
ifndef LINK_LIB
|
||||
LINK_LIB=$(LOG_INSTALL_SH) -L
|
||||
LINK_LIB = $(LOG_INSTALL_SH) -L
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
INSTALL_FILE ?= $(INSTALL)
|
||||
INSTALL_DIR ?= $(INSTALL)
|
||||
|
||||
# ----- function definitions
|
||||
|
||||
|
|
|
|||
|
|
@ -679,9 +679,10 @@ cmd_log_install()
|
|||
local c_opmode=opmode_install
|
||||
local c_absolute=0
|
||||
local c_wrap=0
|
||||
local c_no_log_dirs=0
|
||||
local install_opts
|
||||
|
||||
set -- `getopt 'DLWi:a:f:l:bg:cdm:o:psS:vA' $*`
|
||||
set -- `getopt 'DLWi:a:f:l:bg:cdm:o:psS:vA:N' $*`
|
||||
|
||||
cfgfile_macro()
|
||||
{
|
||||
|
|
@ -744,6 +745,8 @@ cmd_log_install()
|
|||
c_wrap=1;;
|
||||
-A)
|
||||
c_absolute=1;;
|
||||
-N)
|
||||
c_no_log_dirs=1;;
|
||||
*)
|
||||
echo unknown option \"$1\". Exiting. >&2
|
||||
exit 1;;
|
||||
|
|
@ -753,7 +756,7 @@ cmd_log_install()
|
|||
|
||||
shift
|
||||
|
||||
local args="`echo " $args" | sed -e 's/ -l *[^ ]*//g; s/ -f *[^ ]*//g; s/\b-a\b//g;'`"
|
||||
local args="`echo " $args" | sed -e 's/ -l *[^ ]*//g; s/ -f *[^ ]*//g; s/\b-a\b//g; s/ -N / /g'`"
|
||||
|
||||
if [ -z "$c_use_attr" ]; then
|
||||
#args="`echo " $args" | sed -e 's/ -g *[^ ]*//g; s/ -m *[^ ]*//g; s/ -o *[^ ]*//g;'`"
|
||||
|
|
@ -808,6 +811,7 @@ cmd_log_install()
|
|||
local file mode installd_file cfgfile dir
|
||||
if [ "$c_mode_dir" = true ]; then
|
||||
for file in $*; do
|
||||
[ "$c_no_log_dirs" = 0 ] || continue
|
||||
echo "%dir %attr($c_mode,$c_owner,$c_group) $file" >> $c_logfile
|
||||
done
|
||||
else
|
||||
|
|
@ -821,6 +825,7 @@ cmd_log_install()
|
|||
cfgfile=`cfgfile_macro "$installed_file"`
|
||||
else
|
||||
if [ -d "$file" ]; then
|
||||
[ "$c_no_log_dirs" = 0 ] || continue
|
||||
dir="%dir "
|
||||
mode=0755
|
||||
else
|
||||
|
|
@ -829,7 +834,9 @@ cmd_log_install()
|
|||
mode=0644
|
||||
fi
|
||||
fi
|
||||
echo "$dir%attr($mode,$c_owner,$c_group) $cfgfile$installed_file" |
|
||||
local attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -l $file ] && attr=""
|
||||
echo "$dir$attr $cfgfile$installed_file" |
|
||||
sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
done
|
||||
else
|
||||
|
|
@ -848,7 +855,11 @@ cmd_log_install()
|
|||
mode=0644
|
||||
fi
|
||||
fi
|
||||
echo "$dir%attr($mode,$c_owner,$c_group) $cfgfile$c_target" | sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
local attr="%attr($mode,$c_owner,$c_group)"
|
||||
[ -l $file ] && attr=""
|
||||
if [ -z "$dir" -o "$c_no_log_dirs" != 0 ]; then
|
||||
echo "$dir$attr $cfgfile$c_target" | sed "s/^$c_ignore_prefix//" >> $c_logfile
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
@ -878,11 +889,17 @@ cmd_milk_install_log()
|
|||
chmod 755 $1
|
||||
}
|
||||
|
||||
cat_log()
|
||||
{
|
||||
cat $in | $user_filter
|
||||
}
|
||||
|
||||
local type name prefix in out subpackages
|
||||
|
||||
subpackages="run devel"
|
||||
local subpackages="run devel"
|
||||
local user_filter=cat
|
||||
|
||||
eval set -- `getopt -- ht:p:n:s: "$@"`
|
||||
eval set -- `getopt -- ht:p:n:s:F: "$@"`
|
||||
while [ "$1" != -- ]; do
|
||||
case $1 in
|
||||
-h)
|
||||
|
|
@ -895,6 +912,8 @@ cmd_milk_install_log()
|
|||
prefix="$2"; shift;;
|
||||
-s)
|
||||
subpackages="$2"; shift;;
|
||||
-F)
|
||||
user_filter="$2"; shift;;
|
||||
*)
|
||||
echo -e "Unexpected argument >$1<\n" >&2
|
||||
milk_install_log_usage 1;;
|
||||
|
|
@ -908,8 +927,8 @@ cmd_milk_install_log()
|
|||
milk_install_log_usage 1
|
||||
}
|
||||
|
||||
in=$1
|
||||
out=$2
|
||||
local in=$1
|
||||
local out=$2
|
||||
|
||||
local filter_devel="/include$\|/include/$name$"
|
||||
filter_devel="$filter_devel\|/include/[^/]*.h$\|/include/$name/[^/]*.h$\|/include/[^/]*.hpp$\|/include/$name/[^/]*.hpp$"
|
||||
|
|
@ -919,19 +938,19 @@ cmd_milk_install_log()
|
|||
# TODO: simplify this
|
||||
case $type in
|
||||
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
|
||||
cat_log | sed "s% $prefix% %" | grep -ve $filter_devel > $in.$name-run
|
||||
cat_log | 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
|
||||
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
|
||||
cat_log | 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_log | 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_log | grep "%dir" | sed "s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/\1\/\2/; s%^/%%' | sort -u > $out/$name-run.dirs
|
||||
cat_log | grep "%dir" | sed "s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -e $filter_devel | sed 's/\(.*\)\/\([^/]\+\) *$/\1\/\2/; s%^/%%' | sort -u > $out/$name-devel.dirs
|
||||
#cat_log | sed "/%config/ !d; s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel > $out/conffiles
|
||||
cat_log | sed "/%config/ !d; s% $prefix% %; s%//*%/%g; s/.*) *//" | grep -ve $filter_devel > $out/conffiles.$name-run
|
||||
cat_log | 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue