Introduce the concept of "meta-templates".
meta-templates are just packages that do not install or remove stuff but only have dependencies. For testing this, I added the xorg-fonts-0.1 template; it just depends in some of all X.org fonts packages. --HG-- extra : convert_revision : c19e937dfd34eb8f0a0cedd4cba1297be765a253
This commit is contained in:
parent
1f7ea3a3ca
commit
27870b10e8
3 changed files with 58 additions and 4 deletions
BIN
dependencies/build-depends.db
vendored
BIN
dependencies/build-depends.db
vendored
Binary file not shown.
53
pkgfs.sh
53
pkgfs.sh
|
@ -330,6 +330,10 @@ check_tmpl_vars()
|
||||||
local dfile=""
|
local dfile=""
|
||||||
|
|
||||||
[ -z "$pkg" ] && return 1
|
[ -z "$pkg" ] && return 1
|
||||||
|
#
|
||||||
|
# There's nothing of interest if we are a meta template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
|
|
||||||
REQ_VARS="pkgname version extract_sufx url build_style"
|
REQ_VARS="pkgname version extract_sufx url build_style"
|
||||||
|
|
||||||
|
@ -416,6 +420,10 @@ fetch_tmpl_sources()
|
||||||
local file2=""
|
local file2=""
|
||||||
|
|
||||||
[ -z "$pkgname" ] && return 1
|
[ -z "$pkgname" ] && return 1
|
||||||
|
#
|
||||||
|
# There's nothing of interest if we are a meta template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
|
|
||||||
if [ -z "$distfiles" ]; then
|
if [ -z "$distfiles" ]; then
|
||||||
file="$pkgname-$version"
|
file="$pkgname-$version"
|
||||||
|
@ -464,6 +472,11 @@ extract_tmpl_sources()
|
||||||
{
|
{
|
||||||
[ -z "$pkgname" ] && return 1
|
[ -z "$pkgname" ] && return 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# There's nothing of interest if we are a meta template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
|
|
||||||
echo "==> Extracting \`$pkgname-$version' into $PKGFS_BUILDDIR."
|
echo "==> Extracting \`$pkgname-$version' into $PKGFS_BUILDDIR."
|
||||||
|
|
||||||
$extract_cmd
|
$extract_cmd
|
||||||
|
@ -506,6 +519,10 @@ build_tmpl_sources()
|
||||||
local pkg="$pkgname-$version"
|
local pkg="$pkgname-$version"
|
||||||
|
|
||||||
[ -z "$pkgname" -o -z "$version" ] && return 1
|
[ -z "$pkgname" -o -z "$version" ] && return 1
|
||||||
|
#
|
||||||
|
# There's nothing of interest if we are a meta template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
|
|
||||||
if [ -n "$distfiles" -a -z "$wrksrc" ]; then
|
if [ -n "$distfiles" -a -z "$wrksrc" ]; then
|
||||||
wrksrc=$PKGFS_BUILDDIR/$distfiles
|
wrksrc=$PKGFS_BUILDDIR/$distfiles
|
||||||
|
@ -722,6 +739,10 @@ stow_tmpl()
|
||||||
pkg=$PKGFS_TEMPLATESDIR/$pkg.tmpl
|
pkg=$PKGFS_TEMPLATESDIR/$pkg.tmpl
|
||||||
run_file $pkg
|
run_file $pkg
|
||||||
pkg=$pkgname-$version
|
pkg=$pkgname-$version
|
||||||
|
#
|
||||||
|
# You cannot stow a meta-template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -r "$PKGFS_DESTDIR/$pkg/$infodir_pkg" ]; then
|
if [ -r "$PKGFS_DESTDIR/$pkg/$infodir_pkg" ]; then
|
||||||
|
@ -787,6 +808,11 @@ unstow_tmpl()
|
||||||
|
|
||||||
run_file $PKGFS_TEMPLATESDIR/$pkg.tmpl
|
run_file $PKGFS_TEMPLATESDIR/$pkg.tmpl
|
||||||
|
|
||||||
|
#
|
||||||
|
# You cannot unstow a meta-template.
|
||||||
|
#
|
||||||
|
[ "$build_style" = "meta-template" ] && return 0
|
||||||
|
|
||||||
if [ -n "$ignore_files" ]; then
|
if [ -n "$ignore_files" ]; then
|
||||||
xstow_ignore_files="$xstow_ignore_files $ignore_files"
|
xstow_ignore_files="$xstow_ignore_files $ignore_files"
|
||||||
fi
|
fi
|
||||||
|
@ -964,16 +990,16 @@ installed_tmpl_handler()
|
||||||
|
|
||||||
[ -z "$action" -o -z "$pkg" -o -z "$version" ] && return 1
|
[ -z "$action" -o -z "$pkg" -o -z "$version" ] && return 1
|
||||||
if [ "$action" = "register" ]; then
|
if [ "$action" = "register" ]; then
|
||||||
$db_cmd -w btree $PKGFS_REGPKG_DB $pkg $version
|
$db_cmd -w btree $PKGFS_REGPKG_DB $pkg $version 2>&1 >/dev/null
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo -n "*** ERROR: couldn't register stowned \`$pkg'"
|
echo -n "*** ERROR: couldn't register \`$pkg'"
|
||||||
echo " in db file ***"
|
echo " in db file ***"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
elif [ "$action" = "unregister" ]; then
|
elif [ "$action" = "unregister" ]; then
|
||||||
$db_cmd -d btree $PKGFS_REGPKG_DB $pkg
|
$db_cmd -d btree $PKGFS_REGPKG_DB $pkg 2>&1 >/dev/null
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo -n "*** ERROR: \`$pkg' stowned not registered "
|
echo -n "*** ERROR: \`$pkg' not registered "
|
||||||
echo "in db file? ***"
|
echo "in db file? ***"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -1100,6 +1126,15 @@ install_tmpl()
|
||||||
extract_tmpl_sources
|
extract_tmpl_sources
|
||||||
build_tmpl_sources
|
build_tmpl_sources
|
||||||
|
|
||||||
|
#
|
||||||
|
# Just announce that meta-template is installed and exit.
|
||||||
|
#
|
||||||
|
if [ "$build_style" = "meta-template" ]; then
|
||||||
|
installed_tmpl_handler register $pkgname $version
|
||||||
|
echo "==> Installed meta-template \`$pkg'."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Do not stow the pkg if requested.
|
# Do not stow the pkg if requested.
|
||||||
#
|
#
|
||||||
|
@ -1143,6 +1178,16 @@ remove_tmpl()
|
||||||
|
|
||||||
run_file $PKGFS_TEMPLATESDIR/$pkg.tmpl
|
run_file $PKGFS_TEMPLATESDIR/$pkg.tmpl
|
||||||
|
|
||||||
|
#
|
||||||
|
# If it's a meta-template, just unregister it from the db.
|
||||||
|
#
|
||||||
|
if [ "$build_style" = "meta-template" ]; then
|
||||||
|
installed_tmpl_handler unregister $pkgname $version
|
||||||
|
[ "$?" -eq 0 ] && \
|
||||||
|
echo "=> Removed meta-template \`$pkg'."
|
||||||
|
return $?
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -d "$PKGFS_DESTDIR/$pkg-$version" ]; then
|
if [ ! -d "$PKGFS_DESTDIR/$pkg-$version" ]; then
|
||||||
echo "*** ERROR: cannot find package on $PKGFS_DESTDIR ***"
|
echo "*** ERROR: cannot find package on $PKGFS_DESTDIR ***"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
9
templates/xorg-fonts.tmpl
Executable file
9
templates/xorg-fonts.tmpl
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
# Template file for 'xorg-fonts'
|
||||||
|
pkgname=xorg-fonts
|
||||||
|
version=0.1
|
||||||
|
build_style=meta-template
|
||||||
|
short_desc="Some fonts from the X.org project"
|
||||||
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
|
long_desc="
|
||||||
|
This package will install almost all required font packages from
|
||||||
|
the X.org project, required to visualize them."
|
Loading…
Add table
Add a link
Reference in a new issue