From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: Re: [PATCH] build-system: Add haskell-build-system. Date: Mon, 30 Mar 2015 18:48:17 +0200 Message-ID: References: <87wq1zyl2z.fsf@gnu.org> <877ftz52eq.fsf@mango.localdomain> <87k2xyhpce.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=089e0158be38b4f86d0512843f57 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YccrO-0004mX-2z for guix-devel@gnu.org; Mon, 30 Mar 2015 12:48:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YccrL-000649-PN for guix-devel@gnu.org; Mon, 30 Mar 2015 12:48:22 -0400 In-Reply-To: <87k2xyhpce.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: =?UTF-8?Q?Ludovic_Court=C3=A8s?= Cc: Guix-devel --089e0158be38b4f86d0512843f57 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Mar 30, 2015 at 10:16 AM, Ludovic Court=C3=A8s wrote= : > Handling it during profile creation, as you suggest, and avoiding the > use of a wrapper sounds preferable to me. OK, lets go for that. Please find attached an updated patch taking into account all of your earlier comments. In the mean time I've found that to generate the documentation an additional step is required (phase haddock; the name is also the name of the tool used to generate the doc). I've added a keyword argument #:haddock? with default value of #t and #:haddock-flags for doc specific flags. The documentation is in the form of html files and does seems to require a fair amount of space. Some random examples: - mtl libs: 1.2MB / doc: 0.772MB - text libs: 13MB / doc: 1.7MB - HTTP libs: 3.9MB / doc: 0.804MB - network-uri: libs: 1.5MB / doc: 0.168MB - parsec libs: 3.1MB / doc: 1.1MB Given that I'm starting to package a bunch of libraries, do we want to generate a separate output for all of them? Regards, Fede --089e0158be38b4f86d0512843f57 Content-Type: text/x-diff; charset=UTF-8; name="0001-build-system-Add-haskell-build-system.patch" Content-Disposition: attachment; filename="0001-build-system-Add-haskell-build-system.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i7w3xtvg0 RnJvbSA4N2Y1NjdjMGMzYzA2ZGE3M2JkNzBlMjQ5OGY3ODI5MjU4YWU3ZDYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogRnJpLCAyNyBNYXIgMjAxNSAwOTozNjo1NiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDEvMjJdIGJ1aWxkLXN5c3RlbTogQWRkIGhhc2tlbGwtYnVpbGQtc3lzdGVtLgoKKiBndWl4L2J1 aWxkLXN5c3RlbS9oYXNrZWxsLnNjbTogTmV3IGZpbGUuCiogZ3VpeC9idWlsZC9oYXNrZWxsLWJ1 aWxkLXN5c3RlbS5zY206IE5ldyBmaWxlLgotLS0KIGd1aXgvYnVpbGQtc3lzdGVtL2hhc2tlbGwu c2NtICAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysKIGd1aXgvYnVpbGQvaGFza2Vs bC1idWlsZC1zeXN0ZW0uc2NtIHwgMjIwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzNTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGd1aXgvYnVpbGQtc3lzdGVtL2hhc2tlbGwuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3Vp eC9idWlsZC9oYXNrZWxsLWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1naXQgYS9ndWl4L2J1aWxk LXN5c3RlbS9oYXNrZWxsLnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL2hhc2tlbGwuc2NtCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5ZmFhNWEKLS0tIC9kZXYvbnVsbAorKysg Yi9ndWl4L2J1aWxkLXN5c3RlbS9oYXNrZWxsLnNjbQpAQCAtMCwwICsxLDEzNSBAQAorOzs7IEdO VSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29w eXJpZ2h0IMKpIDIwMTUgRmVkZXJpY28gQmVmZmEgPGJlZmZhQGZiZW5naW5lZXJpbmcuY2g+Cis7 OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkg aXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGhh c2tlbGwpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzp1c2UtbW9kdWxlIChndWl4 IHV0aWxzKQorICAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCisgICM6dXNlLW1vZHVsZSAo Z3VpeCBkZXJpdmF0aW9ucykKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSkKKyAg Izp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQorICAjOmV4cG9ydCAoaGFz a2VsbC1idWlsZAorICAgICAgICAgICAgaGFza2VsbC1idWlsZC1zeXN0ZW0pKQorCis7OyBDb21t ZW50YXJ5OgorOzsKKzs7IFN0YW5kYXJkIGJ1aWxkIHByb2NlZHVyZSBmb3IgSGFza2VsbCBwYWNr YWdlcyB1c2luZyAnU2V0dXAuaHMnLiAgVGhpcyBpcworOzsgaW1wbGVtZW50ZWQgYXMgYW4gZXh0 ZW5zaW9uIG9mICdnbnUtYnVpbGQtc3lzdGVtJy4KKzs7Cis7OyBDb2RlOgorCisoZGVmaW5lIChk ZWZhdWx0LWhhc2tlbGwpCisgICJSZXR1cm4gdGhlIGRlZmF1bHQgSGFza2VsbCBwYWNrYWdlLiIK KyAgOzsgTGF6aWx5IHJlc29sdmUgdGhlIGJpbmRpbmcgdG8gYXZvaWQgYSBjaXJjdWxhciBkZXBl bmRlbmN5LgorICAobGV0ICgoaGFza2VsbCAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2Fn ZXMgaGFza2VsbCkpKSkKKyAgICAobW9kdWxlLXJlZiBoYXNrZWxsICdnaGMpKSkKKworKGRlZmlu ZSogKGxvd2VyIG5hbWUKKyAgICAgICAgICAgICAgICAjOmtleSBzb3VyY2UgaW5wdXRzIG5hdGl2 ZS1pbnB1dHMgb3V0cHV0cyBzeXN0ZW0gdGFyZ2V0CisgICAgICAgICAgICAgICAgKGhhc2tlbGwg KGRlZmF1bHQtaGFza2VsbCkpCisgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzCisg ICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3VtZW50cykKKyAgIlJldHVybiBhIGJhZyBmb3IgTkFN RS4iCisgIChkZWZpbmUgcHJpdmF0ZS1rZXl3b3JkcworICAgICcoIzp0YXJnZXQgIzpoYXNrZWxs ICM6aW5wdXRzICM6bmF0aXZlLWlucHV0cykpCisKKyAgKGFuZCAobm90IHRhcmdldCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgO1hYWDogbm8gY3Jvc3MtY29tcGlsYXRpb24KKyAgICAg ICAoYmFnCisgICAgICAgICAobmFtZSBuYW1lKQorICAgICAgICAgKHN5c3RlbSBzeXN0ZW0pCisg ICAgICAgICAoaG9zdC1pbnB1dHMgYCgsQChpZiBzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGAoKCJzb3VyY2UiICxzb3VyY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJygpKQorICAgICAgICAgICAgICAgICAgICAgICAgLEBpbnB1dHMKKworICAgICAgICAg ICAgICAgICAgICAgICAgOzsgS2VlcCB0aGUgc3RhbmRhcmQgaW5wdXRzIG9mICdnbnUtYnVpbGQt c3lzdGVtJy4KKyAgICAgICAgICAgICAgICAgICAgICAgICxAKHN0YW5kYXJkLXBhY2thZ2VzKSkp CisgICAgICAgICAoYnVpbGQtaW5wdXRzIGAoKCJoYXNrZWxsIiAsaGFza2VsbCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAsQG5hdGl2ZS1pbnB1dHMpKQorICAgICAgICAgKG91dHB1dHMgb3V0 cHV0cykKKyAgICAgICAgIChidWlsZCBoYXNrZWxsLWJ1aWxkKQorICAgICAgICAgKGFyZ3VtZW50 cyAoc3RyaXAta2V5d29yZC1hcmd1bWVudHMgcHJpdmF0ZS1rZXl3b3JkcyBhcmd1bWVudHMpKSkp KQorCisoZGVmaW5lKiAoaGFza2VsbC1idWlsZCBzdG9yZSBuYW1lIGlucHV0cworICAgICAgICAg ICAgICAgICAgICAgICAgIzprZXkgc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAoaGFk ZG9jaz8gI3QpCisgICAgICAgICAgICAgICAgICAgICAgICAoaGFkZG9jay1mbGFncyAnJygpKQor ICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3RzPyAjdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICh0ZXN0LXRhcmdldCAidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZmln dXJlLWZsYWdzICcnKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAocGhhc2VzICcoQCAoZ3Vp eCBidWlsZCBoYXNrZWxsLWJ1aWxkLXN5c3RlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICVzdGFuZGFyZC1waGFzZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG91 dHB1dHMgJygib3V0IikpCisgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGhzICco KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAoZ3VpbGUgI2YpCisgICAgICAgICAgICAgICAgICAgICAg ICAoaW1wb3J0ZWQtbW9kdWxlcyAnKChndWl4IGJ1aWxkIGhhc2tlbGwtYnVpbGQtc3lzdGVtKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpeCBidWlsZCBn bnUtYnVpbGQtc3lzdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZ3VpeCBidWlsZCB1dGlscykpKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1vZHVs ZXMgJygoZ3VpeCBidWlsZCBoYXNrZWxsLWJ1aWxkLXN5c3RlbSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGd1aXggYnVpbGQgdXRpbHMpKSkpCisgICJCdWlsZCBTT1VSQ0Ug dXNpbmcgSEFTS0VMTCwgYW5kIHdpdGggSU5QVVRTLiAgVGhpcyBhc3N1bWVzIHRoYXQgU09VUkNF Citwcm92aWRlcyBhICdTZXR1cC5ocycgZmlsZSBhcyBpdHMgYnVpbGQgc3lzdGVtLiIKKyAgKGRl ZmluZSBidWlsZGVyCisgICAgYChiZWdpbgorICAgICAgICh1c2UtbW9kdWxlcyAsQG1vZHVsZXMp CisgICAgICAgKGhhc2tlbGwtYnVpbGQgIzpuYW1lICxuYW1lCisgICAgICAgICAgICAgICAgICAg ICAgIzpzb3VyY2UgLChtYXRjaCAoYXNzb2MtcmVmIGlucHV0cyAic291cmNlIikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKCg/IGRlcml2YXRpb24/IHNvdXJjZSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXJpdmF0aW9uLT5vdXRwdXQtcGF0aCBz b3VyY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc291cmNlKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzb3VyY2UpKQorICAgICAgICAgICAgICAgICAgICAgICM6Y29uZmlndXJlLWZsYWdzICxj b25maWd1cmUtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAjOmhhZGRvY2stZmxhZ3MgLGhh ZGRvY2stZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAjOnN5c3RlbSAsc3lzdGVtCisgICAg ICAgICAgICAgICAgICAgICAgIzp0ZXN0LXRhcmdldCAsdGVzdC10YXJnZXQKKyAgICAgICAgICAg ICAgICAgICAgICAjOnRlc3RzPyAsdGVzdHM/CisgICAgICAgICAgICAgICAgICAgICAgIzpoYWRk b2NrPyAsaGFkZG9jaz8KKyAgICAgICAgICAgICAgICAgICAgICAjOnBoYXNlcyAscGhhc2VzCisg ICAgICAgICAgICAgICAgICAgICAgIzpvdXRwdXRzICVvdXRwdXRzCisgICAgICAgICAgICAgICAg ICAgICAgIzpzZWFyY2gtcGF0aHMgJywobWFwIHNlYXJjaC1wYXRoLXNwZWNpZmljYXRpb24tPnNl eHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLXBh dGhzKQorICAgICAgICAgICAgICAgICAgICAgICM6aW5wdXRzICVidWlsZC1pbnB1dHMpKSkKKwor ICAoZGVmaW5lIGd1aWxlLWZvci1idWlsZAorICAgIChtYXRjaCBndWlsZQorICAgICAgKCg/IHBh Y2thZ2U/KQorICAgICAgIChwYWNrYWdlLWRlcml2YXRpb24gc3RvcmUgZ3VpbGUgc3lzdGVtICM6 Z3JhZnQ/ICNmKSkKKyAgICAgICgjZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyB0aGUgZGVmYXVsdAorICAgICAgIChsZXQqICgoZGlzdHJvIChyZXNvbHZlLWludGVy ZmFjZSAnKGdudSBwYWNrYWdlcyBjb21tZW5jZW1lbnQpKSkKKyAgICAgICAgICAgICAgKGd1aWxl ICAobW9kdWxlLXJlZiBkaXN0cm8gJ2d1aWxlLWZpbmFsKSkpCisgICAgICAgICAocGFja2FnZS1k ZXJpdmF0aW9uIHN0b3JlIGd1aWxlIHN5c3RlbSAjOmdyYWZ0PyAjZikpKSkpCisKKyAgKGJ1aWxk LWV4cHJlc3Npb24tPmRlcml2YXRpb24gc3RvcmUgbmFtZSBidWlsZGVyCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICM6aW5wdXRzIGlucHV0cworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjOnN5c3RlbSBzeXN0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIzptb2R1bGVzIGltcG9ydGVkLW1vZHVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIzpvdXRwdXRzIG91dHB1dHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IzpndWlsZS1mb3ItYnVpbGQgZ3VpbGUtZm9yLWJ1aWxkKSkKKworKGRlZmluZSBoYXNrZWxsLWJ1 aWxkLXN5c3RlbQorICAoYnVpbGQtc3lzdGVtCisgICAgKG5hbWUgJ2hhc2tlbGwpCisgICAgKGRl c2NyaXB0aW9uICJUaGUgc3RhbmRhcmQgSGFza2VsbCBidWlsZCBzeXN0ZW0iKQorICAgIChsb3dl ciBsb3dlcikpKQorCis7OzsgaGFza2VsbC5zY20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS9ndWl4 L2J1aWxkL2hhc2tlbGwtYnVpbGQtc3lzdGVtLnNjbSBiL2d1aXgvYnVpbGQvaGFza2VsbC1idWls ZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYWJhMjUK LS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL2hhc2tlbGwtYnVpbGQtc3lzdGVtLnNjbQpA QCAtMCwwICsxLDIyMCBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFu YWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMTUgRmVkZXJpY28gQmVmZmEgPGJl ZmZhQGZiZW5naW5lZXJpbmcuY2g+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUg R3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChh dAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAor Ozs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1 bGUgKGd1aXggYnVpbGQgaGFza2VsbC1idWlsZC1zeXN0ZW0pCisgICM6dXNlLW1vZHVsZSAoKGd1 aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkgIzpwcmVmaXggZ251OikKKyAgIzp1c2UtbW9kdWxl IChndWl4IGJ1aWxkIHV0aWxzKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVz ZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSByZGVsaW0pCisg ICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVnZXgpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gp CisgICM6ZXhwb3J0ICglc3RhbmRhcmQtcGhhc2VzCisgICAgICAgICAgICBoYXNrZWxsLWJ1aWxk KSkKKworOzsgQ29tbWVudGFyeToKKzs7Cis7OyBCdWlsZGVyLXNpZGUgY29kZSBvZiB0aGUgc3Rh bmRhcmQgSGFza2VsbCBwYWNrYWdlIGJ1aWxkIHByb2NlZHVyZS4KKzs7Cis7OyBUaGUgSGFza2Vs bCBjb21waWxlciwgdG8gZmluZCBsaWJyYXJpZXMsIHJlbGllcyBvbiBhIGxpYnJhcnkgZGF0YWJh c2Ugd2l0aAorOzsgYSBiaW5hcnkgY2FjaGUuIEZvciBHSEMgdGhlIGNhY2hlIGhhcyB0byBiZSBu YW1lZCAncGFja2FnZS5jYWNoZScuIElmIGV2ZXJ5Cis7OyBsaWJyYXJ5IHdvdWxkIGdlbmVyYXRl IHRoZSBjYWNoZSBhdCBidWlsZCB0aW1lLCB0aGVuIHRoZXkgd291bGQgY2xhc2ggaW4KKzs7IHBy b2ZpbGVzLiBGb3IgdGhpcyByZWFzb24gd2UgZG8gbm90IGdlbmVyYXRlIHRoZSBjYWNoZSB3aGVu IHdlIGdlbmVyYXRlCis7OyBsaWJyYXJpZXMgc3Vic3RpdHV0ZXMuIEluc3RlYWQ6Cis7OworOzsg LSBBdCBidWlsZCB0aW1lIHdlIHVzZSB0aGUgJ3NldHVwLWNvbXBpbGVyJyBwaGFzZSB0byBnZW5l cmF0ZSBhIHRlbXBvcmFyeQorOzsgICBsaWJyYXJ5IGRhdGFiYXNlIGFuZCBpdHMgY2FjaGUuCis7 OworOzsgLSBXZSBnZW5lcmF0ZSB0aGUgY2FjaGUgd2hlbiBhIHByb2ZpbGUgaXMgY3JlYXRlZC4K KworOzsgQ29kZToKKzs7Cis7OyBEaXJlY3Rvcnkgd2hlcmUgd2UgY3JlYXRlIHRoZSB0ZW1wb3Jh cnkgbGlicmFyaWVzIGRhdGFiYXNlIHdpdGggaXRzIGNhY2hlCis7OyBhcyByZXF1aXJlZCBieSB0 aGUgY29tcGlsZXIuCisoZGVmaW5lICV0bXAtZGItZGlyCisgIChzdHJpbmctYXBwZW5kIChvciAo Z2V0ZW52ICJUTVAiKSAiL3RtcCIpCisgICAgICAgICAgICAgICAgICIvcGFja2FnZS5jb25mLmQi KSkKKworKGRlZmluZSAocnVuLXNldHVwaHMgY29tbWFuZCBwYXJhbXMpCisgIChsZXQgKChzZXR1 cC1maWxlIChjb25kCisgICAgICAgICAgICAgICAgICAgICAoKGZpbGUtZXhpc3RzPyAiU2V0dXAu aHMiKQorICAgICAgICAgICAgICAgICAgICAgICJTZXR1cC5ocyIpCisgICAgICAgICAgICAgICAg ICAgICAoKGZpbGUtZXhpc3RzPyAiU2V0dXAubGhzIikKKyAgICAgICAgICAgICAgICAgICAgICAi U2V0dXAubGhzIikKKyAgICAgICAgICAgICAgICAgICAgIChlbHNlCisgICAgICAgICAgICAgICAg ICAgICAgI2YpKSkpCisgICAgKGlmIHNldHVwLWZpbGUKKyAgICAgICAgKGJlZ2luCisgICAgICAg ICAgKGZvcm1hdCAjdCAicnVubmluZyBcInJ1bmhhc2tlbGwgU2V0dXAuaHNcIiB3aXRoIGNvbW1h bmQgfnMgXAorYW5kIHBhcmFtZXRlcnMgfnN+JSIKKyAgICAgICAgICAgICAgICAgIGNvbW1hbmQg cGFyYW1zKQorICAgICAgICAgICh6ZXJvPyAoYXBwbHkgc3lzdGVtKiAicnVuaGFza2VsbCIgc2V0 dXAtZmlsZSBjb21tYW5kIHBhcmFtcykpKQorICAgICAgICAoZXJyb3IgIm5vIFNldHVwLmhzIG5v ciBTZXR1cC5saHMgZm91bmQiKSkpKQorCisoZGVmaW5lKiAoY29uZmlndXJlICM6a2V5IG91dHB1 dHMgaW5wdXRzIHRlc3RzPyAoY29uZmlndXJlLWZsYWdzICcoKSkKKyAgICAgICAgICAgICAgICAg ICAgIzphbGxvdy1vdGhlci1rZXlzKQorICAiQ29uZmlndXJlIGEgZ2l2ZW4gSGFza2VsbCBwYWNr YWdlLiIKKyAgKGxldCogKChvdXQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSkKKyAgICAgICAg IChpbnB1dC1kaXJzIChtYXRjaCBpbnB1dHMKKyAgICAgICAgICAgICAgICAgICAgICAgKCgoXyAu IGRpcikgLi4uKQorICAgICAgICAgICAgICAgICAgICAgICAgZGlyKQorICAgICAgICAgICAgICAg ICAgICAgICAoXyAnKCkpKSkKKyAgICAgICAgIChwYXJhbXMgKGFwcGVuZCBgKCwoc3RyaW5nLWFw cGVuZCAiLS1wcmVmaXg9IiBvdXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGAoLChzdHJp bmctYXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWRvY2Rpcj0iIG91dCAi L3NoYXJlL2RvYy8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLW5hbWUt dmVyc2lvbiBvdXQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBgKCwoc3RyaW5nLWFwcGVu ZCAiLS1wYWNrYWdlLWRiPSIgJXRtcC1kYi1kaXIpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICcoIi0tZ2xvYmFsIikKKyAgICAgICAgICAgICAgICAgICAgICAgICBgKCwoc3RyaW5nLWFwcGVu ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1leHRyYS1pbmNsdWRlLWRpcnM9Igor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdC0+c2VhcmNoLXBhdGgtYXMtc3RyaW5n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGgtYXMtbGlzdCAnKCJp bmNsdWRlIikgaW5wdXQtZGlycykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6Iikp KQorICAgICAgICAgICAgICAgICAgICAgICAgIGAoLChzdHJpbmctYXBwZW5kCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICItLWV4dHJhLWxpYi1kaXJzPSIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpc3QtPnNlYXJjaC1wYXRoLWFzLXN0cmluZworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNlYXJjaC1wYXRoLWFzLWxpc3QgJygibGliIikgaW5wdXQtZGlycykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IikpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIChpZiB0ZXN0cz8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiLS1lbmFi bGUtdGVzdHMiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgY29uZmlndXJlLWZsYWdzKSkpCisgICAgKHJ1bi1zZXR1cGhzICJjb25m aWd1cmUiIHBhcmFtcykpKQorCisoZGVmaW5lKiAoYnVpbGQgIzpyZXN0IGVtcHR5KQorICAiQnVp bGQgYSBnaXZlbiBIYXNrZWxsIHBhY2thZ2UuIgorICAocnVuLXNldHVwaHMgImJ1aWxkIiAnKCkp KQorCisoZGVmaW5lKiAoaW5zdGFsbCAjOnJlc3QgZW1wdHkpCisgICJJbnN0YWxsIGEgZ2l2ZW4g SGFza2VsbCBwYWNrYWdlLiIKKyAgKHJ1bi1zZXR1cGhzICJjb3B5IiAnKCkpKQorCisoZGVmaW5l IChwYWNrYWdlLW5hbWUtdmVyc2lvbiBzdG9yZS1kaXIpCisgICJHaXZlbiBhIHN0b3JlIGRpcmVj dG9yeSBTVE9SRS1ESVIgcmV0dXJuICduYW1lLXZlcnNpb24nIG9mIHRoZSBwYWNrYWdlLiIKKyAg KGxldCogKChiYXNlIChiYXNlbmFtZSBzdG9yZS1kaXIpKSkKKyAgICAoc3RyaW5nLWRyb3AgYmFz ZQorICAgICAgICAgICAgICAgICAoKyAxIChzdHJpbmctaW5kZXggYmFzZSAjXC0pKSkpKQorCiso ZGVmaW5lIChncmVwIHJ4IHBvcnQpCisgICJHaXZlbiBhIHJlZ3VsYXItZXhwcmVzc2lvbiBSWCBp bmNsdWRpbmcgYSBncm91cCwgcmVhZCBmcm9tIFBPUlQgdW50aWwgdGhlCitmaXJzdCBtYXRjaCBh bmQgcmV0dXJuIHRoZSBjb250ZW50IG9mIHRoZSBncm91cC4iCisgIChsZXQgKChsaW5lIChyZWFk LWxpbmUgcG9ydCkpKQorICAgIChpZiAoZW9mLW9iamVjdD8gbGluZSkKKyAgICAgICAgI2YKKyAg ICAgICAgKGxldCAoKHJ4LXJlc3VsdCAocmVnZXhwLWV4ZWMgcnggbGluZSkpKQorICAgICAgICAg IChpZiByeC1yZXN1bHQKKyAgICAgICAgICAgICAgKG1hdGNoOnN1YnN0cmluZyByeC1yZXN1bHQg MSkKKyAgICAgICAgICAgICAgKGdyZXAgcnggcG9ydCkpKSkpKQorCisoZGVmaW5lKiAoc2V0dXAt Y29tcGlsZXIgIzprZXkgc3lzdGVtIGlucHV0cyBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykK KyAgIlNldHVwIHRoZSBjb21waWxlciBlbnZpcm9ubWVudC4iCisgIChsZXQqICgoaGFza2VsbCAo YXNzb2MtcmVmIGlucHV0cyAiaGFza2VsbCIpKQorICAgICAgICAgKG5hbWUtdmVyc2lvbiAocGFj a2FnZS1uYW1lLXZlcnNpb24gaGFza2VsbCkpKQorICAgIChjb25kCisgICAgICgoc3RyaW5nLW1h dGNoICJnaGMiIG5hbWUtdmVyc2lvbikKKyAgICAgIChtYWtlLWdoYy1wYWNrYWdlLWRhdGFiYXNl IHN5c3RlbSBpbnB1dHMgb3V0cHV0cykpCisgICAgIChlbHNlCisgICAgICAoZm9ybWF0ICN0Cisg ICAgICAgICAgICAgICJDb21waWxlciB+YSBub3Qgc3VwcG9ydGVkfiUiIG5hbWUtdmVyc2lvbikp KSkpCisKKyhkZWZpbmUgKG1ha2UtZ2hjLXBhY2thZ2UtZGF0YWJhc2Ugc3lzdGVtIGlucHV0cyBv dXRwdXRzKQorICAiR2VuZXJhdGUgdGhlIEdIQyBwYWNrYWdlIGRhdGFiYXNlLiIKKyAgKGxldCog KChoYXNrZWxsICAoYXNzb2MtcmVmIGlucHV0cyAiaGFza2VsbCIpKQorICAgICAgICAgKGlucHV0 LWRpcnMgKG1hdGNoIGlucHV0cworICAgICAgICAgICAgICAgICAgICAgICAoKChfIC4gZGlyKSAu Li4pCisgICAgICAgICAgICAgICAgICAgICAgICBkaXIpCisgICAgICAgICAgICAgICAgICAgICAg IChfICcoKSkpKQorICAgICAgICAgKGNvbmYtZGlycyAoc2VhcmNoLXBhdGgtYXMtbGlzdAorICAg ICAgICAgICAgICAgICAgICAgYCgsKHN0cmluZy1hcHBlbmQgImxpYi8iIHN5c3RlbSAiLSIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLW5hbWUtdmVyc2lv biBoYXNrZWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9wYWNr YWdlLmNvbmYuZCIpKQorICAgICAgICAgICAgICAgICAgICAgaW5wdXQtZGlycykpCisgICAgICAg ICAoY29uZi1maWxlcyAoYXBwZW5kLW1hcCAoY3V0IGZpbmQtZmlsZXMgPD4gIlxcLmNvbmYkIikg Y29uZi1kaXJzKSkpCisgICAgKG1rZGlyLXAgJXRtcC1kYi1kaXIpCisgICAgKGZvci1lYWNoIChs YW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgKGNvcHktZmlsZSBmaWxlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAldG1wLWRiLWRpciAiLyIgKGJhc2VuYW1l IGZpbGUpKSkpCisgICAgICAgICAgICAgIGNvbmYtZmlsZXMpCisgICAgKHplcm8/IChzeXN0ZW0q ICJnaGMtcGtnIgorICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLS1wYWNrYWdl LWRiPSIgJXRtcC1kYi1kaXIpCisgICAgICAgICAgICAgICAgICAgICJyZWNhY2hlIikpKSkKKwor KGRlZmluZSogKHJlZ2lzdGVyICM6a2V5IG5hbWUgc3lzdGVtIGlucHV0cyBvdXRwdXRzICM6YWxs b3ctb3RoZXIta2V5cykKKyAgIkdlbmVyYXRlIHRoZSBjb21waWxlciByZWdpc3RyYXRpb24gZmls ZSBmb3IgYSBnaXZlbiBIYXNrZWxsIHBhY2thZ2UuICBEb24ndAorZ2VuZXJhdGUgdGhlIGNhY2hl IGFzIGl0IHdvdWxkIGNsYXNoIGluIHVzZXIgcHJvZmlsZXMuIgorICAobGV0KiAoKG91dCAoYXNz b2MtcmVmIG91dHB1dHMgIm91dCIpKQorICAgICAgICAgKGhhc2tlbGwgIChhc3NvYy1yZWYgaW5w dXRzICJoYXNrZWxsIikpCisgICAgICAgICAobGliIChzdHJpbmctYXBwZW5kIG91dCAiL2xpYiIp KQorICAgICAgICAgKGNvbmZpZy1kaXIgKHN0cmluZy1hcHBlbmQgbGliICIvIiBzeXN0ZW0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItIiAocGFja2FnZS1uYW1lLXZlcnNp b24gaGFza2VsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvcGFja2Fn ZS5jb25mLmQiKSkKKyAgICAgICAgIChpZC1yeCAobWFrZS1yZWdleHAgIl5pZDogKiguKikkIikp CisgICAgICAgICAobGliLXJ4IChtYWtlLXJlZ2V4cCAibGliLipcXC4oYXxzbykiKSkKKyAgICAg ICAgIChjb25maWctZmlsZSAoc3RyaW5nLWFwcGVuZCBjb25maWctZGlyICIvIiBuYW1lICIuY29u ZiIpKQorICAgICAgICAgKHBhcmFtcworICAgICAgICAgIChsaXN0IChzdHJpbmctYXBwZW5kICIt LWdlbi1wa2ctY29uZmlnPSIgY29uZmlnLWZpbGUpKSkpCisgICAgKHVubGVzcyAobnVsbD8gKGZp bmQtZmlsZXMgbGliIGxpYi1yeCkpCisgICAgICAobWtkaXItcCBjb25maWctZGlyKQorICAgICAg KHJ1bi1zZXR1cGhzICJyZWdpc3RlciIgcGFyYW1zKQorICAgICAgKGxldCAoKGNvbmZpZy1maWxl LW5hbWUraWQKKyAgICAgICAgICAgICAoY2FsbC13aXRoLWFzY2lpLWlucHV0LWZpbGUgY29uZmln LWZpbGUgKGN1dCBncmVwIGlkLXJ4IDw+KSkpKQorICAgICAgICAocmVuYW1lLWZpbGUgY29uZmln LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kIGNvbmZpZy1kaXIgIi8i IGNvbmZpZy1maWxlLW5hbWUraWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIuY29uZiIpKSkpCisgICAgI3QpKQorCisoZGVmaW5lKiAoY2hlY2sgIzprZXkgdGVzdHM/IHRl c3QtdGFyZ2V0ICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIlJ1biB0aGUgdGVzdCBzdWl0ZSBvZiBh IGdpdmVuIEhhc2tlbGwgcGFja2FnZS4iCisgIChpZiB0ZXN0cz8KKyAgICAgIChydW4tc2V0dXBo cyB0ZXN0LXRhcmdldCAnKCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKGZvcm1hdCAjdCAidGVz dCBzdWl0ZSBub3QgcnVufiUiKQorICAgICAgICAjdCkpKQorCisoZGVmaW5lKiAoaGFkZG9jayAj OmtleSBvdXRwdXRzIGhhZGRvY2s/IGhhZGRvY2stZmxhZ3MgIzphbGxvdy1vdGhlci1rZXlzKQor ICAiUnVuIHRoZSB0ZXN0IHN1aXRlIG9mIGEgZ2l2ZW4gSGFza2VsbCBwYWNrYWdlLiIKKyAgKGlm IGhhZGRvY2s/CisgICAgICAobGV0KiAoKG91dCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQor ICAgICAgICAgICAgIChkb2Mtc3JjIChzdHJpbmctYXBwZW5kIChnZXRjd2QpICIvZGlzdC9kb2Mi KSkKKyAgICAgICAgICAgICAoZG9jLWRlc3QgKHN0cmluZy1hcHBlbmQgb3V0ICIvc2hhcmUvZG9j LyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtbmFtZS12 ZXJzaW9uIG91dCkpKSkKKyAgICAgICAgKGlmIChydW4tc2V0dXBocyAiaGFkZG9jayIgaGFkZG9j ay1mbGFncykKKyAgICAgICAgICAgIChiZWdpbgorICAgICAgICAgICAgICAoY29weS1yZWN1cnNp dmVseSBkb2Mtc3JjIGRvYy1kZXN0KQorICAgICAgICAgICAgICAjdCkKKyAgICAgICAgICAgICNm KSkKKyAgICAgICN0KSkKKworKGRlZmluZSAlc3RhbmRhcmQtcGhhc2VzCisgIChtb2RpZnktcGhh c2VzIGdudTolc3RhbmRhcmQtcGhhc2VzCisgICAgKGFkZC1iZWZvcmUgY29uZmlndXJlIHNldHVw LWNvbXBpbGVyIHNldHVwLWNvbXBpbGVyKQorICAgIChhZGQtYWZ0ZXIgaW5zdGFsbCBoYWRkb2Nr IGhhZGRvY2spCisgICAgKGFkZC1hZnRlciBpbnN0YWxsIHJlZ2lzdGVyIHJlZ2lzdGVyKQorICAg IChyZXBsYWNlIGluc3RhbGwgaW5zdGFsbCkKKyAgICAocmVwbGFjZSBjaGVjayBjaGVjaykKKyAg ICAocmVwbGFjZSBidWlsZCBidWlsZCkKKyAgICAocmVwbGFjZSBjb25maWd1cmUgY29uZmlndXJl KSkpCisKKyhkZWZpbmUqIChoYXNrZWxsLWJ1aWxkICM6a2V5IGlucHV0cyAocGhhc2VzICVzdGFu ZGFyZC1waGFzZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMg IzpyZXN0IGFyZ3MpCisgICJCdWlsZCB0aGUgZ2l2ZW4gSGFza2VsbCBwYWNrYWdlLCBhcHBseWlu ZyBhbGwgb2YgUEhBU0VTIGluIG9yZGVyLiIKKyAgKGFwcGx5IGdudTpnbnUtYnVpbGQKKyAgICAg ICAgICM6aW5wdXRzIGlucHV0cyAjOnBoYXNlcyBwaGFzZXMKKyAgICAgICAgIGFyZ3MpKQorCis7 OzsgaGFza2VsbC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVyZQotLSAKMi4yLjEKCg== --089e0158be38b4f86d0512843f57--