commit:     7f57742cb7cc422bfff1f62fb62a639bbab7de79
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 26 12:53:42 2016 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Nov 26 12:55:46 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f57742c

app-backup/backuppc: Fix perl-5.22 compat (#580254 by Till Korten)

Package-Manager: portage-2.3.2

 app-backup/backuppc/backuppc-3.3.1-r3.ebuild       | 196 +++++++++++++++++++++
 .../backuppc/files/backuppc-3.3.1-perl522.patch    |  17 ++
 2 files changed, 213 insertions(+)

diff --git a/app-backup/backuppc/backuppc-3.3.1-r3.ebuild 
b/app-backup/backuppc/backuppc-3.3.1-r3.ebuild
new file mode 100644
index 00000000..8d292d6
--- /dev/null
+++ b/app-backup/backuppc/backuppc-3.3.1-r3.ebuild
@@ -0,0 +1,196 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit depend.apache eutils user systemd
+
+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"
+
+       epatch "${FILESDIR}"/${P}-perl522.patch #580254
+
+       # 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/systemd scripts"
+       newinitd "${S}"/init.d/gentoo-backuppc backuppc
+       newconfd "${S}"/init.d/gentoo-backuppc.conf backuppc
+       systemd_dounit "${FILESDIR}/${PN}.service"
+
+       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/backuppc-3.3.1-perl522.patch 
b/app-backup/backuppc/files/backuppc-3.3.1-perl522.patch
new file mode 100644
index 00000000..fb7eeee
--- /dev/null
+++ b/app-backup/backuppc/files/backuppc-3.3.1-perl522.patch
@@ -0,0 +1,17 @@
+--- lib/BackupPC/CGI/Browse.pm 2016-11-22 20:52:03.622509160 +0100
++++ lib/BackupPC/CGI/Browse.pm 2016-11-22 20:50:35.871018400 +0100
+@@ -62,13 +62,13 @@ fix bug 
https://bugzilla.redhat.com/attachment.cgi?id=1104083
+     #
+     my @Backups = $bpc->BackupInfoRead($host);
+ 
+     #
+     # default to the newest backup
+     #
+-    if ( !defined($In{num}) && defined(@Backups) && @Backups > 0 ) {
++    if ( !defined($In{num}) && @Backups > 0 ) {
+         $i = @Backups - 1;
+         $num = $Backups[$i]{num};
+     }
+ 
+     for ( $i = 0 ; $i < @Backups ; $i++ ) {
+         last if ( $Backups[$i]{num} == $num );

Reply via email to