Introduce a way to override dependencies for all pkgs thru a file.

The `etc/defaults.virtual` file contains the default replacement
for our use cases; at this moment we only use it to use `eudev`
rather than `systemd` for udev.

If `etc/virtual` exists it overrides the settings of `etc/defaults.virtual`.
This commit is contained in:
Juan RP 2014-09-06 12:37:09 +02:00
parent b5a4b83a54
commit 75b6468fa0
3 changed files with 69 additions and 3 deletions

View file

@ -12,13 +12,15 @@ To start using it first you'll need some external dependencies:
Make sure your user is added to the `xbuilder` group to be able to use `xbps-uchroot(8)`,
otherwise `xbps-src` won't work correctly.
The `xbps-src` utility will allow you to generate XBPS binary packages, type
Type:
$ ./xbps-src -h
to see all available targets/options and start building any available package
in the `srcpkgs` directory.
### Configuration
The `etc/defaults.conf` file contains the possible settings that can be overrided
through the `etc/conf` configuration file for the `xbps-src` utility; if that file
does not exist, will try to read configuration settings from `~/.xbps-src.conf`.
@ -29,5 +31,15 @@ those defined in `etc/defaults.conf`, append to them instead via `etc/conf` i.e:
$ echo 'XBPS_CFLAGS+=" your flags here "' >> etc/conf
$ echo 'XBPS_LDFLAGS+=" your flags here "' >> etc/conf
#### Virtual packages
The `etc/defaults.virtual` file contains the default replacements for virtual packages,
used as dependencies in the source packages tree.
If you want to customize those replacements, copy `etc/defaults.virtual` to `etc/virtual`
and edit it accordingly to your needs.
### Contributing
See [Manual](https://github.com/voidlinux/xbps-packages/blob/master/Manual.md)
for documentation to create and learn about the source packages.

View file

@ -1,7 +1,7 @@
# vim: set ts=4 sw=4 et:
#
setup_pkg_depends() {
local pkg="$1" j _pkgdepname _pkgdep _rpkgname _depname
local pkg="$1" j _pkgdepname _pkgdep _rpkgname _depname _replacement
if [ -n "$pkg" ]; then
# subpkg
@ -17,7 +17,17 @@ setup_pkg_depends() {
if [ -z "${_pkgdepname}" ]; then
_pkgdepname="$($XBPS_UHELPER_CMD getpkgname ${_depname} 2>/dev/null)"
fi
if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
fi
if [ -z "${_pkgdepname}" ]; then
_pkgdep="${_depname}>=0"
else
@ -35,6 +45,17 @@ setup_pkg_depends() {
if [ -z "${_pkgdepname}" ]; then
_pkgdepname="$($XBPS_UHELPER_CMD getpkgname ${_depname} 2>/dev/null)"
fi
if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
fi
if [ -z "${_pkgdepname}" ]; then
_pkgdep="${_depname}>=0"
else
@ -48,6 +69,17 @@ setup_pkg_depends() {
if [ -z "${_pkgdepname}" ]; then
_pkgdepname="$($XBPS_UHELPER_CMD getpkgname ${_depname} 2>/dev/null)"
fi
if [ -s ${XBPS_DISTDIR}/etc/virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
elif [ -s ${XBPS_DISTDIR}/etc/defaults.virtual ]; then
_replacement=$(egrep "^${_pkgdepname:-${_depname}}[[:blank:]]" ${XBPS_DISTDIR}/etc/defaults.virtual|cut -d ' ' -f2)
if [ -n "${_replacement}" ]; then
_depname="${_depname/${_pkgdepname:-${_depname}}/${_replacement}}"
fi
fi
if [ -z "${_pkgdepname}" ]; then
_pkgdep="${_depname}>=0"
else

22
etc/defaults.virtual Normal file
View file

@ -0,0 +1,22 @@
# --*-- shell --*--
#
# etc/defaults.virtual
# default configuration of etc/virtual
#
# DO NOT EDIT THIS FILE DIRECTLY; IT MAY BE REPLACED DURING UPDATES,
# EDIT etc/virtual INSTEAD.
#
# This file specifies a mapping between virtual packages and real packages
# available in the source packages collection (srcpkgs).
#
# The format uses 2 arguments delimited by a blank: <vpkgname> <realpkgname>
#
# If a source package depends on a virtual package (<vpkgname>) and there's
# a replacement defined in that file, <realpkgname> will be used to resolve
# the dependency instead.
#
# - Please add entries sorted alphabetically on its first argument.
# - Create your own etc/virtual file to override these defaults.
#
libgudev-devel eudev-libgudev-devel
libudev-devel eudev-libudev-devel