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 (-5 / +62 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 454-460 unset need_last_sync Link Here
454
if [ "$verified" == "1" ]; then
504
if [ "$verified" == "1" ]; then
455
	echo "recompressing. (backgrounding)"
505
	echo "recompressing. (backgrounding)"
456
	need_last_sync="dar"
506
	need_last_sync="dar"
457
	bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
507
	if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
508
		bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar"
509
		check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TEMPDIR}/portage-${final_date}.tar.bz2" || exit 1
510
	else
511
		bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
512
	fi
458
513
459
	echo "beginning update to the tree"
514
	echo "beginning update to the tree"
460
	sync_local "${TEMPDIR}/portage-${final_date}.tar"
515
	sync_local "${TEMPDIR}/portage-${final_date}.tar"
Lines 496-501 else Link Here
496
fi
551
fi
497
552
498
if [ -z "${need_last_sync}" ]; then
553
if [ -z "${need_last_sync}" ]; then
554
	if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
555
		check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${dfile}" || exit 1
556
	fi
499
	echo "beginning update to the tree"
557
	echo "beginning update to the tree"
500
	sync_local "${dfile}"
558
	sync_local "${dfile}"
501
fi
559
fi
Lines 504-510 if [[ -z $KEEP_OLDIES ]]; then Link Here
504
	echo "cleansing"
562
	echo "cleansing"
505
	for x in $potentials; do
563
	for x in $potentials; do
506
		echo "removing ${x}"
564
		echo "removing ${x}"
507
		rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" &> /dev/null
565
		rm "${DISTDIR}/${x}"{,.md5sum,.umd5sum,.gpgsig} &> /dev/null
508
		rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
566
		rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
509
	done
567
	done
510
fi
568
fi
511
- 

Return to bug 286373