mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

174 lines
4.4 KiB

# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/package/mnemoc/runit/djb-config
# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
# e.g. $1: admin mail net ...
# $2: $sbindir $bindir
#
pkg_djb_hierarchy=$1
pkg_djb_altdir=${2:-$bindir}
# $logdir
if [ "${localstatedir%$pkg}" != "$localstatedir" ]; then
logdir=$localstatedir/log
else
logdir=$localstatedir/log/$pkg
fi
# $sysconfdir
if [ "${sysconfdir%$pkg}" == "$sysconfdir" ]; then
sysconfdir=$root/etc/$pkg
fi
if [ -z "$pkg_djb_hierarchy" ]; then
abort "djb-config: must specify hierarchy /package/\$hierarchy."
fi
srcdir="$pkg_djb_hierarchy/$pkg-$ver"
if [ "$createdocs" != "0" -a "$ROCKCFG_CREATE_DOCS" == "1" ]; then
createdocs=0
hook_add postdoc 2 'pkg_djb_installdoc $pkg_djb_hierarchy'
fi
# custmain
#
custmain="pkg_djb_main"
pkg_djb_main() {
hook_eval premake
./package/compile
hook_eval inmake
pkg_djb_installpackage $pkg_djb_hierarchy $pkg_djb_altdir
hook_eval postmake
}
# why to use this safe stuff?
# because we can be updating... sure?
# to honor daemontools behavior :-)
#
pkg_djb_safecopy() {
echo "'${1#root}/$3' -> '${2#root}/$3'"
rm -f $2/$3'{new}'
cp -p $1/$3 $2/$3'{new}'
mv -f $2/$3'{new}' $2/$3
}
pkg_djb_safelink() {
echo "create symbolic link '${1#root}/$3' to '${2#root}/$3'"
rm -f $2/$3'{new}'
ln -s $1/$3 $2/$3'{new}'
mv -f $2/$3'{new}' $2/$3
}
pkg_djb_substitute() {
sed -i \
-e "s,D_commanddir,$pkg_djb_commanddir,g" \
-e "s,D_servicedir,$pkg_djb_servicedir,g" \
-e "s,D_logdir,$logdir,g" \
$1
}
# installs the package in DJB way if requested
#
pkg_djb_installpackage() {
# requires ./package/commands
# and files in ./command
local x y
local package=$1
local altdir=$2
if [ "$pkg_djb_packagedir" ]; then
echo 'Copying commands to package directory...'
mkdir -p $pkg_djb_packagedir/$package/$pkg-$ver/command
for x in `cat ./package/commands`; do
pkg_djb_safecopy ./command \
$pkg_djb_packagedir/$package/$pkg-$ver/command $x
done
echo "Creating symlink $pkg -> $pkg-$ver..."
rm -f $pkg_djb_packagedir/$package/$pkg
ln -sv $pkg-$ver $pkg_djb_packagedir/$package/$pkg
fi
if [ "$pkg_djb_commanddir" ]; then
echo "Making command links in $pkg_djb_commanddir..."
y=pkg_djb_safelink
else
echo 'Copying commands to $altdir...'
pkg_djb_commanddir=$altdir
y=pkg_djb_safecopy
fi
mkdir -p $pkg_djb_commanddir
for x in `cat package/commands`; do
$y $pkg_djb_packagedir/$package/$pkg-$ver/command \
$pkg_djb_commanddir $x
done
# usr/local is evil :)
#if [ "$pkg_djb_compatdir" ]; then
# echo "Making compatibility links in $pkg_djb_compatdir..."
# mkdir -p $pkg_djb_compatdir
# for i in `cat package/commands`; do
# pkg_djb_safelink $pkg_djb_packagedir/$package/$pkg-$ver/command \
# $pkg_djb_compatdir $i
# done
#fi
}
# installs documentation to package directory or $docdir as requested
#
pkg_djb_installdoc() {
local x package=$1
local docpkg
echo 'Copying documentation....'
if [ "$pkg_djb_packagedir" ]; then
docpkg=$pkg_djb_packagedir/$package/$pkg-$ver/package
docdir=$pkg_djb_packagedir/$package/$pkg-$ver/doc
else
docpkg=$docdir
fi
mkdir -p $docpkg $docdir
# ./package
for x in `ls ./package`; do
case $x in
compile|install*|upgrade)
/bin/true ;;
*) pkg_djb_safecopy ./package $docpkg $x ;;
esac
done
# ./doc
if [ -d doc ]; then
cp -rLv ./doc/* $docdir
fi
# ./man
if [ -d man ]; then
echo "Installing man pages ... "
for x in $( cd man; ls -1 *.[1-9] | sed -e 's,.*\.\([1-9]\),\1,g' | sort -u ); do
gzip -9 ./man/*.$x
cp -vf ./man/*.$x.gz $mandir/man$x/
done
fi
}