Index: head/Keywords/fc.ucl =================================================================== --- head/Keywords/fc.ucl +++ head/Keywords/fc.ucl @@ -4,8 +4,16 @@ actions: [dir] post-install: </dev/null || true + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + fc-cache -s ${fontsdir} 2>/dev/null || true EOD post-deinstall: </dev/null || true + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + fc-cache -s ${fontsdir} 2>/dev/null || true EOD Index: head/Keywords/fcfontsdir.ucl =================================================================== --- head/Keywords/fcfontsdir.ucl +++ head/Keywords/fcfontsdir.ucl @@ -4,18 +4,26 @@ actions: [dir] post-install: </dev/null || true - mkfontscale %D/%@ 2>/dev/null || true - mkfontdir %D/%@ 2>/dev/null || true + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + fc-cache -s ${fontsdir} 2>/dev/null || true + mkfontscale ${fontsdir} 2>/dev/null || true + mkfontdir ${fontsdir} 2>/dev/null || true EOD post-deinstall: </dev/null || true - mkfontscale %D/%@ 2>/dev/null || true - if [ -e %D/%@/fonts.scale -a "`stat -f '%%z' %D/%@/fonts.scale 2>/dev/null`" = '2' ]; then - rm %D/%@/fonts.scale + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + fc-cache -s ${fontsdir} 2>/dev/null || true + mkfontscale ${fontsdir} 2>/dev/null || true + if [ -e ${fontsdir}/fonts.scale -a "`stat -f '%%z' ${fontsdir}/fonts.scale 2>/dev/null`" = '2' ]; then + rm ${fontsdir}/fonts.scale fi - mkfontdir %D/%@ 2>/dev/null || true - if [ -e %D/%@/fonts.dir -a "`stat -f '%%z' %D/%@/fonts.dir 2>/dev/null`" = '2' ]; then - rm %D/%@/fonts.dir + mkfontdir ${fontsdir} 2>/dev/null || true + if [ -e ${fontsdir}/fonts.dir -a "`stat -f '%%z' ${fontsdir}/fonts.dir 2>/dev/null`" = '2' ]; then + rm ${fontsdir}/fonts.dir fi EOD Index: head/Keywords/fontsdir.ucl =================================================================== --- head/Keywords/fontsdir.ucl +++ head/Keywords/fontsdir.ucl @@ -4,16 +4,24 @@ actions: [dir] post-install: </dev/null || true - mkfontdir %D/%@ 2>/dev/null || true + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + mkfontscale ${fontsdir} 2>/dev/null || true + mkfontdir ${fontsdir} 2>/dev/null || true EOD post-deinstall: </dev/null || true - if [ -e %D/%@/fonts.scale -a "`stat -f '%%z' %D/%@/fonts.scale 2>/dev/null`" = '2' ]; then - rm %D/%@/fonts.scale + case "%@" in + /*) fontsdir="%@" ;; + *) fontsdir="%D/%@" ;; + esac + mkfontscale ${fontsdir} 2>/dev/null || true + if [ -e ${fontsdir}/fonts.scale -a "`stat -f '%%z' ${fontsdir}/fonts.scale 2>/dev/null`" = '2' ]; then + rm ${fontsdir}/fonts.scale fi - mkfontdir %D/%@ 2>/dev/null || true - if [ -e %D/%@/fonts.dir -a "`stat -f '%%z' %D/%@/fonts.dir 2>/dev/null`" = '2' ]; then - rm %D/%@/fonts.dir + mkfontdir ${fontsdir} 2>/dev/null || true + if [ -e ${fontsdir}/fonts.dir -a "`stat -f '%%z' ${fontsdir}/fonts.dir 2>/dev/null`" = '2' ]; then + rm ${fontsdir}/fonts.dir fi EOD Index: head/Keywords/shell.ucl =================================================================== --- head/Keywords/shell.ucl +++ head/Keywords/shell.ucl @@ -13,12 +13,20 @@ actions: [file] post-install: < /etc/shells + (grep -v ${file} /etc/shells.bak; echo ${file}) > /etc/shells rm -f /etc/shells.bak EOD pre-deinstall: < /etc/shells + grep -v ${file} /etc/shells.bak > /etc/shells rm -f /etc/shells.bak EOD Index: head/Mk/Scripts/check-stagedir.sh =================================================================== --- head/Mk/Scripts/check-stagedir.sh +++ head/Mk/Scripts/check-stagedir.sh @@ -95,7 +95,14 @@ @fc\ *|@fcfontsdir\ *|@fontsdir\ *) set -- $line shift + case "$@" in + /*) + echo >&3 "${comment}$@" + ;; + *) echo >&3 "${comment}${cwd}/$@" + ;; + esac ;; # order matters here - we must check @cwd first because