From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([69.77.167.62] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1KmacU-0008LV-0L for garchives@archives.gentoo.org; Sun, 05 Oct 2008 20:54:26 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 63B0BE03F8; Sun, 5 Oct 2008 20:54:25 +0000 (UTC) Received: from ey-out-1920.google.com (ey-out-1920.google.com [74.125.78.150]) by pigeon.gentoo.org (Postfix) with ESMTP id DC989E03F8 for ; Sun, 5 Oct 2008 20:54:24 +0000 (UTC) Received: by ey-out-1920.google.com with SMTP id 4so680681eyk.10 for ; Sun, 05 Oct 2008 13:54:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:in-reply-to:mime-version:content-type:references :x-google-sender-auth; bh=UJfPl0GDN8TucAyPt2RmObog9GLsd0Pq0yuK3Jqlrm4=; b=oHccL4ipwzTGZWo1Dw1qAXRA+dvZftKVDiiHWlIqFil+y9vRZT6HzfJjsuOpzXFKhg VGcAqvOF4ArQ5TsTPiHsyQ9LavOIT6BVBIKoUBIvGg9JsrXwdae5rkMWvM5JIC3cAMfq yCIWbGVQMfiRTR1y2GcLxwB58M3Hi95d+mlAc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:in-reply-to:mime-version :content-type:references:x-google-sender-auth; b=BbRGse4mn9KR853n09Ea6VwjQg6nHypP0BQF2yzZCXUX6QVBsecaitYlIMuer/J2uk Yyy27MeJtDKva/li8GY9ZjQvOiO0mqvFza1rg3Y4zzBqf7+wG3RMKVAHuupq0sJ3/Hvb yqmmc9oPC50iPJWPqS5cdlZoSw3jobaVWFrsM= Received: by 10.210.20.17 with SMTP id 17mr5210267ebt.59.1223240063593; Sun, 05 Oct 2008 13:54:23 -0700 (PDT) Received: by 10.210.123.18 with HTTP; Sun, 5 Oct 2008 13:54:23 -0700 (PDT) Message-ID: <201bac3a0810051354v4e22eb6fv1837142ee3a1a2bd@mail.gmail.com> Date: Sun, 5 Oct 2008 22:54:23 +0200 From: "Jonas Bernoulli" Sender: jonasbernoulli@gmail.com To: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] Re: bzr.eclass into Portage In-Reply-To: <18664.63712.432021.661712@a1ihome1.kph.uni-mainz.de> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_39896_24720073.1223240063591" References: <20080317193133.525ba4ab@gentoo.org> <47DF0EB6.8010300@gentoo.org> <47E0994D.20705@gentoo.org> <20080320083853.65c20275@gentoo.org> <47E32FDE.60805@gentoo.org> <20080321124913.00d96832@gentoo.org> <18664.63712.432021.661712@a1ihome1.kph.uni-mainz.de> X-Google-Sender-Auth: b44b32ccc151b78a X-Archives-Salt: 7a997212-6692-4c33-90ff-32d073fa46d3 X-Archives-Hash: 60be06022c6c885806fde401d97b0a08 ------=_Part_39896_24720073.1223240063591 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Here is a patch that adds support for shared repositories. Since bzr is still a bit slow this is quite useful when using multiple branches. For example I have modified the live emacs(-cvs) ebuild to use the bzr mirror of emacs instead of cvs. I also have my own emacs branches, and sometimes want to install from one of these and at other times from trunk. Without support for shared repositories this would require the standalone branches to be manually moved out of the way everytime I want to switch branches. (Or worse the complete tree to be checked out from scratch every time I switch branches.) Please consider these changes Jonas --- /usr/local/portage/layman/emacs/eclass/bzr.eclass 2008-10-05 22:40:18.000000000 +0200 +++ /usr/portage/eclass/bzr.eclass 2008-10-05 10:22:12.000000000 +0200 @@ -9,6 +9,7 @@ # @DESCRIPTION: # The bzr.eclass provides support for apps using the bazaar DSCM (distributed source control management system). # The eclass was originally derived from the git eclass. +# Shared repository support added by Jonas Bernoulli . # # Note: Just set EBZR_REPO_URI to the url of the branch and the src_unpack # this eclass provides will put an export of the branch in ${WORKDIR}/${PN}. @@ -22,13 +23,23 @@ HOMEPAGE="http://bazaar-vcs.org/" DESCRIPTION="Based on the ${EBZR} eclass" -DEPEND=">=dev-util/bzr-0.92" +DEPEND=">=dev-util/bzr-1.6" # @ECLASS-VARIABLE: EBZR_STORE_DIR # @DESCRIPTION: # The dir to store the bzr sources. EBZR_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/bzr-src" +# @ECLASS-VARIABLE: EBZR_SHARED_REPO +# @DESCRIPTION: +# Whether to use a shared repository (see bzr help repositories). +EBZR_SHARED_REPO="${EBZR_SHARED_REPO:-}" + +# @ECLASS-VARIABLE: EBZR_INIT_REPO_CMD +# @DESCRIPTION: +# The bzr command to initialize the shared repository. +EBZR_INIT_REPO_CMD="bzr init-repo" + # @ECLASS-VARIABLE: EBZR_FETCH_CMD # @DESCRIPTION: # The bzr command to fetch the sources. @@ -54,9 +65,24 @@ # The bzr command to list revision number of the branch. EBZR_REVNO_CMD="bzr revno" +# @ECLASS-VARIABLE: EBZR_INIT_REPO_OPTS +# @DESCRIPTION: +# Options passed to the init-repo commands. +EBZR_INIT_REPO_OPTS="${EBZR_INIT_REPO_OPTS:-}" + +# @ECLASS-VARIABLE: EBZR_FETCH_OPTS +# @DESCRIPTION: +# Options passed to the fetch commands in additon to EBZR_OPTIONS. +EBZR_FETCH_OPTS="${EBZR_FETCH_OPTS:-}" + +# @ECLASS-VARIABLE: EBZR_UPDATE_OPTS +# @DESCRIPTION: +# Options passed to the update commands in additon to EBZR_OPTIONS. +EBZR_UPDATE_OPTS="${EBZR_UPDATE_OPTS:-}" + # @ECLASS-VARIABLE: EBZR_OPTIONS # @DESCRIPTION: -# The options passed to the fetch and update commands. +# The common options passed to the fetch and update commands. EBZR_OPTIONS="${EBZR_OPTIONS:-}" # @ECLASS-VARIABLE: EBZR_REPO_URI @@ -72,7 +98,7 @@ # - lp:// # @CODE # -# Note: lp = https://launchpad.net +# Note: lp = http://launchpad.net EBZR_REPO_URI="${EBZR_REPO_URI:-}" # @ECLASS-VARIABLE: EBZR_BOOTSTRAP @@ -93,21 +119,26 @@ # @ECLASS-VARIABLE: EBZR_BRANCH # @DESCRIPTION: # The branch to fetch in bzr_fetch(). -# -# default: trunk -EBZR_BRANCH="${EBZR_BRANCH:-trunk}" +EBZR_BRANCH="${EBZR_BRANCH:-}" # @ECLASS-VARIABLE: EBZR_REVISION # @DESCRIPTION: # Revision to get, if not latest (see http://bazaar-vcs.org/BzrRevisionSpec) EBZR_REVISION="${EBZR_REVISION:-}" -# @ECLASS-VARIABLE: EBZR_CACHE_DIR +# @ECLASS-VARIABLE: EBZR_CACHE_REPO_DIR # @DESCRIPTION: -# The dir to store the source for the package, relative to EBZR_STORE_DIR. +# The dir name of the local shared repository (if any). # # default: ${PN} -EBZR_CACHE_DIR="${EBZR_CACHE_DIR:-${PN}}" +EBZR_CACHE_REPO_DIR="${EBZR_CACHE_REPO_DIR:-}" + +# @ECLASS-VARIABLE: EBZR_CACHE_BRANCH_DIR +# @DESCRIPTION: +# The dir name of the local branch. +# +# default: ${EBZR_BRANCH} when using a shared repository or ${PN} otherwise +EBZR_CACHE_BRANCH_DIR="${EBZR_CACHE_BRANCH_DIR:-}" # @FUNCTION: bzr_fetch # @DESCRIPTION: @@ -143,37 +174,64 @@ cd -P "${EBZR_STORE_DIR}" || die "${EBZR}: can't chdir to ${EBZR_STORE_DIR}" - EBZR_BRANCH_DIR="${EBZR_STORE_DIR}/${EBZR_CACHE_DIR}" - addwrite "${EBZR_STORE_DIR}" - addwrite "${EBZR_BRANCH_DIR}" - debug-print "${FUNCNAME}: EBZR_OPTIONS = ${EBZR_OPTIONS}" + if [[ -n ${EBZR_SHARED_REPO} ]]; then + # using shared repository + EBZR_REPO_DIR="${EBZR_STORE_DIR}/${EBZR_CACHE_REPO_DIR:-${PN}}" + EBZR_BRANCH_DIR="${EBZR_REPO_DIR}/${EBZR_CACHE_BRANCH_DIR:-${EBZR_BRANCH}}" + + addwrite "${EBZR_REPO_DIR}" + else + # using stand-alone branch + EBZR_BRANCH_DIR="${EBZR_STORE_DIR}/${EBZR_CACHE_BRANCH_DIR:-${PN}}" + fi + + addwrite "${EBZR_BRANCH_DIR}" - local repository + local branch - if [[ ${EBZR_REPO_URI} == */* ]]; then - repository="${EBZR_REPO_URI}${EBZR_BRANCH}" + if [[ -n ${EBZR_BRANCH} ]] ; then + branch="${EBZR_REPO_URI}/${EBZR_BRANCH}" else - repository="${EBZR_REPO_URI}" + branch="${EBZR_REPO_URI}" + fi + + if [[ ${EBZR_SHARED_REPO} && ! -d ${EBZR_REPO_DIR} ]] ; then + # create shared repository + debug-print "${FUNCNAME}: EBZR_INIT_REPO_OPTS = ${EBZR_INIT_REPO_OPTS}" + + ${EBZR_INIT_REPO_CMD} ${EBZR_INIT_REPO_OPTS} ${EBZR_REPO_DIR} \ + || die "${EBZR}: can't initialize shared repository." + fi + + if [[ ${EBZR_BRANCH} == */* && ! -f $(dirname ${EBZR_BRANCH}) ]]; then + # prepare path to branch + mkdir -p "${EBZR_REPO_DIR}/$(dirname ${EBZR_BRANCH})" fi if [[ ! -d ${EBZR_BRANCH_DIR} ]] ; then # fetch branch einfo "bzr branch start -->" - einfo " repository: ${repository} => ${EBZR_BRANCH_DIR}" + einfo " branch: ${branch} => ${EBZR_BRANCH_DIR}" + + EBZR_OPTIONS="${EBZR_OPTIONS} ${EBZR_FETCH_OPTS}" + debug-print "${FUNCNAME}: EBZR_OPTIONS = ${EBZR_OPTIONS}" - ${EBZR_FETCH_CMD} ${EBZR_OPTIONS} "${repository}" "${EBZR_BRANCH_DIR}" \ - || die "${EBZR}: can't branch from ${repository}." + ${EBZR_FETCH_CMD} ${EBZR_OPTIONS} "${branch}" "${EBZR_BRANCH_DIR}" \ + || die "${EBZR}: can't branch from ${branch}." else # update branch einfo "bzr pull start -->" - einfo " repository: ${repository}" + einfo " branch: ${branch} => ${EBZR_BRANCH_DIR}" + + EBZR_OPTIONS="${EBZR_OPTIONS} ${EBZR_UPDATE_OPTS}" + debug-print "${FUNCNAME}: EBZR_OPTIONS = ${EBZR_OPTIONS}" cd "${EBZR_BRANCH_DIR}" - ${EBZR_UPDATE_CMD} ${EBZR_OPTIONS} "${repository}" \ - || die "${EBZR}: can't merge from ${repository}." + ${EBZR_UPDATE_CMD} ${EBZR_OPTIONS} "${branch}" \ + || die "${EBZR}: can't merge from ${branch}." ${EBZR_DIFFSTAT_CMD} fi On Sun, Oct 5, 2008 at 7:26 PM, Ulrich Mueller wrote: >>>>>> On Fri, 21 Mar 2008, Christian Faulhammer wrote: > >> "Jorge Manuel B. S. Vicetto" : >>> With the help of Ingmar we did some cleanup and added support for >>> eclass-manpages at >>> http://git.overlays.gentoo.org/gitweb/?p=proj/desktop-effects.git;a=blob_plain;f=eclass/bzr.eclass;hb=bzr. >>> I'll be moving the updated eclass to the master branch, testing and >>> asking users to try it out during this weekend. >>> This eclass is used in the overlay for the live >>> avant-window-navigator ebuilds, so it's probably not as used/tested >>> as the remaining packages. It has provided us the support we needed >>> for awn, but you might need additional features or to review existing >>> ones. Please test the updated eclass on your overlay, feel free to >>> maintain it and, when you think its ready, add it to the tree. When >>> you do so, I'll remove it from our overlay and we'll use the eclass >>> on the tree. > >> We have a prior version for some time now in the Emacs overlay for >> two live ebuilds...so we go and merge your changed (ulm already >> did), test it and report any problems. > > As I just learned there are (at least) three overlays using > bzr.eclass, namely desktop-effects, emacs, and ltsp. > > So I think it is justified to move bzr.eclass to the Portage tree. > Currect version of bzr.eclass is attached. > > Please raise your objections *now*. > > Ulrich ------=_Part_39896_24720073.1223240063591 Content-Type: application/octet-stream; name=bzr.eclass.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fly5g28f1 Content-Disposition: attachment; filename=bzr.eclass.patch LS0tIC91c3IvbG9jYWwvcG9ydGFnZS9sYXltYW4vZW1hY3MvZWNsYXNzL2J6ci5lY2xhc3MJMjAw OC0xMC0wNSAyMjo0MDoxOC4wMDAwMDAwMDAgKzAyMDAKKysrIC91c3IvcG9ydGFnZS9lY2xhc3Mv YnpyLmVjbGFzcwkyMDA4LTEwLTA1IDEwOjIyOjEyLjAwMDAwMDAwMCArMDIwMApAQCAtOSw2ICs5 LDcgQEAKICMgQERFU0NSSVBUSU9OOgogIyBUaGUgYnpyLmVjbGFzcyBwcm92aWRlcyBzdXBwb3J0 IGZvciBhcHBzIHVzaW5nIHRoZSBiYXphYXIgRFNDTSAoZGlzdHJpYnV0ZWQgc291cmNlIGNvbnRy b2wgbWFuYWdlbWVudCBzeXN0ZW0pLgogIyBUaGUgZWNsYXNzIHdhcyBvcmlnaW5hbGx5IGRlcml2 ZWQgZnJvbSB0aGUgZ2l0IGVjbGFzcy4KKyMgU2hhcmVkIHJlcG9zaXRvcnkgc3VwcG9ydCBhZGRl ZCBieSBKb25hcyBCZXJub3VsbGkgPGpvbmFzQGJlcm5vdWxsaS5jYz4uCiAjCiAjIE5vdGU6IEp1 c3Qgc2V0IEVCWlJfUkVQT19VUkkgdG8gdGhlIHVybCBvZiB0aGUgYnJhbmNoIGFuZCB0aGUgc3Jj X3VucGFjawogIyB0aGlzIGVjbGFzcyBwcm92aWRlcyB3aWxsIHB1dCBhbiBleHBvcnQgb2YgdGhl IGJyYW5jaCBpbiAke1dPUktESVJ9LyR7UE59LgpAQCAtMjIsMTMgKzIzLDIzIEBACiBIT01FUEFH RT0iaHR0cDovL2JhemFhci12Y3Mub3JnLyIKIERFU0NSSVBUSU9OPSJCYXNlZCBvbiB0aGUgJHtF QlpSfSBlY2xhc3MiCiAKLURFUEVORD0iPj1kZXYtdXRpbC9ienItMC45MiIKK0RFUEVORD0iPj1k ZXYtdXRpbC9ienItMS42IgogCiAjIEBFQ0xBU1MtVkFSSUFCTEU6IEVCWlJfU1RPUkVfRElSCiAj IEBERVNDUklQVElPTjoKICMgVGhlIGRpciB0byBzdG9yZSB0aGUgYnpyIHNvdXJjZXMuCiBFQlpS X1NUT1JFX0RJUj0iJHtQT1JUQUdFX0FDVFVBTF9ESVNURElSLSR7RElTVERJUn19L2J6ci1zcmMi CiAKKyMgQEVDTEFTUy1WQVJJQUJMRTogRUJaUl9TSEFSRURfUkVQTworIyBAREVTQ1JJUFRJT046 CisjIFdoZXRoZXIgdG8gdXNlIGEgc2hhcmVkIHJlcG9zaXRvcnkgKHNlZSBienIgaGVscCByZXBv c2l0b3JpZXMpLgorRUJaUl9TSEFSRURfUkVQTz0iJHtFQlpSX1NIQVJFRF9SRVBPOi19IgorCisj IEBFQ0xBU1MtVkFSSUFCTEU6IEVCWlJfSU5JVF9SRVBPX0NNRAorIyBAREVTQ1JJUFRJT046Cisj IFRoZSBienIgY29tbWFuZCB0byBpbml0aWFsaXplIHRoZSBzaGFyZWQgcmVwb3NpdG9yeS4KK0VC WlJfSU5JVF9SRVBPX0NNRD0iYnpyIGluaXQtcmVwbyIKKwogIyBARUNMQVNTLVZBUklBQkxFOiBF QlpSX0ZFVENIX0NNRAogIyBAREVTQ1JJUFRJT046CiAjIFRoZSBienIgY29tbWFuZCB0byBmZXRj aCB0aGUgc291cmNlcy4KQEAgLTU0LDkgKzY1LDI0IEBACiAjIFRoZSBienIgY29tbWFuZCB0byBs aXN0IHJldmlzaW9uIG51bWJlciBvZiB0aGUgYnJhbmNoLgogRUJaUl9SRVZOT19DTUQ9ImJ6ciBy ZXZubyIKIAorIyBARUNMQVNTLVZBUklBQkxFOiBFQlpSX0lOSVRfUkVQT19PUFRTCisjIEBERVND UklQVElPTjoKKyMgT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGluaXQtcmVwbyBjb21tYW5kcy4KK0VC WlJfSU5JVF9SRVBPX09QVFM9IiR7RUJaUl9JTklUX1JFUE9fT1BUUzotfSIKKworIyBARUNMQVNT LVZBUklBQkxFOiBFQlpSX0ZFVENIX09QVFMKKyMgQERFU0NSSVBUSU9OOgorIyBPcHRpb25zIHBh c3NlZCB0byB0aGUgZmV0Y2ggY29tbWFuZHMgaW4gYWRkaXRvbiB0byBFQlpSX09QVElPTlMuCitF QlpSX0ZFVENIX09QVFM9IiR7RUJaUl9GRVRDSF9PUFRTOi19IgorCisjIEBFQ0xBU1MtVkFSSUFC TEU6IEVCWlJfVVBEQVRFX09QVFMKKyMgQERFU0NSSVBUSU9OOgorIyBPcHRpb25zIHBhc3NlZCB0 byB0aGUgdXBkYXRlIGNvbW1hbmRzIGluIGFkZGl0b24gdG8gRUJaUl9PUFRJT05TLgorRUJaUl9V UERBVEVfT1BUUz0iJHtFQlpSX1VQREFURV9PUFRTOi19IgorCiAjIEBFQ0xBU1MtVkFSSUFCTEU6 IEVCWlJfT1BUSU9OUwogIyBAREVTQ1JJUFRJT046Ci0jIFRoZSBvcHRpb25zIHBhc3NlZCB0byB0 aGUgZmV0Y2ggYW5kIHVwZGF0ZSBjb21tYW5kcy4KKyMgVGhlIGNvbW1vbiBvcHRpb25zIHBhc3Nl ZCB0byB0aGUgZmV0Y2ggYW5kIHVwZGF0ZSBjb21tYW5kcy4KIEVCWlJfT1BUSU9OUz0iJHtFQlpS X09QVElPTlM6LX0iCiAKICMgQEVDTEFTUy1WQVJJQUJMRTogRUJaUl9SRVBPX1VSSQpAQCAtNzIs NyArOTgsNyBAQAogIyAJCS0gbHA6Ly8KICMgQENPREUKICMKLSMgTm90ZTogbHAgPSBodHRwczov L2xhdW5jaHBhZC5uZXQKKyMgTm90ZTogbHAgPSBodHRwOi8vbGF1bmNocGFkLm5ldAogRUJaUl9S RVBPX1VSST0iJHtFQlpSX1JFUE9fVVJJOi19IgogCiAjIEBFQ0xBU1MtVkFSSUFCTEU6IEVCWlJf Qk9PVFNUUkFQCkBAIC05MywyMSArMTE5LDI2IEBACiAjIEBFQ0xBU1MtVkFSSUFCTEU6IEVCWlJf QlJBTkNICiAjIEBERVNDUklQVElPTjoKICMgVGhlIGJyYW5jaCB0byBmZXRjaCBpbiBienJfZmV0 Y2goKS4KLSMKLSMgZGVmYXVsdDogdHJ1bmsKLUVCWlJfQlJBTkNIPSIke0VCWlJfQlJBTkNIOi10 cnVua30iCitFQlpSX0JSQU5DSD0iJHtFQlpSX0JSQU5DSDotfSIKIAogIyBARUNMQVNTLVZBUklB QkxFOiBFQlpSX1JFVklTSU9OCiAjIEBERVNDUklQVElPTjoKICMgUmV2aXNpb24gdG8gZ2V0LCBp ZiBub3QgbGF0ZXN0IChzZWUgaHR0cDovL2JhemFhci12Y3Mub3JnL0J6clJldmlzaW9uU3BlYykK IEVCWlJfUkVWSVNJT049IiR7RUJaUl9SRVZJU0lPTjotfSIKIAotIyBARUNMQVNTLVZBUklBQkxF OiBFQlpSX0NBQ0hFX0RJUgorIyBARUNMQVNTLVZBUklBQkxFOiBFQlpSX0NBQ0hFX1JFUE9fRElS CiAjIEBERVNDUklQVElPTjoKLSMgVGhlIGRpciB0byBzdG9yZSB0aGUgc291cmNlIGZvciB0aGUg cGFja2FnZSwgcmVsYXRpdmUgdG8gRUJaUl9TVE9SRV9ESVIuCisjIFRoZSBkaXIgbmFtZSBvZiB0 aGUgbG9jYWwgc2hhcmVkIHJlcG9zaXRvcnkgKGlmIGFueSkuCiAjCiAjIGRlZmF1bHQ6ICR7UE59 Ci1FQlpSX0NBQ0hFX0RJUj0iJHtFQlpSX0NBQ0hFX0RJUjotJHtQTn19IgorRUJaUl9DQUNIRV9S RVBPX0RJUj0iJHtFQlpSX0NBQ0hFX1JFUE9fRElSOi19IgorCisjIEBFQ0xBU1MtVkFSSUFCTEU6 IEVCWlJfQ0FDSEVfQlJBTkNIX0RJUgorIyBAREVTQ1JJUFRJT046CisjIFRoZSBkaXIgbmFtZSBv ZiB0aGUgbG9jYWwgYnJhbmNoLgorIworIyBkZWZhdWx0OiAke0VCWlJfQlJBTkNIfSB3aGVuIHVz aW5nIGEgc2hhcmVkIHJlcG9zaXRvcnkgb3IgJHtQTn0gb3RoZXJ3aXNlCitFQlpSX0NBQ0hFX0JS QU5DSF9ESVI9IiR7RUJaUl9DQUNIRV9CUkFOQ0hfRElSOi19IgogCiAjIEBGVU5DVElPTjogYnpy X2ZldGNoCiAjIEBERVNDUklQVElPTjoKQEAgLTE0MywzNyArMTc0LDY0IEBACiAKIAljZCAtUCAi JHtFQlpSX1NUT1JFX0RJUn0iIHx8IGRpZSAiJHtFQlpSfTogY2FuJ3QgY2hkaXIgdG8gJHtFQlpS X1NUT1JFX0RJUn0iCiAKLQlFQlpSX0JSQU5DSF9ESVI9IiR7RUJaUl9TVE9SRV9ESVJ9LyR7RUJa Ul9DQUNIRV9ESVJ9IgotCiAJYWRkd3JpdGUgIiR7RUJaUl9TVE9SRV9ESVJ9IgotCWFkZHdyaXRl ICIke0VCWlJfQlJBTkNIX0RJUn0iCiAKLQlkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IEVCWlJf T1BUSU9OUyA9ICR7RUJaUl9PUFRJT05TfSIKKwlpZiBbWyAtbiAke0VCWlJfU0hBUkVEX1JFUE99 IF1dOyB0aGVuCisJCSMgdXNpbmcgc2hhcmVkIHJlcG9zaXRvcnkKKwkJRUJaUl9SRVBPX0RJUj0i JHtFQlpSX1NUT1JFX0RJUn0vJHtFQlpSX0NBQ0hFX1JFUE9fRElSOi0ke1BOfX0iCisJCUVCWlJf QlJBTkNIX0RJUj0iJHtFQlpSX1JFUE9fRElSfS8ke0VCWlJfQ0FDSEVfQlJBTkNIX0RJUjotJHtF QlpSX0JSQU5DSH19IgorCisJCWFkZHdyaXRlICIke0VCWlJfUkVQT19ESVJ9IgorCWVsc2UKKwkJ IyB1c2luZyBzdGFuZC1hbG9uZSBicmFuY2gKKwkJRUJaUl9CUkFOQ0hfRElSPSIke0VCWlJfU1RP UkVfRElSfS8ke0VCWlJfQ0FDSEVfQlJBTkNIX0RJUjotJHtQTn19IgorCWZpCisKKwlhZGR3cml0 ZSAiJHtFQlpSX0JSQU5DSF9ESVJ9IgogCi0JbG9jYWwgcmVwb3NpdG9yeQorCWxvY2FsIGJyYW5j aAogCi0JaWYgW1sgJHtFQlpSX1JFUE9fVVJJfSA9PSAqLyogXV07IHRoZW4KLQkJcmVwb3NpdG9y eT0iJHtFQlpSX1JFUE9fVVJJfSR7RUJaUl9CUkFOQ0h9IgorCWlmIFtbIC1uICR7RUJaUl9CUkFO Q0h9IF1dIDsgdGhlbgorCQlicmFuY2g9IiR7RUJaUl9SRVBPX1VSSX0vJHtFQlpSX0JSQU5DSH0i CiAJZWxzZQotCQlyZXBvc2l0b3J5PSIke0VCWlJfUkVQT19VUkl9IgorCQlicmFuY2g9IiR7RUJa Ul9SRVBPX1VSSX0iCisJZmkKKworCWlmIFtbICR7RUJaUl9TSEFSRURfUkVQT30gJiYgISAtZCAk e0VCWlJfUkVQT19ESVJ9IF1dIDsgdGhlbgorCQkjIGNyZWF0ZSBzaGFyZWQgcmVwb3NpdG9yeQor CQlkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IEVCWlJfSU5JVF9SRVBPX09QVFMgPSAke0VCWlJf SU5JVF9SRVBPX09QVFN9IgorCisJCSR7RUJaUl9JTklUX1JFUE9fQ01EfSAke0VCWlJfSU5JVF9S RVBPX09QVFN9ICR7RUJaUl9SRVBPX0RJUn0gXAorCQkJfHwgZGllICIke0VCWlJ9OiBjYW4ndCBp bml0aWFsaXplIHNoYXJlZCByZXBvc2l0b3J5LiIKKwlmaQorCisJaWYgW1sgJHtFQlpSX0JSQU5D SH0gPT0gKi8qICYmICEgLWYgJChkaXJuYW1lICR7RUJaUl9CUkFOQ0h9KSBdXTsgdGhlbgorCQkj IHByZXBhcmUgcGF0aCB0byBicmFuY2gKKwkJbWtkaXIgLXAgIiR7RUJaUl9SRVBPX0RJUn0vJChk aXJuYW1lICR7RUJaUl9CUkFOQ0h9KSIKIAlmaQogCiAJaWYgW1sgISAtZCAke0VCWlJfQlJBTkNI X0RJUn0gXV0gOyB0aGVuCiAJCSMgZmV0Y2ggYnJhbmNoCiAJCWVpbmZvICJienIgYnJhbmNoIHN0 YXJ0IC0tPiIKLQkJZWluZm8gIiAgIHJlcG9zaXRvcnk6ICR7cmVwb3NpdG9yeX0gPT4gJHtFQlpS X0JSQU5DSF9ESVJ9IgorCQllaW5mbyAiICAgYnJhbmNoOiAke2JyYW5jaH0gPT4gJHtFQlpSX0JS QU5DSF9ESVJ9IgorCisJCUVCWlJfT1BUSU9OUz0iJHtFQlpSX09QVElPTlN9ICR7RUJaUl9GRVRD SF9PUFRTfSIKKwkJZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBFQlpSX09QVElPTlMgPSAke0VC WlJfT1BUSU9OU30iCiAKLQkJJHtFQlpSX0ZFVENIX0NNRH0gJHtFQlpSX09QVElPTlN9ICIke3Jl cG9zaXRvcnl9IiAiJHtFQlpSX0JSQU5DSF9ESVJ9IiBcCi0JCQl8fCBkaWUgIiR7RUJaUn06IGNh bid0IGJyYW5jaCBmcm9tICR7cmVwb3NpdG9yeX0uIgorCQkke0VCWlJfRkVUQ0hfQ01EfSAke0VC WlJfT1BUSU9OU30gIiR7YnJhbmNofSIgIiR7RUJaUl9CUkFOQ0hfRElSfSIgXAorCQkJfHwgZGll ICIke0VCWlJ9OiBjYW4ndCBicmFuY2ggZnJvbSAke2JyYW5jaH0uIgogCiAJZWxzZQogCQkjIHVw ZGF0ZSBicmFuY2gKIAkJZWluZm8gImJ6ciBwdWxsIHN0YXJ0IC0tPiIKLQkJZWluZm8gIiAgIHJl cG9zaXRvcnk6ICR7cmVwb3NpdG9yeX0iCisJCWVpbmZvICIgICBicmFuY2g6ICR7YnJhbmNofSA9 PiAke0VCWlJfQlJBTkNIX0RJUn0iCisKKwkJRUJaUl9PUFRJT05TPSIke0VCWlJfT1BUSU9OU30g JHtFQlpSX1VQREFURV9PUFRTfSIKKwkJZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBFQlpSX09Q VElPTlMgPSAke0VCWlJfT1BUSU9OU30iCiAKIAkJY2QgIiR7RUJaUl9CUkFOQ0hfRElSfSIKLQkJ JHtFQlpSX1VQREFURV9DTUR9ICR7RUJaUl9PUFRJT05TfSAiJHtyZXBvc2l0b3J5fSIgXAotCQkJ fHwgZGllICIke0VCWlJ9OiBjYW4ndCBtZXJnZSBmcm9tICR7cmVwb3NpdG9yeX0uIgorCQkke0VC WlJfVVBEQVRFX0NNRH0gJHtFQlpSX09QVElPTlN9ICIke2JyYW5jaH0iIFwKKwkJCXx8IGRpZSAi JHtFQlpSfTogY2FuJ3QgbWVyZ2UgZnJvbSAke2JyYW5jaH0uIgogCQkke0VCWlJfRElGRlNUQVRf Q01EfQogCWZpCiAK ------=_Part_39896_24720073.1223240063591--