* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 0:09 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 0:09 UTC (permalink / raw
To: gentoo-commits
commit: 44b0faa3b84c1fd39ef72f58677ed3bcd6c82109
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 17 23:38:40 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Aug 17 23:57:37 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=44b0faa3
emerge-delta-webrsync: import version 3.5.1-r3
---
misc/emerge-delta-webrsync | 512 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 512 insertions(+), 0 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
new file mode 100755
index 0000000..6e1f5cf
--- /dev/null
+++ b/misc/emerge-delta-webrsync
@@ -0,0 +1,512 @@
+#!/bin/bash
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
+# Rewritten from the old, Perl-based emerge-webrsync script
+
+#-------------------
+#initialization
+#------------------
+
+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")]))')
+
+IFS='|'
+PORTAGE_NICENESS="${f%%|*}"; f="${f#*|}"
+FEATURES="${f%%|*}" ; f="${f#*|}"
+GENTOO_MIRRORS="${f%%|*}" ; f="${f#*|}"
+PORTDIR="${f%%|*}" ; f="${f#*|}"
+FETCHCOMMAND="${f%%|*}" ; f="${f#*|}"
+USERLAND="${f%%|*}" ; f="${f#*|}"
+DISTDIR="${f%%|*}" ; f="${f#*|}"
+TMPDIR="${f%%|*}/snapshots"
+unset IFS
+
+source /usr/lib/portage/bin/isolated-functions.sh || exit 1
+
+if [ -z "$NICENESS_PULLED" ]; then
+ if [ -n "${PORTAGE_NICENESS}" ]; then
+ export NICENESS_PULLED=asdf
+ exec nice -n "${PORTAGE_NICENESS}" "$0" "$@"
+ echo "failed setting PORTAGE_NICENESS to '$PORTAGE_NICENESS', disabling"
+ fi
+fi
+
+STATE_DIR="/var/delta-webrsync/"
+
+# hack. bug 92224
+if [ "${FETCHCOMMAND/getdelta.sh}" != "${FETCHCOMMAND}" ]; then
+ # evil evil evil evil
+ eval "$(grep FETCHCOMMAND /etc/make.globals)"
+fi
+
+unset f
+unset IFS
+
+MUST_SYNC='1'
+unset PUKE_HELP wgetops
+for x in $*; do
+ if [[ $x == "-u" ]]; then
+ MUST_SYNC=''
+ elif [[ $x == "-k" ]]; then
+ KEEP_OLDIES='asdf'
+ elif [[ $x == "-h" ]]; then
+ PUKE_HELP=1
+ elif [[ $x == "-v" ]]; then
+ wgetops=
+ else
+ PUKE_HELP=1
+ echo "$x isn't a valid arg. bailing."
+ fi
+ if [[ -n $PUKE_HELP ]]; then
+ echo "-u for upgrade; sync only if new snapshots are found"
+ echo "-k for keep; keep old tree snapshots around"
+ exit -1
+ fi
+done
+
+if [[ ! -d $STATE_DIR ]]; then
+ echo "$STATE_DIR doesn't exist. don't have the ability to compensate for compressor differences without it!"
+ exit -2
+fi
+
+if [[ ! -d $DISTDIR ]] ; then
+ mkdir -p $DISTDIR
+fi
+if [[ ! -d $TMPDIR ]]; then
+ mkdir -p $TMPDIR
+fi
+
+cd "$DISTDIR"
+
+found=0
+if [ "${wgetops-UNSET}" == "unset" ]; then
+ #this sucks. probably better to do 1> /dev/null
+ #that said, waiting on the refactoring.
+ if [ "${FETCHCOMMAND/wget}" != "${FETCHCOMMAND}" ]; then
+ wgetops="-q"
+ elif [ "${FETCHCOMMAND/curl}" != "${FETCHCOMMAND}" ]; then
+ wgetops="-s -f"
+ fi
+fi
+
+if type -p md5sum > /dev/null; then
+ md5_com='md5sum -c "${MD5_LOC}" &> /dev/null'
+elif type -p md5 > /dev/null; then
+ md5_com='[ "$(md5 -q ${FILE})" == "$(cut -d \ -f 1 ${MD5_LOC})" ]'
+else
+ echo "warning, unable to do md5 verification of the snapshot!"
+ echo "no suitable md5/md5sum binary was found!"
+ md5_com='true'
+fi
+
+#---------------
+#funcs
+#---------------
+
+cleanse_state_dir() {
+ [[ ${STATE_DIR:-/} != '/' ]] && rm ${STATE_DIR}/* &> /dev/null;
+}
+
+full_version_attempt() {
+ local FILE file_exists
+ echo "Fetching most recent snapshot"
+ declare -i attempts=-1
+ while (( $attempts < 40 )) ; do
+ unset file_exists
+ attempts=$(( attempts + 1 ))
+
+ #this too, sucks. it works in the interim though.
+ if [ "$USERLAND" == "BSD" ] || [ "$USERLAND" == "Darwin" ] ; then
+ daysbefore=$(expr $(date +"%s") - 86400 \* $attempts)
+ day=$(date -r $daysbefore +"%d")
+ month=$(date -r $daysbefore +"%m")
+ year=$(date -r $daysbefore +"%Y")
+ else
+ day=$(date -d "-$attempts day" +"%d")
+ month=$(date -d "-$attempts day" +"%m")
+ year=$(date -d "-$attempts day" +"%Y")
+ fi
+
+ FILE="portage-${year}${month}${day}.tar.bz2"
+
+ echo "Attempting to fetch file dated: ${year}${month}${day}"
+
+ got_md5=0
+
+ if [ ! -e "${FILE}.md5sum" ]; then
+ fetch_from_mirrors "/snapshots/${FILE}.md5sum" "${FILE}.md5sum"
+ got_md5=$?
+ else
+ file_exists='asdf'
+ got_md5=0
+ fi
+
+ if [[ $got_md5 != 0 ]]; then
+ echo " --- No md5sum present on the mirror. (Not yet available.)"
+ continue
+ elif [ -s "${FILE}" ]; then
+ if verify_md5_file "$FILE"; then
+ echo " === snapshot $FILE is correct, using it"
+ if [[ -n $MUST_SYNC ]] || [[ -z file_exists ]]; then
+ sync_local "${FILE}"
+ echo
+ echo " === Snapshot has been sync'd"
+ echo
+ else
+ echo
+ echo "skipped sync"
+ echo
+ fi
+ exit 0
+ else
+ echo "md5 on ${FILE} failed, removing it and starting anew"
+ rm "$FILE" &> /dev/null
+ fi
+ fi
+
+ if fetch_from_mirrors "/snapshots/${FILE}" "${FILE}"; then
+ if ! verify_md5_file "$FILE"; then
+ echo "md5 failed on $FILE"
+ rm ${FILE} &> /dev/null
+ continue
+ else
+ sync_local "${FILE}"
+ cleanse_state_dir
+ echo
+ echo " *** Completed websync, please now perform a normal rsync if possible."
+ echo " Update is current as of YYYYMMDD: ${year}${month}${day}"
+ echo
+ exit 0
+ fi
+ fi
+
+ done
+ exit 1
+}
+
+
+sync_local() {
+ local FILE flags
+ FILE="$1"
+ if [ "${FILE/\/}" == "${FILE}" ]; then
+ FILE="${DISTDIR}/${FILE}";
+ fi
+
+ echo Syncing local tree...
+ if type -p tarsync &> /dev/null; then
+ echo "apparently you have tarsync installed. using it."
+ if ! tarsync "${FILE}" "${PORTDIR}" -v -s 1 -o portage -g portage -e /distfiles -e /packages -e /local; then
+ echo "ok, tarsync failed. that's teh suck :/"
+ exit 6
+ fi
+ else
+ cd ${TMPDIR} || die "couldn't cd to tmpdir, $TMPDIR!?"
+ flags="xf"
+ if [ "${FILE%.bz2}" != "${FILE}" ]; then
+ flags="jxf"
+ fi
+ if ! tar ${flags} "$FILE"; then
+ echo "Tar failed to extract the image. Please review the output."
+ echo "Executed command: tar jxf $FILE"
+ exit 1
+ fi
+ # Make sure user and group file ownership is root
+ chown -R 0:0 portage
+ cd portage
+ rsync -av --progress --stats --delete --delete-after \
+ --exclude='/distfiles' --exclude='/packages' \
+ --exclude='/local' . ${PORTDIR%%/}
+ cd ..
+ echo "cleaning up"
+ rm -rf portage
+ fi
+ if has metadata-transfer ${FEATURES} ; then
+ echo "transferring metadata/cache"
+ emerge --metadata
+ fi
+ local post_sync=/etc/portage/bin/post_sync
+ [[ -x "${post_sync}" ]] && ${post_sync}
+}
+
+fetch_from_mirrors() {
+ local i URI FILE MIRRORS
+ if [[ "$#" == 3 ]]; then
+ MIRRORS="${3}"
+ else
+ MIRRORS=$GENTOO_MIRRORS
+ fi
+ FILE="$2"
+ for i in $MIRRORS ; do
+ URI="${i}/${1}"
+ if (eval "$FETCHCOMMAND $wgetops") && [ -s "${FILE}" ]; then
+ return 0
+ else
+ rm "${FILE}" &> /dev/null
+ fi
+ done
+ return 1
+}
+
+verify_md5_file() {
+ local FILE MD5_LOC CUR
+ FILE="$1"
+ if [[ $# == 2 ]]; then
+ MD5_LOC="$2"
+ else
+ MD5_LOC="$(pwd)/$1.md5sum"
+ fi
+ if [ "${FILE/*\/}" != "$1" ]; then
+ CUR="$(pwd)"
+ cd "$(dirname ${FILE})"
+ FILE="$(basename ${FILE})"
+ fi
+ if eval "$md5_com"; then
+ [ -n "${CUR}" ] && cd "${CUR}"
+ return 0
+ else
+ [ -n "${CUR}" ] && cd "${CUR}"
+ return 1
+ fi
+}
+
+
+#--------------------
+#inline actual script
+#--------------------
+
+if ! type -p patcher &> /dev/null; then
+ echo "!!!"
+ echo "!!! cannot find patcher, did you emerge dev-util/diffball?"
+ echo "!!! lack of patcher == have to do full fetch"
+ echo "!!!"
+ sleep 10
+ full_version_attempt
+fi
+
+echo "Looking for available base versions for a delta"
+
+#note we're already in distdir
+
+unset base_version
+# portage-snapshots in reverse order.
+# icky.
+unset dfile
+potentials="$(ls -1 portage-2[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]].tar.bz2 ${STATE_DIR}/portage-2[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]].tar.bz2 2> /dev/null | sed -e 's:^.*/::' | sort -r)"
+for basef in ${potentials}; do
+ chksum=''
+ found="dar"
+ if [ -e "${STATE_DIR}/${basef}.md5sum" ]; then
+ chksum="${STATE_DIR}/${basef}.md5sum"
+ elif [ -e "${basef}.md5sum" ]; then
+ chksum="${DISTDIR}/${basef}.md5sum"
+ else
+ echo "attempting to get md5sum for $basef"
+ if ! fetch_from_mirrors "/snapshots/${basef}.md5sum" "${basef}.md5sum"; then
+ echo "can't get md5 for ${basef}"
+ continue
+ fi
+ chksum="${basef}.md5sum"
+ fi
+ if [ -e "${basef}" ]; then
+ dfile="${DISTDIR}/${basef}"
+ else
+ dfile="${STATE_DIR}/${basef}"
+ fi
+ if ! verify_md5_file "${dfile}" "${chksum}"; then
+ echo "found a stale snapshot. cleansing"
+ rm "${dfile}" &> /dev/null
+ rm "${chksum}.md5sum" &> /dev/null
+ dar=""
+ else
+ base_version="${basef}"
+ break
+ fi
+done
+
+#by this point, we either have a base_version, or we don't.
+if [[ -z ${base_version} ]]; then
+ echo "no base found. resorting to pulling a full version"
+ full_version_attempt
+fi
+
+#we have a md5 verified base. now we get the patch.
+
+base_date="${base_version%.tar.bz2}"
+base_date="${base_date#portage-}"
+# we now have yyyymmdd
+
+unset patch_dates
+if [ "$USERLAND" == "BSD" ] || [ "$USERLAND" == "Darwin" ] ; then
+ daysbefore=$(expr $(date +"%s") - 86400 \* $attempts)
+ day=$(date -r $daysbefore +"%d")
+ month=$(date -r $daysbefore +"%m")
+ year=$(date -r $daysbefore +"%Y")
+else
+ day=$(date -d "-$attempts day" +"%d")
+ month=$(date -d "-$attempts day" +"%m")
+ year=$(date -d "-$attempts day" +"%Y")
+fi
+
+#todays_date="${year}${month}${day}"
+
+next_date() {
+ local year day month
+ year="${1:0:4}"
+ month="${1:4:2}"
+ day="${1:6:2}"
+# if [[ "${USERLAND}" == "BSD" ]] || [[ "${USERLAND}" == "Darwin" ]]; then
+# else
+ date -d "$year/$month/$day +1 day" +"%Y%m%d"
+# fi
+}
+
+patches=''
+echo "fetching patches"
+fetched='asdf'
+while [[ -n ${fetched} ]]; do
+ next_day=$(next_date ${base_date})
+ # if we can't get a *single* patch or md5, even one missing, do full.
+ p="snapshot-${base_date}-${next_day}.patch.bz2"
+ if [[ ! -e ${p}.md5sum ]] && ! fetch_from_mirrors "/snapshots/deltas/${p}.md5sum" "${p}.md5sum"; then
+ echo "failed fetching ${p}.md5sum"
+ fetched=''
+ break
+ fi
+ fetch="yes"
+ if [[ -e ${p} ]]; then
+ if ! verify_md5_file "${p}"; then
+ rm ${p} &> /dev/null
+ else
+ fetch=""
+ fi
+ fi
+ if [[ -n $fetch ]]; then
+ if ! fetch_from_mirrors "/snapshots/deltas/${p}" "${p}"; then
+ echo "failed fetching ${p}"
+ fetched=''
+ fi
+ fi
+ if [[ -z ${fetched} ]]; then
+ break
+ fi
+ if ! verify_md5_file "${p}"; then
+ echo "md5 failed on ${p}"
+ fetched=''
+ break
+ fi
+ patches="${patches} ${p}"
+ base_date="${next_day}"
+done
+final_date=${base_date}
+
+if [[ -z $patches ]]; then
+ echo "no patches found? up to date?"
+ if [[ -n $MUST_SYNC ]]; then
+ echo "syncing with existing file"
+ sync_local "${dfile}"
+ else
+ :
+ fi
+ exit $?
+fi
+
+unset got_umd5
+#grab the md5 for later usage.
+if [[ ! -e portage-${final_date}.tar.bz2.md5sum ]] && ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.md5sum" "portage-${final_date}.tar.bz2.md5sum"; then
+ echo "warning... couldn't grab the md5sum for ${final_date}. which is odd"
+ echo "thus, bailing (sorry)"
+ exit 5
+else
+ if [[ ! -e portage-${final_date}.tar.bz2.umd5sum ]] && ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum" "portage-${final_date}.tar.bz2.umd5sum"; then
+ if ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.umd5sum" "portage-${final_date}.tar.bz2.umd5sum"; then
+ echo "couldn't grab umd5sum (uncompressed md5sum) for ${final_date}."
+ echo "can't compensate for bzip2 version differences iow."
+ else
+ got_umd5=1
+ fi
+ else
+ got_umd5=1
+ fi
+fi
+
+# generate tmp dir.
+TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
+# got our patches.
+if ! patcher -v "${dfile}" ${patches} "${TEMPDIR}/portage-${final_date}.tar"; then
+ echo "reconstruction failed (contact the author with the error from the reconstructor please)"
+ rm "${TEMPDIR}/portage-${final_date}.tar"
+ rmdir ${TEMPDIR}
+ full_version_attempt
+fi
+verified=0
+if [[ -n $got_umd5 ]]; then
+ echo "verifying uncompressed md5"
+ if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar" "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum"; then
+ echo "uncompressed verification failed. This means either you found a bug in diffball, or something odd is going on"
+ echo "with upstream patch generation"
+ echo "trying md5sum next, which probably will fail."
+ else
+ verified="1"
+ fi
+fi
+
+unset need_last_sync
+if [ "$verified" == "1" ]; then
+ echo "recompressing. (backgrounding)"
+ need_last_sync="dar"
+ bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
+
+ echo "beginning update to the tree"
+ sync_local "${TEMPDIR}/portage-${final_date}.tar"
+ echo "doing final md5 stuff"
+ wait
+ # bzip2 is finished now.
+ rm "${TEMPDIR}/portage-${final_date}.tar"
+else
+ echo "recompressing."
+ bzip2 -v9 "${TEMPDIR}/portage-${final_date}.tar.bz2"
+fi
+
+echo "verifying generated tarball"
+
+if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/portage-${final_date}.tar.bz2.md5sum"; then
+ if [[ -z $verified ]]; then
+ echo "couldn't verify the generated tarball. bug, most likely."
+ exit 5
+ fi
+ # hokay. md5 doesn't agree with umd5. bzip2 issue in effect.
+ echo "compressed md5 differs, but uncompressed md5 says it right. bzip2 version incompatability in other words"
+ echo "saving the md5"
+ if type -p md5sum &> /dev/null; then
+ md5sum ${TEMPDIR}/portage-${final_date}.tar.bz2 | sed -e "s:${TEMPDIR}/\?::" > \
+ ${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum
+ elif type -p md5 &> /dev/null; then
+ echo "$(md5 -q ${TEMPDIR}/portage-${final_date}.tar.bz2) portage-${final_date}.tar.bz2" > \
+ ${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum
+ else
+ echo "couldn't find either md5 or md5sum. something is screwed... (bailing, sorry)"
+ exit 7
+ fi
+ mv "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum" "${TEMPDIR}/portage-${final_date}.tar.bz2" ${STATE_DIR}/
+ rmdir ${TEMPDIR}
+ dfile="${STATE_DIR}/portage-${final_date}.tar.bz2"
+else
+ dfile="${DISTDIR}/portage-${final_date}.tar.bz2"
+ mv "${TEMPDIR}/portage-${final_date}.tar.bz2" ${DISTDIR}/
+fi
+
+if [ -z "${need_last_sync}" ]; then
+ echo "beginning update to the tree"
+ sync_local "${dfile}"
+fi
+
+if [[ -z $KEEP_OLDIES ]]; then
+ echo "cleansing"
+ for x in $potentials; do
+ echo "removing ${x}"
+ rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" &> /dev/null
+ rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
+ done
+fi
+echo "done."
+
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: f6b15499b54b9b7766cf3cd4b0a053cff76c9749
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 00:27:18 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 00:27:18 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=f6b15499
emerge-delta-webrsync: call portageq for config
---
misc/emerge-delta-webrsync | 41 ++++++++++++++++++++++++++---------------
1 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 6e1f5cf..729188b 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -1,27 +1,38 @@
#!/bin/bash
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
# Rewritten from the old, Perl-based emerge-webrsync script
+argv0=$0
+
+# error echos
+eecho() { echo "${argv0##*/}: error: $*" 1>&2 ; }
+
#-------------------
#initialization
#------------------
-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")]))')
-
-IFS='|'
-PORTAGE_NICENESS="${f%%|*}"; f="${f#*|}"
-FEATURES="${f%%|*}" ; f="${f#*|}"
-GENTOO_MIRRORS="${f%%|*}" ; f="${f#*|}"
-PORTDIR="${f%%|*}" ; f="${f#*|}"
-FETCHCOMMAND="${f%%|*}" ; f="${f#*|}"
-USERLAND="${f%%|*}" ; f="${f#*|}"
-DISTDIR="${f%%|*}" ; f="${f#*|}"
-TMPDIR="${f%%|*}/snapshots"
-unset IFS
-
-source /usr/lib/portage/bin/isolated-functions.sh || exit 1
+# Use portageq from the same directory/prefix as the current script, so
+# that we don't have to rely on PATH including the current EPREFIX.
+scriptpath=${BASH_SOURCE[0]}
+if [ -x "${scriptpath%/*}/portageq" ]; then
+ portageq=${scriptpath%/*}/portageq
+elif type -P portageq > /dev/null ; then
+ portageq=portageq
+else
+ eecho "could not find 'portageq'; aborting"
+ exit 1
+fi
+eval $("${portageq}" envvar -v DISTDIR FEATURES FETCHCOMMAND GENTOO_MIRRORS \
+ PORTAGE_BIN_PATH PORTAGE_GPG_DIR \
+ PORTAGE_NICENESS PORTAGE_RSYNC_EXTRA_OPTS \
+ PORTAGE_RSYNC_OPTS PORTAGE_TMPDIR PORTDIR \
+ USERLAND http_proxy ftp_proxy)
+export http_proxy ftp_proxy
+TMPDIR=${PORTAGE_TMPDIR}/snapshots
+
+source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if [ -z "$NICENESS_PULLED" ]; then
if [ -n "${PORTAGE_NICENESS}" ]; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 79674c13905962dc380ea4f951233d4cada32f5b
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 00:47:57 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 00:47:57 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=79674c13
emerge-delta-webrsync: support gpg verification
This will fix bug #286373.
BUG: Signature verification will fail if the local bzip2 program does
not produce output that is perfectly identical to the bzip2 program
used to compress the signed tar file.
---
misc/emerge-delta-webrsync | 62 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 5df9658..2f73c90 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -4,6 +4,13 @@
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
# Rewritten from the old, Perl-based emerge-webrsync script
+#
+# gpg key import
+# KEY_ID=0x96D8BF6D
+# gpg --homedir /etc/portage/gnupg --keyserver subkeys.pgp.net --recv-keys $KEY_ID
+# gpg --homedir /etc/portage/gnupg --edit-key $KEY_ID trust
+#
+
argv0=$0
# error echos
@@ -80,6 +87,16 @@ if [[ ! -d $STATE_DIR ]]; then
exit -2
fi
+if has webrsync-gpg ${FEATURES} ; then
+ WEBSYNC_VERIFY_SIGNATURE=1
+else
+ WEBSYNC_VERIFY_SIGNATURE=0
+fi
+if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then
+ eecho "please set PORTAGE_GPG_DIR in make.conf"
+ exit 1
+fi
+
if [[ ! -d $DISTDIR ]] ; then
mkdir -p $DISTDIR
fi
@@ -280,6 +297,27 @@ verify_md5_file() {
fi
}
+check_file_signature() {
+ local signature="$1"
+ local file="$2"
+ local r=1
+
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
+
+ vecho "Checking signature ..."
+
+ if type -P gpg > /dev/null; then
+ gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
+ else
+ eecho "cannot check signature: gpg binary not found"
+ exit 1
+ fi
+ else
+ r=0
+ fi
+
+ return "${r}"
+}
#--------------------
#inline actual script
@@ -439,7 +477,14 @@ else
got_umd5=1
fi
fi
-
+
+if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 && ! -e portage-${final_date}.tar.bz2.gpgsig ]] && \
+ ! fetch_from_mirrors "/snapshots/portage-${final_date}.tar.bz2.gpgsig" "portage-${final_date}.tar.bz2.gpgsig" ; then
+ echo "warning... couldn't grab the gpgsig for ${final_date}. which is odd"
+ echo "thus, bailing (sorry)"
+ exit 5
+fi
+
# generate tmp dir.
TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
# got our patches.
@@ -465,7 +510,15 @@ unset need_last_sync
if [ "$verified" == "1" ]; then
echo "recompressing. (backgrounding)"
need_last_sync="dar"
- bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
+ # BUG: Signature verification will fail if the local bzip2
+ # program does not produce output that is perfectly identical
+ # to the bzip2 program used to compress the signed tar file.
+ bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar"
+ check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TEMPDIR}/portage-${final_date}.tar.bz2" || exit 1
+ else
+ bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
+ fi
echo "beginning update to the tree"
sync_local "${TEMPDIR}/portage-${final_date}.tar"
@@ -507,6 +560,9 @@ else
fi
if [ -z "${need_last_sync}" ]; then
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
+ check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${dfile}" || exit 1
+ fi
echo "beginning update to the tree"
sync_local "${dfile}"
fi
@@ -515,7 +571,7 @@ if [[ -z $KEEP_OLDIES ]]; then
echo "cleansing"
for x in $potentials; do
echo "removing ${x}"
- rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" "${DISTDIR}/${x}.umd5sum" &> /dev/null
+ rm -f "${DISTDIR}/${x}"{,.md5sum,.umd5sum,.gpgsig} &> /dev/null
rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
done
fi
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 1c5bda94674222d5ada06c74f5578ea99b7aaf2c
Author: Alexey Solovyev <asoloviev <AT> mail15 <DOT> com>
AuthorDate: Sat Aug 18 00:32:52 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 00:32:52 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1c5bda94
emerge-delta-webrsync: remove umd5sum
This will fix bug #189084.
---
misc/emerge-delta-webrsync | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 729188b..5df9658 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -515,7 +515,7 @@ if [[ -z $KEEP_OLDIES ]]; then
echo "cleansing"
for x in $potentials; do
echo "removing ${x}"
- rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" &> /dev/null
+ rm "${DISTDIR}/${x}" "${DISTDIR}/${x}.md5sum" "${DISTDIR}/${x}.umd5sum" &> /dev/null
rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
done
fi
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 76fa7e4b7a28804d42b2fa7f50f9d9bfc73312b9
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 01:12:41 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 01:12:41 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=76fa7e4b
emerge-delta-webrsync: add -q/--quiet option
---
misc/emerge-delta-webrsync | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 3b934ff..aa3a3d9 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -63,6 +63,12 @@ unset IFS
MUST_SYNC='1'
unset PUKE_HELP wgetops
for x in $*; do
+ case "${x}" in
+ -q|--quiet)
+ PORTAGE_QUIET=1
+ continue
+ ;;
+ esac
if [[ $x == "-u" ]]; then
MUST_SYNC=''
elif [[ $x == "-k" ]]; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 87a769bdab8e54c68260996026c87d3d7845d2e6
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 00:57:19 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 00:57:19 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=87a769bd
emerge-delta-webrsync: handle FEATURES=usersync
---
misc/emerge-delta-webrsync | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 2f73c90..e23316a 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -221,9 +221,24 @@ sync_local() {
fi
echo Syncing local tree...
+
+ local ownership="portage:portage"
+ if has usersync ${FEATURES} ; then
+ case "${USERLAND}" in
+ BSD)
+ ownership=$(stat -f '%Su:%Sg' "${PORTDIR}")
+ ;;
+ *)
+ ownership=$(stat -c '%U:%G' "${PORTDIR}")
+ ;;
+ esac
+ fi
+
if type -p tarsync &> /dev/null; then
echo "apparently you have tarsync installed. using it."
- if ! tarsync "${FILE}" "${PORTDIR}" -v -s 1 -o portage -g portage -e /distfiles -e /packages -e /local; then
+ local chown_opts="-o ${ownership%:*} -g ${ownership#*:}"
+ chown ${ownership} "${PORTDIR}" > /dev/null 2>&1 || chown_opts=""
+ if ! tarsync "${FILE}" "${PORTDIR}" -v -s 1 ${chown_opts} -e /distfiles -e /packages -e /local; then
echo "ok, tarsync failed. that's teh suck :/"
exit 6
fi
@@ -238,8 +253,9 @@ sync_local() {
echo "Executed command: tar jxf $FILE"
exit 1
fi
- # Make sure user and group file ownership is root
- chown -R 0:0 portage
+ # Make sure user and group file ownership is appropriate
+ chown ${ownership} portage > /dev/null 2>&1 && \
+ chown -R ${ownership} portage
cd portage
rsync -av --progress --stats --delete --delete-after \
--exclude='/distfiles' --exclude='/packages' \
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 9807b6646b8f9ce6d67b03cddfe4b9d0b02288bf
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 01:07:15 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 01:07:15 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=9807b664
emerge-delta-webrsync: check write permission
This will fix bug #176008.
---
misc/emerge-delta-webrsync | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index e23316a..3b934ff 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -97,11 +97,22 @@ if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then
exit 1
fi
-if [[ ! -d $DISTDIR ]] ; then
- mkdir -p $DISTDIR
+[[ -d ${PORTDIR} ]] || mkdir -p "${PORTDIR}"
+if [[ ! -w ${PORTDIR} ]] ; then
+ eecho "PORTDIR is not writable: ${PORTDIR}"
+ exit 1
+fi
+
+[[ -d ${DISTDIR} ]] || mkdir -p "${DISTDIR}"
+if [[ ! -w ${DISTDIR} ]] ; then
+ eecho "DISTDIR is not writable: ${DISTDIR}"
+ exit 1
fi
-if [[ ! -d $TMPDIR ]]; then
- mkdir -p $TMPDIR
+
+[[ -d ${TMPDIR} ]] || mkdir -p "${TMPDIR}"
+if [[ ! -w ${TMPDIR} ]] ; then
+ eecho "TMPDIR is not writable: ${TMPDIR}"
+ exit 1
fi
cd "$DISTDIR"
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:28 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:28 UTC (permalink / raw
To: gentoo-commits
commit: 1286c42c9221a87efaafa6017b86a85f5f408036
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 01:27:58 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 01:27:58 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1286c42c
emerge-delta-webrsync: PORTAGE_RSYNC_OPTS
---
misc/emerge-delta-webrsync | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index aa3a3d9..34c7094 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -274,9 +274,7 @@ sync_local() {
chown ${ownership} portage > /dev/null 2>&1 && \
chown -R ${ownership} portage
cd portage
- rsync -av --progress --stats --delete --delete-after \
- --exclude='/distfiles' --exclude='/packages' \
- --exclude='/local' . ${PORTDIR%%/}
+ rsync ${PORTAGE_RSYNC_OPTS} ${PORTAGE_RSYNC_EXTRA_OPTS} . "${PORTDIR%%/}"
cd ..
echo "cleaning up"
rm -rf portage
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 1:45 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 1:45 UTC (permalink / raw
To: gentoo-commits
commit: a98eee34881f9a7180a5e467eaa63435efa890db
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 01:44:59 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 01:44:59 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a98eee34
emerge-delta-webrsync: normalize fetch URI
This will fix bug #124072.
---
misc/emerge-delta-webrsync | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 34c7094..fffa815 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -296,7 +296,7 @@ fetch_from_mirrors() {
fi
FILE="$2"
for i in $MIRRORS ; do
- URI="${i}/${1}"
+ URI="${i%/}/${1#/}"
if (eval "$FETCHCOMMAND $wgetops") && [ -s "${FILE}" ]; then
return 0
else
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 20:32 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 20:32 UTC (permalink / raw
To: gentoo-commits
commit: a695533917d969d66210ce8e2fe8aa88bee42dc7
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 20:32:00 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 20:32:00 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a6955339
emerge-delta-webrsync: rm -f for non-interactive
This prevents interactive mode as reported in bug #176008.
---
misc/emerge-delta-webrsync | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index fffa815..f6748cb 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -149,7 +149,7 @@ fi
#---------------
cleanse_state_dir() {
- [[ ${STATE_DIR:-/} != '/' ]] && rm ${STATE_DIR}/* &> /dev/null;
+ [[ ${STATE_DIR:-/} != '/' ]] && rm -f "${STATE_DIR}"/* &> /dev/null
}
full_version_attempt() {
@@ -205,14 +205,14 @@ full_version_attempt() {
exit 0
else
echo "md5 on ${FILE} failed, removing it and starting anew"
- rm "$FILE" &> /dev/null
+ rm -f "${FILE}" &> /dev/null
fi
fi
if fetch_from_mirrors "/snapshots/${FILE}" "${FILE}"; then
if ! verify_md5_file "$FILE"; then
echo "md5 failed on $FILE"
- rm ${FILE} &> /dev/null
+ rm -f "${FILE}" &> /dev/null
continue
else
sync_local "${FILE}"
@@ -300,7 +300,7 @@ fetch_from_mirrors() {
if (eval "$FETCHCOMMAND $wgetops") && [ -s "${FILE}" ]; then
return 0
else
- rm "${FILE}" &> /dev/null
+ rm -f "${FILE}" &> /dev/null
fi
done
return 1
@@ -394,8 +394,8 @@ for basef in ${potentials}; do
fi
if ! verify_md5_file "${dfile}" "${chksum}"; then
echo "found a stale snapshot. cleansing"
- rm "${dfile}" &> /dev/null
- rm "${chksum}.md5sum" &> /dev/null
+ rm -f "${dfile}" &> /dev/null
+ rm -f "${chksum}.md5sum" &> /dev/null
dar=""
else
base_version="${basef}"
@@ -455,7 +455,7 @@ while [[ -n ${fetched} ]]; do
fetch="yes"
if [[ -e ${p} ]]; then
if ! verify_md5_file "${p}"; then
- rm ${p} &> /dev/null
+ rm -f "${p}" &> /dev/null
else
fetch=""
fi
@@ -521,7 +521,7 @@ TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
# got our patches.
if ! patcher -v "${dfile}" ${patches} "${TEMPDIR}/portage-${final_date}.tar"; then
echo "reconstruction failed (contact the author with the error from the reconstructor please)"
- rm "${TEMPDIR}/portage-${final_date}.tar"
+ rm -f "${TEMPDIR}/portage-${final_date}.tar"
rmdir ${TEMPDIR}
full_version_attempt
fi
@@ -556,7 +556,7 @@ if [ "$verified" == "1" ]; then
echo "doing final md5 stuff"
wait
# bzip2 is finished now.
- rm "${TEMPDIR}/portage-${final_date}.tar"
+ rm -f "${TEMPDIR}/portage-${final_date}.tar"
else
echo "recompressing."
bzip2 -v9 "${TEMPDIR}/portage-${final_date}.tar.bz2"
@@ -603,7 +603,7 @@ if [[ -z $KEEP_OLDIES ]]; then
for x in $potentials; do
echo "removing ${x}"
rm -f "${DISTDIR}/${x}"{,.md5sum,.umd5sum,.gpgsig} &> /dev/null
- rm "${STATE_DIR}/${x}" "${STATE_DIR}/${x}.md5sum" "${STATE_DIR}/${x}.umd5sum" &> /dev/null
+ rm -f "${STATE_DIR}/${x}"{,.md5sum,.umd5sum} &> /dev/null
done
fi
echo "done."
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 20:51 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 20:51 UTC (permalink / raw
To: gentoo-commits
commit: 49cc97a199f38904ad5ad5a3d496cb796ecac657
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 20:51:28 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 20:51:28 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=49cc97a1
emerge-delta-webrsync: fix make.globals path
---
misc/emerge-delta-webrsync | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index f6748cb..8c43bdc 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -31,7 +31,8 @@ else
eecho "could not find 'portageq'; aborting"
exit 1
fi
-eval $("${portageq}" envvar -v DISTDIR FEATURES FETCHCOMMAND GENTOO_MIRRORS \
+eval $("${portageq}" envvar -v DISTDIR EPREFIX FEATURES \
+ FETCHCOMMAND GENTOO_MIRRORS \
PORTAGE_BIN_PATH PORTAGE_GPG_DIR \
PORTAGE_NICENESS PORTAGE_RSYNC_EXTRA_OPTS \
PORTAGE_RSYNC_OPTS PORTAGE_TMPDIR PORTDIR \
@@ -54,7 +55,7 @@ STATE_DIR="/var/delta-webrsync/"
# hack. bug 92224
if [ "${FETCHCOMMAND/getdelta.sh}" != "${FETCHCOMMAND}" ]; then
# evil evil evil evil
- eval "$(grep FETCHCOMMAND /etc/make.globals)"
+ eval "$(grep "^FETCHCOMMAND=" "${EPREFIX}/usr/share/portage/config/make.globals")"
fi
unset f
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-18 22:51 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-18 22:51 UTC (permalink / raw
To: gentoo-commits
commit: 9bf5900fb2fff77a89b91dd5f38478aaa635ef66
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 18 22:50:53 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 22:50:53 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=9bf5900f
emerge-delta-webrsync: mktemp in PORTAGE_TMPDIR
This will fix bug #198362.
---
misc/emerge-delta-webrsync | 43 ++++++++++++++++++++-----------------------
1 files changed, 20 insertions(+), 23 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 8c43bdc..0b282d9 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -38,7 +38,6 @@ eval $("${portageq}" envvar -v DISTDIR EPREFIX FEATURES \
PORTAGE_RSYNC_OPTS PORTAGE_TMPDIR PORTDIR \
USERLAND http_proxy ftp_proxy)
export http_proxy ftp_proxy
-TMPDIR=${PORTAGE_TMPDIR}/snapshots
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
@@ -116,7 +115,8 @@ if [[ ! -w ${DISTDIR} ]] ; then
exit 1
fi
-[[ -d ${TMPDIR} ]] || mkdir -p "${TMPDIR}"
+[[ -d ${PORTAGE_TMPDIR}/portage ]] || mkdir -p "${PORTAGE_TMPDIR}/portage"
+TMPDIR=$(mktemp -d "${PORTAGE_TMPDIR}/portage/delta-webrsync-XXXXXX")
if [[ ! -w ${TMPDIR} ]] ; then
eecho "TMPDIR is not writable: ${TMPDIR}"
exit 1
@@ -261,7 +261,7 @@ sync_local() {
exit 6
fi
else
- cd ${TMPDIR} || die "couldn't cd to tmpdir, $TMPDIR!?"
+ cd "${TMPDIR}" || die "couldn't cd to tmpdir, ${TMPDIR}!?"
flags="xf"
if [ "${FILE%.bz2}" != "${FILE}" ]; then
flags="jxf"
@@ -517,19 +517,16 @@ if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 && ! -e portage-${final_date}.tar.bz2.gpg
exit 5
fi
-# generate tmp dir.
-TEMPDIR=$(mktemp -d /tmp/delta-webrsync-XXXXXX)
# got our patches.
-if ! patcher -v "${dfile}" ${patches} "${TEMPDIR}/portage-${final_date}.tar"; then
+if ! patcher -v "${dfile}" ${patches} "${TMPDIR}/portage-${final_date}.tar"; then
echo "reconstruction failed (contact the author with the error from the reconstructor please)"
- rm -f "${TEMPDIR}/portage-${final_date}.tar"
- rmdir ${TEMPDIR}
+ rm -f "${TMPDIR}/portage-${final_date}.tar"
full_version_attempt
fi
verified=0
if [[ -n $got_umd5 ]]; then
echo "verifying uncompressed md5"
- if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar" "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum"; then
+ if ! verify_md5_file "${TMPDIR}/portage-${final_date}.tar" "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum"; then
echo "uncompressed verification failed. This means either you found a bug in diffball, or something odd is going on"
echo "with upstream patch generation"
echo "trying md5sum next, which probably will fail."
@@ -546,26 +543,26 @@ if [ "$verified" == "1" ]; then
# BUG: Signature verification will fail if the local bzip2
# program does not produce output that is perfectly identical
# to the bzip2 program used to compress the signed tar file.
- bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar"
- check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TEMPDIR}/portage-${final_date}.tar.bz2" || exit 1
+ bzip2 -vk9 "${TMPDIR}/portage-${final_date}.tar"
+ check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TMPDIR}/portage-${final_date}.tar.bz2" || exit 1
else
- bzip2 -vk9 "${TEMPDIR}/portage-${final_date}.tar" &
+ bzip2 -vk9 "${TMPDIR}/portage-${final_date}.tar" &
fi
echo "beginning update to the tree"
- sync_local "${TEMPDIR}/portage-${final_date}.tar"
+ sync_local "${TMPDIR}/portage-${final_date}.tar"
echo "doing final md5 stuff"
wait
# bzip2 is finished now.
- rm -f "${TEMPDIR}/portage-${final_date}.tar"
+ rm -f "${TMPDIR}/portage-${final_date}.tar"
else
echo "recompressing."
- bzip2 -v9 "${TEMPDIR}/portage-${final_date}.tar.bz2"
+ bzip2 -v9 "${TMPDIR}/portage-${final_date}.tar.bz2"
fi
echo "verifying generated tarball"
-if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/portage-${final_date}.tar.bz2.md5sum"; then
+if ! verify_md5_file "${TMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/portage-${final_date}.tar.bz2.md5sum"; then
if [[ -z $verified ]]; then
echo "couldn't verify the generated tarball. bug, most likely."
exit 5
@@ -574,21 +571,20 @@ if ! verify_md5_file "${TEMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/port
echo "compressed md5 differs, but uncompressed md5 says it right. bzip2 version incompatability in other words"
echo "saving the md5"
if type -p md5sum &> /dev/null; then
- md5sum ${TEMPDIR}/portage-${final_date}.tar.bz2 | sed -e "s:${TEMPDIR}/\?::" > \
- ${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum
+ md5sum "${TMPDIR}/portage-${final_date}.tar.bz2" | sed -e "s:${TMPDIR}/\?::" > \
+ "${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum"
elif type -p md5 &> /dev/null; then
- echo "$(md5 -q ${TEMPDIR}/portage-${final_date}.tar.bz2) portage-${final_date}.tar.bz2" > \
- ${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum
+ echo "$(md5 -q "${TMPDIR}/portage-${final_date}.tar.bz2") portage-${final_date}.tar.bz2" > \
+ "${STATE_DIR}/portage-${final_date}.tar.bz2.md5sum"
else
echo "couldn't find either md5 or md5sum. something is screwed... (bailing, sorry)"
exit 7
fi
- mv "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum" "${TEMPDIR}/portage-${final_date}.tar.bz2" ${STATE_DIR}/
- rmdir ${TEMPDIR}
+ mv "${DISTDIR}/portage-${final_date}.tar.bz2.umd5sum" "${TMPDIR}/portage-${final_date}.tar.bz2" "${STATE_DIR}/"
dfile="${STATE_DIR}/portage-${final_date}.tar.bz2"
else
dfile="${DISTDIR}/portage-${final_date}.tar.bz2"
- mv "${TEMPDIR}/portage-${final_date}.tar.bz2" ${DISTDIR}/
+ mv "${TMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/"
fi
if [ -z "${need_last_sync}" ]; then
@@ -607,5 +603,6 @@ if [[ -z $KEEP_OLDIES ]]; then
rm -f "${STATE_DIR}/${x}"{,.md5sum,.umd5sum} &> /dev/null
done
fi
+rm -rf "${TMPDIR}"
echo "done."
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-19 5:21 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-19 5:21 UTC (permalink / raw
To: gentoo-commits
commit: 76e037f33eeaa4969bae13c6c23eda40566dca39
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 19 05:21:40 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Aug 19 05:21:40 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=76e037f3
emerge-delta-webrsync: improve date calculations
This borrows some code from emerge-webrsync, and will fix bug #153513.
---
misc/emerge-delta-webrsync | 84 ++++++++++++++++++++++---------------------
1 files changed, 43 insertions(+), 41 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 874c527..e237c7f 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -153,29 +153,56 @@ cleanse_state_dir() {
[[ ${STATE_DIR:-/} != '/' ]] && rm -f "${STATE_DIR}"/* &> /dev/null
}
+get_utc_date_in_seconds() {
+ date -u +"%s"
+}
+
+get_date_part() {
+ local utc_time_in_secs="$1"
+ local part="$2"
+
+ if [[ ${USERLAND} == BSD ]] ; then
+ date -r ${utc_time_in_secs} -u +"${part}"
+ else
+ date -d @${utc_time_in_secs} -u +"${part}"
+ fi
+}
+
+increment_date() {
+ local s="$1" inc="$2"
+ if [[ ${USERLAND} == BSD ]] ; then
+ # Specify zeros for the least significant digits, or else those
+ # digits are inherited from the current system clock time.
+ date -v${inc}d -juf "%Y%m%d%H%M.%S" "${s}0000.00" +"%Y%m%d"
+ else
+ date -d "${s:0:4}-${s:4:2}-${s:6:2} ${inc} day" -u +"%Y%m%d"
+ fi
+}
+
full_version_attempt() {
local FILE file_exists
echo "Fetching most recent snapshot"
+
+ local start_time=$(get_utc_date_in_seconds)
+ local start_hour=$(get_date_part ${start_time} "%H")
+ local snapshot_date=$(get_date_part ${start_time} "%Y%m%d")
+
+ # Daily snapshots are created at 00:45 and are not
+ # available until after 01:00. Don't waste time trying
+ # to fetch a snapshot before it's been created.
+ if [ ${start_hour} -lt 1 ] ; then
+ snapshot_date=$(increment_date ${snapshot_date} -1)
+ fi
+
declare -i attempts=-1
while (( $attempts < 40 )) ; do
unset file_exists
attempts=$(( attempts + 1 ))
+ snapshot_date=$(increment_date ${snapshot_date} -1)
- #this too, sucks. it works in the interim though.
- if [ "$USERLAND" == "BSD" ] || [ "$USERLAND" == "Darwin" ] ; then
- daysbefore=$(expr $(date +"%s") - 86400 \* $attempts)
- day=$(date -r $daysbefore +"%d")
- month=$(date -r $daysbefore +"%m")
- year=$(date -r $daysbefore +"%Y")
- else
- day=$(date -d "-$attempts day" +"%d")
- month=$(date -d "-$attempts day" +"%m")
- year=$(date -d "-$attempts day" +"%Y")
- fi
-
- FILE="portage-${year}${month}${day}.tar.bz2"
+ FILE="portage-${snapshot_date}.tar.bz2"
- echo "Attempting to fetch file dated: ${year}${month}${day}"
+ echo "Attempting to fetch file dated: ${snapshot_date}"
got_md5=0
@@ -220,7 +247,7 @@ full_version_attempt() {
cleanse_state_dir
echo
echo " *** Completed websync, please now perform a normal rsync if possible."
- echo " Update is current as of YYYYMMDD: ${year}${month}${day}"
+ echo " Update is current as of YYYYMMDD: ${snapshot_date}"
echo
exit 0
fi
@@ -418,36 +445,11 @@ base_date="${base_version%.tar.bz2}"
base_date="${base_date#portage-}"
# we now have yyyymmdd
-unset patch_dates
-if [ "$USERLAND" == "BSD" ] || [ "$USERLAND" == "Darwin" ] ; then
- daysbefore=$(expr $(date +"%s") - 86400 \* $attempts)
- day=$(date -r $daysbefore +"%d")
- month=$(date -r $daysbefore +"%m")
- year=$(date -r $daysbefore +"%Y")
-else
- day=$(date -d "-$attempts day" +"%d")
- month=$(date -d "-$attempts day" +"%m")
- year=$(date -d "-$attempts day" +"%Y")
-fi
-
-#todays_date="${year}${month}${day}"
-
-next_date() {
- local year day month
- year="${1:0:4}"
- month="${1:4:2}"
- day="${1:6:2}"
-# if [[ "${USERLAND}" == "BSD" ]] || [[ "${USERLAND}" == "Darwin" ]]; then
-# else
- date -d "$year/$month/$day +1 day" +"%Y%m%d"
-# fi
-}
-
patches=''
echo "fetching patches"
fetched='asdf'
while [[ -n ${fetched} ]]; do
- next_day=$(next_date ${base_date})
+ next_day=$(increment_date ${base_date} +1)
# if we can't get a *single* patch or md5, even one missing, do full.
p="snapshot-${base_date}-${next_day}.patch.bz2"
if [[ ! -e ${p}.md5sum ]] && ! fetch_from_mirrors "/snapshots/deltas/${p}.md5sum" "${p}.md5sum"; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-08-19 5:44 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-08-19 5:44 UTC (permalink / raw
To: gentoo-commits
commit: 604eb9bd43ec035c4e26197ab21cba33b4faa8f9
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 19 05:44:35 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Aug 19 05:44:35 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=604eb9bd
emerge-delta-webrsync: tweak "recompressing" msg
FEATURES=webrsync-gpg forces it to recompress in the foreground.
---
misc/emerge-delta-webrsync | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index e237c7f..102a991 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -541,15 +541,16 @@ fi
unset need_last_sync
if [ "$verified" == "1" ]; then
- echo "recompressing. (backgrounding)"
need_last_sync="dar"
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
# BUG: Signature verification will fail if the local bzip2
# program does not produce output that is perfectly identical
# to the bzip2 program used to compress the signed tar file.
+ echo "recompressing ..."
bzip2 -vk9 "${TMPDIR}/portage-${final_date}.tar"
check_file_signature "${DISTDIR}/portage-${final_date}.tar.bz2.gpgsig" "${TMPDIR}/portage-${final_date}.tar.bz2" || exit 1
else
+ echo "recompressing. (backgrounding)"
bzip2 -vk9 "${TMPDIR}/portage-${final_date}.tar" &
fi
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2012-09-14 7:26 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2012-09-14 7:26 UTC (permalink / raw
To: gentoo-commits
commit: bb9186cd81d707593ea386d17321bd594d847126
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 14 07:25:57 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Sep 14 07:25:57 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=bb9186cd
emerge-delta-webrsync: fix vecho breakage
Broken since commit 9b19ac5696c487dab58d7c10990fe07fd7f1f731.
---
misc/emerge-delta-webrsync | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 102a991..9dd2a62 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -15,6 +15,10 @@ argv0=$0
# error echos
eecho() { echo "${argv0##*/}: error: $*" 1>&2 ; }
+# This function from isolated-functions.sh got renamed to __vecho.
+vecho() {
+ [[ ${PORTAGE_QUIET} -eq 1 ]] || echo "$@"
+}
#-------------------
#initialization
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2013-01-28 21:45 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2013-01-28 21:45 UTC (permalink / raw
To: gentoo-commits
commit: 935b3a11148e0600c3ff3a2685ed101698fbb5d4
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 28 21:45:44 2013 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Jan 28 21:45:44 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=935b3a11
emerge-delta-webrsync: fix STATE_DIR for EPREFIX
---
misc/emerge-delta-webrsync | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index a782be7..de0f93e 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -53,7 +53,7 @@ if [ -z "$NICENESS_PULLED" ]; then
fi
fi
-STATE_DIR="/var/delta-webrsync/"
+STATE_DIR="${EPREFIX}/var/delta-webrsync/"
# hack. bug 92224
if [ "${FETCHCOMMAND/getdelta.sh}" != "${FETCHCOMMAND}" ]; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2013-06-22 5:54 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2013-06-22 5:54 UTC (permalink / raw
To: gentoo-commits
commit: 24f6a9599bcf445c468022264cd6952aad4d4076
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 22 05:53:41 2013 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jun 22 05:53:41 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=24f6a959
emerge-delta-webrsync: check full snapshot sig
This patch merges a lot of code from emerge-webrsync, so that the same
code is used when it's necessary to download a full snapshot and check
the signature. This will fix bug #286373.
---
misc/emerge-delta-webrsync | 476 ++++++++++++++++++++++++++++++---------------
1 file changed, 323 insertions(+), 153 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index de0f93e..85ee656 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
# Rewritten from the old, Perl-based emerge-webrsync script
@@ -13,12 +13,13 @@
argv0=$0
+# Only echo if not in verbose mode
+nvecho() { [[ ${do_verbose} -eq 0 ]] && echo "$@" ; }
+# warning echos
+wecho() { echo "${argv0##*/}: warning: $*" 1>&2 ; }
# error echos
eecho() { echo "${argv0##*/}: error: $*" 1>&2 ; }
-# This function from isolated-functions.sh got renamed to __vecho.
-vecho() {
- [[ ${PORTAGE_QUIET} -eq 1 ]] || echo "$@"
-}
+
#-------------------
#initialization
@@ -64,8 +65,9 @@ fi
unset f
unset IFS
+do_verbose=0
MUST_SYNC='1'
-unset PUKE_HELP wgetops
+unset PUKE_HELP
for x in $*; do
case "${x}" in
-q|--quiet)
@@ -80,7 +82,7 @@ for x in $*; do
elif [[ $x == "-h" ]]; then
PUKE_HELP=1
elif [[ $x == "-v" ]]; then
- wgetops=
+ do_verbose=1
else
PUKE_HELP=1
echo "$x isn't a valid arg. bailing."
@@ -129,15 +131,6 @@ fi
cd "$DISTDIR"
found=0
-if [ "${wgetops-UNSET}" == "unset" ]; then
- #this sucks. probably better to do 1> /dev/null
- #that said, waiting on the refactoring.
- if [ "${FETCHCOMMAND/wget}" != "${FETCHCOMMAND}" ]; then
- wgetops="-q"
- elif [ "${FETCHCOMMAND/curl}" != "${FETCHCOMMAND}" ]; then
- wgetops="-s -f"
- fi
-fi
if type -p md5sum > /dev/null; then
md5_com='md5sum -c "${MD5_LOC}" &> /dev/null'
@@ -157,6 +150,20 @@ cleanse_state_dir() {
[[ ${STATE_DIR:-/} != '/' ]] && rm -f "${STATE_DIR}"/* &> /dev/null
}
+do_tar() {
+ local file=$1; shift
+ local decompressor
+ case ${file} in
+ *.xz) decompressor="xzcat" ;;
+ *.bz2) decompressor="bzcat" ;;
+ *.gz) decompressor="zcat" ;;
+ *) decompressor="cat" ;;
+ esac
+ ${decompressor} "${file}" | tar "$@"
+ _pipestatus=${PIPESTATUS[*]}
+ [[ ${_pipestatus// /} -eq 0 ]]
+}
+
get_utc_date_in_seconds() {
date -u +"%s"
}
@@ -172,6 +179,27 @@ get_date_part() {
fi
}
+get_utc_second_from_string() {
+ local s="$1"
+ if [[ ${USERLAND} == BSD ]] ; then
+ # Specify zeros for the least significant digits, or else those
+ # digits are inherited from the current system clock time.
+ date -juf "%Y%m%d%H%M.%S" "${s}0000.00" +"%s"
+ else
+ date -d "${s:0:4}-${s:4:2}-${s:6:2}" -u +"%s"
+ fi
+}
+
+get_portage_timestamp() {
+ local portage_current_timestamp=0
+
+ if [ -f "${PORTDIR}/metadata/timestamp.x" ]; then
+ portage_current_timestamp=$(cut -f 1 -d " " "${PORTDIR}/metadata/timestamp.x" )
+ fi
+
+ echo "${portage_current_timestamp}"
+}
+
increment_date() {
local s="$1" inc="$2"
if [[ ${USERLAND} == BSD ]] ; then
@@ -183,93 +211,78 @@ increment_date() {
fi
}
-full_version_attempt() {
- local FILE file_exists
- echo "Fetching most recent snapshot"
- local start_time=$(get_utc_date_in_seconds)
- local start_hour=$(get_date_part ${start_time} "%H")
- local snapshot_date=$(get_date_part ${start_time} "%Y%m%d")
+fetch_file() {
+ local URI="$1"
+ local FILE="$2"
+ local opts
- # Daily snapshots are created at 00:45 and are not
- # available until after 01:00. Don't waste time trying
- # to fetch a snapshot before it's been created.
- if [ ${start_hour} -lt 1 ] ; then
- snapshot_date=$(increment_date ${snapshot_date} -1)
+ if [ "${FETCHCOMMAND/wget/}" != "${FETCHCOMMAND}" ]; then
+ opts="--continue $(nvecho -q)"
+ elif [ "${FETCHCOMMAND/curl/}" != "${FETCHCOMMAND}" ]; then
+ opts="--continue-at - $(nvecho -s -f)"
+ else
+ rm -f "${FILE}"
fi
- declare -i attempts=-1
- while (( $attempts < 40 )) ; do
- unset file_exists
- attempts=$(( attempts + 1 ))
- snapshot_date=$(increment_date ${snapshot_date} -1)
+ __vecho "Fetching file ${FILE} ..."
+ # already set DISTDIR=
+ eval "${FETCHCOMMAND} ${opts}"
+ [ -s "${DISTDIR}/${FILE}" ]
+}
- FILE="portage-${snapshot_date}.tar.bz2"
+check_file_digest() {
+ local digest="$1"
+ local file="$2"
+ local r=1
- echo "Attempting to fetch file dated: ${snapshot_date}"
-
- got_md5=0
+ __vecho "Checking digest ..."
- if [ ! -e "${FILE}.md5sum" ]; then
- fetch_from_mirrors "/snapshots/${FILE}.md5sum" "${FILE}.md5sum"
- got_md5=$?
- else
- file_exists='asdf'
- got_md5=0
- fi
+ if type -P md5sum > /dev/null; then
+ local md5sum_output=$(md5sum "${file}")
+ local digest_content=$(< "${digest}")
+ [ "${md5sum_output%%[[:space:]]*}" = "${digest_content%%[[:space:]]*}" ] && r=0
+ elif type -P md5 > /dev/null; then
+ [ "$(md5 -q "${file}")" == "$(cut -d ' ' -f 1 "${digest}")" ] && r=0
+ else
+ eecho "cannot check digest: no suitable md5/md5sum binaries found"
+ fi
- if [[ $got_md5 != 0 ]]; then
- echo " --- No md5sum present on the mirror. (Not yet available.)"
- continue
- elif [ -s "${FILE}" ]; then
- if verify_md5_file "$FILE"; then
- echo " === snapshot $FILE is correct, using it"
- if [[ -n $MUST_SYNC ]] || [[ -z file_exists ]]; then
- sync_local "${FILE}"
- echo
- echo " === Snapshot has been sync'd"
- echo
- else
- echo
- echo "skipped sync"
- echo
- fi
- exit 0
- else
- echo "md5 on ${FILE} failed, removing it and starting anew"
- rm -f "${FILE}" &> /dev/null
- fi
- fi
-
- if fetch_from_mirrors "/snapshots/${FILE}" "${FILE}"; then
- if ! verify_md5_file "$FILE"; then
- echo "md5 failed on $FILE"
- rm -f "${FILE}" &> /dev/null
- continue
- else
- sync_local "${FILE}"
- cleanse_state_dir
- echo
- echo " *** Completed websync, please now perform a normal rsync if possible."
- echo " Update is current as of YYYYMMDD: ${snapshot_date}"
- echo
- exit 0
- fi
+ return "${r}"
+}
+
+check_file_signature() {
+ local signature="$1"
+ local file="$2"
+ local r=1
+
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
+
+ __vecho "Checking signature ..."
+
+ if type -P gpg > /dev/null; then
+ gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
+ else
+ eecho "cannot check signature: gpg binary not found"
+ exit 1
fi
+ else
+ r=0
+ fi
- done
- exit 1
+ return "${r}"
}
+get_snapshot_timestamp() {
+ local file="$1"
+
+ do_tar "${file}" --to-stdout -xf - portage/metadata/timestamp.x | cut -f 1 -d " "
+}
sync_local() {
- local FILE flags
- FILE="$1"
- if [ "${FILE/\/}" == "${FILE}" ]; then
- FILE="${DISTDIR}/${FILE}";
- fi
-
- echo Syncing local tree...
+ local file="$1"
+
+ __vecho "Syncing local tree ..."
local ownership="portage:portage"
if has usersync ${FEATURES} ; then
@@ -283,45 +296,218 @@ sync_local() {
esac
fi
- if type -p tarsync &> /dev/null; then
- echo "apparently you have tarsync installed. using it."
+ if type -P tarsync > /dev/null ; then
local chown_opts="-o ${ownership%:*} -g ${ownership#*:}"
chown ${ownership} "${PORTDIR}" > /dev/null 2>&1 || chown_opts=""
- if ! tarsync "${FILE}" "${PORTDIR}" -v -s 1 ${chown_opts} -e /distfiles -e /packages -e /local; then
- echo "ok, tarsync failed. that's teh suck :/"
- exit 6
+ if ! tarsync $(__vecho -v) -s 1 ${chown_opts} \
+ -e /distfiles -e /packages -e /local "${file}" "${PORTDIR}"; then
+ eecho "tarsync failed; tarball is corrupt? (${file})"
+ return 1
fi
else
- cd "${TMPDIR}" || die "couldn't cd to tmpdir, ${TMPDIR}!?"
- flags="xf"
- if [ "${FILE%.bz2}" != "${FILE}" ]; then
- flags="jxf"
- fi
- if ! tar ${flags} "$FILE"; then
- echo "Tar failed to extract the image. Please review the output."
- echo "Executed command: tar jxf $FILE"
- exit 1
+ if ! do_tar "${file}" xf - -C "${TMPDIR}" ; then
+ eecho "tar failed to extract the image. tarball is corrupt? (${file})"
+ rm -fr "${TMPDIR}"/portage
+ return 1
fi
local rsync_opts="${PORTAGE_RSYNC_OPTS} ${PORTAGE_RSYNC_EXTRA_OPTS}"
- if chown ${ownership} portage > /dev/null 2>&1; then
- chown -R ${ownership} portage
+ if chown ${ownership} "${TMPDIR}"/portage > /dev/null 2>&1; then
+ chown -R ${ownership} "${TMPDIR}"/portage
rsync_opts+=" --owner --group"
fi
- cd portage
+ cd "${TMPDIR}"/portage
rsync ${rsync_opts} . "${PORTDIR%%/}"
- cd ..
- echo "cleaning up"
- rm -rf portage
+ cd "${DISTDIR}"
+
+ __vecho "Cleaning up ..."
+ rm -fr "${TMPDIR}"
fi
+
if has metadata-transfer ${FEATURES} ; then
- echo "Updating cache ..."
+ __vecho "Updating cache ..."
"${PORTAGE_BIN_PATH}/emerge" --metadata
fi
local post_sync=${PORTAGE_CONFIGROOT}etc/portage/bin/post_sync
[ -x "${post_sync}" ] && "${post_sync}"
# --quiet suppresses output if there are no relevant news items
has news ${FEATURES} && "${PORTAGE_BIN_PATH}/emerge" --check-news --quiet
+ return 0
+}
+
+do_snapshot() {
+ local ignore_timestamp="$1"
+ local date="$2"
+
+ local r=1
+
+ local base_file="portage-${date}.tar"
+
+ local have_files=0
+ local mirror
+
+ local compressions=""
+ type -P bzcat > /dev/null && compressions="${compressions} bz2"
+
+ if [[ -z ${compressions} ]] ; then
+ eecho "unable to locate any decompressors (xzcat or bzcat or zcat)"
+ exit 1
+ fi
+
+ for mirror in ${GENTOO_MIRRORS} ; do
+
+ mirror=${mirror%/}
+ __vecho "Trying to retrieve ${date} snapshot from ${mirror} ..."
+
+ for compression in ${compressions} ; do
+ local file="portage-${date}.tar.${compression}"
+ local digest="${file}.md5sum"
+ local signature="${file}.gpgsig"
+
+ if [ -s "${DISTDIR}/${file}" -a -s "${DISTDIR}/${digest}" -a -s "${DISTDIR}/${signature}" ] ; then
+ check_file_digest "${DISTDIR}/${digest}" "${DISTDIR}/${file}" && \
+ check_file_signature "${DISTDIR}/${signature}" "${DISTDIR}/${file}" && \
+ have_files=1
+ fi
+
+ if [ ${have_files} -eq 0 ] ; then
+ fetch_file "${mirror}/snapshots/${digest}" "${digest}" && \
+ fetch_file "${mirror}/snapshots/${signature}" "${signature}" && \
+ fetch_file "${mirror}/snapshots/${file}" "${file}" && \
+ check_file_digest "${DISTDIR}/${digest}" "${DISTDIR}/${file}" && \
+ check_file_signature "${DISTDIR}/${signature}" "${DISTDIR}/${file}" && \
+ have_files=1
+ fi
+
+ #
+ # If timestamp is invalid
+ # we want to try and retrieve
+ # from a different mirror
+ #
+ if [ ${have_files} -eq 1 ]; then
+
+ __vecho "Getting snapshot timestamp ..."
+ local snapshot_timestamp=$(get_snapshot_timestamp "${DISTDIR}/${file}")
+
+ if [ ${ignore_timestamp} == 0 ]; then
+ if [ ${snapshot_timestamp} -lt $(get_portage_timestamp) ]; then
+ wecho "portage is newer than snapshot"
+ have_files=0
+ fi
+ else
+ local utc_seconds=$(get_utc_second_from_string "${date}")
+
+ #
+ # Check that this snapshot
+ # is what it claims to be ...
+ #
+ if [ ${snapshot_timestamp} -lt ${utc_seconds} ] || \
+ [ ${snapshot_timestamp} -gt $((${utc_seconds}+ 2*86400)) ]; then
+
+ wecho "snapshot timestamp is not in acceptable period"
+ have_files=0
+ fi
+ fi
+ fi
+
+ if [ ${have_files} -eq 1 ]; then
+ break
+ else
+ #
+ # Remove files and use a different mirror
+ #
+ rm -f "${DISTDIR}/${file}" "${DISTDIR}/${digest}" "${DISTDIR}/${signature}"
+ fi
+ done
+
+ [ ${have_files} -eq 1 ] && break
+ done
+
+ if [ ${have_files} -eq 1 ]; then
+ sync_local "${DISTDIR}/${file}" && r=0
+ else
+ __vecho "${date} snapshot was not found"
+ fi
+
+ return "${r}"
+}
+
+do_latest_snapshot() {
+ local attempts=0
+ local r=1
+
+ __vecho "Fetching most recent snapshot ..."
+
+ # The snapshot for a given day is generated at 00:45 UTC on the following
+ # day, so the current day's snapshot (going by UTC time) hasn't been
+ # generated yet. Therefore, always start by looking for the previous day's
+ # snapshot (for attempts=1, subtract 1 day from the current UTC time).
+
+ # Timestamps that differ by less than 2 hours
+ # are considered to be approximately equal.
+ local min_time_diff=$(( 2 * 60 * 60 ))
+
+ local existing_timestamp=$(get_portage_timestamp)
+ local timestamp_difference
+ local timestamp_problem
+ local approx_snapshot_time
+ local start_time=$(get_utc_date_in_seconds)
+ local start_hour=$(get_date_part ${start_time} "%H")
+
+ # Daily snapshots are created at 00:45 and are not
+ # available until after 01:00. Don't waste time trying
+ # to fetch a snapshot before it's been created.
+ if [ ${start_hour} -lt 1 ] ; then
+ (( start_time -= 86400 ))
+ fi
+ local snapshot_date=$(get_date_part ${start_time} "%Y%m%d")
+ local snapshot_date_seconds=$(get_utc_second_from_string ${snapshot_date})
+
+ while (( ${attempts} < 40 )) ; do
+ (( attempts++ ))
+ (( snapshot_date_seconds -= 86400 ))
+ # snapshots are created at 00:45
+ (( approx_snapshot_time = snapshot_date_seconds + 86400 + 2700 ))
+ (( timestamp_difference = existing_timestamp - approx_snapshot_time ))
+ [ ${timestamp_difference} -lt 0 ] && (( timestamp_difference = -1 * timestamp_difference ))
+ snapshot_date=$(get_date_part ${snapshot_date_seconds} "%Y%m%d")
+
+ timestamp_problem=""
+ if [ ${timestamp_difference} -eq 0 ]; then
+ timestamp_problem="is identical to"
+ elif [ ${timestamp_difference} -lt ${min_time_diff} ]; then
+ timestamp_problem="is possibly identical to"
+ elif [ ${approx_snapshot_time} -lt ${existing_timestamp} ] ; then
+ timestamp_problem="is newer than"
+ fi
+
+ if [ -n "${timestamp_problem}" ]; then
+ ewarn "Latest snapshot date: ${snapshot_date}"
+ ewarn
+ ewarn "Approximate snapshot timestamp: ${approx_snapshot_time}"
+ ewarn " Current local timestamp: ${existing_timestamp}"
+ ewarn
+ echo -e "The current local timestamp" \
+ "${timestamp_problem} the" \
+ "timestamp of the latest" \
+ "snapshot. In order to force sync," \
+ "use the --revert option or remove" \
+ "the timestamp file located at" \
+ "'${PORTDIR}/metadata/timestamp.x'." | fmt -w 70 | \
+ while read -r line ; do
+ ewarn "${line}"
+ done
+ r=0
+ break
+ fi
+
+ if do_snapshot 0 "${snapshot_date}"; then
+ r=0
+ break;
+ fi
+ done
+
+ return "${r}"
}
fetch_from_mirrors() {
@@ -334,57 +520,20 @@ fetch_from_mirrors() {
FILE="$2"
for i in $MIRRORS ; do
URI="${i%/}/${1#/}"
- if (eval "$FETCHCOMMAND $wgetops") && [ -s "${FILE}" ]; then
- return 0
- else
- rm -f "${FILE}" &> /dev/null
- fi
+ fetch_file "${URI}" "${FILE}" && return 0
done
return 1
}
verify_md5_file() {
- local FILE MD5_LOC CUR
+ local FILE MD5_LOC
FILE="$1"
if [[ $# == 2 ]]; then
MD5_LOC="$2"
else
MD5_LOC="$(pwd)/$1.md5sum"
fi
- if [ "${FILE/*\/}" != "$1" ]; then
- CUR="$(pwd)"
- cd "$(dirname ${FILE})"
- FILE="$(basename ${FILE})"
- fi
- if eval "$md5_com"; then
- [ -n "${CUR}" ] && cd "${CUR}"
- return 0
- else
- [ -n "${CUR}" ] && cd "${CUR}"
- return 1
- fi
-}
-
-check_file_signature() {
- local signature="$1"
- local file="$2"
- local r=1
-
- if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
-
- vecho "Checking signature ..."
-
- if type -P gpg > /dev/null; then
- gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
- else
- eecho "cannot check signature: gpg binary not found"
- exit 1
- fi
- else
- r=0
- fi
-
- return "${r}"
+ check_file_digest "${MD5_LOC}" "${FILE}"
}
#--------------------
@@ -397,7 +546,11 @@ if ! type -p patcher &> /dev/null; then
echo "!!! lack of patcher == have to do full fetch"
echo "!!!"
sleep 10
- full_version_attempt
+ if do_latest_snapshot; then
+ cleanse_state_dir
+ exit 0
+ fi
+ exit 1
fi
echo "Looking for available base versions for a delta"
@@ -443,7 +596,11 @@ done
#by this point, we either have a base_version, or we don't.
if [[ -z ${base_version} ]]; then
echo "no base found. resorting to pulling a full version"
- full_version_attempt
+ if do_latest_snapshot; then
+ cleanse_state_dir
+ exit 0
+ fi
+ exit 1
fi
#we have a md5 verified base. now we get the patch.
@@ -495,6 +652,15 @@ if [[ -z $patches ]]; then
echo "no patches found? up to date?"
if [[ -n $MUST_SYNC ]]; then
echo "syncing with existing file"
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 &&
+ ! -e ${DISTDIR}/portage-${base_date}.tar.bz2.gpgsig ]] && \
+ ! fetch_from_mirrors "/snapshots/portage-${base_date}.tar.bz2.gpgsig" "portage-${base_date}.tar.bz2.gpgsig" ; then
+ eecho "Couldn't fetch portage-${base_date}.tar.bz2.gpgsig"
+ exit 5
+ fi
+ if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
+ check_file_signature "${DISTDIR}/portage-${base_date}.tar.bz2.gpgsig" "${dfile}" || exit 1
+ fi
sync_local "${dfile}"
else
:
@@ -532,7 +698,11 @@ fi
if ! patcher -v "${dfile}" ${patches} "${TMPDIR}/portage-${final_date}.tar"; then
echo "reconstruction failed (contact the author with the error from the reconstructor please)"
rm -f "${TMPDIR}/portage-${final_date}.tar"
- full_version_attempt
+ if do_latest_snapshot; then
+ cleanse_state_dir
+ exit 0
+ fi
+ exit 1
fi
verified=0
if [[ -n $got_umd5 ]]; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2013-06-22 6:14 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2013-06-22 6:14 UTC (permalink / raw
To: gentoo-commits
commit: fd7f9a8fd0761d3cfbb2ffa603bb71003a528735
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 22 06:14:35 2013 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jun 22 06:14:35 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=fd7f9a8f
emerge-delta-webrsync: clean TMPDIR more
---
misc/emerge-delta-webrsync | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 85ee656..a80c976 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -547,6 +547,7 @@ if ! type -p patcher &> /dev/null; then
echo "!!!"
sleep 10
if do_latest_snapshot; then
+ rm -fr "${TMPDIR}"
cleanse_state_dir
exit 0
fi
@@ -597,6 +598,7 @@ done
if [[ -z ${base_version} ]]; then
echo "no base found. resorting to pulling a full version"
if do_latest_snapshot; then
+ rm -fr "${TMPDIR}"
cleanse_state_dir
exit 0
fi
@@ -661,9 +663,9 @@ if [[ -z $patches ]]; then
if [[ ${WEBSYNC_VERIFY_SIGNATURE} == 1 ]] ; then
check_file_signature "${DISTDIR}/portage-${base_date}.tar.bz2.gpgsig" "${dfile}" || exit 1
fi
- sync_local "${dfile}"
+ sync_local "${dfile}" && rm -fr "${TMPDIR}"
else
- :
+ rm -fr "${TMPDIR}"
fi
exit $?
fi
@@ -699,6 +701,7 @@ if ! patcher -v "${dfile}" ${patches} "${TMPDIR}/portage-${final_date}.tar"; the
echo "reconstruction failed (contact the author with the error from the reconstructor please)"
rm -f "${TMPDIR}/portage-${final_date}.tar"
if do_latest_snapshot; then
+ rm -fr "${TMPDIR}"
cleanse_state_dir
exit 0
fi
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2013-07-10 20:16 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2013-07-10 20:16 UTC (permalink / raw
To: gentoo-commits
commit: 4ab31da4f09c7d0cb323b16b5b4b607d652ffc48
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 10 20:15:45 2013 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Jul 10 20:15:45 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=4ab31da4
emerge-delta-webrsync: cleanup deltas
---
misc/emerge-delta-webrsync | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index f7f82f8..9c27702 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -785,6 +785,10 @@ if [ -z "${need_last_sync}" ]; then
sync_local "${dfile}"
fi
+for x in ${patches} ; do
+ rm -f "${DISTDIR}/${x}"{,.md5sum}
+done
+
if [[ -z $KEEP_OLDIES ]]; then
echo "cleansing"
for x in $potentials; do
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2014-10-19 17:19 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2014-10-19 17:19 UTC (permalink / raw
To: gentoo-commits
commit: 84bba68958ccf8d84a271f110fdb858e4f7700b4
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 8 17:56:31 2014 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Oct 19 17:18:10 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=84bba689
emerge-delta-webrsync: fix bug #506192
This fixes the sync_local function so that it doesn't prematurely remove
the whole TMPDIR when tarsync is not installed. In this case, we really
only want to remove the "${TMPDIR}"/portage directory which contains a
temporary copy of the portage tree. The faulty code was introduced in
commit 24f6a9599bcf445c468022264cd6952aad4d4076 when a bunch of code
from emerge-webrsync was merged into emerge-delta-webrsync.
Fixes: 24f6a9599bcf ("emerge-delta-webrsync: check full snapshot sig")
X-Gentoo-Bug: 506192
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=506192
---
misc/emerge-delta-webrsync | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index a412ac8..05a0ac7 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -333,7 +333,7 @@ sync_local() {
cd "${DISTDIR}"
__vecho "Cleaning up ..."
- rm -fr "${TMPDIR}"
+ rm -fr "${TMPDIR}"/portage
fi
if has metadata-transfer ${FEATURES} ; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2015-11-06 5:31 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2015-11-06 5:31 UTC (permalink / raw
To: gentoo-commits
commit: d2ae2f85a34e27a6b458cb51cac008686911e8ce
Author: Xiami <i <AT> f2light <DOT> com>
AuthorDate: Fri Nov 6 05:24:48 2015 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Nov 6 05:30:44 2015 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=d2ae2f85
emerge-delta-webrsync: fix incorrect bzip2 file path argument
misc/emerge-delta-webrsync | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 05a0ac7..f2dc822 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -754,7 +754,7 @@ if [ "$verified" == "1" ]; then
rm -f "${TMPDIR}/portage-${final_date}.tar"
else
echo "recompressing."
- bzip2 -v9 "${TMPDIR}/portage-${final_date}.tar.bz2"
+ bzip2 -v9 "${TMPDIR}/portage-${final_date}.tar"
fi
echo "verifying generated tarball"
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2018-02-01 6:18 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2018-02-01 6:18 UTC (permalink / raw
To: gentoo-commits
commit: 52d5d444ffb144911ca9b6e70b383405a8bd8af6
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 1 06:16:45 2018 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Feb 1 06:16:45 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=52d5d444
emerge-delta-webrsync: uses gpg --status-fd
misc/emerge-delta-webrsync | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index f2dc8220c..868c6a347 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -267,13 +267,22 @@ check_file_signature() {
local signature="$1"
local file="$2"
local r=1
+ local gnupg_status line
if [[ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]] ; then
__vecho "Checking signature ..."
if type -P gpg > /dev/null; then
- gpg --homedir "${PORTAGE_GPG_DIR}" --verify "$signature" "$file" && r=0
+ if gnupg_status=$(gpg --homedir "${PORTAGE_GPG_DIR}" --batch \
+ --status-fd 1 --verify "${signature}" "${file}"); then
+ while read -r line; do
+ if [[ ${line} == "[GNUPG:] GOODSIG"* ]]; then
+ r=0
+ break
+ fi
+ done <<< "${gnupg_status}"
+ fi
else
eecho "cannot check signature: gpg binary not found"
exit 1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2018-07-28 6:12 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2018-07-28 6:12 UTC (permalink / raw
To: gentoo-commits
commit: dd307922c584faa8be13468261dbedb0cc65b181
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 27 06:30:36 2018 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jul 28 05:53:08 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=dd307922
emerge-delta-webrsync: exit early for signature problem (bug 661838)
Exit early after signature verification failure, since it's
typically inappropriate to try other mirrors in this case
(it may indicate a keyring problem).
Bug: https://bugs.gentoo.org/661838
Reviewed-by: Brian Dolbec <dolsen <AT> gentoo.org>
misc/emerge-delta-webrsync | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 868c6a347..ebaa616f9 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -283,6 +283,13 @@ check_file_signature() {
fi
done <<< "${gnupg_status}"
fi
+ if [[ ${r} -ne 0 ]]; then
+ # Exit early since it's typically inappropriate to
+ # try other mirrors in this case (it may indicate
+ # a keyring problem).
+ eecho "signature verification failed"
+ exit 1
+ fi
else
eecho "cannot check signature: gpg binary not found"
exit 1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2018-07-28 6:20 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2018-07-28 6:20 UTC (permalink / raw
To: gentoo-commits
commit: b8c070708bbc6d0db544d4b04b530d6d03d39bb5
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 28 06:15:53 2018 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Jul 28 06:15:53 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=b8c07070
emerge-delta-webrsync: fix vecho command substitution
Since vecho now outputs to stderr, the output has to be redirected
to stdout when command substitution is intended.
Fixes: 2b6210463300 ("isolated-functions.sh: Ensure informational command output to stderr")
misc/emerge-delta-webrsync | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 14e5c7c55..8419e01a9 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -342,7 +342,7 @@ sync_local() {
if type -P tarsync > /dev/null ; then
local chown_opts="-o ${ownership%:*} -g ${ownership#*:}"
chown ${ownership} "${repo_location}" > /dev/null 2>&1 || chown_opts=""
- if ! tarsync $(__vecho -v) -s 1 ${chown_opts} \
+ if ! tarsync $(__vecho -v 2>&1) -s 1 ${chown_opts} \
-e /distfiles -e /packages -e /local "${file}" "${repo_location}"; then
eecho "tarsync failed; tarball is corrupt? (${file})"
return 1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2019-12-09 9:30 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2019-12-09 9:30 UTC (permalink / raw
To: gentoo-commits
commit: fa0f8720e168c95bcd6a8bd57d5abf09c488fd32
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 9 09:26:55 2019 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Dec 9 09:28:50 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=fa0f8720
emerge-delta-webrsync: handle gentoo-YYYYMMDD directory name
Bug: https://bugs.gentoo.org/693454
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
misc/emerge-delta-webrsync | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index c5f6fbbd3..cda5a9229 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -332,7 +332,7 @@ check_file_signature() {
get_snapshot_timestamp() {
local file="$1"
- do_tar "${file}" --to-stdout -xf - portage/metadata/timestamp.x | cut -f 1 -d " "
+ do_tar "${file}" --to-stdout -f - --wildcards -x '*/metadata/timestamp.x' | cut -f 1 -d " "
}
sync_local() {
@@ -361,23 +361,22 @@ sync_local() {
return 1
fi
else
- if ! do_tar "${file}" xf - -C "${TMPDIR}" ; then
+ if ! do_tar "${file}" -x --strip-components=1 -f - -C "${TMPDIR}" ; then
eecho "tar failed to extract the image. tarball is corrupt? (${file})"
- rm -fr "${TMPDIR}"/portage
+ rm -fr "${TMPDIR}"
return 1
fi
local rsync_opts="${PORTAGE_RSYNC_OPTS} ${PORTAGE_RSYNC_EXTRA_OPTS}"
- if chown ${ownership} "${TMPDIR}"/portage > /dev/null 2>&1; then
- chown -R ${ownership} "${TMPDIR}"/portage
+ if chown ${ownership} "${TMPDIR}" > /dev/null 2>&1; then
+ chown -R ${ownership} "${TMPDIR}"
rsync_opts+=" --owner --group"
fi
- cd "${TMPDIR}"/portage
rsync ${rsync_opts} . "${repo_location%%/}"
cd "${DISTDIR}"
__vecho "Cleaning up ..."
- rm -fr "${TMPDIR}"/portage
+ rm -fr "${TMPDIR}"
fi
if has metadata-transfer ${FEATURES} ; then
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2019-12-30 21:36 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2019-12-30 21:36 UTC (permalink / raw
To: gentoo-commits
commit: 82b29bdd12c1ea1002a455c98fa7958311b92ec3
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 30 21:34:29 2019 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Dec 30 21:34:29 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=82b29bdd
emerge-delta-webrsync: chmod 755 temp dir (bug 704256)
Before the rsync call, chmod 755 the temporary directory so that the
root directory of the repository will have appropriate permissions.
Fixes: fa0f8720e168 ("emerge-delta-webrsync: handle gentoo-YYYYMMDD directory name")
Bug: https://bugs.gentoo.org/704256
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
misc/emerge-delta-webrsync | 1 +
1 file changed, 1 insertion(+)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index cda5a9229..082e15e52 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -372,6 +372,7 @@ sync_local() {
chown -R ${ownership} "${TMPDIR}"
rsync_opts+=" --owner --group"
fi
+ chmod 755 .
rsync ${rsync_opts} . "${repo_location%%/}"
cd "${DISTDIR}"
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2023-08-19 13:35 Sam James
0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2023-08-19 13:35 UTC (permalink / raw
To: gentoo-commits
commit: fe8b6d95b9c46b67cd4cf0040b5ae81704056cb7
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 13:35:04 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 13:35:04 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=fe8b6d95
misc/emerge-delta-webrsync: fix copyright header, whitespace
Signed-off-by: Sam James <sam <AT> gentoo.org>
misc/emerge-delta-webrsync | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 8859bd79fe..b2925f0134 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
# Rewritten from the old, Perl-based emerge-webrsync script
@@ -374,7 +374,6 @@ check_file_digest() {
return "${r}"
}
-
check_file_signature_gemato() {
local signature="$1"
local file="$2"
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2023-08-19 15:03 Sam James
0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2023-08-19 15:03 UTC (permalink / raw
To: gentoo-commits
commit: 79f0b50b79d6ddde4cabd2dca5eac88b2cbf40c1
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 15:02:44 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 15:02:44 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=79f0b50b
misc/emerge-delta-webrsync: drop dead --keyserver code
Signed-off-by: Sam James <sam <AT> gentoo.org>
misc/emerge-delta-webrsync | 5 -----
1 file changed, 5 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 1a54d41734..5b26fc14a8 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -391,11 +391,6 @@ check_file_signature_gemato() {
die "Needed keys unavailable! Install its package or set PORTAGE_GPG_KEY to the right path."
fi
- local keyserver
- if [[ -n ${PORTAGE_GPG_KEY_SERVER} ]] ; then
- keyserver="--keyserver ${PORTAGE_GPG_KEY_SERVER}"
- fi
-
local gemato_args=(
openpgp-verify-detached
-K "${key}"
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2023-08-19 15:03 Sam James
0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2023-08-19 15:03 UTC (permalink / raw
To: gentoo-commits
commit: 058af64372fc6937cb83e58653133f2dba47d410
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 15:02:17 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 15:02:17 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=058af643
misc/emerge-delta-webrsync: sync with emerge-webrsync for proxy support
Signed-off-by: Sam James <sam <AT> gentoo.org>
misc/emerge-delta-webrsync | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index b2925f0134..1a54d41734 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -94,8 +94,8 @@ eval "$("${portageq}" envvar -v DISTDIR EPREFIX FEATURES \
PORTAGE_BIN_PATH PORTAGE_CONFIGROOT PORTAGE_GPG_DIR \
PORTAGE_NICENESS PORTAGE_REPOSITORIES PORTAGE_RSYNC_EXTRA_OPTS \
PORTAGE_RSYNC_OPTS PORTAGE_TEMP_GPG_DIR PORTAGE_TMPDIR \
- USERLAND http_proxy ftp_proxy)"
-export http_proxy ftp_proxy
+ USERLAND http_proxy https_proxy ftp_proxy)"
+export http_proxy https_proxy ftp_proxy
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit
@@ -401,6 +401,12 @@ check_file_signature_gemato() {
-K "${key}"
)
+ if [[ -n ${http_proxy} || -n ${https_proxy} ]] ; then
+ gemato_args+=(
+ --proxy "${http_proxy:-${https_proxy}}"
+ )
+ fi
+
[[ -n ${PORTAGE_GPG_KEY_SERVER} ]] && gemato_args+=( --keyserver "${PORTAGE_GPG_KEY_SERVER}" )
[[ ${PORTAGE_QUIET} == 1 ]] && gemato_args+=( --quiet )
[[ ${do_debug} == 1 ]] && gemato_args+=( --debug )
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2023-08-19 15:42 Sam James
0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2023-08-19 15:42 UTC (permalink / raw
To: gentoo-commits
commit: 591f0826a15e437eb02e2eddf8ed1487b05f5e94
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 19 15:16:04 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Aug 19 15:16:04 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=591f0826
misc/emerge-delta-webrsync: fix incorrect warning in --help
I was wrong - the full thing is indeed verified, because we check both
the base + final signatures.
Fixes: 0347637fe5033d3d8eb4fdafa1e86de171934819
Signed-off-by: Sam James <sam <AT> gentoo.org>
misc/emerge-delta-webrsync | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 5b26fc14a8..610a03f8f7 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -152,7 +152,7 @@ for x in $*; do
echo "$x isn't a valid arg. bailing."
fi
if [[ -n $PUKE_HELP ]]; then
- echo "--no-pgp-verify; disable PGP verification of snapshot (note that patches are not verified either way)"
+ echo "--no-pgp-verify; disable PGP verification of snapshot and patches"
echo "-u for upgrade; sync only if new snapshots are found"
echo "-k for keep; keep old tree snapshots around"
exit -1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2023-11-11 7:24 Sam James
0 siblings, 0 replies; 32+ messages in thread
From: Sam James @ 2023-11-11 7:24 UTC (permalink / raw
To: gentoo-commits
commit: f511b5a1f55df1cd7b322d50ce0f0c5a4e24d81c
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 11 05:52:53 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 11 07:24:02 2023 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=f511b5a1
misc/emerge-delta-webrsync: fix typos
Thanks to codespell.
Signed-off-by: Sam James <sam <AT> gentoo.org>
misc/emerge-delta-webrsync | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 12930a0a68..49c8f606e1 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -501,7 +501,7 @@ check_file_signature() {
if [[ ${r} != 0 ]] ; then
eerror "Error occurred in check_file_signature: ${r}. Aborting."
- die "Verification error occured."
+ die "Verification error occurred."
fi
else
r=0
@@ -990,7 +990,7 @@ if ! verify_md5_file "${TMPDIR}/portage-${final_date}.tar.bz2" "${DISTDIR}/porta
exit 5
fi
# hokay. md5 doesn't agree with umd5. bzip2 issue in effect.
- echo "compressed md5 differs, but uncompressed md5 says it right. bzip2 version incompatability in other words"
+ echo "compressed md5 differs, but uncompressed md5 says it right. bzip2 version incompatibility in other words"
echo "saving the md5"
if type -p md5sum &> /dev/null; then
md5sum "${TMPDIR}/portage-${final_date}.tar.bz2" | sed -e "s:${TMPDIR}/\?::" > \
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/portage:master commit in: misc/
@ 2024-01-29 1:22 Zac Medico
0 siblings, 0 replies; 32+ messages in thread
From: Zac Medico @ 2024-01-29 1:22 UTC (permalink / raw
To: gentoo-commits
commit: 86a3bfce1e399b3274143df00e68c762d3666724
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 29 00:48:53 2024 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Jan 29 00:52:05 2024 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=86a3bfce
emerge-delta-webrsync: cd to TMPDIR before rsync
The cd to TMPDIR before rsync was erroneously removed in
commit fa0f8720e168c95bcd6a8bd57d5abf09c488fd32. Apparently
this problem was not reported earlier because this code
path only executes when tarsync is not installed, and the
emerge-delta-webrsync postinstall suggests to install
tarsync since version 3.7.3 released near the end of 2015.
Bug: https://bugs.gentoo.org/922923
Fixes: fa0f8720e168 ("emerge-delta-webrsync: handle gentoo-YYYYMMDD directory name")
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
misc/emerge-delta-webrsync | 1 +
1 file changed, 1 insertion(+)
diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
index 49c8f606e1..a788cdb0eb 100755
--- a/misc/emerge-delta-webrsync
+++ b/misc/emerge-delta-webrsync
@@ -553,6 +553,7 @@ sync_local() {
chown -R ${ownership} "${TMPDIR}"
rsync_opts+=" --owner --group"
fi
+ cd "${TMPDIR}" || die "failed to change directory to TMPDIR"
chmod 755 .
rsync ${rsync_opts} . "${repo_location%%/}"
cd "${DISTDIR}"
^ permalink raw reply related [flat|nested] 32+ messages in thread
end of thread, other threads:[~2024-01-29 1:22 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-30 21:36 [gentoo-commits] proj/portage:master commit in: misc/ Zac Medico
-- strict thread matches above, loose matches on Subject: below --
2024-01-29 1:22 Zac Medico
2023-11-11 7:24 Sam James
2023-08-19 15:42 Sam James
2023-08-19 15:03 Sam James
2023-08-19 15:03 Sam James
2023-08-19 13:35 Sam James
2019-12-09 9:30 Zac Medico
2018-07-28 6:20 Zac Medico
2018-07-28 6:12 Zac Medico
2018-02-01 6:18 Zac Medico
2015-11-06 5:31 Zac Medico
2014-10-19 17:19 Zac Medico
2013-07-10 20:16 Zac Medico
2013-06-22 6:14 Zac Medico
2013-06-22 5:54 Zac Medico
2013-01-28 21:45 Zac Medico
2012-09-14 7:26 Zac Medico
2012-08-19 5:44 Zac Medico
2012-08-19 5:21 Zac Medico
2012-08-18 22:51 Zac Medico
2012-08-18 20:51 Zac Medico
2012-08-18 20:32 Zac Medico
2012-08-18 1:45 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 1:28 Zac Medico
2012-08-18 0:09 Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox