Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 286373 | Differences between
and this patch

Collapse All | Expand All

(-)a/emerge-delta-webrsync (-4 / +57 lines)
Lines 4-14 Link Here
4
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
4
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
5
# Rewritten from the old, Perl-based emerge-webrsync script
5
# Rewritten from the old, Perl-based emerge-webrsync script
6
6
7
argv0=$0
8
9
# error echos
10
eecho() { echo "${argv0}: error: $*" 1>&2 ; }
11
7
#-------------------
12
#-------------------
8
#initialization
13
#initialization
9
#------------------
14
#------------------
10
15
11
f=$(python -c 'import portage, sys; sys.stdout.write("|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "FEATURES", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_TMPDIR")]))')
16
f=$(python -c 'import portage, sys; sys.stdout.write("|".join([portage.settings[x] for x in ("PORTAGE_NICENESS", "FEATURES", "GENTOO_MIRRORS", "PORTDIR", "FETCHCOMMAND", "USERLAND", "DISTDIR", "PORTAGE_GPG_DIR", "PORTAGE_TMPDIR")]))')
12
17
13
IFS='|'
18
IFS='|'
14
PORTAGE_NICENESS="${f%%|*}";	f="${f#*|}"
19
PORTAGE_NICENESS="${f%%|*}";	f="${f#*|}"
Lines 18-23 PORTDIR="${f%%|*}" ; f="${f#*|}" Link Here
18
FETCHCOMMAND="${f%%|*}"	 ;		f="${f#*|}"
23
FETCHCOMMAND="${f%%|*}"	 ;		f="${f#*|}"
19
USERLAND="${f%%|*}"	 ;		f="${f#*|}"
24
USERLAND="${f%%|*}"	 ;		f="${f#*|}"
20
DISTDIR="${f%%|*}"	 ;		f="${f#*|}"
25
DISTDIR="${f%%|*}"	 ;		f="${f#*|}"
26
PORTAGE_GPG_DIR="${f%%|*}"	 ;		f="${f#*|}"
21
TMPDIR="${f%%|*}/snapshots"
27
TMPDIR="${f%%|*}/snapshots"
22
unset IFS
28
unset IFS
23
29
Lines 45-50 unset IFS Link Here
45
MUST_SYNC='1'
51
MUST_SYNC='1'
46
unset PUKE_HELP wgetops
52
unset PUKE_HELP wgetops
47
for x in $*; do
53
for x in $*; do
54
	case "${x}" in
55
		-q|--quiet)
56
			PORTAGE_QUIET=1
57
			continue
58
			;;
59
	esac
48
	if [[ $x == "-u" ]]; then
60
	if [[ $x == "-u" ]]; then
49
		MUST_SYNC=''
61
		MUST_SYNC=''
50
	elif [[ $x == "-k" ]]; then
62
	elif [[ $x == "-k" ]]; then
Lines 69-74 if [[ ! -d $STATE_DIR ]]; then Link Here
69
	exit -2
81
	exit -2
70
fi
82
fi
71
83
84
if has webrsync-gpg ${FEATURES} ; then
85
	WEBSYNC_VERIFY_SIGNATURE=1
86
else
87
	WEBSYNC_VERIFY_SIGNATURE=0
88
fi
89
if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then
90
	eecho "please set PORTAGE_GPG_DIR in make.conf"
91
	exit 1
92
fi
93
72
if [[ ! -d $DISTDIR ]] ; then
94
if [[ ! -d $DISTDIR ]] ; then
73
	mkdir -p $DISTDIR
95
	mkdir -p $DISTDIR
74
fi
96
fi
Lines 269-274 verify_md5_file() { Link Here
269
	fi
291
	fi
270
}
292
}
271
293
294
check_file_signature() {
295
	local signature="$1"
296
	local file="$2"
297
	local r=1
298
299
	if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
300
301
		vecho "Checking signature ..."
302
303
		if type -P gpg > /dev/null; then
304
			gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
305
		else
306
			eecho "cannot check signature: gpg binary not found"
307
			exit 1
308
		fi
309
	else
310
		r=0
311
	fi
312
313
	return "${r}"
314
}
272
315
273
#--------------------
316
#--------------------
274
#inline actual script
317
#inline actual script
Lines 428-434 else Link Here
428
		got_umd5=1
471
		got_umd5=1
429
	fi
472
	fi
430
fi
473
fi
431
	
474
475
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 && ! -e portage-${final_date}.tar.bz2.gpgsig ]] && \
476
	! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.gpgsig" "portage-${final_date}.tar.bz2.gpgsig" ; then
477
	echo "warning... couldn't grab the gpgsig for ${final_date}.  which is odd"
478
	echo "thus, bailing (sorry)"
479
	exit 5
480
fi
481
432
# generate tmp dir.
482
# generate tmp dir.
433
TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
483
TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
434
# got our patches.
484
# got our patches.
Lines 495-500 else Link Here
495
	mv "${TEMPDIR}/portage-${final_date}.tar.bz2" ${DISTDIR}/
545
	mv "${TEMPDIR}/portage-${final_date}.tar.bz2" ${DISTDIR}/
496
fi
546
fi
497
547
548
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
549
	check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${dfile}" || exit 1
550
fi
551
498
if [ -z "${need_last_sync}" ]; then
552
if [ -z "${need_last_sync}" ]; then
499
	echo "beginning update to the tree"
553
	echo "beginning update to the tree"
500
	sync_local "${dfile}"
554
	sync_local "${dfile}"
Lines 504-510 if [[ -z $KEEP_OLDIES ]]; then Link Here
504
	echo "cleansing"
558
	echo "cleansing"
505
	for x in $potentials; do
559
	for x in $potentials; do
506
		echo "removing ${x}"
560
		echo "removing ${x}"
507
		rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" &> /dev/null
561
		rm "${DISTDIR}/${x}"{,.md5sum,.umd5sum,.gpgsig} &> /dev/null
508
		rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
562
		rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
509
	done
563
	done
510
fi
564
fi
511
- 

Return to bug 286373