summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Huettel <dilfridge@gentoo.org>2016-12-01 21:19:00 +0100
committerAndreas K. Huettel <dilfridge@gentoo.org>2016-12-01 21:19:00 +0100
commit4d58e7c6d202ccba9c1f1a9a4236f0725acd1e2d (patch)
tree19313c5bc00c18e99876ff9ae54f1c6c72d8057d
parentwww-misc/zoneminder: Add improvements by Aaron Burnett, bug 546842 (diff)
downloaddilfridge-4d58e7c6d202ccba9c1f1a9a4236f0725acd1e2d.tar.gz
dilfridge-4d58e7c6d202ccba9c1f1a9a4236f0725acd1e2d.tar.bz2
dilfridge-4d58e7c6d202ccba9c1f1a9a4236f0725acd1e2d.zip
www-misc/zoneminder: Add improvements by Russell Knighton from bug 564278
Package-Manager: portage-2.3.2
-rw-r--r--www-misc/zoneminder/files/zoneminder-1.28.1-mysql_include_path.patch20
-rw-r--r--www-misc/zoneminder/zoneminder-1.28.1-r2.ebuild153
2 files changed, 173 insertions, 0 deletions
diff --git a/www-misc/zoneminder/files/zoneminder-1.28.1-mysql_include_path.patch b/www-misc/zoneminder/files/zoneminder-1.28.1-mysql_include_path.patch
new file mode 100644
index 0000000..a3a8dcd
--- /dev/null
+++ b/www-misc/zoneminder/files/zoneminder-1.28.1-mysql_include_path.patch
@@ -0,0 +1,20 @@
+--- CMakeLists.txt.orig 2015-10-27 17:28:48.059203421 +0000
++++ CMakeLists.txt 2015-10-27 17:30:11.951226715 +0000
+@@ -255,7 +255,16 @@
+ if(MYSQLCLIENT_LIBRARIES)
+ set(HAVE_LIBMYSQLCLIENT 1)
+ list(APPEND ZM_BIN_LIBS "${MYSQLCLIENT_LIBRARIES}")
+- find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql.h)
++ find_file(MYSQL_CONFIG mysql_config)
++ if(MYSQL_CONFIG)
++ execute_process(COMMAND ${MYSQL_CONFIG}
++ --variable=pkgincludedir OUTPUT_VARIABLE
++ MYSQLCLIENT_INCLUDE_DIR)
++ STRING(REGEX REPLACE "\n" "" MYSQLCLIENT_INCLUDE_DIR
++ ${MYSQLCLIENT_INCLUDE_DIR})
++ else()
++ find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql.h)
++ endif()
+ if(MYSQLCLIENT_INCLUDE_DIR)
+ include_directories("${MYSQLCLIENT_INCLUDE_DIR}")
+ set(CMAKE_REQUIRED_INCLUDES "${MYSQLCLIENT_INCLUDE_DIR}")
diff --git a/www-misc/zoneminder/zoneminder-1.28.1-r2.ebuild b/www-misc/zoneminder/zoneminder-1.28.1-r2.ebuild
new file mode 100644
index 0000000..a68dadd
--- /dev/null
+++ b/www-misc/zoneminder/zoneminder-1.28.1-r2.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# TO DO:
+# * ffmpeg support can be disabled in CMakeLists.txt but it does not build then
+# $(cmake-utils_useno ffmpeg ZM_NO_FFMPEG)
+# * dependencies of unknown status:
+# dev-perl/Archive-Zip
+# dev-perl/Device-SerialPort
+# dev-perl/MIME-Lite
+# dev-perl/MIME-tools
+# dev-perl/PHP-Serialization
+# virtual/perl-Archive-Tar
+# virtual/perl-libnet
+# virtual/perl-Module-Load
+
+EAPI=5
+
+PERL_EXPORT_PHASE_FUNCTIONS=no
+
+inherit perl-module readme.gentoo eutils base cmake-utils depend.apache multilib flag-o-matic systemd
+
+MY_PN="ZoneMinder"
+
+DESCRIPTION="ZoneMinder allows you to capture, analyse, record and monitor any cameras attached to your system"
+HOMEPAGE="http://www.zoneminder.com/"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64"
+IUSE="curl gcrypt gnutls +mmap +openssl vlc"
+SLOT="0"
+
+REQUIRED_USE="
+ || ( openssl gnutls )
+"
+
+DEPEND="
+ app-eselect/eselect-php[apache2]
+ dev-lang/perl:=
+ dev-lang/php[apache2,cgi,curl,inifile,pdo,mysql,mysqli,sockets]
+ dev-libs/libpcre
+ dev-perl/Archive-Zip
+ dev-perl/Date-Manip
+ dev-perl/DBD-mysql
+ dev-perl/DBI
+ dev-perl/URI-Encode
+ dev-perl/libwww-perl
+ sys-auth/polkit
+ sys-libs/zlib
+ virtual/ffmpeg
+ virtual/jpeg
+ virtual/mysql
+ virtual/perl-ExtUtils-MakeMaker
+ virtual/perl-Getopt-Long
+ virtual/perl-Sys-Syslog
+ virtual/perl-Time-HiRes
+ virtual/httpd-php
+ www-servers/apache
+ curl? ( net-misc/curl )
+ gcrypt? ( dev-libs/libgcrypt )
+ gnutls? ( net-libs/gnutls )
+ mmap? ( dev-perl/Sys-Mmap )
+ openssl? ( dev-libs/openssl )
+ vlc? ( media-video/vlc[live] )
+"
+RDEPEND="${DEPEND}"
+
+# we cannot use need_httpd_cgi here, since we need to setup permissions for the
+# webserver in global scope (/etc/zm.conf etc), so we hardcode apache here.
+need_apache
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.26.5"-automagic.patch
+ "${FILESDIR}/${PN}-1.28.1"-mysql_include_path.patch
+)
+
+MY_ZM_WEBDIR=/usr/share/zoneminder/www
+
+pkg_setup() {
+ require_php_with_use mysql sockets apache2
+}
+
+src_configure() {
+ append-cxxflags -D__STDC_CONSTANT_MACROS
+ perl_set_version
+
+ mycmakeargs=(
+ -DZM_PERL_SUBPREFIX=${VENDOR_LIB#/usr}
+ -DZM_TMPDIR=/var/tmp/zm
+ -DZM_SOCKDIR=/var/run/zm
+ -DZM_WEB_USER=apache
+ -DZM_WEB_GROUP=apache
+ -DZM_WEBDIR=${MY_ZM_WEBDIR}
+ $(cmake-utils_useno mmap ZM_NO_MMAP)
+ -DZM_NO_X10=OFF
+ -DZM_NO_FFMPEG=OFF
+ $(cmake-utils_useno curl ZM_NO_CURL)
+ $(cmake-utils_useno vlc ZM_NO_LIBVLC)
+ $(cmake-utils_useno openssl CMAKE_DISABLE_FIND_PACKAGE_OpenSSL)
+ $(cmake-utils_use_has gnutls)
+ $(cmake-utils_use_has gcrypt)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ # the log directory
+ keepdir /var/log/zm
+ fowners apache:apache /var/log/zm
+
+ # now we duplicate the work of zmlinkcontent.sh
+ keepdir /var/lib/zoneminder /var/lib/zoneminder/images /var/lib/zoneminder/events
+ fperms -R 0775 /var/lib/zoneminder
+ fowners -R apache:apache /var/lib/zoneminder
+ dosym /var/lib/zoneminder/images ${MY_ZM_WEBDIR}/images
+ dosym /var/lib/zoneminder/events ${MY_ZM_WEBDIR}/events
+
+ # bug 523058
+ keepdir ${MY_ZM_WEBDIR}/temp
+ fowners -R apache:apache ${MY_ZM_WEBDIR}/temp
+
+ # the configuration file
+ fperms 0640 /etc/zm.conf
+ fowners root:apache /etc/zm.conf
+
+ # init scripts etc
+ newinitd "${FILESDIR}"/init.d zoneminder
+ newconfd "${FILESDIR}"/conf.d zoneminder
+
+ # systemd unit file
+ systemd_dounit "${FILESDIR}"/zoneminder.service
+
+ cp "${FILESDIR}"/10_zoneminder.conf "${T}"/10_zoneminder.conf
+ sed -i "${T}"/10_zoneminder.conf -e "s:%ZM_WEBDIR%:${MY_ZM_WEBDIR}:g"
+
+ dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README.md TODO "${T}"/10_zoneminder.conf
+
+ perl_delete_packlist
+
+ readme.gentoo_src_install
+}
+
+pkg_postinst() {
+ local myold=${REPLACING_VERSIONS}
+ [ "${myold}" = ${PV} ] || elog "You have upgraded zoneminder and may have to upgrade your database now."
+}