You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/www-apps/webdavcgi/webdavcgi-0.8.4.ebuild

165 lines
4.7 KiB

# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils toolchain-funcs versionator
DESCRIPTION="A Perl CGI for accessing and sharing files, or calendar/addressbooks via WebDAV"
HOMEPAGE="http://webdavcgi.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
LICENSE="GPL-3"
# Provide slotting on minor versions. WebDAV CGI is a web application which
# can be shared by multiple instances and thus major updates shouldn't be
# enforced to all users/instances at the same time.
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~amd64"
IUSE="afs kerberos mysql postgres rcs samba +sqlite +suid"
DEPEND=""
RDEPEND="!www-apps/webdavcgi:0
afs? ( net-fs/openafs )
dev-lang/perl
dev-perl/Archive-Zip
dev-perl/File-Copy-Link
dev-perl/PerlIO-gzip
dev-perl/Quota
dev-perl/TimeDate
dev-perl/URI
dev-perl/UUID-Tiny
dev-perl/XML-Simple
kerberos? ( virtual/krb5 )
media-gfx/graphicsmagick[perl]
mysql? ( dev-perl/DBD-mysql )
virtual/perl-Module-Load
postgres? ( dev-perl/DBD-Pg )
rcs? ( dev-perl/Rcs )
samba? ( dev-perl/Filesys-SmbClient )
sqlite? ( dev-perl/DBD-SQLite )
dev-perl/CGI
virtual/perl-File-Spec
|| ( virtual/httpd-cgi virtual/httpd-fastcgi )"
REQUIRED_USE="|| ( mysql postgres sqlite )"
CGIBINDIR="cgi-bin"
src_compile() {
if use suid; then
WEBDAVWRAPPERS="webdavwrapper" # Standard UID/GID wrapper
use afs && WEBDAVWRAPPERS+=" webdavwrapper-afs"
use kerberos && WEBDAVWRAPPERS+=" webdavwrapper-krb"
export WEBDAVWRAPPERS
local wrapper
for wrapper in ${WEBDAVWRAPPERS}; do
$(tc-getCC) ${LDFLAGS} ${CFLAGS} \
-o "${CGIBINDIR}/${wrapper}" \
"helper/${wrapper}.c" || die "compile ${wrapper} failed"
done
fi
}
src_install() {
exeinto "/usr/libexec/${PN}-${SLOT}/${CGIBINDIR}"
newexe "${CGIBINDIR}/logout-dist" "logout"
doexe "${CGIBINDIR}/webdav.pl"
use afs && doexe "${CGIBINDIR}/afswrapper"
use samba && doexe "${CGIBINDIR}/smbwrapper"
if use suid; then
# In order to change the user and group ID at runtime, the webdavwrapper
# needs to be run as root (set-user-ID and set-group-ID bit)
exeopts -o root -g root -m 6755
local wrapper
for wrapper in ${WEBDAVWRAPPERS}; do
einfo "Installing UID/GID wrapper ${wrapper}"
doexe "${CGIBINDIR}/${wrapper}"
done
# reset install opts
exeopts
else
ewarn "You have the 'suid' USE flag disabled"
ewarn "WebDAV CGI won't be able to switch user ids"
fi
local confDir='etc'
local webdavConfDir="/etc/${PN}-${SLOT}/default"
export WEBDAVCONFIG="${webdavConfDir}/webdav.conf"
insinto "${webdavConfDir}"
doins "${confDir}/mime.types"
newins "${FILESDIR}/webdav-${SLOT}.conf" "webdav.conf"
local installBaseDir="/usr/share/${PN}-${SLOT}"
local currentDir
for currentDir in htdocs lib locale; do
insinto "${installBaseDir}/${currentDir}"
doins -r "${currentDir}"/*
done
if use mysql || use postgres; then
local sqlDir='sql'
insinto "${installBaseDir}/${sqlDir}"
use mysql && "${sqlDir}/mysql.sql"
use postgres && "${sqlDir}/postgresql.sql"
fi
if use sqlite; then
# Directory where the SQLite database resides
local sqliteRootDir="/var/lib/${PN}/${SLOT}"
keepdir "${sqliteRootDir}"
# Default database directory where all users are able to create and
# share the databases, this can be changed within the config file and
# restricted to user/group only access if required.
export SQLITEDIR="${sqliteRootDir}/default"
keepdir "${SQLITEDIR}"
fperms 1777 "${SQLITEDIR}"
fi
# Default thumbnail directory, writable by all users
export THUMBNAILDIR="/var/cache/${PN}/${SLOT}/default/thumbnails"
keepdir "${THUMBNAILDIR}"
fperms 1777 "${THUMBNAILDIR}"
export APACHEEXAMPLECONFIG="apache-webdavcgi-${SLOT}-example.conf"
dodoc CHANGELOG TODO
dodoc "${FILESDIR}/${APACHEEXAMPLECONFIG}"
dohtml -r doc/*
}
pkg_postinst() {
ewarn "In order to allow different users to create and share files,"
ewarn "some directories were installed with world write access by default."
ewarn "To set restrictive permissions, add all WebDAV CGI users to a"
ewarn "common group, and allow access to the following directories by this"
ewarn "group only."
ewarn "Thumbnail directory: ${THUMBNAILDIR}"
use sqlite && ewarn "SQLite directory: ${SQLITEDIR}"
ewarn
ewarn "Until bug #456180 is fixed, you probably have to re-emerge"
ewarn "media-gfx/graphicsmagick"
elog
elog "The WebDAV CGI config is located at ${WEBDAVCONFIG}."
elog
elog "An example Apache HTTP server configuration snippet is available in"
elog "/usr/share/doc/${PF} in the file ${APACHEEXAMPLECONFIG}"
einfo
einfo "Detailed installation and configuration instructions can be found at"
einfo "http://webdavcgi.sourceforge.net/"
}