OpenSDE Packages Database (without history before r20070)
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.

157 lines
3.7 KiB

  1. #!/bin/sh
  2. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  3. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  4. #
  5. # Filename: package/.../runit/djb-config
  6. # Copyright (C) 2008 The OpenSDE Project
  7. # Copyright (C) 2004 - 2006 The T2 SDE Project
  8. # Copyright (C) 1998 - 2003 Clifford Wolf
  9. #
  10. # More information can be found in the files COPYING and README.
  11. #
  12. # This program is free software; you can redistribute it and/or modify
  13. # it under the terms of the GNU General Public License as published by
  14. # the Free Software Foundation; version 2 of the License. A copy of the
  15. # GNU General Public License can be found in the file COPYING.
  16. # --- SDE-COPYRIGHT-NOTE-END ---
  17. # e.g. $1: admin mail net ...
  18. # $2: $sbindir $bindir
  19. #
  20. pkg_djb_hierarchy=$1
  21. #
  22. # prepare root links for DJB filesystem hierarchy inside chrooted env.
  23. #
  24. if [ "$SDECFG_PKG_DJB_LAYOUT" == "1" ]; then
  25. for x in package command service; do
  26. eval "pkg_djb_${x}dir='$root/$x'"
  27. var_append flistroot ' ' $x
  28. done
  29. else
  30. pkg_djb_packagedir=
  31. pkg_djb_commanddir="$root${2:-$bindir}"
  32. pkg_djb_servicedir="$root/var/service"
  33. fi
  34. # create them if it doesn't exist
  35. for x in package command service; do
  36. y=$( eval echo \$pkg_djb_${x}dir )
  37. if [ -n "$y" ]; then
  38. mkdir -p "$y"
  39. # TODO: research where 1755 comes from
  40. [ "$x" = command ] || chmod 1755 "$y"
  41. fi
  42. done
  43. # $logdir
  44. if [ "${localstatedir%$pkg}" != "$localstatedir" ]; then
  45. logdir=$localstatedir/log
  46. else
  47. logdir=$localstatedir/log/$pkg
  48. fi
  49. # $sysconfdir
  50. if [ "${sysconfdir%$pkg}" == "$sysconfdir" ]; then
  51. sysconfdir=$sysconfdir/$pkg
  52. fi
  53. if [ -z "$pkg_djb_hierarchy" ]; then
  54. abort "djb-config: must specify hierarchy /package/\$hierarchy."
  55. fi
  56. srcdir="$pkg_djb_hierarchy/$pkg-$ver"
  57. if [ "$createdocs" != "0" ]; then
  58. # let us handle the installation of the docs
  59. createdocs=0
  60. hook_add postdoc 2 'pkg_djb_installdoc $pkg_djb_hierarchy'
  61. fi
  62. # custmain
  63. #
  64. custmain="pkg_djb_main"
  65. pkg_djb_main() {
  66. hook_eval premake
  67. ./package/compile
  68. hook_eval inmake
  69. pkg_djb_installpackage $pkg_djb_hierarchy
  70. hook_eval postmake
  71. }
  72. pkg_djb_substitute() {
  73. sed \
  74. -e "s,D_commanddir,${pkg_djb_commanddir#$root},g" \
  75. -e "s,D_servicedir,${pkg_djb_servicedir#$root},g" \
  76. -e "s,D_logdir,$logdir,g" \
  77. $1
  78. }
  79. # installs the package in DJB way if requested
  80. #
  81. pkg_djb_installpackage() {
  82. # requires ./package/commands
  83. # and files in ./command
  84. local x= y= cmddir=
  85. local package=$1
  86. if [ "$pkg_djb_packagedir" ]; then
  87. x="$pkg_djb_packagedir/$package"
  88. echo "Creating ${x#$root}/{$pkg,$pkg-$ver}..."
  89. mkdir -p "$x/$pkg-$ver/command"
  90. ln -svnf "$pkg-$ver" "$x/$pkg"
  91. cmddir="$x/$pkg-$ver/command"
  92. else
  93. cmddir="$pkg_djb_commanddir"
  94. fi
  95. echo "Installing commands at ${cmddir#$root}..."
  96. for x in `cat ./package/commands`; do
  97. cp -vfp "./command/$x" "$cmddir/"
  98. [ -z "$pkg_djb_packagedir" ] || ln -snvf "${cmddir#$root}/$x" "$pkg_djb_commanddir/$x"
  99. done
  100. }
  101. # installs documentation to package directory or $docdir as requested
  102. #
  103. pkg_djb_installdoc() {
  104. local x package=$1
  105. local docpkg
  106. echo 'Copying documentation....'
  107. if [ "$pkg_djb_packagedir" ]; then
  108. # $pkg_djb_* includes $root, $docdir doesn't.
  109. docpkg=${pkg_djb_packagedir#$root}/$package/$pkg-$ver/package
  110. docdir=${pkg_djb_packagedir#$root}/$package/$pkg-$ver/doc
  111. mkdir -p $root$docpkg $root$docdir
  112. else
  113. docpkg=$docdir
  114. fi
  115. # ./package
  116. for x in `ls ./package`; do
  117. case $x in
  118. compile|install*|upgrade)
  119. /bin/true ;;
  120. *) cp -vf ./package/$x "$root$docpkg" ;;
  121. esac
  122. done
  123. # ./doc
  124. if [ -d doc ]; then
  125. cp -rLv ./doc/* "$root$docdir"
  126. fi
  127. # ./man
  128. if [ -d man ]; then
  129. echo "Installing man pages ... "
  130. for x in $( cd man; ls -1 *.[1-9] | sed -e 's,.*\.\([1-9]\),\1,g' | sort -u ); do
  131. gzip -9 ./man/*.$x
  132. cp -vf ./man/*.$x.gz $root/$mandir/man$x/
  133. done
  134. fi
  135. }