blob: a32280f83e2ce0f73c1a49a4342ee407db08b60a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-ftp/ftpbase/ftpbase-0.00.ebuild,v 1.17 2007/05/06 10:52:00 genone Exp $
inherit eutils pam
DESCRIPTION="FTP layout package"
HOMEPAGE="http://www.gentoo.org/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
IUSE="pam"
DEPEND="pam? ( || ( virtual/pam sys-libs/pam ) )
!<net-ftp/proftpd-1.2.10-r6
!<net-ftp/pure-ftpd-1.0.20-r2
!<net-ftp/vsftpd-2.0.3-r1"
S=${WORKDIR}
check_collision() {
[[ ! -e $1 ]] && return 0
[[ $(head -n 1 "$1") == $(head -n 1 "$2") ]] && return 0
eerror " $1 exists and was not provided by ${P}"
return 1
}
pkg_setup() {
ebegin "Checking for possible file collisions..."
local collide=false
check_collision "${ROOT}etc/ftpusers" "${FILESDIR}/ftpusers" || collide=true
if use pam ; then
check_collision "${ROOT}etc/pam.d/ftp" "${FILESDIR}/ftp-pamd" || collide=true
fi
if ${collide} ; then
eerror
eerror "Those files listed above have to be removed in order to"
eerror "install this version of ftpbase."
eerror
eerror "If you edited them, remember to backup and when restoring make"
eerror " sure the first line in each file is:"
eerror "$(head -n 1 "${FILESDIR}/ftpusers")"
eend 1
die "Can't be installed, files will collide"
fi
eend 0
# Check if home exists
local exists=false
[[ -d "${ROOT}home/ftp" ]] && exists=true
# Add our default ftp user
enewgroup ftp 21
enewuser ftp 21 -1 /home/ftp ftp
# If home did not exist and does now then we created it in the enewuser
# command. Now we have to change it's permissions to something sane.
if [[ ${exists} == "false" && -d "${ROOT}home/ftp" ]] ; then
chown root:ftp "${ROOT}"home/ftp
fi
}
src_install() {
# The ftpusers file is a list of people who are NOT allowed
# to use the ftp service.
insinto /etc
doins "${FILESDIR}/ftpusers" || die
# Ideally we would create the home directory here with a dodir.
# But we cannot until bug #9849 is solved - so we kludge in pkg_postinst()
if use pam ; then
if has_version "<sys-libs/pam-0.78" ; then
newpamd "${FILESDIR}/ftp-pamd" ftp
else
newpamd "${FILESDIR}/ftp-pamd-include" ftp
fi
fi
}
|