summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/emerge12
-rw-r--r--man/make.conf.56
2 files changed, 16 insertions, 2 deletions
diff --git a/bin/emerge b/bin/emerge
index eca2b24c1..7b5e6f378 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3945,6 +3945,12 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
del content
try:
+ rsync_initial_timeout = \
+ int(settings.get("PORTAGE_RSYNC_INITIAL_TIMEOUT", "15"))
+ except ValueError:
+ rsync_initial_timeout = 15
+
+ try:
if settings.has_key("RSYNC_RETRIES"):
print yellow("WARNING:")+" usage of RSYNC_RETRIES is deprecated, use PORTAGE_RSYNC_RETRIES instead"
maxretries=int(settings["RSYNC_RETRIES"])
@@ -4054,14 +4060,16 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
# Timeout here in case the server is unresponsive. The
# --timeout rsync option doesn't apply to the initial
# connection attempt.
- signal.alarm(15)
+ if rsync_initial_timeout:
+ signal.alarm(rsync_initial_timeout)
try:
mypids.extend(portage_exec.spawn(
mycommand, env=settings.environ(), returnpid=True))
exitcode = os.waitpid(mypids[0], 0)[1]
content = portage.grabfile(tmpservertimestampfile)
finally:
- signal.alarm(0)
+ if rsync_initial_timeout:
+ signal.alarm(0)
try:
os.unlink(tmpservertimestampfile)
except OSError:
diff --git a/man/make.conf.5 b/man/make.conf.5
index dc01a2c55..65de528bb 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -357,6 +357,12 @@ emerge is running at. In other words, this will not set the nice level,
it will increment it. For more information about nice levels and what
are acceptable ranges, see \fBnice\fR(1).
.TP
+\fBPORTAGE_RSYNC_INITIAL_TIMEOUT\fR = \fIinteger\fR
+Used by \fBemerge \-\-sync\fR as a timeout for the initial connection to an
+rsync server.
+.br
+Defaults to 15 seconds.
+.TP
\fBPORTAGE_RSYNC_EXTRA_OPTS\fR = \fI[rsync options string]\fR
Additional rsync options to be used by \fBemerge \-\-sync\fR.
.br