spacepaste

  1.  
  2. # Copyright 1999-2015 Gentoo Foundation
  3. # Distributed under the terms of the GNU General Public License v2
  4. # $Id$
  5. # TO DO:
  6. # * ffmpeg support can be disabled in CMakeLists.txt but it does not build then
  7. # $(cmake-utils_useno ffmpeg ZM_NO_FFMPEG)
  8. # * dependencies of unknown status:
  9. # dev-perl/Archive-Zip
  10. # dev-perl/Device-SerialPort
  11. # dev-perl/MIME-Lite
  12. # dev-perl/MIME-tools
  13. # dev-perl/PHP-Serialization
  14. # virtual/perl-Archive-Tar
  15. # virtual/perl-libnet
  16. # virtual/perl-Module-Load
  17. EAPI=5
  18. PERL_EXPORT_PHASE_FUNCTIONS=no
  19. inherit perl-module readme.gentoo eutils base cmake-utils depend.apache multilib flag-o-matic git-r3
  20. MY_PN="ZoneMinder"
  21. DESCRIPTION="ZoneMinder allows you to capture, analyse, record and monitor any cameras attached to your system"
  22. HOMEPAGE="http://www.zoneminder.com/"
  23. EGIT_REPO_URI="https://github.com/ZoneMinder/ZoneMinder.git"
  24. SRC_URI=""
  25. # EGIT_SUBMODULES=(init update)
  26. LICENSE="GPL-2"
  27. KEYWORDS="~amd64"
  28. IUSE="curl gcrypt gnutls +mmap +openssl vlc"
  29. SLOT="0"
  30. REQUIRED_USE="
  31. || ( openssl gnutls )
  32. "
  33. DEPEND="
  34. app-eselect/eselect-php[apache2]
  35. dev-lang/perl:=
  36. dev-lang/php[apache2,cgi,curl,inifile,pdo,mysql,mysqli,sockets]
  37. dev-libs/libpcre
  38. dev-perl/Archive-Zip
  39. dev-perl/Date-Manip
  40. dev-perl/DBD-mysql
  41. dev-perl/DBI
  42. dev-perl/URI-Encode
  43. dev-perl/libwww-perl
  44. sys-auth/polkit
  45. sys-libs/zlib
  46. virtual/ffmpeg
  47. virtual/jpeg
  48. virtual/mysql
  49. virtual/perl-ExtUtils-MakeMaker
  50. virtual/perl-Getopt-Long
  51. virtual/perl-Sys-Syslog
  52. virtual/perl-Time-HiRes
  53. www-servers/apache
  54. curl? ( net-misc/curl )
  55. gcrypt? ( dev-libs/libgcrypt )
  56. gnutls? ( net-libs/gnutls )
  57. mmap? ( dev-perl/Sys-Mmap )
  58. openssl? ( dev-libs/openssl )
  59. vlc? ( media-video/vlc[live] )
  60. "
  61. RDEPEND="${DEPEND}"
  62. # we cannot use need_httpd_cgi here, since we need to setup permissions for the
  63. # webserver in global scope (/etc/zm.conf etc), so we hardcode apache here.
  64. need_apache
  65. # need_php_httpd
  66. #S=${WORKDIR}/${MY_PN}-${PV}
  67. PATCHES=(
  68. "${FILESDIR}/${PN}-1.26.5"-automagic.patch
  69. )
  70. MY_ZM_WEBDIR=/usr/share/zoneminder/www
  71. pkg_setup() {
  72. require_php_with_use mysql sockets apache2
  73. }
  74. #src_unpack() {
  75. #git-2_src_unpack
  76. #cd $EGIT_SOURCEDIR
  77. #git submodule init
  78. #git submodule update
  79. #:
  80. #}
  81. src_configure() {
  82. append-cxxflags -D__STDC_CONSTANT_MACROS
  83. perl_set_version
  84. mycmakeargs=(
  85. -DZM_PERL_SUBPREFIX=${VENDOR_LIB#/usr}
  86. -DZM_TMPDIR=/var/tmp/zm
  87. -DZM_SOCKDIR=/var/run/zm
  88. -DZM_WEB_USER=apache
  89. -DZM_WEB_GROUP=apache
  90. -DZM_WEBDIR=${MY_ZM_WEBDIR}
  91. $(cmake-utils_useno mmap ZM_NO_MMAP)
  92. -DZM_NO_X10=OFF
  93. -DZM_NO_FFMPEG=OFF
  94. $(cmake-utils_useno curl ZM_NO_CURL)
  95. $(cmake-utils_useno vlc ZM_NO_LIBVLC)
  96. $(cmake-utils_useno openssl CMAKE_DISABLE_FIND_PACKAGE_OpenSSL)
  97. $(cmake-utils_use_has gnutls)
  98. $(cmake-utils_use_has gcrypt)
  99. )
  100. cmake-utils_src_configure
  101. }
  102. src_install() {
  103. cmake-utils_src_install
  104. # the log directory
  105. keepdir /var/log/zm
  106. fowners apache:apache /var/log/zm
  107. # now we duplicate the work of zmlinkcontent.sh
  108. dodir /var/lib/zoneminder /var/lib/zoneminder/images /var/lib/zoneminder/events
  109. fperms -R 0775 /var/lib/zoneminder
  110. fowners -R apache:apache /var/lib/zoneminder
  111. dosym /var/lib/zoneminder/images ${MY_ZM_WEBDIR}/images
  112. dosym /var/lib/zoneminder/events ${MY_ZM_WEBDIR}/events
  113. dosym /var/lib/zoneminder/api_tmp ${MY_ZM_WEBDIR}/api/app/tmp
  114. # bug 523058
  115. keepdir ${MY_ZM_WEBDIR}/temp
  116. fowners -R apache:apache ${MY_ZM_WEBDIR}/temp
  117. # the configuration file
  118. fperms 0640 /etc/zm.conf
  119. fowners root:apache /etc/zm.conf
  120. # init scripts etc
  121. newinitd "${FILESDIR}"/init.d zoneminder
  122. newconfd "${FILESDIR}"/conf.d zoneminder
  123. cp "${FILESDIR}"/10_zoneminder.conf "${T}"/10_zoneminder.conf
  124. sed -i "${T}"/10_zoneminder.conf -e "s:%ZM_WEBDIR%:${MY_ZM_WEBDIR}:g"
  125. dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md TODO "${T}"/10_zoneminder.conf
  126. perl_delete_packlist
  127. readme.gentoo_src_install
  128. }
  129. pkg_postinst() {
  130. local myold=${REPLACING_VERSIONS}
  131. [ "${myold}" = ${PV} ] || elog "You have upgraded zoneminder and may have to upgrade your database now."
  132. }
  133.