2012/8/12 Vadim Zhukov <[email protected]>:
> Hello all.
>
> Here is a working prototype of cache invalidating helper framework.
> With it you can just add something like:
>
> MODULES += updb
> MODUPDB_WHAT = desktop-files icons
>
> and have all RUN_DEPENDS and @exec/@unexec-goo added to final plist
> on the fly. Module is MULTI_PACKAGES aware but require small patch
> to bsd.port.mk (see below). PKG_ARGS_TAIL is the same as PKG_ARGS
> but is appended at the last; this way we get packaging list fragments
> where they belong, at the end of the plist.
>
> In the future I think it's possible to add automatic checks in plist
> create/update stage, making make-plist warn when something is missed.
For those who interested, I quickly collected some statistics about
different @{,un}exec* lines, see below. I've left only those lines
that at least doubles somewhere. Please note that it covers not only
official tree but also openbsd-wip and mystuff (a few ports there).
--
WBR,
Vadim Zhukov
2 @exec %D/bin/gdk-pixbuf-query-loaders --update-cache
2 @exec %D/bin/genkdmconf --in %D/share/config/kdm || true
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/Locolor
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/Tango
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/ikons
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/kdeclassic
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/kids
2 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/slick
2 @exec TEXMFMAIN=%D/share/texmf %D/bin/mktexlsr
2 @exec cd %D/share/texmf/tex/ && \ls -1LAR ./ >ls-R
2 @exec install -d ${SYSCONFDIR}/php-${PV}.sample/
2 @exec install -d ${SYSCONFDIR}/php-${PV}/
2 @exec-add PREFIX=%D SYSCONFDIR=${SYSCONFDIR}
${PREFIX}/sbin/postfix-install install
2 @exec-update PREFIX=%D SYSCONFDIR=${SYSCONFDIR}
${PREFIX}/sbin/postfix-install upgrade
2 @unexec TEXMFMAIN=%D/share/texmf %D/bin/mktexlsr
2 @unexec-delete ${PREFIX}/sbin/postfix-disable
2 @unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons
2 @unexec-delete rm -f %D/share/icons/Locolor/icon-theme.cache
2 @unexec-delete rm -f %D/share/icons/ikons/icon-theme.cache
2 @unexec-delete rm -f %D/share/icons/kdeclassic/icon-theme.cache
2 @unexec-delete rm -f %D/share/icons/kids/icon-theme.cache
2 @unexec-delete rm -f %D/share/icons/slick/icon-theme.cache
2 @unexec-delete rm -f /etc/mailer.conf.postfix
2 @unexec-delete rm -fr ${SYSCONFDIR}/php-${PV}.sample/
3 @exec %D/bin/mktexlsr > /dev/null 2>&1
3 @exec if [ ! -e ${CATALINA_BASE}/conf ]; then ln -sf
${CONFDIR} ${CATALINA_BASE}/conf; fi
3 @exec mktexlsr > /dev/null 2>&1
3 @unexec if [ -h ${CATALINA_BASE}/conf ]; then rm
${CATALINA_BASE}/conf; fi
3 @unexec rm -rf ${GAMEDIR}/save/*
3 @unexec-delete %D/bin/gtk-query-immodules-2.0 >
${SYSCONFDIR}/gtk-2.0/gtk.immodules
3 @unexec-delete %D/bin/mktexlsr > /dev/null 2>&1
4 @exec %D/bin/gtk-query-immodules-2.0 >
${SYSCONFDIR}/gtk-2.0/gtk.immodules
4 @unexec-delete %D/bin/gio-querymodules %D/lib/gio/modules/
4 @unexec-delete %D/share/libxml2/rebuild
5 @exec %D/bin/gio-querymodules %D/lib/gio/modules/
5 @exec %D/share/libxml2/rebuild
5 @unexec-delete %D/bin/gtk-update-icon-cache -q -t
%D/share/crystalsvg/hicolor
6 @exec ${WNNBASE}/lib/wnn/install-script
6 @unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons/gnome
7 @exec %D/bin/gtk-update-icon-cache -q -f -t
%D/share/icons/hicolor 2> /dev/null || true
7 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/gnome
7 @unexec-delete %D/bin/gtk-update-icon-cache -q -f -t
%D/share/icons/hicolor 2> /dev/null || true
9 @exec %D/sbin/twisted-regen-dropin.cache
9 @unexec %D/sbin/twisted-regen-dropin.cache
12 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/oxygen
12 @unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons/oxygen
22 @exec-update test ! -f ${MODAPACHE_FINAL} || cp -fp %D/%F
${MODAPACHE_FINAL}
22 @unexec-delete rm -f ${MODAPACHE_FINAL}
25 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/locolor
25 @unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons/locolor
26 @unexec-delete %D/bin/gtk-update-icon-cache -q -t
%D/share/icons/crystalsvg
32 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/crystalsvg
37 @exec GCONF_CONFIG_SOURCE=`%D/bin/gconftool-2
--get-default-source` %D/bin/gconftool-2 --makefile-install-rule
%D/${SCHEMAS_INSTDIR}/*.schemas > /dev/null
38 @unexec GCONF_CONFIG_SOURCE=`%D/bin/gconftool-2
--get-default-source` %D/bin/gconftool-2 --makefile-uninstall-rule
%D/${SCHEMAS_INSTDIR}/*.schemas > /dev/null
62 @exec %D/bin/update-mime-database %D/share/mime
62 @unexec-delete %D/bin/update-mime-database %D/share/mime
72 @unexec-delete %D/bin/glib-compile-schemas
%D/share/glib-2.0/schemas >/dev/null
73 @exec %D/bin/glib-compile-schemas %D/share/glib-2.0/schemas >/dev/null
169 @exec /usr/bin/env HOME=/nonexistent
%D/lib/ghc/${DISTNAME}/register.sh -v0
169 @unexec /usr/bin/env HOME=/nonexistent
%D/lib/ghc/${DISTNAME}/unregister.sh -v0 --force
297 @exec %D/bin/gtk-update-icon-cache -q -t %D/share/icons/hicolor
297 @unexec-delete %D/bin/gtk-update-icon-cache -q -t %D/share/icons/hicolor
550 @unexec-delete %D/bin/update-desktop-database
552 @exec %D/bin/update-desktop-database