summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2014-07-01 19:15:17 +0000
committerPacho Ramos <pacho@gentoo.org>2014-07-01 19:15:17 +0000
commit1385ef03a758ddbc8f355f33bbe780f5e6204f11 (patch)
treef239c94dc3b686d87c2c0f6c5caba96bc4b42f2d /app-backup
parentFix some QA issues. (diff)
downloadgentoo-2-1385ef03a758ddbc8f355f33bbe780f5e6204f11.tar.gz
gentoo-2-1385ef03a758ddbc8f355f33bbe780f5e6204f11.tar.bz2
gentoo-2-1385ef03a758ddbc8f355f33bbe780f5e6204f11.zip
Add unit file (#513850 by thorus90)
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'app-backup')
-rw-r--r--app-backup/backuppc/ChangeLog10
-rw-r--r--app-backup/backuppc/backuppc-3.2.1-r3.ebuild230
-rw-r--r--app-backup/backuppc/files/backuppc.service13
3 files changed, 251 insertions, 2 deletions
diff --git a/app-backup/backuppc/ChangeLog b/app-backup/backuppc/ChangeLog
index 07a9d20ac636..7fb03f114f3a 100644
--- a/app-backup/backuppc/ChangeLog
+++ b/app-backup/backuppc/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-backup/backuppc
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-backup/backuppc/ChangeLog,v 1.17 2013/11/07 02:33:23 patrick Exp $
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/backuppc/ChangeLog,v 1.18 2014/07/01 19:15:17 pacho Exp $
+
+*backuppc-3.2.1-r3 (01 Jul 2014)
+
+ 01 Jul 2014; Pacho Ramos <pacho@gentoo.org> +backuppc-3.2.1-r3.ebuild,
+ +files/backuppc.service:
+ Add unit file (#513850 by thorus90)
07 Nov 2013; Patrick Lauer <patrick@gentoo.org> backuppc-2.1.2-r1.ebuild:
Harmonize description, make repoman happier
diff --git a/app-backup/backuppc/backuppc-3.2.1-r3.ebuild b/app-backup/backuppc/backuppc-3.2.1-r3.ebuild
new file mode 100644
index 000000000000..b2d3a2108f04
--- /dev/null
+++ b/app-backup/backuppc/backuppc-3.2.1-r3.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-backup/backuppc/backuppc-3.2.1-r3.ebuild,v 1.1 2014/07/01 19:15:17 pacho Exp $
+
+EAPI=5
+inherit eutils systemd webapp user
+
+MY_P="BackupPC-${PV}"
+
+DESCRIPTION="A high-performance system for backing up computers to a server's disk."
+HOMEPAGE="http://backuppc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz
+ http://dev.gentooexperimental.org/~dreeevil/02-fix-config.pl-formatting.patch"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="rss samba"
+
+DEPEND="dev-lang/perl
+ app-admin/apache-tools
+ app-admin/makepasswd"
+RDEPEND="${DEPEND}
+ perl-core/IO-Compress
+ dev-perl/Archive-Zip
+ dev-perl/libwww-perl
+ >=app-arch/tar-1.13.20
+ app-arch/par2cmdline
+ app-arch/gzip
+ app-arch/bzip2
+ virtual/mta
+ www-apache/mod_perl
+ www-servers/apache
+ net-misc/rsync
+ >=dev-perl/File-RsyncP-0.68
+ rss? ( dev-perl/XML-RSS )
+ samba? ( net-fs/samba )"
+
+WEBAPP_MANUAL_SLOT="yes"
+SLOT="0"
+
+S=${WORKDIR}/${MY_P}
+
+CONFDIR="/etc/BackupPC"
+DATADIR="/var/lib/backuppc"
+LOGDIR="/var/log/BackupPC"
+
+pkg_setup() {
+ webapp_pkg_setup
+ enewgroup backuppc
+ enewuser backuppc -1 /bin/bash /var/lib/backuppc backuppc
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/3.2.0/01-fix-configure.pl.patch"
+ epatch "${DISTDIR}/02-fix-config.pl-formatting.patch"
+ epatch "${FILESDIR}/3.2.0/03-reasonable-config.pl-defaults.patch"
+
+ # Fix the documentation location in the CGI interface
+ epatch "${FILESDIR}/3.2.0/04-add-docdir-marker.patch"
+ sed -i "s+__DOCDIR__+/usr/share/doc/${PF}+" "lib/BackupPC/CGI/View.pm"
+
+ epatch "${FILESDIR}/3.2.0/05-nicelevel.patch"
+ sed -i -e 's/--chuid ${USER}//' "${S}"/init.d/src/gentoo-backuppc || die "Failed to fix the init script"
+}
+
+src_test() {
+ true
+}
+
+src_install() {
+ webapp_src_preinst
+
+ local myconf
+ myconf=""
+ if use samba ; then
+ myconf="--bin-path smbclient=$(type -p smbclient)"
+ myconf="${myconf} --bin-path nmblookup=$(type -p nmblookup)"
+ fi
+
+ ./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 $(hostname) \
+ --uid-ignore \
+ --dest-dir "${D%/}" \
+ --html-dir ${MY_HTDOCSDIR}/image \
+ --html-dir-url /image \
+ --cgi-dir ${MY_HTDOCSDIR} \
+ --fhs \
+ ${myconf} || die "failed the configure.pl script"
+
+ ebegin "Installing documentation"
+
+ pod2man \
+ --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"
+
+ eend 0
+
+ # Setup directories
+ dodir ${CONFDIR}/pc
+
+ keepdir ${CONFDIR}
+ keepdir ${CONFDIR}/pc
+ keepdir ${DATADIR}/{trash,pool,pc,cpool}
+ keepdir ${LOGDIR}
+
+ ebegin "Setting up startup scripts"
+ newinitd "${S}"/init.d/gentoo-backuppc backuppc
+ newconfd "${S}"/init.d/gentoo-backuppc.conf backuppc
+ systemd_dounit "${FILESDIR}/${PN}.service"
+ eend 0
+
+ ebegin "Setting up an apache instance for backuppc"
+
+ cp "${FILESDIR}/apache2-backuppc."{conf,init} "${WORKDIR}/"
+ cp "${FILESDIR}/httpd.conf" "${WORKDIR}/httpd.conf"
+ sed -i -e "s+HTDOCSDIR+${MY_HTDOCSDIR}+g" "${WORKDIR}/httpd.conf"
+ sed -i -e "s+AUTHFILE+${CONFDIR}/users.htpasswd+g" "${WORKDIR}/httpd.conf"
+
+ moduledir="/usr/lib/apache2/modules"
+
+ # Check if the Apache ServerRoot is real.
+ # This is sometimes broken on older amd64 systems.
+ # In this case we just patch our config file appropriately.
+ if [[ ! -d "/usr/lib/apache2" ]]; then
+ if [[ -d "/usr/lib64/apache2" ]]; then
+ sed -i -e "s+/usr/lib/apache2+/usr/lib64/apache2+g" "${WORKDIR}/httpd.conf"
+ sed -i -e "s+/usr/lib/apache2+/usr/lib64/apache2+g" "${WORKDIR}/apache2-backuppc.conf"
+ moduledir="/usr/lib64/apache2/modules"
+ fi
+ fi
+
+ # Check if we're using mod_cgid instead of mod_cgi
+ # This happens if you install apache with USE="threads"
+ if [[ -f "${moduledir}/mod_cgid.so" ]]; then
+ sed -i -e "s+mod_cgi+mod_cgid+g" "${WORKDIR}/httpd.conf"
+ sed -i -e "s+cgi_module+cgid_module+g" "${WORKDIR}/httpd.conf"
+ fi
+
+ # Install conf.d/init.d files for apache2-backuppc
+ if [ -e /etc/init.d/apache2 ]; then
+ newconfd "${WORKDIR}/apache2-backuppc.conf" apache2-backuppc
+ newinitd /etc/init.d/apache2 apache2-backuppc
+ else
+ newconfd "${WORKDIR}/apache2-backuppc.conf" apache2-backuppc
+ newinitd "${WORKDIR}/apache2-backuppc.init" apache2-backuppc
+ fi
+
+ insopts -m 0644
+ insinto ${CONFDIR}
+ doins "${WORKDIR}/httpd.conf"
+
+ eend $?
+
+ webapp_src_install || die "webapp_src_install"
+
+ # Make sure that the ownership is correct
+ chown -R backuppc:backuppc "${D}${CONFDIR}"
+ chown -R backuppc:backuppc "${D}${DATADIR}"
+ chown -R backuppc:backuppc "${D}${LOGDIR}"
+}
+
+pkg_postinst() {
+ # This is disabled since BackupPC doesn't need it
+ # webapp_pkg_postinst
+
+ elog "Installation finished, now 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 and it's apache web interface by running:"
+ elog " # /etc/init.d/backuppc start"
+ elog " # /etc/init.d/apache2-backuppc start"
+
+ if [[ ! -e /etc/runlevels/default/backuppc ]]; then
+ elog ""
+ elog "- You also might want to add these scripts to your default runlevel:"
+ elog " # rc-update add backuppc default"
+ elog " # rc-update add apache2-backuppc default"
+ fi
+
+ # 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 " # htpasswd ${CONFDIR}/users.htpasswd newUser"
+ fi
+
+ if [[ -d "/etc/backuppc" ]]; then
+ ewarn ""
+ ewarn "Detected old config directory in /etc/backuppc"
+ ewarn "Please migrate relevant config files to ${CONFDIR} before starting backuppc"
+ fi
+ elog "Warning: The default path changed from /var/lib/backuppc to /var/lib/BackupPC"
+ elog "To continue using the old path the config files need to contain something like this:"
+ elog "\$Conf{TopDir} = '/var/lib/backuppc/';"
+}
diff --git a/app-backup/backuppc/files/backuppc.service b/app-backup/backuppc/files/backuppc.service
new file mode 100644
index 000000000000..7c4877a4ee24
--- /dev/null
+++ b/app-backup/backuppc/files/backuppc.service
@@ -0,0 +1,13 @@
+[Unit]
+Description= BackupPC server
+After=syslog.target local-fs.target remote-fs.target
+
+[Service]
+Type=oneshot
+User=backuppc
+Group=backuppc
+ExecStart=/usr/bin/BackupPC -d
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target