void-packages/common/hooks
q66 1fdd919d3b 02-script-wrapper: preserve original timestamps of wrapper scripts
At least since 0.53, the meson buildsystem checks whether the
"date" command's file is outdated and if it is, it'll trigger
regeneration of the build files.

Since the wrappers are reinstalled from scratch on every build step,
this would result in meson being re-run on each of those steps.
Which resulted in broken builds in some projects (e.g. efl) since
our meson build-style by default uses LTO and that requires the AR
environment variable being exported in a specific way, which was
only being done for the do_configure step but not build/install,
which resulted in meson being run with one env for configure and
another env for build, which broke everything.
2020-03-02 00:58:35 +01:00
..
do-build
do-check
do-configure
do-extract hooks/do-extract: refrain from extracting text files outside wrksrc 2020-02-19 19:02:01 +01:00
do-fetch common: retry ftp download during CI 2020-02-11 23:05:31 +01:00
do-install
do-patch 00-patches.sh: avoid useless use of cat 2019-04-15 12:18:00 -03:00
do-pkg xbps-src: multiple performance improvements 2019-07-10 20:28:46 +02:00
post-build
post-check
post-configure
post-extract meta: move 00-patches.sh hook to do-patch phase 2019-02-27 22:56:19 -03:00
post-fetch
post-install base-files: install /usr/lib32 symlink on i686 2019-12-15 09:17:51 +01:00
post-patch meta: add hook directories for patch phase 2019-02-27 22:56:19 -03:00
post-pkg common: merge only_for_archs and noarch=yes into one. 2019-02-15 13:19:44 +01:00
pre-build
pre-check
pre-configure 02-script-wrapper: preserve original timestamps of wrapper scripts 2020-03-02 00:58:35 +01:00
pre-extract
pre-fetch
pre-install base-files: install /usr/lib32 symlink on i686 2019-12-15 09:17:51 +01:00
pre-patch meta: add hook directories for patch phase 2019-02-27 22:56:19 -03:00
pre-pkg hook: python-shebang: check for shebang in the first line only 2019-12-28 18:02:39 +01:00
README

HOOKS
=====

This directory contains shell hooks that are processed after or before the
specified phase. The shell hooks are simply shell snippets (must not be
executable nor contain a shebang) that are processed lexically by xbps-src.
Only files with the `.sh` extension are processed.

A shell hook must provide a `hook()` function which is the entry point to
execute it via xbps-src.

The following directories are used to set the order in which the hooks
should be processed by xbps-src:

	* pre-fetch		(before running fetch phase)
	* do-fetch		(running fetch phase)
	* post-fetch		(after running fetch phase)

	* pre-extract		(before running extract phase)
	* do-extract		(running extract phase)
	* post-extract		(after running extract phase)

	* pre-configure		(before running configure phase)
	* do-configure		(running configure phase)
	* post-configure	(after running configure phase)

	* pre-build		(before running build phase)
	* do-build		(running build phase)
	* post-build		(after running build phase)

	* pre-install		(before running install phase)
	* do-install		(running install phase)
	* post-install		(after running install phase)

	* pre-pkg		(before running pkg phase)
	* do-pkg		(running pkg phase)
	* post-pkg		(after running pkg phase)

NOTES
~~~~~
* Symlinks can be created (relative) to make a hook available in multiple phases.

* The phases do-fetch, do-extract, do-configure, do-build, and do-install can
  be overwritten by the template file. That means if a template contains a
  do_install function, the hooks defined for do-install won't be executed.
  Note that this is only true for the do-* hooks.

* the pre_* function of the template will be run *after* the corresponding
  pre-* hooks.

* the post_* function of the template will be run *before* the corresponding
  post-* hooks.