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

  1. # --- ROCK-COPYRIGHT-NOTE-BEGIN ---
  2. #
  3. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  4. # Please add additional copyright information _after_ the line containing
  5. # the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
  6. # the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
  7. #
  8. # ROCK Linux: rock-src/package/mnemoc/runit/djb-config
  9. # ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf
  10. #
  11. # This program is free software; you can redistribute it and/or modify
  12. # it under the terms of the GNU General Public License as published by
  13. # the Free Software Foundation; either version 2 of the License, or
  14. # (at your option) any later version. A copy of the GNU General Public
  15. # License can be found at Documentation/COPYING.
  16. #
  17. # Many people helped and are helping developing ROCK Linux. Please
  18. # have a look at http://www.rocklinux.org/ and the Documentation/TEAM
  19. # file for details.
  20. #
  21. # --- ROCK-COPYRIGHT-NOTE-END ---
  22. # e.g. $1: admin mail net ...
  23. # $2: $sbindir $bindir
  24. #
  25. pkg_djb_hierarchy=$1
  26. pkg_djb_altdir=${2:-$bindir}
  27. # $logdir
  28. if [ "${localstatedir%$pkg}" != "$localstatedir" ]; then
  29. logdir=$localstatedir/log
  30. else
  31. logdir=$localstatedir/log/$pkg
  32. fi
  33. # $sysconfdir
  34. if [ "${sysconfdir%$pkg}" == "$sysconfdir" ]; then
  35. sysconfdir=$root/etc/$pkg
  36. fi
  37. if [ -z "$pkg_djb_hierarchy" ]; then
  38. abort "djb-config: must specify hierarchy /package/\$hierarchy."
  39. fi
  40. srcdir="$pkg_djb_hierarchy/$pkg-$ver"
  41. if [ "$createdocs" != "0" -a "$ROCKCFG_CREATE_DOCS" == "1" ]; then
  42. createdocs=0
  43. hook_add postdoc 2 'pkg_djb_installdoc $pkg_djb_hierarchy'
  44. fi
  45. # custmain
  46. #
  47. custmain="pkg_djb_main"
  48. pkg_djb_main() {
  49. hook_eval premake
  50. ./package/compile
  51. hook_eval inmake
  52. pkg_djb_installpackage $pkg_djb_hierarchy $pkg_djb_altdir
  53. hook_eval postmake
  54. }
  55. # why to use this safe stuff?
  56. # because we can be updating... sure?
  57. # to honor daemontools behavior :-)
  58. #
  59. pkg_djb_safecopy() {
  60. echo "'${1#root}/$3' -> '${2#root}/$3'"
  61. rm -f $2/$3'{new}'
  62. cp -p $1/$3 $2/$3'{new}'
  63. mv -f $2/$3'{new}' $2/$3
  64. }
  65. pkg_djb_safelink() {
  66. echo "create symbolic link '${1#root}/$3' to '${2#root}/$3'"
  67. rm -f $2/$3'{new}'
  68. ln -s $1/$3 $2/$3'{new}'
  69. mv -f $2/$3'{new}' $2/$3
  70. }
  71. pkg_djb_substitute() {
  72. sed -i \
  73. -e "s,D_commanddir,$pkg_djb_commanddir,g" \
  74. -e "s,D_servicedir,$pkg_djb_servicedir,g" \
  75. -e "s,D_logdir,$logdir,g" \
  76. $1
  77. }
  78. # installs the package in DJB way if requested
  79. #
  80. pkg_djb_installpackage() {
  81. # requires ./package/commands
  82. # and files in ./command
  83. local x y
  84. local package=$1
  85. local altdir=$2
  86. if [ "$pkg_djb_packagedir" ]; then
  87. echo 'Copying commands to package directory...'
  88. mkdir -p $pkg_djb_packagedir/$package/$pkg-$ver/command
  89. for x in `cat ./package/commands`; do
  90. pkg_djb_safecopy ./command \
  91. $pkg_djb_packagedir/$package/$pkg-$ver/command $x
  92. done
  93. echo "Creating symlink $pkg -> $pkg-$ver..."
  94. rm -f $pkg_djb_packagedir/$package/$pkg
  95. ln -sv $pkg-$ver $pkg_djb_packagedir/$package/$pkg
  96. fi
  97. if [ "$pkg_djb_commanddir" ]; then
  98. echo "Making command links in $pkg_djb_commanddir..."
  99. y=pkg_djb_safelink
  100. else
  101. echo 'Copying commands to $altdir...'
  102. pkg_djb_commanddir=$altdir
  103. y=pkg_djb_safecopy
  104. fi
  105. mkdir -p $pkg_djb_commanddir
  106. for x in `cat package/commands`; do
  107. $y $pkg_djb_packagedir/$package/$pkg-$ver/command \
  108. $pkg_djb_commanddir $x
  109. done
  110. # usr/local is evil :)
  111. #if [ "$pkg_djb_compatdir" ]; then
  112. # echo "Making compatibility links in $pkg_djb_compatdir..."
  113. # mkdir -p $pkg_djb_compatdir
  114. # for i in `cat package/commands`; do
  115. # pkg_djb_safelink $pkg_djb_packagedir/$package/$pkg-$ver/command \
  116. # $pkg_djb_compatdir $i
  117. # done
  118. #fi
  119. }
  120. # installs documentation to package directory or $docdir as requested
  121. #
  122. pkg_djb_installdoc() {
  123. local x package=$1
  124. local docpkg
  125. echo 'Copying documentation....'
  126. if [ "$pkg_djb_packagedir" ]; then
  127. docpkg=$pkg_djb_packagedir/$package/$pkg-$ver/package
  128. docdir=$pkg_djb_packagedir/$package/$pkg-$ver/doc
  129. else
  130. docpkg=$docdir
  131. fi
  132. mkdir -p $docpkg $docdir
  133. # ./package
  134. for x in `ls ./package`; do
  135. case $x in
  136. compile|install*|upgrade)
  137. /bin/true ;;
  138. *) pkg_djb_safecopy ./package $docpkg $x ;;
  139. esac
  140. done
  141. # ./doc
  142. if [ -d doc ]; then
  143. cp -rLv ./doc/* $docdir
  144. fi
  145. # ./man
  146. if [ -d man ]; then
  147. echo "Installing man pages ... "
  148. for x in $( cd man; ls -1 *.[1-9] | sed -e 's,.*\.\([1-9]\),\1,g' | sort -u ); do
  149. gzip -9 ./man/*.$x
  150. cp -vf ./man/*.$x.gz $mandir/man$x/
  151. done
  152. fi
  153. }