kolab.spec 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. ##
  2. ## kolab.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # FIXME, issues, suggestions, hints, porting
  26. # based on work from Erfrakon,
  27. # Martin Konold <martin.konold@erfrakon.de>
  28. # Tassilo Erlewein <tassilo.erlewein@erfrakon.de>
  29. # is with_mod_php_pear really needed in the apache module
  30. # kolab should provide a tarball
  31. # PreReqs need to be checked
  32. # rename @@@kolab_prefix@@@ to ...
  33. # kolab_bootstrap should either ensure dib is empty or should check if dib is already set up
  34. # remove "unlink" fsl stuff from kolab_bootstrap
  35. # replace "killall ... slapd" by "@l_prefix@/etc/rc openldap stop", make failing test connection to be sure it is down
  36. # rework service stop/start in kolab_bootstrap to use rc
  37. # revamp template config stuff to modify openpkg config by patching, search'n'replace, add/mod/del openpkg config etc.
  38. # remove -f from hostname call in kolab and kolab_bootstrap
  39. # correct libexec/slapd path
  40. # verify semantic behind "chown root.root" in kolab
  41. # add handling of rc.conf for openldap_url and sasl_authmech
  42. # package version
  43. %define V_major 1.0
  44. %define V_minor 14
  45. # package information
  46. Name: kolab
  47. Summary: Kolab Groupware Server
  48. URL: http://www.kolab.org/
  49. Vendor: Erfrakon
  50. Packager: The OpenPKG Project
  51. Distribution: OpenPKG [EVAL]
  52. Group: KDE
  53. License: GPL
  54. Version: %{V_major}.%{V_minor}
  55. Release: 20031120
  56. # list of sources
  57. Source0: http://www.erfrakon.de/projects/kolab/download/kolab-server-1.0/src/kolab-%{V_major}-%{version}.src.rpm
  58. Source1: rc.kolab
  59. # build information
  60. Prefix: %{l_prefix}
  61. BuildRoot: %{l_buildroot}
  62. BuildPreReq: OpenPKG, openpkg >= 20030103
  63. PreReq: OpenPKG, openpkg >= 20030103, openldap, postfix, imapd, sasl, apache, proftpd, perl, perl-ldap
  64. AutoReq: no
  65. AutoReqProv: no
  66. %description
  67. Kolab is the KDE Groupware Server that provides full groupware
  68. features to either KDE kolab clients or Microsoft Outlook[tm]
  69. clients with the Bynari Insight Connector http://www.bynari.net. In
  70. addition it is a robust and flexible general IMAP mail server with
  71. LDAP addressbook and nice web GUI.
  72. %prep
  73. %setup -q -c -T
  74. echo %{SOURCE0}; pwd
  75. rpm2cpio <%{SOURCE0} | cpio -iv kolab-%{V_major}.tar.gz
  76. %{l_gzip} -c -d kolab-%{V_major}.tar.gz | %{l_tar} xf -
  77. %{l_shtool} subst \
  78. -e 's;@@@kolab_prefix@@@;@l_prefix@;g' \
  79. -e 's;@@@l_\([mnrs]\)usr@@@;@l_\1usr@;g' \
  80. -e 's;@@@l_\([mnrs]\)grp@@@;@l_\1grp@;g' \
  81. -e 's;@@@l_\([mnrs]\)uid@@@;@l_\1uid@;g' \
  82. -e 's;@@@l_\([mnrs]\)gid@@@;@l_\1gid@;g' \
  83. kolab_sslcert.sh kolab kolab_bootstrap *.template
  84. %{l_shtool} subst \
  85. -e 's;libexec/slapd;libexec/openldap/slapd;' \
  86. -e 's;etc/rc.d/rc.kolab start;etc/rc all start;' \
  87. kolab_bootstrap
  88. %{l_shtool} subst \
  89. -e 's;hostname -f;hostname;' \
  90. kolab kolab_bootstrap
  91. %{l_shtool} subst \
  92. -e 's;chown root.root;chown @l_susr@:@l_sgrp@;' \
  93. kolab
  94. %{l_shtool} subst \
  95. -e 's:print " running:my $cfg; open(FH, "<@l_prefix@/etc/rc.conf") || die; $cfg .= $_ while (<FH>); close(FH); $cfg =~ s/\\n((openldap_url|sasl_authmech)\\S*=[^\\n]*)/#\\1\\n/sg; $cfg .= "openldap_url=\\"\\"\\nsasl_authmech=\\"ldap\\"\\n"; open(FH, ">@l_prefix@/etc/rc.conf") || die; print FH $cfg; close(FH); undef $cfg; print " running:' \
  96. kolab_bootstrap
  97. %build
  98. %install
  99. rm -rf $RPM_BUILD_ROOT
  100. %{l_shtool} mkdir -p -m 755 \
  101. $RPM_BUILD_ROOT%{l_prefix}/etc/kolab \
  102. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/log \
  103. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/cgi-bin \
  104. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/icons
  105. %{l_shtool} mkdir -p -m 777 \
  106. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/admin \
  107. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/freebusy \
  108. $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/locks
  109. %{l_shtool} install -c -m 744 %{l_value -s -a} \
  110. kolab_sslcert.sh kolab kolab_bootstrap workaround.sh \
  111. $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/
  112. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  113. kolab.conf kolab.schema *.template \
  114. $RPM_BUILD_ROOT%{l_prefix}/etc/kolab/
  115. cp -r admin/* $RPM_BUILD_ROOT%{l_prefix}/var/kolab/www/admin/
  116. # install run-command script
  117. %{l_shtool} mkdir -f -p -m 755 \
  118. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  119. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  120. %{SOURCE rc.kolab} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  121. # generate file list
  122. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \
  123. '%config %{l_prefix}/etc/kolab/*.pem' \
  124. '%config %{l_prefix}/etc/kolab/*.schema' \
  125. '%config %{l_prefix}/etc/kolab/kolab.conf'
  126. %files -f files
  127. %clean
  128. rm -rf $RPM_BUILD_ROOT
  129. %post
  130. echo "please run '$RPM_INSTALL_PREFIX/etc/kolab/kolab_bootstrap -b'"