From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id VU0KL5IifGCHPgAAgWs5BA (envelope-from ) for ; Sun, 18 Apr 2021 14:14:10 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 4IrLKJIifGDsfwAAbx9fmQ (envelope-from ) for ; Sun, 18 Apr 2021 12:14:10 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D5A6115BFE for ; Sun, 18 Apr 2021 14:14:09 +0200 (CEST) Received: from localhost ([::1]:36622 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lY6JV-0007mA-1c for larch@yhetil.org; Sun, 18 Apr 2021 08:14:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38538) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lY6JO-0007kz-FR for guix-patches@gnu.org; Sun, 18 Apr 2021 08:14:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:34081) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lY6JO-0002uD-7x for guix-patches@gnu.org; Sun, 18 Apr 2021 08:14:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lY6JO-0006rh-3Z for guix-patches@gnu.org; Sun, 18 Apr 2021 08:14:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47869] [PATCH core-updates] =?UTF-8?Q?=E2=80=98which=E2=80=99?= looks in PATH, incorrect when cross-compiling Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 18 Apr 2021 12:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 47869 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 47869@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161874802826361 (code B ref -1); Sun, 18 Apr 2021 12:14:01 +0000 Received: (at submit) by debbugs.gnu.org; 18 Apr 2021 12:13:48 +0000 Received: from localhost ([127.0.0.1]:45627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lY6J9-0006r6-SN for submit@debbugs.gnu.org; Sun, 18 Apr 2021 08:13:48 -0400 Received: from lists.gnu.org ([209.51.188.17]:37882) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lY6J8-0006qz-EX for submit@debbugs.gnu.org; Sun, 18 Apr 2021 08:13:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38466) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lY6J8-0007ak-8k for guix-patches@gnu.org; Sun, 18 Apr 2021 08:13:46 -0400 Received: from michel.telenet-ops.be ([2a02:1800:110:4::f00:18]:34698) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lY6J4-0002e5-4V for guix-patches@gnu.org; Sun, 18 Apr 2021 08:13:45 -0400 Received: from butterfly.local ([5.23.206.113]) by michel.telenet-ops.be with bizsmtp id uCDa2400A2TKVvH06CDblm; Sun, 18 Apr 2021 14:13:35 +0200 Message-ID: From: Maxime Devos Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-Yf9WFeBUNkh31S8MCF0U" Date: Sun, 18 Apr 2021 13:20:37 +0200 MIME-Version: 1.0 User-Agent: Evolution 3.34.2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1618748015; bh=tbzNzZxUeOst9MMKj+miH6ytcIL6LS0ulgYEWEe5bj0=; h=Subject:From:To:Date; b=F9FcAZOhzsLIf7vjur89RmCS6258pH6b+ndLE8gttcxBv+U8mhfw7KGo3gy/IniE/ sxSIdtwS3kmqdz1dO/YaEOWyNkWegfjm4h9yUJ7V9vN8BYVvf5n/C+AVAX37+KL3LD zchFJepCphokyqokOt6bApPryukKHQ9WwzKHQ5116wIKDLsoA46nkB+cyKgjazXbt5 Ji6735pGyyV8iNkJ6s8PAkayLha7+nWykgStb90tJqwnraBZM+TWNmVv5eBCTePgfH LIEWlZxDyOGlzcaFRpyXpfkNOTwklnWIsDaQhXpCIAqMHLeZ8ftdRvNZTFgBvQc5OH AVAB7W16u0kkg== Received-SPF: pass client-ip=2a02:1800:110:4::f00:18; envelope-from=maximedevos@telenet.be; helo=michel.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1618748050; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post:dkim-signature; bh=tbzNzZxUeOst9MMKj+miH6ytcIL6LS0ulgYEWEe5bj0=; b=GsAjSV+gzNqKqF7Ut9vCRSVgMau96cqrcZJaTrZ4mxFOTy4Y8ZPsvvLsSaqB5fNWAtFyAb fjkdAK7i2kP08ysHZtIUCcVAoR7JU3ZaJgohgNTSQJE8LRlXNaPpYENZxvro3NBIiq462d PTYKT+c/V4sAyLgH5tbaQkI82X2SsVkA2uef6JYtVTvwobOkGLuNMxSoHrdLGbEuSz8M4H ABwGOUh1EmIj7sU5AxjCHJdeOSMhpCRAQIcKAJnzzF2GWN+SiDNTpA5alxoz5f8UMAr9pe +s9510KsNSLxT8YnEHaqDpOEJsqpe5RUqvqbGkTaQGiu9ZAaO96ENQOE7sqX3w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1618748050; a=rsa-sha256; cv=none; b=o5iuG3zTyNX7RzMQpWxfJZ1L9r45skb6mE+0sUkz/+YVI/GdWb+eNUxSRc+T8h7houbsEh YjoOblcHegNG6DPEouGe6yln/WZ5ObgtYz0ocjGG7F+NJTnSrE3LlyZOXsiWzi2FKlzbnN PmL5GOx+G5LJvFEfdyar2u0ZyEIMmzSDoaPWgLtZ+7JIRIjPLOalwRfEaA965nKVX/eSOl 3nOc3+4FM20xBtv/flBzjVpkzM+OFqFEVE//2qsrpKRS9y+FesIzBHi/25nyrDTAf1LCdh aUAf6AduGdkKeihSrbcyrUed62QwGtu7hLuHbFiHd8N2xMWnx1clGyzOJr7Brw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=F9FcAZOh; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -2.34 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=F9FcAZOh; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: D5A6115BFE X-Spam-Score: -2.34 X-Migadu-Scanner: scn0.migadu.com X-TUID: uf9FPYpW88e+ --=-Yf9WFeBUNkh31S8MCF0U Content-Type: multipart/mixed; boundary="=-cAzKwnJz3OPCbELQcwCL" --=-cAzKwnJz3OPCbELQcwCL Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable The procedure =E2=80=98which=E2=80=99 from (guix build utils) is used for two different purposes: 1. for finding the absolute file name of a binary that we need to run during the build process 2. for finding the absolute file name of a binary, for the target system (as in --target=3DTARGET), e.g. for substituting sh->/gnu/store/.../bin/sh, python->/gnu/store/.../bin/python When compiling natively (SYSTEM=3DTARGET modulo nix/autotools differences), this is perfectly fine. However, when cross-compiling, we have a problem. "which" looks in $PATH for binaries. That's good for purpose (1), but incorrect for (2), as the $PATH contains binaries from native-inputs instead of inputs. Admittedly, =E2=80=98which=E2=80=99 is simply very convenient (although inc= orrect when cross-compiling), and we don't have the right tool ... until now, that is (see patch)! This patch adds an optional 'inputs' argument. When it is present, 'which' will look in the bin and sbin subdirectories of the directories in the 'inputs' alist. Use it like this: (package [...] (arguments `(#:modules (guix build utils) #:phases (modify-phases %standard-phases (delete 'configure) (delete 'check) (add-after 'install 'wrap (lambda* (#:key outputs inputs #:allow-other-keys) (let ((growpart (string-append (assoc-ref outputs "out") "/bin/growpart"))) (wrap-program growpart `("PATH" ":" prefix (,(dirname (which "sfdisk" inputs)) ,(dirname (which "readlink" inputs)))= )))))))) (Examples comes from the "cloud-utils" package) The only change is adding adding the 'inputs' argument. Isn't that easy? Alternative methods I've seen: * (string-append (assoc-ref inputs "coreutils") "/bin/readlink") * (let ((coreutils (assoc-ref inputs "coreutils"))) (setenv "PATH" (string-append coreutils "/bin")) [code using (which "readlink")]) * (which "readlink") ; possibly incorrect when cross-compiling I've tested this with "cloud-utils", though admittedly I didn't try to cros= s-compile yet, and I've placed my adjusted "which" in a separate module to avoid havi= ng to rebuild everything. (The attached patch just modifies (guix build utils).) I've w= ritten a few tests, which pass. I also documented the new functionality in the ma= nual. Currently incorrect uses of "which" can be fixed in a follow-up patch. Thoughts? Maxime. --=-cAzKwnJz3OPCbELQcwCL Content-Disposition: attachment; filename*0=0001-build-Add-argument-to-which-for-specifying-where-to-.pat; filename*1=ch Content-Type: text/x-patch; name="0001-build-Add-argument-to-which-for-specifying-where-to-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYzAxYWJmMTEwYjFjOGRiMDU0NDJjZTM5ODY2ODNjMTBlNzg0ZjI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMTggQXByIDIwMjEgMTI6NDU6MTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv Ml0gYnVpbGQ6IEFkZCBhcmd1bWVudCB0byB3aGljaCBmb3Igc3BlY2lmeWluZyB3aGVyZSB0bwog c2VhcmNoLgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhlIHByb2NlZHVyZSDi gJh3aGljaOKAmSBmcm9tIChndWl4IGJ1aWxkIHV0aWxzKQppcyB1c2VkIGZvciB0d28gZGlmZmVy ZW50IHB1cnBvc2VzOgoKIDEuIGZvciBmaW5kaW5nIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUgb2Yg YSBiaW5hcnkKICAgIHRoYXQgbmVlZHMgdG8gcnVuIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcwoK IDIuIGZvciBmaW5kaW5nIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUgb2YgYSBiaW5hcnksCiAgICBm b3IgdGhlIHRhcmdldCBzeXN0ZW0gKGFzIGluIC0tdGFyZ2V0PVRBUkdFVCksCiAgICBlLmcuIGZv ciBzdWJzdGl0dXRpbmcgc2gtPi9nbnUvc3RvcmUvLi4uL2Jpbi9zaCwKICAgIHB5dGhvbi0+L2du dS9zdG9yZS8uLi4vYmluL3B5dGhvbi4KCldoZW4gY29tcGlsaW5nIG5hdGl2ZWx5IChTWVNURU09 VEFSR0VUIG1vZHVsbyBuaXgvYXV0b3Rvb2xzIGRpZmZlcmVuY2VzKSwKdGhpcyBpcyBwZXJmZWN0 bHkgZmluZS4KCkhvd2V2ZXIsIHdoZW4gY3Jvc3MtY29tcGlsaW5nLCB0aGVyZSBpcyBhIHByb2Js ZW0uCiJ3aGljaCIgbG9va3MgaW4gJFBBVEggZm9yIGJpbmFyaWVzLiAgVGhhdCdzIGdvb2QgZm9y IHB1cnBvc2UgKDEpLApidXQgaW5jb3JyZWN0IGZvciAoMiksIGFzIHRoZSAkUEFUSCBjb250YWlu cyBiaW5hcmllcyBmcm9tIG5hdGl2ZS1pbnB1dHMKaW5zdGVhZCBvZiBpbnB1dHMuCgpUaGlzIGNv bW1pdCBhZGRzIGFuIG9wdGlvbmFsICdpbnB1dHMnIGFyZ3VtZW50LiAgV2hlbiBpdCBpcyBwcmVz ZW50LAond2hpY2gnIHdpbGwgbG9vayBpbiB0aGUgYmluIGFuZCBzYmluIHN1YmRpcmVjdG9yaWVz IG9mIHRoZSBkaXJlY3RvcmllcwppbiB0aGUgJ2lucHV0cycgYWxpc3QuCgoqIGd1aXgvYnVpbGQv dXRpbHMuc2NtICh3aGljaCk6IEFkZCBvcHRpb25hbCAnaW5wdXRzJyBhcmd1bWVudAoqIHRlc3Rz L2J1aWxkL3V0aWxzLnNjbQogICgid2hpY2gsIGlucHV0cyBpbiAvYmluIiwgIndoaWNoLCBpbnB1 dHMgaW4gL3NiaW4iKQogICgid2hpY2gsIGVtcHR5IGlucHV0cyIsICJ3aGljaCwgdXNpbmcgJFBB VEgiKTogVGVzdCBib3RoIG9sZCBhbmQgbmV3CiAgZnVuY3Rpb25hbGl0eSBvZiB0aGlzIHByb2Nl ZHVyZS4KICAodG91Y2gpOiBEZWZpbmUgcHJvY2VkdXJlLgogICh3aXRoLWFydGlmaWNpYWwtaW5w dXRzKTogRGVmaW5lIG1hY3JvLgotLS0KIGd1aXgvYnVpbGQvdXRpbHMuc2NtICB8IDE2ICsrKysr KysrKy0tLS0KIHRlc3RzL2J1aWxkLXV0aWxzLnNjbSB8IDUzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL3V0aWxzLnNjbSBiL2d1 aXgvYnVpbGQvdXRpbHMuc2NtCmluZGV4IDZjMzcwMjE2NzMuLjVlYjlmOTU4MGIgMTAwNjQ0Ci0t LSBhL2d1aXgvYnVpbGQvdXRpbHMuc2NtCisrKyBiL2d1aXgvYnVpbGQvdXRpbHMuc2NtCkBAIC03 LDYgKzcsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDE4LCAyMDE5IFJpY2FyZG8gV3VybXVzIDxy ZWthZG9AZWxlcGhseS5uZXQ+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjAgRWZyYWltIEZsYXNobmVy IDxlZnJhaW1AZmxhc2huZXIuY28uaWw+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjAsIDIwMjEgTWF4 aW0gQ291cm5veWVyIDxtYXhpbS5jb3Vybm95ZXJAZ21haWwuY29tPgorOzs7IENvcHlyaWdodCDC qSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KIDs7OwogOzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC02MDcsMTAgKzYwOCwxNyBAQCBk ZW5vdGluZyBmaWxlIG5hbWVzIHRvIGxvb2sgZm9yIHVuZGVyIHRoZSBkaXJlY3RvcmllcyBkZXNp Z25hdGVkIGJ5IEZJTEVTOgogICAgICAgICAgIChmb3JtYXQgI3QgImVudmlyb25tZW50IHZhcmlh YmxlIGB+YScgc2V0IHRvIGB+YSd+JSIKICAgICAgICAgICAgICAgICAgIGVudi12YXIgdmFsdWUp KSkpKQogCi0oZGVmaW5lICh3aGljaCBwcm9ncmFtKQotICAiUmV0dXJuIHRoZSBjb21wbGV0ZSBm aWxlIG5hbWUgZm9yIFBST0dSQU0gYXMgZm91bmQgaW4gJFBBVEgsIG9yICNmIGlmCi1QUk9HUkFN IGNvdWxkIG5vdCBiZSBmb3VuZC4iCi0gIChzZWFyY2gtcGF0aCAoc2VhcmNoLXBhdGgtYXMtc3Ry aW5nLT5saXN0IChnZXRlbnYgIlBBVEgiKSkKKyhkZWZpbmUqICh3aGljaCBwcm9ncmFtICM6b3B0 aW9uYWwgaW5wdXRzKQorICAiUmV0dXJuIHRoZSBjb21wbGV0ZSBmaWxlIG5hbWUgZm9yIFBST0dS QU0gYXMgZm91bmQgaW4gJFBBVEgsIG9yICNmYWxzZSBpZgorUFJPR1JBTSBjb3VsZCBub3QgYmUg Zm91bmQuICBJZiBJTlBVVFMgaXMgbm90ICNmYWxzZSwgaW5zdGVhZCBsb29rIGluIHRoZQorL2Jp biBhbmQgL3NiaW4gc3ViZGlyZWN0b3JpZXMgb2YgSU5QVVRTLiAgSU5QVVRTIGlzIGFuIGFsaXN0 OyBpdHMga2V5cworYXJlIGlnbm9yZWQuIgorICAoZGVmaW5lIChpbnB1dC0+cGF0aCBpbnB1dCkK KyAgICBgKCwoc3RyaW5nLWFwcGVuZCAoY2RyIGlucHV0KSAiL2JpbiIpCisgICAgICAsKHN0cmlu Zy1hcHBlbmQgKGNkciBpbnB1dCkgIi9zYmluIikpKQorICAoc2VhcmNoLXBhdGggKGlmIGlucHV0 cworICAgICAgICAgICAgICAgICAgIChhcHBlbmQtbWFwIGlucHV0LT5wYXRoIGlucHV0cykKKyAg ICAgICAgICAgICAgICAgICAoc2VhcmNoLXBhdGgtYXMtc3RyaW5nLT5saXN0IChnZXRlbnYgIlBB VEgiKSkpCiAgICAgICAgICAgICAgICBwcm9ncmFtKSkKIAogDApkaWZmIC0tZ2l0IGEvdGVzdHMv YnVpbGQtdXRpbHMuc2NtIGIvdGVzdHMvYnVpbGQtdXRpbHMuc2NtCmluZGV4IDMxYmU3ZmY4MGYu LjA1ZTQ1NWE4MDcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2J1aWxkLXV0aWxzLnNjbQorKysgYi90ZXN0 cy9idWlsZC11dGlscy5zY20KQEAgLTIsNiArMiw3IEBACiA7OzsgQ29weXJpZ2h0IMKpIDIwMTIs IDIwMTUsIDIwMTYsIDIwMTksIDIwMjAgTHVkb3ZpYyBDb3VydMOocyA8bHVkb0BnbnUub3JnPgog Ozs7IENvcHlyaWdodCDCqSAyMDE5IFJpY2FyZG8gV3VybXVzIDxyZWthZG9AZWxlcGhseS5uZXQ+ CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjEgTWF4aW0gQ291cm5veWVyIDxtYXhpbS5jb3Vybm95ZXJA Z21haWwuY29tPgorOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2 b3NAdGVsZW5ldC5iZT4KIDs7OwogOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgog Ozs7CkBAIC0yNjMsNCArMjY0LDU2IEBAIHByaW50KCdoZWxsbyB3b3JsZCcpIikpCiAgICAgICAg ICAobGFtYmRhIF8KICAgICAgICAgICAgKGdldC1zdHJpbmctYWxsIChjdXJyZW50LWlucHV0LXBv cnQpKSkpKSkpKQogCisoZGVmaW5lICh0b3VjaCBmaWxlKQorICAoY2FsbC13aXRoLW91dHB1dC1m aWxlIGZpbGUgKGNvbnN0ICN0KSkpCisKKyhkZWZpbmUtc3ludGF4LXJ1bGUgKHdpdGgtYXJ0aWZp Y2lhbC1pbnB1dHMgaW5wdXRzCisgICAgICAgICAgICAgICAgICAgICAgKCh4IGtleSByZWxhdGl2 ZS1uYW1lKSAuLi4pCisgICAgICAgICAgICAgICAgICAgICAgZXhwIGV4cCogLi4uKQorICAiRm9y IHRoZSBkdXJhdGlvbiBvZiBFWFAgRVhQKiAuLi4sIGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3Rv cnkuCitJbiB0aGlzIGRpcmVjdG9yeSwgdGhlIGZpbGVzIFJFTEFUSVZFLU5BTUUgLi4uIGFyZSBj cmVhdGVkLCBhbmQKK1ggLi4uIGFyZSBib3VuZCB0byB0aGVpciBhYnNvbHV0ZSBuYW1lLiAgSU5Q VVRTIGlzIGJvdW5kIHRvCithbiBhbGlzdCB3aXRoIGFzIGtleXMgS0VZIC4uLiBhbmQgYXMgdmFs dWVzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWVzCitvZiB0aGUgZ3JhbmRwYXJlbnRzIG9mIFJFTEFU SVZFLU5BTUUgLi4uIC4iCisgIChjYWxsLXdpdGgtdGVtcG9yYXJ5LWRpcmVjdG9yeQorICAgKGxh bWJkYSAodGVtcGRpcikKKyAgICAgKGxldCogKCh4IChpbi12aWNpbml0eSB0ZW1wZGlyIHJlbGF0 aXZlLW5hbWUpKQorICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAoaW5wdXRzIGAoKGtleSAu ICwoZGlybmFtZSAoZGlybmFtZSB4KSkpIC4uLikpKQorICAgICAgIChmb3ItZWFjaCAoY29tcG9z ZSBta2Rpci1wIGRpcm5hbWUpIChsaXN0IHggLi4uKSkKKyAgICAgICAoZm9yLWVhY2ggdG91Y2gg KGxpc3QgeCAuLi4pKQorICAgICAgIGV4cCBleHAqIC4uLikpKSkKKworKHRlc3QtZXF1YWwgIndo aWNoLCBpbnB1dHMgaW4gL2JpbiIKKyAgJygjdCAjdCkKKyAgKHdpdGgtYXJ0aWZpY2lhbC1pbnB1 dHMgaW5wdXRzCisgICAgKCh4ICJwYWNrYWdlLXgiICJ4LTEuMC9iaW4veCIpCisgICAgICh5ICJw YWNrYWdlLXkiICJ5LTEuMC9iaW4veSIpKQorICAgIChsaXN0IChzdHJpbmc9PyB4ICh3aGljaCAi eCIgKHBrICdpIGlucHV0cykpKQorICAgICAgICAgIChzdHJpbmc9PyB5ICh3aGljaCAieSIgaW5w dXRzKSkpKSkKKworKHRlc3QtZXF1YWwgIndoaWNoLCBpbnB1dHMgaW4gL3NiaW4iCisgICcoI3Qg I3QpCisgICh3aXRoLWFydGlmaWNpYWwtaW5wdXRzIGlucHV0cworICAgICgoeCAicGFja2FnZS14 IiAieC0xLjAvc2Jpbi94IikKKyAgICAgKHkgInBhY2thZ2UteSIgInktMS4wL3NiaW4veSIpKQor ICAgIChsaXN0IChzdHJpbmc9PyB4ICh3aGljaCAieCIgaW5wdXRzKSkKKyAgICAgICAgICAoc3Ry aW5nPT8geSAod2hpY2ggInkiIGlucHV0cykpKSkpCisKKyh0ZXN0LWVxdWFsICJ3aGljaCwgZW1w dHkgaW5wdXRzIgorICAjZgorICAod2hpY2ggImxzIiAnKCkpKQorCisodGVzdC1hc3NlcnQgIndo aWNoLCB1c2luZyAkUEFUSCIKKyAgKGNhbGwtd2l0aC10ZW1wb3JhcnktZGlyZWN0b3J5CisgICAo bGFtYmRhIChkaXJuYW1lKQorICAgICAodG91Y2ggKGluLXZpY2luaXR5IGRpcm5hbWUgImxzIikp CisgICAgICh3aXRoLWVudmlyb25tZW50LXZhcmlhYmxlICJQQVRIIiBkaXJuYW1lCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkKKyAgICAgICAgIChzdHJpbmc9PyAo aW4tdmljaW5pdHkgZGlybmFtZSAibHMiKSAod2hpY2ggImxzIikpKSkpKSkKKwogKHRlc3QtZW5k KQorCis7OzsgTG9jYWwgVmFyaWFibGVzOgorOzs7IGV2YWw6IChwdXQgJ3dpdGgtYXJ0aWZpY2lh bC1pbnB1dHMgJ3NjaGVtZS1pbmRlbnQtZnVuY3Rpb24gMSkKKzs7OyBFbmQ6Ci0tIAoyLjMxLjEK Cg== --=-cAzKwnJz3OPCbELQcwCL Content-Disposition: attachment; filename="0002-doc-Document-new-functionality-of-which.patch" Content-Type: text/x-patch; name="0002-doc-Document-new-functionality-of-which.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2NTYxYzk0M2ZhMTM0Y2ExZTJhMTdlNDNmOGY1NDk4ZmNhOWIxNTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMTggQXByIDIwMjEgMTM6MTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDIv Ml0gPT9VVEYtOD9xP2RvYzo9MjBEb2N1bWVudD0yMG5ldz0yMGZ1bmN0aW9uYWxpdHk9MjBvZj89 CiA9P1VURi04P3E/PTIwPUUyPTgwPTk4d2hpY2g9RTI9ODA9OTkuPz0KTUlNRS1WZXJzaW9uOiAx LjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDhiaXQKCiogZG9jL2d1aXgudGV4aSAoRmlsZSBTZWFyY2gpW3doaWNoXTog RG9jdW1lbnQgdGhlIG9wdGlvbmFsCiAgJ2lucHV0cycgYXJndW1lbnQsIGFuZCBnaXZlIGFuIGV4 YW1wbGUgb24gaG93IHRvIHVzZSB0aGUKICBwcm9jZWR1cmUuCi0tLQogZG9jL2d1aXgudGV4aSB8 IDE5ICsrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50 ZXhpCmluZGV4IDY0NjRmYTMyY2IuLjM2NWNiMTM2MDQgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRl eGkKKysrIGIvZG9jL2d1aXgudGV4aQpAQCAtODcsNiArODcsNyBAQCBDb3B5cmlnaHQgQGNvcHly aWdodHt9IDIwMjAgRGFuaWVsIEJyb29rc0AqCiBDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMjAg Sm9obiBTb29AKgogQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIwIEpvbmF0aGFuIEJyaWVsbWFp ZXJAKgogQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIwIEVkZ2FyIFZpbmNlbnRAKgorQ29weXJp Z2h0IEBjb3B5cmlnaHR7fSAyMDIxIE1heGltZSBEZXZvc0AqCiAKIFBlcm1pc3Npb24gaXMgZ3Jh bnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAogdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNp b24gMS4zIG9yCkBAIC04NTk4LDExICs4NTk5LDI1IEBAIHRoZSByb290IG9mIHRoZSBHdWl4IHNv dXJjZSB0cmVlOgogQHJlc3VsdHt9ICgiLi9saWJmb3JtYXQuYSIgIi4vbGlic3RvcmUuYSIgQGRv dHN7fSkKIEBlbmQgbGlzcAogCi1AZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IHdoaWNoIEB2YXJ7 cHJvZ3JhbX0KK0BkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gd2hpY2ggQHZhcntwcm9ncmFtfSBb QHZhcntpbnB1dHN9PSNmYWxzZV0KIFJldHVybiB0aGUgY29tcGxldGUgZmlsZSBuYW1lIGZvciBA dmFye3Byb2dyYW19IGFzIGZvdW5kIGluCi1AY29kZXskUEFUSH0sIG9yIEBjb2RleyNmfSBpZiBA dmFye3Byb2dyYW19IGNvdWxkIG5vdCBiZSBmb3VuZC4KK0Bjb2RleyRQQVRIfSwgb3IgQGNvZGV7 I2ZhbHNlfSBpZiBAdmFye3Byb2dyYW19IGNvdWxkIG5vdCBiZSBmb3VuZC4KK0lmIEB2YXJ7SU5Q VVRTfSBpcyBub3QgQGNvZGV7I2ZhbHNlfSwgaW5zdGVhZCBsb29rIGluIHRoZQorQGZpbGV7L2Jp bn0gYW5kIEBmaWxley9zYmlufSBzdWJkaXJlY3RvcmllcyBvZiBAdmFye0lOUFVUU30uCitAdmFy e2lucHV0c30gaXMgYW4gYWxpc3Q7IGl0cyBrZXlzIGFyZSBpZ25vcmVkLiIKIEBlbmQgZGVmZm4K IAorSGVyZSBpcyBhbiBleGFtcGxlIHVzaW5nIHRoZSBAY29kZXt3aGljaH0gcHJvY2VkdXJlIGlu IGEgYnVpbGQgcGhhc2U6CisKK0BsaXNwCisobGFtYmRhKiAoIzprZXkgb3V0cHV0cyBpbnB1dHMg IzphbGxvdy1vdGhlci1rZXlzKQorICAobGV0ICgoZ3Jvd3BhcnQgKHN0cmluZy1hcHBlbmQgKGFz c29jLXJlZiBvdXRwdXRzICJvdXQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi9iaW4vZ3Jvd3BhcnQiKSkpCisgICAgICh3cmFwLXByb2dyYW0gZ3Jvd3BhcnQK KyAgICAgICAgICAgICAgICAgICBgKCJQQVRIIiAiOiIgcHJlZml4ICgsKGRpcm5hbWUgKHdoaWNo ICJzZmRpc2siIGlucHV0cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLChkaXJuYW1lICh3aGljaCAicmVhZGxpbmsiIGlucHV0cykpKSkpKSkKK0BlbmQgbGlzcAor CiBAc3Vic2VjdGlvbiBCdWlsZCBQaGFzZXMKIAogQGNpbmRleCBidWlsZCBwaGFzZXMKLS0gCjIu MzEuMQoK --=-cAzKwnJz3OPCbELQcwCL-- --=-Yf9WFeBUNkh31S8MCF0U Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYHwV+xccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7r2/AP4hU2XQPn+le3JfU7/cCobGnlXJ npfGlgydOpvNVuhJeAEAti0f3F1y/3SMnZnZbYl8q4Ub7FexwiYUGEs3UedKPgs= =hpVX -----END PGP SIGNATURE----- --=-Yf9WFeBUNkh31S8MCF0U--