From unknown Sun Jun 15 08:06:36 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#56677 <56677@debbugs.gnu.org> To: bug#56677 <56677@debbugs.gnu.org> Subject: Status: [PATCH 0/2] environment: Add --emulate-fhs option. Reply-To: bug#56677 <56677@debbugs.gnu.org> Date: Sun, 15 Jun 2025 15:06:36 +0000 retitle 56677 [PATCH 0/2] environment: Add --emulate-fhs option. reassign 56677 guix-patches submitter 56677 John Kehayias severity 56677 normal tag 56677 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 21 00:14:36 2022 Received: (at submit) by debbugs.gnu.org; 21 Jul 2022 04:14:36 +0000 Received: from localhost ([127.0.0.1]:36404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENa8-00011L-Dk for submit@debbugs.gnu.org; Thu, 21 Jul 2022 00:14:36 -0400 Received: from lists.gnu.org ([209.51.188.17]:52832) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENa6-00011D-Er for submit@debbugs.gnu.org; Thu, 21 Jul 2022 00:14:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oENa6-0006D0-AD for guix-patches@gnu.org; Thu, 21 Jul 2022 00:14:34 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:13388) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oENa3-0001S4-LW for guix-patches@gnu.org; Thu, 21 Jul 2022 00:14:33 -0400 Date: Thu, 21 Jul 2022 04:14:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1658376868; x=1658636068; bh=Xs4uyOutqrJ8ToLIt26kAmXDdRKT8SHnp0Ii2hnlks4=; h=Date:To:From:Reply-To:Subject:Message-ID:Feedback-ID:From:To:Cc: Date:Subject:Reply-To:Feedback-ID:Message-ID; b=bAbYX2ZW6+vQpjQswgRlmSR/Wf/qWnVxraUJFwO8pNLunJyo6UE6L51zHSJBtfVrX d3l8o72IkAw6Zx/Hf97UVykKunXpWSRfhhPrJQ0hRgZybWXO6k1H4j8XT4cj8adHg4 NctNfpsHnz55sVPsXMbl7RfHlkV4E/ee1YMVzdcxGGVweYil5wZnbC4z58TITkEOe3 QRiTPIF6ywwpw/eKcUM/Rtfkx0aSj3abt+66ofJb9149fKqUJZwkO4nOluPgPwyQot gQIaTeH0WRWbsSc3YlGX3e59FyywI8mkNxRFqufWeYzdItHiOEIuM84VmIdny3YxNz zEy2uiDeH7IeA== To: Guix-patches From: John Kehayias Subject: [PATCH 0/2] environment: Add --emulate-fhs option. Message-ID: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.70.40.134; envelope-from=john.kehayias@protonmail.com; helo=mail-40134.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: John Kehayias Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hello Guix, As discussed on guix-devel here (please see for more detailed discussion an= d design aims): https://lists.gnu.org/r/guix-devel/2022-07/msg00161.html th= is is a patch to add an FHS (Filesystem Hierarchy Standard) emulation optio= n for environments. The overall goal is to mimic typical GNU/Linux distributions in following F= HS (/bin, /etc, and /usr in particular) as well as a glibc that reads a glo= bal /etc/ld.so.cache and PATH with /bin, and so on. The idea is that follow= ing instructions for setting up a development environment, building softwar= e, running something, and so on in "typical" Linux environments, should "ju= st work" with 'guix shell --container --emulate-fhs ...', provided the righ= t inputs and other options are set. For testers, this can be used by using pre-inst-env (outside of the pure sh= ell used to build a local guix) to run guix shell with this patch. Please s= ee the mailing list discussion for particular examples as well. For review, in particular: 1. On the mailing list there was discussion about the necessity or not of g= libc-for-fhs (added in the first patch). I find this useful and a big piece= of making this FHS option work, but open to discussion or if it should be = a further option. 2. Right now I used a script written to the containers /tmp/fhs.sh to gener= ate the ld cache, supplement $PATH (somewhat optional, but I found useful f= or less tinkering), and finally launch the given command or shell. I found = that when not providing a command the prompt for /bin/sh is not the same as= when not using --emulate-fhs. So I'm not sure if this is the correct way t= o launch the default /bin/sh if no command is given. Open to ideas of a bet= ter way to implement these actions for a container start up as well. 3. This is my first time touching a guix script and the documentation, so p= lease do check the commit message and guix.texi. 4. I decided to link the second level FHS directories, like /usr/bin, as we= ll as optional ones like /lib64 (or /lib32), to the top level /bin, /lib, a= nd so on. These could just be bind mounted to profile/bin and so on as well= , but again tried to mimic an FHS distribution like Arch where the files on= ly live in one place. While perhaps making the code a little more involved,= I hope this makes the container look tidier. I may be forgetting other elements in the implementation decisions I made, = but I have been testing these patches along the way and have gotten good us= age of them. Please test further too! Thanks, John From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 21 00:19:35 2022 Received: (at 56677) by debbugs.gnu.org; 21 Jul 2022 04:19:35 +0000 Received: from localhost ([127.0.0.1]:36416 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENex-00019x-BI for submit@debbugs.gnu.org; Thu, 21 Jul 2022 00:19:35 -0400 Received: from mail-4322.protonmail.ch ([185.70.43.22]:60437) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENev-00019j-6V for 56677@debbugs.gnu.org; Thu, 21 Jul 2022 00:19:34 -0400 Date: Thu, 21 Jul 2022 04:19:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1658377166; x=1658636366; bh=E4XPt6GUNF5K7mvB6YU6AXhVsWBhdoXXLhzTaqM3uTc=; h=Date:To:From:Reply-To:Subject:Message-ID:Feedback-ID:From:To:Cc: Date:Subject:Reply-To:Feedback-ID:Message-ID; b=pxDIJfiWu0wTgSf50eVIhy6gAu8D8xC2eyRdy1xkQrPqisGTCfKmdw8LS0sSWzHZl lf1z4BAos1uZuMaLvNO0s61HODHGHnTm7KLyUQG9kdVTAgkEf+eufga0BDGaBcuz31 /40bZykSCC/VQ0Q8yqJYZ0Hp33K0bORNiBqLr4egYwZ+pYNWvRNM64qAipRBrrjA6a QECpEIhfZGOPtiaEeJxjovwjzxfPLVRKVMp91MD7lmmX7ylmJDsXPb+u1/zv1AwChu LmED4z51lhEGVD0lJcTGZf4w0yn74qMwqW+jxYcI7ILwihRjDmK+Ugy0mSrWFaJZUB f23tzp51B1zUQ== To: "56677@debbugs.gnu.org" <56677@debbugs.gnu.org> From: John Kehayias Subject: [PATCH 1/2] gnu: Add glibc-for-fhs. Message-ID: Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_OOAmlQ9h22FX4AJK6jtRQRrB6Xsqrm6QlT1hqsfxso" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56677 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: John Kehayias Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_OOAmlQ9h22FX4AJK6jtRQRrB6Xsqrm6QlT1hqsfxso Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Empty Message --b1_OOAmlQ9h22FX4AJK6jtRQRrB6Xsqrm6QlT1hqsfxso Content-Type: text/x-patch; name=0001-gnu-Add-glibc-for-fhs.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-gnu-Add-glibc-for-fhs.patch RnJvbSBhYzk0ZjQyMDM0MjNjNjI1YzA2MDE4MjEyNjc3YTc5OGVhNDZiNDE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIEtlaGF5aWFzIDxqb2huLmtlaGF5aWFzQHByb3Rvbm1h aWwuY29tPgpEYXRlOiBXZWQsIDIwIEp1bCAyMDIyIDIzOjI2OjUzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAxLzJdIGdudTogQWRkIGdsaWJjLWZvci1maHMuCgoqIGdudS9wYWNrYWdlcy9iYXNlLnNj bSAoZ2xpYmMtZm9yLWZocyk6IE5ldyB2YXJpYWJsZS4gSGlkZGVuIHBhY2thZ2UgZm9yIHVzZQpp biBmb3J0aGNvbWluZyAtLWVtdWxhdGUtZmhzIG9wdGlvbiBmb3IgZ3VpeCBjb250YWluZXJzLgot LS0KIGdudS9wYWNrYWdlcy9iYXNlLnNjbSB8IDE1ICsrKysrKysrKysrKysrKwogMSBmaWxlIGNo YW5nZWQsIDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvYmFzZS5z Y20gYi9nbnUvcGFja2FnZXMvYmFzZS5zY20KaW5kZXggNGJkYzNlNzc5Mi4uYjU2NjA1N2I0MSAx MDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL2Jhc2Uuc2NtCisrKyBiL2dudS9wYWNrYWdlcy9iYXNl LnNjbQpAQCAtMjAsNiArMjAsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZv cyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KIDs7OyBDb3B5cmlnaHQgwqkgMjAyMSBHdWlsbGF1 bWUgTGUgVmFpbGxhbnQgPGdsdkBwb3N0ZW8ubmV0PgogOzs7IENvcHlyaWdodCDCqSAyMDIxIE1h eGltIENvdXJub3llciA8bWF4aW0uY291cm5veWVyQGdtYWlsLmNvbT4KKzs7OyBDb3B5cmlnaHQg wqkgMjAyMiBKb2huIEtlaGF5aWFzIDxqb2huLmtlaGF5aWFzQHByb3Rvbm1haWwuY29tPgogOzs7 CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCiA7OzsKQEAgLTkyOCw2ICs5Mjks MjAgQEAgKGRlZmluZS1wdWJsaWMgZ2xpYmMKICAgIChsaWNlbnNlIGxncGwyLjArKQogICAgKGhv bWUtcGFnZSAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjLyIpKSkKIAorOzsgRGVm aW5lIGEgdmFyaWF0aW9uIG9mIGdsaWJjIHdoaWNoIHVzZXMgdGhlIGRlZmF1bHQgL2V0Yy9sZC5z by5jYWNoZSwgdXNlZnVsCis7OyBpbiBGSFMgY29udGFpbmVycy4KKyhkZWZpbmUtcHVibGljIGds aWJjLWZvci1maHMKKyAgKGhpZGRlbi1wYWNrYWdlCisgICAocGFja2FnZQorICAgICAoaW5oZXJp dCBnbGliYykKKyAgICAgKG5hbWUgImdsaWJjLWZvci1maHMiKQorICAgICAoc291cmNlIChvcmln aW4gKGluaGVyaXQgKHBhY2thZ2Utc291cmNlIGdsaWJjKSkKKyAgICAgICAgICAgICAgICAgICAg IDs7IFJlbW92ZSBHdWl4J3MgcGF0Y2ggdG8gcmVhZCBsZC5zby5jYWNoZSBmcm9tIC9nbnUvc3Rv cmUKKyAgICAgICAgICAgICAgICAgICAgIDs7IGRpcmVjdG9yaWVzLCByZS1lbmFibGluZyB0aGUg ZGVmYXVsdCAvZXRjL2xkLnNvLmNhY2hlCisgICAgICAgICAgICAgICAgICAgICA7OyBiZWhhdmlv ci4KKyAgICAgICAgICAgICAgICAgICAgIChwYXRjaGVzIChkZWxldGUgKGNhciAoc2VhcmNoLXBh dGNoZXMgImdsaWJjLWRsLWNhY2hlLnBhdGNoIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChvcmlnaW4tcGF0Y2hlcyAocGFja2FnZS1zb3VyY2UgZ2xpYmMpKSkpKSkp KSkKKwogOzsgQmVsb3cgYXJlIG9sZCBsaWJjIHZlcnNpb25zLCB3aGljaCB3ZSB1c2UgbW9zdGx5 IHRvIGJ1aWxkIGxvY2FsZSBkYXRhIGluCiA7OyB0aGUgb2xkIGZvcm1hdCAod2hpY2ggdGhlIG5l dyBsaWJjIGNhbm5vdCBjb3BlIHdpdGguKQogKGRlZmluZS1wdWJsaWMgZ2xpYmMtMi4zMgotLSAK Mi4zNy4wCgo= --b1_OOAmlQ9h22FX4AJK6jtRQRrB6Xsqrm6QlT1hqsfxso-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 21 00:20:00 2022 Received: (at 56677) by debbugs.gnu.org; 21 Jul 2022 04:20:00 +0000 Received: from localhost ([127.0.0.1]:36420 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENfL-0001Aj-Ps for submit@debbugs.gnu.org; Thu, 21 Jul 2022 00:20:00 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:34587) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oENfJ-0001AU-N0 for 56677@debbugs.gnu.org; Thu, 21 Jul 2022 00:19:58 -0400 Date: Thu, 21 Jul 2022 04:19:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1658377191; x=1658636391; bh=tvEnU35sz3TT8n+s45ZgQDoPS168AS0YWM2CzStegxc=; h=Date:To:From:Reply-To:Subject:Message-ID:Feedback-ID:From:To:Cc: Date:Subject:Reply-To:Feedback-ID:Message-ID; b=lbfZwk8BW6IfJbvt0F1jFM43SAq2qtHfaHMbItxjG/wRE6Yjzy/1qm5ZSm10vlV9K PLCJx06Bjjn7ttN8pzmNnxoweKacUA87kSI9uSO1hx91W4SeJ/qTyLcrQDWmd4z4Ul S1MeIJRyJO4zYLbkN0mHjP5UW3TLX3ygTUhO+ShpVOChF0S6w+YHWnMarsl6OPTRlT SrIbtGPrV+tCCS7/oa2Dcdsq87s5mCgp0Y1qqmPrYTqIqpLLh/DeAGQLGx7TFuK0WS o+V3laRUCEO5H+t58Sq1fLdgofzn1by7K0qCycppabz6y1EMfhqppFdVxSpfVmDjT7 igab70BFE5zJg== To: "56677@debbugs.gnu.org" <56677@debbugs.gnu.org> From: John Kehayias Subject: [PATCH 2/2] environment: Add '--emulate-fhs'. Message-ID: Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_GE6d7q9lONcA9inxhxlen4Tt56kMTDI1jSIduIl5I" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56677 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: John Kehayias Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_GE6d7q9lONcA9inxhxlen4Tt56kMTDI1jSIduIl5I Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Empty Message --b1_GE6d7q9lONcA9inxhxlen4Tt56kMTDI1jSIduIl5I Content-Type: text/x-patch; name=0002-environment-Add-emulate-fhs.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-environment-Add-emulate-fhs.patch RnJvbSAyN2Q0MGNiZDYwNDcxYjc5ZGMxNjkyZjdkYjRhZWY0OTViOTM0OTNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIEtlaGF5aWFzIDxqb2huLmtlaGF5aWFzQHByb3Rvbm1h aWwuY29tPgpEYXRlOiBXZWQsIDIwIEp1bCAyMDIyIDIzOjQ2OjQ1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAyLzJdIGVudmlyb25tZW50OiBBZGQgJy0tZW11bGF0ZS1maHMnLgoKKiBndWl4L3Njcmlw dHMvZW52aXJvbm1lbnQuc2NtIChzaG93LWVudmlyb25tZW50LW9wdGlvbnMtaGVscCkKKCVvcHRp b25zKTogQWRkICctLWVtdWxhdGUtZmhzJy4KKiBndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2Nt IChsYXVuY2gtZW52aXJvbm1lbnQvY29udGFpbmVyKTogQWRkCidlbXVsYXRlLWZocz8nICBrZXkg YW5kIGltcGxlbWVudCBpdC4gIERlZmluZSBhbmQgdXNlIEZIUy1NQVBQSU5HUywKRkhTLVNZTUxJ TktTLCBhbmQgTElOSy1DT05URU5UUyB0byBzZXQgdXAgdGhlIGNvbnRhaW5lciB0byBmb2xsb3cg dGhlCkZpbGVzeXN0ZW0gSGllcmFyY2h5IFN0YW5kYXJkIChGSFMpIGZvciAvYmluLCAvZXRjLCBh bmQgL3Vzci4gIEdlbmVyYXRlCi9ldGMvbGQuc28uY2FjaGUgaW4gdGhlIGNvbnRhaW5lciBmcm9t IC9ldGMvbGQuc28uY29uZiBieSBydW5uaW5nIHRoZSBzY3JpcHQKL3RtcC9maHMuc2ggdG8gbGF1 bmNoIHRoZSBjb250YWluZXIuCihndWl4LWVudmlyb25tZW50Kik6IEFkZCBnbGliYy1mb3ItZmhz IHRvIHRoZSBjb250YWluZXIgcGFja2FnZXMgd2hlbgonZW11bGF0ZS1maHM/JyBrZXkgaXMgaW4g T1BUUy4KKiBkb2MvZ3VpeC50ZXhpIChJbnZva2luZyBndWl4IHNoZWxsKTogRG9jdW1lbnQgJy0t ZW11bGF0ZS1maHMnLgooSW52b2tpbmcgZ3VpeCBlbnZpcm9ubWVudCk6IERvY3VtZW50ICctLWVt dWxhdGUtZmhzJy4KLS0tCiBkb2MvZ3VpeC50ZXhpICAgICAgICAgICAgICAgIHwgIDMzICsrKysr KysrCiBndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2NtIHwgMTU2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNlcnRpb25zKCspLCAy MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZ3VpeC50ZXhpIGIvZG9jL2d1aXgudGV4 aQppbmRleCAzYzU4NjRlYzFhLi5hYjM5NjdiMmU1IDEwMDY0NAotLS0gYS9kb2MvZ3VpeC50ZXhp CisrKyBiL2RvYy9ndWl4LnRleGkKQEAgLTEwNiw2ICsxMDYsNyBAQAogQ29weXJpZ2h0IEBjb3B5 cmlnaHR7fSAyMDIyIEthcmwgSGFsbHNieUAqCiBDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMjIg SnVzdGluIFZlaWxsZXV4QCoKIENvcHlyaWdodCBAY29weXJpZ2h0e30gMjAyMiBSZWlseSBTaWVn ZWxAKgorQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIyIEpvaG4gS2VoYXlpYXNAKgogCiBQZXJt aXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMg ZG9jdW1lbnQKIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBM aWNlbnNlLCBWZXJzaW9uIDEuMyBvcgpAQCAtNjE1NSw2ICs2MTU2LDIyIEBAIEludm9raW5nIGd1 aXggc2hlbGwKIGd1aXggc2hlbGwgLS1jb250YWluZXIgLS1leHBvc2U9JEhPTUU9L2V4Y2hhbmdl IGd1aWxlIC0tIGd1aWxlCiBAZW5kIGV4YW1wbGUKIAorQGl0ZW0gLS1lbXVsYXRlLWZocworQGl0 ZW0gLUYKK0ZvciBjb250YWluZXJzLCBlbXVsYXRlIGEgRmlsZXN5c3RlbSBIaWVyYXJjaHkgU3Rh bmRhcmQgKEZIUykKK2NvbmZpZ3VyYXRpb24gd2l0aGluIHRoZSBjb250YWluZXIsIHNlZQorQHVy ZWZ7aHR0cHM6Ly9yZWZzcGVjcy5saW51eGZvdW5kYXRpb24ub3JnL2Zocy5zaHRtbCwgdGhlIG9m ZmljaWFsCitzcGVjaWZpY2F0aW9ufS4gIEFzIEd1aXggZGV2aWF0ZXMgZnJvbSB0aGUgRkhTIHNw ZWNpZmljYXRpb24sIHRoaXMKK29wdGlvbiBzZXRzIHVwIHRoZSBjb250YWluZXIgdG8gbW9yZSBj bG9zZWx5IG1pbWljIHRoYXQgb2Ygb3RoZXIKK0dOVS9MaW51eCBkaXN0cmlidXRpb25zLiAgVGhp cyBpcyB1c2VmdWwgZm9yIHJlcHJvZHVjaW5nIG90aGVyCitkZXZlbG9wbWVudCBlbnZpcm9ubWVu dHMsIHRlc3RpbmcsIGFuZCB1c2luZyBwcm9ncmFtcyB3aGljaCBleHBlY3QgdGhlCitGSFMgc3Bl Y2lmaWNhdGlvbiB0byBiZSBmb2xsb3dlZC4gIFdpdGggdGhpcyBvcHRpb24sIHRoZSBjb250YWlu ZXIgd2lsbAoraW5jbHVkZSBhIHZlcnNpb24gb2YgQGNvZGV7Z2xpYmN9IHdoaWNoIHdpbGwgcmVh ZAorQGNvZGV7L2V0Yy9sZC5zby5jYWNoZX0gd2l0aGluIHRoZSBjb250YWluZXIgZm9yIHRoZSBz aGFyZWQgbGlicmFyeQorY2FjaGUgKGNvbnRyYXJ5IHRvIEBjb2Rle2dsaWJjfSBpbiByZWd1bGFy IEd1aXggdXNhZ2UpIGFuZCBzZXQgdXAgdGhlCitleHBlY3RlZCBGSFMgZGlyZWN0b3JpZXM6IEBj b2Rley9iaW59LCBAY29kZXsvZXRjfSwgQGNvZGV7L2xpYn0sIGFuZAorQGNvZGV7L3Vzcn0gZnJv bSB0aGUgY29udGFpbmVyJ3MgcHJvZmlsZS4KKwogQGl0ZW0gLS1yZWJ1aWxkLWNhY2hlCiBAY2lu ZGV4IGNhY2hpbmcsIG9mIHByb2ZpbGVzCiBAY2luZGV4IGNhY2hpbmcsIGluIEBjb21tYW5ke2d1 aXggc2hlbGx9CkBAIC02NTc0LDYgKzY1OTEsMjIgQEAgSW52b2tpbmcgZ3VpeCBlbnZpcm9ubWVu dAogCiBAZW5kIHRhYmxlCiAKK0BpdGVtIC0tZW11bGF0ZS1maHMKK0BpdGVtIC1GCitGb3IgY29u dGFpbmVycywgZW11bGF0ZSBhIEZpbGVzeXN0ZW0gSGllcmFyY2h5IFN0YW5kYXJkIChGSFMpCitj b25maWd1cmF0aW9uIHdpdGhpbiB0aGUgY29udGFpbmVyLCBzZWUKK0B1cmVme2h0dHBzOi8vcmVm c3BlY3MubGludXhmb3VuZGF0aW9uLm9yZy9maHMuc2h0bWwsIHRoZSBvZmZpY2lhbAorc3BlY2lm aWNhdGlvbn0uICBBcyBHdWl4IGRldmlhdGVzIGZyb20gdGhlIEZIUyBzcGVjaWZpY2F0aW9uLCB0 aGlzCitvcHRpb24gc2V0cyB1cCB0aGUgY29udGFpbmVyIHRvIG1vcmUgY2xvc2VseSBtaW1pYyB0 aGF0IG9mIG90aGVyCitHTlUvTGludXggZGlzdHJpYnV0aW9ucy4gIFRoaXMgaXMgdXNlZnVsIGZv ciByZXByb2R1Y2luZyBvdGhlcgorZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLCB0ZXN0aW5nLCBh bmQgdXNpbmcgcHJvZ3JhbXMgd2hpY2ggZXhwZWN0IHRoZQorRkhTIHNwZWNpZmljYXRpb24gdG8g YmUgZm9sbG93ZWQuICBXaXRoIHRoaXMgb3B0aW9uLCB0aGUgY29udGFpbmVyIHdpbGwKK2luY2x1 ZGUgYSB2ZXJzaW9uIG9mIEBjb2Rle2dsaWJjfSB3aGljaCB3aWxsIHJlYWQKK0Bjb2Rley9ldGMv bGQuc28uY2FjaGV9IHdpdGhpbiB0aGUgY29udGFpbmVyIGZvciB0aGUgc2hhcmVkIGxpYnJhcnkK K2NhY2hlIChjb250cmFyeSB0byBAY29kZXtnbGliY30gaW4gcmVndWxhciBHdWl4IHVzYWdlKSBh bmQgc2V0IHVwIHRoZQorZXhwZWN0ZWQgRkhTIGRpcmVjdG9yaWVzOiBAY29kZXsvYmlufSwgQGNv ZGV7L2V0Y30sIEBjb2Rley9saWJ9LCBhbmQKK0Bjb2Rley91c3J9IGZyb20gdGhlIGNvbnRhaW5l cidzIHByb2ZpbGUuCisKIEBjb21tYW5ke2d1aXggZW52aXJvbm1lbnR9CiBhbHNvIHN1cHBvcnRz IGFsbCBvZiB0aGUgY29tbW9uIGJ1aWxkIG9wdGlvbnMgdGhhdCBAY29tbWFuZHtndWl4CiBidWls ZH0gc3VwcG9ydHMgKEBweHJlZntDb21tb24gQnVpbGQgT3B0aW9uc30pIGFzIHdlbGwgYXMgcGFj a2FnZQpkaWZmIC0tZ2l0IGEvZ3VpeC9zY3JpcHRzL2Vudmlyb25tZW50LnNjbSBiL2d1aXgvc2Ny aXB0cy9lbnZpcm9ubWVudC5zY20KaW5kZXggMzIxNjIzNTkzNy4uZjk0M2NkODlkOSAxMDA2NDQK LS0tIGEvZ3VpeC9zY3JpcHRzL2Vudmlyb25tZW50LnNjbQorKysgYi9ndWl4L3NjcmlwdHMvZW52 aXJvbm1lbnQuc2NtCkBAIC0yLDYgKzIsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDE0LCAyMDE1 LCAyMDE4IERhdmlkIFRob21wc29uIDxkYXZldEBnbnUub3JnPgogOzs7IENvcHlyaWdodCDCqSAy MDE1LTIwMjIgTHVkb3ZpYyBDb3VydMOocyA8bHVkb0BnbnUub3JnPgogOzs7IENvcHlyaWdodCDC qSAyMDE4IE1pa2UgR2Vyd2l0eiA8bXRnQGdudS5vcmc+Cis7OzsgQ29weXJpZ2h0IMKpIDIwMjIg Sm9obiBLZWhheWlhcyA8am9obi5rZWhheWlhc0Bwcm90b25tYWlsLmNvbT4KIDs7OwogOzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC0xMjAsNiArMTIxLDkgQEAgKGRl ZmluZSAoc2hvdy1lbnZpcm9ubWVudC1vcHRpb25zLWhlbHApCiAgICAgICAtLWV4cG9zZT1TUEVD ICAgICAgZm9yIGNvbnRhaW5lcnMsIGV4cG9zZSByZWFkLW9ubHkgaG9zdCBmaWxlIHN5c3RlbQog ICAgICAgICAgICAgICAgICAgICAgICAgIGFjY29yZGluZyB0byBTUEVDIikpCiAgIChkaXNwbGF5 IChHXyAiCisgIC1GLCAtLWVtdWxhdGUtZmhzICAgICAgZm9yIGNvbnRhaW5lcnMsIGVtdWxhdGUg dGhlIEZpbGVzeXN0ZW0gSGllcmFyY2h5CisgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmRh cmQgKEZIUykiKSkKKyAgKGRpc3BsYXkgKEdfICIKICAgLXYsIC0tdmVyYm9zaXR5PUxFVkVMICB1 c2UgdGhlIGdpdmVuIHZlcmJvc2l0eSBMRVZFTCIpKQogICAoZGlzcGxheSAoR18gIgogICAgICAg LS1ib290c3RyYXAgICAgICAgIHVzZSBib290c3RyYXAgYmluYXJpZXMgdG8gYnVpbGQgdGhlIGVu dmlyb25tZW50IikpKQpAQCAtMjU2LDYgKzI2MCw5IEBAIChkZWZpbmUgJW9wdGlvbnMKICAgICAg ICAgICAgICAgICAgICAoYWxpc3QtY29ucyAnZmlsZS1zeXN0ZW0tbWFwcGluZwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzcGVjaWZpY2F0aW9uLT5maWxlLXN5c3RlbS1tYXBwaW5n IGFyZyAjZikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpKSkKKyAgICAg ICAgIChvcHRpb24gJygjXEYgImVtdWxhdGUtZmhzIikgI2YgI2YKKyAgICAgICAgICAgICAgICAg KGxhbWJkYSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAoYWxpc3Qt Y29ucyAnZW11bGF0ZS1maHM/ICN0IHJlc3VsdCkpKQogICAgICAgICAgKG9wdGlvbiAnKCNcciAi cm9vdCIpICN0ICNmCiAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG9wdCBuYW1lIGFyZyByZXN1 bHQpCiAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWNvbnMgJ2djLXJvb3QgYXJnIHJlc3VsdCkp KQpAQCAtNjA4LDE2ICs2MTUsMTggQEAgKGRlZmluZSogKGxhdW5jaC1lbnZpcm9ubWVudC9mb3Jr IGNvbW1hbmQgcHJvZmlsZSBtYW5pZmVzdAogCiAoZGVmaW5lKiAobGF1bmNoLWVudmlyb25tZW50 L2NvbnRhaW5lciAjOmtleSBjb21tYW5kIGJhc2ggdXNlciB1c2VyLW1hcHBpbmdzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlIG1hbmlmZXN0IGxpbmstcHJv ZmlsZT8gbmV0d29yaz8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h cC1jd2Q/ICh3aGl0ZS1saXN0ICcoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXAtY3dkPyBlbXVsYXRlLWZocz8gKHdoaXRlLWxpc3QgJygpKSkKICAgIlJ1biBD T01NQU5EIHdpdGhpbiBhIGNvbnRhaW5lciB0aGF0IGZlYXR1cmVzIHRoZSBzb2Z0d2FyZSBpbiBQ Uk9GSUxFLgotRW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBzZXQgYWNjb3JkaW5nIHRvIHRoZSBz ZWFyY2ggcGF0aHMgb2YgTUFOSUZFU1QuCi1UaGUgZ2xvYmFsIHNoZWxsIGlzIEJBU0gsIGEgZmls ZSBuYW1lIGZvciBhIEdOVSBCYXNoIGJpbmFyeSBpbiB0aGUKLXN0b3JlLiAgV2hlbiBORVRXT1JL PywgYWNjZXNzIHRvIHRoZSBob3N0IHN5c3RlbSBuZXR3b3JrIGlzIHBlcm1pdHRlZC4KLVVTRVIt TUFQUElOR1MsIGEgbGlzdCBvZiBmaWxlIHN5c3RlbSBtYXBwaW5ncywgY29udGFpbnMgdGhlIHVz ZXItc3BlY2lmaWVkCi1ob3N0IGZpbGUgc3lzdGVtcyB0byBtb3VudCBpbnNpZGUgdGhlIGNvbnRh aW5lci4gIElmIFVTRVIgaXMgbm90ICNmLCBlYWNoCi10YXJnZXQgb2YgVVNFUi1NQVBQSU5HUyB3 aWxsIGJlIHJlLXdyaXR0ZW4gcmVsYXRpdmUgdG8gJy9ob21lL1VTRVInLCBhbmQgVVNFUgotd2ls bCBiZSB1c2VkIGZvciB0aGUgcGFzc3dkIGVudHJ5LiAgTElOSy1QUk9GSUxFPyBjcmVhdGVzIGEg c3ltYm9saWMgbGluayBmcm9tCi1+Ly5ndWl4LXByb2ZpbGUgdG8gdGhlIGVudmlyb25tZW50IHBy b2ZpbGUuCitFbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIHNldCBhY2NvcmRpbmcgdG8gdGhlIHNl YXJjaCBwYXRocyBvZiBNQU5JRkVTVC4gIFRoZQorZ2xvYmFsIHNoZWxsIGlzIEJBU0gsIGEgZmls ZSBuYW1lIGZvciBhIEdOVSBCYXNoIGJpbmFyeSBpbiB0aGUgc3RvcmUuICBXaGVuCitORVRXT1JL PywgYWNjZXNzIHRvIHRoZSBob3N0IHN5c3RlbSBuZXR3b3JrIGlzIHBlcm1pdHRlZC4gIFVTRVIt TUFQUElOR1MsIGEKK2xpc3Qgb2YgZmlsZSBzeXN0ZW0gbWFwcGluZ3MsIGNvbnRhaW5zIHRoZSB1 c2VyLXNwZWNpZmllZCBob3N0IGZpbGUgc3lzdGVtcyB0bworbW91bnQgaW5zaWRlIHRoZSBjb250 YWluZXIuICBJZiBVU0VSIGlzIG5vdCAjZiwgZWFjaCB0YXJnZXQgb2YgVVNFUi1NQVBQSU5HUwor d2lsbCBiZSByZS13cml0dGVuIHJlbGF0aXZlIHRvICcvaG9tZS9VU0VSJywgYW5kIFVTRVIgd2ls bCBiZSB1c2VkIGZvciB0aGUKK3Bhc3N3ZCBlbnRyeS4gIFdoZW4gRU1VTEFURS1GSFM/LCBzZXQg dXAgdGhlIGNvbnRhaW5lciB0byBmb2xsb3cgdGhlCitGaWxlc3lzdGVtIEhpZXJhcmNoeSBTdGFu ZGFyZCBhbmQgcHJvdmlkZSBhIGdsaWJjIHRoYXQgcmVhZHMgdGhlIGNhY2hlIGZyb20KKy9ldGMv bGQuc28uY2FjaGUuICBMSU5LLVBST0ZJTEU/IGNyZWF0ZXMgYSBzeW1ib2xpYyBsaW5rIGZyb20g fi8uZ3VpeC1wcm9maWxlCit0byB0aGUgZW52aXJvbm1lbnQgcHJvZmlsZS4KIAogUHJlc2VydmUg ZW52aXJvbm1lbnQgdmFyaWFibGVzIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgb25lIG9mIHRoZSBy ZWdleHBzIGluCiBXSElMRS1MSVNULiIKQEAgLTYyNSw2ICs2MzQsNDAgQEAgKGRlZmluZSogKGxh dW5jaC1lbnZpcm9ubWVudC9jb250YWluZXIgIzprZXkgY29tbWFuZCBiYXNoIHVzZXIgdXNlci1t YXBwaW5ncwogICAgIChhbmQgKGZpbGUtZXhpc3RzPyAoZmlsZS1zeXN0ZW0tbWFwcGluZy1zb3Vy Y2UgbWFwcGluZykpCiAgICAgICAgICAoZmlsZS1zeXN0ZW0tbWFwcGluZy0+YmluZC1tb3VudCBt YXBwaW5nKSkpCiAKKyAgOzsgRmlsZSBzeXN0ZW0gbWFwcGluZ3MgZm9yIGFuIEZIUyBjb250YWlu ZXIsIHdoZXJlIHRoZSBlbnRpcmUgZGlyZWN0b3J5IGNhbgorICA7OyBiZSBtYXBwZWQuICBPdGhl cnMgKGJpbiBhbmQgZXRjKSB3aWxsIGFscmVhZHkgaGF2ZSBjb250ZW50cyBhbmQgbmVlZCB0bwor ICA7OyB1c2UgTElOSy1DT05URU5UUyB0byBzeW1saW5rIHRoZSBkaXJlY3RvcnkgY29udGVudHMu CisgIChkZWZpbmUgZmhzLW1hcHBpbmdzCisgICAgKG1hcCAobGFtYmRhIChtYXBwaW5nKQorICAg ICAgICAgICAoZmlsZS1zeXN0ZW0tbWFwcGluZworICAgICAgICAgICAgKHNvdXJjZSAoc3RyaW5n LWFwcGVuZCBwcm9maWxlIChjYXIgbWFwcGluZykpKQorICAgICAgICAgICAgKHRhcmdldCAoY2Ry IG1hcHBpbmcpKSkpCisgICAgICAgICAnKCgiL2xpYiIgICAgIC4gIi9saWIiKQorICAgICAgICAg ICAoIi9pbmNsdWRlIiAuICIvdXNyL2luY2x1ZGUiKQorICAgICAgICAgICAoIi9zYmluIiAgICAu ICIvc2JpbiIpCisgICAgICAgICAgICgiL2xpYmV4ZWMiIC4gIi91c3IvbGliZXhlYyIpCisgICAg ICAgICAgICgiL3NoYXJlIiAgIC4gIi91c3Ivc2hhcmUiKSkpKQorCisgIDs7IEFkZGl0aW9uYWwg KG9wdGlvbmFsKSBzeW1saW5rcyBmb3IgYW4gRkhTIGNvbnRhaW5lci4KKyAgKGRlZmluZSBmaHMt c3ltbGlua3MKKyAgICBgKCgiL2xpYiIgLiAiL3Vzci9saWIiKQorICAgICAgLChpZiAodGFyZ2V0 LTY0Yml0PykKKyAgICAgICAgICAgJygiL2xpYiIgLiAiL2xpYjY0IikKKyAgICAgICAgICAgJygi L2xpYiIgLiAiL2xpYjMyIikpCisgICAgICAoIi9iaW4iIC4gIi91c3IvYmluIikKKyAgICAgICgi L3NiaW4iIC4gIi91c3Ivc2JpbiIpKSkKKworICA7OyBBIHByb2NlZHVyZSB0byBzeW1saW5rIHRo ZSBjb250ZW50cyAoYXQgdGhlIHRvcCBsZXZlbCkgb2YgYSBkaXJlY3RvcnksCisgIDs7IGV4Y2x1 ZGluZyB0aGUgZGlyZWN0b3J5IGl0c2VsZiBhbmQgcGFyZW50LCBhbG9uZyB3aXRoIGFueSBvdGhl cnMgcHJvdmlkZWQKKyAgOzsgaW4gRVhDTFVERS4KKyAgKGRlZmluZSogKGxpbmstY29udGVudHMg ZGlyICM6a2V5IChleGNsdWRlICcoKSkpCisgICAgKGZvci1lYWNoIChsYW1iZGEgKGZpbGUpCisg ICAgICAgICAgICAgICAgKHN5bWxpbmsgKHN0cmluZy1hcHBlbmQgcHJvZmlsZSBkaXIgIi8iIGZp bGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgZGlyICIvIiBmaWxl KSkpCisgICAgICAgICAgICAgIChzY2FuZGlyIChzdHJpbmctYXBwZW5kIHByb2ZpbGUgZGlyKQor ICAgICAgICAgICAgICAgICAgICAgICAobmVnYXRlIChjdXQgbWVtYmVyIDw+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIGV4Y2x1ZGUgJygiLiIgIi4uIiApKSkp KSkpCisKICAgKGRlZmluZSAoZXhpdC9zdGF0dXMqIHN0YXR1cykKICAgICAoZXhpdC9zdGF0dXMg KHZhbGlkYXRlLWV4aXQtc3RhdHVzIHByb2ZpbGUgY29tbWFuZCBzdGF0dXMpKSkKIApAQCAtNjgy LDYgKzcyNSwxMSBAQCAoZGVmaW5lKiAobGF1bmNoLWVudmlyb25tZW50L2NvbnRhaW5lciAjOmtl eSBjb21tYW5kIGJhc2ggdXNlciB1c2VyLW1hcHBpbmdzCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChmaWx0ZXItbWFwIG9wdGlvbmFsLW1hcHBpbmctPmZzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVuZXR3b3JrLWZpbGUt bWFwcGluZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBNYXBwaW5ncyBmb3IgYW4gRkhTIGNv bnRhaW5lci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZW11bGF0ZS1m aHM/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXItbWFwIG9w dGlvbmFsLW1hcHBpbmctPmZzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZocy1tYXBwaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXAgZmls ZS1zeXN0ZW0tbWFwcGluZy0+YmluZC1tb3VudAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWFwcGluZ3MpKSkpCiAgICAgICAgKGV4aXQvc3RhdHVzKgpAQCAtNzA5LDYg Kzc1Nyw1MyBAQCAoZGVmaW5lKiAobGF1bmNoLWVudmlyb25tZW50L2NvbnRhaW5lciAjOmtleSBj b21tYW5kIGJhc2ggdXNlciB1c2VyLW1hcHBpbmdzCiAgICAgICAgICAgICAobWtkaXItcCBob21l LWRpcikKICAgICAgICAgICAgIChzZXRlbnYgIkhPTUUiIGhvbWUtZGlyKQogCisgICAgICAgICAg ICA7OyBTZXQgdXAgYW4gRkhTIGNvbnRhaW5lci4KKyAgICAgICAgICAgICh3aGVuIGVtdWxhdGUt ZmhzPworICAgICAgICAgICAgICA7OyBUaGUgRkhTIGNvbnRhaW5lciBzZXRzIHVwIHRoZSBleHBl Y3RlZCBmaWxlc3lzdGVtIHRocm91Z2gKKyAgICAgICAgICAgICAgOzsgTUFQUElOR1MgYWJvdmUs IHRoZSBvcHRpb25hbCBzeW1saW5rcywgYW5kIGxpbmtpbmcgdGhlCisgICAgICAgICAgICAgIDs7 IGNvbnRlbnRzIG9mIHByb2ZpbGUvYmluIGFuZCBwcm9maWxlL2V0YywgYXMgdGhlc2UgYm90aCBo YXZlCisgICAgICAgICAgICAgIDs7IG9yIHdpbGwgaGF2ZSBjb250ZW50cyBmb3IgYSBub24tRkhT IGNvbnRhaW5lciBzbyBtdXN0IGJlCisgICAgICAgICAgICAgIDs7IGhhbmRsZWQgc2VwYXJhdGVs eS4KKyAgICAgICAgICAgICAgKG1rZGlyLXAgIi91c3IiKQorICAgICAgICAgICAgICAoZm9yLWVh Y2ggKGxhbWJkYSAobGluaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChmaWxlLWV4 aXN0cz8gKGNhciBsaW5rKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW1saW5r IChjYXIgbGluaykgKGNkciBsaW5rKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgZmhzLXN5 bWxpbmtzKQorICAgICAgICAgICAgICAobGluay1jb250ZW50cyAiL2JpbiIgIzpleGNsdWRlICco InNoIikpCisgICAgICAgICAgICAgIChta2Rpci1wICIvZXRjIikKKyAgICAgICAgICAgICAgKGxp bmstY29udGVudHMgIi9ldGMiKQorCisgICAgICAgICAgICAgIDs7IFByb3ZpZGUgYSBmcmVxdWVu dGx5IGV4cGVjdGVkICdjYycgc3ltbGluayB0byBnY2MgKGluIGNhc2UgaXQKKyAgICAgICAgICAg ICAgOzsgaXMgaW4gdGhlIGNvbnRhaW5lciksIHRob3VnaCB0aGlzIGNvdWxkIGFsc28gYmUgZG9u ZSBieSB0aGUKKyAgICAgICAgICAgICAgOzsgdXNlciBpbiB0aGUgY29udGFpbmVyLCBlLmcuIGlu ICRIT01FLy5sb2NhbC9iaW4gYW5kIGFkZGluZworICAgICAgICAgICAgICA7OyB0aGF0IHRvICRQ QVRILiAgTm90ZTogd2UgZG8gdGhpcyBpbiAvYmluIHNpbmNlIHRoYXQgYWxyZWFkeQorICAgICAg ICAgICAgICA7OyBoYXMgdGhlIHNoIHN5bWxpbmsgYW5kIHRoZSBvdGhlciAob3B0aW9uYWwpIEZI UyBiaW4KKyAgICAgICAgICAgICAgOzsgZGlyZWN0b3JpZXMgd2lsbCBsaW5rIHRvIC9iaW4uCisg ICAgICAgICAgICAgIChzeW1saW5rIChzdHJpbmctYXBwZW5kIHByb2ZpbGUgIi9iaW4vZ2NjIikg Ii9iaW4vY2MiKQorCisgICAgICAgICAgICAgIDs7IEd1aXgncyBsZGNvbmZpZyBkb2Vzbid0IHNl ZW0gdG8gc2VhcmNoIGluIEZIUyBkZWZhdWx0CisgICAgICAgICAgICAgIDs7IGxvY2F0aW9ucywg c28gcHJvdmlkZSBhIG1pbmltYWwgbGQuc28uY29uZi4KKyAgICAgICAgICAgICAgKGNhbGwtd2l0 aC1vdXRwdXQtZmlsZSAiL2V0Yy9sZC5zby5jb25mIgorICAgICAgICAgICAgICAgIChsYW1iZGEg KHBvcnQpCisgICAgICAgICAgICAgICAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZGlyZWN0b3J5KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXkgZGlyZWN0b3J5IHBvcnQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV3bGluZSBwb3J0KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA7OyAvbGliL25zcyBpcyBuZWVkZWQgYXMgR3VpeCdzIG5zcyBwdXRz IGxpYnJhcmllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHRoZXJlIHJhdGhlciB0 aGFuIGluIHRoZSBsaWIgZGlyZWN0b3J5LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICco Ii9saWIiICIvbGliL25zcyIpKSkpCisKKyAgICAgICAgICAgICAgOzsgRGVmaW5lIGFuIGVudHJ5 IHNjcmlwdCB0byBzdGFydCB0aGUgY29udGFpbmVyOiBnZW5lcmF0ZQorICAgICAgICAgICAgICA7 OyBsZC5zby5jYWNoZSwgc3VwcGxlbWVudCAkUEFUSCAob3B0aW9uYWwsIGJ1dCB0byBiZXR0ZXIg bWF0Y2gKKyAgICAgICAgICAgICAgOzsgRkhTIGV4cGVjdGF0aW9ucyksIGFuZCBpbmNsdWRlIENP TU1BTkQuCisgICAgICAgICAgICAgIChjYWxsLXdpdGgtb3V0cHV0LWZpbGUgIi90bXAvZmhzLnNo IgorICAgICAgICAgICAgICAgIChsYW1iZGEgKHBvcnQpCisgICAgICAgICAgICAgICAgICAoZGlz cGxheSAibGRjb25maWcgLVgiIHBvcnQpCisgICAgICAgICAgICAgICAgICAobmV3bGluZSBwb3J0 KQorICAgICAgICAgICAgICAgICAgKGRpc3BsYXkgImV4cG9ydCBQQVRIPS9iaW46L3Vzci9iaW46 L3NiaW46L3Vzci9zYmluOiRQQVRIIiBwb3J0KQorICAgICAgICAgICAgICAgICAgKG5ld2xpbmUg cG9ydCkKKyAgICAgICAgICAgICAgICAgIChkaXNwbGF5IChjYXIgY29tbWFuZCkgcG9ydCkKKyAg ICAgICAgICAgICAgICAgIChuZXdsaW5lIHBvcnQpKSkpCisKICAgICAgICAgICAgIDs7IElmIHJl cXVlc3RlZCwgbGluayAkR1VJWF9FTlZJUk9OTUVOVCB0byAkSE9NRS8uZ3VpeC1wcm9maWxlOwog ICAgICAgICAgICAgOzsgdGhpcyBhbGxvd3MgcHJvZ3JhbXMgZXhwZWN0aW5nIHRoYXQgcGF0aCB0 byBjb250aW51ZSB3b3JraW5nIGFzCiAgICAgICAgICAgICA7OyBleHBlY3RlZCB3aXRoaW4gYSBj b250YWluZXIuCkBAIC03NDYsNyArODQxLDEwIEBAIChkZWZpbmUqIChsYXVuY2gtZW52aXJvbm1l bnQvY29udGFpbmVyICM6a2V5IGNvbW1hbmQgYmFzaCB1c2VyIHVzZXItbWFwcGluZ3MKICAgICAg ICAgICAgIChwcmltaXRpdmUtZXhpdC9zdGF0dXMKICAgICAgICAgICAgICA7OyBBIGNvbnRhaW5l cidzIGVudmlyb25tZW50IGlzIGFscmVhZHkgcHVyaWZpZWQsIHNvIG5vIG5lZWQgdG8KICAgICAg ICAgICAgICA7OyByZXF1ZXN0IGl0IGJlIHB1cmlmaWVkIGFnYWluLgotICAgICAgICAgICAgIChs YXVuY2gtZW52aXJvbm1lbnQgY29tbWFuZAorICAgICAgICAgICAgIChsYXVuY2gtZW52aXJvbm1l bnQgKGlmIGVtdWxhdGUtZmhzPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IFVzZSB0aGUgRkhTIHN0YXJ0IHNjcmlwdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnKCIvYmluL3NoIiAiL3RtcC9maHMuc2giKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoaWYgbGluay1wcm9maWxlPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJpbmctYXBwZW5kIGhvbWUtZGlyICIvLmd1aXgtcHJvZmlsZSIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZSkKQEAgLTg3NCwxNiArOTcyLDE3IEBA IChkZWZpbmUgKGd1aXgtZW52aXJvbm1lbnQqIG9wdHMpCiAgICJSdW4gdGhlICdndWl4IGVudmly b25tZW50JyBjb21tYW5kIG9uIE9QVFMsIGFuIGFsaXN0IHJlc3VsdGluZyBmb3IKIGNvbW1hbmQt bGluZSBvcHRpb24gcHJvY2Vzc2luZyB3aXRoICdwYXJzZS1jb21tYW5kLWxpbmUnLiIKICAgKHdp dGgtZXJyb3ItaGFuZGxpbmcKLSAgICAobGV0KiAoKHB1cmU/ICAgICAgKGFzc29jLXJlZiBvcHRz ICdwdXJlKSkKLSAgICAgICAgICAgKGNvbnRhaW5lcj8gKGFzc29jLXJlZiBvcHRzICdjb250YWlu ZXI/KSkKLSAgICAgICAgICAgKGxpbmstcHJvZj8gKGFzc29jLXJlZiBvcHRzICdsaW5rLXByb2Zp bGU/KSkKLSAgICAgICAgICAgKG5ldHdvcms/ICAgKGFzc29jLXJlZiBvcHRzICduZXR3b3JrPykp Ci0gICAgICAgICAgIChuby1jd2Q/ICAgIChhc3NvYy1yZWYgb3B0cyAnbm8tY3dkPykpCi0gICAg ICAgICAgICh1c2VyICAgICAgIChhc3NvYy1yZWYgb3B0cyAndXNlcikpCi0gICAgICAgICAgIChi b290c3RyYXA/IChhc3NvYy1yZWYgb3B0cyAnYm9vdHN0cmFwPykpCi0gICAgICAgICAgIChzeXN0 ZW0gICAgIChhc3NvYy1yZWYgb3B0cyAnc3lzdGVtKSkKLSAgICAgICAgICAgKHByb2ZpbGUgICAg KGFzc29jLXJlZiBvcHRzICdwcm9maWxlKSkKLSAgICAgICAgICAgKGNvbW1hbmQgICAgKG9yIChh c3NvYy1yZWYgb3B0cyAnZXhlYykKKyAgICAobGV0KiAoKHB1cmU/ICAgICAgICAoYXNzb2MtcmVm IG9wdHMgJ3B1cmUpKQorICAgICAgICAgICAoY29udGFpbmVyPyAgIChhc3NvYy1yZWYgb3B0cyAn Y29udGFpbmVyPykpCisgICAgICAgICAgIChsaW5rLXByb2Y/ICAgKGFzc29jLXJlZiBvcHRzICds aW5rLXByb2ZpbGU/KSkKKyAgICAgICAgICAgKG5ldHdvcms/ICAgICAoYXNzb2MtcmVmIG9wdHMg J25ldHdvcms/KSkKKyAgICAgICAgICAgKG5vLWN3ZD8gICAgICAoYXNzb2MtcmVmIG9wdHMgJ25v LWN3ZD8pKQorICAgICAgICAgICAoZW11bGF0ZS1maHM/IChhc3NvYy1yZWYgb3B0cyAnZW11bGF0 ZS1maHM/KSkKKyAgICAgICAgICAgKHVzZXIgICAgICAgICAoYXNzb2MtcmVmIG9wdHMgJ3VzZXIp KQorICAgICAgICAgICAoYm9vdHN0cmFwPyAgIChhc3NvYy1yZWYgb3B0cyAnYm9vdHN0cmFwPykp CisgICAgICAgICAgIChzeXN0ZW0gICAgICAgKGFzc29jLXJlZiBvcHRzICdzeXN0ZW0pKQorICAg ICAgICAgICAocHJvZmlsZSAgICAgIChhc3NvYy1yZWYgb3B0cyAncHJvZmlsZSkpCisgICAgICAg ICAgIChjb21tYW5kICAob3IgKGFzc29jLXJlZiBvcHRzICdleGVjKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgOzsgU3Bhd24gYSBzaGVsbCBpZiB0aGUgdXNlciBkaWRuJ3Qgc3BlY2lmeQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYW55dGhpbmcgaW4gcGFydGljdWxhci4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBjb250YWluZXI/CkBAIC05MjIsMTIgKzEwMjEs MjQgQEAgKGRlZmluZSAoZ3VpeC1lbnZpcm9ubWVudCogb3B0cykKICAgICAgICAgKGxlYXZlIChH XyAiJy0tdXNlcicgY2Fubm90IGJlIHVzZWQgd2l0aG91dCAnLS1jb250YWluZXInfiUiKSkpCiAg ICAgICAod2hlbiAoYW5kIChub3QgY29udGFpbmVyPykgbm8tY3dkPykKICAgICAgICAgKGxlYXZl IChHXyAiLS1uby1jd2QgY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLWNvbnRhaW5lcn4lIikpKQor ICAgICAgKHdoZW4gKGFuZCAobm90IGNvbnRhaW5lcj8pIGVtdWxhdGUtZmhzPykKKyAgICAgICAg KGxlYXZlIChHXyAiJy0tZW11bGF0ZS1maHMnIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgJy0tY29u dGFpbmVyficlIikpKQogCiAKICAgICAgICh3aXRoLXN0b3JlL21heWJlIHN0b3JlCiAgICAgICAg ICh3aXRoLXN0YXR1cy12ZXJib3NpdHkgKGFzc29jLXJlZiBvcHRzICd2ZXJib3NpdHkpCiAgICAg ICAgICAgKGRlZmluZSBtYW5pZmVzdC1mcm9tLW9wdHMKLSAgICAgICAgICAgIChvcHRpb25zL3Jl c29sdmUtcGFja2FnZXMgc3RvcmUgb3B0cykpCisgICAgICAgICAgICAob3B0aW9ucy9yZXNvbHZl LXBhY2thZ2VzIHN0b3JlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7 IEZvciBhbiBGSFMtY29udGFpbmVyLCBhZGQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IChoaWRkZW4pIHBhY2thZ2UgZ2xpYmMtZm9yLWZocyB3aGljaAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB1c2VzIHRoZSBnbG9iYWwgY2Fj aGUgYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgL2V0Yy9sZC5z by5jYWNoZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGVtdWxh dGUtZmhzPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0 LWNvbnMgJ2V4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICcoYWQtaG9jLXBhY2thZ2UKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihAQCAoZ251IHBhY2thZ2VzIGJhc2Up IGdsaWJjLWZvci1maHMpIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9wdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvcHRzKSkpCiAKICAgICAgICAgICAoZGVmaW5lIG1hbmlmZXN0CiAgICAgICAgICAg ICAoaWYgcHJvZmlsZQpAQCAtMTAwMSw3ICsxMTEyLDggQEAgKGRlZmluZSAoZ3VpeC1lbnZpcm9u bWVudCogb3B0cykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjOndoaXRlLWxpc3Qgd2hpdGUtbGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bGluay1wcm9maWxlPyBsaW5rLXByb2Y/CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpuZXR3 b3JrPyBuZXR3b3JrPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICM6bWFwLWN3ZD8gKG5vdCBuby1jd2Q/KSkpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bWFwLWN3ZD8gKG5vdCBuby1jd2Q/ KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6 ZW11bGF0ZS1maHM/IGVtdWxhdGUtZmhzPykpKQogCiAgICAgICAgICAgICAgICAgICAgKGVsc2UK ICAgICAgICAgICAgICAgICAgICAgKHJldHVybgotLSAKMi4zNy4wCgo= --b1_GE6d7q9lONcA9inxhxlen4Tt56kMTDI1jSIduIl5I-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 02 10:27:32 2022 Received: (at 56677) by debbugs.gnu.org; 2 Aug 2022 14:27:32 +0000 Received: from localhost ([127.0.0.1]:44657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIsrr-00082y-2L for submit@debbugs.gnu.org; Tue, 02 Aug 2022 10:27:32 -0400 Received: from mail-40134.protonmail.ch ([185.70.40.134]:30637) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIsrn-00082g-T8 for 56677@debbugs.gnu.org; Tue, 02 Aug 2022 10:27:29 -0400 Date: Tue, 02 Aug 2022 14:27:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1659450440; x=1659709640; bh=3xNdoSM0kh5HCzfBV9xhpTf7OAn599aNyrTsZFGPTWY=; h=Date:To:From:Reply-To:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID; b=T3jiiJieU7swrDB2gMWr1TnXpD4WmulHXucQdbYrorwXxeX8leM6AYvQ7sPDwr1zD fRvYWSwGHGXxHjL7gZoGw8sVD0RksdsEqn6KUE2Dk4j8yD8VYyWHpvNAOfQ0+nQ9oh l//P3/dOyDQsM4FCodpA4qo/mkPSZy5/w4fW0e31nhgjf6KOEpZMrkKcnI2Sx7JYex +esSXJVVMCllhMOzcdAkzNp1Q2zJJus5MdiTqoydTnHcFyWc318v+blY8rNdLP+Ejq bCwyvQSvtDa7FpZryLY4yXakjwSYxU5gusyoyFQC8TYKfBAs7aYUL6yZ4YA+PqOHJ0 MnrPqOgBpwbtw== To: "56677@debbugs.gnu.org" <56677@debbugs.gnu.org> From: John Kehayias Subject: Re: [PATCH 2/2 v2] environment: Add '--emulate-fhs'. Message-ID: In-Reply-To: References: Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_16tXAdEOpSButhfnFxG5bCp6iqfklSwfnzB6bmZPk" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56677 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: John Kehayias Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_16tXAdEOpSButhfnFxG5bCp6iqfklSwfnzB6bmZPk Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Here is a tiny update to this patch; I noticed after I sent it originally t= hat there was a formatting typo in the guix.texi changes. Update attached. Has anyone had a chance to try out the patch or take a look at it? I do use this in some daily work, for a project that uses Python's poetry s= hell and the Playwright libraries (uses browser binaries it downloads to do= web automation). Here is the command I use, where since I need to use brow= sers in the container just getting the development inputs for ungoogled-chr= omium is a nice shortcut. The share/expose is to get all graphical/hardware= acceleration working. ~/path/to/guix-source/pre-inst-env guix shell -C -F -N poetry coreutils gcc= :lib -D ungoogled-chromium --share=3D$HOME/temphome=3D$HOME --preserve=3D'^= DISPLAY$' --preserve=3D'^XAUTHORITY$' --share=3D$XAUTHORITY -- "poetry shel= l" All works great and is very handy for doing this on my Guix machine. --b1_16tXAdEOpSButhfnFxG5bCp6iqfklSwfnzB6bmZPk Content-Type: text/x-patch; name=0002-environment-Add-emulate-fhs.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-environment-Add-emulate-fhs.patch RnJvbSA2YjVlMzkzMWJiODNkNTg5ZmY0NzI2M2NjM2JmZDVlYjIzNmEzOTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIEtlaGF5aWFzIDxqb2huLmtlaGF5aWFzQHByb3Rvbm1h aWwuY29tPgpEYXRlOiBXZWQsIDIwIEp1bCAyMDIyIDIzOjQ2OjQ1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSF0gZW52aXJvbm1lbnQ6IEFkZCAnLS1lbXVsYXRlLWZocycuCgoqIGd1aXgvc2NyaXB0cy9l bnZpcm9ubWVudC5zY20gKHNob3ctZW52aXJvbm1lbnQtb3B0aW9ucy1oZWxwKQooJW9wdGlvbnMp OiBBZGQgJy0tZW11bGF0ZS1maHMnLgoqIGd1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5zY20gKGxh dW5jaC1lbnZpcm9ubWVudC9jb250YWluZXIpOiBBZGQKJ2VtdWxhdGUtZmhzPycgIGtleSBhbmQg aW1wbGVtZW50IGl0LiAgRGVmaW5lIGFuZCB1c2UgRkhTLU1BUFBJTkdTLApGSFMtU1lNTElOS1Ms IGFuZCBMSU5LLUNPTlRFTlRTIHRvIHNldCB1cCB0aGUgY29udGFpbmVyIHRvIGZvbGxvdyB0aGUK RmlsZXN5c3RlbSBIaWVyYXJjaHkgU3RhbmRhcmQgKEZIUykgZm9yIC9iaW4sIC9ldGMsIGFuZCAv dXNyLiAgR2VuZXJhdGUKL2V0Yy9sZC5zby5jYWNoZSBpbiB0aGUgY29udGFpbmVyIGZyb20gL2V0 Yy9sZC5zby5jb25mIGJ5IHJ1bm5pbmcgdGhlIHNjcmlwdAovdG1wL2Zocy5zaCB0byBsYXVuY2gg dGhlIGNvbnRhaW5lci4KKGd1aXgtZW52aXJvbm1lbnQqKTogQWRkIGdsaWJjLWZvci1maHMgdG8g dGhlIGNvbnRhaW5lciBwYWNrYWdlcyB3aGVuCidlbXVsYXRlLWZocz8nIGtleSBpcyBpbiBPUFRT LgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nIGd1aXggc2hlbGwpOiBEb2N1bWVudCAnLS1lbXVs YXRlLWZocycuCihJbnZva2luZyBndWl4IGVudmlyb25tZW50KTogRG9jdW1lbnQgJy0tZW11bGF0 ZS1maHMnLgotLS0KIGRvYy9ndWl4LnRleGkgICAgICAgICAgICAgICAgfCAgMzMgKysrKysrKysK IGd1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5zY20gfCAxNTcgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDIyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmlu ZGV4IDNjNTg2NGVjMWEuLjAzYTY1ZjI2ZjQgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysr IGIvZG9jL2d1aXgudGV4aQpAQCAtMTA2LDYgKzEwNiw3IEBACiBDb3B5cmlnaHQgQGNvcHlyaWdo dHt9IDIwMjIgS2FybCBIYWxsc2J5QCoKIENvcHlyaWdodCBAY29weXJpZ2h0e30gMjAyMiBKdXN0 aW4gVmVpbGxldXhAKgogQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAyMDIyIFJlaWx5IFNpZWdlbEAq CitDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMjIgSm9obiBLZWhheWlhc0AqCiAKIFBlcm1pc3Np b24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1 bWVudAogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vu c2UsIFZlcnNpb24gMS4zIG9yCkBAIC02MTU1LDYgKzYxNTYsMjIgQEAgSW52b2tpbmcgZ3VpeCBz aGVsbAogZ3VpeCBzaGVsbCAtLWNvbnRhaW5lciAtLWV4cG9zZT0kSE9NRT0vZXhjaGFuZ2UgZ3Vp bGUgLS0gZ3VpbGUKIEBlbmQgZXhhbXBsZQogCitAaXRlbSAtLWVtdWxhdGUtZmhzCitAaXRlbSAt RgorRm9yIGNvbnRhaW5lcnMsIGVtdWxhdGUgYSBGaWxlc3lzdGVtIEhpZXJhcmNoeSBTdGFuZGFy ZCAoRkhTKQorY29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIGNvbnRhaW5lciwgc2VlCitAdXJlZnto dHRwczovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5vcmcvZmhzLnNodG1sLCB0aGUgb2ZmaWNp YWwKK3NwZWNpZmljYXRpb259LiAgQXMgR3VpeCBkZXZpYXRlcyBmcm9tIHRoZSBGSFMgc3BlY2lm aWNhdGlvbiwgdGhpcworb3B0aW9uIHNldHMgdXAgdGhlIGNvbnRhaW5lciB0byBtb3JlIGNsb3Nl bHkgbWltaWMgdGhhdCBvZiBvdGhlcgorR05VL0xpbnV4IGRpc3RyaWJ1dGlvbnMuICBUaGlzIGlz IHVzZWZ1bCBmb3IgcmVwcm9kdWNpbmcgb3RoZXIKK2RldmVsb3BtZW50IGVudmlyb25tZW50cywg dGVzdGluZywgYW5kIHVzaW5nIHByb2dyYW1zIHdoaWNoIGV4cGVjdCB0aGUKK0ZIUyBzcGVjaWZp Y2F0aW9uIHRvIGJlIGZvbGxvd2VkLiAgV2l0aCB0aGlzIG9wdGlvbiwgdGhlIGNvbnRhaW5lciB3 aWxsCitpbmNsdWRlIGEgdmVyc2lvbiBvZiBAY29kZXtnbGliY30gd2hpY2ggd2lsbCByZWFkCitA Y29kZXsvZXRjL2xkLnNvLmNhY2hlfSB3aXRoaW4gdGhlIGNvbnRhaW5lciBmb3IgdGhlIHNoYXJl ZCBsaWJyYXJ5CitjYWNoZSAoY29udHJhcnkgdG8gQGNvZGV7Z2xpYmN9IGluIHJlZ3VsYXIgR3Vp eCB1c2FnZSkgYW5kIHNldCB1cCB0aGUKK2V4cGVjdGVkIEZIUyBkaXJlY3RvcmllczogQGNvZGV7 L2Jpbn0sIEBjb2Rley9ldGN9LCBAY29kZXsvbGlifSwgYW5kCitAY29kZXsvdXNyfSBmcm9tIHRo ZSBjb250YWluZXIncyBwcm9maWxlLgorCiBAaXRlbSAtLXJlYnVpbGQtY2FjaGUKIEBjaW5kZXgg Y2FjaGluZywgb2YgcHJvZmlsZXMKIEBjaW5kZXggY2FjaGluZywgaW4gQGNvbW1hbmR7Z3VpeCBz aGVsbH0KQEAgLTY1NzIsNiArNjU4OSwyMiBAQCBJbnZva2luZyBndWl4IGVudmlyb25tZW50CiBn dWl4IGVudmlyb25tZW50IC0tY29udGFpbmVyIC0tZXhwb3NlPSRIT01FPS9leGNoYW5nZSAtLWFk LWhvYyBndWlsZSAtLSBndWlsZQogQGVuZCBleGFtcGxlCiAKK0BpdGVtIC0tZW11bGF0ZS1maHMK K0BpdGVtIC1GCitGb3IgY29udGFpbmVycywgZW11bGF0ZSBhIEZpbGVzeXN0ZW0gSGllcmFyY2h5 IFN0YW5kYXJkIChGSFMpCitjb25maWd1cmF0aW9uIHdpdGhpbiB0aGUgY29udGFpbmVyLCBzZWUK K0B1cmVme2h0dHBzOi8vcmVmc3BlY3MubGludXhmb3VuZGF0aW9uLm9yZy9maHMuc2h0bWwsIHRo ZSBvZmZpY2lhbAorc3BlY2lmaWNhdGlvbn0uICBBcyBHdWl4IGRldmlhdGVzIGZyb20gdGhlIEZI UyBzcGVjaWZpY2F0aW9uLCB0aGlzCitvcHRpb24gc2V0cyB1cCB0aGUgY29udGFpbmVyIHRvIG1v cmUgY2xvc2VseSBtaW1pYyB0aGF0IG9mIG90aGVyCitHTlUvTGludXggZGlzdHJpYnV0aW9ucy4g IFRoaXMgaXMgdXNlZnVsIGZvciByZXByb2R1Y2luZyBvdGhlcgorZGV2ZWxvcG1lbnQgZW52aXJv bm1lbnRzLCB0ZXN0aW5nLCBhbmQgdXNpbmcgcHJvZ3JhbXMgd2hpY2ggZXhwZWN0IHRoZQorRkhT IHNwZWNpZmljYXRpb24gdG8gYmUgZm9sbG93ZWQuICBXaXRoIHRoaXMgb3B0aW9uLCB0aGUgY29u dGFpbmVyIHdpbGwKK2luY2x1ZGUgYSB2ZXJzaW9uIG9mIEBjb2Rle2dsaWJjfSB3aGljaCB3aWxs IHJlYWQKK0Bjb2Rley9ldGMvbGQuc28uY2FjaGV9IHdpdGhpbiB0aGUgY29udGFpbmVyIGZvciB0 aGUgc2hhcmVkIGxpYnJhcnkKK2NhY2hlIChjb250cmFyeSB0byBAY29kZXtnbGliY30gaW4gcmVn dWxhciBHdWl4IHVzYWdlKSBhbmQgc2V0IHVwIHRoZQorZXhwZWN0ZWQgRkhTIGRpcmVjdG9yaWVz OiBAY29kZXsvYmlufSwgQGNvZGV7L2V0Y30sIEBjb2Rley9saWJ9LCBhbmQKK0Bjb2Rley91c3J9 IGZyb20gdGhlIGNvbnRhaW5lcidzIHByb2ZpbGUuCisKIEBlbmQgdGFibGUKIAogQGNvbW1hbmR7 Z3VpeCBlbnZpcm9ubWVudH0KZGlmZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5z Y20gYi9ndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2NtCmluZGV4IDMyMTYyMzU5MzcuLmM4MGY1 ZjI4YWYgMTAwNjQ0Ci0tLSBhL2d1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5zY20KKysrIGIvZ3Vp eC9zY3JpcHRzL2Vudmlyb25tZW50LnNjbQpAQCAtMiw2ICsyLDcgQEAKIDs7OyBDb3B5cmlnaHQg wqkgMjAxNCwgMjAxNSwgMjAxOCBEYXZpZCBUaG9tcHNvbiA8ZGF2ZXRAZ251Lm9yZz4KIDs7OyBD b3B5cmlnaHQgwqkgMjAxNS0yMDIyIEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9yZz4KIDs7 OyBDb3B5cmlnaHQgwqkgMjAxOCBNaWtlIEdlcndpdHogPG10Z0BnbnUub3JnPgorOzs7IENvcHly aWdodCDCqSAyMDIyIEpvaG4gS2VoYXlpYXMgPGpvaG4ua2VoYXlpYXNAcHJvdG9ubWFpbC5jb20+ CiA7OzsKIDs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KIDs7OwpAQCAtMTIwLDYg KzEyMSw5IEBAIChkZWZpbmUgKHNob3ctZW52aXJvbm1lbnQtb3B0aW9ucy1oZWxwKQogICAgICAg LS1leHBvc2U9U1BFQyAgICAgIGZvciBjb250YWluZXJzLCBleHBvc2UgcmVhZC1vbmx5IGhvc3Qg ZmlsZSBzeXN0ZW0KICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvcmRpbmcgdG8gU1BFQyIp KQogICAoZGlzcGxheSAoR18gIgorICAtRiwgLS1lbXVsYXRlLWZocyAgICAgIGZvciBjb250YWlu ZXJzLCBlbXVsYXRlIHRoZSBGaWxlc3lzdGVtIEhpZXJhcmNoeQorICAgICAgICAgICAgICAgICAg ICAgICAgIFN0YW5kYXJkIChGSFMpIikpCisgIChkaXNwbGF5IChHXyAiCiAgIC12LCAtLXZlcmJv c2l0eT1MRVZFTCAgdXNlIHRoZSBnaXZlbiB2ZXJib3NpdHkgTEVWRUwiKSkKICAgKGRpc3BsYXkg KEdfICIKICAgICAgIC0tYm9vdHN0cmFwICAgICAgICB1c2UgYm9vdHN0cmFwIGJpbmFyaWVzIHRv IGJ1aWxkIHRoZSBlbnZpcm9ubWVudCIpKSkKQEAgLTI1Niw2ICsyNjAsOSBAQCAoZGVmaW5lICVv cHRpb25zCiAgICAgICAgICAgICAgICAgICAgKGFsaXN0LWNvbnMgJ2ZpbGUtc3lzdGVtLW1hcHBp bmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3BlY2lmaWNhdGlvbi0+ZmlsZS1z eXN0ZW0tbWFwcGluZyBhcmcgI2YpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz dWx0KSkpCisgICAgICAgICAob3B0aW9uICcoI1xGICJlbXVsYXRlLWZocyIpICNmICNmCisgICAg ICAgICAgICAgICAgIChsYW1iZGEgKG9wdCBuYW1lIGFyZyByZXN1bHQpCisgICAgICAgICAgICAg ICAgICAgKGFsaXN0LWNvbnMgJ2VtdWxhdGUtZmhzPyAjdCByZXN1bHQpKSkKICAgICAgICAgIChv cHRpb24gJygjXHIgInJvb3QiKSAjdCAjZgogICAgICAgICAgICAgICAgICAobGFtYmRhIChvcHQg bmFtZSBhcmcgcmVzdWx0KQogICAgICAgICAgICAgICAgICAgIChhbGlzdC1jb25zICdnYy1yb290 IGFyZyByZXN1bHQpKSkKQEAgLTYwOCwxNiArNjE1LDE4IEBAIChkZWZpbmUqIChsYXVuY2gtZW52 aXJvbm1lbnQvZm9yayBjb21tYW5kIHByb2ZpbGUgbWFuaWZlc3QKIAogKGRlZmluZSogKGxhdW5j aC1lbnZpcm9ubWVudC9jb250YWluZXIgIzprZXkgY29tbWFuZCBiYXNoIHVzZXIgdXNlci1tYXBw aW5ncwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZSBtYW5p ZmVzdCBsaW5rLXByb2ZpbGU/IG5ldHdvcms/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYXAtY3dkPyAod2hpdGUtbGlzdCAnKCkpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWFwLWN3ZD8gZW11bGF0ZS1maHM/ICh3aGl0ZS1saXN0ICco KSkpCiAgICJSdW4gQ09NTUFORCB3aXRoaW4gYSBjb250YWluZXIgdGhhdCBmZWF0dXJlcyB0aGUg c29mdHdhcmUgaW4gUFJPRklMRS4KLUVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0IGFjY29y ZGluZyB0byB0aGUgc2VhcmNoIHBhdGhzIG9mIE1BTklGRVNULgotVGhlIGdsb2JhbCBzaGVsbCBp cyBCQVNILCBhIGZpbGUgbmFtZSBmb3IgYSBHTlUgQmFzaCBiaW5hcnkgaW4gdGhlCi1zdG9yZS4g IFdoZW4gTkVUV09SSz8sIGFjY2VzcyB0byB0aGUgaG9zdCBzeXN0ZW0gbmV0d29yayBpcyBwZXJt aXR0ZWQuCi1VU0VSLU1BUFBJTkdTLCBhIGxpc3Qgb2YgZmlsZSBzeXN0ZW0gbWFwcGluZ3MsIGNv bnRhaW5zIHRoZSB1c2VyLXNwZWNpZmllZAotaG9zdCBmaWxlIHN5c3RlbXMgdG8gbW91bnQgaW5z aWRlIHRoZSBjb250YWluZXIuICBJZiBVU0VSIGlzIG5vdCAjZiwgZWFjaAotdGFyZ2V0IG9mIFVT RVItTUFQUElOR1Mgd2lsbCBiZSByZS13cml0dGVuIHJlbGF0aXZlIHRvICcvaG9tZS9VU0VSJywg YW5kIFVTRVIKLXdpbGwgYmUgdXNlZCBmb3IgdGhlIHBhc3N3ZCBlbnRyeS4gIExJTkstUFJPRklM RT8gY3JlYXRlcyBhIHN5bWJvbGljIGxpbmsgZnJvbQotfi8uZ3VpeC1wcm9maWxlIHRvIHRoZSBl bnZpcm9ubWVudCBwcm9maWxlLgorRW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBzZXQgYWNjb3Jk aW5nIHRvIHRoZSBzZWFyY2ggcGF0aHMgb2YgTUFOSUZFU1QuICBUaGUKK2dsb2JhbCBzaGVsbCBp cyBCQVNILCBhIGZpbGUgbmFtZSBmb3IgYSBHTlUgQmFzaCBiaW5hcnkgaW4gdGhlIHN0b3JlLiAg V2hlbgorTkVUV09SSz8sIGFjY2VzcyB0byB0aGUgaG9zdCBzeXN0ZW0gbmV0d29yayBpcyBwZXJt aXR0ZWQuICBVU0VSLU1BUFBJTkdTLCBhCitsaXN0IG9mIGZpbGUgc3lzdGVtIG1hcHBpbmdzLCBj b250YWlucyB0aGUgdXNlci1zcGVjaWZpZWQgaG9zdCBmaWxlIHN5c3RlbXMgdG8KK21vdW50IGlu c2lkZSB0aGUgY29udGFpbmVyLiAgSWYgVVNFUiBpcyBub3QgI2YsIGVhY2ggdGFyZ2V0IG9mIFVT RVItTUFQUElOR1MKK3dpbGwgYmUgcmUtd3JpdHRlbiByZWxhdGl2ZSB0byAnL2hvbWUvVVNFUics IGFuZCBVU0VSIHdpbGwgYmUgdXNlZCBmb3IgdGhlCitwYXNzd2QgZW50cnkuICBXaGVuIEVNVUxB VEUtRkhTPywgc2V0IHVwIHRoZSBjb250YWluZXIgdG8gZm9sbG93IHRoZQorRmlsZXN5c3RlbSBI aWVyYXJjaHkgU3RhbmRhcmQgYW5kIHByb3ZpZGUgYSBnbGliYyB0aGF0IHJlYWRzIHRoZSBjYWNo ZSBmcm9tCisvZXRjL2xkLnNvLmNhY2hlLiAgTElOSy1QUk9GSUxFPyBjcmVhdGVzIGEgc3ltYm9s aWMgbGluayBmcm9tIH4vLmd1aXgtcHJvZmlsZQordG8gdGhlIGVudmlyb25tZW50IHByb2ZpbGUu CiAKIFByZXNlcnZlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aG9zZSBuYW1lIG1hdGNoZXMgdGhl IG9uZSBvZiB0aGUgcmVnZXhwcyBpbgogV0hJTEUtTElTVC4iCkBAIC02MjUsNiArNjM0LDQwIEBA IChkZWZpbmUqIChsYXVuY2gtZW52aXJvbm1lbnQvY29udGFpbmVyICM6a2V5IGNvbW1hbmQgYmFz aCB1c2VyIHVzZXItbWFwcGluZ3MKICAgICAoYW5kIChmaWxlLWV4aXN0cz8gKGZpbGUtc3lzdGVt LW1hcHBpbmctc291cmNlIG1hcHBpbmcpKQogICAgICAgICAgKGZpbGUtc3lzdGVtLW1hcHBpbmct PmJpbmQtbW91bnQgbWFwcGluZykpKQogCisgIDs7IEZpbGUgc3lzdGVtIG1hcHBpbmdzIGZvciBh biBGSFMgY29udGFpbmVyLCB3aGVyZSB0aGUgZW50aXJlIGRpcmVjdG9yeSBjYW4KKyAgOzsgYmUg bWFwcGVkLiAgT3RoZXJzIChiaW4gYW5kIGV0Yykgd2lsbCBhbHJlYWR5IGhhdmUgY29udGVudHMg YW5kIG5lZWQgdG8KKyAgOzsgdXNlIExJTkstQ09OVEVOVFMgdG8gc3ltbGluayB0aGUgZGlyZWN0 b3J5IGNvbnRlbnRzLgorICAoZGVmaW5lIGZocy1tYXBwaW5ncworICAgIChtYXAgKGxhbWJkYSAo bWFwcGluZykKKyAgICAgICAgICAgKGZpbGUtc3lzdGVtLW1hcHBpbmcKKyAgICAgICAgICAgIChz b3VyY2UgKHN0cmluZy1hcHBlbmQgcHJvZmlsZSAoY2FyIG1hcHBpbmcpKSkKKyAgICAgICAgICAg ICh0YXJnZXQgKGNkciBtYXBwaW5nKSkpKQorICAgICAgICAgJygoIi9saWIiICAgICAuICIvbGli IikKKyAgICAgICAgICAgKCIvaW5jbHVkZSIgLiAiL3Vzci9pbmNsdWRlIikKKyAgICAgICAgICAg KCIvc2JpbiIgICAgLiAiL3NiaW4iKQorICAgICAgICAgICAoIi9saWJleGVjIiAuICIvdXNyL2xp YmV4ZWMiKQorICAgICAgICAgICAoIi9zaGFyZSIgICAuICIvdXNyL3NoYXJlIikpKSkKKworICA7 OyBBZGRpdGlvbmFsIHN5bWxpbmtzIGZvciBhbiBGSFMgY29udGFpbmVyLgorICAoZGVmaW5lIGZo cy1zeW1saW5rcworICAgIGAoKCIvbGliIiAuICIvdXNyL2xpYiIpCisgICAgICAsKGlmICh0YXJn ZXQtNjRiaXQ/KQorICAgICAgICAgICAnKCIvbGliIiAuICIvbGliNjQiKQorICAgICAgICAgICAn KCIvbGliIiAuICIvbGliMzIiKSkKKyAgICAgICgiL2JpbiIgLiAiL3Vzci9iaW4iKQorICAgICAg KCIvc2JpbiIgLiAiL3Vzci9zYmluIikpKQorCisgIDs7IEEgcHJvY2VkdXJlIHRvIHN5bWxpbmsg dGhlIGNvbnRlbnRzIChhdCB0aGUgdG9wIGxldmVsKSBvZiBhIGRpcmVjdG9yeSwKKyAgOzsgZXhj bHVkaW5nIHRoZSBkaXJlY3RvcnkgaXRzZWxmIGFuZCBwYXJlbnQsIGFsb25nIHdpdGggYW55IG90 aGVycyBwcm92aWRlZAorICA7OyBpbiBFWENMVURFLgorICAoZGVmaW5lKiAobGluay1jb250ZW50 cyBkaXIgIzprZXkgKGV4Y2x1ZGUgJygpKSkKKyAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZmlsZSkK KyAgICAgICAgICAgICAgICAoc3ltbGluayAoc3RyaW5nLWFwcGVuZCBwcm9maWxlIGRpciAiLyIg ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBkaXIgIi8iIGZp bGUpKSkKKyAgICAgICAgICAgICAgKHNjYW5kaXIgKHN0cmluZy1hcHBlbmQgcHJvZmlsZSBkaXIp CisgICAgICAgICAgICAgICAgICAgICAgIChuZWdhdGUgKGN1dCBtZW1iZXIgPD4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgZXhjbHVkZSAnKCIuIiAiLi4iICkp KSkpKSkKKwogICAoZGVmaW5lIChleGl0L3N0YXR1cyogc3RhdHVzKQogICAgIChleGl0L3N0YXR1 cyAodmFsaWRhdGUtZXhpdC1zdGF0dXMgcHJvZmlsZSBjb21tYW5kIHN0YXR1cykpKQogCkBAIC02 ODIsNiArNzI1LDExIEBAIChkZWZpbmUqIChsYXVuY2gtZW52aXJvbm1lbnQvY29udGFpbmVyICM6 a2V5IGNvbW1hbmQgYmFzaCB1c2VyIHVzZXItbWFwcGluZ3MKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGZpbHRlci1tYXAgb3B0aW9uYWwtbWFwcGluZy0+ZnMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJW5ldHdvcmstZmls ZS1tYXBwaW5ncykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE1hcHBpbmdzIGZvciBhbiBGSFMg Y29udGFpbmVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBlbXVsYXRl LWZocz8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlci1tYXAg b3B0aW9uYWwtbWFwcGluZy0+ZnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmhzLW1hcHBpbmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcCBm aWxlLXN5c3RlbS1tYXBwaW5nLT5iaW5kLW1vdW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtYXBwaW5ncykpKSkKICAgICAgICAoZXhpdC9zdGF0dXMqCkBAIC03MDks NiArNzU3LDU0IEBAIChkZWZpbmUqIChsYXVuY2gtZW52aXJvbm1lbnQvY29udGFpbmVyICM6a2V5 IGNvbW1hbmQgYmFzaCB1c2VyIHVzZXItbWFwcGluZ3MKICAgICAgICAgICAgIChta2Rpci1wIGhv bWUtZGlyKQogICAgICAgICAgICAgKHNldGVudiAiSE9NRSIgaG9tZS1kaXIpCiAKKyAgICAgICAg ICAgIDs7IFNldCB1cCBhbiBGSFMgY29udGFpbmVyLgorICAgICAgICAgICAgKHdoZW4gZW11bGF0 ZS1maHM/CisgICAgICAgICAgICAgIDs7IFRoZSBGSFMgY29udGFpbmVyIHNldHMgdXAgdGhlIGV4 cGVjdGVkIGZpbGVzeXN0ZW0gdGhyb3VnaAorICAgICAgICAgICAgICA7OyBNQVBQSU5HUyB3aXRo IEZIUy1NQVBQSU5HUyBhYm92ZSwgdGhlIHN5bWxpbmtzIHRocm91Z2gKKyAgICAgICAgICAgICAg OzsgRkhTLVNZTUxJTktTLCBhbmQgbGlua2luZyB0aGUgY29udGVudHMgb2YgcHJvZmlsZS9iaW4g YW5kCisgICAgICAgICAgICAgIDs7IHByb2ZpbGUvZXRjIHVzaW5nIExJTkstQ09OVEVOVFMsIGFz IHRoZXNlIGJvdGggaGF2ZSBvciB3aWxsCisgICAgICAgICAgICAgIDs7IGhhdmUgY29udGVudHMg Zm9yIGEgbm9uLUZIUyBjb250YWluZXIgc28gbXVzdCBiZSBoYW5kbGVkCisgICAgICAgICAgICAg IDs7IHNlcGFyYXRlbHkuCisgICAgICAgICAgICAgIChta2Rpci1wICIvdXNyIikKKyAgICAgICAg ICAgICAgKGZvci1lYWNoIChsYW1iZGEgKGxpbmspCisgICAgICAgICAgICAgICAgICAgICAgICAg IChpZiAoZmlsZS1leGlzdHM/IChjYXIgbGluaykpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3ltbGluayAoY2FyIGxpbmspIChjZHIgbGluaykpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGZocy1zeW1saW5rcykKKyAgICAgICAgICAgICAgKGxpbmstY29udGVudHMgIi9iaW4i ICM6ZXhjbHVkZSAnKCJzaCIpKQorICAgICAgICAgICAgICAobWtkaXItcCAiL2V0YyIpCisgICAg ICAgICAgICAgIChsaW5rLWNvbnRlbnRzICIvZXRjIikKKworICAgICAgICAgICAgICA7OyBQcm92 aWRlIGEgZnJlcXVlbnRseSBleHBlY3RlZCAnY2MnIHN5bWxpbmsgdG8gZ2NjIChpbiBjYXNlIGl0 CisgICAgICAgICAgICAgIDs7IGlzIGluIHRoZSBjb250YWluZXIpLCB0aG91Z2ggdGhpcyBjb3Vs ZCBhbHNvIGJlIGRvbmUgYnkgdGhlCisgICAgICAgICAgICAgIDs7IHVzZXIgaW4gdGhlIGNvbnRh aW5lciwgZS5nLiBpbiAkSE9NRS8ubG9jYWwvYmluIGFuZCBhZGRpbmcKKyAgICAgICAgICAgICAg OzsgdGhhdCB0byAkUEFUSC4gIE5vdGU6IHdlIGRvIHRoaXMgaW4gL2JpbiBzaW5jZSB0aGF0IGFs cmVhZHkKKyAgICAgICAgICAgICAgOzsgaGFzIHRoZSBzaCBzeW1saW5rIGFuZCB0aGUgb3RoZXIg KG9wdGlvbmFsKSBGSFMgYmluCisgICAgICAgICAgICAgIDs7IGRpcmVjdG9yaWVzIHdpbGwgbGlu ayB0byAvYmluLgorICAgICAgICAgICAgICAoc3ltbGluayAoc3RyaW5nLWFwcGVuZCBwcm9maWxl ICIvYmluL2djYyIpICIvYmluL2NjIikKKworICAgICAgICAgICAgICA7OyBHdWl4J3MgbGRjb25m aWcgZG9lc24ndCBzZWVtIHRvIHNlYXJjaCBpbiBGSFMgZGVmYXVsdAorICAgICAgICAgICAgICA7 OyBsb2NhdGlvbnMsIHNvIHByb3ZpZGUgYSBtaW5pbWFsIGxkLnNvLmNvbmYuCisgICAgICAgICAg ICAgIChjYWxsLXdpdGgtb3V0cHV0LWZpbGUgIi9ldGMvbGQuc28uY29uZiIKKyAgICAgICAgICAg ICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEg KGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5IGRpcmVj dG9yeSBwb3J0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5ld2xpbmUgcG9ydCkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgL2xpYi9uc3MgaXMgbmVlZGVkIGFzIEd1 aXgncyBuc3MgcHV0cyBsaWJyYXJpZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0 aGVyZSByYXRoZXIgdGhhbiBpbiB0aGUgbGliIGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnKCIvbGliIiAiL2xpYi9uc3MiKSkpKQorCisgICAgICAgICAgICAgIDs7IERl ZmluZSBhbiBlbnRyeSBzY3JpcHQgdG8gc3RhcnQgdGhlIGNvbnRhaW5lcjogZ2VuZXJhdGUKKyAg ICAgICAgICAgICAgOzsgbGQuc28uY2FjaGUsIHN1cHBsZW1lbnQgJFBBVEggKG9wdGlvbmFsLCBi dXQgdG8gYmV0dGVyIG1hdGNoCisgICAgICAgICAgICAgIDs7IEZIUyBleHBlY3RhdGlvbnMpLCBh bmQgaW5jbHVkZSBDT01NQU5ELgorICAgICAgICAgICAgICAoY2FsbC13aXRoLW91dHB1dC1maWxl ICIvdG1wL2Zocy5zaCIKKyAgICAgICAgICAgICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAg ICAgICAgICAgKGRpc3BsYXkgImxkY29uZmlnIC1YIiBwb3J0KQorICAgICAgICAgICAgICAgICAg KG5ld2xpbmUgcG9ydCkKKyAgICAgICAgICAgICAgICAgIChkaXNwbGF5ICJleHBvcnQgUEFUSD0v YmluOi91c3IvYmluOi9zYmluOi91c3Ivc2JpbjokUEFUSCIgcG9ydCkKKyAgICAgICAgICAgICAg ICAgIChuZXdsaW5lIHBvcnQpCisgICAgICAgICAgICAgICAgICAoZGlzcGxheSAoY2FyIGNvbW1h bmQpIHBvcnQpCisgICAgICAgICAgICAgICAgICAobmV3bGluZSBwb3J0KSkpKQorCiAgICAgICAg ICAgICA7OyBJZiByZXF1ZXN0ZWQsIGxpbmsgJEdVSVhfRU5WSVJPTk1FTlQgdG8gJEhPTUUvLmd1 aXgtcHJvZmlsZTsKICAgICAgICAgICAgIDs7IHRoaXMgYWxsb3dzIHByb2dyYW1zIGV4cGVjdGlu ZyB0aGF0IHBhdGggdG8gY29udGludWUgd29ya2luZyBhcwogICAgICAgICAgICAgOzsgZXhwZWN0 ZWQgd2l0aGluIGEgY29udGFpbmVyLgpAQCAtNzQ2LDcgKzg0MiwxMCBAQCAoZGVmaW5lKiAobGF1 bmNoLWVudmlyb25tZW50L2NvbnRhaW5lciAjOmtleSBjb21tYW5kIGJhc2ggdXNlciB1c2VyLW1h cHBpbmdzCiAgICAgICAgICAgICAocHJpbWl0aXZlLWV4aXQvc3RhdHVzCiAgICAgICAgICAgICAg OzsgQSBjb250YWluZXIncyBlbnZpcm9ubWVudCBpcyBhbHJlYWR5IHB1cmlmaWVkLCBzbyBubyBu ZWVkIHRvCiAgICAgICAgICAgICAgOzsgcmVxdWVzdCBpdCBiZSBwdXJpZmllZCBhZ2Fpbi4KLSAg ICAgICAgICAgICAobGF1bmNoLWVudmlyb25tZW50IGNvbW1hbmQKKyAgICAgICAgICAgICAobGF1 bmNoLWVudmlyb25tZW50IChpZiBlbXVsYXRlLWZocz8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7OyBVc2UgdGhlIEZIUyBzdGFydCBzY3JpcHQuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJygiL2Jpbi9zaCIgIi90bXAvZmhzLnNoIikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIGxpbmstcHJvZmlsZT8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBob21lLWRpciAiLy5ndWl4LXByb2ZpbGUi KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUpCkBAIC04NzQs MTYgKzk3MywxNyBAQCAoZGVmaW5lIChndWl4LWVudmlyb25tZW50KiBvcHRzKQogICAiUnVuIHRo ZSAnZ3VpeCBlbnZpcm9ubWVudCcgY29tbWFuZCBvbiBPUFRTLCBhbiBhbGlzdCByZXN1bHRpbmcg Zm9yCiBjb21tYW5kLWxpbmUgb3B0aW9uIHByb2Nlc3Npbmcgd2l0aCAncGFyc2UtY29tbWFuZC1s aW5lJy4iCiAgICh3aXRoLWVycm9yLWhhbmRsaW5nCi0gICAgKGxldCogKChwdXJlPyAgICAgIChh c3NvYy1yZWYgb3B0cyAncHVyZSkpCi0gICAgICAgICAgIChjb250YWluZXI/IChhc3NvYy1yZWYg b3B0cyAnY29udGFpbmVyPykpCi0gICAgICAgICAgIChsaW5rLXByb2Y/IChhc3NvYy1yZWYgb3B0 cyAnbGluay1wcm9maWxlPykpCi0gICAgICAgICAgIChuZXR3b3JrPyAgIChhc3NvYy1yZWYgb3B0 cyAnbmV0d29yaz8pKQotICAgICAgICAgICAobm8tY3dkPyAgICAoYXNzb2MtcmVmIG9wdHMgJ25v LWN3ZD8pKQotICAgICAgICAgICAodXNlciAgICAgICAoYXNzb2MtcmVmIG9wdHMgJ3VzZXIpKQot ICAgICAgICAgICAoYm9vdHN0cmFwPyAoYXNzb2MtcmVmIG9wdHMgJ2Jvb3RzdHJhcD8pKQotICAg ICAgICAgICAoc3lzdGVtICAgICAoYXNzb2MtcmVmIG9wdHMgJ3N5c3RlbSkpCi0gICAgICAgICAg IChwcm9maWxlICAgIChhc3NvYy1yZWYgb3B0cyAncHJvZmlsZSkpCi0gICAgICAgICAgIChjb21t YW5kICAgIChvciAoYXNzb2MtcmVmIG9wdHMgJ2V4ZWMpCisgICAgKGxldCogKChwdXJlPyAgICAg ICAgKGFzc29jLXJlZiBvcHRzICdwdXJlKSkKKyAgICAgICAgICAgKGNvbnRhaW5lcj8gICAoYXNz b2MtcmVmIG9wdHMgJ2NvbnRhaW5lcj8pKQorICAgICAgICAgICAobGluay1wcm9mPyAgIChhc3Nv Yy1yZWYgb3B0cyAnbGluay1wcm9maWxlPykpCisgICAgICAgICAgIChuZXR3b3JrPyAgICAgKGFz c29jLXJlZiBvcHRzICduZXR3b3JrPykpCisgICAgICAgICAgIChuby1jd2Q/ICAgICAgKGFzc29j LXJlZiBvcHRzICduby1jd2Q/KSkKKyAgICAgICAgICAgKGVtdWxhdGUtZmhzPyAoYXNzb2MtcmVm IG9wdHMgJ2VtdWxhdGUtZmhzPykpCisgICAgICAgICAgICh1c2VyICAgICAgICAgKGFzc29jLXJl ZiBvcHRzICd1c2VyKSkKKyAgICAgICAgICAgKGJvb3RzdHJhcD8gICAoYXNzb2MtcmVmIG9wdHMg J2Jvb3RzdHJhcD8pKQorICAgICAgICAgICAoc3lzdGVtICAgICAgIChhc3NvYy1yZWYgb3B0cyAn c3lzdGVtKSkKKyAgICAgICAgICAgKHByb2ZpbGUgICAgICAoYXNzb2MtcmVmIG9wdHMgJ3Byb2Zp bGUpKQorICAgICAgICAgICAoY29tbWFuZCAgKG9yIChhc3NvYy1yZWYgb3B0cyAnZXhlYykKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFNwYXduIGEgc2hlbGwgaWYgdGhlIHVzZXIgZGlk bid0IHNwZWNpZnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGFueXRoaW5nIGluIHBh cnRpY3VsYXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgY29udGFpbmVyPwpAQCAt OTIyLDEyICsxMDIyLDI0IEBAIChkZWZpbmUgKGd1aXgtZW52aXJvbm1lbnQqIG9wdHMpCiAgICAg ICAgIChsZWF2ZSAoR18gIictLXVzZXInIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgJy0tY29udGFp bmVyJ34lIikpKQogICAgICAgKHdoZW4gKGFuZCAobm90IGNvbnRhaW5lcj8pIG5vLWN3ZD8pCiAg ICAgICAgIChsZWF2ZSAoR18gIi0tbm8tY3dkIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1jb250 YWluZXJ+JSIpKSkKKyAgICAgICh3aGVuIChhbmQgKG5vdCBjb250YWluZXI/KSBlbXVsYXRlLWZo cz8pCisgICAgICAgIChsZWF2ZSAoR18gIictLWVtdWxhdGUtZmhzJyBjYW5ub3QgYmUgdXNlZCB3 aXRob3V0ICctLWNvbnRhaW5lcn4nJSIpKSkKIAogCiAgICAgICAod2l0aC1zdG9yZS9tYXliZSBz dG9yZQogICAgICAgICAod2l0aC1zdGF0dXMtdmVyYm9zaXR5IChhc3NvYy1yZWYgb3B0cyAndmVy Ym9zaXR5KQogICAgICAgICAgIChkZWZpbmUgbWFuaWZlc3QtZnJvbS1vcHRzCi0gICAgICAgICAg ICAob3B0aW9ucy9yZXNvbHZlLXBhY2thZ2VzIHN0b3JlIG9wdHMpKQorICAgICAgICAgICAgKG9w dGlvbnMvcmVzb2x2ZS1wYWNrYWdlcyBzdG9yZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyBGb3IgYW4gRkhTLWNvbnRhaW5lciwgYWRkIHRoZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyAoaGlkZGVuKSBwYWNrYWdlIGdsaWJjLWZvci1m aHMgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdXNlcyB0 aGUgZ2xvYmFsIGNhY2hlIGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IC9ldGMvbGQuc28uY2FjaGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZiBlbXVsYXRlLWZocz8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChhbGlzdC1jb25zICdleHByZXNzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGFkLWhvYy1wYWNrYWdlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoQEAgKGdudSBw YWNrYWdlcyBiYXNlKSBnbGliYy1mb3ItZmhzKSIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3B0cykpKQogCiAgICAgICAgICAgKGRlZmluZSBtYW5pZmVz dAogICAgICAgICAgICAgKGlmIHByb2ZpbGUKQEAgLTEwMDEsNyArMTExMyw4IEBAIChkZWZpbmUg KGd1aXgtZW52aXJvbm1lbnQqIG9wdHMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzp3aGl0ZS1saXN0IHdoaXRlLWxpc3QKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmxpbmstcHJvZmlsZT8g bGluay1wcm9mPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICM6bmV0d29yaz8gbmV0d29yaz8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjOm1hcC1jd2Q/IChub3Qgbm8tY3dkPykpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOm1hcC1jd2Q/ IChub3Qgbm8tY3dkPykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjOmVtdWxhdGUtZmhzPyBlbXVsYXRlLWZocz8pKSkKIAogICAgICAgICAgICAg ICAgICAgIChlbHNlCiAgICAgICAgICAgICAgICAgICAgIChyZXR1cm4KLS0gCjIuMzcuMQoK --b1_16tXAdEOpSButhfnFxG5bCp6iqfklSwfnzB6bmZPk-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 04 06:36:21 2022 Received: (at 56677) by debbugs.gnu.org; 4 Aug 2022 10:36:21 +0000 Received: from localhost ([127.0.0.1]:51391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJYDE-0000mM-UJ for submit@debbugs.gnu.org; Thu, 04 Aug 2022 06:36:21 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33716) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJYDC-0000m9-QC for 56677@debbugs.gnu.org; Thu, 04 Aug 2022 06:36:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37944) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJYD7-00088R-CI; Thu, 04 Aug 2022 06:36:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=C+WgOcb4r6xAgmaUsHSru0Xqhk0cX35jCcg4/ZBn1I0=; b=rlq/0nv+vCJJGicgONZu zVnpltriZ2msN8ZtEA55q3jZxgP4kophu6Z+V1tA0ARcPVWnCKGBKEGUoKyw5VJ0Z6H+rBU1kcj6H z/dK6ZZA6F6b6l9klUMaKRo/4HuxfEVH9NvSbmFOzC9Rf/S6uNUg+0yESfcPHCF42IBbBZZZdS1ie WzrB+mX0Likx+BwmbpaZ92uwVFRoZCX9zRrFbuN57X3CTF6h6WJm7rX1n+VuhsSVchzk6J//YUx7b 9lo4MaKqXufFTk2q97Lb3XugpSiXzy+GVPUNf5U4jq9FIr5QIU7zKI4ka7g74lnnJiFyQk6+NcwAu L0DQ6rdEoyqWOQ==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=52982 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJYD2-0004Eq-Gb; Thu, 04 Aug 2022 06:36:11 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: John Kehayias Subject: Re: bug#56677: [PATCH 0/2] environment: Add --emulate-fhs option. References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> Date: Thu, 04 Aug 2022 12:36:06 +0200 In-Reply-To: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> (John Kehayias's message of "Thu, 21 Jul 2022 04:14:19 +0000") Message-ID: <87r11wmh2h.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello, John Kehayias skribis: > As discussed on guix-devel here (please see for more detailed discussion = and design aims): https://lists.gnu.org/r/guix-devel/2022-07/msg00161.html = this is a patch to add an FHS (Filesystem Hierarchy Standard) emulation opt= ion for environments. Wo0t! > 1. On the mailing list there was discussion about the necessity or not of= glibc-for-fhs (added in the first patch). I find this useful and a big pie= ce of making this FHS option work, but open to discussion or if it should b= e a further option. I would prefer to keep complexity as low as possible, and thus not have this glibc variant. Now, I don=E2=80=99t know for this use case how much it matters that libc h= onors /etc/ld.so.cache. Intuitively, like I wrote on guix-devel, I=E2=80=99d thi= nk ld.so.cache doesn=E2=80=99t matter, but you encountered counterexamples. So I guess that if in practice presence of /etc/ld.so.cache *and* having glibc honor it is necessary often enough, we can do that. It seems that =E2=80=98glibc-for-fhs=E2=80=99 is merely added to the enviro= nment though, and not actually used? + ;; For an FHS-container, add the + ;; (hidden) package glibc-for-fhs wh= ich + ;; uses the global cache at + ;; /etc/ld.so.cache. + (if emulate-fhs? + (alist-cons 'expression + '(ad-hoc-package + "(@@ (gnu packages= base) glibc-for-fhs)") + opts) + opts))) Or rather it=E2=80=99s only used when running =E2=80=98ldconfig=E2=80=99, r= ight? > 2. Right now I used a script written to the containers /tmp/fhs.sh to gen= erate the ld cache, supplement $PATH (somewhat optional, but I found useful= for less tinkering), and finally launch the given command or shell. I foun= d that when not providing a command the prompt for /bin/sh is not the same = as when not using --emulate-fhs. So I'm not sure if this is the correct way= to launch the default /bin/sh if no command is given. Open to ideas of a b= etter way to implement these actions for a container start up as well. > > 3. This is my first time touching a guix script and the documentation, so= please do check the commit message and guix.texi. > > 4. I decided to link the second level FHS directories, like /usr/bin, as = well as optional ones like /lib64 (or /lib32), to the top level /bin, /lib,= and so on. These could just be bind mounted to profile/bin and so on as we= ll, but again tried to mimic an FHS distribution like Arch where the files = only live in one place. While perhaps making the code a little more involve= d, I hope this makes the container look tidier. > > I may be forgetting other elements in the implementation decisions I made= , but I have been testing these patches along the way and have gotten good = usage of them. Please test further too! =20 At first sight, I find it pretty cool! I would have two grievances: 1. Can we make the implementation more orthogonal and less entangled in the already-long =E2=80=98launch-environment/container=E2=80=99? Maybe that can be accomplished by moving all the code conditional on =E2=80=98emulate-fhs?=E2=80=99 out of the way in a separate procedu= re, and possibly by adding a generic hook in =E2=80=98launch-environment/conta= iner=E2=80=99 that would call said procedure. 2. Please add tests. You can probably augment =E2=80=98tests/guix-environment-container.sh=E2=80=99 for that. Let u= s know if you=E2=80=99re not sure how to do that. Thanks for all the work, and sorry for the delay: it seems to be summer time for many of us. :-) Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 17:43:22 2022 Received: (at 56677) by debbugs.gnu.org; 17 Aug 2022 21:43:22 +0000 Received: from localhost ([127.0.0.1]:53208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOQor-0006Yy-Os for submit@debbugs.gnu.org; Wed, 17 Aug 2022 17:43:22 -0400 Received: from mail-4316.protonmail.ch ([185.70.43.16]:62737) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOQop-0006Yk-F6 for 56677@debbugs.gnu.org; Wed, 17 Aug 2022 17:43:20 -0400 Date: Wed, 17 Aug 2022 21:43:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1660772593; x=1661031793; bh=5UyTKApOZ1EK9X0PIKHh7Ypg03tEUrHdnj+ZoQjw578=; h=Date:To:From:Cc:Reply-To:Subject:Message-ID:In-Reply-To: References:Feedback-ID:From:To:Cc:Date:Subject:Reply-To: Feedback-ID:Message-ID; b=WMoKL23GMIb1Gg+/vHgPR6qa6kNfvwuPkqRvWBlhVpghRRWaEOkPfoobRdubVAkk3 ht5elQxNSju7fwEcsGmUzn6vAlrQ7iPRyVyxn6jXsm9X1rROmPK1lIvDbQLM+Hbg2T uVir1AOTzPd1wUQfFBvswy/xU07tMGGV5H8JobK6CpHSiWTLLWQ4bGsVFsegest1DM fRBIN3u42qj3kVkUxG3vVsopH7kc6tajQXS8WHL5Uk767vWBUT/FklP0/CcR1Q7EjY 10jAZDNSZXLwT2V8DY+pZCCrEWa/BhL9u5oGi3eMH2BjdfJmc0fyi6fBJXq9DNF/M+ WXdJQxtgIZZzg== To: =?utf-8?Q?Ludovic_Court=C3=A8s?= From: John Kehayias Subject: Re: bug#56677: [PATCH 0/2] environment: Add --emulate-fhs option. Message-ID: In-Reply-To: <87r11wmh2h.fsf@gnu.org> References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> <87r11wmh2h.fsf@gnu.org> Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: John Kehayias Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Took me a while to respond as well, summer meaning more time to hack on thi= ngs and then also let them get away... ------- Original Message ------- On Thursday, August 4th, 2022 at 6:36 AM, Ludovic Court=C3=A8s wrote: >=20 > Hello, >=20 > John Kehayias john.kehayias@protonmail.com skribis: >=20 > > As discussed on guix-devel here (please see for more detailed discussio= n and design aims): https://lists.gnu.org/r/guix-devel/2022-07/msg00161.htm= l this is a patch to add an FHS (Filesystem Hierarchy Standard) emulation o= ption for environments. >=20 > Wo0t! >=20 > > 1. On the mailing list there was discussion about the necessity or not = of glibc-for-fhs (added in the first patch). I find this useful and a big p= iece of making this FHS option work, but open to discussion or if it should= be a further option. >=20 > I would prefer to keep complexity as low as possible, and thus not have > this glibc variant. >=20 > Now, I don=E2=80=99t know for this use case how much it matters that libc= honors > /etc/ld.so.cache. Intuitively, like I wrote on guix-devel, I=E2=80=99d th= ink > ld.so.cache doesn=E2=80=99t matter, but you encountered counterexamples. >=20 > So I guess that if in practice presence of /etc/ld.so.cache and having > glibc honor it is necessary often enough, we can do that. >=20 Right, though as I said, happy to hear of alternatives or what other use ca= ses come up. This seems rather robust to any "usual" assumptions though. > It seems that =E2=80=98glibc-for-fhs=E2=80=99 is merely added to the envi= ronment though, > and not actually used? >=20 Well, it is added to the environment which here means the glibc-for-fhs lib= directory ends up in the container's global /lib. This may be useful for a= nything expecting a more "typical" glibc to be found in the typical locatio= n. I can't say I know the particulars here, other than binaries and an exam= ple of other nested containers (used in non-free software, but the containe= rs are bwrap and friends) expecting glibc to default to a global ld cache. = Again, there may be other workarounds or ways to reduce this, but for now I= followed the "emulate" part of the flag :) > + ;; For an FHS-container, add the > + ;; (hidden) package glibc-for-fhs which > + ;; uses the global cache at > + ;; /etc/ld.so.cache. > + (if emulate-fhs? > + (alist-cons 'expression > + '(ad-hoc-package > + "(@@ (gnu packages base) glibc-for-fhs)") > + opts) > + opts))) >=20 > Or rather it=E2=80=99s only used when running =E2=80=98ldconfig=E2=80= =99, right? >=20 Yes, since that is the glibc in the container. Though actually generating a= cache shouldn't matter, right? Guix's glibc will do that as well, as the o= nly patch removed is the one that changed where glibc reads the ld cache fr= om. So the cache could be generated with Guix's glibc, but then likely won'= t be read otherwise? Sorry, a bit out of what I know for all the details; I= 'm mostly at "this is what is often expected" and "this makes it work." > > 2. Right now I used a script written to the containers /tmp/fhs.sh to g= enerate the ld cache, supplement $PATH (somewhat optional, but I found usef= ul for less tinkering), and finally launch the given command or shell. I fo= und that when not providing a command the prompt for /bin/sh is not the sam= e as when not using --emulate-fhs. So I'm not sure if this is the correct w= ay to launch the default /bin/sh if no command is given. Open to ideas of a= better way to implement these actions for a container start up as well. > >=20 > > 3. This is my first time touching a guix script and the documentation, = so please do check the commit message and guix.texi. > >=20 > > 4. I decided to link the second level FHS directories, like /usr/bin, a= s well as optional ones like /lib64 (or /lib32), to the top level /bin, /li= b, and so on. These could just be bind mounted to profile/bin and so on as = well, but again tried to mimic an FHS distribution like Arch where the file= s only live in one place. While perhaps making the code a little more invol= ved, I hope this makes the container look tidier. > >=20 > > I may be forgetting other elements in the implementation decisions I ma= de, but I have been testing these patches along the way and have gotten goo= d usage of them. Please test further too! >=20 > At first sight, I find it pretty cool! I would have two grievances: >=20 Thanks! It is serving me in some day-to-day work nicely. > 1. Can we make the implementation more orthogonal and less entangled > in the already-long =E2=80=98launch-environment/container=E2=80=99? >=20 > Maybe that can be accomplished by moving all the code conditional > on =E2=80=98emulate-fhs?=E2=80=99 out of the way in a separate procedure,= and > possibly by adding a generic hook in =E2=80=98launch-environment/containe= r=E2=80=99 > that would call said procedure. >=20 Sure, this sounds like a good idea. I can certainly separate out the FHS se= tup to a separate function and call it. But I'm not sure what you mean by a= "generic hook" here. Do you mean that launch-environment/container would h= ave as an argument say a list of functions it would call? > 2. Please add tests. You can probably augment > =E2=80=98tests/guix-environment-container.sh=E2=80=99 for that. Let us kn= ow if > you=E2=80=99re not sure how to do that. >=20 Thanks, definitely forgot about that. In looking at that, I've just ran it = with "./pre-inst-env sh tests/guix-environment-container.sh" and see that t= he exit code is 0. Is that the correct way to run these? Secondly, I'm trying to think of what tests to add. I could of course run t= he same tests already, but with the --emulate-fhs option, to check that the= re are no regressions. Other than that, maybe checking that e.g. there's /e= tc/ld.so.cache, /lib, and so on? > Thanks for all the work, and sorry for the delay: it seems to be summer > time for many of us. :-) >=20 > Ludo=E2=80=99. No worries, summer is a good time to get away, or dig in :) John From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 08 16:58:59 2022 Received: (at 56677) by debbugs.gnu.org; 8 Sep 2022 20:58:59 +0000 Received: from localhost ([127.0.0.1]:60316 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWObz-0006Os-9M for submit@debbugs.gnu.org; Thu, 08 Sep 2022 16:58:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWObx-0006Od-7k for 56677@debbugs.gnu.org; Thu, 08 Sep 2022 16:58:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42026) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWObr-0003H4-V0; Thu, 08 Sep 2022 16:58:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=7PaYvG17ntKYybxNMMFaOvJPcGf3dVZsFg6q15t9Q3w=; b=d0hJzgMRxLrPne2FKVAt CPkxrZtxpn3vkCO0NXVuofh6LWiv6QVW3/Up96WXdXyEA4KKTyd3H6YbFpZxAlFWozk6UH1UFGxbW Anl6OdEbwQ0Behs+AjO8Xon0Xaf5gCXtr6aELLh0Yia3vhtCfV5PMggS6cIc0YHa64Pnf0Y6bLItM B2PD2dCMntnv5ZrSGMtDRmN2BuVx9Iuu6RCug7QEZYsktx/3KUgixUkC62e8gfl/mH9JN2srlg53g /d7shiA/KirM97PKrC7VjUbC81Mxq+m7uXun9IV3nsgyBlDPdozgrfF0TbyHRPNeN2EgnL6Icstm9 H72ak7U3aTBMdg==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:54950 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWObq-0005Va-RL; Thu, 08 Sep 2022 16:58:51 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: John Kehayias Subject: Re: bug#56677: [PATCH 0/2] environment: Add --emulate-fhs option. References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> <87r11wmh2h.fsf@gnu.org> Date: Thu, 08 Sep 2022 22:58:48 +0200 In-Reply-To: (John Kehayias's message of "Wed, 17 Aug 2022 21:43:08 +0000") Message-ID: <87mtb9d1mf.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.6 (-) Howdy, John Kehayias skribis: >> I would prefer to keep complexity as low as possible, and thus not have >> this glibc variant. >>=20 >> Now, I don=E2=80=99t know for this use case how much it matters that lib= c honors >> /etc/ld.so.cache. Intuitively, like I wrote on guix-devel, I=E2=80=99d t= hink >> ld.so.cache doesn=E2=80=99t matter, but you encountered counterexamples. >>=20 >> So I guess that if in practice presence of /etc/ld.so.cache and having >> glibc honor it is necessary often enough, we can do that. >>=20 > > Right, though as I said, happy to hear of alternatives or what other use = cases come up. This seems rather robust to any "usual" assumptions though. > >> It seems that =E2=80=98glibc-for-fhs=E2=80=99 is merely added to the env= ironment though, >> and not actually used? >>=20 > > Well, it is added to the environment which here means the glibc-for-fhs l= ib directory ends up in the container's global /lib. This may be useful for= anything expecting a more "typical" glibc to be found in the typical locat= ion. I can't say I know the particulars here, other than binaries and an ex= ample of other nested containers (used in non-free software, but the contai= ners are bwrap and friends) expecting glibc to default to a global ld cache= . Again, there may be other workarounds or ways to reduce this, but for now= I followed the "emulate" part of the flag :) Oh I got it; that /lib/libc.so *is* used, but only by binaries that were built on an FHS distro and that you=E2=80=99d bring in (that=E2=80=99s the = whole point, I guess). It=E2=80=99s not used by Guix packages. >> 1. Can we make the implementation more orthogonal and less entangled >> in the already-long =E2=80=98launch-environment/container=E2=80=99? >>=20 >> Maybe that can be accomplished by moving all the code conditional >> on =E2=80=98emulate-fhs?=E2=80=99 out of the way in a separate procedure= , and >> possibly by adding a generic hook in =E2=80=98launch-environment/contain= er=E2=80=99 >> that would call said procedure. >>=20 > > Sure, this sounds like a good idea. I can certainly separate out the FHS = setup to a separate function and call it. But I'm not sure what you mean by= a "generic hook" here. Do you mean that launch-environment/container would= have as an argument say a list of functions it would call? Yes, or an argument with a single procedure to call at a specific point. That would default to a no-op. >> 2. Please add tests. You can probably augment >> =E2=80=98tests/guix-environment-container.sh=E2=80=99 for that. Let us k= now if >> you=E2=80=99re not sure how to do that. >>=20 > > Thanks, definitely forgot about that. In looking at that, I've just ran i= t with "./pre-inst-env sh tests/guix-environment-container.sh" and see that= the exit code is 0. Is that the correct way to run these? The correct way is: make check TESTS=3Dtests/guix-environment-container.sh Compared to what you wrote, it uses ./test-env (which spawns a daemon that uses the local store, not /gnu/sore) and sets a bunch of environment variables. See . > Secondly, I'm trying to think of what tests to add. I could of course run= the same tests already, but with the --emulate-fhs option, to check that t= here are no regressions. Other than that, maybe checking that e.g. there's = /etc/ld.so.cache, /lib, and so on? Right, at least you=E2=80=99d want to check for these files/directories. Note that since the test relies on =E2=80=98glibc-for-fhs=E2=80=99, it cann= ot be done the =E2=80=9Cnormal way=E2=80=9D (that is, using the local store rather tha= n /gnu/store) because it would end up building the world. The solution here is to use /gnu/store, if available, and to otherwise skip the test (return 77). See =E2=80=98tests/guix-pack-relocatable.sh=E2= =80=99 up to line 40 on how to do that. HTH! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 08 16:59:09 2022 Received: (at 56677) by debbugs.gnu.org; 8 Sep 2022 20:59:09 +0000 Received: from localhost ([127.0.0.1]:60321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWOc8-0006Pd-QN for submit@debbugs.gnu.org; Thu, 08 Sep 2022 16:59:09 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWOc6-0006PE-QC for 56677@debbugs.gnu.org; Thu, 08 Sep 2022 16:59:07 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45016) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWOc1-0003Hj-J7; Thu, 08 Sep 2022 16:59:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=7PaYvG17ntKYybxNMMFaOvJPcGf3dVZsFg6q15t9Q3w=; b=eA+nWG+MBdCo+DV+pCwv RXQ2wSbFRJca0+kggEI/mTMqStkbktgSwHJULSgUm/+z4jfy5oJIfqaaen3szS1z83dP19O97C0La /A09omPVf0Rs8IuCbDwHk12GXZnxgrLSn5Ij4SW/tQAfS+2vVBC65ItZcyvyphc3dbWOT2iPFAtQF trHGeoEditxcJ7sLCwkgbZ3f7mESf64wh8F2OoeRcrnv4szU9DwB0GolWr7bByc23Ok2ae2QlKh+/ 00eSME1v8y+8CB+0+c5zs5pZ6YoXhajA5xdSLyvxTa53PKdnVAQM0Rk1QvDcea5mN5w9JwQMTYFqr AfaS13LEWU+Q5A==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:58574 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWOc0-0005eS-Rz; Thu, 08 Sep 2022 16:59:01 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: John Kehayias Subject: Re: bug#56677: [PATCH 0/2] environment: Add --emulate-fhs option. In-Reply-To: (John Kehayias's message of "Wed, 17 Aug 2022 21:43:08 +0000") References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> <87r11wmh2h.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) Date: Thu, 08 Sep 2022 22:58:59 +0200 Message-ID: <87leqtd1m4.fsf_-_@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.6 (-) Howdy, John Kehayias skribis: >> I would prefer to keep complexity as low as possible, and thus not have >> this glibc variant. >>=20 >> Now, I don=E2=80=99t know for this use case how much it matters that lib= c honors >> /etc/ld.so.cache. Intuitively, like I wrote on guix-devel, I=E2=80=99d t= hink >> ld.so.cache doesn=E2=80=99t matter, but you encountered counterexamples. >>=20 >> So I guess that if in practice presence of /etc/ld.so.cache and having >> glibc honor it is necessary often enough, we can do that. >>=20 > > Right, though as I said, happy to hear of alternatives or what other use = cases come up. This seems rather robust to any "usual" assumptions though. > >> It seems that =E2=80=98glibc-for-fhs=E2=80=99 is merely added to the env= ironment though, >> and not actually used? >>=20 > > Well, it is added to the environment which here means the glibc-for-fhs l= ib directory ends up in the container's global /lib. This may be useful for= anything expecting a more "typical" glibc to be found in the typical locat= ion. I can't say I know the particulars here, other than binaries and an ex= ample of other nested containers (used in non-free software, but the contai= ners are bwrap and friends) expecting glibc to default to a global ld cache= . Again, there may be other workarounds or ways to reduce this, but for now= I followed the "emulate" part of the flag :) Oh I got it; that /lib/libc.so *is* used, but only by binaries that were built on an FHS distro and that you=E2=80=99d bring in (that=E2=80=99s the = whole point, I guess). It=E2=80=99s not used by Guix packages. >> 1. Can we make the implementation more orthogonal and less entangled >> in the already-long =E2=80=98launch-environment/container=E2=80=99? >>=20 >> Maybe that can be accomplished by moving all the code conditional >> on =E2=80=98emulate-fhs?=E2=80=99 out of the way in a separate procedure= , and >> possibly by adding a generic hook in =E2=80=98launch-environment/contain= er=E2=80=99 >> that would call said procedure. >>=20 > > Sure, this sounds like a good idea. I can certainly separate out the FHS = setup to a separate function and call it. But I'm not sure what you mean by= a "generic hook" here. Do you mean that launch-environment/container would= have as an argument say a list of functions it would call? Yes, or an argument with a single procedure to call at a specific point. That would default to a no-op. >> 2. Please add tests. You can probably augment >> =E2=80=98tests/guix-environment-container.sh=E2=80=99 for that. Let us k= now if >> you=E2=80=99re not sure how to do that. >>=20 > > Thanks, definitely forgot about that. In looking at that, I've just ran i= t with "./pre-inst-env sh tests/guix-environment-container.sh" and see that= the exit code is 0. Is that the correct way to run these? The correct way is: make check TESTS=3Dtests/guix-environment-container.sh Compared to what you wrote, it uses ./test-env (which spawns a daemon that uses the local store, not /gnu/sore) and sets a bunch of environment variables. See . > Secondly, I'm trying to think of what tests to add. I could of course run= the same tests already, but with the --emulate-fhs option, to check that t= here are no regressions. Other than that, maybe checking that e.g. there's = /etc/ld.so.cache, /lib, and so on? Right, at least you=E2=80=99d want to check for these files/directories. Note that since the test relies on =E2=80=98glibc-for-fhs=E2=80=99, it cann= ot be done the =E2=80=9Cnormal way=E2=80=9D (that is, using the local store rather tha= n /gnu/store) because it would end up building the world. The solution here is to use /gnu/store, if available, and to otherwise skip the test (return 77). See =E2=80=98tests/guix-pack-relocatable.sh=E2= =80=99 up to line 40 on how to do that. HTH! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 04 14:33:05 2022 Received: (at 56677) by debbugs.gnu.org; 4 Oct 2022 18:33:05 +0000 Received: from localhost ([127.0.0.1]:55180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ofmj2-0006IX-6q for submit@debbugs.gnu.org; Tue, 04 Oct 2022 14:33:05 -0400 Received: from mail-4322.protonmail.ch ([185.70.43.22]:24749) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ofmiz-0006I1-FK for 56677@debbugs.gnu.org; Tue, 04 Oct 2022 14:33:03 -0400 Date: Tue, 04 Oct 2022 18:32:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1664908374; x=1665167574; bh=qETguL2Rq7oSB5CzvwR4QuJMDNVPCM2y37L8RYkgbVk=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID; b=jNJn4+R+/KLujoejJvo2/42r4OjxF+2oo4CyMdqnMINK0GceDjHRKyPXT1Cn219iO FN2/b9NsFCrW1GhBxA+jzdV7yBV/08xbZe2Ov2Drgx5RFWuSZViFfI4NjsPJSYt8ie nL6haQvkkuJzz+y2iwB5rrf8bl36QJ7RI3pRQW5R/5DRt9mR35MvR8uFftxqAZ/McO xK+tP+wOiEbaj0Lglkgu2Nv8uFsPKjDC6nTsUcsudNupkDh22sYRW65Q5L9q+FfVGx Etzy9M9IbUFpbp3q8FHoZSgmpT41u7jVGmZvK4TSqhWZZawwZdUCrobj1l+3g56nwD Zc0hsl6p2IV5w== To: =?utf-8?Q?Ludovic_Court=C3=A8s?= From: John Kehayias Subject: Re: bug#56677: [PATCH v2 1/2] environment: Add --emulate-fhs option. Message-ID: <87edvntp6f.fsf@protonmail.com> In-Reply-To: <87leqtd1m4.fsf_-_@gnu.org> References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> <87r11wmh2h.fsf@gnu.org> <87leqtd1m4.fsf_-_@gnu.org> Feedback-ID: 7805494:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_L9kCBJd0i81PjSxeizf3BLpIsoL205W5wsmYNk6u2E" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_L9kCBJd0i81PjSxeizf3BLpIsoL205W5wsmYNk6u2E Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo=E2=80=99! Apologies for the long delay! I've done some more rewriting than expected, = so let me outline some changes in the v2 patch (attached, while path 1/2 fo= r glibc-for-fhs remains unchanged). On Thu, Sep 08, 2022 at 10:58 PM, Ludovic Court=C3=A8s wrote: > Howdy, > > John Kehayias skribis: > [snip] >>> 1. Can we make the implementation more orthogonal and less entangled >>> in the already-long =E2=80=98launch-environment/container=E2=80=99? >>> >>> Maybe that can be accomplished by moving all the code conditional >>> on =E2=80=98emulate-fhs?=E2=80=99 out of the way in a separate procedur= e, and >>> possibly by adding a generic hook in =E2=80=98launch-environment/contai= ner=E2=80=99 >>> that would call said procedure. >>> >> >> Sure, this sounds like a good idea. I can certainly separate out the FHS= setup to a >> separate function and call it. But I'm not sure what you mean by a "gene= ric hook" here. >> Do you mean that launch-environment/container would have as an argument = say a list of >> functions it would call? > > Yes, or an argument with a single procedure to call at a specific > point. That would default to a no-op. > I've done some rearranging to address this and along the way fixed the comm= and passing to the container to work the same as without --emulate-fhs (pre= viously I hacked together a startup script that didn't properly capture the= command given by the user). Unfortunately, since some of the needed directories are bind mounted and ot= hers can be linked after creating filesystems, not all of the FHS directory= setup can be done in the same place. To be explicit, bind mounts for all f= ilesystems are set up in the early mlet of launch-environment/container, be= fore being able to call a procedure to do other setup needed here. The end result: launch-environment/container now takes a key 'setup-hook' which defaults to= #f. For now this only handles a single list with the function name and arg= uments (could extend this to be more general, but didn't have any use cases= for it off hand). For the FHS container this is set, by the entry point gu= ix-environment*, to the new function setup-fhs which sets up symlinks and l= d.so.conf. Handling arguments was necessary as setup-fhs needs the profile = used in the container. So then launch-environment also gets a new 'emulate-fhs?' option so it can = run some additional setup before running the command given by the user. Wha= t was the (hacky) /tmp/fhs.sh is now a setenv and invoke, before the final = execlp for the given command. A little more complicated perhaps, but I think functionally separates the d= ifferent steps (bind mounts, symlinks and file creation, and running in the= container) at least. >>> 2. Please add tests. You can probably augment >>> =E2=80=98tests/guix-environment-container.sh=E2=80=99 for that. Let us = know if >>> you=E2=80=99re not sure how to do that. >>> >> >> Thanks, definitely forgot about that. In looking at that, I've just ran = it with >> "./pre-inst-env sh tests/guix-environment-container.sh" and see that the= exit code is 0. >> Is that the correct way to run these? > > The correct way is: > > make check TESTS=3Dtests/guix-environment-container.sh > > Compared to what you wrote, it uses ./test-env (which spawns a daemon > that uses the local store, not /gnu/sore) and sets a bunch of > environment variables. > > See > . > Thanks, missed that somehow. >> Secondly, I'm trying to think of what tests to add. I could of course ru= n the same tests >> already, but with the --emulate-fhs option, to check that there are no r= egressions. >> Other than that, maybe checking that e.g. there's /etc/ld.so.cache, /lib= , and so on? > > Right, at least you=E2=80=99d want to check for these files/directories. > > Note that since the test relies on =E2=80=98glibc-for-fhs=E2=80=99, it ca= nnot be done > the =E2=80=9Cnormal way=E2=80=9D (that is, using the local store rather t= han /gnu/store) > because it would end up building the world. > > The solution here is to use /gnu/store, if available, and to otherwise > skip the test (return 77). See =E2=80=98tests/guix-pack-relocatable.sh= =E2=80=99 up to > line 40 on how to do that. > > HTH! > Very helpful, thanks! I added in two tests to the end of tests/guix-environment-container.sh. One= checks for the FHS file structure in the container and the other tries to = read the ld cache (using 'ldconfig -p'). If we wanted to run all the non-fhs tests with --emulate-fhs, then maybe we= 'd want to make it so the FHS specific tests live in a new file and guix-en= vironment-container.sh can be called in a way to enable that option? (A qui= ck guess would be to just set an alias so that guix environment is always c= alled with --emulate-fhs, but not sure if that works in the test environmen= t.) Wasn't sure if all that is necessary so I just went with the FHS-specific t= ests for now. I checked that they pass for me. The commit changelog has gotten a bit more complicated with these changes, = hopefully I got everything in there. Thanks for your help on this and I'll make sure any future revisions are mo= re timely! John --b1_L9kCBJd0i81PjSxeizf3BLpIsoL205W5wsmYNk6u2E Content-Type: text/x-patch; name=0002-environment-Add-emulate-fhs-v2.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-environment-Add-emulate-fhs-v2.patch RnJvbSBkZTdhZTliMjAzYTY1ZTFlYzFiMTQyOWNhNDA3NmYzZjkxYjFhZTMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogSm9obiBLZWhheWlhcyA8am9obi5rZWhheWlhc0Bwcm90b25t YWlsLmNvbT4NCkRhdGU6IFdlZCwgMjAgSnVsIDIwMjIgMjM6NDY6NDUgLTA0MDANClN1YmplY3Q6 IFtQQVRDSF0gZW52aXJvbm1lbnQ6IEFkZCAnLS1lbXVsYXRlLWZocycuDQoNCiogZ3VpeC9zY3Jp cHRzL2Vudmlyb25tZW50LnNjbSAoc2hvdy1lbnZpcm9ubWVudC1vcHRpb25zLWhlbHAsICVvcHRp b25zKTogQWRkDQonLS1lbXVsYXRlLWZocycuDQooc2V0dXAtZmhzKTogTmV3IHByb2NlZHVyZS4g IFNldHVwIGZvciB0aGUgRmlsZXN5c3RlbSBIaWVyYXJjaHkgU3RhbmRhcmQgKEZIUykNCmNvbnRh aW5lci4gIERlZmluZXMgYW5kIHVzZXMgRkhTLVNZTUxJTktTIGFuZCBMSU5LLUNPTlRFTlRTIHRv IGNyZWF0ZSBGSFMNCmV4cGVjdGVkIGRpcmVjdG9yaWVzIGFuZCBjcmVhdGVzIC9ldGMvbGQuc28u Y29uZi4NCihsYXVuY2gtZW52aXJvbm1lbnQpOiBBZGQgJ2VtdWxhdGUtZmhzPycga2V5IGFuZCBp bXBsZW1lbnQgaXQgdG8gc2V0ICRQQVRIIGFuZA0KZ2VuZXJhdGUgL2V0Yy9sZC5zby5jYWNoZSBi ZWZvcmUgY2FsbGluZyBDT01NQU5ELg0KKGxhdW5jaC1lbnZpcm9ubWVudC9jb250YWluZXIpOiBB ZGQgJ2VtdWxhdGUtZmhzPycgYW5kICdzZXR1cC1ob29rJyBrZXlzIGFuZA0KaW1wbGVtZW50IHRo ZW0uICBEZWZpbmUgYW5kIHVzZSBGSFMtTUFQUElOR1MsIHRvIHNldCB1cCBhZGRpdGlvbmFsIGJp bmQgbW91bnRzDQppbiB0aGUgY29udGFpbmVyIHRvIGZvbGxvdyBGSFMgZXhwZWN0YXRpb25zLg0K KGd1aXgtZW52aXJvbm1lbnQqKTogQWRkIGdsaWJjLWZvci1maHMgdG8gdGhlIGNvbnRhaW5lciBw YWNrYWdlcyB3aGVuDQonZW11bGF0ZS1maHM/JyBrZXkgaXMgaW4gT1BUUy4NCiogZG9jL2d1aXgu dGV4aSAoSW52b2tpbmcgZ3VpeCBzaGVsbCk6IERvY3VtZW50ICctLWVtdWxhdGUtZmhzJy4NCihJ bnZva2luZyBndWl4IGVudmlyb25tZW50KTogRG9jdW1lbnQgJy0tZW11bGF0ZS1maHMnLg0KKiB0 ZXN0cy9ndWl4LWVudmlyb25tZW50LWNvbnRhaW5lci5zaDogQWRkIHRlc3RzIGZvciAnLS1lbXVs YXRlLWZocycuDQotLS0NCiBkb2MvZ3VpeC50ZXhpICAgICAgICAgICAgICAgICAgICAgICB8ICAz MyArKysrKysNCiBndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2NtICAgICAgICB8IDE2NyArKysr KysrKysrKysrKysrKysrKysrKystLS0tDQogdGVzdHMvZ3VpeC1lbnZpcm9ubWVudC1jb250YWlu ZXIuc2ggfCAgMzQgKysrKysrDQogMyBmaWxlcyBjaGFuZ2VkLCAyMTEgaW5zZXJ0aW9ucygrKSwg MjMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kb2MvZ3VpeC50ZXhpIGIvZG9jL2d1aXgu dGV4aQ0KaW5kZXggNTM1YzhjZGZjMy4uOTlkZWEyZTNjMSAxMDA2NDQNCi0tLSBhL2RvYy9ndWl4 LnRleGkNCisrKyBiL2RvYy9ndWl4LnRleGkNCkBAIC0xMDcsNiArMTA3LDcgQEANCiBDb3B5cmln aHQgQGNvcHlyaWdodHt9IDIwMjIgSnVzdGluIFZlaWxsZXV4QCoNCiBDb3B5cmlnaHQgQGNvcHly aWdodHt9IDIwMjIgUmVpbHkgU2llZ2VsQCoNCiBDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMjIg U2ltb24gU3RyZWl0QCoNCitDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMjIgSm9obiBLZWhheWlh c0AqDQogDQogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29y IG1vZGlmeSB0aGlzIGRvY3VtZW50DQogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBE b2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4zIG9yDQpAQCAtNjE4Nyw2ICs2MTg4LDIy IEBAIEludm9raW5nIGd1aXggc2hlbGwNCiBndWl4IHNoZWxsIC0tY29udGFpbmVyIC0tZXhwb3Nl PSRIT01FPS9leGNoYW5nZSBndWlsZSAtLSBndWlsZQ0KIEBlbmQgZXhhbXBsZQ0KIA0KK0BpdGVt IC0tZW11bGF0ZS1maHMNCitAaXRlbSAtRg0KK0ZvciBjb250YWluZXJzLCBlbXVsYXRlIGEgRmls ZXN5c3RlbSBIaWVyYXJjaHkgU3RhbmRhcmQgKEZIUykNCitjb25maWd1cmF0aW9uIHdpdGhpbiB0 aGUgY29udGFpbmVyLCBzZWUNCitAdXJlZntodHRwczovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlv bi5vcmcvZmhzLnNodG1sLCB0aGUgb2ZmaWNpYWwNCitzcGVjaWZpY2F0aW9ufS4gIEFzIEd1aXgg ZGV2aWF0ZXMgZnJvbSB0aGUgRkhTIHNwZWNpZmljYXRpb24sIHRoaXMNCitvcHRpb24gc2V0cyB1 cCB0aGUgY29udGFpbmVyIHRvIG1vcmUgY2xvc2VseSBtaW1pYyB0aGF0IG9mIG90aGVyDQorR05V L0xpbnV4IGRpc3RyaWJ1dGlvbnMuICBUaGlzIGlzIHVzZWZ1bCBmb3IgcmVwcm9kdWNpbmcgb3Ro ZXINCitkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMsIHRlc3RpbmcsIGFuZCB1c2luZyBwcm9ncmFt cyB3aGljaCBleHBlY3QgdGhlDQorRkhTIHNwZWNpZmljYXRpb24gdG8gYmUgZm9sbG93ZWQuICBX aXRoIHRoaXMgb3B0aW9uLCB0aGUgY29udGFpbmVyIHdpbGwNCitpbmNsdWRlIGEgdmVyc2lvbiBv ZiBAY29kZXtnbGliY30gd2hpY2ggd2lsbCByZWFkDQorQGNvZGV7L2V0Yy9sZC5zby5jYWNoZX0g d2l0aGluIHRoZSBjb250YWluZXIgZm9yIHRoZSBzaGFyZWQgbGlicmFyeQ0KK2NhY2hlIChjb250 cmFyeSB0byBAY29kZXtnbGliY30gaW4gcmVndWxhciBHdWl4IHVzYWdlKSBhbmQgc2V0IHVwIHRo ZQ0KK2V4cGVjdGVkIEZIUyBkaXJlY3RvcmllczogQGNvZGV7L2Jpbn0sIEBjb2Rley9ldGN9LCBA Y29kZXsvbGlifSwgYW5kDQorQGNvZGV7L3Vzcn0gZnJvbSB0aGUgY29udGFpbmVyJ3MgcHJvZmls ZS4NCisNCiBAaXRlbSAtLXJlYnVpbGQtY2FjaGUNCiBAY2luZGV4IGNhY2hpbmcsIG9mIHByb2Zp bGVzDQogQGNpbmRleCBjYWNoaW5nLCBpbiBAY29tbWFuZHtndWl4IHNoZWxsfQ0KQEAgLTY2MDQs NiArNjYyMSwyMiBAQCBJbnZva2luZyBndWl4IGVudmlyb25tZW50DQogZ3VpeCBlbnZpcm9ubWVu dCAtLWNvbnRhaW5lciAtLWV4cG9zZT0kSE9NRT0vZXhjaGFuZ2UgLS1hZC1ob2MgZ3VpbGUgLS0g Z3VpbGUNCiBAZW5kIGV4YW1wbGUNCiANCitAaXRlbSAtLWVtdWxhdGUtZmhzDQorQGl0ZW0gLUYN CitGb3IgY29udGFpbmVycywgZW11bGF0ZSBhIEZpbGVzeXN0ZW0gSGllcmFyY2h5IFN0YW5kYXJk IChGSFMpDQorY29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIGNvbnRhaW5lciwgc2VlDQorQHVyZWZ7 aHR0cHM6Ly9yZWZzcGVjcy5saW51eGZvdW5kYXRpb24ub3JnL2Zocy5zaHRtbCwgdGhlIG9mZmlj aWFsDQorc3BlY2lmaWNhdGlvbn0uICBBcyBHdWl4IGRldmlhdGVzIGZyb20gdGhlIEZIUyBzcGVj aWZpY2F0aW9uLCB0aGlzDQorb3B0aW9uIHNldHMgdXAgdGhlIGNvbnRhaW5lciB0byBtb3JlIGNs b3NlbHkgbWltaWMgdGhhdCBvZiBvdGhlcg0KK0dOVS9MaW51eCBkaXN0cmlidXRpb25zLiAgVGhp cyBpcyB1c2VmdWwgZm9yIHJlcHJvZHVjaW5nIG90aGVyDQorZGV2ZWxvcG1lbnQgZW52aXJvbm1l bnRzLCB0ZXN0aW5nLCBhbmQgdXNpbmcgcHJvZ3JhbXMgd2hpY2ggZXhwZWN0IHRoZQ0KK0ZIUyBz cGVjaWZpY2F0aW9uIHRvIGJlIGZvbGxvd2VkLiAgV2l0aCB0aGlzIG9wdGlvbiwgdGhlIGNvbnRh aW5lciB3aWxsDQoraW5jbHVkZSBhIHZlcnNpb24gb2YgQGNvZGV7Z2xpYmN9IHdoaWNoIHdpbGwg cmVhZA0KK0Bjb2Rley9ldGMvbGQuc28uY2FjaGV9IHdpdGhpbiB0aGUgY29udGFpbmVyIGZvciB0 aGUgc2hhcmVkIGxpYnJhcnkNCitjYWNoZSAoY29udHJhcnkgdG8gQGNvZGV7Z2xpYmN9IGluIHJl Z3VsYXIgR3VpeCB1c2FnZSkgYW5kIHNldCB1cCB0aGUNCitleHBlY3RlZCBGSFMgZGlyZWN0b3Jp ZXM6IEBjb2Rley9iaW59LCBAY29kZXsvZXRjfSwgQGNvZGV7L2xpYn0sIGFuZA0KK0Bjb2Rley91 c3J9IGZyb20gdGhlIGNvbnRhaW5lcidzIHByb2ZpbGUuDQorDQogQGVuZCB0YWJsZQ0KIA0KIEBj b21tYW5ke2d1aXggZW52aXJvbm1lbnR9DQpkaWZmIC0tZ2l0IGEvZ3VpeC9zY3JpcHRzL2Vudmly b25tZW50LnNjbSBiL2d1aXgvc2NyaXB0cy9lbnZpcm9ubWVudC5zY20NCmluZGV4IDI0OTMxMzQ0 NzAuLmY1YjQxNzQ1N2QgMTAwNjQ0DQotLS0gYS9ndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2Nt DQorKysgYi9ndWl4L3NjcmlwdHMvZW52aXJvbm1lbnQuc2NtDQpAQCAtMiw2ICsyLDcgQEANCiA7 OzsgQ29weXJpZ2h0IMKpIDIwMTQsIDIwMTUsIDIwMTggRGF2aWQgVGhvbXBzb24gPGRhdmV0QGdu dS5vcmc+DQogOzs7IENvcHlyaWdodCDCqSAyMDE1LTIwMjIgTHVkb3ZpYyBDb3VydMOocyA8bHVk b0BnbnUub3JnPg0KIDs7OyBDb3B5cmlnaHQgwqkgMjAxOCBNaWtlIEdlcndpdHogPG10Z0BnbnUu b3JnPg0KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMiBKb2huIEtlaGF5aWFzIDxqb2huLmtlaGF5aWFz QHByb3Rvbm1haWwuY29tPg0KIDs7Ow0KIDs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3Vp eC4NCiA7OzsNCkBAIC0xMjAsNiArMTIxLDkgQEAgKGRlZmluZSAoc2hvdy1lbnZpcm9ubWVudC1v cHRpb25zLWhlbHApDQogICAgICAgLS1leHBvc2U9U1BFQyAgICAgIGZvciBjb250YWluZXJzLCBl eHBvc2UgcmVhZC1vbmx5IGhvc3QgZmlsZSBzeXN0ZW0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgYWNjb3JkaW5nIHRvIFNQRUMiKSkNCiAgIChkaXNwbGF5IChHXyAiDQorICAtRiwgLS1lbXVs YXRlLWZocyAgICAgIGZvciBjb250YWluZXJzLCBlbXVsYXRlIHRoZSBGaWxlc3lzdGVtIEhpZXJh cmNoeQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCAoRkhTKSIpKQ0KKyAgKGRp c3BsYXkgKEdfICINCiAgIC12LCAtLXZlcmJvc2l0eT1MRVZFTCAgdXNlIHRoZSBnaXZlbiB2ZXJi b3NpdHkgTEVWRUwiKSkNCiAgIChkaXNwbGF5IChHXyAiDQogICAgICAgLS1ib290c3RyYXAgICAg ICAgIHVzZSBib290c3RyYXAgYmluYXJpZXMgdG8gYnVpbGQgdGhlIGVudmlyb25tZW50IikpKQ0K QEAgLTI1Niw2ICsyNjAsOSBAQCAoZGVmaW5lICVvcHRpb25zDQogICAgICAgICAgICAgICAgICAg IChhbGlzdC1jb25zICdmaWxlLXN5c3RlbS1tYXBwaW5nDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzcGVjaWZpY2F0aW9uLT5maWxlLXN5c3RlbS1tYXBwaW5nIGFyZyAjZikNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KSkpDQorICAgICAgICAgKG9wdGlv biAnKCNcRiAiZW11bGF0ZS1maHMiKSAjZiAjZg0KKyAgICAgICAgICAgICAgICAgKGxhbWJkYSAo b3B0IG5hbWUgYXJnIHJlc3VsdCkNCisgICAgICAgICAgICAgICAgICAgKGFsaXN0LWNvbnMgJ2Vt dWxhdGUtZmhzPyAjdCByZXN1bHQpKSkNCiAgICAgICAgICAob3B0aW9uICcoI1xyICJyb290Iikg I3QgI2YNCiAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG9wdCBuYW1lIGFyZyByZXN1bHQpDQog ICAgICAgICAgICAgICAgICAgIChhbGlzdC1jb25zICdnYy1yb290IGFyZyByZXN1bHQpKSkNCkBA IC0zNzUsNiArMzgyLDY1IEBAIChkZWZpbmUgKGlucHV0cy0+cmVxdWlzaXRlcyBpbnB1dHMpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LT5yZXF1aXNpdGVzIGlucHV0 cykpKQ0KICAgICAocmV0dXJuIChkZWxldGUtZHVwbGljYXRlcyAoY29uY2F0ZW5hdGUgcmVxcykp KSkpDQogDQorKGRlZmluZSAoc2V0dXAtZmhzIHByb2ZpbGUpDQorICAiU2V0dXAgdGhlIEZIUyBj b250YWluZXIgYnkgY3JlYXRpbmcgYW5kIGxpbmtpbmcgZXhwZWN0ZWQgZGlyZWN0b3JpZXMgZnJv bQ0KK1BST0ZJTEUgKG90aGVyIGJpbmQgbW91bnRzIGFyZSBkb25lIGluIExBVU5DSC1FTlZJUk9O TUVOVC9DT05UQUlORVIpLA0KK3Byb3ZpZGluZyBhIHN5bWxpbmsgZm9yIENDIGlmIEdDQyBpcyBp biB0aGUgY29udGFpbmVyIFBST0ZJTEUsIGFuZCB3cml0aW5nDQorL2V0Yy9sZC5zby5jb25mLiIN CisgIDs7IEFkZGl0aW9uYWwgc3ltbGlua3MgZm9yIGFuIEZIUyBjb250YWluZXIuDQorICAoZGVm aW5lIGZocy1zeW1saW5rcw0KKyAgICBgKCgiL2xpYiIgLiAiL3Vzci9saWIiKQ0KKyAgICAgICwo aWYgKHRhcmdldC02NGJpdD8pDQorICAgICAgICAgICAnKCIvbGliIiAuICIvbGliNjQiKQ0KKyAg ICAgICAgICAgJygiL2xpYiIgLiAiL2xpYjMyIikpDQorICAgICAgKCIvYmluIiAuICIvdXNyL2Jp biIpDQorICAgICAgKCIvc2JpbiIgLiAiL3Vzci9zYmluIikpKQ0KKw0KKyAgOzsgQSBwcm9jZWR1 cmUgdG8gc3ltbGluayB0aGUgY29udGVudHMgKGF0IHRoZSB0b3AgbGV2ZWwpIG9mIGEgZGlyZWN0 b3J5LA0KKyAgOzsgZXhjbHVkaW5nIHRoZSBkaXJlY3RvcnkgaXRzZWxmIGFuZCBwYXJlbnQsIGFs b25nIHdpdGggYW55IG90aGVycyBwcm92aWRlZA0KKyAgOzsgaW4gRVhDTFVERS4NCisgIChkZWZp bmUqIChsaW5rLWNvbnRlbnRzIGRpciAjOmtleSAoZXhjbHVkZSAnKCkpKQ0KKyAgICAoZm9yLWVh Y2ggKGxhbWJkYSAoZmlsZSkNCisgICAgICAgICAgICAgICAgKHN5bWxpbmsgKHN0cmluZy1hcHBl bmQgcHJvZmlsZSBkaXIgIi8iIGZpbGUpDQorICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctYXBwZW5kIGRpciAiLyIgZmlsZSkpKQ0KKyAgICAgICAgICAgICAgKHNjYW5kaXIgKHN0cmlu Zy1hcHBlbmQgcHJvZmlsZSBkaXIpDQorICAgICAgICAgICAgICAgICAgICAgICAobmVnYXRlIChj dXQgbWVtYmVyIDw+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu ZCBleGNsdWRlICcoIi4iICIuLiIgKSkpKSkpKQ0KKw0KKyAgOzsgVGhlIEZIUyBjb250YWluZXIg c2V0cyB1cCB0aGUgZXhwZWN0ZWQgZmlsZXN5c3RlbSB0aHJvdWdoIE1BUFBJTkdTIHdpdGgNCisg IDs7IEZIUy1NQVBQSU5HUyAoaW4gTEFVTkNILUVOVklST05NRU5UL0NPTlRBSU5FUiksIHRoZSBz eW1saW5rcyB0aHJvdWdoDQorICA7OyBGSFMtU1lNTElOS1MsIGFuZCBsaW5raW5nIHRoZSBjb250 ZW50cyBvZiBQUk9GSUxFL2JpbiBhbmQgUFJPRklMRS9ldGMNCisgIDs7IHVzaW5nIExJTkstQ09O VEVOVFMsIGFzIHRoZXNlIGJvdGggaGF2ZSBvciB3aWxsIGhhdmUgY29udGVudHMgZm9yIGENCisg IDs7IG5vbi1GSFMgY29udGFpbmVyIHNvIG11c3QgYmUgaGFuZGxlZCBzZXBhcmF0ZWx5Lg0KKyAg KG1rZGlyLXAgIi91c3IiKQ0KKyAgKGZvci1lYWNoIChsYW1iZGEgKGxpbmspDQorICAgICAgICAg ICAgICAoaWYgKGZpbGUtZXhpc3RzPyAoY2FyIGxpbmspKQ0KKyAgICAgICAgICAgICAgICAgIChz eW1saW5rIChjYXIgbGluaykgKGNkciBsaW5rKSkpKQ0KKyAgICAgICAgICAgIGZocy1zeW1saW5r cykNCisgIChsaW5rLWNvbnRlbnRzICIvYmluIiAjOmV4Y2x1ZGUgJygic2giKSkNCisgIChta2Rp ci1wICIvZXRjIikNCisgIChsaW5rLWNvbnRlbnRzICIvZXRjIikNCisNCisgIDs7IFByb3ZpZGUg YSBmcmVxdWVudGx5IGV4cGVjdGVkICdjYycgc3ltbGluayB0byBnY2MgKGluIGNhc2UgaXQgaXMg aW4NCisgIDs7IFBST0ZJTEUpLCB0aG91Z2ggdGhpcyBjb3VsZCBhbHNvIGJlIGRvbmUgYnkgdGhl IHVzZXIgaW4gdGhlIGNvbnRhaW5lciwNCisgIDs7IGUuZy4gaW4gJEhPTUUvLmxvY2FsL2JpbiBh bmQgYWRkaW5nIHRoYXQgdG8gJFBBVEguICBOb3RlOiB3ZSBkbyB0aGlzIGluDQorICA7OyAvYmlu IHNpbmNlIHRoYXQgYWxyZWFkeSBoYXMgdGhlIHNoIHN5bWxpbmsgYW5kIHRoZSBvdGhlciAob3B0 aW9uYWwpIEZIUw0KKyAgOzsgYmluIGRpcmVjdG9yaWVzIHdpbGwgbGluayB0byAvYmluLg0KKyAg KGxldCAoKGdjYy1wYXRoIChzdHJpbmctYXBwZW5kIHByb2ZpbGUgIi9iaW4vZ2NjIikpKQ0KKyAg ICAoaWYgKGZpbGUtZXhpc3RzPyBnY2MtcGF0aCkNCisgICAgICAgIChzeW1saW5rIGdjYy1wYXRo ICIvYmluL2NjIikpKQ0KKw0KKyAgOzsgR3VpeCdzIGxkY29uZmlnIGRvZXNuJ3Qgc2VhcmNoIGlu IEZIUyBkZWZhdWx0IGxvY2F0aW9ucywgc28gcHJvdmlkZSBhDQorICA7OyBtaW5pbWFsIGxkLnNv LmNvbmYuDQorICAoY2FsbC13aXRoLW91dHB1dC1maWxlICIvZXRjL2xkLnNvLmNvbmYiDQorICAg IChsYW1iZGEgKHBvcnQpDQorICAgICAgKGZvci1lYWNoIChsYW1iZGEgKGRpcmVjdG9yeSkNCisg ICAgICAgICAgICAgICAgICAoZGlzcGxheSBkaXJlY3RvcnkgcG9ydCkNCisgICAgICAgICAgICAg ICAgICAobmV3bGluZSBwb3J0KSkNCisgICAgICAgICAgICAgICAgOzsgL2xpYi9uc3MgaXMgbmVl ZGVkIGFzIEd1aXgncyBuc3MgcHV0cyBsaWJyYXJpZXMNCisgICAgICAgICAgICAgICAgOzsgdGhl cmUgcmF0aGVyIHRoYW4gaW4gdGhlIGxpYiBkaXJlY3RvcnkuDQorICAgICAgICAgICAgICAgICco Ii9saWIiICIvbGliL25zcyIpKSkpKQ0KKw0KIChkZWZpbmUgKHN0YXR1cy0+ZXhpdC1jb2RlIHN0 YXR1cykNCiAgICJDb21wdXRlIHRoZSBleGl0IGNvZGUgbWFkZSBmcm9tIFNUQVRVUywgYSB2YWx1 ZSBhcyByZXR1cm5lZCBieSAnd2FpdHBpZCcsDQogYW5kIHN1aXRhYmxlIGZvciAnZXhpdCcuIg0K QEAgLTM4NiwxMSArNDUyLDEzIEBAIChkZWZpbmUgZXhpdC9zdGF0dXMgKGNvbXBvc2UgZXhpdCBz dGF0dXMtPmV4aXQtY29kZSkpDQogKGRlZmluZSBwcmltaXRpdmUtZXhpdC9zdGF0dXMgKGNvbXBv c2UgcHJpbWl0aXZlLWV4aXQgc3RhdHVzLT5leGl0LWNvZGUpKQ0KIA0KIChkZWZpbmUqIChsYXVu Y2gtZW52aXJvbm1lbnQgY29tbWFuZCBwcm9maWxlIG1hbmlmZXN0DQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjOmtleSBwdXJlPyAod2hpdGUtbGlzdCAnKCkpKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIzprZXkgcHVyZT8gKHdoaXRlLWxpc3QgJygpKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW11bGF0ZS1maHM/KQ0KICAgIlJ1biBDT01NQU5EIGluIGEg bmV3IGVudmlyb25tZW50IGNvbnRhaW5pbmcgSU5QVVRTLCB1c2luZyB0aGUgbmF0aXZlIHNlYXJj aA0KIHBhdGhzIGRlZmluZWQgYnkgdGhlIGxpc3QgUEFUSFMuICBXaGVuIFBVUkU/LCBwcmUtZXhp c3RpbmcgZW52aXJvbm1lbnQNCiB2YXJpYWJsZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHNldHRpbmcg dGhlIG5ldyBvbmVzLCBleGNlcHQgdGhvc2UgbWF0Y2hpbmcgdGhlDQotcmVnZXhwcyBpbiBXSElU RS1MSVNULiINCityZWdleHBzIGluIFdISVRFLUxJU1QuICBXaGVuIEVNVUxBVEUtRkhTPywgZmly c3Qgc2V0IHVwIGFuIEZIUyBlbnZpcm9ubWVudA0KK3dpdGggJFBBVEggYW5kIGdlbmVyYXRlIHRo ZSBMRCBjYWNoZS4iDQogICA7OyBQcm9wZXJseSBoYW5kbGUgU0lHSU5ULCBzbyBwcmVzc2luZyBD LWMgaW4gYW4gaW50ZXJhY3RpdmUgdGVybWluYWwNCiAgIDs7IGFwcGxpY2F0aW9uIHdvcmtzLg0K ICAgKHNpZ2FjdGlvbiBTSUdJTlQgU0lHX0RGTCkNCkBAIC00MDYsNiArNDc0LDEyIEBAIChkZWZp bmUqIChsYXVuY2gtZW52aXJvbm1lbnQgY29tbWFuZCBwcm9maWxlIG1hbmlmZXN0DQogICAgICgo cHJvZ3JhbSAuIGFyZ3MpDQogICAgICAoY2F0Y2ggJ3N5c3RlbS1lcnJvcg0KICAgICAgICAobGFt YmRhICgpDQorICAgICAgICAgKHdoZW4gZW11bGF0ZS1maHM/DQorICAgICAgICAgICA7OyBXaGVu IHJ1bm5pbmcgaW4gYSBjb250YWluZXIgd2l0aCBFTVVMQVRFLUZIUz8sIHN1cHBsZW1lbnQgJFBB VEgNCisgICAgICAgICAgIDs7IChvcHRpb25hbCwgYnV0IHRvIGJldHRlciBtYXRjaCBGSFMgZXhw ZWN0YXRpb25zKSwgYW5kIGdlbmVyYXRlDQorICAgICAgICAgICA7OyAvZXRjL2xkLnNvLmNhY2hl Lg0KKyAgICAgICAgICAgKHNldGVudiAiUEFUSCIgIi9iaW46L3Vzci9iaW46L3NiaW46L3Vzci9z YmluOiRQQVRIIikNCisgICAgICAgICAgIChpbnZva2UgImxkY29uZmlnIiAiLVgiKSkNCiAgICAg ICAgICAoYXBwbHkgZXhlY2xwIHByb2dyYW0gcHJvZ3JhbSBhcmdzKSkNCiAgICAgICAgKGxhbWJk YSBfDQogICAgICAgICAgOzsgUmVwb3J0IHRoZSBlcnJvciBmcm9tIGhlcmUgYmVjYXVzZSB0aGUg cGFyZW50IHByb2Nlc3MgY2Fubm90DQpAQCAtNjA0LDE1ICs2NzgsMjAgQEAgKGRlZmluZSogKGxh dW5jaC1lbnZpcm9ubWVudC9mb3JrIGNvbW1hbmQgcHJvZmlsZSBtYW5pZmVzdA0KIA0KIChkZWZp bmUqIChsYXVuY2gtZW52aXJvbm1lbnQvY29udGFpbmVyICM6a2V5IGNvbW1hbmQgYmFzaCB1c2Vy IHVzZXItbWFwcGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cm9maWxlIG1hbmlmZXN0IGxpbmstcHJvZmlsZT8gbmV0d29yaz8NCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtYXAtY3dkPyAod2hpdGUtbGlzdCAnKCkpKQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1jd2Q/IGVtdWxhdGUtZmhzPyAo c2V0dXAtaG9vayAjZikNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo d2hpdGUtbGlzdCAnKCkpKQ0KICAgIlJ1biBDT01NQU5EIHdpdGhpbiBhIGNvbnRhaW5lciB0aGF0 IGZlYXR1cmVzIHRoZSBzb2Z0d2FyZSBpbiBQUk9GSUxFLg0KLUVudmlyb25tZW50IHZhcmlhYmxl cyBhcmUgc2V0IGFjY29yZGluZyB0byB0aGUgc2VhcmNoIHBhdGhzIG9mIE1BTklGRVNULg0KLVRo ZSBnbG9iYWwgc2hlbGwgaXMgQkFTSCwgYSBmaWxlIG5hbWUgZm9yIGEgR05VIEJhc2ggYmluYXJ5 IGluIHRoZQ0KLXN0b3JlLiAgV2hlbiBORVRXT1JLPywgYWNjZXNzIHRvIHRoZSBob3N0IHN5c3Rl bSBuZXR3b3JrIGlzIHBlcm1pdHRlZC4NCi1VU0VSLU1BUFBJTkdTLCBhIGxpc3Qgb2YgZmlsZSBz eXN0ZW0gbWFwcGluZ3MsIGNvbnRhaW5zIHRoZSB1c2VyLXNwZWNpZmllZA0KLWhvc3QgZmlsZSBz eXN0ZW1zIHRvIG1vdW50IGluc2lkZSB0aGUgY29udGFpbmVyLiAgSWYgVVNFUiBpcyBub3QgI2Ys IGVhY2gNCi10YXJnZXQgb2YgVVNFUi1NQVBQSU5HUyB3aWxsIGJlIHJlLXdyaXR0ZW4gcmVsYXRp dmUgdG8gJy9ob21lL1VTRVInLCBhbmQgVVNFUg0KLXdpbGwgYmUgdXNlZCBmb3IgdGhlIHBhc3N3 ZCBlbnRyeS4gIExJTkstUFJPRklMRT8gY3JlYXRlcyBhIHN5bWJvbGljIGxpbmsgZnJvbQ0KK0Vu dmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0IGFjY29yZGluZyB0byB0aGUgc2VhcmNoIHBhdGhz IG9mIE1BTklGRVNULiAgVGhlDQorZ2xvYmFsIHNoZWxsIGlzIEJBU0gsIGEgZmlsZSBuYW1lIGZv ciBhIEdOVSBCYXNoIGJpbmFyeSBpbiB0aGUgc3RvcmUuICBXaGVuDQorTkVUV09SSz8sIGFjY2Vz cyB0byB0aGUgaG9zdCBzeXN0ZW0gbmV0d29yayBpcyBwZXJtaXR0ZWQuICBVU0VSLU1BUFBJTkdT LCBhDQorbGlzdCBvZiBmaWxlIHN5c3RlbSBtYXBwaW5ncywgY29udGFpbnMgdGhlIHVzZXItc3Bl Y2lmaWVkIGhvc3QgZmlsZSBzeXN0ZW1zIHRvDQorbW91bnQgaW5zaWRlIHRoZSBjb250YWluZXIu ICBJZiBVU0VSIGlzIG5vdCAjZiwgZWFjaCB0YXJnZXQgb2YgVVNFUi1NQVBQSU5HUw0KK3dpbGwg YmUgcmUtd3JpdHRlbiByZWxhdGl2ZSB0byAnL2hvbWUvVVNFUicsIGFuZCBVU0VSIHdpbGwgYmUg dXNlZCBmb3IgdGhlDQorcGFzc3dkIGVudHJ5LiAgV2hlbiBFTVVMQVRFLUZIUz8sIHNldCB1cCB0 aGUgY29udGFpbmVyIHRvIGZvbGxvdyB0aGUNCitGaWxlc3lzdGVtIEhpZXJhcmNoeSBTdGFuZGFy ZCBhbmQgcHJvdmlkZSBhIGdsaWJjIHRoYXQgcmVhZHMgdGhlIGNhY2hlIGZyb20NCisvZXRjL2xk LnNvLmNhY2hlLiAgU0VUVVAtSE9PSyBpcyBhbiBhZGRpdGlvbmFsIHNldHVwIHByb2NlZHVyZSB0 byBiZSBjYWxsZWQsIGFzIGENCitsaXN0IHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYW5kIGFyZ3Vt ZW50cywgY3VycmVudGx5IG9ubHkgdXNlZCB3aXRoIHRoZQ0KK0VNVUxBVEUtRkhTPyBvcHRpb24u ICBMSU5LLVBST0ZJTEU/IGNyZWF0ZXMgYSBzeW1ib2xpYyBsaW5rIGZyb20NCiB+Ly5ndWl4LXBy b2ZpbGUgdG8gdGhlIGVudmlyb25tZW50IHByb2ZpbGUuDQogDQogUHJlc2VydmUgZW52aXJvbm1l bnQgdmFyaWFibGVzIHdob3NlIG5hbWUgbWF0Y2hlcyB0aGUgb25lIG9mIHRoZSByZWdleHBzIGlu DQpAQCAtNjIxLDYgKzcwMCwyMSBAQCAoZGVmaW5lKiAobGF1bmNoLWVudmlyb25tZW50L2NvbnRh aW5lciAjOmtleSBjb21tYW5kIGJhc2ggdXNlciB1c2VyLW1hcHBpbmdzDQogICAgIChhbmQgKGZp bGUtZXhpc3RzPyAoZmlsZS1zeXN0ZW0tbWFwcGluZy1zb3VyY2UgbWFwcGluZykpDQogICAgICAg ICAgKGZpbGUtc3lzdGVtLW1hcHBpbmctPmJpbmQtbW91bnQgbWFwcGluZykpKQ0KIA0KKyAgOzsg RmlsZSBzeXN0ZW0gbWFwcGluZ3MgZm9yIGFuIEZIUyBjb250YWluZXIsIHdoZXJlIHRoZSBlbnRp cmUgZGlyZWN0b3J5IGNhbg0KKyAgOzsgYmUgbWFwcGVkLiAgT3RoZXJzIChiaW4gYW5kIGV0Yykg d2lsbCBhbHJlYWR5IGhhdmUgY29udGVudHMgYW5kIG5lZWQgdG8NCisgIDs7IHVzZSBMSU5LLUNP TlRFTlRTIChkZWZpbmVkIGluIFNFVFVQLUZIUykgdG8gc3ltbGluayB0aGUgZGlyZWN0b3J5DQor ICA7OyBjb250ZW50cy4NCisgIChkZWZpbmUgZmhzLW1hcHBpbmdzDQorICAgIChtYXAgKGxhbWJk YSAobWFwcGluZykNCisgICAgICAgICAgIChmaWxlLXN5c3RlbS1tYXBwaW5nDQorICAgICAgICAg ICAgKHNvdXJjZSAoc3RyaW5nLWFwcGVuZCBwcm9maWxlIChjYXIgbWFwcGluZykpKQ0KKyAgICAg ICAgICAgICh0YXJnZXQgKGNkciBtYXBwaW5nKSkpKQ0KKyAgICAgICAgICcoKCIvbGliIiAgICAg LiAiL2xpYiIpDQorICAgICAgICAgICAoIi9pbmNsdWRlIiAuICIvdXNyL2luY2x1ZGUiKQ0KKyAg ICAgICAgICAgKCIvc2JpbiIgICAgLiAiL3NiaW4iKQ0KKyAgICAgICAgICAgKCIvbGliZXhlYyIg LiAiL3Vzci9saWJleGVjIikNCisgICAgICAgICAgICgiL3NoYXJlIiAgIC4gIi91c3Ivc2hhcmUi KSkpKQ0KKw0KICAgKG1sZXQgJXN0b3JlLW1vbmFkICgocmVxcyAoaW5wdXRzLT5yZXF1aXNpdGVz DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAoZGlyZWN0LXN0b3JlLXBhdGgg YmFzaCkgcHJvZmlsZSkpKSkNCiAgICAgKHJldHVybg0KQEAgLTY3NSw2ICs3NjksMTEgQEAgKGRl ZmluZSogKGxhdW5jaC1lbnZpcm9ubWVudC9jb250YWluZXIgIzprZXkgY29tbWFuZCBiYXNoIHVz ZXIgdXNlci1tYXBwaW5ncw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZpbHRlci1tYXAgb3B0aW9uYWwtbWFwcGluZy0+ZnMNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICVuZXR3b3JrLWZpbGUtbWFwcGluZ3MpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCkpDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDs7IE1hcHBpbmdzIGZvciBhbiBGSFMgY29udGFpbmVyLg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZW11bGF0ZS1maHM/DQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyLW1hcCBvcHRpb25hbC1tYXBw aW5nLT5mcw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmhzLW1hcHBpbmdzKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JygpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwIGZpbGUtc3lzdGVt LW1hcHBpbmctPmJpbmQtbW91bnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXBwaW5ncykpKSkNCiAgICAgICAgKGV4aXQvc3RhdHVzDQpAQCAtNzAyLDYgKzgwMSwx MiBAQCAoZGVmaW5lKiAobGF1bmNoLWVudmlyb25tZW50L2NvbnRhaW5lciAjOmtleSBjb21tYW5k IGJhc2ggdXNlciB1c2VyLW1hcHBpbmdzDQogICAgICAgICAgICAgKG1rZGlyLXAgaG9tZS1kaXIp DQogICAgICAgICAgICAgKHNldGVudiAiSE9NRSIgaG9tZS1kaXIpDQogDQorICAgICAgICAgICAg OzsgQ2FsbCBhbiBhZGRpdGlvbmFsIHNldHVwIHByb2NlZHVyZSwgaWYgcHJvdmlkZWQuICBDdXJy ZW50bHkNCisgICAgICAgICAgICA7OyB0aGlzIGlzIG9ubHkgdXNlZCB3aXRoIHRoZSBFTVVMQVRF LUZIUz8gb3B0aW9uLCBidXQgY291bGQgYmUNCisgICAgICAgICAgICA7OyBleHBhbmRlZCB0byBh IGdlbmVyYWwgbGlzdCBvZiBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkLg0KKyAgICAgICAgICAgIChp ZiBzZXR1cC1ob29rDQorICAgICAgICAgICAgICAgIChhcHBseSAoY2FyIHNldHVwLWhvb2spIChj ZHIgc2V0dXAtaG9vaykpKQ0KKw0KICAgICAgICAgICAgIDs7IElmIHJlcXVlc3RlZCwgbGluayAk R1VJWF9FTlZJUk9OTUVOVCB0byAkSE9NRS8uZ3VpeC1wcm9maWxlOw0KICAgICAgICAgICAgIDs7 IHRoaXMgYWxsb3dzIHByb2dyYW1zIGV4cGVjdGluZyB0aGF0IHBhdGggdG8gY29udGludWUgd29y a2luZyBhcw0KICAgICAgICAgICAgIDs7IGV4cGVjdGVkIHdpdGhpbiBhIGNvbnRhaW5lci4NCkBA IC03NDMsNyArODQ4LDggQEAgKGRlZmluZSogKGxhdW5jaC1lbnZpcm9ubWVudC9jb250YWluZXIg IzprZXkgY29tbWFuZCBiYXNoIHVzZXIgdXNlci1tYXBwaW5ncw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpZiBsaW5rLXByb2ZpbGU/DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kIGhvbWUtZGlyICIvLmd1aXgtcHJvZmlsZSIp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUpDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3QgIzpwdXJlPyAjZikpKQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0ICM6cHVyZT8gI2YNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjOmVtdWxhdGUtZmhzPyBlbXVsYXRlLWZocz8pKSkN CiAgICAgICAgICAgIzpndWVzdC11aWQgdWlkDQogICAgICAgICAgICM6Z3Vlc3QtZ2lkIGdpZA0K ICAgICAgICAgICAjOm5hbWVzcGFjZXMgKGlmIG5ldHdvcms/DQpAQCAtODY3LDE2ICs5NzMsMTcg QEAgKGRlZmluZSAoZ3VpeC1lbnZpcm9ubWVudCogb3B0cykNCiAgICJSdW4gdGhlICdndWl4IGVu dmlyb25tZW50JyBjb21tYW5kIG9uIE9QVFMsIGFuIGFsaXN0IHJlc3VsdGluZyBmb3INCiBjb21t YW5kLWxpbmUgb3B0aW9uIHByb2Nlc3Npbmcgd2l0aCAncGFyc2UtY29tbWFuZC1saW5lJy4iDQog ICAod2l0aC1lcnJvci1oYW5kbGluZw0KLSAgICAobGV0KiAoKHB1cmU/ICAgICAgKGFzc29jLXJl ZiBvcHRzICdwdXJlKSkNCi0gICAgICAgICAgIChjb250YWluZXI/IChhc3NvYy1yZWYgb3B0cyAn Y29udGFpbmVyPykpDQotICAgICAgICAgICAobGluay1wcm9mPyAoYXNzb2MtcmVmIG9wdHMgJ2xp bmstcHJvZmlsZT8pKQ0KLSAgICAgICAgICAgKG5ldHdvcms/ICAgKGFzc29jLXJlZiBvcHRzICdu ZXR3b3JrPykpDQotICAgICAgICAgICAobm8tY3dkPyAgICAoYXNzb2MtcmVmIG9wdHMgJ25vLWN3 ZD8pKQ0KLSAgICAgICAgICAgKHVzZXIgICAgICAgKGFzc29jLXJlZiBvcHRzICd1c2VyKSkNCi0g ICAgICAgICAgIChib290c3RyYXA/IChhc3NvYy1yZWYgb3B0cyAnYm9vdHN0cmFwPykpDQotICAg ICAgICAgICAoc3lzdGVtICAgICAoYXNzb2MtcmVmIG9wdHMgJ3N5c3RlbSkpDQotICAgICAgICAg ICAocHJvZmlsZSAgICAoYXNzb2MtcmVmIG9wdHMgJ3Byb2ZpbGUpKQ0KLSAgICAgICAgICAgKGNv bW1hbmQgICAgKG9yIChhc3NvYy1yZWYgb3B0cyAnZXhlYykNCisgICAgKGxldCogKChwdXJlPyAg ICAgICAgKGFzc29jLXJlZiBvcHRzICdwdXJlKSkNCisgICAgICAgICAgIChjb250YWluZXI/ICAg KGFzc29jLXJlZiBvcHRzICdjb250YWluZXI/KSkNCisgICAgICAgICAgIChsaW5rLXByb2Y/ICAg KGFzc29jLXJlZiBvcHRzICdsaW5rLXByb2ZpbGU/KSkNCisgICAgICAgICAgIChuZXR3b3JrPyAg ICAgKGFzc29jLXJlZiBvcHRzICduZXR3b3JrPykpDQorICAgICAgICAgICAobm8tY3dkPyAgICAg IChhc3NvYy1yZWYgb3B0cyAnbm8tY3dkPykpDQorICAgICAgICAgICAoZW11bGF0ZS1maHM/IChh c3NvYy1yZWYgb3B0cyAnZW11bGF0ZS1maHM/KSkNCisgICAgICAgICAgICh1c2VyICAgICAgICAg KGFzc29jLXJlZiBvcHRzICd1c2VyKSkNCisgICAgICAgICAgIChib290c3RyYXA/ICAgKGFzc29j LXJlZiBvcHRzICdib290c3RyYXA/KSkNCisgICAgICAgICAgIChzeXN0ZW0gICAgICAgKGFzc29j LXJlZiBvcHRzICdzeXN0ZW0pKQ0KKyAgICAgICAgICAgKHByb2ZpbGUgICAgICAoYXNzb2MtcmVm IG9wdHMgJ3Byb2ZpbGUpKQ0KKyAgICAgICAgICAgKGNvbW1hbmQgIChvciAoYXNzb2MtcmVmIG9w dHMgJ2V4ZWMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgU3Bhd24gYSBzaGVsbCBp ZiB0aGUgdXNlciBkaWRuJ3Qgc3BlY2lmeQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7 IGFueXRoaW5nIGluIHBhcnRpY3VsYXIuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlm IGNvbnRhaW5lcj8NCkBAIC05MTUsMTIgKzEwMjIsMjIgQEAgKGRlZmluZSAoZ3VpeC1lbnZpcm9u bWVudCogb3B0cykNCiAgICAgICAgIChsZWF2ZSAoR18gIictLXVzZXInIGNhbm5vdCBiZSB1c2Vk IHdpdGhvdXQgJy0tY29udGFpbmVyJ34lIikpKQ0KICAgICAgICh3aGVuIChhbmQgKG5vdCBjb250 YWluZXI/KSBuby1jd2Q/KQ0KICAgICAgICAgKGxlYXZlIChHXyAiLS1uby1jd2QgY2Fubm90IGJl IHVzZWQgd2l0aG91dCAtLWNvbnRhaW5lcn4lIikpKQ0KKyAgICAgICh3aGVuIChhbmQgKG5vdCBj b250YWluZXI/KSBlbXVsYXRlLWZocz8pDQorICAgICAgICAobGVhdmUgKEdfICInLS1lbXVsYXRl LWZocycgY2Fubm90IGJlIHVzZWQgd2l0aG91dCAnLS1jb250YWluZXJ+JyUiKSkpDQogDQogDQog ICAgICAgKHdpdGgtc3RvcmUvbWF5YmUgc3RvcmUNCiAgICAgICAgICh3aXRoLXN0YXR1cy12ZXJi b3NpdHkgKGFzc29jLXJlZiBvcHRzICd2ZXJib3NpdHkpDQogICAgICAgICAgIChkZWZpbmUgbWFu aWZlc3QtZnJvbS1vcHRzDQotICAgICAgICAgICAgKG9wdGlvbnMvcmVzb2x2ZS1wYWNrYWdlcyBz dG9yZSBvcHRzKSkNCisgICAgICAgICAgICAob3B0aW9ucy9yZXNvbHZlLXBhY2thZ2VzDQorICAg ICAgICAgICAgIHN0b3JlDQorICAgICAgICAgICAgIDs7IEZvciBhbiBGSFMtY29udGFpbmVyLCBh ZGQgdGhlIChoaWRkZW4pIHBhY2thZ2UgZ2xpYmMtZm9yLWZocw0KKyAgICAgICAgICAgICA7OyB3 aGljaCB1c2VzIHRoZSBnbG9iYWwgY2FjaGUgYXQgL2V0Yy9sZC5zby5jYWNoZS4NCisgICAgICAg ICAgICAgKGlmIGVtdWxhdGUtZmhzPw0KKyAgICAgICAgICAgICAgICAgKGFsaXN0LWNvbnMgJ2V4 cHJlc3Npb24NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoYWQtaG9jLXBhY2thZ2Ug IihAQCAoZ251IHBhY2thZ2VzIGJhc2UpIGdsaWJjLWZvci1maHMpIikNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9wdHMpDQorICAgICAgICAgICAgICAgICBvcHRzKSkpDQogDQogICAg ICAgICAgIChkZWZpbmUgbWFuaWZlc3QNCiAgICAgICAgICAgICAoaWYgcHJvZmlsZQ0KQEAgLTk5 NCw3ICsxMTExLDExIEBAIChkZWZpbmUgKGd1aXgtZW52aXJvbm1lbnQqIG9wdHMpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2hpdGUtbGlz dCB3aGl0ZS1saXN0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICM6bGluay1wcm9maWxlPyBsaW5rLXByb2Y/DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bmV0d29yaz8gbmV0d29yaz8NCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzptYXAt Y3dkPyAobm90IG5vLWN3ZD8pKSkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICM6bWFwLWN3ZD8gKG5vdCBuby1jd2Q/KQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmVtdWxhdGUtZmhzPyBl bXVsYXRlLWZocz8NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIzpzZXR1cC1ob29rIChpZiBlbXVsYXRlLWZocz8NCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlz dCBzZXR1cC1maHMgcHJvZmlsZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZikpKSkNCiANCiAgICAgICAgICAg ICAgICAgICAgKGVsc2UNCiAgICAgICAgICAgICAgICAgICAgIChyZXR1cm4NCmRpZmYgLS1naXQg YS90ZXN0cy9ndWl4LWVudmlyb25tZW50LWNvbnRhaW5lci5zaCBiL3Rlc3RzL2d1aXgtZW52aXJv bm1lbnQtY29udGFpbmVyLnNoDQppbmRleCAyZTIzOGM1MDFkLi4zMWU0MDk0MjBmIDEwMDY0NA0K LS0tIGEvdGVzdHMvZ3VpeC1lbnZpcm9ubWVudC1jb250YWluZXIuc2gNCisrKyBiL3Rlc3RzL2d1 aXgtZW52aXJvbm1lbnQtY29udGFpbmVyLnNoDQpAQCAtMTk3LDMgKzE5NywzNyBAQCB0aGVuIGZh bHNlOw0KIGVsc2UNCiAgICAgdGVzdCAkPyAtZ3QgMTI3DQogZmkNCisNCisjIFRlc3QgdGhlIEZp bGVzeXN0ZW0gSGllcmFyY2h5IFN0YW5kYXJkIChGSFMpIGNvbnRhaW5lciBvcHRpb24sIC0tZW11 bGF0ZS1maHMgKC1GKQ0KKw0KKyMgQXMgdGhpcyBvcHRpb24gcmVxdWlyZXMgYSBnbGliYyBwYWNr YWdlIChnbGliYy1mb3ItZmhzKSwgdHJ5IHRvIHJ1biB0aGVzZQ0KKyMgdGVzdHMgd2l0aCB0aGUg dXNlcidzIGdsb2JhbCBzdG9yZSB0byBtYWtlIGl0IGVhc2llciB0byBidWlsZCBvciBkb3dubG9h ZCBhDQorIyBzdWJzdGl0dXRlLg0KK3N0b3JlZGlyPSJgZ3VpbGUgLWMgJyh1c2UtbW9kdWxlcyAo Z3VpeCBjb25maWcpKShkaXNwbGF5ICVzdG9yZWRpciknYCINCitsb2NhbHN0YXRlZGlyPSJgZ3Vp bGUgLWMgJyh1c2UtbW9kdWxlcyAoZ3VpeCBjb25maWcpKShkaXNwbGF5ICVsb2NhbHN0YXRlZGly KSdgIg0KK05JWF9TVE9SRV9ESVI9IiRzdG9yZWRpciINCitHVUlYX0RBRU1PTl9TT0NLRVQ9IiRs b2NhbHN0YXRlZGlyL2d1aXgvZGFlbW9uLXNvY2tldC9zb2NrZXQiDQorZXhwb3J0IE5JWF9TVE9S RV9ESVIgR1VJWF9EQUVNT05fU09DS0VUDQorDQoraWYgISBndWlsZSAtYyAnKHVzZS1tb2R1bGVz IChndWl4KSkgKGV4aXQgKGZhbHNlLWlmLWV4Y2VwdGlvbiAob3Blbi1jb25uZWN0aW9uKSkpJw0K K3RoZW4NCisgICAgZXhpdCA3Nw0KK2ZpDQorDQorIyBUZXN0IHRoYXQgdGhlIGNvbnRhaW5lciBo YXMgRkhTIHNwZWNpZmljIGZpbGVzL2RpcmVjdG9yaWVzLiAgTm90ZSB0aGF0IC9iaW4NCisjIGV4 aXN0cyBpbiBhIG5vbi1GSFMgY29udGFpbmVyIGFzIGl0IHdpbGwgY29udGFpbiBzaCwgYSBzeW1s aW5rIHRvIHRoZSBiYXNoDQorIyBwYWNrYWdlLCBzbyB3ZSBkb24ndCB0ZXN0IGZvciBpdC4NCitn dWl4IGVudmlyb25tZW50IC1DIC0tZW11bGF0ZS1maHMgLS1hZC1ob2MgLS1ib290c3RyYXAgZ3Vp bGUtYm9vdHN0cmFwIFwNCisgICAgIC0tIGd1aWxlIC1jICcoZXhpdCAoYW5kIChmaWxlLWV4aXN0 cz8gIi9ldGMvbGQuc28uY2FjaGUiKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZp bGUtZXhpc3RzPyAiL2xpYiIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1l eGlzdHM/ICIvc2JpbiIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlz dHM/ICIvdXNyL2JpbiIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1leGlz dHM/ICIvdXNyL2luY2x1ZGUiKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUt ZXhpc3RzPyAiL3Vzci9saWIiKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUt ZXhpc3RzPyAiL3Vzci9saWJleGVjIikNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChm aWxlLWV4aXN0cz8gIi91c3Ivc2JpbiIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZmlsZS1leGlzdHM/ICIvdXNyL3NoYXJlIikpKScNCisNCisjIFRlc3QgdGhhdCB0aGUgbGQgY2Fj aGUgd2FzIGdlbmVyYXRlZCBhbmQgY2FuIGJlIHN1Y2Nlc3NmdWxseSByZWFkLg0KK2d1aXggZW52 aXJvbm1lbnQgLUMgLS1lbXVsYXRlLWZocyAtLWFkLWhvYyAtLWJvb3RzdHJhcCBndWlsZS1ib290 c3RyYXAgXA0KKyAgICAgLS0gZ3VpbGUgLWMgJyhleGl0IChleGVjbHAgImxkY29uZmlnIiAiLXAi KSknDQotLSANCjIuMzcuMw0KDQo= --b1_L9kCBJd0i81PjSxeizf3BLpIsoL205W5wsmYNk6u2E-- From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 13 03:37:54 2022 Received: (at 56677) by debbugs.gnu.org; 13 Oct 2022 07:37:54 +0000 Received: from localhost ([127.0.0.1]:59281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oismv-000124-Et for submit@debbugs.gnu.org; Thu, 13 Oct 2022 03:37:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oismu-00011s-7e for 56677@debbugs.gnu.org; Thu, 13 Oct 2022 03:37:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35902) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oismo-000568-V3; Thu, 13 Oct 2022 03:37:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=ULwBArjOfaBh0W5k3usCZ+yTPkMJvMoZGFSLudPqnxw=; b=WR26XYkkZCrIhBHQr/fj 4GEpBb8Bw6qY+0XdZkMhRUAcGQwxUaxalWAVE5W3YdynMhNL9r6ublLDWgpf15zLhHArzbGIPni3O k/1agk5fk/SUGC1+UxFX1JcHKdMbTsvLqGrSY1QYest7HghGnrooYG41Sh6KhnJ43lpexcM9iXiLz 8OugJ0sIJlqXqi5u/ieT0zry5kTR02fveJouAA9ZhkY6W/RrS54QptfOCquJkyHnSjbUNrQy2ynMM 3eVnYSZPol4/rQBCpU92sQGZy2ZTXwn8gJjEI1eOcxf7PIdzvbO4B4cD+O4ufnvYcmTfJYazVbvjX ytQGjQ73UWQQ3w==; Received: from no3.u-bordeaux.fr ([147.210.179.68]:39538 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oismn-00041W-U6; Thu, 13 Oct 2022 03:37:46 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: John Kehayias Subject: Re: bug#56677: [PATCH 0/2] environment: Add --emulate-fhs option. References: <1LCXD7_zuGflSFovh_mKvhdayNcoWp8ALeguq3i2-XWwWHgzZuPak2gSBN91VLNJ84lubuFAt1dPB282Zy0pBmh_zbiI2qI-7n0LP9F03u4=@protonmail.com> <87r11wmh2h.fsf@gnu.org> <87leqtd1m4.fsf_-_@gnu.org> <87edvntp6f.fsf@protonmail.com> Date: Thu, 13 Oct 2022 09:37:41 +0200 In-Reply-To: <87edvntp6f.fsf@protonmail.com> (John Kehayias's message of "Tue, 04 Oct 2022 18:32:44 +0000") Message-ID: <877d14tbqy.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56677 Cc: 56677@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi John, John Kehayias skribis: > From de7ae9b203a65e1ec1b1429ca4076f3f91b1ae33 Mon Sep 17 00:00:00 2001 > From: John Kehayias > Date: Wed, 20 Jul 2022 23:46:45 -0400 > Subject: [PATCH] environment: Add '--emulate-fhs'. > > * guix/scripts/environment.scm (show-environment-options-help, %options):= Add > '--emulate-fhs'. > (setup-fhs): New procedure. Setup for the Filesystem Hierarchy Standard = (FHS) > container. Defines and uses FHS-SYMLINKS and LINK-CONTENTS to create FHS > expected directories and creates /etc/ld.so.conf. > (launch-environment): Add 'emulate-fhs?' key and implement it to set $PAT= H and > generate /etc/ld.so.cache before calling COMMAND. > (launch-environment/container): Add 'emulate-fhs?' and 'setup-hook' keys = and > implement them. Define and use FHS-MAPPINGS, to set up additional bind m= ounts > in the container to follow FHS expectations. > (guix-environment*): Add glibc-for-fhs to the container packages when > 'emulate-fhs?' key is in OPTS. > * doc/guix.texi (Invoking guix shell): Document '--emulate-fhs'. > (Invoking guix environment): Document '--emulate-fhs'. > * tests/guix-environment-container.sh: Add tests for '--emulate-fhs'. This new version of the patch looks great to me! I applied it and took the liberty to make the changes below; let me know if anything=E2=80=99s amiss. Pushed together with a news entry: 2c11e857af news: Add entry for 'guix shell --emulate-fhs'. c7ba5f38b8 environment: Add '--emulate-fhs'. 3d1d29e440 gnu: Add glibc-for-fhs. Thanks a lot for your work and for your patience! Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/doc/guix.texi b/doc/guix.texi index 43dfdd64f2..8803353f24 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6196,21 +6196,26 @@ directory: guix shell --container --expose=$HOME=/exchange guile -- guile @end example +@cindex file system hierarchy standard (FHS) +@cindex FHS (file system hierarchy standard) @item --emulate-fhs -@item -F -For containers, emulate a Filesystem Hierarchy Standard (FHS) -configuration within the container, see -@uref{https://refspecs.linuxfoundation.org/fhs.shtml, the official -specification}. As Guix deviates from the FHS specification, this +@itemx -F +When used with @option{--container}, emulate a +@uref{https://refspecs.linuxfoundation.org/fhs.shtml, Filesystem +Hierarchy Standard (FHS)} configuration within the container, providing +@file{/bin}, @file{/lib}, and other directories and files specified by +the FHS. + +As Guix deviates from the FHS specification, this option sets up the container to more closely mimic that of other GNU/Linux distributions. This is useful for reproducing other development environments, testing, and using programs which expect the FHS specification to be followed. With this option, the container will -include a version of @code{glibc} which will read -@code{/etc/ld.so.cache} within the container for the shared library -cache (contrary to @code{glibc} in regular Guix usage) and set up the -expected FHS directories: @code{/bin}, @code{/etc}, @code{/lib}, and -@code{/usr} from the container's profile. +include a version of glibc that will read +@file{/etc/ld.so.cache} within the container for the shared library +cache (contrary to glibc in regular Guix usage) and set up the +expected FHS directories: @file{/bin}, @file{/etc}, @file{/lib}, and +@file{/usr} from the container's profile. @item --rebuild-cache @cindex caching, of profiles diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index b566057b41..2a9f2f34fc 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -933,15 +933,15 @@ (define (linker-script? file) ;; in FHS containers. (define-public glibc-for-fhs (hidden-package - (package - (inherit glibc) + (package/inherit glibc (name "glibc-for-fhs") (source (origin (inherit (package-source glibc)) ;; Remove Guix's patch to read ld.so.cache from /gnu/store ;; directories, re-enabling the default /etc/ld.so.cache ;; behavior. - (patches (delete (car (search-patches "glibc-dl-cache.patch")) - (origin-patches (package-source glibc))))))))) + (patches + (delete (search-patch "glibc-dl-cache.patch") + (origin-patches (package-source glibc))))))))) ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index f5b417457d..cf99760859 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -475,10 +475,10 @@ (define* (launch-environment command profile manifest (catch 'system-error (lambda () (when emulate-fhs? - ;; When running in a container with EMULATE-FHS?, supplement $PATH + ;; When running in a container with EMULATE-FHS?, override $PATH ;; (optional, but to better match FHS expectations), and generate ;; /etc/ld.so.cache. - (setenv "PATH" "/bin:/usr/bin:/sbin:/usr/sbin:$PATH") + (setenv "PATH" "/bin:/usr/bin:/sbin:/usr/sbin") (invoke "ldconfig" "-X")) (apply execlp program program args)) (lambda _ @@ -687,12 +687,15 @@ (define* (launch-environment/container #:key command bash user user-mappings list of file system mappings, contains the user-specified host file systems to mount inside the container. If USER is not #f, each target of USER-MAPPINGS will be re-written relative to '/home/USER', and USER will be used for the -passwd entry. When EMULATE-FHS?, set up the container to follow the -Filesystem Hierarchy Standard and provide a glibc that reads the cache from -/etc/ld.so.cache. SETUP-HOOK is an additional setup procedure to be called, as a -list with the function name and arguments, currently only used with the -EMULATE-FHS? option. LINK-PROFILE? creates a symbolic link from -~/.guix-profile to the environment profile. +passwd entry. + +When EMULATE-FHS?, set up the container to follow the Filesystem Hierarchy +Standard and provide a glibc that reads the cache from /etc/ld.so.cache. +SETUP-HOOK is an additional setup procedure to be called, currently only used +with the EMULATE-FHS? option. + +LINK-PROFILE? creates a symbolic link from ~/.guix-profile to the +environment profile. Preserve environment variables whose name matches the one of the regexps in WHILE-LIST." @@ -801,11 +804,9 @@ (define fhs-mappings (mkdir-p home-dir) (setenv "HOME" home-dir) - ;; Call an additional setup procedure, if provided. Currently - ;; this is only used with the EMULATE-FHS? option, but could be - ;; expanded to a general list of functions to be called. - (if setup-hook - (apply (car setup-hook) (cdr setup-hook))) + ;; Call an additional setup procedure, if provided. + (when setup-hook + (setup-hook profile)) ;; If requested, link $GUIX_ENVIRONMENT to $HOME/.guix-profile; ;; this allows programs expecting that path to continue working as @@ -1113,9 +1114,9 @@ (define manifest #:network? network? #:map-cwd? (not no-cwd?) #:emulate-fhs? emulate-fhs? - #:setup-hook (if emulate-fhs? - (list setup-fhs profile) - #f)))) + #:setup-hook + (and emulate-fhs? + setup-fhs)))) (else (return diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 31e409420f..898c57f41b 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -230,4 +230,4 @@ guix environment -C --emulate-fhs --ad-hoc --bootstrap guile-bootstrap \ # Test that the ld cache was generated and can be successfully read. guix environment -C --emulate-fhs --ad-hoc --bootstrap guile-bootstrap \ - -- guile -c '(exit (execlp "ldconfig" "-p"))' + -- guile -c '(execlp "ldconfig" "ldconfig" "-p")' --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 13 03:38:22 2022 Received: (at control) by debbugs.gnu.org; 13 Oct 2022 07:38:22 +0000 Received: from localhost ([127.0.0.1]:59288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oisnO-00013L-9C for submit@debbugs.gnu.org; Thu, 13 Oct 2022 03:38:22 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52820) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oisnM-000135-Pl for control@debbugs.gnu.org; Thu, 13 Oct 2022 03:38:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35162) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oisnH-00057P-Kx for control@debbugs.gnu.org; Thu, 13 Oct 2022 03:38:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:Subject:From:To:Date:in-reply-to: references; bh=N4Ok9ICjKd6zkUTYnak/guMMWqyjAD2hoa6IT8YVNo8=; b=DfaJVKx1x88xH+ O+wdofQm6VoKVyoSfJcWneb4AWo36CWrNRseX/T8vM7Af7uGycPagUCxM1oRA//XzmXW5jEFPaTt0 1frlBTd1UgqD7bi/KyvxZS6JslSZus7j+F4RtedwVTpeXkUDOWTGPfQuBPLV5nVdaIAAPrcZM2ui/ +NrHF2kI2AtkQ//w4Rh0C1kFnBS64HQTpRYbrjiv146wuzDo8NaWUlFPLY+qIm8ONPKSdz5Hlrn6Y MFvFJzx07vfNtnssYXz1pkMgCOHAtW91UNxZkmbOx1z+w5KrDvpYIDw0VQW+jUPoab5fDccQcZnbt r7EmdlJrW6du/cW3oeHQ==; Received: from no3.u-bordeaux.fr ([147.210.179.68]:36710 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oisn6-00050X-5E for control@debbugs.gnu.org; Thu, 13 Oct 2022 03:38:07 -0400 Date: Thu, 13 Oct 2022 09:38:00 +0200 Message-Id: <875ygotbqf.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #56677 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 56677 quit From unknown Sun Jun 15 08:06:36 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 10 Nov 2022 12:24:13 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator