postgres-multi.eclass

Name

postgres-multi.eclass -- An eclass to build PostgreSQL-related packages against multiple slots

Description

postgres-multi enables ebuilds, particularly PostgreSQL extensions, to build and install for one or more PostgreSQL slots as specified by POSTGRES_TARGETS use flags.

Supported EAPIs

5 6 7

Transitively Provided Eclasses

  • multibuild

  • postgres

Exported Phases

  • pkg_setup

  • src_compile

  • src_test

  • src_install

  • src_prepare

Functions

postgres-multi_foreach <command> [arg ...]

Run the given command in the package's build directory for each PostgreSQL slot in the intersect of POSTGRES_TARGETS and POSTGRES_COMPAT. The PG_CONFIG and PKG_CONFIG_PATH environment variables are updated on each iteration to point to the matching pg_config command and pkg-config metadata files, respectively, for the current slot. Any appearance of @PG_SLOT@ in the command or arguments will be substituted with the slot (e.g., 9.5) of the current iteration.

postgres-multi_forbest <command> [arg ...]

Run the given command in the package's build directory for the highest slot in the intersect of POSTGRES_COMPAT and POSTGRES_TARGETS. The PG_CONFIG and PKG_CONFIG_PATH environment variables are set to the matching pg_config command and pkg-config metadata files, respectively. Any appearance of @PG_SLOT@ in the command or arguments will be substituted with the matching slot (e.g., 9.5).

postgres-multi_pkg_setup

Initialize internal environment variable(s). This is required if pkg_setup() is declared in the ebuild.

postgres-multi_src_prepare

Calls eapply_user then copies ${S} into a build directory for each intersect of POSTGRES_TARGETS and POSTGRES_COMPAT.

postgres-multi_src_compile

Runs

emake' in each build directory

postgres-multi_src_install

Runs

emake install DESTDIR="${D}"' in each build directory.

postgres-multi_src_test

Runs

emake installcheck' in each build directory.

Variables

POSTGRES_COMPAT (REQUIRED) (SET BEFORE INHERIT)

A Bash array containing a list of compatible PostgreSQL slots as defined by the developer. Must be declared before inheriting this eclass. Example: CODE OSTGRES_COMPAT=( 9.2 9.3 9.4 9.5 9.6 10 ) OSTGRES_COMPAT=( 9.{2,3} 9.{4..6} 10 ) # Same as previous CODE

Authors

Aaron W. Swenson <titanofold@gentoo.org>

Maintainers

PostgreSQL <pgsql-bugs@gentoo.org>

Reporting Bugs

Please report bugs via https://bugs.gentoo.org/