summaryrefslogtreecommitdiff
blob: b2f2891a659f4682a3c2b462eb9a56f69b3ba765 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

PYTHON_COMPAT=( python2_7 )

AUTOTOOLS_AUTORECONF=yes

inherit autotools-utils flag-o-matic multilib pam python-r1 systemd versionator

DESCRIPTION="Open Source AFP server"
HOMEPAGE="http://netatalk.sourceforge.net/"
SRC_URI="mirror://sourceforge/project/${PN}/${PN}/$(get_version_component_range 1-3)/${P}.tar.bz2"

LICENSE="GPL-2 BSD"
SLOT="0/17.0"
KEYWORDS="~amd64 arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="acl cracklib dbus debug pgp kerberos ldap pam quota samba +shadow ssl static-libs tracker tcpd +utils zeroconf"

CDEPEND="
	!app-editors/yudit
	dev-libs/libevent
	>=dev-libs/libgcrypt-1.2.3:0
	sys-apps/coreutils
	>=sys-libs/db-4.2.52:=
	sys-libs/tdb
	acl? (
		sys-apps/attr
		sys-apps/acl
	)
	cracklib? ( sys-libs/cracklib )
	dbus? ( sys-apps/dbus dev-libs/dbus-glib )
	kerberos? ( virtual/krb5 )
	ldap? ( net-nds/openldap )
	pam? ( virtual/pam )
	ssl? ( dev-libs/openssl:0 )
	tcpd? ( sys-apps/tcp-wrappers )
	tracker? ( app-misc/tracker )
	utils? ( ${PYTHON_DEPS} )
	zeroconf? ( net-dns/avahi[dbus] )
"
RDEPEND="${CDEPEND}
	utils? (
		dev-lang/perl
		dev-python/dbus-python[${PYTHON_USEDEP}]
	)"
DEPEND="${CDEPEND}
	virtual/yacc
	sys-devel/flex"

RESTRICT="test"

REQUIRED_USE="
	ldap? ( acl )
	utils? ( ${PYTHON_REQUIRED_USE} )"

PATCHES=(
	"${FILESDIR}"/${PN}-3.1.7-gentoo.patch
	"${FILESDIR}"/${PN}-3.1.8-disable-ld-library-path.patch #564350
)

src_prepare() {
	if ! use utils; then
		sed \
			-e "s:shell_utils::g" \
			-i contrib/Makefile.am || die
	fi
	autotools-utils_src_prepare
}

src_configure() {
	local myeconfargs=()

	append-flags -fno-strict-aliasing

	# Ignore --with-init-style=gentoo, we install the init.d by hand and we avoid having
	# to sed the Makefiles to not do rc-update.
	# TODO:
	# systemd : --with-init-style=systemd
	myeconfargs+=(
		$(use_enable debug)
		$(use_enable debug debugging)
		$(use_enable pgp pgp-uam)
		$(use_enable kerberos)
		$(use_enable kerberos krbV-uam)
		$(use_enable quota)
		$(use_enable tcpd tcp-wrappers)
		$(use_enable zeroconf)
		$(use_with acl acls)
		$(use_with cracklib)
		$(use_with dbus afpstats)
		$(use_with ldap)
		$(use_with pam)
		$(use_with samba smbsharemodes)
		$(use_with shadow)
		$(use_with ssl ssl-dir)
		$(use_with tracker)
		$(use_with tracker tracker-pkgconfig-version $(get_version_component_range 1-2 $(best_version app-misc/tracker | sed 's:app-misc/tracker-::g')))
		--enable-overwrite
		--disable-krb4-uam
		--disable-afs
		--with-libevent-header=/usr/include
		--with-libevent-lib=/usr/$(get_libdir)
		--with-bdb=/usr
		--with-uams-path=/usr/$(get_libdir)/${PN}
		--disable-silent-rules
		--with-init-style=gentoo
		--without-libevent
		--without-tdb
		--with-lockfile=/run/lock/${PN}
		)
	autotools-utils_src_configure
}

src_install() {
	autotools-utils_src_install

	if use zeroconf; then
		sed -i -e '/avahi-daemon/s:use:need:g' "${D}"/etc/init.d/${PN} || die
	else
		sed -i -e '/avahi-daemon/d' "${D}"/etc/init.d/${PN} || die
	fi

	# The pamd file isn't what we need, use pamd_mimic_system
	rm -rf "${ED}/etc/pam.d" || die
	pamd_mimic_system netatalk auth account password session

	sed \
		-e "s|:SBINDIR:|${EPREFIX}/usr/sbin|g" \
		-e "s|:PATH_NETATALK_LOCK:|/run/lock/netatalk|g" \
		distrib/initscripts/service.systemd.tmpl \
		> "${T}"/service.systemd || die
	systemd_newunit "${T}"/service.systemd ${PN}.service

	use utils && python_foreach_impl python_doscript contrib/shell_utils/afpstats
}

pkg_postinst() {
	local fle v
	for v in ${REPLACING_VERSIONS}; do
		if ! version_is_at_least 3 ${v}; then
			for fle in afp_signature.conf afp_voluuid.conf; do
				if [[ -f "${ROOT}"etc/netatalk/${fle} ]]; then
					if [[ ! -f "${ROOT}"var/lib/netatalk/${fle} ]]; then
						mv \
							"${ROOT}"etc/netatalk/${fle} \
							"${ROOT}"var/lib/netatalk/
					fi
				fi
			done

			echo ""
			elog "Starting from version 3.0 only uses a single init script again"
			elog "Please update your runlevels accordingly"
			echo ""
			elog "Dependencies should be resolved automatically depending on settings"
			elog "but please report issues with this on https://bugs.gentoo.org/ if"
			elog "you find any."
			echo ""
			elog "Following config files are obsolete now:"
			elog "afpd.conf, netatalk.conf, AppleVolumes.default and afp_ldap.conf"
			elog "in favour of"
			elog "/etc/afp.conf"
			echo ""
			elog "Please convert your existing configs before you restart your daemon"
			echo ""
			elog "The new AppleDouble default backend is appledouble = ea"
			elog "Existing entries will be updated on access, but can do an offline"
			elog "conversion with"
			elog "dbd -ruve /path/to/Volume"
			echo ""
			elog "For general notes on the upgrade, please visit"
			elog "http://netatalk.sourceforge.net/3.0/htmldocs/upgrade.html"
			echo ""
			break
		fi
	done
}