summaryrefslogtreecommitdiff
blob: 0a82ba265b97051696ec186ee9ec2599a3ac9040 (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
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-admin/webmin/webmin-1.200.ebuild,v 1.4 2005/04/16 07:39:21 corsair Exp $

IUSE="apache2 postgres ssl webmin-minimal"

inherit eutils

VM_V="2.50"

DESCRIPTION="Webmin, a web-based system administration interface"
HOMEPAGE="http://www.webmin.com/"
SRC_URI="webmin-minimal? ( mirror://sourceforge/webadmin/${P}-minimal.tar.gz )
	 !webmin-minimal? ( mirror://sourceforge/webadmin/${P}.tar.gz
	                   http://www.webmin.com/download/virtualmin/virtual-server-${VM_V}.wbm.gz )"

LICENSE="BSD"
SLOT="0"
# ~mips and ~s390 removed because of broken deps. Bug #86085
KEYWORDS="~alpha amd64 ~hppa ppc ppc64 sparc x86"

DEPEND="dev-lang/perl"
RDEPEND="${DEPEND}
	 ssl? ( dev-perl/Net-SSLeay )
	 postgres? ( dev-perl/DBD-Pg )
	 dev-perl/XML-Generator"

src_unpack() {
	unpack ${A}

	cd ${S}

	# in webmin-minimal webalizer and apache2 are not present
	if ! use webmin-minimal ; then
		# Bug #47020
		epatch ${FILESDIR}/${PN}-1.130-webalizer.patch

		# Bug #50810, #51943
		if use apache2; then
			epatch ${FILESDIR}/${PN}-1.140-apache2.patch
		fi

		# Postfix should modify the last entry of the maps file
		epatch ${FILESDIR}/${PN}-1.170-postfix.patch

		mv ${WORKDIR}/virtual-server-${VM_V}.wbm ${T}/vs.tar
		tar -xf ${T}/vs.tar

		# Don't create ${HOME}/cgi-bin on new accounts
		epatch ${FILESDIR}/virtual-server-2.31-nocgibin.patch

		# Check if a newly added IP is already active
		epatch ${FILESDIR}/virtual-server-2.31-checkip.patch

		# Verify Postgres usernames
		epatch ${FILESDIR}/virtual-server-2.31-pgsql.patch

		# Fix some all name virtual items
		epatch ${FILESDIR}/virtual-server-2.31-namevirtual.patch
	fi

	epatch ${FILESDIR}/${PN}-1.170-setup-nocheck.patch
}

src_install() {
	rm -f mount/freebsd-mounts*
	rm -f mount/openbsd-mounts*
	rm -f mount/macos-mounts*

	(find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
	dodir /usr/libexec/webmin
	dodir /etc/init.d
	dodir /var
	dodir /etc/pam.d

	cp -rp * ${D}/usr/libexec/webmin

	# in webmin-minimal openslp is not present
	if [ ! -f "${D}/usr/libexec/webmin/openslp/config-gentoo-linux" ] ; then
		cp ${D}/usr/libexec/webmin/openslp/config \
			${D}/usr/libexec/webmin/openslp/config-gentoo-linux
	fi

	exeinto /etc/init.d
	newexe ${FILESDIR}/init.d.webmin webmin

	insinto /etc/pam.d/
	newins ${FILESDIR}/webmin-pam webmin
	echo gentoo > ${D}/usr/libexec/webmin/install-type

	# Fix ownership
	chown -R root:root ${D}

	dodir /etc/webmin
	dodir /var/log/webmin

	config_dir=${D}/etc/webmin
	var_dir=${D}/var/log/webmin
	perl=${ROOT}/usr/bin/perl
	autoos=1
	port=10000
	login=root
	crypt="XXX"
	host=`hostname`
	use ssl && ssl=1 || ssl=0
	atboot=0
	nostart=1
	nochown=1
	autothird=1
	nouninstall=1
	noperlpath=1
	tempdir="${T}"
	export config_dir var_dir perl autoos port login crypt host ssl atboot nostart nochown autothird nouninstall noperlpath tempdir
	${D}/usr/libexec/webmin/setup.sh > ${T}/webmin-setup.out 2>&1 || die "Failed to create initial webmin configuration."

	# Fixup the config files to use their real locations
	sed -i 's:^pidfile=.*$:pidfile=/var/run/webmin.pid:' ${D}/etc/webmin/miniserv.conf
	find ${D}/etc/webmin -type f -exec sed -i "s:${D}:${ROOT}:g" {} \;

	# Cleanup from the config script
	rm -rf ${D}/var/log/webmin
	keepdir /var/log/webmin/
}

pkg_postinst() {
	local crypt=$(grep "^root:" ${ROOT}/etc/shadow | cut -f 2 -d :)
	crypt=${crypt//\\/\\\\}
	crypt=${crypt//\//\\\/}
	sed -i "s/root:XXX/root:${crypt}/" /etc/webmin/miniserv.users

	einfo "To make webmin start at boot time, run: 'rc-update add webmin default'."
	einfo "Point your web browser to http://localhost:10000 to use webmin."
}

pkg_prerm() {
	${ROOT}/etc/init.d/webmin stop >& /dev/null
}