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 1NFjPO-0001BZ-H0 for garchives@archives.gentoo.org; Wed, 02 Dec 2009 07:13:54 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D86A6E06C8; Wed, 2 Dec 2009 07:12:37 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 7A212E06C8 for ; Wed, 2 Dec 2009 07:12: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 5EBC967DE5 for ; Wed, 2 Dec 2009 07:12:36 +0000 (UTC) Subject: [gentoo-dev] RFC: ruby-ng.eclass - new eclass for ruby-based packages From: Hans de Graaff To: gentoo-dev Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-e0nWKi+jFQwf6WL1xbJ5" Organization: Gentoo Date: Wed, 02 Dec 2009 08:11:57 +0100 Message-ID: <1259737917.26974.8.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: 2b7ba3ec-ecfc-44d7-ba8f-456c409545cd X-Archives-Hash: fa7fa5e6475faaa864ab801eebf0eb27 --=-e0nWKi+jFQwf6WL1xbJ5 Content-Type: multipart/mixed; boundary="=-CQbIPMd1RGOWRdHJmyDZ" --=-CQbIPMd1RGOWRdHJmyDZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, The ruby team is currently working on two new eclasses to better handle our ruby packages. This first one is intended to be a replacement for the current ruby.eclass. A second eclass is forthcoming and will provide support for handling gems. This new eclass has much better handling of multiple ruby target implementations, fixing https://bugs.gentoo.org/show_bug.cgi?id=3D167029 and provides a better framework to include more functionality later. We intend to move this eclass to the main tree and gradually move over the packages currently using ruby.eclass. ruby.eclass will be deprecated over time but we don't have a specific timeline for that yet. 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-ng.eclass;h=3Dce9a37440600c7913a21b5780a18b5= e8dd9d712f;hb=3DHEAD Kind regards, Hans --=-CQbIPMd1RGOWRdHJmyDZ Content-Disposition: attachment; filename="ruby-ng.eclass" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="ruby-ng.eclass"; charset="UTF-8" IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBGb3VuZGF0aW9uDQojIERpc3RyaWJ1dGVkIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjINCiMgJEhl YWRlcjogL3Zhci9jdnNyb290L2dlbnRvby14ODYvZWNsYXNzL3J1YnkuZWNsYXNzLHYgMS43NSAy MDA5LzAzLzAzIDE1OjUxOjU0IGEzbGkgRXhwICQNCiMNCiMgQEVDTEFTUzogcnVieS1uZy5lY2xh c3MNCiMgQE1BSU5UQUlORVI6DQojIFJ1YnkgaGVyZCA8cnVieUBnZW50b28ub3JnPg0KIw0KIyBB dXRob3I6IERpZWdvIEUuIFBldHRlbsOyIDxmbGFtZWV5ZXNAZ2VudG9vLm9yZz4NCiMNCiMgQXV0 aG9yOiBBbGV4IExlZ2xlciA8YTNsaUBnZW50b28ub3JnPg0KIw0KIyBAQkxVUkI6IEFuIGVjbGFz cyBmb3IgaW5zdGFsbGluZyBSdWJ5IHBhY2thZ2VzIHdpdGggcHJvcGVyIHN1cHBvcnQgZm9yIG11 bHRpcGxlIFJ1Ynkgc2xvdHMuDQojIEBERVNDUklQVElPTjoNCiMgVGhlIFJ1YnkgZWNsYXNzIGlz IGRlc2lnbmVkIHRvIGFsbG93IGFuIGVhc2llciBpbnN0YWxsYXRpb24gb2YgUnVieSBwYWNrYWdl cw0KIyBhbmQgdGhlaXIgaW5jb3Jwb3JhdGlvbiBpbnRvIHRoZSBHZW50b28gTGludXggc3lzdGVt Lg0KIw0KIyBDdXJyZW50bHkgYXZhaWxhYmxlIHRhcmdldHMgYXJlOg0KIyAgKiBydWJ5MTggLSBS dWJ5IChNUkkpIDEuOC54DQojICAqIHJ1YnkxOSAtIFJ1YnkgKE1SSSkgMS45LngNCiMgICogcmVl MTggIC0gUnVieSBFbnRlcnByaXNlIEVkaXRpb24gMS44LngNCiMgICoganJ1YnkgIC0gSlJ1YnkN CiMNCiMgVGhpcyBlY2xhc3MgZG9lcyBub3QgZGVmaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgY29uZmlndXJlLA0KIyBjb21waWxlLCB0ZXN0LCBvciBpbnN0YWxsIHBoYXNlcy4gSW5zdGVh ZCwgdGhlIGRlZmF1bHQgcGhhc2VzIGFyZQ0KIyB1c2VkLiAgU3BlY2lmaWMgaW1wbGVtZW50YXRp b25zIG9mIHRoZXNlIHBoYXNlcyBjYW4gYmUgcHJvdmlkZWQgaW4NCiMgdGhlIGVidWlsZCBlaXRo ZXIgdG8gYmUgcnVuIGZvciBlYWNoIFJ1YnkgaW1wbGVtZW50YXRpb24sIG9yIGZvciBhbGwNCiMg UnVieSBpbXBsZW1lbnRhdGlvbnMsIGFzIGZvbGxvd3M6DQojDQojICAqIGVhY2hfcnVieV9jb25m aWd1cmUNCiMgICogYWxsX3J1YnlfY29uZmlndXJlDQoNCiMgQEVDTEFTUy1WQVJJQUJMRTogVVNF X1JVQlkNCiMgQERFU0NSSVBUSU9OOg0KIyBUaGlzIHZhcmlhYmxlIGNvbnRhaW5zIGEgc3BhY2Ug c2VwYXJhdGVkIGxpc3Qgb2YgdGFyZ2V0cyAoc2VlIGFib3ZlKSBhIHBhY2thZ2UNCiMgaXMgY29t cGF0aWJsZSB0by4gSXQgbXVzdCBiZSBzZXQgYmVmb3JlIHRoZSBgaW5oZXJpdCcgY2FsbC4gVGhl cmUgaXMgbm8NCiMgZGVmYXVsdC4gQWxsIGVidWlsZHMgYXJlIGV4cGVjdGVkIHRvIHNldCB0aGlz IHZhcmlhYmxlLg0KDQojIEBFQ0xBU1MtVkFSSUFCTEU6IFBBVENIRVMNCiMgQERFU0NSSVBUSU9O Og0KIyBBIFN0cmluZyBvciBBcnJheSBvZiBmaWxlbmFtZXMgb2YgcGF0Y2hlcyB0byBhcHBseSB0 byBhbGwgaW1wbGVtZW50YXRpb25zLg0KDQojIEBFQ0xBU1MtVkFSSUFCTEU6IFJVQllfT1BUSU9O QUwNCiMgQERFU0NSSVBUSU9OOg0KIyBTZXQgdGhlIHZhbHVlIHRvICJ5ZXMiIHRvIG1ha2UgdGhl IGRlcGVuZGVuY3kgb24gYSBSdWJ5IGludGVycHJldGVyIG9wdGlvbmFsLg0KDQppbmhlcml0IGV1 dGlscyB0b29sY2hhaW4tZnVuY3MNCg0KRVhQT1JUX0ZVTkNUSU9OUyBzcmNfdW5wYWNrIHNyY19w cmVwYXJlIHNyY19jb25maWd1cmUgc3JjX2NvbXBpbGUgc3JjX3Rlc3Qgc3JjX2luc3RhbGwgcGtn X3NldHVwDQoNCmNhc2UgJHtFQVBJfSBpbg0KCTIpIDs7DQoJKikNCgkJZGllICJVbnN1cHBvcnRl ZCBFQVBJPSR7RUFQSX0gZm9yIHJ1YnktbmcuZWNsYXNzIg0KZXNhYw0KDQojIEBGVU5DVElPTjog cnVieV9pbXBsZW1lbnRhdGlvbl9kZXBlbmQNCiMgQFVTQUdFOiB0YXJnZXQgW2NvbXBhcmF0b3Ig W3ZlcnNpb25dXQ0KIyBAUkVUVVJOOiBQYWNrYWdlIGF0b20gb2YgYSBSdWJ5IGltcGxlbWVudGF0 aW9uIHRvIGJlIHVzZWQgaW4gZGVwZW5kZW5jaWVzLg0KIyBAREVTQ1JJUFRJT046DQojIFRoaXMg ZnVuY3Rpb24gcmV0dXJucyB0aGUgZm9ybWFsIHBhY2thZ2UgYXRvbSBmb3IgYSBSdWJ5IGltcGxl bWVudGF0aW9uLg0KIw0KIyBgdGFyZ2V0JyBoYXMgdG8gYmUgb25lIG9mIHRoZSB2YWxpZCB2YWx1 ZXMgZm9yIFVTRV9SVUJZIChzZWUgYWJvdmUpDQojIA0KIyBTZXQgYGNvbXBhcmF0b3InIGFuZCBg dmVyc2lvbicgdG8gaW5jbHVkZSBhIGNvbXBhcmF0b3IgKD0sID49LCBldGMuKSBhbmQgYQ0KIyB2 ZXJzaW9uIHN0cmluZyB0byB0aGUgcmV0dXJuZWQgc3RyaW5nDQpydWJ5X2ltcGxlbWVudGF0aW9u X2RlcGVuZCgpIHsNCglsb2NhbCBydWJ5cG49DQoJbG9jYWwgcnVieXNsb3Q9DQoNCgljYXNlICQx IGluDQoJCXJ1YnkxOCkNCgkJCXJ1Ynlwbj0iZGV2LWxhbmcvcnVieSINCgkJCXJ1YnlzbG90PSI6 MS44Ig0KCQkJOzsNCgkJcnVieTE5KQ0KCQkJcnVieXBuPSJkZXYtbGFuZy9ydWJ5Ig0KCQkJcnVi eXNsb3Q9IjoxLjkiDQoJCQk7Ow0KCQlyZWUxOCkNCgkJCXJ1Ynlwbj0iZGV2LWxhbmcvcnVieS1l bnRlcnByaXNlIg0KCQkJcnVieXNsb3Q9IjoxLjgiDQoJCQk7Ow0KCQlqcnVieSkNCgkJCXJ1Ynlw bj0iZGV2LWphdmEvanJ1YnkiDQoJCQlydWJ5c2xvdD0iIg0KCQkJOzsNCgkJKikgZGllICIkMTog dW5rbm93biBSdWJ5IGltcGxlbWVudGF0aW9uIg0KCWVzYWMNCg0KCWVjaG8gIiQyJHtydWJ5cG59 JDMke3J1YnlzbG90fSINCn0NCg0KIyBARlVOQ1RJT046IHJ1Ynlfc2FtZWxpYg0KIyBAUkVUVVJO OiB1c2UgZmxhZyBzdHJpbmcgd2l0aCBjdXJyZW50IHJ1YnkgaW1wbGVtZW50YXRpb25zDQojIEBE RVNDUklQVElPTjoNCiMgQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gb3V0cHV0IHRoZSB1c2UgZGVw ZW5kZW5jeSBwYXJ0IG9mIGENCiMgZGVwZW5kZW5jeS4gVXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2Nr IGZvciBydWJ5X2FkZF9yZGVwZW5kKCkgYW5kDQojIHJ1YnlfYWRkX2JkZXBlbmQoKSwgYnV0IG1h eSBhbHNvIGJlIHVzZWZ1bCBpbiBhbiBlYnVpbGQgdG8gc3BlY2lmeQ0KIyBtb3JlIGNvbXBsZXgg ZGVwZW5kZW5jaWVzLg0KcnVieV9zYW1lbGliKCkgew0KCWxvY2FsIHJlcz0NCglmb3IgX3J1Ynlf aW1wbGVtZW50YXRpb24gaW4gJFVTRV9SVUJZOyBkbw0KCQloYXMgLSR7X3J1YnlfaW1wbGVtZW50 YXRpb259ICRAIHx8IFwNCgkJCXJlcz0iJHtyZXN9cnVieV90YXJnZXRzXyR7X3J1YnlfaW1wbGVt ZW50YXRpb259PywiDQoJZG9uZQ0KDQoJZWNobyAiWyR7cmVzJSx9XSINCn0NCg0KX3J1YnlfaW1w bGVtZW50YXRpb25fZGVwZW5kKCkgew0KCWVjaG8gInJ1YnlfdGFyZ2V0c18kezF9PyAoICR7Mn1b cnVieV90YXJnZXRzXyR7MX1dICkiDQp9DQoNCl9ydWJ5X2FkZF9iZGVwZW5kKCkgew0KCWxvY2Fs IGF0b209JDENCglsb2NhbCBjb25kaXRpb25zPSQyDQoNCglmb3IgY29uZGl0aW9uIGluICRjb25k aXRpb25zOyBkbw0KCQlhdG9tPSIke2NvbmRpdGlvbn0/ICggJHthdG9tfSApIg0KCWRvbmUNCg0K CURFUEVORD0iJHtERVBFTkR9ICR7YXRvbX0iDQoJUkRFUEVORD0iJHtSREVQRU5EfSINCn0NCg0K X3J1YnlfYWRkX3JkZXBlbmQoKSB7DQoJbG9jYWwgYXRvbT0kMQ0KCWxvY2FsIGNvbmRpdGlvbnM9 JDINCg0KCWZvciBjb25kaXRpb24gaW4gJGNvbmRpdGlvbnM7IGRvDQoJCWF0b209IiR7Y29uZGl0 aW9ufT8gKCAke2F0b219ICkiDQoJZG9uZQ0KDQoJUkRFUEVORD0iJHtSREVQRU5EfSAke2F0b219 Ig0KCV9ydWJ5X2FkZF9iZGVwZW5kICIkYXRvbSIgdGVzdA0KfQ0KDQojIEBGVU5DVElPTjogcnVi eV9hZGRfcmRlcGVuZA0KIyBAVVNBR0U6IFtjb25kaXRpb25zXSBhdG9tDQojIEBERVNDUklQVElP TjoNCiMgQWRkcyB0aGUgc3BlY2lmaWVkIGF0b20ocykgd2l0aCBvcHRpb25hbCB1c2UgY29uZGl0 aW9uKHMpIHRvDQojIFJERVBFTkQsIHRha2luZyB0aGUgY3VycmVudCBzZXQgb2YgcnVieSB0YXJn ZXRzIGludG8gYWNjb3VudC4gVGhpcw0KIyBtYWtlcyBzdXJlIHRoYXQgYWxsIHJ1YnkgZGVwZW5k ZW5jaWVzIG9mIHRoZSBwYWNrYWdlIGFyZSBpbnN0YWxsZWQNCiMgZm9yIHRoZSBzYW1lIHJ1Ynkg dGFyZ2V0cy4gVXNlIHRoaXMgZnVuY3Rpb24gZm9yIGFsbCBydWJ5DQojIGRlcGVuZGVuY2llcyBp bnN0ZWFkIG9mIHNldHRpbmcgUkRFUEVORCB5b3Vyc2VsZi4gQm90aCBhdG9tIGFuZA0KIyBjb25k aXRpb25zIGNhbiBiZSBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGF0b21zIG9yIGNvbmRpdGlv bnMuDQpydWJ5X2FkZF9yZGVwZW5kKCkgew0KCWxvY2FsIGF0b21zPQ0KCWxvY2FsIGNvbmRpdGlv bnM9DQoJY2FzZSAkIyBpbg0KCQkxKQ0KCQkJYXRvbXM9JDENCgkJCTs7DQoJCTIpDQoJCQljb25k aXRpb25zPSQxDQoJCQlhdG9tcz0kMg0KCQkJOzsNCgkJKikNCgkJCWRpZSAiYmFkIG51bWJlciBv ZiBhcmd1bWVudHMgdG8gJDAiDQoJCQk7Ow0KCWVzYWMNCg0KCWZvciBhdG9tIGluICRhdG9tczsg ZG8NCgkJX3J1YnlfYWRkX3JkZXBlbmQgIiR7YXRvbX0kKHJ1Ynlfc2FtZWxpYikiICIkY29uZGl0 aW9ucyINCglkb25lDQp9DQoNCiMgQEZVTkNUSU9OOiBydWJ5X2FkZF9iZGVwZW5kDQojIEBVU0FH RTogW2NvbmRpdGlvbnNdIGF0b20NCiMgQERFU0NSSVBUSU9OOg0KIyBBZGRzIHRoZSBzcGVjaWZp ZWQgYXRvbShzKSB3aXRoIG9wdGlvbmFsIHVzZSBjb25kaXRpb24ocykgdG8gYm90aA0KIyBERVBF TkQgYW5kIFJERVBFTkQsIHRha2luZyB0aGUgY3VycmVudCBzZXQgb2YgcnVieSB0YXJnZXRzIGlu dG8NCiMgYWNjb3VudC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgYWxsIHJ1YnkgZGVwZW5kZW5jaWVz IG9mIHRoZSBwYWNrYWdlDQojIGFyZSBpbnN0YWxsZWQgZm9yIHRoZSBzYW1lIHJ1YnkgdGFyZ2V0 cy4gVXNlIHRoaXMgZnVuY3Rpb24gZm9yIGFsbA0KIyBydWJ5IGRlcGVuZGVuY2llcyBpbnN0ZWFk IG9mIHNldHRpbmcgREVQRU5EIGFuZCBSREVQRU5EDQojIHlvdXJzZWxmLiBCb3RoIGF0b20gYW5k IGNvbmRpdGlvbnMgY2FuIGJlIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YNCiMgYXRvbXMgb3Ig Y29uZGl0aW9ucy4NCnJ1YnlfYWRkX2JkZXBlbmQoKSB7DQoJbG9jYWwgYXRvbXM9DQoJbG9jYWwg Y29uZGl0aW9ucz0NCgljYXNlICQjIGluDQoJCTEpDQoJCQlhdG9tcz0kMQ0KCQkJOzsNCgkJMikN CgkJCWNvbmRpdGlvbnM9JDENCgkJCWF0b21zPSQyDQoJCQk7Ow0KCQkqKQ0KCQkJZGllICJiYWQg bnVtYmVyIG9mIGFyZ3VtZW50cyB0byAkMCINCgkJCTs7DQoJZXNhYw0KDQoJZm9yIGF0b20gaW4g JGF0b21zOyBkbw0KCQlfcnVieV9hZGRfYmRlcGVuZCAiJHthdG9tfSQocnVieV9zYW1lbGliKSIg IiRjb25kaXRpb25zIg0KCWRvbmUNCn0NCg0KZm9yIF9ydWJ5X2ltcGxlbWVudGF0aW9uIGluICRV U0VfUlVCWTsgZG8NCglJVVNFPSIke0lVU0V9IHJ1YnlfdGFyZ2V0c18ke19ydWJ5X2ltcGxlbWVu dGF0aW9ufSINCg0KCSMgSWYgeW91IHNwZWNpZnkgUlVCWV9PUFRJT05BTCB5b3UgYWxzbyBuZWVk IHRvIHRha2UgY2FyZSBvZg0KCSMgcnVieSB1c2VmbGFnIGFuZCBkZXBlbmRlbmN5Lg0KCWlmIFtb ICR7UlVCWV9PUFRJT05BTH0gIT0gInllcyIgXV07IHRoZW4NCgkJREVQRU5EPSIke0RFUEVORH0g cnVieV90YXJnZXRzXyR7X3J1YnlfaW1wbGVtZW50YXRpb259PyAoICQocnVieV9pbXBsZW1lbnRh dGlvbl9kZXBlbmQgJF9ydWJ5X2ltcGxlbWVudGF0aW9uKSApIg0KCQlSREVQRU5EPSIke1JERVBF TkR9IHJ1YnlfdGFyZ2V0c18ke19ydWJ5X2ltcGxlbWVudGF0aW9ufT8gKCAkKHJ1YnlfaW1wbGVt ZW50YXRpb25fZGVwZW5kICRfcnVieV9pbXBsZW1lbnRhdGlvbikgKSINCglmaQ0KZG9uZQ0KDQpf cnVieV9pbnZva2VfZW52aXJvbm1lbnQoKSB7DQoJb2xkX1M9JHtTfQ0KCXN1Yl9TPSR7UyMke1dP UktESVJ9fQ0KDQoJZW52aXJvbm1lbnQ9JDE7IHNoaWZ0DQoNCglteV9XT1JLRElSPSIke1dPUktE SVJ9Ii8ke2Vudmlyb25tZW50fQ0KCVM9IiR7bXlfV09SS0RJUn0iLyIke3N1Yl9TfSINCg0KCWlm IFtbIC1kICIke1N9IiBdXTsgdGhlbg0KCQlwdXNoZCAiJFMiICY+L2Rldi9udWxsDQoJZWxpZiBb WyAtZCAiJHtteV9XT1JLRElSfSIgXV07IHRoZW4NCgkJcHVzaGQgIiR7bXlfV09SS0RJUn0iICY+ L2Rldi9udWxsDQoJZWxzZQ0KCQlwdXNoZCAiJHtXT1JLRElSfSIgJj4vZGV2L251bGwNCglmaQ0K DQoJZWJlZ2luICJSdW5uaW5nICR7X1BIQVNFOi0ke0VCVUlMRF9QSEFTRX19IHBoYXNlIGZvciAk ZW52aXJvbm1lbnQiDQoJIiRAIg0KCXBvcGQgJj4vZGV2L251bGwNCg0KCVM9JHtvbGRfU30NCn0N Cg0KX3J1YnlfZWFjaF9pbXBsZW1lbnRhdGlvbigpIHsNCglsb2NhbCBpbnZva2VkPW5vDQoJZm9y IF9ydWJ5X2ltcGxlbWVudGF0aW9uIGluICR7VVNFX1JVQll9OyBkbw0KCQkjIG9ubHkgcHJvY2Vl ZCBpZiBpdCdzIHJlcXVlc3RlZA0KCQl1c2UgcnVieV90YXJnZXRzXyR7X3J1YnlfaW1wbGVtZW50 YXRpb259IHx8IGNvbnRpbnVlDQoNCgkJUlVCWT0kKHR5cGUgLXAgJF9ydWJ5X2ltcGxlbWVudGF0 aW9uIDI+L2Rldi9udWxsKQ0KCQlpbnZva2VkPXllcw0KDQoJCWlmIFtbIC1uICIkMSIgXV07IHRo ZW4NCgkJCV9ydWJ5X2ludm9rZV9lbnZpcm9ubWVudCAkX3J1YnlfaW1wbGVtZW50YXRpb24gIiRA Ig0KCQlmaQ0KDQoJCXVuc2V0IFJVQlkNCglkb25lDQoNCglbWyAke2ludm9rZWR9ID09ICJubyIg XV0gJiYgZGllICJZb3UgbmVlZCB0byBzZWxlY3QgYXQgbGVhc3Qgb25lIFJ1YnkgaW1wbGVtZW50 YXRpb24gYnkgc2V0dGluZyBSVUJZX1RBUkdFVFMgaW4gL2V0Yy9tYWtlLmNvbmYuIg0KfQ0KDQoj IEBGVU5DVElPTjogcnVieS1uZ19wa2dfc2V0dXANCiMgQERFU0NSSVBUSU9OOg0KIyBDaGVjayB3 aGV0aGVyIGF0IGxlYXN0IG9uZSBydWJ5IHRhcmdldCBpbXBsZW1lbnRhdGlvbiBpcyBwcmVzZW50 Lg0KcnVieS1uZ19wa2dfc2V0dXAoKSB7DQoJIyBUaGlzIG9ubHkgY2hlY2tzIHRoYXQgYXQgbGVh c3Qgb25lIGltcGxlbWVudGF0aW9uIGlzIHByZXNlbnQNCgkjIGJlZm9yZSBkb2luZyBhbnl0aGlu ZzsgYnkgbGVhdmluZyB0aGUgcGFyYW1ldGVycyBlbXB0eSB3ZSBrbm93DQoJIyBpdCdzIGEgc3Bl Y2lhbCBjYXNlLg0KCV9ydWJ5X2VhY2hfaW1wbGVtZW50YXRpb24NCn0NCg0KIyBARlVOQ1RJT046 IHJ1Ynktbmdfc3JjX3VucGFjaw0KIyBAREVTQ1JJUFRJT046DQojIFVucGFjayB0aGUgc291cmNl IGFyY2hpdmUsIGluY2x1ZGluZyBnZW1zLg0KcnVieS1uZ19zcmNfdW5wYWNrKCkgew0KCW1rZGly ICIke1dPUktESVJ9Ii9hbGwNCglwdXNoZCAiJHtXT1JLRElSfSIvYWxsICY+L2Rldi9udWxsDQoN CgkjIFdlIGRvbid0IHN1cHBvcnQgYW4gZWFjaC11bnBhY2ssIGl0J3MgZWl0aGVyIGFsbCBvciBu b3RoaW5nIQ0KCWlmIHR5cGUgYWxsX3J1YnlfdW5wYWNrICY+L2Rldi9udWxsOyB0aGVuDQoJCV9y dWJ5X2ludm9rZV9lbnZpcm9ubWVudCBhbGwgYWxsX3J1YnlfdW5wYWNrDQoJZWxzZQ0KCQlbWyAt biAke0F9IF1dICYmIHVucGFjayAke0F9DQoJZmkNCg0KCXBvcGQgJj4vZGV2L251bGwNCn0NCg0K X3J1YnlfYXBwbHlfcGF0Y2hlcygpIHsNCglmb3IgeCBpbiAiJHtQQVRDSEVTW0BdfSI7IGRvDQoJ CWVwYXRjaCAiJHt4fSINCglkb25lDQoNCgkjIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2U6IGluc3Rl YWQgb2YgZXhlY3V0aW5nIGp1c3QgaW4gdGhlIHNwZWNpYWwNCgkjICJhbGwiIGVudmlyb25tZW50 LCB0aGlzIHdpbGwgYWN0dWFsbHkgY29weSB0aGUgZWZmZWN0cyBvbiBfYWxsXw0KCSMgdGhlIG90 aGVyIGVudmlyb25tZW50cywgYW5kIGlzIHRodXMgZXhlY3V0ZWQgYmVmb3JlIHRoZSBjb3B5DQoJ dHlwZSBhbGxfcnVieV9wcmVwYXJlICY+L2Rldi9udWxsICYmIGFsbF9ydWJ5X3ByZXBhcmUNCn0N Cg0KX3J1Ynlfc291cmNlX2NvcHkoKSB7DQoJIyBVbnRpbCB3ZSBhY3R1YWxseSBmaW5kIGEgcmVh c29uIG5vdCB0bywgd2UgdXNlIGhhcmRsaW5rcywgdGhpcw0KCSMgc2hvdWxkIHJlZHVjZSB0aGUg YW1vdW50IG9mIGRpc2sgc3BhY2UgdGhhdCBpcyB3YXN0ZWQgYnkgdGhpcy4NCgljcCAtcHJsIGFs bCAke19ydWJ5X2ltcGxlbWVudGF0aW9ufSBcDQoJCXx8IGRpZSAiVW5hYmxlIHRvIGNvcHkgJHtf cnVieV9pbXBsZW1lbnRhdGlvbn0gZW52aXJvbm1lbnQiDQp9DQoNCiMgQEZVTkNUSU9OOiBydWJ5 LW5nX3NyY19wcmVwYXJlDQojIEBERVNDUklQVElPTjoNCiMgQXBwbHkgcGF0Y2hlcyBhbmQgcHJl cGFyZSB2ZXJzaW9ucyBmb3IgZWFjaCBydWJ5IHRhcmdldA0KIyBpbXBsZW1lbnRhdGlvbi4gQWxz byBjYXJyeSBvdXQgY29tbW9uIGNsZWFuIHVwIHRhc2tzLg0KcnVieS1uZ19zcmNfcHJlcGFyZSgp IHsNCgkjIFdheSB0b28gbWFueSBSdWJ5IHBhY2thZ2VzIGFyZSBwcmVwYXJlZCBvbiBPU1ggd2l0 aG91dCByZW1vdmluZw0KCSMgdGhlIGV4dHJhIGRhdGEgZm9ya3MsIHdlIGRvIGl0IGhlcmUgdG8g YXZvaWQgcmVwZWF0aW5nIGl0IGZvcg0KCSMgYWxtb3N0IGV2ZXJ5IG90aGVyIGVidWlsZC4NCglm aW5kIC4gLW5hbWUgJy5fKicgLWRlbGV0ZQ0KDQoJX3J1YnlfaW52b2tlX2Vudmlyb25tZW50IGFs bCBfcnVieV9hcHBseV9wYXRjaGVzDQoNCglfcnVieV9lYWNoX2ltcGxlbWVudGF0aW9uIF9ydWJ5 X3NvdXJjZV9jb3B5DQoNCglpZiB0eXBlIGVhY2hfcnVieV9wcmVwYXJlICY+L2Rldi9udWxsOyB0 aGVuDQoJCV9ydWJ5X2VhY2hfaW1wbGVtZW50YXRpb24gZWFjaF9ydWJ5X3ByZXBhcmUNCglmaQ0K fQ0KDQojIEBGVU5DVElPTjogcnVieS1uZ19zcmNfY29uZmlndXJlDQojIEBERVNDUklQVElPTjoN CiMgQ29uZmlndXJlIHRoZSBwYWNrYWdlLg0KcnVieS1uZ19zcmNfY29uZmlndXJlKCkgew0KCWlm IHR5cGUgZWFjaF9ydWJ5X2NvbmZpZ3VyZSAmPi9kZXYvbnVsbDsgdGhlbg0KCQlfcnVieV9lYWNo X2ltcGxlbWVudGF0aW9uIGVhY2hfcnVieV9jb25maWd1cmUNCglmaQ0KDQoJdHlwZSBhbGxfcnVi eV9jb25maWd1cmUgJj4vZGV2L251bGwgJiYgXA0KCQlfcnVieV9pbnZva2VfZW52aXJvbm1lbnQg YWxsIGFsbF9ydWJ5X2NvbmZpZ3VyZQ0KfQ0KDQojIEBGVU5DVElPTjogcnVieS1uZ19zcmNfY29t cGlsZQ0KIyBAREVTQ1JJUFRJT046DQojIENvbXBpbGUgdGhlIHBhY2thZ2UuDQpydWJ5LW5nX3Ny Y19jb21waWxlKCkgew0KCWlmIHR5cGUgZWFjaF9ydWJ5X2NvbXBpbGUgJj4vZGV2L251bGw7IHRo ZW4NCgkJX3J1YnlfZWFjaF9pbXBsZW1lbnRhdGlvbiBlYWNoX3J1YnlfY29tcGlsZQ0KCWZpDQoN Cgl0eXBlIGFsbF9ydWJ5X2NvbXBpbGUgJj4vZGV2L251bGwgJiYgXA0KCQlfcnVieV9pbnZva2Vf ZW52aXJvbm1lbnQgYWxsIGFsbF9ydWJ5X2NvbXBpbGUNCn0NCg0KIyBARlVOQ1RJT046IHJ1Ynkt bmdfc3JjX3Rlc3QNCiMgQERFU0NSSVBUSU9OOg0KIyBSdW4gdGVzdHMgZm9yIHRoZSBwYWNrYWdl Lg0KcnVieS1uZ19zcmNfdGVzdCgpIHsNCglpZiB0eXBlIGVhY2hfcnVieV90ZXN0ICY+L2Rldi9u dWxsOyB0aGVuDQoJCV9ydWJ5X2VhY2hfaW1wbGVtZW50YXRpb24gZWFjaF9ydWJ5X3Rlc3QNCglm aQ0KDQoJdHlwZSBhbGxfcnVieV90ZXN0ICY+L2Rldi9udWxsICYmIFwNCgkJX3J1YnlfaW52b2tl X2Vudmlyb25tZW50IGFsbCBhbGxfcnVieV90ZXN0DQp9DQoNCl9lYWNoX3J1YnlfY2hlY2tfaW5z dGFsbCgpIHsNCglsb2NhbCBsaWJydWJ5X2Jhc2VuYW1lPSQoJHtSVUJZfSAtcnJiY29uZmlnIC1l ICdwdXRzIENvbmZpZzo6Q09ORklHWyJMSUJSVUJZX1NPIl0nKQ0KCWxvY2FsIGxpYnJ1Ynlfc29u YW1lPSQoc2NhbmVsZiAtcVMgIi91c3IvJChnZXRfbGliZGlyKS8ke2xpYnJ1YnlfYmFzZW5hbWV9 IiB8IGF3ayAneyBwcmludCAkMSB9JykNCg0KCSMgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g bGFja3MgbGlicnVieSAoaS5lLjoganJ1YnkpDQoJW1sgLXogJHtsaWJydWJ5X3NvbmFtZX0gXV0g JiYgcmV0dXJuIDANCg0KCXNjYW5lbGYgLXFuUiAiJHtEfSIvJChkaXJuYW1lICQoJHtSVUJZfSAt cnJiY29uZmlnIC1lICdwdXRzIENvbmZpZzo6Q09ORklHWyJzaXRlZGlyIl0nKSkgXA0KCQl8IGZn cmVwIC12ICIke2xpYnJ1Ynlfc29uYW1lfSIgXA0KCQk+ICIke1R9Ii9ydWJ5LW5nLSR7X3J1Ynlf aW1wbGVtZW50YXRpb259LW1pc2xpbmsubG9nDQoNCglpZiBbWyAtcyAiJHtUfSIvcnVieS1uZy0k e19ydWJ5X2ltcGxlbWVudGF0aW9ufS1taXNsaW5rLmxvZyBdXTsgdGhlbg0KCQlld2FybiAiRXh0 ZW5zaW9ucyBpbnN0YWxsZWQgZm9yICR7X3J1YnlfaW1wbGVtZW50YXRpb259IHdpdGggbWlzc2lu ZyBsaW5rcyB0byAke2xpYnJ1Ynl9Ig0KCQlld2FybiAkKDwgIiR7VH0iL3J1YnktbmctJHtfcnVi eV9pbXBsZW1lbnRhdGlvbn0tbWlzbGluay5sb2cgKQ0KCQlkaWUgIk1pc3NpbmcgbGlua3MgdG8g JHtsaWJydWJ5fSINCglmaQ0KfQ0KDQojIEBGVU5DVElPTjogcnVieS1uZ19zcmNfaW5zdGFsbA0K IyBAREVTQ1JJUFRJT046DQojIEluc3RhbGwgdGhlIHBhY2thZ2UgZm9yIGVhY2ggcnVieSB0YXJn ZXQgaW1wbGVtZW50YXRpb24uDQpydWJ5LW5nX3NyY19pbnN0YWxsKCkgew0KCWlmIHR5cGUgZWFj aF9ydWJ5X2luc3RhbGwgJj4vZGV2L251bGw7IHRoZW4NCgkJX3J1YnlfZWFjaF9pbXBsZW1lbnRh dGlvbiBlYWNoX3J1YnlfaW5zdGFsbA0KCWZpDQoNCgl0eXBlIGFsbF9ydWJ5X2luc3RhbGwgJj4v ZGV2L251bGwgJiYgXA0KCQlfcnVieV9pbnZva2VfZW52aXJvbm1lbnQgYWxsIGFsbF9ydWJ5X2lu c3RhbGwNCg0KCV9QSEFTRT0iY2hlY2sgaW5zdGFsbCIgXA0KCQlfcnVieV9lYWNoX2ltcGxlbWVu dGF0aW9uIF9lYWNoX3J1YnlfY2hlY2tfaW5zdGFsbA0KfQ0KDQojIEBGVU5DVElPTjogZG9ydWJ5 DQojIEBVU0FHRTogZmlsZSBbZmlsZS4uLl0NCiMgQERFU0NSSVBUSU9OOg0KIyBJbnN0YWxscyB0 aGUgc3BlY2lmaWVkIGZpbGUocykgaW50byB0aGUgc2l0ZWxpYmRpciBvZiB0aGUgUnVieSBpbnRl cnByZXRlciBpbiAke1JVQll9LiANCmRvcnVieSgpIHsNCgkoICMgZG9uJ3Qgd2FudCB0byBwb2xs dXRlIGNhbGxpbmcgZW52DQoJCWluc2ludG8gJCgke1JVQll9IC1yIHJiY29uZmlnIC1lICdwcmlu dCBDb25maWc6OkNPTkZJR1sic2l0ZWxpYmRpciJdJykNCgkJaW5zb3B0cyAtbSAwNjQ0DQoJCWRv aW5zICIkQCINCgkpIHx8IGRpZSAiZmFpbGVkIHRvIGluc3RhbGwgJEAiDQp9DQoNCiMgQEZVTkNU SU9OOiBydWJ5X2dldF9saWJydWJ5DQojIEBSRVRVUk46IFRoZSBsb2NhdGlvbiBvZiBsaWJydWJ5 Ki5zbyBiZWxvbmdpbmcgdG8gdGhlIFJ1YnkgaW50ZXJwcmV0ZXIgaW4gJHtSVUJZfS4NCnJ1Ynlf Z2V0X2xpYnJ1YnkoKSB7DQoJJHtSVUJZfSAtcnJiY29uZmlnIC1lICdwdXRzIEZpbGUuam9pbihD b25maWc6OkNPTkZJR1sibGliZGlyIl0sIENvbmZpZzo6Q09ORklHWyJMSUJSVUJZIl0pJw0KfQ0K DQojIEBGVU5DVElPTjogcnVieV9nZXRfaGRyZGlyDQojIEBSRVRVUk46IFRoZSBsb2NhdGlvbiBv ZiB0aGUgaGVhZGVyIGZpbGVzIGJlbG9uZ2luZyB0byB0aGUgUnVieSBpbnRlcnByZXRlciBpbiAk e1JVQll9Lg0KcnVieV9nZXRfaGRyZGlyKCkgew0KCWxvY2FsIHJ1YnloZHJkaXI9JCgke1JVQll9 IC1ycmJjb25maWcgLWUgJ3B1dHMgQ29uZmlnOjpDT05GSUdbInJ1YnloZHJkaXIiXScpDQoNCglp ZiBbWyAiJHtydWJ5aGRyZGlyfSIgPSAibmlsIiBdXSA7IHRoZW4NCgkJcnVieWhkcmRpcj0kKCR7 UlVCWX0gLXJyYmNvbmZpZyAtZSAncHV0cyBDb25maWc6OkNPTkZJR1siYXJjaGRpciJdJykNCglm aQ0KDQoJZWNobyAiJHtydWJ5aGRyZGlyfSINCn0NCm== --=-CQbIPMd1RGOWRdHJmyDZ-- --=-e0nWKi+jFQwf6WL1xbJ5 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) iEYEABECAAYFAksWEz0ACgkQVYU2Ai8K93fuTQCffSwYR2zrANLo1S1AUkTdrKPs 1kUAoJI0xkrs17PQNpRXbdRLJ8ZhM6xz =zaYV -----END PGP SIGNATURE----- --=-e0nWKi+jFQwf6WL1xbJ5--