From b3ff61af65df489d597ae5e3d9d765500e5e5eaf Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 18 Jan 2016 18:58:30 -0500 Subject: app-backup/backuppc: add version 3.3.1 (masked) with apache-2.4 support. This new version adds apache-2.4 support to backuppc, but at the cost of requiring www-apache/mpm_itk and a new mod_perl supporting apache-2.4. The former is available and less onerous than the current requirement of a separate web server. However, the only mod_perl supporting apache-2.4 at the moment is masked, so the new version of backuppc is masked as well. The configuration for the new version should be more familiar to users: it is enabled by passing -D BACKUPPC to apache2. Gentoo-Bug: 532718 Gentoo-Bug: 541312 Package-Manager: portage-2.2.26 --- app-backup/backuppc/Manifest | 1 + app-backup/backuppc/backuppc-3.3.1.ebuild | 194 +++++++++++++++++++++++++++++ app-backup/backuppc/files/99_backuppc.conf | 32 +++++ 3 files changed, 227 insertions(+) create mode 100644 app-backup/backuppc/backuppc-3.3.1.ebuild create mode 100644 app-backup/backuppc/files/99_backuppc.conf (limited to 'app-backup') diff --git a/app-backup/backuppc/Manifest b/app-backup/backuppc/Manifest index cee779958f30..07d699958f74 100644 --- a/app-backup/backuppc/Manifest +++ b/app-backup/backuppc/Manifest @@ -1 +1,2 @@ DIST BackupPC-3.3.0.tar.gz 554155 SHA256 8a9c1b6faa4502b4c40617be97e806813815d9e22544854d99983c3da7c1f69b SHA512 67ec1ca4d22ab1e81f9c0f409c758347a6c772e3d1aa39c93207f9d328176ac7b4e679d0b03972fc5870c37dde0480d28c61ae19975d54e144235ea0e84e9901 WHIRLPOOL 23a9ce5dd600843cea72354e1afe595e3779f883839f8d3feca7f1355ed20048026090097ddfbcf394632672b42bef4884bc6661203542d6fe2c6bc2e8ad7b96 +DIST BackupPC-3.3.1.tar.gz 556461 SHA256 c9cc4aec28a7474a68d40f4bc460ff15140e05c96900c7f98ff3ef06c4f6ae4c SHA512 b6bb9de3103c5062098d80755055b7461ae9133a4a46a66b3d0af89d081086571694db1898e7d85880defa15b030bad522812116ae5361c0fbde90b877d139c6 WHIRLPOOL 1d895f530932fc1287cde9db584befc6ca0850b5841cc4e60927442d0db662ec092bda4efa4953650d3bfa13deb6e9fafa25c10f82e19b39c67969bb4e143bac diff --git a/app-backup/backuppc/backuppc-3.3.1.ebuild b/app-backup/backuppc/backuppc-3.3.1.ebuild new file mode 100644 index 000000000000..f7c0711267e5 --- /dev/null +++ b/app-backup/backuppc/backuppc-3.3.1.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit depend.apache eutils user + +MY_P="BackupPC-${PV}" + +DESCRIPTION="High-performance backups to a server's disk" +HOMEPAGE="http://backuppc.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~x86" + +IUSE="rss samba" + +# The CGI modules are handled in $RDEPEND. +APACHE_MODULES="apache2_modules_alias," # RedirectMatch +APACHE_MODULES+="apache2_modules_authn_core," # AuthType +APACHE_MODULES+="apache2_modules_authz_core," # Require +APACHE_MODULES+="apache2_modules_authz_host," # Require host +APACHE_MODULES+="apache2_modules_authz_user" # Require valid-user + +DEPEND="dev-lang/perl + app-admin/apache-tools + app-admin/makepasswd" + +# Older versions of mod_perl think they're compatibile with apache-2.4, +# so we require the new one explicitly. +RDEPEND="${DEPEND} + virtual/perl-IO-Compress + dev-perl/Archive-Zip + dev-perl/libwww-perl + app-arch/tar + app-arch/par2cmdline + app-arch/gzip + app-arch/bzip2 + virtual/mta + >=www-apache/mod_perl-2.0.9 + www-apache/mpm_itk + || ( >=www-servers/apache-2.4[${APACHE_MODULES},apache2_modules_cgi] + >=www-servers/apache-2.4[${APACHE_MODULES},apache2_modules_cgid] + >=www-servers/apache-2.4[${APACHE_MODULES},apache2_modules_fcgid] ) + net-misc/rsync + dev-perl/File-RsyncP + rss? ( dev-perl/XML-RSS ) + samba? ( net-fs/samba )" + +need_apache2_4 + +SLOT="0" + +S="${WORKDIR}/${MY_P}" + +CGIDIR="/usr/lib/backuppc/htdocs" +CONFDIR="/etc/BackupPC" +DATADIR="/var/lib/backuppc" +DOCDIR="/usr/share/doc/${PF}" +LOGDIR="/var/log/BackupPC" + +pkg_setup() { + enewgroup backuppc + enewuser backuppc -1 /bin/bash /var/lib/backuppc backuppc +} + +src_prepare() { + epatch "${FILESDIR}/3.3.0/01-fix-configure.pl.patch" + epatch "${FILESDIR}/3.3.0/02-fix-config.pl-formatting.patch" + epatch "${FILESDIR}/3.3.0/03-reasonable-config.pl-defaults.patch" + + epatch "${FILESDIR}/3.2.0/04-add-docdir-marker.patch" + epatch "${FILESDIR}/3.2.0/05-nicelevel.patch" + + # Fix docs location using the marker that we've patched in. + sed -i "s+__DOCDIR__+${DOCDIR}+" "lib/BackupPC/CGI/View.pm" \ + || die "failed to sed the documentation location" +} + +src_install() { + local myconf + myconf="" + if use samba ; then + myconf="--bin-path smbclient=$(type -p smbclient)" + myconf="${myconf} --bin-path nmblookup=$(type -p nmblookup)" + fi + + /usr/bin/env perl ./configure.pl \ + --batch \ + --bin-path perl=$(type -p perl) \ + --bin-path tar=$(type -p tar) \ + --bin-path rsync=$(type -p rsync) \ + --bin-path ping=$(type -p ping) \ + --bin-path df=$(type -p df) \ + --bin-path ssh=$(type -p ssh) \ + --bin-path sendmail=$(type -p sendmail) \ + --bin-path hostname=$(type -p hostname) \ + --bin-path gzip=$(type -p gzip) \ + --bin-path bzip2=$(type -p bzip2) \ + --config-dir "${CONFDIR}" \ + --install-dir /usr \ + --data-dir "${DATADIR}" \ + --hostname 127.0.0.1 \ + --uid-ignore \ + --dest-dir "${D%/}" \ + --html-dir "${CGIDIR}"/image \ + --html-dir-url /image \ + --cgi-dir "${CGIDIR}" \ + --fhs \ + ${myconf} || die "failed the configure.pl script" + + ebegin "Installing documentation" + + pod2man \ + -errors=none \ + --section=8 \ + --center="BackupPC manual" \ + "${S}"/doc/BackupPC.pod backuppc.8 \ + || die "failed to generate man page" + + doman backuppc.8 + + # Place the documentation in the correct location + dodoc "${D}/usr/doc/BackupPC.html" + dodoc "${D}/usr/doc/BackupPC.pod" + rm -rf "${D}/usr/doc" || die + + eend 0 + + # Setup directories + dodir "${CONFDIR}/pc" + + keepdir "${CONFDIR}" + keepdir "${CONFDIR}/pc" + keepdir "${DATADIR}"/{trash,pool,pc,cpool} + keepdir "${LOGDIR}" + + ebegin "Setting up init.d/conf.d scripts" + newinitd "${S}"/init.d/gentoo-backuppc backuppc + newconfd "${S}"/init.d/gentoo-backuppc.conf backuppc + + insinto "${APACHE_MODULES_CONFDIR}" + doins "${FILESDIR}"/99_backuppc.conf + + # Make sure that the ownership is correct + chown -R backuppc:backuppc "${D}${CONFDIR}" || die + chown -R backuppc:backuppc "${D}${DATADIR}" || die + chown -R backuppc:backuppc "${D}${LOGDIR}" || die +} + +pkg_postinst() { + elog "Installation finished, you may now start using BackupPC." + elog + elog "- Read the documentation in /usr/share/doc/${PF}/BackupPC.html" + elog " Please pay special attention to the security section." + elog + elog "- You can launch backuppc by running:" + elog + elog " # /etc/init.d/backuppc start" + elog + elog "- To enable the GUI, first edit ${ROOT}etc/conf.d/apache2 and add," + elog + elog " \"-D BACKUPPC -D PERL -D MPM_ITK\"" + elog + elog " to the APACHE2_OPTS line." + elog + elog " Then you must edit ${ROOT}etc/apache2/modules.d/00_mpm_itk.conf" + elog " and adjust the values of LimitUIDRange/LimitGIDRange to include" + elog " the UID and GID of the backuppc user." + elog + elog " Finally, start apache:" + elog + elog " # /etc/init.d/apache2 start" + elog + elog " The web interface should now be running on," + elog + elog " http://127.0.0.1:8080/" + elog + + # Generate a new password if there's no auth file + if [[ ! -f "${CONFDIR}/users.htpasswd" ]]; then + adminuser="backuppc" + adminpass=$( makepasswd --chars=12 ) + htpasswd -bc "${CONFDIR}/users.htpasswd" $adminuser $adminpass + + elog "" + elog "- Created admin user $adminuser with password $adminpass" + elog " To add new users, run: " + elog "" + elog " # htpasswd ${CONFDIR}/users.htpasswd newUser" + fi +} diff --git a/app-backup/backuppc/files/99_backuppc.conf b/app-backup/backuppc/files/99_backuppc.conf new file mode 100644 index 000000000000..eae766e4fa75 --- /dev/null +++ b/app-backup/backuppc/files/99_backuppc.conf @@ -0,0 +1,32 @@ + + + +Listen 8080 + + AssignUserId backuppc backuppc + DocumentRoot "/usr/lib/backuppc/htdocs/" + RedirectMatch ^/$ /BackupPC_Admin + + + AuthType Basic + AuthName "BackupPC Community Edition Administrative Interface" + AuthUserFile "/etc/BackupPC/users.htpasswd" + Options ExecCGI + Require valid-user + Require host 127.0.0.1 + + + + SetHandler perl-script + PerlResponseHandler ModPerl::Registry + PerlOptions +ParseHeaders + + + + Require all granted + Options -ExecCGI + + + + + -- cgit v1.2.3-65-gdbad