summaryrefslogtreecommitdiff
blob: 0f7553071b591b7a22cd7cc9cae0492367577b29 (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

DESCRIPTION="Portage synchronization tool for managing group of gentoo servers."
HOMEPAGE="http://dev.gentoo.org/~radek/portki/"
SRC_URI="${HOMEPAGE}/files/${P}.tar.gz"
LICENSE="GPL2"

SLOT="0"
IUSE=""

RESTRICT="primaryuri"

KEYWORDS="x86"

DEPEND=">=app-shells/bash-3.0
	>=app-admin/tmpreaper-1"

RDEPEND="
	>=sys-apps/portage-2.0.51
	>=app-shells/bash-3.0
	>=app-admin/tmpreaper-1
	>=app-portage/genlop-0.30
	>=app-portage/eix-0.2.2
	>=app-portage/gentoolkit"

S=${WORKDIR}

src_install() {
	
	# this directories are installed with normal perms
	dodir /etc/conf.d
	dodir /etc/config-archive

	dodir /usr/bin
	dodir /usr/lib/${PN}

	insinto /usr/lib/${PN}
	exeinto /usr/lib/${PN}

	doins ${PN}.conf
	doexe ${PN}.cron
	doins ${PN}.stage.*
	doins TODO.txt

	doins dispatch-conf-digest.patch
	doins dispatch-conf.conf.recommended

	doins make.conf.recommended

	cp /usr/lib/portage/bin/dispatch-conf .
	patch dispatch-conf dispatch-conf-digest.patch
	newexe dispatch-conf ${PN}.dispatch-conf

	doexe ${PN}.sh
	dosym ${D}/usr/lib/${PN}/${PN}.sh /usr/bin/${PN}

	# now restricted perms perms
	diropts -m2751
	dodir /var/state/${PN}

	exeopts -m750
	insopts -m640

	dodir /var/state/${PN}/last
	keepdir /var/state/${PN}/last

	diropts -m2750
	dodir /var/state/${PN}/put
	keepdir /var/state/${PN}/put
	dodir /var/state/${PN}/tmp
	keepdir /var/state/${PN}/tmp
	dodir /var/state/${PN}/update
	keepdir /var/state/${PN}/update

	insinto /var/state/${PN}
	doins cmd.local.example
	newins cmd.remote.example cmd.remote

	dodir /var/log/${PN}
	
	# configuration inject
	grep -B4000 '#################################################################' ${D}/usr/lib/${PN}/${PN}.conf >> ${D}/etc/conf.d/${PN}
}

pkg_postinst() {

	# chown to portage group have to be in postinst
	chown root:portage -R ${ROOT}/usr/lib/${PN}
	chown root:portage -R ${ROOT}/var/state/${PN}
	chown root:portage -R ${ROOT}/var/log/${PN}

	# ugly hack to overcome permissions of already existing dir
	chmod 2751 /usr/lib/${PN} /var/state/${PN} /var/state/${PN}/last

	# now we erase only files not modified in last 30 days
	tmpreaper --mtime 30d /var/state/${PN}/last /var/state/${PN}/tmp >/dev/null 2>/dev/null

	# also this is removed, to allow execution on next run
	rm -f /var/state/${PN}/last/portki.last.cmdr 2> /dev/null

	# patches glsa-check, this can be safely ignored
	patch /usr/bin/glsa-check ${S}/glsa-check_errlevel.patch >/dev/null
	
	einfo ""
	einfo "Main configuration file is located: /usr/lib/${PN}/${PN}.conf"
	einfo "But please modify ONLY your local version at: /etc/conf.d/${PN}"
	einfo ""
	einfo "You can use 'ebuild portki.ebuild config' command (shown below at ++) to:"
	einfo ".. append portki defaults to /etc/make.conf"
	einfo ".. append portki configuration to /etc/dispatch-conf.conf"
	einfo ".. install cron runner at /etc/cron.hourly/portki.cron"
	einfo ""
	einfo "++ ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config"
	einfo ""
}

pkg_config() {

	cp -f /usr/lib/${PN}/${PN}.cron /etc/cron.hourly/
	einfo "Installed cron runner at: /etc/cron.hourly/${PN}.cron"

	cat /usr/lib/${PN}/dispatch-conf.conf.recommended >> /etc/dispatch-conf.conf
	ewarn "Modified dispatch config file: /etc/dispatch-conf.conf -> INSPECT IT!"

	cat /usr/lib/${PN}/make.conf.recommended >> /etc/make.conf
	ewarn "Modified make.conf file at /etc/make.conf -> INSPECT IT!"

}