From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1NHHce-0000Nb-BE for garchives@archives.gentoo.org; Sun, 06 Dec 2009 13:58:01 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D5B28E0895; Sun, 6 Dec 2009 13:57:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 780BEE0895 for ; Sun, 6 Dec 2009 13:57:37 +0000 (UTC) Received: from [192.168.1.2] (graaff.xs4all.nl [80.101.101.38]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTP id 42F066755C for ; Sun, 6 Dec 2009 13:57:36 +0000 (UTC) Subject: [gentoo-dev] RFC: ruby-fakegem.eclass - new eclass for ruby gems From: Hans de Graaff To: gentoo-dev Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-Yp2GIcWHHlpZxZ3CJJQq" Organization: Gentoo Date: Sun, 06 Dec 2009 14:57:33 +0100 Message-ID: <1260107853.9134.9.camel@localhost> 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 X-Mailer: Evolution 2.28.1 X-Archives-Salt: 025253f5-9833-44a2-966e-3762dd2cc825 X-Archives-Hash: 323e9c6f3604c9bb029417d10b0bb7e3 --=-Yp2GIcWHHlpZxZ3CJJQq Content-Type: multipart/mixed; boundary="=-OdHFaKwx8fzPWs33i2O9" --=-OdHFaKwx8fzPWs33i2O9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Hot on the heels of the new ruby-ng.eclass the ruby team presents our new eclass for dealing with ruby gems: ruby-fakegem.eclass. This eclass supersedes the current gems.eclass, which will be deprecated in due time. The new ruby-fakegem.eclass builds on the framework provided by ruby-ng.eclass and as such can properly handle installing gems for multiple ruby targets. The eclass now handles the gems directly instead of via the normal rubygems tool. This allows us to properly match the Gentoo ebuild phases and thus supports patching and running tests. The eclass also provides support for installing a gemspec file for those packages that we install directly but where its dependencies expect it to be installed as a gem. There is a testbed with ebuilds here: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/ruby-scripts.git;a=3Dtree;f= =3Druby-ng-testbed;hb=3DHEAD The eclass itself is attached to this message and here: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/ruby-scripts.git;a=3Dblob;f= =3Druby-ng-testbed/eclass/ruby-fakegem.eclass;h=3D4a247d8685f2e58a31ddc45c9= 9726ff782ecb563;hb=3DHEAD Kind regards, Hans --=-OdHFaKwx8fzPWs33i2O9 Content-Disposition: attachment; filename="ruby-fakegem.eclass" Content-Type: text/plain; name="ruby-fakegem.eclass"; charset="UTF-8" Content-Transfer-Encoding: base64 IyBDb3B5cmlnaHQgMTk5OS0yMDA5IEdlbnRvbyBGb3VuZGF0aW9uDQojIERpc3RyaWJ1dGVkIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjINCiMgJEhl YWRlcjogL3Zhci9jdnNyb290L2dlbnRvby14ODYvZWNsYXNzL3J1YnkuZWNsYXNzLHYgMS43NSAy MDA5LzAzLzAzIDE1OjUxOjU0IGEzbGkgRXhwICQNCiMNCiMgQEVDTEFTUzogcnVieS1mYWtlZ2Vt LmVjbGFzcw0KIyBATUFJTlRBSU5FUjoNCiMgUnVieSBoZXJkIDxydWJ5QGdlbnRvby5vcmc+DQoj DQojIEF1dGhvcjogRGllZ28gRS4gUGV0dGVuw7IgPGZsYW1lZXllc0BnZW50b28ub3JnPg0KIw0K IyBBdXRob3I6IEFsZXggTGVnbGVyIDxhM2xpQGdlbnRvby5vcmc+DQojDQojIEBCTFVSQjogQW4g ZWNsYXNzIGZvciBpbnN0YWxsaW5nIFJ1YnkgcGFja2FnZXMgdG8gYmVoYXZlIGxpa2UgUnVieUdl bXMuDQojIEBERVNDUklQVElPTjoNCiMgVGhpcyBlY2xhc3MgYWxsb3dzIHRvIGluc3RhbGwgYXJi aXRyYXJ5IFJ1YnkgbGlicmFyaWVzIChpbmNsdWRpbmcgR2VtcyksDQojIHByb3ZpZGluZyBpbnRl Z3JhdGlvbiBpbnRvIHRoZSBSdWJ5R2VtcyBzeXN0ZW0gZXZlbiBmb3IgInJlZ3VsYXIiIHBhY2th Z2VzLg0KIw0KDQppbmhlcml0IHJ1YnktbmcNCg0KIyBARUNMQVNTLVZBUklBQkxFOiBSVUJZX0ZB S0VHRU1fTkFNRQ0KIyBAREVTQ1JJUFRJT046DQojIFNldHMgdGhlIEdlbSBuYW1lIGZvciB0aGUg Z2VuZXJhdGVkIGZha2UgZ2Vtc3BlYy4NCiMgUlVCWV9GQUtFR0VNX05BTUU9IiR7UE59Ig0KDQoj IEBFQ0xBU1MtVkFSSUFCTEU6IFJVQllfRkFLRUdFTV9WRVJTSU9ODQojIEBERVNDUklQVElPTjoN CiMgU2V0cyB0aGUgR2VtIHZlcnNpb24gZm9yIHRoZSBnZW5lcmF0ZWQgZmFrZSBnZW1zcGVjLg0K IyBSVUJZX0ZBS0VHRU1fVkVSU0lPTj0iJHtQVn0iDQoNCiMgQEVDTEFTUy1WQVJJQUJMRTogUlVC WV9GQUtFR0VNX1RBU0tfRE9DDQojIEBERVNDUklQVElPTjoNCiMgU3BlY2lmeSB0aGUgcmFrZSgx KSB0YXNrIHRvIHJ1biB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uLg0KIyBSVUJZX0ZBS0VHRU1f VkVSU0lPTj0icmRvYyINCg0KIyBARUNMQVNTLVZBUklBQkxFOiBSVUJZX0ZBS0VHRU1fVEFTS19U RVNUDQojIEBERVNDUklQVElPTjoNCiMgU3BlY2lmeSB0aGUgcmFrZSgxKSB0YXNrIHVzZWQgZm9y IGV4ZWN1dGluZyB0ZXN0cy4NCiMgUlVCWV9GQUtFR0VNX1ZFUlNJT049InRlc3QiDQoNClJVQllf RkFLRUdFTV9OQU1FPSIke1JVQllfRkFLRUdFTV9OQU1FOi0ke1BOfX0iDQpSVUJZX0ZBS0VHRU1f VkVSU0lPTj0iJHtSVUJZX0ZBS0VHRU1fVkVSU0lPTjotJHtQVn19Ig0KDQpSVUJZX0ZBS0VHRU1f VEFTS19ET0M9IiR7UlVCWV9GQUtFR0VNX1RBU0tfRE9DLXJkb2N9Ig0KUlVCWV9GQUtFR0VNX1RB U0tfVEVTVD0iJHtSVUJZX0ZBS0VHRU1fVEFTS19URVNULXRlc3R9Ig0KDQppZiBbWyAke1JVQllf RkFLRUdFTV9UQVNLX0RPQ30gIT0gIiIgXV07IHRoZW4NCglJVVNFPSIkSVVTRSBkb2MiDQoJcnVi eV9hZGRfYmRlcGVuZCBkb2MgImRldi1ydWJ5L3Jha2UiDQpmaQ0KDQppZiBbWyAke1JVQllfRkFL RUdFTV9UQVNLX1RFU1R9ICE9ICIiIF1dOyB0aGVuDQoJSVVTRT0iJElVU0UgdGVzdCINCglydWJ5 X2FkZF9iZGVwZW5kIHRlc3QgImRldi1ydWJ5L3Jha2UiDQpmaQ0KDQpydWJ5X2FkZF9yZGVwZW5k IHZpcnR1YWwvcnVieWdlbXMNCg0KIyBARlVOQ1RJT046IHJ1YnlfZmFrZWdlbV9nZW1zZGlyDQoj IEBSRVRVUk46IFJldHVybnMgdGhlIGdlbSBkYXRhIGRpcmVjdG9yeQ0KIyBAREVTQ1JJUFRJT046 DQojIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZ2VtcyBkYXRhIGRpcmVjdG9yeSBmb3IgdGhl IHJ1YnkNCiMgaW1wbGVtZW50YXRpb24gaW4gcXVlc3Rpb24uDQpydWJ5X2Zha2VnZW1fZ2Vtc2Rp cigpIHsNCglsb2NhbCBfZ2Vtc2l0ZWRpcj0kKCR7UlVCWX0gLXIgcmJjb25maWcgLWUgJ3ByaW50 IENvbmZpZzo6Q09ORklHWyJzaXRlbGliZGlyIl0nIHwgc2VkIC1lICdzOnNpdGVfcnVieTpnZW1z OicpDQoNCglbWyAteiAke19nZW1zaXRlZGlyfSBdXSAmJiB7DQoJCWVlcnJvciAiVW5hYmxlIHRv IGZpbmQgdGhlIGdlbXMgZGlyIg0KCQlkaWUgIlVuYWJsZSB0byBmaW5kIHRoZSBnZW1zIGRpciIN Cgl9DQoNCgllY2hvICIke19nZW1zaXRlZGlyfSINCn0NCg0KIyBARlVOQ1RJT046IHJ1YnlfZmFr ZWdlbV9kb2lucw0KIyBAVVNBR0U6IGZpbGUgW2ZpbGUuLi5dDQojIEBERVNDUklQVElPTjoNCiMg SW5zdGFsbHMgdGhlIHNwZWNpZmllZCBmaWxlKHMpIGludG8gdGhlIGdlbXMgZGlyZWN0b3J5Lg0K cnVieV9mYWtlZ2VtX2RvaW5zKCkgew0KCSgNCgkJaW5zaW50byAkKHJ1YnlfZmFrZWdlbV9nZW1z ZGlyKS9nZW1zLyR7UlVCWV9GQUtFR0VNX05BTUV9LSR7UlVCWV9GQUtFR0VNX1ZFUlNJT059DQoJ CWRvaW5zICIkQCINCgkpIHx8IGRpZSAiZmFpbGVkICQwICRAIg0KfQ0KDQojIEBGVU5DVElPTjog cnVieV9mYWtlZ2VtX25ld3NpbnMoKQ0KIyBAVVNBR0U6IGZpbGUgZmlsZW5hbWUNCiMgQERFU0NS SVBUSU9OOg0KIyBJbnN0YWxscyB0aGUgc3BlY2lmaWVkIGZpbGUgaW50byB0aGUgZ2VtcyBkaXJl Y3RvcnkgdXNpbmcgdGhlIHByb3ZpZGVkIGZpbGVuYW1lLg0KcnVieV9mYWtlZ2VtX25ld2lucygp IHsNCgkoDQoJCSMgU2luY2UgbmV3aW5zIGRvZXMgbm90IGFjY2VwdCBmdWxsIHBhdGhzIGJ1dCBq dXN0IGJhc2VuYW1lcw0KCQkjIGZvciB0aGUgdGFyZ2V0IGZpbGUsIHdlIHdhbnQgdG8gZXh0ZW5k IGl0IGhlcmUuDQoJCWxvY2FsIG5ld2Rpcm5hbWU9LyQoZGlybmFtZSAiJDIiKQ0KCQlbWyAke25l d2Rpcm5hbWV9ID09ICIvLiIgXV0gJiYgbmV3ZGlybmFtZT0NCg0KCQlsb2NhbCBuZXdiYXNlbmFt ZT0kKGJhc2VuYW1lICIkMiIpDQoNCgkJaW5zaW50byAkKHJ1YnlfZmFrZWdlbV9nZW1zZGlyKS9n ZW1zLyR7UlVCWV9GQUtFR0VNX05BTUV9LSR7UlVCWV9GQUtFR0VNX1ZFUlNJT059JHtuZXdkaXJu YW1lfQ0KCQluZXdpbnMgIiQxIiAke25ld2Jhc2VuYW1lfQ0KCSkgfHwgZGllICJmYWlsZWQgJDAg JEAiDQp9DQoNCiMgQEZVTkNUSU9OOiBydWJ5X2Zha2VnZW1fZ2Vuc3BlYw0KIyBAREVTQ1JJUFRJ T046DQojIEdlbmVyYXRlcyBhIGdlbXNwZWMgZm9yIHRoZSBwYWNrYWdlIGFuZCBwbGFjZXMgaXQg aW50byB0aGUgInNwZWNpZmljYXRpb25zIg0KIyBkaXJlY3Rvcnkgb2YgUnVieUdlbXMuDQojIElu IHRoZSBnZW1zcGVjLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgc2V0OiBuYW1lLCB2ZXJzaW9u LCBzdW1tYXJ5LA0KIyBob21lcGFnZSwgYW5kIHJlcXVpcmVfcGF0aHM9WyJsaWIiXS4NCiMgU2Vl IFJVQllfRkFLRUdFTV9OQU1FIGFuZCBSVUJZX0ZBS0VHRU1fVkVSU0lPTiBmb3Igc2V0dGluZyBu YW1lIGFuZCB2ZXJzaW9uLg0KcnVieV9mYWtlZ2VtX2dlbnNwZWMoKSB7DQoJKA0KCQkjIFdlIHVz ZSB0aGUgX3J1YnlfaW1wbGVtZW50YXRpb24gdmFyaWFibGUgdG8gYXZvaWQgaGF2aW5nIHN0cmF5 DQoJCSMgY29waWVzIHdpdGggZGlmZmVyZW50IGltcGxlbWVudGF0aW9uczsgd2hpbGUgZm9yIG5v dyB3ZSdyZSB1c2luZw0KCQkjIHRoZSBzYW1lIGV4YWN0IGNvbnRlbnQsIHdlIG1pZ2h0IGhhdmUg ZGlmZmVyZW5jZXMgaW4gdGhlIGZ1dHVyZSwNCgkJIyBzbyBiZXR0ZXIgdGFraW5nIHRoaXMgaW50 byBjb25zaWRlcmF0aW9uLg0KCQljYXQgLSA+ICIke1R9Ii8ke1JVQllfRkFLRUdFTV9OQU1FfS0k e19ydWJ5X2ltcGxlbWVudGF0aW9ufSA8PEVPRg0KR2VtOjpTcGVjaWZpY2F0aW9uLm5ldyBkbyB8 c3wNCiAgcy5uYW1lID0gIiR7UlVCWV9GQUtFR0VNX05BTUV9Ig0KICBzLnZlcnNpb24gPSAiJHtS VUJZX0ZBS0VHRU1fVkVSU0lPTn0iDQogIHMuc3VtbWFyeSA9ICIke0RFU0NSSVBUSU9OfSINCiAg cy5ob21lcGFnZSA9ICIke0hPTUVQQUdFfSINCiAgcy5yZXF1aXJlX3BhdGhzID0gWyJsaWIiXQ0K ZW5kDQpFT0YNCg0KCQlpbnNpbnRvICQocnVieV9mYWtlZ2VtX2dlbXNkaXIpL3NwZWNpZmljYXRp b25zDQoJCW5ld2lucyAiJHtUfSIvJHtSVUJZX0ZBS0VHRU1fTkFNRX0tJHtfcnVieV9pbXBsZW1l bnRhdGlvbn0gJHtSVUJZX0ZBS0VHRU1fTkFNRX0tJHtSVUJZX0ZBS0VHRU1fVkVSU0lPTn0uZ2Vt c3BlYw0KCSkgfHwgZGllICJVbmFibGUgdG8gaW5zdGFsbCBmYWtlIGdlbXNwZWMiDQp9DQoNCiMg QEZVTkNUSU9OOiBydWJ5X2Zha2VnZW1fYmlud3JhcHBlcg0KIyBAVVNBR0U6IGNvbW1hbmQgW3Bh dGhdDQojIEBERVNDUklQVElPTjoNCiMgQ3JlYXRlcyBhIG5ldyBiaW5hcnkgd3JhcHBlciBmb3Ig YSBjb21tYW5kIGluc3RhbGxlZCBieSB0aGUgUnVieUdlbS4NCiMgcGF0aCBkZWZhdWx0cyB0byAv dXNyL2Jpbi8kY29tbWFuZA0KcnVieV9mYWtlZ2VtX2JpbndyYXBwZXIoKSB7DQoJKA0KCQlsb2Nh bCBnZW1iaW5hcnk9JDENCgkJbG9jYWwgbmV3YmluYXJ5PSR7MjotL3Vzci9iaW4vJGdlbWJpbmFy eX0NCg0KCQljYXQgLSA+ICIke1R9Ii9nZW1iaW4td3JhcHBlci0ke2dlbWJpbmFyeX0gPDxFT0YN CiMhL3Vzci9iaW4vZW52IHJ1YnkNCiMgVGhpcyBpcyBhIHNpbXBsaWZpZWQgdmVyc2lvbiBvZiB0 aGUgUnVieUdlbXMgd3JhcHBlcg0KIw0KIyBHZW5lcmF0ZWQgYnkgcnVieS1mYWtlZ2VtLmVjbGFz cw0KDQpyZXF1aXJlICdydWJ5Z2VtcycNCg0KbG9hZCBHZW06OkdlbVBhdGhTZWFyY2hlci5uZXcu ZmluZCgnJCh0ciBbQS1aXSBbYS16XSA8PDwgJHtSVUJZX0ZBS0VHRU1fTkFNRX0pJykuZnVsbF9n ZW1fcGF0aCArICIvYmluLyR7Z2VtYmluYXJ5fSINCg0KRU9GDQoNCgkJZXhlaW50byAkKGRpcm5h bWUgJG5ld2JpbmFyeSkNCgkJbmV3ZXhlICIke1R9Ii9nZW1iaW4td3JhcHBlci0ke2dlbWJpbmFy eX0gJChiYXNlbmFtZSAkbmV3YmluYXJ5KQ0KCSkgfHwgZGllICJVbmFibGUgdG8gY3JlYXRlIGZh a2VnZW0gd3JhcHBlciINCn0NCg0KIyBARlVOQ1RJT046IGFsbF9mYWtlZ2VtX2NvbXBpbGUNCiMg QERFU0NSSVBUSU9OOg0KIyBCdWlsZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgcGFja2FnZSBpZiBp bmRpY2F0ZWQgYnkgdGhlIGRvYyBVU0UgZmxhZw0KIyBhbmQgaWYgdGhlcmUgaXMgYSBkb2N1bWV0 YXRpb24gdGFzayBkZWZpbmVkLg0KYWxsX2Zha2VnZW1fY29tcGlsZSgpIHsNCglpZiBbWyAke1JV QllfRkFLRUdFTV9UQVNLX0RPQ30gIT0gIiIgXV0gJiYgdXNlIGRvYzsgdGhlbg0KCQlyYWtlICR7 UlVCWV9GQUtFR0VNX1RBU0tfRE9DfSB8fCBkaWUgImZhaWxlZCB0byAocmUpYnVpbGQgZG9jdW1l bnRhdGlvbiINCglmaQ0KfQ0KDQojIEBGVU5DVElPTjogYWxsX3J1YnlfdW5wYWNrDQojIEBERVND UklQVElPTjoNCiMgVW5wYWNrIHRoZSBzb3VyY2UgYXJjaGl2ZSwgaW5jbHVkaW5nIHN1cHBvcnQg Zm9yIHVucGFja2luZyBnZW1zLg0KYWxsX3J1YnlfdW5wYWNrKCkgew0KCSMgU3BlY2lhbCBzdXBw b3J0IGZvciBleHRyYWN0aW5nIC5nZW0gZmlsZXM7IHRoZSBmaWxlIG5lZWQgdG8gYmUNCgkjIGV4 dHJhY3RlZCB0d2ljZSBhbmQgdGhlIG10aW1lIGZyb20gdGhlIGFyY2hpdmUgX2hhc18gdG8gYmUN CgkjIGlnbm9yZWQgKGl0J3MgYWx3YXlzIHNldCB0byBlcG9jaCAwKS4NCgkjDQoJIyBUaGlzIG9u bHkgd29ya3MgaWYgdGhlcmUgaXMgZXhhY3RseSBvbmUgYXJjaGl2ZSBhbmQgdGhhdCBhcmNoaXZl DQoJIyBpcyBhIC5nZW0gZmlsZSENCglpZiBbWyAkKHdjIC13IDw8PCAke0F9KSA9PSAxIF1dICYm DQoJCVtbICR7QX0gPT0gKi5nZW0gXV07IHRoZW4NCgkJZWJlZ2luICJVbnBhY2tpbmcgLmdlbSBm aWxlLi4uIg0KCQl0YXIgLW14ZiAke0RJU1RESVJ9LyR7QX0gfHwgZGllDQoJCWVlbmQgJD8NCg0K CQlta2RpciAiJHtTfSINCgkJcHVzaGQgIiR7U30iDQoNCgkJZWJlZ2luICJVbnBhY2tpbmcgZGF0 YS50YXIuZ3oiDQoJCXRhciAtbXhmICIke215X1dPUktESVJ9Ii9kYXRhLnRhci5neiB8fCBkaWUN CgkJZWVuZCAkPw0KCWVsc2UNCgkJW1sgLW4gJHtBfSBdXSAmJiB1bnBhY2sgJHtBfQ0KCWZpDQp9 DQoNCiMgQEZVTkNUSU9OOiBhbGxfcnVieV9jb21waWxlDQojIEBERVNDUklQVElPTjoNCiMgQ29t cGlsZSB0aGUgcGFja2FnZS4NCmFsbF9ydWJ5X2NvbXBpbGUoKSB7DQoJYWxsX2Zha2VnZW1fY29t cGlsZQ0KfQ0KDQojIEBGVU5DVElPTjogZWFjaF9mYWtlZ2VtX3Rlc3QNCiMgQERFU0NSSVBUSU9O Og0KIyBSdW4gdGVzdHMgZm9yIHRoZSBwYWNrYWdlIGZvciBlYWNoIHJ1YnkgdGFyZ2V0IGlmIHRo ZSB0ZXN0IHRhc2sgaXMgZGVmaW5lZC4NCmVhY2hfZmFrZWdlbV90ZXN0KCkgew0KCWxvY2FsIHJ1 YnlmbGFncz0NCg0KCWlmIFtbICR7UlVCWV9GQUtFR0VNX1RBU0tfVEVTVH0gIT0gIiIgXV07IHRo ZW4NCgkJJHtSVUJZfSAke3J1YnlmbGFnc30gLVMgcmFrZSAke1JVQllfRkFLRUdFTV9UQVNLX1RF U1R9IHx8IGRpZSAidGVzdHMgZmFpbGVkIg0KCWVsc2UNCgkJZWNobyAiTm8gdGVzdCB0YXNrIGRl ZmluZWQsIHNraXBwaW5nIHRlc3RzLiINCglmaQ0KfQ0KDQojIEBGVU5DVElPTjogZWFjaF9ydWJ5 X3Rlc3QNCiMgQERFU0NSSVBUSU9OOg0KIyBSdW4gdGhlIHRlc3RzIGZvciB0aGlzIHBhY2thZ2Uu DQplYWNoX3J1YnlfdGVzdCgpIHsNCgllYWNoX2Zha2VnZW1fdGVzdA0KfQ0KDQojIEBGVU5DVElP TjogZWFjaF9mYWtlZ2VtX2luc3RhbGwNCiMgQERFU0NSSVBUSU9OOg0KIyBJbnN0YWxsIHRoZSBw YWNrYWdlIGZvciBlYWNoIHJ1YnkgdGFyZ2V0Lg0KZWFjaF9mYWtlZ2VtX2luc3RhbGwoKSB7DQoJ cnVieV9mYWtlZ2VtX2dlbnNwZWMNCg0KCWxvY2FsIF9nZW1saWJkaXJzPQ0KCWZvciBkaXJlY3Rv cnkgaW4gYmluIGxpYiAke1JVQllfRkFLRUdFTV9FWFRSQUlOU1RBTEx9OyBkbw0KCQlbWyAtZCAk e2RpcmVjdG9yeX0gXV0gJiYgX2dlbWxpYmRpcnM9IiR7X2dlbWxpYmRpcnN9ICR7ZGlyZWN0b3J5 fSINCglkb25lDQoNCglydWJ5X2Zha2VnZW1fZG9pbnMgLXIgJHtfZ2VtbGliZGlyc30NCn0NCg0K IyBARlVOQ1RJT046IGVhY2hfcnVieV9pbnN0YWxsDQojIEBERVNDUklQVElPTjoNCiMgSW5zdGFs bCB0aGUgcGFja2FnZSBmb3IgZWFjaCB0YXJnZXQuDQplYWNoX3J1YnlfaW5zdGFsbCgpIHsNCgll YWNoX2Zha2VnZW1faW5zdGFsbA0KfQ0KDQojIEBGVU5DVElPTjogYWxsX2Zha2VnZW1faW5zdGFs bA0KIyBAREVTQ1JJUFRJT046DQojIEluc3RhbGwgZmlsZXMgY29tbW9uIHRvIGFsbCBydWJ5IHRh cmdldHMuDQphbGxfZmFrZWdlbV9pbnN0YWxsKCkgew0KCWlmIFtbIC1uICR7UlVCWV9GQUtFR0VN X0RPQ0RJUn0gXV0gJiYgdXNlIGRvYzsgdGhlbg0KCQlwdXNoZCAke1JVQllfRkFLRUdFTV9ET0NE SVJ9DQoJCWRvaHRtbCAtciAqIHx8IGRpZSAiZmFpbGVkIHRvIGluc3RhbGwgZG9jdW1lbnRhdGlv biINCgkJcG9wZA0KCWZpDQoNCglpZiBbWyAtbiAke1JVQllfRkFLRUdFTV9FWFRSQURPQ30gXV07 IHRoZW4NCgkJZG9kb2MgJHtSVUJZX0ZBS0VHRU1fRVhUUkFET0N9IHx8IGRpZSAiZmFpbGVkIHRv IGluc3RhbGwgZnVydGhlciBkb2N1bWVudGF0aW9uIg0KCWZpDQp9DQoNCiMgQEZVTkNUSU9OOiBh bGxfcnVieV9pbnN0YWxsDQojIEBERVNDUklQVElPTjoNCiMgSW5zdGFsbCBmaWxlcyBjb21tb24g dG8gYWxsIHJ1YnkgdGFyZ2V0cy4NCmFsbF9ydWJ5X2luc3RhbGwoKSB7DQoJYWxsX2Zha2VnZW1f aW5zdGFsbA0KfQ0K --=-OdHFaKwx8fzPWs33i2O9-- --=-Yp2GIcWHHlpZxZ3CJJQq Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) iEYEABECAAYFAksbuE0ACgkQVYU2Ai8K93eEDwCgji62CPmdmdfnaUQ889XxmCAJ 8E4AoJg3p+/oi9iPfFADjSuG5DV8/t/3 =0FJY -----END PGP SIGNATURE----- --=-Yp2GIcWHHlpZxZ3CJJQq--