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.

155 lines
4.0 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 - 2003 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. if [ -z "$pkg_djb_hierarchy" ]; then
  28. abort "djb-config: must specify hierarchy /package/\$hierarchy."
  29. fi
  30. sysconfdir="$sysconfdir/$pkg"
  31. srcdir="$pkg_djb_hierarchy/$pkg-$ver"
  32. if [ "$createdocs" != "0" -a "$ROCKCFG_CREATE_DOCS" == "1" ]; then
  33. createdocs=0
  34. hook_add postdoc 2 'pkg_djb_installdoc $pkg_djb_hierarchy'
  35. fi
  36. # custmain
  37. #
  38. custmain="pkg_djb_main"
  39. pkg_djb_main() {
  40. hook_eval premake
  41. ./package/compile
  42. hook_eval inmake
  43. pkg_djb_installpackage $pkg_djb_hierarchy $pkg_djb_altdir
  44. hook_eval postmake
  45. }
  46. # why to use this safe stuff?
  47. # because we can be updating... sure?
  48. # to honor daemontools behavior :-)
  49. #
  50. pkg_djb_safecopy() {
  51. echo "'${1#root}/$3' -> '${2#root}/$3'"
  52. rm -f $2/$3'{new}'
  53. cp -p $1/$3 $2/$3'{new}'
  54. mv -f $2/$3'{new}' $2/$3
  55. }
  56. pkg_djb_safelink() {
  57. echo "create symbolic link '${1#root}/$3' to '${2#root}/$3'"
  58. rm -f $2/$3'{new}'
  59. ln -s $1/$3 $2/$3'{new}'
  60. mv -f $2/$3'{new}' $2/$3
  61. }
  62. # installs the package in DJB way if requested
  63. #
  64. pkg_djb_installpackage() {
  65. # requires ./package/commands
  66. # and files in ./command
  67. local x y
  68. local package=$1
  69. local altdir=$2
  70. if [ "$pkg_djb_packagedir" ]; then
  71. echo 'Copying commands to package directory...'
  72. mkdir -p $pkg_djb_packagedir/$package/$pkg-$ver/command
  73. for x in `cat ./package/commands`; do
  74. pkg_djb_safecopy ./command \
  75. $pkg_djb_packagedir/$package/$pkg-$ver/command $x
  76. done
  77. echo "Creating symlink $pkg -> $pkg-$ver..."
  78. rm -f $pkg_djb_packagedir/$package/$pkg
  79. ln -sv $pkg-$ver $pkg_djb_packagedir/$package/$pkg
  80. fi
  81. if [ "$pkg_djb_commanddir" ]; then
  82. echo "Making command links in $pkg_djb_commanddir..."
  83. y=pkg_djb_safelink
  84. else
  85. echo 'Copying commands to $altdir...'
  86. pkg_djb_commanddir=$altdir
  87. y=pkg_djb_safecopy
  88. fi
  89. mkdir -p $pkg_djb_commanddir
  90. for x in `cat package/commands`; do
  91. $y $pkg_djb_packagedir/$package/$pkg-$ver/command \
  92. $pkg_djb_commanddir $x
  93. done
  94. # usr/local is evil :)
  95. #if [ "$pkg_djb_compatdir" ]; then
  96. # echo "Making compatibility links in $pkg_djb_compatdir..."
  97. # mkdir -p $pkg_djb_compatdir
  98. # for i in `cat package/commands`; do
  99. # pkg_djb_safelink $pkg_djb_packagedir/$package/$pkg-$ver/command \
  100. # $pkg_djb_compatdir $i
  101. # done
  102. #fi
  103. }
  104. # installs documentation to package directory or $docdir as requested
  105. #
  106. pkg_djb_installdoc() {
  107. local x package=$1
  108. local docpkg
  109. echo 'Copying documentation....'
  110. if [ "$pkg_djb_packagedir" ]; then
  111. docpkg=$pkg_djb_packagedir/$package/$pkg-$ver/package
  112. docdir=$pkg_djb_packagedir/$package/$pkg-$ver/doc
  113. else
  114. docpkg=$docdir
  115. fi
  116. mkdir -p $docpkg $docdir
  117. # ./package
  118. for x in `ls ./package`; do
  119. case $x in
  120. compile|install*|upgrade)
  121. /bin/true ;;
  122. *) pkg_djb_safecopy ./package $docpkg $x ;;
  123. esac
  124. done
  125. # ./doc
  126. if [ -d doc ]; then
  127. cp -rLv ./doc/* $docdir
  128. fi
  129. # ./man
  130. if [ -d man ]; then
  131. echo "Installing man pages ... "
  132. for x in $( cd man; ls -1 *.[1-9] | sed -e 's,.*\.\([1-9]\),\1,g' | sort -u ); do
  133. gzip -9 ./man/*.$x
  134. cp -vf ./man/*.$x.gz $mandir/man$x/
  135. done
  136. fi
  137. }