--- bin/emerge.org 2006-02-16 09:38:57.000000000 +0100 +++ bin/emerge 2006-02-16 10:47:37.000000000 +0100 @@ -2550,30 +2550,61 @@ sys.exit(1) mytimeout=180 if portage.settings.has_key("RSYNC_TIMEOUT"): + print "WARNING: usage of RSYNC_TIMEOUT is deprecated, use PORTAGE_RSYNC_OPTS instead" try: mytimeout=int(portage.settings["RSYNC_TIMEOUT"]) + rsync_flags.append("--timeout=%d" % mytimeout) except SystemExit, e: raise # Needed else can't exit except: pass - rsync_flags = [ - "--recursive", # Recurse directories - "--links", # Consider symlinks - "--safe-links", # Ignore links outside of tree - "--perms", # Preserve permissions - "--times", # Preserive mod times - "--compress", # Compress the data transmitted - "--force", # Force deletion on non-empty dirs - "--whole-file", # Don't do block transfers, only entire files - "--delete", # Delete files that aren't in the master tree - "--delete-after", # Delete only after everything else is done - "--stats", # Show final statistics about what was transfered - "--timeout="+str(mytimeout), # IO timeout if not done in X seconds - "--exclude='/distfiles'", # Exclude distfiles from consideration - "--exclude='/local'", # Exclude local from consideration - "--exclude='/packages'", # Exclude packages from consideration - ] + if (not portage.settings.has_key("PORTAGE_RSYNC_OPTS")) \ + or portage.settings["PORTAGE_RSYNC_OPTS"] == "": + print "PORTAGE_RSYNC_OPTS empty or unset, using hardcoded defaults" + rsync_flags = [ + "--recursive", # Recurse directories + "--links", # Consider symlinks + "--safe-links", # Ignore links outside of tree + "--perms", # Preserve permissions + "--times", # Preserive mod times + "--compress", # Compress the data transmitted + "--force", # Force deletion on non-empty dirs + "--whole-file", # Don't do block transfers, only entire files + "--delete", # Delete files that aren't in the master tree + "--delete-after", # Delete only after everything else is done + "--stats", # Show final statistics about what was transfered + "--timeout="+str(mytimeout), # IO timeout if not done in X seconds + "--exclude='/distfiles'", # Exclude distfiles from consideration + "--exclude='/local'", # Exclude local from consideration + "--exclude='/packages'", # Exclude packages from consideration + ] + rsync_opts = "" + else: + # handle default opts later + print "using PORTAGE_RSYNC_OPTS instead of hardcoded defaults" + rsync_flags = [] + rsync_opts = portage.settings["PORTAGE_RSYNC_OPTS"] + + # TODO: determine required options + for opt in ["--recursive","--times"]: + if not rsync_opts.find(opt) >= 0: + print yellow("WARNING:")+" adding required option %s not included in PORTAGE_RSYNC_OPTS" % opt + rsync_flags.append(opt) + + # TODO: determine options required for official servers + if syncuri.rstrip("/").endswith(".gentoo.org/gentoo-portage"): + if not rsync_opts.find("--timeout") >= 0: + rsync_flags.append("--timeout=180") + for opt in ["--compress", "--whole-file"]: + if not rsync_opts.find(opt) >= 0: + print yellow("WARNING:")+" adding required option %s not included in PORTAGE_RSYNC_OPTS" % opt + rsync_flags.append(opt) + for exclude in ["distfiles","local","packages"]: + opt = "--exclude='/"+exclude+"'" + if not rsync_opts.find(opt) >= 0: + print yellow("WARNING:")+" adding required option %s not included in PORTAGE_RSYNC_OPTS" % opt + rsync_flags.append(opt) if "--quiet" in myopts: rsync_flags.append("--quiet") # Shut up a lot @@ -2587,15 +2618,19 @@ rsync_flags.append("--checksum") # Force checksum on all files if portage.settings.has_key("RSYNC_EXCLUDEFROM"): + print yellow("WARNING:")+" usage of RSYNC_EXCLUDEFROM is deprecated, use PORTAGE_RSYNC_OPTS instead" if os.path.exists(portage.settings["RSYNC_EXCLUDEFROM"]): rsync_flags.append("--exclude-from="+portage.settings["RSYNC_EXCLUDEFROM"]) else: print "!!! RSYNC_EXCLUDEFROM specified, but file does not exist." if portage.settings.has_key("RSYNC_RATELIMIT"): + print yellow("WARNING:")+" usage of RSYNC_RATELIMIT is deprecated, use PORTAGE_RSYNC_OPTS instead" rsync_flags.append("--bwlimit="+portage.settings["RSYNC_RATELIMIT"]) - rsynccommand = "/usr/bin/rsync " + string.join(rsync_flags, " ") + rsynccommand = "/usr/bin/rsync " + rsync_opts + " " + string.join(rsync_flags, " ") + + print rsynccommand servertimestampdir = portage.settings.depcachedir+"/" servertimestampfile = portage.settings.depcachedir+"/timestamp.chk" --- cnf/make.globals.org 2006-01-24 17:58:48.000000000 +0100 +++ cnf/make.globals 2006-02-16 09:57:41.000000000 +0100 @@ -52,7 +52,9 @@ RSYNC_RETRIES="3" # Number of seconds rsync will wait before timing out. -RSYNC_TIMEOUT="180" +#RSYNC_TIMEOUT="180" + +PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" # Minimal CONFIG_PROTECT CONFIG_PROTECT="/etc"