From ddf550dff3bbe6cc8fa2d01d0b57115c0f60e2e7 Mon Sep 17 00:00:00 2001 From: Olaf Bohlen <olaf.bohlen@btc-it-services.com> Date: Wed, 01 Mar 2017 16:02:40 +0100 Subject: [PATCH] added -n to avoid using --clone for pkgrecv --- pkg5mirror.ksh | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/pkg5mirror.ksh b/pkg5mirror.ksh index 094f125..caece5d 100644 --- a/pkg5mirror.ksh +++ b/pkg5mirror.ksh @@ -25,11 +25,13 @@ usage() { cat <<EOF Usage: - $0 -r repoid -o origin [ -p proxy ] [ -k /path/to/key ] [ -c /path/to/cert ] + $0 -r repoid -o origin [ -n ] [ -p proxy ] [ -k /path/to/key ] [ -c /path/to/cert ] + + -n don't use --clone for pkgrecv to avoid a bug in Hipsters pkgrecv Example: $0 -r hipster -o https://pkg.openindiana.org/hipster/ -p http://btchttp.btc-ag.com:8080/ - $0 -r solaris -o https://pkg.oracle.com/solaris/support/ -p http://btchttp.btc-ag.com:8080/ -k /var/pkg/client.key -c /var/pkt/client.crt + $0 -r solaris -o https://pkg.oracle.com/solaris/support/ -n -p http://btchttp.btc-ag.com:8080/ -k /var/pkg/client.key -c /var/pkt/client.crt EOF exit 1 } @@ -46,8 +48,9 @@ typeset counter typeset certargs typeset keyargs +typeset noclone -while getopts hr:o:c:k:p: argv; do +while getopts hr:o:c:k:p:n argv; do case ${argv} in h) usage;; p) http_proxy=${OPTARG} @@ -57,6 +60,7 @@ k) keyargs=" --key ${OPTARG}";; r) publisher=${OPTARG};; o) pkgorigin=${OPTARG};; + n) noclone=TRUE;; *) usage;; esac done @@ -112,12 +116,23 @@ # get the default publisher name from repository pubprefix=$( pkgrepo -s file://${repofs}-clone get -H publisher/prefix | nawk '{ print $3 }' ) -# at this point we will receive updates to the repository -log_msg INFO "now starting pkgrecv --clone for ${pubprefix}" -pkgrecv -p ${pubprefix} -s ${pkgorigin} -d file://${repofs}-clone --clone >${pkgrecvout} 2>&1 -if [ $? -gt 0 ]; then - log_msg ERROR "pkgrecv -p ${pubprefix} -s ${pkgorigin} -d file://${repofs}-clone --clone returned an error" - exit 1 +if [ x${noclone} == xTRUE ]; then + # don't use --clone as Hipsters pkgrecv cannot verify pkg signatures from oracle then + # at this point we will receive updates to the repository + log_msg INFO "now starting pkgrecv for ${pubprefix}" + pkgrecv -s ${pkgorigin} -d file://${repofs}-clone ${certargs} ${keyargs} '*' >${pkgrecvout} 2>&1 + if [ $? -gt 0 ]; then + log_msg ERROR "pkgrecv -s ${pkgorigin} -d file://${repofs}-clone ${certargs} ${keyargs} '*' returned an error" + exit 1 + fi +else + # at this point we will receive updates to the repository + log_msg INFO "now starting pkgrecv --clone for ${pubprefix}" + pkgrecv -p ${pubprefix} -s ${pkgorigin} -d file://${repofs}-clone --clone >${pkgrecvout} 2>&1 + if [ $? -gt 0 ]; then + log_msg ERROR "pkgrecv -p ${pubprefix} -s ${pkgorigin} -d file://${repofs}-clone --clone returned an error" + exit 1 + fi fi # now refresh the cloned and updated repo -- Gitblit v1.9.3