mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-26 23:42:57 +02:00
common: define meta-packages with metapackage=yes
Overloading `build_style` for meta-packages has always felt very hacky,
and it prevents having the main package be a meta-package (with non-meta
subpackages) and using a `build_style` at the same time (example of
trying to hack around that: 62c0c08e18
).
It also can create confusion about how subpackages work if you can
define a `build_style` there (but only `meta`).
This makes using `build_style=meta` an error at the package and subpackage
level, and replaces it with a new variable (`metapackage=yes`).
A pkglint for non-empty meta-packages is also added.
This commit is contained in:
parent
2aff0bd5a5
commit
479bef3b2f
6 changed files with 26 additions and 21 deletions
|
@ -691,6 +691,9 @@ redistribution.
|
||||||
to override the guessed list. Only use this if a specific order of subpackages is required,
|
to override the guessed list. Only use this if a specific order of subpackages is required,
|
||||||
otherwise the default would work in most cases.
|
otherwise the default would work in most cases.
|
||||||
|
|
||||||
|
- `metapackage` If set to `yes`, the package must be an empty meta-package, i.e. a package that
|
||||||
|
only depends on other packages.
|
||||||
|
|
||||||
- `broken` If set, building the package won't be allowed because its state is currently broken.
|
- `broken` If set, building the package won't be allowed because its state is currently broken.
|
||||||
This should be set to a string describing why it is broken, or a link to a buildlog demonstrating the failure.
|
This should be set to a string describing why it is broken, or a link to a buildlog demonstrating the failure.
|
||||||
|
|
||||||
|
@ -1011,11 +1014,6 @@ information can be found in the `go.mod` file for modern Go projects.
|
||||||
It's expected that the distfile contains the package, but dependencies
|
It's expected that the distfile contains the package, but dependencies
|
||||||
will be downloaded with `go get`.
|
will be downloaded with `go get`.
|
||||||
|
|
||||||
- `meta` For `meta-packages`, i.e packages that only install local files or simply
|
|
||||||
depend on additional packages. This build style does not install
|
|
||||||
dependencies to the root directory, and only checks if a binary package is
|
|
||||||
available in repositories.
|
|
||||||
|
|
||||||
- `R-cran` For packages that are available on The Comprehensive R Archive
|
- `R-cran` For packages that are available on The Comprehensive R Archive
|
||||||
Network (CRAN). The build style requires the `pkgname` to start with
|
Network (CRAN). The build style requires the `pkgname` to start with
|
||||||
`R-cran-` and any dashes (`-`) in the CRAN-given version to be replaced
|
`R-cran-` and any dashes (`-`) in the CRAN-given version to be replaced
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
# meta pkg build style; do nothing.
|
|
||||||
|
|
||||||
do_fetch() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install() {
|
|
||||||
:
|
|
||||||
}
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
## VARIABLES
|
## VARIABLES
|
||||||
unset -v conf_files mutable_files preserve triggers alternatives
|
unset -v conf_files mutable_files preserve triggers alternatives
|
||||||
unset -v depends run_depends replaces provides conflicts tags
|
unset -v depends run_depends replaces provides conflicts tags metapackage
|
||||||
|
|
||||||
# hooks/post-install/03-strip-and-debug-pkgs
|
# hooks/post-install/03-strip-and-debug-pkgs
|
||||||
unset -v nostrip nostrip_files
|
unset -v nostrip nostrip_files
|
||||||
|
|
|
@ -63,9 +63,13 @@ hook() {
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Forbid empty packages unless build_style=meta or it is 32bit devel package
|
# Forbid empty packages unless metapackage=yes or it is 32bit devel package
|
||||||
if [ "$build_style" != meta ] && [ "$emptypkg" != no ] && [[ ${pkgname} != *-devel-32bit ]]; then
|
if [ "$metapackage" != yes ] && [ "$emptypkg" != no ] && [[ ${pkgname} != *-devel-32bit ]]; then
|
||||||
msg_red "${pkgver}: PKGDESTDIR is empty and build_style != meta\n"
|
msg_red "${pkgver}: PKGDESTDIR is empty and metapackage != yes\n"
|
||||||
|
error=1
|
||||||
|
fi
|
||||||
|
if [ "$metapackage" = yes ] && [ "$emptypkg" = no ]; then
|
||||||
|
msg_red "${pkgver}: PKGDESTDIR of meta package is not empty\n"
|
||||||
error=1
|
error=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,13 @@ if [ "$SUBPKG_MODE" = "no" ]; then
|
||||||
if [ ! -f $XBPS_INSTALL_DONE ] || [ -f $XBPS_INSTALL_DONE -a -n "$XBPS_BUILD_FORCEMODE" ]; then
|
if [ ! -f $XBPS_INSTALL_DONE ] || [ -f $XBPS_INSTALL_DONE -a -n "$XBPS_BUILD_FORCEMODE" ]; then
|
||||||
mkdir -p $XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/$pkgname-$version
|
mkdir -p $XBPS_DESTDIR/$XBPS_CROSS_TRIPLET/$pkgname-$version
|
||||||
|
|
||||||
run_step install "" skip
|
if [ "$metapackage" = yes ]; then
|
||||||
|
optional="optional"
|
||||||
|
else
|
||||||
|
optional=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
run_step install "$optional" skip
|
||||||
|
|
||||||
touch -f $XBPS_INSTALL_DONE
|
touch -f $XBPS_INSTALL_DONE
|
||||||
fi
|
fi
|
||||||
|
@ -54,6 +60,10 @@ if [ ! -f $XBPS_SUBPKG_INSTALL_DONE -o -n "$XBPS_BUILD_FORCEMODE" ]; then
|
||||||
${PKGNAME}_package
|
${PKGNAME}_package
|
||||||
pkgname=$PKGNAME
|
pkgname=$PKGNAME
|
||||||
|
|
||||||
|
if [ "$build_style" = meta ]; then
|
||||||
|
msg_error "$pkgver: build_style=meta is deprecated, replace with metapackage=yes\n"
|
||||||
|
fi
|
||||||
|
|
||||||
source_file $XBPS_COMMONDIR/environment/build-style/${build_style}.sh
|
source_file $XBPS_COMMONDIR/environment/build-style/${build_style}.sh
|
||||||
|
|
||||||
install -d $PKGDESTDIR
|
install -d $PKGDESTDIR
|
||||||
|
|
|
@ -523,12 +523,14 @@ setup_pkg() {
|
||||||
|
|
||||||
pkgver="${pkg}-${version}_${revision}"
|
pkgver="${pkg}-${version}_${revision}"
|
||||||
|
|
||||||
# If build_style() unset, a do_install() function must be defined.
|
# If build_style is unset, a do_install() function must be defined.
|
||||||
if [ -z "$build_style" ]; then
|
if [ -z "$build_style" ]; then
|
||||||
# Check that at least do_install() is defined.
|
# Check that at least do_install() is defined.
|
||||||
if ! declare -f do_install >/dev/null; then
|
if [ "$metapackage" != yes ] && ! declare -f do_install >/dev/null; then
|
||||||
msg_error "$pkgver: missing do_install() function!\n"
|
msg_error "$pkgver: missing do_install() function!\n"
|
||||||
fi
|
fi
|
||||||
|
elif [ "$build_style" = meta ]; then
|
||||||
|
msg_error "$pkgver: build_style=meta is deprecated, replace with metapackage=yes\n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for x in ${hostmakedepends} ${makedepends} ${checkdepends}; do
|
for x in ${hostmakedepends} ${makedepends} ${checkdepends}; do
|
||||||
|
|
Loading…
Add table
Reference in a new issue