summaryrefslogtreecommitdiff
blob: 68405a1f8c1bd708b5c0cfefe75db31d58096182 (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
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 ) # not 2.6 bug #33907, not 3.0 bug #411083

inherit eutils python-single-r1 systemd

MY_P="${PN}_${PV}"

DESCRIPTION="Proxy cache for Gentoo packages"
HOMEPAGE="https://sourceforge.net/projects/http-replicator"
SRC_URI="mirror://sourceforge/http-replicator/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 hppa ppc ~sparc x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"

RDEPEND="${PYTHON_DEPS}"
DEPEND="${RDEPEND}"

S="${WORKDIR}/${MY_P}"

PATCHES=(
	"${FILESDIR}/http-replicator-3.0-sighup.patch"
	"${FILESDIR}/http-replicator-3-unique-cache-name.patch"
	"${FILESDIR}/http-replicator-3-missing-directory.patch"
)

pkg_setup() {
	python-single-r1_pkg_setup
}

src_install() {
	# Daemon and repcacheman into /usr/bin
	python_scriptinto /usr/bin
	python_doscript http-replicator
	python_newscript "${FILESDIR}/http-replicator-3.0-repcacheman-0.44-r2" repcacheman.py

	exeinto /usr/bin
	newexe "${FILESDIR}/http-replicator-3.0-callrepcacheman-0.1" repcacheman

	# init.d scripts
	newinitd "${FILESDIR}/http-replicator-3.0.init" http-replicator
	newconfd "${FILESDIR}/http-replicator-3.0.conf" http-replicator

	systemd_dounit "${FILESDIR}"/http-replicator.service
	systemd_install_serviced "${FILESDIR}"/http-replicator.service.conf

	# Docs
	dodoc README debian/changelog

	# Man Page - Not Gentooified yet
	doman http-replicator.1

	insinto /etc/logrotate.d
	newins debian/logrotate http-replicator
}

pkg_postinst() {
	elog
	ewarn "Before starting http-replicator, please follow the next few steps:"
	elog "- Modify /etc/conf.d/http-replicator if required."
	ewarn "- Run /usr/bin/repcacheman to set up the cache."
	elog "- Add http_proxy=\"http://serveraddress:8080\" to make.conf on"
	elog "  the server as well as on the client machines."
	elog "- Make sure FETCHCOMMAND adds the X-unique-cache-name header to"
	elog "  HTTP requests in make.conf (or maybe portage will add it to"
	elog "  the default make.globals someday).  Example:"
	elog '   FETCHCOMMAND="wget -t 3 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" --header=\"X-unique-cache-name: \${FILE}\" \"\${URI}\""'
	elog '   RESUMECOMMAND="wget -c -t 3 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" --header=\"X-unique-cache-name: \${FILE}\" \"\${URI}\""'
	elog "- Arrange to periodically run repcacheman on this server,"
	elog "  to clean up the local /usr/portage/distfiles directory."
	elog "- Arrange to periodically run something like the following"
	elog "  on this server.  'eclean' is in app-portage/gentoolkit."
	elog "    ( export DISTDIR=/var/cache/http-replicator/"
	elog "      eclean -i distfiles )"
	elog "- Even with FETCHCOMMAND fixing most cases, occasionally"
	elog "  an older invalid version of a file may end up in the cache,"
	elog "  causing checksum failures when portage tries to fetch"
	elog "  it.  To recover, either use eclean (above), manually delete"
	elog "  the relevant file from the cache, or temporarily comment"
	elog "  out the http_proxy setting.  Commenting only requires"
	elog "  access to client config, not server cache."
	elog "- Make sure GENTOO_MIRRORS in /etc/portage/make.conf starts"
	elog "  with several good http mirrors."
	elog
	elog "For more information please refer to the following forum thread:"
	elog "  http://forums.gentoo.org/viewtopic-t-173226.html"
	elog
}