From unknown Fri Aug 15 12:54:04 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#49828 <49828@debbugs.gnu.org> To: bug#49828 <49828@debbugs.gnu.org> Subject: Status: [PATCH 00/20] Add minetest mods Reply-To: bug#49828 <49828@debbugs.gnu.org> Date: Fri, 15 Aug 2025 19:54:04 +0000 retitle 49828 [PATCH 00/20] Add minetest mods reassign 49828 guix-patches submitter 49828 Maxime Devos severity 49828 normal tag 49828 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:47:14 2021 Received: (at submit) by debbugs.gnu.org; 2 Aug 2021 15:47:14 +0000 Received: from localhost ([127.0.0.1]:39006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAa9l-0004rJ-B5 for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:47:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:55998) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAa9j-0004r9-MT for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:47:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44844) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mAa9j-0008Os-6l for guix-patches@gnu.org; Mon, 02 Aug 2021 11:47:07 -0400 Received: from xavier.telenet-ops.be ([2a02:1800:120:4::f00:14]:38324) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mAa9g-0002wL-5Y for guix-patches@gnu.org; Mon, 02 Aug 2021 11:47:06 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfmy2500L0mfAB401fmy9J; Mon, 02 Aug 2021 17:46:58 +0200 Message-ID: Subject: [PATCH 00/20] Add minetest mods From: Maxime Devos To: guix-patches@gnu.org Date: Mon, 02 Aug 2021 17:46:51 +0200 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-0JvFuRBIbSn6irEXq+My" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919218; bh=d/bNaBzD6mJxq+S8w6jk1wjGb4gHoxcrfOWsFoKVhuc=; h=Subject:From:To:Date; b=fiC6GeVh40G/8IkgUVzptwtnpQfO0jlMtyJjc7zVIMQTHld7A6IK7R2bhM8mEoAS5 qe8fiUueqc2CHk8rdxFRV3Iq0AtNChu/wUdPzczrnrTM5R8UDLnHRN5+2j1Cdk80SZ DuD/RAidVr/vPEXvCuU6gxxb/A4O0vqn8xWI2SjV3So6cy49D/4tyI8a8OcgW0Dp50 DZtfTm/MJkNgwIKfL+siq8pSmxVSFDvbE4kZNQKqOZcT+9I/HID/ahgaPkojWBNwsZ PHcRJh0EiLOuq0+JVV3jTtB2dPHYUY5M5z7+ljJX64u8nSK3HZvRwOSANs45CbFtzX Vf1mRtf/vPkrA== Received-SPF: pass client-ip=2a02:1800:120:4::f00:14; envelope-from=maximedevos@telenet.be; helo=xavier.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.0 (/) 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: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --=-0JvFuRBIbSn6irEXq+My Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Guix, This patch series adds a bunch of Minetest mods, but first, it patches Minetest such that the mods will actually be found. An importer for Minetest mods from ContentDB (https://content.minetest.net) is included as well. I have verified: * "guix lint" doesn't find any issues, except =E2=80=98no updated found for ...=E2=80=99 and some incorrect =E2=80=98... can be upgraded to=E2=80=99. * the source code doesn't appear to contain any malware * the license information * "./pre-inst-env guix build ALL-THE-NEW-PACKAGES" succeeds * "make check 'TESTS=3Dtests/contentdb.scm'" succeeds I've also constructed an environment (./pre-inst-env guix environment --ad-= hoc) containing all the mods and minetest, started minetest, created a new world= , enabled all the mods, and placed some random nodes and tried out "worldedit= ". This seems to work, but I did not yet try out every mod. I also constructed an environment with only "minetest" and tried out the built-in ContentDB installer. It still appears to work. (The actual patches will be sent once debbugs gives me an issue number) Maxime Devos (20): gnu: minetest: Respect --without-tests. gnu: minetest: Search for mods in MINETEST_MOD_PATH. gnu: minetest: New package module. build-system: Add 'minetest-mod-build-system'. build-system: minetest: Don't retain references to "bash-minimal". guix: Add ContentDB importer. gnu: Add minetest-mesecons. gnu: Add minetest-basic-materials. gnu: Add minetest-unifieddyes. gnu: Add minetest-pipeworks. gnu: Add minetest-coloredwood. gnu: Add minetest-ethereal. gnu: Add minetest-technic. gnu: Add minetest-throwing. gnu: Add minetest-throwing-arrows. gnu: Add minetest-unified-inventory. gnu: Add minetest-worldedit. gnu: Add minetest-mobs. gnu: Add minetest-mobs-animal. gnu: Add minetest-homedecor-modpack. Makefile.am | 4 + doc/guix.texi | 32 ++ gnu/local.mk | 2 + gnu/packages/games.scm | 14 +- gnu/packages/minetest.scm | 423 ++++++++++++++++++ ...vironment-variable-MINETEST_MOD_PATH.patch | 115 +++++ guix/build-system/minetest.scm | 62 +++ guix/import/contentdb.scm | 310 +++++++++++++ guix/scripts/import.scm | 3 +- guix/scripts/import/contentdb.scm | 106 +++++ po/guix/POTFILES.in | 1 + tests/contentdb.scm | 227 ++++++++++ 12 files changed, 1293 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/minetest.scm create mode 100644 gnu/packages/patches/Add-environment-variable-MINETEST_= MOD_PATH.patch create mode 100644 guix/build-system/minetest.scm create mode 100644 guix/import/contentdb.scm create mode 100644 guix/scripts/import/contentdb.scm create mode 100644 tests/contentdb.scm --=-0JvFuRBIbSn6irEXq+My Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQgTaxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sgiAP0SdZF6fOlA9dBKarATKOjmCQ0Y plNBwoXkpyKYQzfWAgD/bgLjBSGyAl3rBqsPhmdugfpf+JrO4WDZNTWDqP8P+wc= =YSTa -----END PGP SIGNATURE----- --=-0JvFuRBIbSn6irEXq+My-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:24 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:24 +0000 Received: from localhost ([127.0.0.1]:39012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCu-0004wU-IF for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:24 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51168) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCt-0004wM-Qj for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:24 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqNwn; Mon, 02 Aug 2021 17:50:22 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 01/20] gnu: minetest: Respect --without-tests. Date: Mon, 2 Aug 2021 17:50:00 +0200 Message-Id: <20210802155019.6122-1-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919422; bh=CziCEUv/WSPQuPV4ScsL+rJ4eW0p8b8j08yFSvDKecQ=; h=From:To:Cc:Subject:Date; b=Fof3q51jskgoM6k8sVeq21TXsao43gT/34salAJFQ98rmh2qK4gphrlMxjYiUEq/C nXOuz8LxCy6TPbLm4ZzPXQhO4gim1nJ7eMSqMcqcctw4sFP86qqrOf8ueS2xSzGYLZ fBfh9yZXtu7YV12HXkjp7XaV2ohoU5pZNdnNDVslTQxoh/daH+yovM6wsdMMumAhJz M4ZVjrvEx8t8bwfKDQJ113+HstpN3kQY+u3lVVPMvmagZrqL86B9mrHNva7FLPBAWQ IJEjW+FTf0zyrs+/28iWvNJKM/MiYVOvCoqto3VOF0bjeU6uo4Cmuf4ZxIW9InpS32 t9Lc8S2jnwXZQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/games.scm (minetest)[arguments]<#:phases>{check}: Use 'tests?' instead of ',(%current-target-system)'. Remove trailing #t. --- gnu/packages/games.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8c6b5523f1..3e7086b398 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3590,13 +3590,12 @@ match, cannon keep, and grave-itation pit.") (string-append (getcwd) "/games")) ; for check #t)) (replace 'check - (lambda _ + (lambda* (#:key tests? #:allow-other-keys) ;; Thanks to our substitutions, the tests should also run ;; when invoked on the target outside of `guix build'. - (unless ,(%current-target-system) + (when tests? (setenv "HOME" "/tmp") - (invoke "src/minetest" "--run-unittests")) - #t))))) + (invoke "src/minetest" "--run-unittests"))))))) (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:28 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:28 +0000 Received: from localhost ([127.0.0.1]:39022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004ws-PK for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:28 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51168) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCu-0004wM-Mz for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:25 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqQx5; Mon, 02 Aug 2021 17:50:24 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. Date: Mon, 2 Aug 2021 17:50:01 +0200 Message-Id: <20210802155019.6122-2-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919424; bh=jLiibnCpt5stM732LdwvJ7hxwDsi8nCPisrkYBgb6/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=I9dYUHi00pHXsu3KlvcM8DtGnBUUCu6omEoBDoOHnWuCDFG/uVeYtdUyZNcsfqKYI yY0nMoigVXdX42k+Iv7r+CtoARuKKt5Bq9V8jPjWSuwsSMk4pxb1wQ8zf85asMghmX hz7Ngr0TShRfHqRPtahBA42DklKwDb6vgxgDPLhRz0DprSeocWKZpaZTU5UJbHKxai 7Ka30UT/WCTkAPONBIWvWniABZwmlZIoZMk5znm8F8ZMoTAkOqAtimYaylNtksgJLv Cxh+53t1sR+9WmrGWTbIwFX0pKoVSn9sIWqvYrjA3JQIsFofLftDTcpM6frohq7D3I 9VdVWTxTO+n7Q== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch: New file. * gnu/packages/games.scm (minetest)[source]{patches}: Add it. (minetest)[native-search-paths]: Add "MINETEST_MOD_PATH". * gnu/local.mk (dist_patch_DATA): Add the patch. --- gnu/local.mk | 1 + gnu/packages/games.scm | 7 +- ...vironment-variable-MINETEST_MOD_PATH.patch | 115 ++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch diff --git a/gnu/local.mk b/gnu/local.mk index c80a9af78c..d96d4e3dbc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -801,6 +801,7 @@ dist_patch_DATA = \ %D%/packages/patches/abseil-cpp-fix-gtest.patch \ %D%/packages/patches/abseil-cpp-fix-strerror_test.patch \ %D%/packages/patches/adb-add-libraries.patch \ + %D%/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ %D%/packages/patches/aegis-perl-tempdir2.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3e7086b398..2f3285c6ea 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3553,6 +3553,7 @@ match, cannon keep, and grave-itation pit.") (base32 "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8")) (modules '((guix build utils))) + (patches (search-patches "Add-environment-variable-MINETEST_MOD_PATH.patch")) (snippet '(begin ;; Delete bundled libraries. @@ -3599,7 +3600,11 @@ match, cannon keep, and grave-itation pit.") (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") - (files '("share/minetest/games"))))) + (files '("share/minetest/games"))) + (search-path-specification + (variable "MINETEST_MOD_PATH") + (files '("share/minetest/mods")) + (separator #f)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch b/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch new file mode 100644 index 0000000000..8478a7bf72 --- /dev/null +++ b/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch @@ -0,0 +1,115 @@ +From 6eb753c5bf67764890856cf23a67c0bf65973c16 Mon Sep 17 00:00:00 2001 +From: Maxime Devos +Date: Thu, 29 Jul 2021 22:24:50 +0200 +Subject: [PATCH] Add environment variable MINETEST_MOD_PATH + +This adds an environment variable MINETEST_MOD_PATH. +When it exists, Minetest will look there for mods +in addition to ~/.minetest/mods/. + +This patch as-is is not yet ready for upstream, because: + + * the GUI will only display mods in MINETEST_MOD_PATH + or mods in ~/.minetest/mods, it won't combine the two + + * the GUI for installing mods from ContentDB is disabled + when MINETEST_MOD_PATH is set, because otherwise Minetest + would try to install mods in the store. + + * MINETEST_MOD_PATH can only have a single component +--- + builtin/mainmenu/dlg_contentstore.lua | 7 +++++++ + src/content/subgames.cpp | 3 +++ + src/script/lua_api/l_mainmenu.cpp | 14 +++++++++++++- + src/script/lua_api/l_mainmenu.h | 2 ++ + 4 files changed, 25 insertions(+), 1 deletion(-) + +diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua +index 7096c9187..c4a2cbd18 100644 +--- a/builtin/mainmenu/dlg_contentstore.lua ++++ b/builtin/mainmenu/dlg_contentstore.lua +@@ -22,6 +22,13 @@ if not core.get_http_api then + end + return + end ++if core.mod_path_set() then ++ function create_store_dlg() ++ return messagebox("store", ++ fgettext("Mods from ContentDB cannot be installed when mods from Guix are also installed")) ++ end ++ return ++end + + -- Unordered preserves the original order of the ContentDB API, + -- before the package list is ordered based on installed state. +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp +index e9dc609b0..1809f189e 100644 +--- a/src/content/subgames.cpp ++++ b/src/content/subgames.cpp +@@ -110,6 +110,9 @@ SubgameSpec findSubgame(const std::string &id) + std::set mods_paths; + if (!user_game) + mods_paths.insert(share + DIR_DELIM + "mods"); ++ const char *env_mod_path = getenv("MINETEST_MOD_PATH"); ++ if (env_mod_path) ++ mods_paths.insert(std::string(env_mod_path)); + if (user != share || user_game) + mods_paths.insert(user + DIR_DELIM + "mods"); + +diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp +index ad00de1c4..737550c42 100644 +--- a/src/script/lua_api/l_mainmenu.cpp ++++ b/src/script/lua_api/l_mainmenu.cpp +@@ -495,9 +495,19 @@ int ModApiMainMenu::l_get_user_path(lua_State *L) + /******************************************************************************/ + int ModApiMainMenu::l_get_modpath(lua_State *L) + { ++ const char *c_modpath = getenv("MINETEST_MOD_PATH"); + std::string modpath = fs::RemoveRelativePathComponents( + porting::path_user + DIR_DELIM + "mods" + DIR_DELIM); +- lua_pushstring(L, modpath.c_str()); ++ if (c_modpath == NULL) ++ c_modpath = modpath.c_str(); ++ lua_pushstring(L, c_modpath); ++ return 1; ++} ++ ++/******************************************************************************/ ++int ModApiMainMenu::l_mod_path_set(lua_State *L) ++{ ++ lua_pushboolean(L, NULL != getenv("MINETEST_MOD_PATH")); + return 1; + } + +@@ -855,6 +865,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) + API_FCT(get_mapgen_names); + API_FCT(get_user_path); + API_FCT(get_modpath); ++ API_FCT(mod_path_set); + API_FCT(get_clientmodpath); + API_FCT(get_gamepath); + API_FCT(get_texturepath); +@@ -888,6 +899,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) + API_FCT(get_mapgen_names); + API_FCT(get_user_path); + API_FCT(get_modpath); ++ API_FCT(mod_path_set); + API_FCT(get_clientmodpath); + API_FCT(get_gamepath); + API_FCT(get_texturepath); +diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h +index ec2d20da2..719c26077 100644 +--- a/src/script/lua_api/l_mainmenu.h ++++ b/src/script/lua_api/l_mainmenu.h +@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase + + static int l_get_modpath(lua_State *L); + ++ static int l_mod_path_set(lua_State *L); ++ + static int l_get_clientmodpath(lua_State *L); + + static int l_get_gamepath(lua_State *L); +-- +2.32.0 + -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:32 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:32 +0000 Received: from localhost ([127.0.0.1]:39048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xP-HD for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:32 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51168) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCv-0004wM-U4 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:26 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqRxF; Mon, 02 Aug 2021 17:50:25 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 03/20] gnu: minetest: New package module. Date: Mon, 2 Aug 2021 17:50:02 +0200 Message-Id: <20210802155019.6122-3-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919425; bh=Jl9p4sbtllJUjOoAuOzoP9pDTy/zELbrliNCy05xm2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=mv4GPXQCpdkXGrUb+FeKPKuNhuOowEoisvTYLXAH7B/7hkg+Acv8HAgowYgtRqaXA KPxKVX3af4jxxurxCGuAnq+2MYiun6hbn3+6e1BtpL+D6ZSpRwCG0KEOCo1PU4gpcJ Q05bEn3VQIWLERUE0LVUnRvO68EnqYuKu/3tg+e52M4Gs/0LM4qTLXyX8y0rK3D6Xf mBflISYycB/+SdcJn/ZrLkYoWbJUPHwDlL2lcqlH2bFJpd2Kk7/etXqkGRw5pRCTNS B6+OJBIG6v9+15fTUlQ59GL9yIHJndwopezR5Rc6Zncfpg0pqVXxSDkATcS0GM6XLL 5D7XLCRkQOj1A== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) Aside from the 'minetest-topic' procedure which will be used for the 'home-page' field of some packages, this module is currently empty. The 'contentdb' importer defined in the following patches will be used to populate this module. * gnu/packages/minetest.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/minetest.scm | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 gnu/packages/minetest.scm diff --git a/gnu/local.mk b/gnu/local.mk index d96d4e3dbc..5de08b1b09 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -383,6 +383,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/mercury.scm \ %D%/packages/mes.scm \ %D%/packages/messaging.scm \ + %D%/packages/minetest.scm \ %D%/packages/mingw.scm \ %D%/packages/microcom.scm \ %D%/packages/moe.scm \ diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm new file mode 100644 index 0000000000..f8aca3005c --- /dev/null +++ b/gnu/packages/minetest.scm @@ -0,0 +1,26 @@ +;;; Copyright © 2021 Maxime Devos +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . +(define-module (gnu packages minetest) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system minetest) + #:use-module ((guix licenses) #:prefix license:)) + +(define-public (minetest-topic topic-id) + "Return an URL (as a string) pointing to the forum topic with +numeric identifier TOPIC-ID on the official Minetest forums." + (string-append "https://forum.minetest.net/viewtopic.php?t=" + (number->string topic-id))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:32 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:32 +0000 Received: from localhost ([127.0.0.1]:39056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD2-0004yb-9s for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:32 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004wh-D7 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:27 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqRxH; Mon, 02 Aug 2021 17:50:25 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 04/20] build-system: Add 'minetest-mod-build-system'. Date: Mon, 2 Aug 2021 17:50:03 +0200 Message-Id: <20210802155019.6122-4-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919425; bh=XA0LCI+Jbd/kaqXJ9A9/x69M7EugKcwhav98mulZurQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=GtX8YyBMZ8tZCU/O8ih/EXD1jq1dFUYCj5d+rBFa0L7UPDfp9gxT2Z9M09Au1pJoG gblX8+wuwRPJDMaZcIEKQBKWubTC3zMFhi/DUZw4u4s9JDq90PiSQXjP2IBoV++NZX Na7v9JfuZ/LwqdiePDb9E3mryD1ZYMhTvnhO2MChE6aml2Iy3ela8WNo/EEopspdU6 HfethE0RLWOpzuTvGUIhU3YfIMkeq8TBO/Y1srFsLHHz6Ypf0KaiiRiucAjQCpQsek 3udvbScLQDYJtQXqZubZLu47WEtiz6yqHM2JNfU/e6OKnUgR9tGmTM45MsW5v2USKY EHqycIYpUJDdw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * guix/build-system/minetest.scm: New module. * Makefile.am (MODULES): Add it. * doc/guix.texi (Build Systems): Document 'minetest-mod-build-system'. --- Makefile.am | 1 + doc/guix.texi | 7 +++++ guix/build-system/minetest.scm | 53 ++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 guix/build-system/minetest.scm diff --git a/Makefile.am b/Makefile.am index d5ec909213..f6fae09579 100644 --- a/Makefile.am +++ b/Makefile.am @@ -141,6 +141,7 @@ MODULES = \ guix/build-system/go.scm \ guix/build-system/meson.scm \ guix/build-system/minify.scm \ + guix/build-system/minetest.scm \ guix/build-system/asdf.scm \ guix/build-system/copy.scm \ guix/build-system/glib-or-gtk.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b3c16e6507..43c248234d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7895,6 +7895,13 @@ declaration. Its default value is @code{(default-maven-plugins)} which is also exported. @end defvr +@defvr {Scheme Variable} minetest-mod-build-system +This variable is exported by @code{(guix build-system minetest)}. It +implements a build procedure for @uref{https://www.minetest.net, Minetest} +mods, which consists of copying lua code, images and other resources to +the location Minetest searches for mods. +@end defvr + @defvr {Scheme Variable} minify-build-system This variable is exported by @code{(guix build-system minify)}. It implements a minification procedure for simple JavaScript packages. diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm new file mode 100644 index 0000000000..29866ced6d --- /dev/null +++ b/guix/build-system/minetest.scm @@ -0,0 +1,53 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system minetest) + #:use-module (guix build-system copy) + #:use-module (guix build-system) + #:export (minetest-mod-build-system)) + +;; +;; Build procedure for minetest mods. This is implemented as an extension +;; of ‘copy-build-system’. +;; +;; Code: + +(define (guix-name->mod-name package-name) + ;; The "minetest-" prefix is useless. Don't make it appear in the + ;; ‘select mods’ menu when "modpack.conf" or "mod.conf" do not have + ;; the "name" field set. + (if (string-prefix? "minetest-" package-name) + (substring package-name 9) + package-name)) + +(define (lower-mod name . arguments) + (define lower (build-system-lower copy-build-system)) + (apply lower + name + #:install-plan + `'(("." ,(string-append "share/minetest/mods/" + (guix-name->mod-name name)))) + arguments)) + +(define minetest-mod-build-system + (build-system + (name 'minetest-mod) + (description "The build system for minetest mods") + (lower lower-mod))) + +;;; minetest.scm ends here -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:33 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:33 +0000 Received: from localhost ([127.0.0.1]:39058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD2-0004ym-Ry for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:33 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51262) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004wi-H7 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:27 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqRxK; Mon, 02 Aug 2021 17:50:25 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". Date: Mon, 2 Aug 2021 17:50:04 +0200 Message-Id: <20210802155019.6122-5-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919425; bh=IPRc9l0xVX+wIwAK2Oy3jaO3h08kgu3DIMoEsGGqpOI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=I46LMlakFaZD8/thlrnY/DSfntNd8i5xmlzaV+CYQJ9o0w7UyNTolGPz3gjfB/3Hc pWg+BF+IZg9u6IFKT9t8W/3Wneh3ZeQ+fMawCqM2TNZ3T1a86OLblYILWyt+ZX1N+G 7IPsnTZVvujrmELkCR/8vu5YaGAFViBDMFDcclVcKHZKW3Aj18N9pITcBSVGuAqKra JA7lrFIrsEIoP5gfB+vfakFbjjrY4nCv34OXOxDID7rfl2amJpjzeM2q0SzZ4frLGk dVyVtHfHWGJYlAli4yyAoBPtuX+uz7jBSMkX29O8SBTawlyfvOdE9Xgm8WDmnwFsbW sBoQ7vkyfFu7g== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * guix/build-system/minetest.scm (%standard-phases): New variable. Delete "patch-source-shebangs" phase. (lower-mod): Set #:phases to value of new variable. --- guix/build-system/minetest.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm index 29866ced6d..993c5631eb 100644 --- a/guix/build-system/minetest.scm +++ b/guix/build-system/minetest.scm @@ -35,6 +35,14 @@ (substring package-name 9) package-name)) +(define %standard-phases + ;; The source code sometimes contains shell scripts which are used for + ;; development but not at run time (e.g. listnodes.sh in + ;; minetest-homedecor-modpack). Don't make them retain a reference + ;; to bash-minimal. + '(modify-phases (@ (guix build copy-build-system) %standard-phases) + (delete 'patch-source-shebangs))) + (define (lower-mod name . arguments) (define lower (build-system-lower copy-build-system)) (apply lower @@ -42,6 +50,7 @@ #:install-plan `'(("." ,(string-append "share/minetest/mods/" (guix-name->mod-name name)))) + #:phases %standard-phases arguments)) (define minetest-mod-build-system -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:33 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:33 +0000 Received: from localhost ([127.0.0.1]:39060 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD3-0004yu-3C for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:33 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51168) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004wM-RD for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:28 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxY; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 09/20] gnu: Add minetest-unifieddyes. Date: Mon, 2 Aug 2021 17:50:08 +0200 Message-Id: <20210802155019.6122-9-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=ptdg1Rzc4kDVcCbbfuibvQgw/wwUlBL1w2U4EbMXhLs=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=YnaAxebYZ/ZKytDXbaOC88lZDEWz3zWpq1w30yFuCJzYDkPMiVXeJnt7k5sQM09OU PHGz7V8tFtCp0AuWp1K+MrGWhmVk7MOa8+qRRCeABvSbwWFMa0GPHmzpHYsPVQ86hX g7bQV6a+5nh9dfckd2/nFQ4jHHXohqcssFbwa9+sAZMhL1Gv9r7/H0W8e3JDCm94Fe xTP/qSGLOGzADH4qhlGKKJYzaM382QRyiMDPo+S4m7Mfyz3ZUDIR/Yd2aS2n8ztWrx Qk4Fn++b3YpTlW8j/L9ACRsaBgRg6LsauQao7wS1eNjv9ZPMARiDr9mQjJ0dgs+GRJ BvwNd7oTo06Ug== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-unifieddyes): New variable. --- gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index a97065ad4c..b845e5a2b3 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -83,3 +83,31 @@ with different rules and mechanics.") ;; correct the inconsistency: ;; . (license (list license:lgpl3+ license:cc-by-sa3.0))))) + +(define-public minetest-unifieddyes + (package + (name "minetest-unifieddyes") + ;; Upstream uses dates as version numbers. + (version "2021-04-20-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/unifieddyes") + (commit "ff3b2d30fa0df5c7181fdd401b989de6271c3bb3"))) + (sha256 + (base32 + "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2178)) + (synopsis + "Unified Dyes expands the standard dye set of Minetest to up to 256 colours") + (description "The purpose of this mod originally was to supply a complete +set of colours for Minetest mod authors to use for colourised nodes or +reference in recipes. Since the advent of the default dyes mod in the standard +Minetest game, this mod has become an extension of the default mod an a library +for general colour handling.") + (license license:gpl2+))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:33 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:33 +0000 Received: from localhost ([127.0.0.1]:39062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD3-0004z1-Db for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:33 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51300) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004wr-1U for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:28 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxV; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 08/20] gnu: Add minetest-basic-materials. Date: Mon, 2 Aug 2021 17:50:07 +0200 Message-Id: <20210802155019.6122-8-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=Ns3tW6fzRbzNPrJzWNKDhThYg/N1tYNWwNFuGBZP0d4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=erMIX9PoEnJ2paRePirkslyi3x62S9V0YfF3m0lKWbzx37Vj3+JeW5VDTjCd7wHYD 7hqUj3DnNZ7PhskY864qjLrdbB1OOKyvKzw5npq1LBoivjRmg0+KCGcv1C6PsGmY7J 6Mk1eNhLQFu7HSK33iLhPuJ5H6XmjTaEMwU/8C0xW67ZVMPIyhCt8UiybgOEICbdYV 5HEaUoUyxBO5PrkObWqfXz4V1IfVoKSAgeLb7rkS7Exkl3x3cNhnflXlkv4IRmWFPg idYDrGIfEK35SSMAnxyGzPfLNvgIlB1wvDxej6KrWFhfQldX8BNS9LnAggjSj6yuqe T1L0RAd/Jcdbg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-basic-materials): New variable. --- gnu/packages/minetest.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 72e04c4b33..a97065ad4c 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -25,6 +25,30 @@ numeric identifier TOPIC-ID on the official Minetest forums." (string-append "https://forum.minetest.net/viewtopic.php?t=" (number->string topic-id))) +(define-public minetest-basic-materials + (package + (name "minetest-basic-materials") + ;; Upstream uses dates as version numbers. + (version "2021-01-30") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/basic_materials.git") + (commit "e72665b2ed98d7be115779a32d35e6d9ffa231bd"))) + (sha256 + (base32 "0v6l3lrjgshy4sccjhfhmfxc3gk0cdy73qb02i9wd2vw506v5asx")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 21000)) + (synopsis "Some \"basic\" materials and items for other Minetest mods to use") + (description + "The Minetest mod \"basic_materials\" provides a small selection of +\"basic\" materials and items that other mods should use when possible -- things +like steel bars and chains, wire, plastic strips and sheets, and more.") + (license + (list license:cc-by-sa4.0 license:lgpl3)))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:34 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:34 +0000 Received: from localhost ([127.0.0.1]:39064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD3-0004z8-Qq for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:34 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51286) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004wo-Tx for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:28 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxR; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 07/20] gnu: Add minetest-mesecons. Date: Mon, 2 Aug 2021 17:50:06 +0200 Message-Id: <20210802155019.6122-7-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=9AMA9kstUYYUnsK7TZhIrjntwKPz1Aew1bZ8hmOuWfY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=aUm78MwkEzXftXcr3DDfQAepecy+TTHcw8neFakJfObWEmfVIytroupG1HIhRELgK kS6Fc6JZ2SyAVMeJ6oCkhqBZYvyww0hJ2n11+k+HIzj+2CpyNZ2xWc02MTPA1QzHLA p3yoVPwthRCS773BmLqdBSJ/ZZ9NUZqAXFJnXKoZdkKHHsIJxFdht0alfTWvU99zLi qmCFYrp6RMrOnVsQDm2UnA+yIvgx6xyjZqp3+noOIHUwBBirLR+Etwu3X6UpE8y5P/ oO3PbCH3pJ1XHdt8xY7G5nvAc5PXwrpOJyYEjQz5/U3hLLVn1QEP5/URzB9HUDolSD +VqyXdvr4OQQg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mesecons): New variable. --- gnu/packages/minetest.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index f8aca3005c..72e04c4b33 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -24,3 +24,38 @@ numeric identifier TOPIC-ID on the official Minetest forums." (string-append "https://forum.minetest.net/viewtopic.php?t=" (number->string topic-id))) + +(define-public minetest-mesecons + ;; The release on ContentDB does not have its own version number. + (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") + (revision "0")) + (package + (name "minetest-mesecons") + (version (git-version "1.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/mesecons") + (commit commit))) + (sha256 + (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page "https://mesecons.net") + (synopsis + "Digital circuitry for Minetest, including wires, buttons and lights") + (description + "Mesecons is a mod for Minetest implementing various items related +to digital circuitry, such as wires, buttons, lights and programmable +controllers. Among other things, there are also pistons, solar panels, +pressure plates and note blocks. + +Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, +with different rules and mechanics.") + ;; LGPL for code, CC-BY-SA for textures. + ;; The README.md and COPYING.txt disagree about the "+" in license:lgpl3+. + ;; For now, assume README.md is correct. Upstream has been asked to + ;; correct the inconsistency: + ;; . + (license (list license:lgpl3+ license:cc-by-sa3.0))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:34 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:34 +0000 Received: from localhost ([127.0.0.1]:39066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD4-0004zG-7G for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:34 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51324) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004wt-A8 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:29 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxb; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 10/20] gnu: Add minetest-pipeworks. Date: Mon, 2 Aug 2021 17:50:09 +0200 Message-Id: <20210802155019.6122-10-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=uW/5Fart8uNzrkO7yH3y3FKGuZUxUykh4JLhuTGwQu8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=gz1pnvBYbPECc0J/bsR2VFIO7hf3Y8eHTP5hmHoH4HsJteWG6zBdADsFWxDfi4JmY k8rODPzjO6nE0TJVIDsncCQmX2fso39i/b2GqHg9HU6AWo+DYee2ReO4bwbn6k/DNG nrlxnSIFZCcxEXzB7GLhefQ4gqFOkFY0eofyAuGpZc6uPKkpQKWkc7GGGCNT3KW71z gNerhlw5CQOEOd55JgIgpkWG69TAhlzxOGNWHD8Xj6636NIZgcOqRkLQJd9pTUnsVb A/wAx8vMywGR9YAa86vu1g07BG2p2W6KUffixHuq08Wh+v+rV8o+FI25HccxyKa5hq NQwbPbPeTJW5g== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-pipeworks): New variable. --- gnu/packages/minetest.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index b845e5a2b3..a281eddea0 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -84,6 +84,36 @@ with different rules and mechanics.") ;; . (license (list license:lgpl3+ license:cc-by-sa3.0))))) +(define-public minetest-pipeworks + (package + (name "minetest-pipeworks") + ;; Upstream uses dates as version numbers. + (version "2021-04-14-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/pipeworks") + (commit "db6d1bd9c109e1e543b97cc3fa8a11400da23bcd"))) + (sha256 + (base32 "1flhcnf17dn1v86kcg47a1n4cb0lybd11ncxrkxn3wmf10ibsrm0")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2155)) + (synopsis "Pipes, item-transport tubes and related devices for Minetest") + (description + "Pipeworks is a mod for Minetest implementing 3D pipes and tubes for +transporting liquids and items and some related devices. Pipes and tubes can +go horizontally or vertically. Item tubes can also be used for sorting items +and extracting items from chests or putting items in chests. Autocrafters can +automatically follow craft recipes to make new items and can be fed by item +tubes. Deployers can place items in the world as a player would. Node +breakers simulate a player punching a node.") + ;; CC-BY-SA for textures, LGPL for code + (license (list license:cc-by-sa4.0 license:lgpl3)))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:34 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:34 +0000 Received: from localhost ([127.0.0.1]:39068 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD4-0004zN-IA for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:34 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004wh-Cj for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:29 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxm; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 13/20] gnu: Add minetest-technic. Date: Mon, 2 Aug 2021 17:50:12 +0200 Message-Id: <20210802155019.6122-13-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=PbSFACIpO8MBG+eNKJAc+iQzHhJgL+LFZToAa6ClKQw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=b/L7moDNRfzobIfZ6snvLRHZ/lQDIqezKDSpq0XaF0l/nLkT8mqZmPMq5m6X6w6xD 7sG06K/UPiRmWKVyvMi3lVYNmlRyGaL1vJsF0keEuBKOTzeWNlDZKLW2naK60HSE09 yE6mggNQSLe/K6TjH3/VVx+6wqnx31ex/NfucnHulqFvhC13aMp0x22j65QmVKLMbK StakPbhA9Jo254zHUwYE3s5xffdcqh3PV8CkpYz1oUmfaIqvUsuboJR5CrYyp/mpup fGOkiFUa3PVyKZLqgl1gNfX9GaGskS+dasBN0NxotFYDZL0YnYUz1pzlAuBzkCjLz2 cEa8sJKDIE6cg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-technic): New variable. --- gnu/packages/minetest.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 12e15ee946..c901c5fcc7 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -169,6 +169,40 @@ breakers simulate a player punching a node.") ;; CC-BY-SA for textures, LGPL for code (license (list license:cc-by-sa4.0 license:lgpl3)))) +(define-public minetest-technic + (package + (name "minetest-technic") + ;; Upstream doesn't keep version numbers, so use the release + ;; date on ContentDB instead. + (version "2021-04-15") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/technic") + (commit "1c219487d3f4dd03c01ff9aa1f298c7c18c7e189"))) + (sha256 + (base32 "1k9hdgzp7jnhsk6rgrlrv1lr5xrmh8ln4wv6r25v6f0fwbyj57sf")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-pipeworks" ,minetest-pipeworks) + ("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2538)) + (synopsis "Machinery and automation for Minetest") + (description + "This Minetest mod adds machinery and automation to Minetest. +It adds various ores that can be processed for constructing various +machinery, such as power generators, force field emitters, quarries +and a workshop for repairing tools. Most machines are electrically +powered.") + ;; CC BY-SA 3.0: some texture + ;; WTFPL: some textures + ;; CC BY-SA3.0: some textures + ;; CC BY-SA4.0: some sounds + (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:cc-by-sa4.0 + license:wtfpl2)))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:35 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:35 +0000 Received: from localhost ([127.0.0.1]:39070 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD4-0004zU-Ru for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:35 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51330) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004wu-FY for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:29 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxe; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 11/20] gnu: Add minetest-coloredwood. Date: Mon, 2 Aug 2021 17:50:10 +0200 Message-Id: <20210802155019.6122-11-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=R6Y2eVmsGRaVmlB33v0AD+NwGGaJagG+L1d2z9aFl8w=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Rlx8/yCBiYE4u13i9e0c11IYji1z/URIONLb0IKsK4tyqxKxwy9GdTKz+HAogdRGe var6u1D0xemNGkoZbha6wX6kRxbdSDwB7EwA7ke2ni0PEoflhdX7FgUFEFyFal6eBr rzXYqHFWmgNWtD4YbitdFeCoWIIyqFfTBV+ux0yh56URH3mGSN0D19yfAU7J/U2VTZ ykFziBcrpG8sKJt8R/f81GzijNJR6UByith/ufZBDHPHZF2jeY2FOtIbuvX6bpIvWZ HF1yLS2CafZj+2oXpqgUmMuwqe3b0p/5JQbH5mcQZTlMirlq+ZplBjpjjFWxirx0hi n6ereVKUoVCRg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-coloredwood): New variable. --- gnu/packages/minetest.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index a281eddea0..fd2e78ade8 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -49,6 +49,33 @@ like steel bars and chains, wire, plastic strips and sheets, and more.") (license (list license:cc-by-sa4.0 license:lgpl3)))) +(define-public minetest-coloredwood + (package + (name "minetest-coloredwood") + ;; Upstream uses dates as version numbers. + (version "2021-04-14-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/coloredwood") + (commit "be4df6fc889419155bed8638bbb752493e78cbd5"))) + (sha256 + (base32 "1swirfk6b4xfbiwv8adyw5yl2lyfpp8ymfipzq9ivyvmif8nl3ki")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-unifieddyes" ,minetest-unifieddyes))) + (home-page (minetest-topic 2411)) + (synopsis "Painted wood in Minetest") + (description + "This Minetest mod provides hundreds of colours of wood and fences to +Minetest, using Unified Dyes. If the \"moreblocks\" mod is active, +coloured and cut wood shapes are provided as well.") + (license + ;; LGPL for code, CC-BY-SA for textures + (list license:cc-by-sa4.0 license:lgpl3)))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:35 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:35 +0000 Received: from localhost ([127.0.0.1]:39072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD5-0004zc-8d for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:35 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51262) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004wi-Fj for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:30 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTxp; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 14/20] gnu: Add minetest-throwing. Date: Mon, 2 Aug 2021 17:50:13 +0200 Message-Id: <20210802155019.6122-14-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=trH8FnxQsZYT0hH50xa6s9CftuJEWyoqfzWYa3x4B/M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=ZyyqXvFdA3Zln0j/JtSnVSEcObdsx8MFu/lQCYyJ59WVBzLBUOvzbkkRrp340a0Oz kNXDLS8yBeEbmGkq0OLp1aBsPft3qcdxtcixD4BGzTglMmhP0k1IwHCSJkg0H4+nWX A7W9PJXzdJD11pfpmU9crcx4/FIJ9LcLpWq12lPPF+cF9aXuOWFh/uHANybpIOuyYP v1dKYbKZgYkX4WnRHJzPFeX18TS1oveDOr7Qi2BTCFYci9+q9HsbTKJSe9qO9cZOTU 7lUjP0GqQxG1pioiFPlgeHPUJlXwubLn2OLqKV2V9oeNdz08x6kQIkmx63mgFiLNmS GKZpWxIE/yYfw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-throwing): New variable. --- gnu/packages/minetest.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index c901c5fcc7..25038a5f6b 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -203,6 +203,28 @@ powered.") (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:cc-by-sa4.0 license:wtfpl2)))) +(define-public minetest-throwing + (package + (name "minetest-throwing") + (version "2020-08-14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/throwing") + (commit "31f0cf5f868673dc82f24ddc432b45c9cd282d27"))) + (sha256 + (base32 "1s5kkr6rxxv2dhbbjzv62gw1s617hnpjavw1v9fv11v3mgigdfjb")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 16365)) + (synopsis "API for throwing things in Minetest") + (description + "This Minetest mod provides an API for registering throwable things and +throwing things like arrows. However, this mod does not provide an actual +arrow and bow, but @code{minetest-throwing-arrows} does.") + (license license:mpl2.0))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:36 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:36 +0000 Received: from localhost ([127.0.0.1]:39074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD5-0004zj-L1 for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:35 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51374) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xA-17 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:30 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTy0; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 16/20] gnu: Add minetest-unified-inventory. Date: Mon, 2 Aug 2021 17:50:15 +0200 Message-Id: <20210802155019.6122-16-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=+GyPwL4tbxWD3bfOOvUuM7ZO+ZqRT8Sy/rA+fxK0ZIg=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=C8RG8FiOjcRQRiNCUniYJD8tttLrHVFTIiHsZb6Mls8f1C00hdF1gVV9bvHD7QEgK J0Y0A3J4qbJMj7q6kC1o9fD7iAyj823M97eNwHjb52YZAe8Ewq+JdUeN0s+cxFJH9L KVEpglhGCgL4Emu6TFZqhD39DzQBknfQ+brm6fQJOgM7lpfbhcUirZkIf+UcxIA9ot pb5v+5RQbyvLAJvBOViO69HnTwhRlSggk2sHNqMoQU/F/vzIFbMuwS9S+REOjyx11w PYo+puow3AmJM8q7uxYZS30OUDqTE3AXEseO4torr9AedAVb07FP6GZ7RN3EkmJl+F 7sgFYQ2iTJzlg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-unified-inventory): New variable. --- gnu/packages/minetest.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 6b792bf071..2c028e3e87 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -281,3 +281,37 @@ reference in recipes. Since the advent of the default dyes mod in the standard Minetest game, this mod has become an extension of the default mod an a library for general colour handling.") (license license:gpl2+))) + +(define-public minetest-unified-inventory + (package + (name "minetest-unified-inventory") + ;; Upstream doesn't keep version numbers, so use the release title + ;; on ContentDB instead. + (version "2021-03-25-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/unified_inventory") + (commit "c044f5e3b08f0c68ab028d757b2fa63d9a1b0370"))) + (sha256 + (base32 "198g945gzbfl0kps46gwjw0c601l3b3wvn4c7dw8manskri1jr4g")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 12767)) + (synopsis "Replace the default inventory in Minetest and add a crafting guide") + (description + "The Unified Inventory Minetest mod relaces the default survival an +creative inventory. It includes a node, item and tool browser, a crafting +guide, a trash and refill slot for creative mode, bags and waypoints for keeping +track of important locations.") + ;; CC-BY: some textures and icons + ;; CC-BY-SA: some textures and icons + ;; LGLPL2.1+: code and some textures + ;; GPL2+: some textures + ;; GPL3: bags.lua + ;; GFDL: some icons + ;; public domain, CC0: some icons + (license (list license:gpl3 license:gpl2+ license:lgpl2.1+ license:cc-by3.0 + license:cc-by4.0 license:cc-by-sa3.0 license:public-domain + license:cc0 license:fdl1.2+)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:36 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:36 +0000 Received: from localhost ([127.0.0.1]:39076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD6-0004zq-02 for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:36 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCx-0004x1-RB for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:30 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqSxj; Mon, 02 Aug 2021 17:50:26 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 12/20] gnu: Add minetest-ethereal. Date: Mon, 2 Aug 2021 17:50:11 +0200 Message-Id: <20210802155019.6122-12-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=Ahaq+3bm8SkjhmymsaGjoA3EEP6nJBd9ReYg9eTgWlA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=r8pz+K+Ykpq7Kbf2e/E9fwKNSzkQuO7XbBSwuWlQn2VY09vTGec3HrGm3/6R/Joac pivtX4UIbGzEgtU+JhtPpwqBa+X3vJ6I1EEf4AqQmBX/D62WA16lsaMEXOcL1yuCRc YRhixpg/7Vh3NdIbmXjEHp+B6c+zL6Qcz21HSBoai68farEU3XKENArU4t7HmQvKxR tXv8/T7jSeHPAqRaewonVZk4rxTsaGiwZk6hYJaDqIKo7L33JcjH/qbS1MzZ852pvO F3nakc8ABm2VIZdww79vM/0MbvQIQwAIj5qjHozFNp7LvMCD/Gl5/GKjpM0ESdaPuu nhoGUv4+mG9AA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-ethereal): New variable. --- gnu/packages/minetest.scm | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index fd2e78ade8..12e15ee946 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -76,6 +76,34 @@ coloured and cut wood shapes are provided as well.") ;; LGPL for code, CC-BY-SA for textures (list license:cc-by-sa4.0 license:lgpl3)))) +(define-public minetest-ethereal + ;; ContentDB release 2021-07-28 is slightly ahead of the + ;; initial version 1.29 -- i.e., some released changes have been + ;; made to version 1.29 without a corresponding version bump. + (let ((commit "7670c1da9274901f57f6682384af2b3bae005a86") + (revision "0")) + (package + (name "minetest-ethereal") + (version (git-version "1.29" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/ethereal") + (commit commit))) + (sha256 + (base32 "1hal8bq4fydsip7s8rqz4vlaaqy9rhzxmryd0j2qnqm9286yjgkk")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 14638)) + (synopsis "The Ethereal mod adds many new biomes to Minetest") + (description + "The Ethereal Minetest mod uses the v7 map generator to add many new +biomes to the world. It adds new trees, plants, food items, tweaks and some +special items, intending to make an interesting adventure.") + ;; CC0: some textures + (license (list license:cc0 license:expat))))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") @@ -153,8 +181,7 @@ breakers simulate a player punching a node.") (url "https://gitlab.com/VanessaE/unifieddyes") (commit "ff3b2d30fa0df5c7181fdd401b989de6271c3bb3"))) (sha256 - (base32 - "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) + (base32 "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (propagated-inputs -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:36 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:36 +0000 Received: from localhost ([127.0.0.1]:39078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD6-0004zy-Bm for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:36 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51380) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xB-5j for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:30 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTy4; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 17/20] gnu: Add minetest-worldedit. Date: Mon, 2 Aug 2021 17:50:16 +0200 Message-Id: <20210802155019.6122-17-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=xnsp2cd94r9UHcXlZSgDjIZIdVJ7zvCHkzvG/xxr1T8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=D43x75X/imlYjJY9aZuQxsxT7WAdBK51Li4QiEKufDwe0ibAfE/BEcnP4X9gCaRnI 8NbhrLyQHrd3mi03fgGmoWx7QpQsnEyp+uCvmro/5OCgqCcs+QQs8Y1pA4o6ZKDmGP 1ED2bBxqbP6BXXJW435fALPUmbBeehkn2iISnjKU1ehLm8Xr8klqI4dpeOfEloIqcl kUkl3vHJ4VTYjI8aUz4CqlFoQVgq8DWd7LpaGfz3fy/jqsOSKVtDPKGVoED4lLnJzF MWWHVjBiMpawtFsEfxhAGS91dkQ1qjK72hRdW4Z4svCnKClPyvZAWLBmIxzO/OAGVr NwsJ1Cs4SzKXQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-worldedit): New variable. --- gnu/packages/minetest.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 2c028e3e87..0e16743823 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -255,6 +255,28 @@ arrow and bow, but @code{minetest-throwing-arrows} does.") replacement for the throwing mod by PilzAdam that uses the throwing API.") (license license:mpl2.0)))) +(define-public minetest-worldedit + (package + (name "minetest-worldedit") + (version "1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Uberi/Minetest-WorldEdit") + (commit "2f26fb76459c587868199160b9d7b5d6d7852e50"))) + (sha256 + (base32 "0lsvihkixi2na1b0vmml9vwgs0g24hqqshl73ffhkzh6jsq4cagq")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 572)) + (synopsis "In-game world editor for Minetest") + (description + "WorldEdit is a mod for Minetest. It allows for creating various +geometric shapes and copying regions. It can also export and import regions +to and from the file system.") + (license license:agpl3))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:37 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:37 +0000 Received: from localhost ([127.0.0.1]:39080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD6-000505-Mh for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:37 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xC-9T for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:31 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTy6; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 18/20] gnu: Add minetest-mobs. Date: Mon, 2 Aug 2021 17:50:17 +0200 Message-Id: <20210802155019.6122-18-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=YLoGHagJtWx08xIuQ1dWJsKnn1Q1oRD+GQOpH3GYJGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Z1h46fR4OkmsfUr0nDST65KAlIUzXtyJjBwCsE2aNe3qOL6shpbJXnqjQ9FvDXWDT PKafTL7l0qRmcvpIMfTiLV7Pb5GtrHVaDoqQpWbdpNdIqX8HmEUGvNGKDMo2ovrfx2 DD/4JFadc5RAa5xmzWkNc7q5ZyHRJcSxkcZEUrX/NyK0478urhkWjarWsZfP9BD4eZ 2KUYD/NUBJdlMqNz6rFc2LjxtpH9+xpMwbvP1e9pi20ydlXGvb3315eW7G+Z+n/3x7 4E9cyZ/BMUUnmrtviTqfxVk/cPg6Yp78HrbVXcnpGZjLbzokEDnWrLWM/pz9klSrrF ctDUD4SyzuYNw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mobs): New variable. --- gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 0e16743823..4910fa72bb 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -139,6 +139,34 @@ with different rules and mechanics.") ;; . (license (list license:lgpl3+ license:cc-by-sa3.0))))) +(define-public minetest-mobs + (package + (name "minetest-mobs") + ;; Upstream does not tag release, so use the ContentDB release + ;; title instead. + (version "2021-07-22") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/mobs_redo") + (commit "9f46182bb4b1a390f9a140bc2b443f3cda702332"))) + (sha256 + (base32 "026kqjis4lipgskjivb3jh9ris3iz80vy2q1jvgxhxmfghjjzp4j")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 9917)) + (synopsis "Mob library for Minetest mods, for animals, monsters etc.") + (description + "This Minetest mod provides an API for adding mods (moving entities +like animals and monsters), but does not include any mobs itself. To actually +add some mobs, a mod like e.g. @code{mobs_animal} provided by the +@code{minetest-mobs-animal} package needs to be enabled.") + ;; CC0: mob_swing.ogg + ;; CC-BY 3.0: mob_spell.ogg + ;; Expat: everything else + (license (list license:expat license:cc0 license:cc-by3.0)))) + (define-public minetest-pipeworks (package (name "minetest-pipeworks") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:37 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:37 +0000 Received: from localhost ([127.0.0.1]:39082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD7-00050C-2M for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:37 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51404) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xD-Dj for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:31 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTy8; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 19/20] gnu: Add minetest-mobs-animal. Date: Mon, 2 Aug 2021 17:50:18 +0200 Message-Id: <20210802155019.6122-19-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=ub6n7fmduq6Oz0NmCSbTNS1Ys7IMxQ+CwcI/2lQsns4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Sea8rqXU7R+HfsNz+7YJ5aFq7qjCR5f/yq0wiyuOwILdeOJogMKjxVj0ZDJ3GK1Me MflceLFpqLphhfhI+dDwgL1kq3sTy0XDyPjhcGggCEqjdbFUOK1hAnoGMD+XvH7WEO BS5tax1PcICNtXIqLci9Hilo9jbNmyTpTMt8xr+xdotuZBJHMI87/liR1e4YRKJENE ZCk2X0GdaYOjN0nbJmhoAU1Rkmjg5JQRKG6oUMQ5Bf4HDNdJJUk9adSWxseFdJeoak X4HqTh5yhjVHElU4zo3EO8f1Utybnm/nTeJ8bB5B9RB6cYFxi+00exp0tdUVnYGZ4P Eky/i2EQnmMNA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mobs-animal): New variable. --- gnu/packages/minetest.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 4910fa72bb..fcc3648795 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -167,6 +167,32 @@ add some mobs, a mod like e.g. @code{mobs_animal} provided by the ;; Expat: everything else (license (list license:expat license:cc0 license:cc-by3.0)))) +(define-public minetest-mobs-animal + (package + (name "minetest-mobs-animal") + ;; Upstream does not use version numbers, so use the release title + ;; from ContentDB instead; + (version "2021-07-24") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/mobs_animal") + (commit "c2fa3e300c79c7dd80b6fe91a8b5082bb6b3d934"))) + (sha256 + (base32 "1j719f079ia9vjxrmjrcj8s6jvaz5kgs1r4dh66z8ql6s70kx7vh")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-mobs" ,minetest-mobs))) + (home-page "https://notabug.org/TenPlus1/mobs_animal") + (synopsis "Add animals to Minetest") + (description + "This Minetest mod adds various animals to Minetest, such as bees, +bunnies, chickens, cows, kittens, rats, sheep, warthogs, penguins and pandas.") + ;; CC0: some textures and sounds + (license (list license:cc0 license:expat)))) + (define-public minetest-pipeworks (package (name "minetest-pipeworks") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:37 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:37 +0000 Received: from localhost ([127.0.0.1]:39084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD7-00050K-Eh for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:37 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xE-Hj for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:31 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTyB; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 20/20] gnu: Add minetest-homedecor-modpack. Date: Mon, 2 Aug 2021 17:50:19 +0200 Message-Id: <20210802155019.6122-20-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=MCHmjexvU6g0HzHXJmm8B+4ad8y+LhttHpLQv+f6BIk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=fOAem2JS79iZNbgEb5Vz6blIhkmUsnKFjFRpE2Eay1QQc9F80mcvmsXMX+PrE9OQl HcGyd69idtsqQIA3/4Jo1n/7CseB5odzwARRpvwspiRI+STt66aRNXh+/xv9zVIbyE xj0XTVuc5xQXt6ltxHNaMBvWRQGKF2jJlFFS8N33ea4KyjvxF+jxHYiUYHLgBsrFaz 14AyxCZAiUJ6aPBqa6z6cEsc3QOhxjcOddVVlClANX6mAvFM374KQtEGWGuJJ4/dGO 5yelB6FjYd195uF3kbl4VHWpF+JCilbVspXB1ffVx2Uy1fjXGRXuRLP6NvSQErIS8N 8OtTWpCL//s6Q== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-homedecor-modpack): New variable. --- gnu/packages/minetest.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index fcc3648795..7c483acd0c 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -104,6 +104,36 @@ special items, intending to make an interesting adventure.") ;; CC0: some textures (license (list license:cc0 license:expat))))) +(define-public minetest-homedecor-modpack + (package + (name "minetest-homedecor-modpack") + ;; Upstream doesn't tag releases, so use the release title from + ;; ContentDB as version. + (version "2021-03-27-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/homedecor_modpack") + (commit "9ffe2b7d691133e1a067546574fbe7364fd02f32"))) + (sha256 + (base32 "1lfajqvc2adf9hqskghky4arccqzpjw4i9a01hv4qcckvivm04ag")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials) + ("minetest-unifieddyes" ,minetest-unifieddyes))) + (home-page (minetest-topic 2041)) + (synopsis "Home decor mod for Minetest") + (description + ;; TRANSLATORS: ‘homedecor’ is the name is the name of a Minetest mod + ;; and should not be translated. + "The homedecor Minetest mod provides a large seleection of items that +might be found inside and around homes, such as sofas, chairs, tables, fences +and a variety of other stuff.") + (license + (list license:cc-by-sa4.0 license:lgpl3)))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:42 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:42 +0000 Received: from localhost ([127.0.0.1]:39086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaD7-00050R-PX for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:42 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51274) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCw-0004wj-Ni for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:32 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqRxP; Mon, 02 Aug 2021 17:50:25 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 06/20] guix: Add ContentDB importer. Date: Mon, 2 Aug 2021 17:50:05 +0200 Message-Id: <20210802155019.6122-6-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919426; bh=HypacUZjQNQ/V0Qm9aD7imolqfkklz8lnnaAqs0Ysbk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=rxfh0C0BhCdQHTnjAieEss7iKIR6JNt5rzgYdaSwwGpCr/erxe4uH9VHoduy9wVPG BgWNd12hRQx+uu1mMi+E12wPfo7+GFgcBzpq7aCXCHOsuuAjS7ckBj2i88fDA+DhRa u2Z9n2Zyo0VPoPGObQNwtqIw1fIPBSBRY+83rJtUg9Y2S3SddxNad7vtzRazjScWZQ U8UtR+lTh80kLzoAkA5ZnvTjoVWidE4e/Xu59bUY2majgkjd3c9h5E8aM51qd4w5Dc LHjaQKlHdfOYhZOKw6Up4yLr0OJGmZe+YPSiAuxW80zIFfyjzynwMA5qEp0xpSoKrd ESeQ4uR2gijnw== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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 (-) * guix/import/contentdb.scm: New file. * guix/scripts/import/contentdb.scm: New file. * tests/contentdb.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Invoking guix import): Document it. --- Makefile.am | 3 + doc/guix.texi | 25 +++ guix/import/contentdb.scm | 310 ++++++++++++++++++++++++++++++ guix/scripts/import.scm | 3 +- guix/scripts/import/contentdb.scm | 106 ++++++++++ po/guix/POTFILES.in | 1 + tests/contentdb.scm | 227 ++++++++++++++++++++++ 7 files changed, 674 insertions(+), 1 deletion(-) create mode 100644 guix/import/contentdb.scm create mode 100644 guix/scripts/import/contentdb.scm create mode 100644 tests/contentdb.scm diff --git a/Makefile.am b/Makefile.am index f6fae09579..b9265c154d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -261,6 +261,7 @@ MODULES = \ guix/import/json.scm \ guix/import/kde.scm \ guix/import/launchpad.scm \ + guix/import/contentdb.scm \ guix/import/opam.scm \ guix/import/print.scm \ guix/import/pypi.scm \ @@ -303,6 +304,7 @@ MODULES = \ guix/scripts/import/go.scm \ guix/scripts/import/hackage.scm \ guix/scripts/import/json.scm \ + guix/scripts/import/contentdb.scm \ guix/scripts/import/opam.scm \ guix/scripts/import/pypi.scm \ guix/scripts/import/stackage.scm \ @@ -445,6 +447,7 @@ SCM_TESTS = \ tests/channels.scm \ tests/combinators.scm \ tests/containers.scm \ + tests/contentdb.scm \ tests/cpan.scm \ tests/cpio.scm \ tests/cran.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 43c248234d..d06c9b73c5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11313,6 +11313,31 @@ and generate package expressions for all those packages that are not yet in Guix. @end table +@item contentdb +@cindex ContentDB +Import metadata from @uref{https://content.minetest.net, ContentDB}. +Information is taken from the JSON-formatted metadata provided through +@uref{https://content.minetest.net/help/api/, ContentDB's API} and +includes most relevant information, including dependencies. There are +some caveats, however. The license information on ContentDB does not +distinguish between GPLvN-only and GPLvN-or-later. The commit id is +sometimes missing. The descriptions are in the Markdown format, but +Guix uses Texinfo instead. Texture packs and subgames are unsupported. + +The command below imports metadata for the Mesecons mod by Jeija: + +@example +guix import contentdb Jeija mesecons +@end example + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @item cpan @cindex CPAN Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. diff --git a/guix/import/contentdb.scm b/guix/import/contentdb.scm new file mode 100644 index 0000000000..1a36a09c92 --- /dev/null +++ b/guix/import/contentdb.scm @@ -0,0 +1,310 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix import contentdb) + #:use-module (ice-9 match) + #:use-module (ice-9 receive) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (guix utils) + #:use-module (guix memoization) + #:use-module (guix serialization) + #:use-module (guix import utils) + #:use-module (guix import json) + #:use-module ((gcrypt hash) #:select (open-sha256-port port-sha256)) + #:use-module (json) + #:use-module (guix base32) + #:use-module (guix git) + #:use-module (guix store) + #:use-module ((guix licenses) #:prefix license:) + #:export (%contentdb-api + contentdb->guix-package + contentdb-recursive-import)) + +;; The ContentDB API is documented at +;; . + +(define %contentdb-api + (make-parameter "https://content.minetest.net/api/")) + +(define (string-or-false x) + (and (string? x) x)) + +(define (natural-or-false x) + (and (exact-integer? x) (>= x 0) x)) + +;; Descriptions on ContentDB use carriage returns, but Guix doesn't. +(define (delete-cr text) + (string-delete #\cr text)) + +;; Minetest package. +;; +;; API endpoint: /packages/AUTHOR/NAME/ +(define-json-mapping make-package package? + json->package + (author package-author) ; string + (creation-date package-creation-date ; string + "created_at") + (downloads package-downloads) ; integer + (forums package-forums "forums" natural-or-false) ; natural | #f + (issue-tracker package-issue-tracker "issue_tracker") ; string + (license package-license) ; string + (long-description package-long-description "long_description") ; string + (maintainers package-maintainers ; list of strings + "maintainers" vector->list) + (media-license package-media-license "media_license") ; string + (name package-name) ; string + (provides package-provides ; list of strings + "provides" vector->list) + (release package-release) ; integer + (repository package-repository "repo" string-or-false) ; string | #f + (score package-score) ; flonum + (screenshots package-screenshots "screenshots" vector->list) ; list of strings + (short-description package-short-description "short_description") ; string + (state package-state) ; string + (tags package-tags "tags" vector->list) ; list of strings + (thumbnail package-thumbnail) ; string + (title package-title) ; string + (type package-type) ; string + (url package-url) ; string + (website package-website "website" string-or-false)) ; string | #f + +(define-json-mapping make-release release? + json->release + (commit release-commit "commit" string-or-false) ; string | #f + (downloads release-downloads) ; integer + (id release-id) ; integer + (max-minetest-version release-max-minetest-version) ; string | #f + (min-minetest-version release-min-minetest-version) ; string | #f + (release-date release-data) ; string + (title release-title) ; string + (url release-url)) ; string + +(define-json-mapping make-dependency dependency? + json->dependency + (optional? dependency-optional? "is_optional") ; #t | #f + (name dependency-name) ; string + (packages dependency-packages "packages" vector->list)) ; list of strings + +(define (contentdb-fetch author name) + "Return a record for package NAME by AUTHOR, or #f on failure." + (and=> (json-fetch + (string-append (%contentdb-api) "packages/" author "/" name "/")) + json->package)) + +(define (contentdb-fetch-releases author name) + "Return a list of records for package NAME by AUTHOR, or #f +on failure." + (and=> (json-fetch (string-append (%contentdb-api) "packages/" author "/" name + "/releases/")) + (lambda (json) + (map json->release (vector->list json))))) + +(define (latest-release author name) + "Return the latest source release for package NAME by AUTHOR, +or #f if this package does not exist." + (and=> (contentdb-fetch-releases author name) + car)) + +(define (contentdb-fetch-dependencies author name) + "Return an alist of lists of records for package NAME by AUTHOR +and possibly some other packages as well, or #f on failure." + (define url (string-append (%contentdb-api) "packages/" author "/" name + "/dependencies/")) + (and=> (json-fetch url) + (lambda (json) + (map (match-lambda + ((key . value) + (cons key (map json->dependency (vector->list value))))) + json)))) + +(define (contentdb->package-name name) + "Given the NAME of a package on ContentDB, return a Guix-compliant name for the +package." + ;; The author is not included, as the names of popular mods + ;; tend to be unique. + (string-append "minetest-" (snake-case name))) + +;; XXX copied from (guix import elpa) +(define* (download-git-repository url ref) + "Fetch the given REF from the Git repository at URL." + (with-store store + (latest-repository-commit store url #:ref ref))) + +;; XXX adapted from (guix scripts hash) +(define (file-hash file select? recursive?) + ;; Compute the hash of FILE. + (if recursive? + (let-values (((port get-hash) (open-sha256-port))) + (write-file file port #:select? select?) + (force-output port) + (get-hash)) + (call-with-input-file file port-sha256))) +;; XXX likewise. +(define (vcs-file? file stat) + (case (stat:type stat) + ((directory) + (member (basename file) '(".bzr" ".git" ".hg" ".svn" "CVS"))) + ((regular) + ;; Git sub-modules have a '.git' file that is a regular text file. + (string=? (basename file) ".git")) + (else + #f))) + +(define (make-minetest-sexp name version repository commit + inputs home-page synopsis + description media-license license) + "Return a S-expression for the minetest package with the given NAME, +VERSION, REPOSITORY, COMMIT, INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION, +MEDIA-LICENSE and LICENSE." + `(package + (name ,(contentdb->package-name name)) + (version ,version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url ,repository) + (commit ,commit))) + (sha256 + (base32 + ;; The commit id is not always available. + ,(and commit + (bytevector->nix-base32-string + (file-hash + (download-git-repository repository `(commit . ,commit)) + (negate vcs-file?) #t))))) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + ,@(maybe-propagated-inputs + (map (compose contentdb->package-name cdr) inputs)) + (home-page ,home-page) + (synopsis ,(delete-cr synopsis)) + (description ,(delete-cr description)) + (license ,(if (eq? media-license license) + (license->symbol license) + `(list ,(license->symbol media-license) + ,(license->symbol license)))))) + +(define (package-home-page package) + "Guess the home page of the ContentDB package PACKAGE. + +In order of preference, try the 'website', the forum topic on the +official Minetest forum and the Git repository (if any)." + (define (topic->url-sexp topic) + ;; 'minetest-topic' is a procedure defined in (gnu packages minetest) + `(minetest-topic ,topic)) + (or (package-website package) + (and=> (package-forums package) topic->url-sexp) + (package-repository package))) + +(define (important-dependencies dependencies author name) + (define dependency-list + (assoc-ref dependencies (string-append author "/" name))) + (filter-map + (lambda (dependency) + (and (not (dependency-optional? dependency)) + ;; "default" must be provided by the 'subgame' in use + ;; and does not refer to a specific minetest mod. + ;; "doors", "bucket" ... are provided by the default minetest + ;; subgame. + (not (member (dependency-name dependency) + '("default" "doors" "beds" "bucket" "doors" "farming" + "flowers" "stairs" "xpanes"))) + ;; Dependencies often have only one implementation. + (let* ((/name (string-append "/" (dependency-name dependency))) + (likewise-named-implementations + (filter (cut string-suffix? /name <>) + (dependency-packages dependency))) + (implementation + (and (not (null? likewise-named-implementations)) + (first likewise-named-implementations)))) + (and implementation + (apply cons (string-split implementation #\/)))))) + dependency-list)) + +(define* (%contentdb->guix-package author name) + "Fetch the metadata for NAME by AUTHOR from https://content.minetest.net, and +return the 'package' S-expression corresponding to that package, or #f on failure. +On success, also return the upstream dependencies as a list of +(AUTHOR . NAME) pairs." + (and-let* ((package (contentdb-fetch author name)) + (dependencies (contentdb-fetch-dependencies author name)) + (release (latest-release author name))) + (let ((important-upstream-dependencies + (important-dependencies dependencies author name))) + (values (make-minetest-sexp name + (release-title release) ; version + (package-repository package) + (release-commit release) + important-upstream-dependencies + (package-home-page package) + (package-short-description package) + (package-long-description package) + (string->license + (package-media-license package)) + (string->license + (package-license package))) + important-upstream-dependencies)))) + +(define contentdb->guix-package + (memoize %contentdb->guix-package)) + +(define (contentdb-recursive-import author name) + ;; recursive-import expects upstream package names to be strings, + ;; so do some conversions. + (define (split-author/name author/name) + (string-split author/name #\/)) + (define (author+name->author/name author+name) + (string-append (car author+name) "/" (cdr author+name))) + (define* (contentdb->guix-package* author/name #:key repo version) + (receive (package . maybe-dependencies) + (apply contentdb->guix-package (split-author/name author/name)) + (and package + (receive (dependencies) + (apply values maybe-dependencies) + (values package + (map author+name->author/name dependencies)))))) + (recursive-import (author+name->author/name (cons author name)) + #:repo->guix-package contentdb->guix-package* + #:guix-name + (lambda (author/name) + (contentdb->package-name + (second (split-author/name author/name)))))) + +;; A list of license names is available at +;; . +(define (string->license str) + "Convert the string STR into a license object." + (match str + ("GPLv3" license:gpl3) + ("GPLv2" license:gpl2) + ("ISC" license:isc) + ;; "MIT" means the Expat license on ContentDB, + ;; see . + ("MIT" license:expat) + ("CC BY-SA 3.0" license:cc-by-sa3.0) + ("CC BY-SA 4.0" license:cc-by-sa4.0) + ("LGPLv2.1" license:lgpl2.1) + ("LGPLv3" license:lgpl3) + ("MPL 2.0" license:mpl2.0) + ("ZLib" license:zlib) + ("Unlicense" license:unlicense) + (_ #f))) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index f53d1ac1f4..015677e719 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -77,7 +77,8 @@ rather than \\n." ;;; (define importers '("gnu" "pypi" "cpan" "hackage" "stackage" "egg" "elpa" - "gem" "go" "cran" "crate" "texlive" "json" "opam")) + "gem" "go" "cran" "crate" "texlive" "json" "opam" + "contentdb")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/contentdb.scm b/guix/scripts/import/contentdb.scm new file mode 100644 index 0000000000..4170fff950 --- /dev/null +++ b/guix/scripts/import/contentdb.scm @@ -0,0 +1,106 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 David Thompson +;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts import contentdb) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import contentdb) + #:use-module (guix import utils) + #:use-module (guix scripts import) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:export (guix-import-contentdb)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + '()) + +(define (show-help) + (display (G_ "Usage: guix import contentdb AUTHOR NAME +Import and convert the Minetest mod NAME by AUTHOR from ContentDB.\n")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -r, --recursive import packages recursively")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import contentdb"))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-contentdb . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((author name) + (with-error-handling + (if (assoc-ref opts 'recursive) + ;; Recursive import + (filter-map package->definition + (contentdb-recursive-import author name)) + ;; Single import + (let ((sexp (contentdb->guix-package author name))) + (unless sexp + (leave (G_ "failed to download meta-data for package '~a' by '~a'~%") + name author)) + sexp)))) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index a3bced1a8f..f25a7b4802 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -60,6 +60,7 @@ guix/scripts/git.scm guix/scripts/git/authenticate.scm guix/scripts/hash.scm guix/scripts/import.scm +guix/scripts/import/contentdb.scm guix/scripts/import/cran.scm guix/scripts/import/elpa.scm guix/scripts/pull.scm diff --git a/tests/contentdb.scm b/tests/contentdb.scm new file mode 100644 index 0000000000..1293ac40cf --- /dev/null +++ b/tests/contentdb.scm @@ -0,0 +1,227 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-contentdb) + #:use-module (guix memoization) + #:use-module (guix import contentdb) + #:use-module (guix import utils) + #:use-module (guix tests) + #:use-module (json) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + + +;; Some procedures for populating a ‘fake’ ContentDB server. + +(define* (make-package-sexp #:key + (guix-name "minetest-foo") + (home-page "https://example.org/foo") + (repo "https://example.org/foo.git") + (synopsis "synopsis") + (guix-description "description") + (guix-license '(list license:cc-by-sa4.0 license:lgpl3)) + (inputs '()) + #:allow-other-keys) + `(package + (name ,guix-name) + ;; This is not a proper version number but ContentDB does not include + ;; version numbers. + (version "2021-07-25") + (source + (origin + (method git-fetch) + (uri (git-reference + (url ,(and (not (eq? repo 'null)) repo)) + (commit #f))) + (sha256 + (base32 #f)) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + ,@(maybe-propagated-inputs inputs) + (home-page ,home-page) + (synopsis ,synopsis) + (description ,guix-description) + (license ,guix-license))) + +(define* (make-package-json #:key + (author "Author") + (name "foo") + (media-license "CC BY-SA 4.0") + (license "LGPLv3") + (short-description "synopsis") + (long-description "description") + (repo "https://example.org/foo.git") + (website "https://example.org/foo") + (forums 321) + #:allow-other-keys) + `(("author" . ,author) + ("content_warnings" . #()) + ("created_at" . "2018-05-23T19:58:07.422108") + ("downloads" . 123) + ("forums" . ,forums) + ("issue_tracker" . "https://example.org/foo/issues") + ("license" . ,license) + ("long_description" . ,long-description) + ("maintainers" . #("maintainer")) + ("media_license" . ,media-license) + ("name" . ,name) + ("provides" . #("stuff")) + ("release" . 456) + ("repo" . ,repo) + ("score" . ,987.654) + ("screenshots" . #()) + ("short_description" . ,short-description) + ("state" . "APPROVED") + ("tags" . #("some" "tags")) + ("thumbnail" . null) + ("title" . "The name") + ("type" . "mod") + ("url" . ,(string-append "https://content.minetest.net/packages/" + author "/" name "/download/")) + ("website" . ,website))) + +(define* (make-releases-json #:key (commit #f) (title "") #:allow-other-keys) + `#((("commit" . ,commit) + ("downloads" . 469) + ("id" . 8614) + ("max_minetest_version" . null) + ("min_minetest_version" . null) + ("release_date" . "2021-07-25T01:10:23.207584") + ("title" . "2021-07-25")))) + +(define* (make-dependencies-json #:key (author "Author") + (name "foo") + (requirements '(("default" #f ()))) + #:allow-other-keys) + `((,(string-append author "/" name) + . ,(list->vector + (map (match-lambda + ((symbolic-name optional? implementations) + `(("is_optional" . ,optional?) + ("name" . ,symbolic-name) + ("packages" . ,(list->vector implementations))))) + requirements))) + ("something/else" . #()))) + +(define (call-with-packages thunk . argument-lists) + (mock ((guix http-client) http-fetch + (lambda* (url #:key headers) + (unless (string-prefix? "mock://api/packages/" url) + (error "the URL ~a should not be used" url)) + (define resource + (substring url (string-length "mock://api/packages/"))) + (define components (string-split resource #\/)) + (unless (>= (length components) 2) + (error "the URL ~a should have an author and name component" url)) + (define requested-author (list-ref components 0)) + (define requested-name (list-ref components 1)) + (define rest (cddr components)) + (define relevant-argument-list + (any (lambda (argument-list) + (apply (lambda* (#:key (author "Author") (name "foo") + #:allow-other-keys) + (and (equal? requested-author author) + (equal? requested-name name) + argument-list)) + argument-list)) + argument-lists)) + (when (not relevant-argument-list) + (error "the package ~a/~a should be irrelevant, but ~a is fetched" + requested-author requested-name url)) + (define (scm->json-port scm) + (open-input-string (scm->json-string scm))) + (scm->json-port + (apply (match rest + (("") make-package-json) + (("dependencies" "") make-dependencies-json) + (("releases" "") make-releases-json) + (_ (error "TODO ~a" rest))) + relevant-argument-list)))) + (parameterize ((%contentdb-api "mock://api/")) + (thunk)))) + +(define* (contentdb->guix-package* #:key (author "Author") (name "foo") + #:allow-other-keys) + (contentdb->guix-package author name)) + +(define (imported-package-sexp . extra-arguments) + (call-with-packages + (lambda () + ;; Don't reuse results from previous tests. + (invalidate-memoization! contentdb->guix-package) + (apply contentdb->guix-package* extra-arguments)) + extra-arguments)) + +(define-syntax-rule (test-package test-case . extra-arguments) + (test-equal test-case + (make-package-sexp . extra-arguments) + (imported-package-sexp . extra-arguments))) + +(test-begin "contentdb") + + +;; Package names +(test-package "contentdb->guix-package") +(test-package "contentdb->guix-package, _ → - in package name" + #:name "foo_bar" + #:guix-name "minetest-foo-bar") + + +;; Determining the home page +(test-package "contentdb->guix-package, website is used as home page" + #:home-page "web://site" + #:website "web://site") +(test-package "contentdb->guix-package, if absent, the forum is used" + #:home-page '(minetest-topic 628) + #:forums 628 + #:website 'null) +(test-package "contentdb->guix-package, if absent, the git repo is used" + #:home-page "https://github.com/minetest-mods/mesecons" + #:forums 'null + #:website 'null + #:repo "https://github.com/minetest-mods/mesecons") +(test-package "contentdb->guix-package, all home page information absent" + #:home-page #f + #:forums 'null + #:website 'null + #:repo 'null) + + + +;; Dependencies +(test-package "contentdb->guix-package, dependency" + #:requirements '(("mesecons" #f + ("Jeija/mesecons" + "some-modpack/containing-mese"))) + #:inputs '("minetest-mesecons")) + +(test-package "contentdb->guix-package, optional dependency" + #:requirements '(("mesecons" #t + ("Jeija/mesecons" + "some-modpack/containing-mese"))) + #:inputs '()) + + +;; License +(test-package "contentdb->guix-package, identical licenses" + #:guix-license 'license:lgpl3 + #:license "LGPLv3" + #:media-license "LGPLv3") + +(test-end "contentdb") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 11:50:43 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 15:50:43 +0000 Received: from localhost ([127.0.0.1]:39088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaDC-00050c-N4 for submit@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:42 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:51362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAaCy-0004xM-Ti for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 11:50:32 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id cfqN2500C0mfAB401fqTxu; Mon, 02 Aug 2021 17:50:27 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH 15/20] gnu: Add minetest-throwing-arrows. Date: Mon, 2 Aug 2021 17:50:14 +0200 Message-Id: <20210802155019.6122-15-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627919427; bh=ubIAc7+yGj00vcKqcgVngn5GLp+oD1Zmxv/+hRNsB9I=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=llnK7Ji3atbIbJTRKAqxuYFyYL8YY/Hd/Eg+RYUw5xx1UUZwSdNSG+KQEGDdBQtzj E95oNH6zJjnK2QfU3dUeRU0niPwigJ/VD0UAyg2cgXPRrN7Jzfi0ZMycinYDfcVRV/ OmdFHzZxumaJs0Y97fjwZ2rXSkyS9yY/RFxpuuLe8x8V9WAnJe4ny1xGFGXFnvpiDc Ife830qu21EAsliGRko3hGhVfLnKF9NCsuCN0H1cPWHdq+sCUkob0bnFoSr5aE47Z/ dtRIq/yF0ebm8P0eqgM90Nfo0ZQfoZZ4ZjmLGVGCvK5T+cX/MhAHOiyUIi4sctfgOt LTCdxPuGXIq2Q== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-throwing-arrows): New variable. --- gnu/packages/minetest.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 25038a5f6b..6b792bf071 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -225,6 +225,36 @@ throwing things like arrows. However, this mod does not provide an actual arrow and bow, but @code{minetest-throwing-arrows} does.") (license license:mpl2.0))) +(define-public minetest-throwing-arrows + ;; There is only one tagged commit (version 1.1), + ;; there are no releases on ContentDB and the latest + ;; commit has a compatibility fix for Minetest 5.4.0-dev. + (let ((commit "059cc897af0aebfbd2c54ac5588f2b842f44f159") + (revision "0")) + (package + (name "minetest-throwing-arrows") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/throwing_arrows") + (commit commit))) + (sha256 + (base32 "0m2pmccpfxn878zd00pmrpga2h6gknz4f3qprck0fq94mksmwqs3")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-throwing" ,minetest-throwing))) + (home-page (minetest-topic 16365)) + (synopsis "Arrows and bows for Minetest") + (description + ;; TRANSLATORS: "throwing" is the name of a Minetest mod and should + ;; not be translated. + "This mod adds arrows and bows to Minetest. It is a compatible +replacement for the throwing mod by PilzAdam that uses the throwing API.") + (license license:mpl2.0)))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 13:14:36 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 17:14:36 +0000 Received: from localhost ([127.0.0.1]:39170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbWN-0007Dd-VA for submit@debbugs.gnu.org; Mon, 02 Aug 2021 13:14:36 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:33914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbWL-0007DU-FP for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 13:14:34 -0400 Received: from [10.0.0.4] (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Gdl3p24lNz3xPN; Mon, 2 Aug 2021 19:14:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627924470; bh=FY0VZQ1ePBRvMDjbGlYPVSNcH004w3BDQSnITsbvjwo=; h=Subject:From:To:Date:In-Reply-To:References; b=pQ0LH0GnkzdpVfL0bielD6WcpiTYQresE1FzS0A0fCTXKwp7nmWU9XMa7A8iRD44v Mj+xn0dbSoj/gWu+tlwu6U8iLY4K+TOLHfhGrRxwS0SfVEST2KGepWS0xf8ps6Ppp6 0+aEL1DZ7jA9aZDsM9RHbYw+t8RekTXuLRzopnoM= Message-ID: <48cb75464f69573a09652853fff2581618b4f83a.camel@student.tugraz.at> Subject: Re: [PATCH 01/20] gnu: minetest: Respect --without-tests. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 19:14:04 +0200 In-Reply-To: <20210802155019.6122-1-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi Maxime, Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > * gnu/packages/games.scm > (minetest)[arguments]<#:phases>{check}: Use 'tests?' instead > of ',(%current-target-system)'. Remove trailing #t. For context, (%current-target-system) is used because tests only work in native builds. If this can't be reflected in the value of tests?, we should have both checks, imo. > --- > gnu/packages/games.scm | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm > index 8c6b5523f1..3e7086b398 100644 > --- a/gnu/packages/games.scm > +++ b/gnu/packages/games.scm > @@ -3590,13 +3590,12 @@ match, cannon keep, and grave-itation pit.") > (string-append (getcwd) "/games")) ; for check > #t)) > (replace 'check > - (lambda _ > + (lambda* (#:key tests? #:allow-other-keys) > ;; Thanks to our substitutions, the tests should also > run > ;; when invoked on the target outside of `guix build'. > - (unless ,(%current-target-system) > + (when tests? > (setenv "HOME" "/tmp") > - (invoke "src/minetest" "--run-unittests")) > - #t))))) > + (invoke "src/minetest" "--run-unittests"))))))) > (native-search-paths > (list (search-path-specification > (variable "MINETEST_SUBGAME_PATH") From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 13:18:52 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 17:18:52 +0000 Received: from localhost ([127.0.0.1]:39180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbaV-0007KI-P5 for submit@debbugs.gnu.org; Mon, 02 Aug 2021 13:18:52 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:54086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbaT-0007K9-Rx for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 13:18:50 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by albert.telenet-ops.be with bizsmtp id chJo2500G0mfAB406hJp1p; Mon, 02 Aug 2021 19:18:49 +0200 Message-ID: Subject: Re: [PATCH 01/20] gnu: minetest: Respect --without-tests. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 19:18:48 +0200 In-Reply-To: <48cb75464f69573a09652853fff2581618b4f83a.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <48cb75464f69573a09652853fff2581618b4f83a.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-8n+bhSD2L/yns9xTW6aG" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627924729; bh=kC2GQIf16VwWst6sFbHWO6Sw6hDqCFfIKdIJd90mY3A=; h=Subject:From:To:Date:In-Reply-To:References; b=UocU+3g1aPcsqRdViISwT2dcuJYzn5aaQhv7DooBQRfJksBpZzAaPn7PzLvLi02iN dI3t5GXi+WLEs14QbZlpReRPJIli9/97FE0zc6U6ZdtLCl/ofQ162WfKVWc5rDmjzO H3JAUVqC5mIE3NRqLWp2LSfNRoJ5c1G7qQRSIOhuzPeDhuGhGzmFUfjmTeKU30TUxE 6X20sGwFTWb7RYSE3MASJ79bQo1vRRui//dfa++qijwbjRJ27wwFjMA16kBJ2sccUQ NhZadW6Xb7FeST0BR38rU7iNP5QQ5xn7UWA2kuGXnqsOnHRFtRMSLztuQ+w3k+VGFI 0CHwYfLOVOgVQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-8n+bhSD2L/yns9xTW6aG Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op ma 02-08-2021 om 19:14 [+0200]: > Hi Maxime, >=20 > Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > > * gnu/packages/games.scm > > (minetest)[arguments]<#:phases>{check}: Use 'tests?' instead > > of ',(%current-target-system)'. Remove trailing #t. > For context, (%current-target-system) is used because tests only work > in native builds. If this can't be reflected in the value of tests?, > we should have both checks, imo. 'cmake-cross-build' sets '#:tests?' to #f by default, so I don't think both checks are needed. Greetings, Maxime. --=-8n+bhSD2L/yns9xTW6aG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQgo+BccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vyBAQDuG54PobZUCCFWmxu2H6nMJvUA z5QKHpGTgVmZtGiCrgEAyYr1FZpOYrAQZF4DYcnrypfCvRDsF4dKMmVwToI4OQs= =9o2U -----END PGP SIGNATURE----- --=-8n+bhSD2L/yns9xTW6aG-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 13:23:24 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 17:23:24 +0000 Received: from localhost ([127.0.0.1]:39184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbeu-0007RZ-Hm for submit@debbugs.gnu.org; Mon, 02 Aug 2021 13:23:24 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:44097) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAber-0007RM-Pi for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 13:23:23 -0400 Received: from [10.0.0.4] (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GdlFy2KTVz1LB21; Mon, 2 Aug 2021 19:23:18 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GdlFy2KTVz1LB21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627924998; bh=J52CA4iP7j5CB0F+53VxbTnFGKivrqbXjotEG5+PW8k=; h=Subject:From:To:Date:In-Reply-To:References:From; b=fYdm2eNi77luGgtXjwoUQtmJ2+PsLLY8viDLF0hQEbC5zC2Tiik22KqK4L9H7btjC bettR3totKWNnGK+4OnpZm8MlvUb5wE+jtiFIYrV0QkvsdRQD2pBQHNEp5r+a2EDPK fxpguFy+en32dF1PgNg8AsW+RcSbPheBrwFDrOKc= Message-ID: <3e901dfca163765a9a4ed93eedde53893a0ce364.camel@student.tugraz.at> Subject: Re: [PATCH 01/20] gnu: minetest: Respect --without-tests. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 19:22:57 +0200 In-Reply-To: References: <20210802155019.6122-1-maximedevos@telenet.be> <48cb75464f69573a09652853fff2581618b4f83a.camel@student.tugraz.at> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Am Montag, den 02.08.2021, 19:18 +0200 schrieb Maxime Devos: > Leo Prikler schreef op ma 02-08-2021 om 19:14 [+0200]: > > Hi Maxime, > > > > Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > > > * gnu/packages/games.scm > > > (minetest)[arguments]<#:phases>{check}: Use 'tests?' instead > > > of ',(%current-target-system)'. Remove trailing #t. > > For context, (%current-target-system) is used because tests only > > work in native builds. If this can't be reflected in the value of > > tests?, we should have both checks, imo. > > 'cmake-cross-build' sets '#:tests?' to #f by default, so I don't > think both checks are needed. In that case nvm and thanks for clearing that up :) From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 13:29:24 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 17:29:24 +0000 Received: from localhost ([127.0.0.1]:39190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbki-0007a5-8f for submit@debbugs.gnu.org; Mon, 02 Aug 2021 13:29:24 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:55298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAbkf-0007Zv-Kz for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 13:29:22 -0400 Received: from [10.0.0.4] (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GdlNv0Gg0z1LB21; Mon, 2 Aug 2021 19:29:18 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GdlNv0Gg0z1LB21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627925359; bh=7244GrjAJUwSb6tUZmg3fWq8O/61PmkvRJby1aBmyho=; h=Subject:From:To:Date:In-Reply-To:References:From; b=cM1uqk4QjSYnQ5JkwkBklgczNtrIlhwVmPAJVJ6wA6PcvKDkWsT7lrUSuUonI7aX/ FefY7zTbhh10UnKmEHKoEwZb0mrJz8YmTwDMgpC8u19mRXKsUOzjcLicGi5+yI7PjM WJmc8qr1pNCs6cj9WZo/BAHHojZlLhTycD4zLPDA= Message-ID: <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 19:28:58 +0200 In-Reply-To: <20210802155019.6122-2-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi Maxime, Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > * gnu/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch: > New file. > * gnu/packages/games.scm > (minetest)[source]{patches}: Add it. > (minetest)[native-search-paths]: Add "MINETEST_MOD_PATH". > * gnu/local.mk (dist_patch_DATA): Add the patch. > --- > gnu/local.mk | 1 + > gnu/packages/games.scm | 7 +- > ...vironment-variable-MINETEST_MOD_PATH.patch | 115 > ++++++++++++++++++ > 3 files changed, 122 insertions(+), 1 deletion(-) > create mode 100644 gnu/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index c80a9af78c..d96d4e3dbc 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -801,6 +801,7 @@ dist_patch_DATA = > \ > %D%/packages/patches/abseil-cpp-fix-gtest.patch \ > %D%/packages/patches/abseil-cpp-fix-strerror_test.patch \ > %D%/packages/patches/adb-add-libraries.patch > \ > + %D%/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch \ > %D%/packages/patches/aegis-constness-error.patch \ > %D%/packages/patches/aegis-perl-tempdir1.patch \ > %D%/packages/patches/aegis-perl-tempdir2.patch \ > diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm > index 3e7086b398..2f3285c6ea 100644 > --- a/gnu/packages/games.scm > +++ b/gnu/packages/games.scm > @@ -3553,6 +3553,7 @@ match, cannon keep, and grave-itation pit.") > (base32 > "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb > 8")) > (modules '((guix build utils))) > + (patches (search-patches "Add-environment-variable- > MINETEST_MOD_PATH.patch")) > (snippet > '(begin > ;; Delete bundled libraries. > @@ -3599,7 +3600,11 @@ match, cannon keep, and grave-itation pit.") > (native-search-paths > (list (search-path-specification > (variable "MINETEST_SUBGAME_PATH") > - (files '("share/minetest/games"))))) > + (files '("share/minetest/games"))) > + (search-path-specification > + (variable "MINETEST_MOD_PATH") > + (files '("share/minetest/mods")) > + (separator #f)))) > (native-inputs > `(("pkg-config" ,pkg-config))) > (inputs > diff --git a/gnu/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch b/gnu/packages/patches/Add-environment- > variable-MINETEST_MOD_PATH.patch > new file mode 100644 > index 0000000000..8478a7bf72 > --- /dev/null > +++ b/gnu/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch > @@ -0,0 +1,115 @@ > +From 6eb753c5bf67764890856cf23a67c0bf65973c16 Mon Sep 17 00:00:00 > 2001 > +From: Maxime Devos > +Date: Thu, 29 Jul 2021 22:24:50 +0200 > +Subject: [PATCH] Add environment variable MINETEST_MOD_PATH > + > +This adds an environment variable MINETEST_MOD_PATH. > +When it exists, Minetest will look there for mods > +in addition to ~/.minetest/mods/. > + > +This patch as-is is not yet ready for upstream, because: > + > + * the GUI will only display mods in MINETEST_MOD_PATH > + or mods in ~/.minetest/mods, it won't combine the two > + > + * the GUI for installing mods from ContentDB is disabled > + when MINETEST_MOD_PATH is set, because otherwise Minetest > + would try to install mods in the store. These two are fine for a "Guix-only" patch, although I do think we should still read ~/.minetest/mods for backwards compatibility. > + * MINETEST_MOD_PATH can only have a single component This one seems kinda arbitrary, though, and does not fit well with MINETEST_SUBGAME_PATH. > +--- > + builtin/mainmenu/dlg_contentstore.lua | 7 +++++++ > + src/content/subgames.cpp | 3 +++ > + src/script/lua_api/l_mainmenu.cpp | 14 +++++++++++++- > + src/script/lua_api/l_mainmenu.h | 2 ++ > + 4 files changed, 25 insertions(+), 1 deletion(-) > + > +diff --git a/builtin/mainmenu/dlg_contentstore.lua > b/builtin/mainmenu/dlg_contentstore.lua > +index 7096c9187..c4a2cbd18 100644 > +--- a/builtin/mainmenu/dlg_contentstore.lua > ++++ b/builtin/mainmenu/dlg_contentstore.lua > +@@ -22,6 +22,13 @@ if not core.get_http_api then > + end > + return > + end > ++if core.mod_path_set() then > ++ function create_store_dlg() > ++ return messagebox("store", > ++ fgettext("Mods from ContentDB cannot be > installed when mods from Guix are also installed")) > ++ end > ++ return > ++end > + > + -- Unordered preserves the original order of the ContentDB API, > + -- before the package list is ordered based on installed state. > +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp > +index e9dc609b0..1809f189e 100644 > +--- a/src/content/subgames.cpp > ++++ b/src/content/subgames.cpp > +@@ -110,6 +110,9 @@ SubgameSpec findSubgame(const std::string &id) > + std::set mods_paths; > + if (!user_game) > + mods_paths.insert(share + DIR_DELIM + "mods"); > ++ const char *env_mod_path = getenv("MINETEST_MOD_PATH"); > ++ if (env_mod_path) > ++ mods_paths.insert(std::string(env_mod_path)); Here, I would instead use an std::istringstream together with std::getline(<>, <>, ':') to get the components of MINETEST_MOD_PATH and insert each of them. Either that or copy whatever is used for MINETEST_SUBGAME_PATH. > + if (user != share || user_game) > + mods_paths.insert(user + DIR_DELIM + "mods"); > + > +diff --git a/src/script/lua_api/l_mainmenu.cpp > b/src/script/lua_api/l_mainmenu.cpp > +index ad00de1c4..737550c42 100644 > +--- a/src/script/lua_api/l_mainmenu.cpp > ++++ b/src/script/lua_api/l_mainmenu.cpp > +@@ -495,9 +495,19 @@ int ModApiMainMenu::l_get_user_path(lua_State > *L) > + > /******************************************************************** > **********/ > + int ModApiMainMenu::l_get_modpath(lua_State *L) > + { > ++ const char *c_modpath = getenv("MINETEST_MOD_PATH"); > + std::string modpath = fs::RemoveRelativePathComponents( > + porting::path_user + DIR_DELIM + "mods" + DIR_DELIM); > +- lua_pushstring(L, modpath.c_str()); > ++ if (c_modpath == NULL) > ++ c_modpath = modpath.c_str(); > ++ lua_pushstring(L, c_modpath); > ++ return 1; > ++} > ++ > ++/****************************************************************** > ************/ > ++int ModApiMainMenu::l_mod_path_set(lua_State *L) > ++{ > ++ lua_pushboolean(L, NULL != getenv("MINETEST_MOD_PATH")); > + return 1; > + } > + > +@@ -855,6 +865,7 @@ void ModApiMainMenu::Initialize(lua_State *L, > int top) > + API_FCT(get_mapgen_names); > + API_FCT(get_user_path); > + API_FCT(get_modpath); > ++ API_FCT(mod_path_set); > + API_FCT(get_clientmodpath); > + API_FCT(get_gamepath); > + API_FCT(get_texturepath); > +@@ -888,6 +899,7 @@ void ModApiMainMenu::InitializeAsync(lua_State > *L, int top) > + API_FCT(get_mapgen_names); > + API_FCT(get_user_path); > + API_FCT(get_modpath); > ++ API_FCT(mod_path_set); > + API_FCT(get_clientmodpath); > + API_FCT(get_gamepath); > + API_FCT(get_texturepath); > +diff --git a/src/script/lua_api/l_mainmenu.h > b/src/script/lua_api/l_mainmenu.h > +index ec2d20da2..719c26077 100644 > +--- a/src/script/lua_api/l_mainmenu.h > ++++ b/src/script/lua_api/l_mainmenu.h > +@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase > + > + static int l_get_modpath(lua_State *L); > + > ++ static int l_mod_path_set(lua_State *L); > ++ > + static int l_get_clientmodpath(lua_State *L); > + > + static int l_get_gamepath(lua_State *L); > +-- > +2.32.0 What are these modpaths used for? For mod installation or for querying mod existence? If it's the former, you could leave them as-is, similar to how elpa stays enabled in Emacs. Regards, From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 13:53:28 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 17:53:28 +0000 Received: from localhost ([127.0.0.1]:39209 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAc7z-00088Y-Oy for submit@debbugs.gnu.org; Mon, 02 Aug 2021 13:53:28 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:44930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAc7x-00088P-89 for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 13:53:26 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by albert.telenet-ops.be with bizsmtp id chtP2500P0mfAB406htPZ0; Mon, 02 Aug 2021 19:53:23 +0200 Message-ID: <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 19:53:15 +0200 In-Reply-To: <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-upu71d3VCi8F/xAj7dL4" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627926803; bh=SBSGYwBOwy8O9VE6GumfeR5dafD/J9tSNkUwLnfccvQ=; h=Subject:From:To:Date:In-Reply-To:References; b=TRCD28YhNqTtdrL/kfBXtLjq6XzdIP6pbLOlzIDmEgyuPdwJgh46I+upcd58w/bKP BVvH+Cv9e2RASBPTjopKNKeGXGd/p6h+sKYH7ZCTW1qd6nGMD/NOkXM4DHgHmSfe2f cvot2RtVRtDP67dscCF2CzCRe/P7yTswPGGjZ/QAjKT6tXTXVnrLICPIhdN5ri4j3m htNk6Rsgwt6S0wRTNEc53uTG+MiV409/BWiuiUSipDbh29wIglkLNWOEz9Q1qQYIXX wOYsr9N+u0Ke2OzWSEU9rQT5sHShjAUEUkn55PRIlbeLO8b8TyM9uI5GQfxHadPSuv jlxkI8NfeHIvw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-upu71d3VCi8F/xAj7dL4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > +This patch as-is is not yet ready for upstream, because: > > + > > + * the GUI will only display mods in MINETEST_MOD_PATH > > + or mods in ~/.minetest/mods, it won't combine the two > > + > > + * the GUI for installing mods from ContentDB is disabled > > + when MINETEST_MOD_PATH is set, because otherwise Minetest > > + would try to install mods in the store. > These two are fine for a "Guix-only" patch, although I do think we > should still read ~/.minetest/mods for backwards compatibility. ~/.minetest/mods is still read when MINETEST_MOD_PATH is unset. MINETEST_MOD_PATH is only set when some mod is actually installed. So backwards compatibility should be ok. > > + * MINETEST_MOD_PATH can only have a single component > This one seems kinda arbitrary, though, and does not fit well with > MINETEST_SUBGAME_PATH. Yes, I know. I didn't know how to adjust pkgmgr.lua and dlg_contentstore.l= ua to support multiple components, though I have an idea now to try. > > + -- Unordered preserves the original order of the ContentDB API, > > + -- before the package list is ordered based on installed state. > > +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp > > +index e9dc609b0..1809f189e 100644 > > +--- a/src/content/subgames.cpp > > ++++ b/src/content/subgames.cpp > > +@@ -110,6 +110,9 @@ SubgameSpec findSubgame(const std::string &id) > > + std::set mods_paths; > > + if (!user_game) > > + mods_paths.insert(share + DIR_DELIM + "mods"); > > ++ const char *env_mod_path =3D getenv("MINETEST_MOD_PATH"); > > ++ if (env_mod_path) > > ++ mods_paths.insert(std::string(env_mod_path)); > Here, I would instead use an std::istringstream together with > std::getline(<>, <>, ':') to get the components of MINETEST_MOD_PATH > and insert each of them. Either that or copy whatever is used for > MINETEST_SUBGAME_PATH. Minetest has a class 'Strfnd' supporting iteration. Using that, it should be easy to allow MINETEST_MOD_PATH to contain ":" seperators. However, the GUI client code (pkgmgr.lua) uses some other logic for determining which mods exists, and currently, that logic does not support ":" separators. > > +diff --git a/src/script/lua_api/l_mainmenu.cpp > > b/src/script/lua_api/l_mainmenu.cpp > > +index ad00de1c4..737550c42 100644 > > +--- a/src/script/lua_api/l_mainmenu.cpp > > ++++ b/src/script/lua_api/l_mainmenu.cpp > > +@@ -495,9 +495,19 @@ int ModApiMainMenu::l_get_user_path(lua_State > > *L) > > + > > /******************************************************************** > > **********/ > > + int ModApiMainMenu::l_get_modpath(lua_State *L) > > + { > > ++ const char *c_modpath =3D getenv("MINETEST_MOD_PATH"); > > + std::string modpath =3D fs::RemoveRelativePathComponents( > > + porting::path_user + DIR_DELIM + "mods" + DIR_DELIM); > > +- lua_pushstring(L, modpath.c_str()); > > ++ if (c_modpath =3D=3D NULL) > > ++ c_modpath =3D modpath.c_str(); > > ++ lua_pushstring(L, c_modpath); > > ++ return 1; > > ++} > > ++ > > ++/****************************************************************** > > ************/ > > ++int ModApiMainMenu::l_mod_path_set(lua_State *L) > > ++{ > > ++ lua_pushboolean(L, NULL !=3D getenv("MINETEST_MOD_PATH")); > > + return 1; > > + } > > +=20 > > +@@ -855,6 +865,7 @@ void ModApiMainMenu::Initialize(lua_State *L, > > int top) > > + API_FCT(get_mapgen_names); > > + API_FCT(get_user_path); > > + API_FCT(get_modpath); > > ++ API_FCT(mod_path_set); > > + API_FCT(get_clientmodpath); > > + API_FCT(get_gamepath); > > + API_FCT(get_texturepath); > > +@@ -888,6 +899,7 @@ void ModApiMainMenu::InitializeAsync(lua_State > > *L, int top) > > + API_FCT(get_mapgen_names); > > + API_FCT(get_user_path); > > + API_FCT(get_modpath); > > ++ API_FCT(mod_path_set); > > + API_FCT(get_clientmodpath); > > + API_FCT(get_gamepath); > > + API_FCT(get_texturepath); > > +diff --git a/src/script/lua_api/l_mainmenu.h > > b/src/script/lua_api/l_mainmenu.h > > +index ec2d20da2..719c26077 100644 > > +--- a/src/script/lua_api/l_mainmenu.h > > ++++ b/src/script/lua_api/l_mainmenu.h > > +@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase > > +=20 > > + static int l_get_modpath(lua_State *L); > > +=20 > > ++ static int l_mod_path_set(lua_State *L); > > ++ > > + static int l_get_clientmodpath(lua_State *L); > > +=20 > > + static int l_get_gamepath(lua_State *L); > > +--=20 > > +2.32.0 > What are these modpaths used for? For mod installation or for querying > mod existence? If it's the former, you could leave them as-is, similar > to how elpa stays enabled in Emacs. It is only used by the GUI. The GUI looks in the directory returned by "get_modpath" for two things: (1) to determine which mods exist (and to find their descriptions, their dependency list, screenshots ...). Only the mods that exist there can be enabled. (2) to determine where mods must be installed when using Minetest's built-in installer. Greetings, Maxime. --=-upu71d3VCi8F/xAj7dL4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQgxCxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lSKAQCBoMLuhHqfcmtrdC/q6tt0xpoo Zi9WrbtkA1Wh6ZCJCgEAkApax6ucUtN7lMKzpzbhrSXX6rOpnAIRwCbtTtBf9Aw= =OLAf -----END PGP SIGNATURE----- --=-upu71d3VCi8F/xAj7dL4-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 02 14:48:05 2021 Received: (at 49828) by debbugs.gnu.org; 2 Aug 2021 18:48:05 +0000 Received: from localhost ([127.0.0.1]:39289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAcyr-00013Q-4L for submit@debbugs.gnu.org; Mon, 02 Aug 2021 14:48:05 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:56831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAcyo-00012y-CB for 49828@debbugs.gnu.org; Mon, 02 Aug 2021 14:48:04 -0400 Received: from [10.0.0.4] (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Gdn7f4dsqz1LB21; Mon, 2 Aug 2021 20:47:58 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4Gdn7f4dsqz1LB21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627930078; bh=xlGVtFNV6ChTU+yG8/BPcFImcMFN2mOwYDMt37twQjA=; h=Subject:From:To:Date:In-Reply-To:References:From; b=nB5boUk1L+oI3lQ6c4VVfJOwae65GNz5SoCaHGe8BpzxW+s7pF/M5kJBO/HYC1K1N EW1L4lf/D4DOBcZGlzMLUS80oGixI4X3+2HzUBYP/WQvgxLY0fSiCyIrd/Epekazt7 NNcBfHRFtKt/zA1JZ2260Ix31cyg4/Uu6N4DZE1E= Message-ID: <19c7cec42e57899c62ba6b4ff7f297a3e5bc2be4.camel@student.tugraz.at> Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Mon, 02 Aug 2021 20:47:37 +0200 In-Reply-To: <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Am Montag, den 02.08.2021, 19:53 +0200 schrieb Maxime Devos: > > > +This patch as-is is not yet ready for upstream, because: > > > + > > > + * the GUI will only display mods in MINETEST_MOD_PATH > > > + or mods in ~/.minetest/mods, it won't combine the two > > > + > > > + * the GUI for installing mods from ContentDB is disabled > > > + when MINETEST_MOD_PATH is set, because otherwise Minetest > > > + would try to install mods in the store. > > These two are fine for a "Guix-only" patch, although I do think we > > should still read ~/.minetest/mods for backwards compatibility. > > ~/.minetest/mods is still read when MINETEST_MOD_PATH is unset. > MINETEST_MOD_PATH is only set when some mod is actually installed. > So backwards compatibility should be ok. I mean in the sense of "have some mods in ~/.minetest/mods, that aren't yet packaged in Guix and have the rest sit in the profile where they belong". Not everyone will like the the import to manifest approach that is needed while you're waiting for review. > > > + * MINETEST_MOD_PATH can only have a single component > > This one seems kinda arbitrary, though, and does not fit well with > > MINETEST_SUBGAME_PATH. > > Yes, I know. I didn't know how to adjust pkgmgr.lua and > dlg_contentstore.lua > to support multiple components, though I have an idea now to try. > > > > + -- Unordered preserves the original order of the ContentDB API, > > > + -- before the package list is ordered based on installed state. > > > +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp > > > +index e9dc609b0..1809f189e 100644 > > > +--- a/src/content/subgames.cpp > > > ++++ b/src/content/subgames.cpp > > > +@@ -110,6 +110,9 @@ SubgameSpec findSubgame(const std::string > > > &id) > > > + std::set mods_paths; > > > + if (!user_game) > > > + mods_paths.insert(share + DIR_DELIM + "mods"); > > > ++ const char *env_mod_path = getenv("MINETEST_MOD_PATH"); > > > ++ if (env_mod_path) > > > ++ mods_paths.insert(std::string(env_mod_path)); > > Here, I would instead use an std::istringstream together with > > std::getline(<>, <>, ':') to get the components of > > MINETEST_MOD_PATH > > and insert each of them. Either that or copy whatever is used for > > MINETEST_SUBGAME_PATH. > > Minetest has a class 'Strfnd' supporting iteration. Using that, > it should be easy to allow MINETEST_MOD_PATH to contain ":" > seperators. > However, the GUI client code (pkgmgr.lua) > uses some other logic for determining which mods exists, and > currently, > that logic does not support ":" separators. Hmm, how important is the GUI side here? Can we sneek mods into it? > > > +diff --git a/src/script/lua_api/l_mainmenu.cpp > > > b/src/script/lua_api/l_mainmenu.cpp > > > +index ad00de1c4..737550c42 100644 > > > +--- a/src/script/lua_api/l_mainmenu.cpp > > > ++++ b/src/script/lua_api/l_mainmenu.cpp > > > +@@ -495,9 +495,19 @@ int > > > ModApiMainMenu::l_get_user_path(lua_State > > > *L) > > > + > > > /**************************************************************** > > > **** > > > **********/ > > > + int ModApiMainMenu::l_get_modpath(lua_State *L) > > > + { > > > ++ const char *c_modpath = getenv("MINETEST_MOD_PATH"); > > > + std::string modpath = fs::RemoveRelativePathComponents( > > > + porting::path_user + DIR_DELIM + "mods" + > > > DIR_DELIM); > > > +- lua_pushstring(L, modpath.c_str()); > > > ++ if (c_modpath == NULL) > > > ++ c_modpath = modpath.c_str(); > > > ++ lua_pushstring(L, c_modpath); > > > ++ return 1; > > > ++} > > > ++ > > > ++/************************************************************** > > > **** > > > ************/ > > > ++int ModApiMainMenu::l_mod_path_set(lua_State *L) > > > ++{ > > > ++ lua_pushboolean(L, NULL != > > > getenv("MINETEST_MOD_PATH")); > > > + return 1; > > > + } > > > + > > > +@@ -855,6 +865,7 @@ void ModApiMainMenu::Initialize(lua_State > > > *L, > > > int top) > > > + API_FCT(get_mapgen_names); > > > + API_FCT(get_user_path); > > > + API_FCT(get_modpath); > > > ++ API_FCT(mod_path_set); > > > + API_FCT(get_clientmodpath); > > > + API_FCT(get_gamepath); > > > + API_FCT(get_texturepath); > > > +@@ -888,6 +899,7 @@ void > > > ModApiMainMenu::InitializeAsync(lua_State > > > *L, int top) > > > + API_FCT(get_mapgen_names); > > > + API_FCT(get_user_path); > > > + API_FCT(get_modpath); > > > ++ API_FCT(mod_path_set); > > > + API_FCT(get_clientmodpath); > > > + API_FCT(get_gamepath); > > > + API_FCT(get_texturepath); > > > +diff --git a/src/script/lua_api/l_mainmenu.h > > > b/src/script/lua_api/l_mainmenu.h > > > +index ec2d20da2..719c26077 100644 > > > +--- a/src/script/lua_api/l_mainmenu.h > > > ++++ b/src/script/lua_api/l_mainmenu.h > > > +@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase > > > + > > > + static int l_get_modpath(lua_State *L); > > > + > > > ++ static int l_mod_path_set(lua_State *L); > > > ++ > > > + static int l_get_clientmodpath(lua_State *L); > > > + > > > + static int l_get_gamepath(lua_State *L); > > > +-- > > > +2.32.0 > > What are these modpaths used for? For mod installation or for > > querying mod existence? If it's the former, you could leave them > > as-is, similar to how elpa stays enabled in Emacs. > > It is only used by the GUI. The GUI looks in the directory returned > by "get_modpath" for two things: > > (1) to determine which mods exist (and to find their descriptions, > their dependency list, screenshots ...). Only the mods that > exist there can be enabled. > > (2) to determine where mods must be installed when using Minetest's > built-in installer. I see. Is this the same GUI for all parts or different GUIs? I think if we can handle the world creation parts, everything should be fine, no? Regards, From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 05:17:47 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 09:17:47 +0000 Received: from localhost ([127.0.0.1]:39849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAqYU-0003At-Pe for submit@debbugs.gnu.org; Tue, 03 Aug 2021 05:17:47 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:64785) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAqYR-0003Af-Q0 for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 05:17:45 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Gf8R84n0fz1LZW9; Tue, 3 Aug 2021 11:17:40 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4Gf8R84n0fz1LZW9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627982260; bh=VTzgwy1dofhRwnac4x5ReSkUgfpWYmcW6V3T7EomWOQ=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Kfr9pZAEKaiv0ChZR+INwiyKB31dmdNs37YfRQMtJ2n2I/vlpKNpqLKHV3bFOREnN RFZQsKpPg9VeV6MmTQaPZmJG1Eaq/44I+BMwahX+BDwrpzecmFM8b632v9dWAwOU87 4GjDJY+unBHiUuSorJCA+7KYVBoxWM1IjAqBr3HQ= Message-ID: <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 11:17:39 +0200 In-Reply-To: <20210802155019.6122-5-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, I'd merge this and 04/20 into a single patch. 04/20 does of its own give a good incentive as to why a new build system is to be used (this could instead be handled by the importer), with this phase added it makes slightly more sense. OTOH, perhaps we shouldn't install those shell scripts in the first place? Perhaps we can instead make the importer generate packages based directly on copy-build-system, in which those static strings are already evaluated. WDYT? Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > * guix/build-system/minetest.scm > (%standard-phases): New variable. Delete "patch-source-shebangs" > phase. > (lower-mod): Set #:phases to value of new variable. > --- > guix/build-system/minetest.scm | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/guix/build-system/minetest.scm b/guix/build- > system/minetest.scm > index 29866ced6d..993c5631eb 100644 > --- a/guix/build-system/minetest.scm > +++ b/guix/build-system/minetest.scm > @@ -35,6 +35,14 @@ > (substring package-name 9) > package-name)) > > +(define %standard-phases > + ;; The source code sometimes contains shell scripts which are used > for > + ;; development but not at run time (e.g. listnodes.sh in > + ;; minetest-homedecor-modpack). Don't make them retain a > reference > + ;; to bash-minimal. > + '(modify-phases (@ (guix build copy-build-system) %standard- > phases) > + (delete 'patch-source-shebangs))) > + > (define (lower-mod name . arguments) > (define lower (build-system-lower copy-build-system)) > (apply lower > @@ -42,6 +50,7 @@ > #:install-plan > `'(("." ,(string-append "share/minetest/mods/" > (guix-name->mod-name name)))) > + #:phases %standard-phases > arguments)) > > (define minetest-mod-build-system From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 07:09:25 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 11:09:25 +0000 Received: from localhost ([127.0.0.1]:39904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAsIW-000683-Ls for submit@debbugs.gnu.org; Tue, 03 Aug 2021 07:09:25 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:34892) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAsIU-00067t-Ha for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 07:09:23 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by albert.telenet-ops.be with bizsmtp id cz9L250020mfAB406z9Lpb; Tue, 03 Aug 2021 13:09:20 +0200 Message-ID: <9cc691b6c242e31edcc1215d259eab9306715708.camel@telenet.be> Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 13:09:14 +0200 In-Reply-To: <19c7cec42e57899c62ba6b4ff7f297a3e5bc2be4.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> <19c7cec42e57899c62ba6b4ff7f297a3e5bc2be4.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-F87mvZAfWuZVsakyvqBX" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627988960; bh=7C+A/JbzU8NlPk8+3+SQRJDr3T6m3lXgoA7WOYP0KBw=; h=Subject:From:To:Date:In-Reply-To:References; b=ppj5+T0GVrDKI/Tc8+18AOoppnADeMZMIIX5B5lDbydHktXHWEt/aOGB6Q2zlFiLb JotlynQfVIsJc96yCewJudps40csHA7A7Jes+D63EdCIACvn+TNAPVl8mKahYyFVE+ zI62kResLZtIDBYZX8T//2w/2ozaBA9ViE+BAh71YMoCHL2QQwKrG3/1wAIvzunP4c 0qlsCOrR/tnS38PVl76sSJd2WujYaM0qYJYiFVg59PHDIaMmzgn2o3WUvvr0VMpJpg 1m7bs6KjNTjiSOTrifY1TE3F+SiZPPAC5SHvOayRSkqPTCWxpuHic2E5/YrmxBpvYB Sc4D9uP/bQ/+w== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-F87mvZAfWuZVsakyvqBX Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I've modified this patch such that: * the GUI will display mods in MINETEST_MOD_PATH as well as mods in ~/.minetest/mods * the built-in installer works even if MINETEST_MOD_PATH is set * MINETEST_MOD_PATH can contain multiple components Please tell if there are other issues I'll look into the upstream procedure for submitting patches. Leo Prikler schreef op ma 02-08-2021 om 20:47 [+0200]: > Am Montag, den 02.08.2021, 19:53 +0200 schrieb Maxime Devos: > > > > +This patch as-is is not yet ready for upstream, because: > > > > + > > > > + * the GUI will only display mods in MINETEST_MOD_PATH > > > > + or mods in ~/.minetest/mods, it won't combine the two > > > > + > > > > + * the GUI for installing mods from ContentDB is disabled > > > > + when MINETEST_MOD_PATH is set, because otherwise Minetest > > > > + would try to install mods in the store. > > > These two are fine for a "Guix-only" patch, although I do think we > > > should still read ~/.minetest/mods for backwards compatibility. > >=20 > > ~/.minetest/mods is still read when MINETEST_MOD_PATH is unset. > > MINETEST_MOD_PATH is only set when some mod is actually installed. > > So backwards compatibility should be ok. > I mean in the sense of "have some mods in ~/.minetest/mods, that aren't > yet packaged in Guix and have the rest sit in the profile where they > belong". Not everyone will like the the import to manifest approach > that is needed while you're waiting for review. All three points should be addresed by the new patch. > > > > + -- Unordered preserves the original order of the ContentDB API, > > > > + -- before the package list is ordered based on installed state. > > > > +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp > > > > +index e9dc609b0..1809f189e 100644 > > > > +--- a/src/content/subgames.cpp > > > > ++++ b/src/content/subgames.cpp > > > > +@@ -110,6 +110,9 @@ SubgameSpec findSubgame(const std::string > > > > &id) > > > > + std::set mods_paths; > > > > + if (!user_game) > > > > + mods_paths.insert(share + DIR_DELIM + "mods"); > > > > ++ const char *env_mod_path =3D getenv("MINETEST_MOD_PATH"); > > > > ++ if (env_mod_path) > > > > ++ mods_paths.insert(std::string(env_mod_path)); > > > Here, I would instead use an std::istringstream together with > > > std::getline(<>, <>, ':') to get the components of > > > MINETEST_MOD_PATH > > > and insert each of them. Either that or copy whatever is used for > > > MINETEST_SUBGAME_PATH. > >=20 > > Minetest has a class 'Strfnd' supporting iteration. Using that, > > it should be easy to allow MINETEST_MOD_PATH to contain ":" > > seperators. > > However, the GUI client code (pkgmgr.lua) > > uses some other logic for determining which mods exists, and > > currently, > > that logic does not support ":" separators. > Hmm, how important is the GUI side here? Can we sneek mods into it? The GUI side is very important. All mods are disabled by default, and in the GUI you need to choose which mods to enable. If the GUI doesn't know about the existence of the mod, then the mod cannot be enabled. > > It is only used by the GUI. The GUI looks in the directory returned > > by "get_modpath" for two things: > >=20 > > (1) to determine which mods exist (and to find their descriptions, =20 > > their dependency list, screenshots ...). Only the mods that=20 > > exist there can be enabled. > >=20 > > (2) to determine where mods must be installed when using Minetest's > > built-in installer. > I see. Is this the same GUI for all parts or different GUIs? I think > if we can handle the world creation parts, everything should be fine, > no? The =E2=80=98mod selecter=E2=80=99 (1) and installer (2) have separate grap= hical interfaces, but they use some common code 'pkgmgr.lua'. In the new patch, 'get_modpath= ()' (a string) is where mods should be installed by the built-in installer, and 'get_modpaths()' (a list of strings) is where mods can be found. Both interfaces work with the new patch. Greetings, Maxime. --=-F87mvZAfWuZVsakyvqBX Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQkj2xccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mtAAQDGW+NY+YUBnMEwjmM9wq0EuDdz FzKLVcL/MrbshcqHRAEA93Na0s6Hd86yVCYA+0bfLnMfWmTspPKxulNfFIuv7gE= =v97R -----END PGP SIGNATURE----- --=-F87mvZAfWuZVsakyvqBX-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 07:10:30 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 11:10:30 +0000 Received: from localhost ([127.0.0.1]:39909 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAsJa-0006A4-5N for submit@debbugs.gnu.org; Tue, 03 Aug 2021 07:10:30 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:58720) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAsJX-00069u-Bs for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 07:10:28 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by laurent.telenet-ops.be with bizsmtp id czAS250020mfAB401zASvc; Tue, 03 Aug 2021 13:10:26 +0200 Message-ID: <52f3bab58e39a8d6cd9db175f2abf883008a69f0.camel@telenet.be> Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 13:10:25 +0200 In-Reply-To: <9cc691b6c242e31edcc1215d259eab9306715708.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> <19c7cec42e57899c62ba6b4ff7f297a3e5bc2be4.camel@student.tugraz.at> <9cc691b6c242e31edcc1215d259eab9306715708.camel@telenet.be> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-hjh5nTm7ZB6cJrfwx3pV" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627989026; bh=rhykMQpJn0JG4Ydyhi7l+koy43uac9XR7Yjyp9lbZDA=; h=Subject:From:To:Date:In-Reply-To:References; b=SGHGlm/5UIwUCR9cylCh86SHwtMOmAfa1fmEw6Ebs9lY2PFjKg5gBg8PuiNgiGzf+ MjIKQ3vL3rSdUkE01iggsGvly8Av1LG3yrnL2c8oqlFayKqBtUTmz6JHCUjw/CRvsf mpBRHYp7QVuLBtIF62TgLOeeURUJdJ+4t8+H4Ixu/beNwcJ+9eArMfFA6EFI9lFyte 4A7kBS2hixgD6ZmXtOQ7KHc45+rWxOw4Ab3tAwz4ViDO8mCFxjgR2vZyspv5pLdQcf 1ufOjHGSHzokNHu/8tOasHlxdNfVAO3T2J10De5Y9x/fVKM1styAqO/8JTPg1NXNvP QDX1wnk7IAbVg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-hjh5nTm7ZB6cJrfwx3pV Content-Type: multipart/mixed; boundary="=-YANAPBHRIJvCEQ0LwERN" --=-YANAPBHRIJvCEQ0LwERN Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I forgot to attach the patch. --=-YANAPBHRIJvCEQ0LwERN Content-Disposition: inline; filename="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch"; charset="UTF-8" RnJvbSBlOTk5YjVlZjcxZDM5M2VkZGQ1NzY3YTEwOGE3YmQ4NjRmZjZlYzUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTg6MDg6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzIwXSBnbnU6IG1pbmV0ZXN0OiBTZWFyY2ggZm9yIG1vZHMgaW4gTUlORVRFU1RfTU9EX1BBVEgu CgoqIGdudS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVT VF9NT0RfUEFUSC5wYXRjaDoKICBOZXcgZmlsZS4KKiBnbnUvcGFja2FnZXMvZ2FtZXMuc2NtCiAg KG1pbmV0ZXN0KVtzb3VyY2Vde3BhdGNoZXN9OiBBZGQgaXQuCiAgKG1pbmV0ZXN0KVtuYXRpdmUt c2VhcmNoLXBhdGhzXTogQWRkICJNSU5FVEVTVF9NT0RfUEFUSCIuCiogZ251L2xvY2FsLm1rIChk aXN0X3BhdGNoX0RBVEEpOiBBZGQgdGhlIHBhdGNoLgotLS0KIGdudS9sb2NhbC5tayAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBnbnUvcGFja2FnZXMvZ2FtZXMuc2Nt ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIC4uLnZpcm9ubWVudC12YXJpYWJsZS1N SU5FVEVTVF9NT0RfUEFUSC5wYXRjaCB8IDE2MiArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBnbnUvcGFja2FnZXMvcGF0Y2hlcy9BZGQtZW52aXJvbm1lbnQtdmFyaWFibGUtTUlORVRF U1RfTU9EX1BBVEgucGF0Y2gKCmRpZmYgLS1naXQgYS9nbnUvbG9jYWwubWsgYi9nbnUvbG9jYWwu bWsKaW5kZXggYzgwYTlhZjc4Yy4uZDk2ZDRlM2RiYyAxMDA2NDQKLS0tIGEvZ251L2xvY2FsLm1r CisrKyBiL2dudS9sb2NhbC5tawpAQCAtODAxLDYgKzgwMSw3IEBAIGRpc3RfcGF0Y2hfREFUQSA9 CQkJCQkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1ndGVzdC5wYXRj aAkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1zdHJlcnJvcl90ZXN0 LnBhdGNoCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvYWRiLWFkZC1saWJyYXJpZXMucGF0Y2gJ CQlcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5F VEVTVF9NT0RfUEFUSC5wYXRjaAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lzLWNvbnN0 bmVzcy1lcnJvci5wYXRjaCAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lz LXBlcmwtdGVtcGRpcjEucGF0Y2ggICAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVz L2FlZ2lzLXBlcmwtdGVtcGRpcjIucGF0Y2ggICAgICAgICAgIAlcCmRpZmYgLS1naXQgYS9nbnUv cGFja2FnZXMvZ2FtZXMuc2NtIGIvZ251L3BhY2thZ2VzL2dhbWVzLnNjbQppbmRleCAzZTcwODZi Mzk4Li42YTMwYzUzZTMyIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvZ2FtZXMuc2NtCisrKyBi L2dudS9wYWNrYWdlcy9nYW1lcy5zY20KQEAgLTM1NTMsNiArMzU1Myw3IEBAIG1hdGNoLCBjYW5u b24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgICAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICAgICAgIjA2MmlsYjdzMzc3cTNod2ZobDhxMDZ2dmN3MnJheWR6NWxqemx6 d3kyZG15em1kY25kYjgiKSkKICAgICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB1 dGlscykpKQorICAgICAgICAgICAgICAocGF0Y2hlcyAoc2VhcmNoLXBhdGNoZXMgIkFkZC1lbnZp cm9ubWVudC12YXJpYWJsZS1NSU5FVEVTVF9NT0RfUEFUSC5wYXRjaCIpKQogICAgICAgICAgICAg ICAoc25pcHBldAogICAgICAgICAgICAgICAgJyhiZWdpbgogICAgICAgICAgICAgICAgICAgOzsg RGVsZXRlIGJ1bmRsZWQgbGlicmFyaWVzLgpAQCAtMzU5OSw3ICszNjAwLDEwIEBAIG1hdGNoLCBj YW5ub24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgKG5hdGl2ZS1zZWFyY2gt cGF0aHMKICAgICAgKGxpc3QgKHNlYXJjaC1wYXRoLXNwZWNpZmljYXRpb24KICAgICAgICAgICAg ICh2YXJpYWJsZSAiTUlORVRFU1RfU1VCR0FNRV9QQVRIIikKLSAgICAgICAgICAgIChmaWxlcyAn KCJzaGFyZS9taW5ldGVzdC9nYW1lcyIpKSkpKQorICAgICAgICAgICAgKGZpbGVzICcoInNoYXJl L21pbmV0ZXN0L2dhbWVzIikpKQorICAgICAgICAgICAoc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlv bgorICAgICAgICAgICAgKHZhcmlhYmxlICJNSU5FVEVTVF9NT0RfUEFUSCIpCisgICAgICAgICAg ICAoZmlsZXMgJygic2hhcmUvbWluZXRlc3QvbW9kcyIpKSkpKQogICAgIChuYXRpdmUtaW5wdXRz CiAgICAgIGAoKCJwa2ctY29uZmlnIiAscGtnLWNvbmZpZykpKQogICAgIChpbnB1dHMKZGlmZiAt LWdpdCBhL2dudS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5F VEVTVF9NT0RfUEFUSC5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVu dC12YXJpYWJsZS1NSU5FVEVTVF9NT0RfUEFUSC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi44ZDcyYzQyYmY5Ci0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2th Z2VzL3BhdGNoZXMvQWRkLWVudmlyb25tZW50LXZhcmlhYmxlLU1JTkVURVNUX01PRF9QQVRILnBh dGNoCkBAIC0wLDAgKzEsMTYyIEBACitGcm9tIGRjY2FhZTNhZWJlZGI1MTc4MjAxYmE4MThiODI2 NGZkYjllNWU4MzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWUgRGV2b3Mg PG1heGltZWRldm9zQHRlbGVuZXQuYmU+CitEYXRlOiBUdWUsIDMgQXVnIDIwMjEgMDE6MDA6MjMg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGVudmlyb25tZW50IHZhcmlhYmxlIE1JTkVURVNU X01PRF9QQVRICisKK1RoaXMgYWRkcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSU5FVEVTVF9N T0RfUEFUSC4KK1doZW4gaXQgZXhpc3RzLCBNaW5ldGVzdCB3aWxsIGxvb2sgdGhlcmUgZm9yIG1v ZHMKK2luIGFkZGl0aW9uIHRvIH4vLm1pbmV0ZXN0L21vZHMvLiAgTW9kcyBjYW4gc3RpbGwgYmUK K2luc3RhbGxlZCB0byB+Ly5taW5ldGVzdC9tb2RzLyB3aXRoIHRoZSBidWlsdC1pbiBpbnN0YWxs ZXIuCistLS0KKyBidWlsdGluL21haW5tZW51L3BrZ21nci5sdWEgICAgICAgfCAgNyArKystLS0t CisgZG9jL21lbnVfbHVhX2FwaS50eHQgICAgICAgICAgICAgIHwgIDggKysrKysrKy0KKyBzcmMv Y29udGVudC9zdWJnYW1lcy5jcHAgICAgICAgICAgfCAxMSArKysrKysrKysrKworIHNyYy9zY3Jp cHQvbHVhX2FwaS9sX21haW5tZW51LmNwcCB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKKyBzcmMvc2NyaXB0L2x1YV9hcGkvbF9tYWlubWVudS5oICAgfCAgMiArKworIDUgZmls ZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2J1aWx0aW4vbWFpbm1lbnUvcGtnbWdyLmx1YSBiL2J1aWx0aW4vbWFpbm1lbnUvcGtnbWdy Lmx1YQoraW5kZXggNzg3OTM2ZTMxLi5kOGZiYTBlYmUgMTAwNjQ0CistLS0gYS9idWlsdGluL21h aW5tZW51L3BrZ21nci5sdWEKKysrKyBiL2J1aWx0aW4vbWFpbm1lbnUvcGtnbWdyLmx1YQorQEAg LTY4MiwxMCArNjgyLDkgQEAgZnVuY3Rpb24gcGtnbWdyLnByZXBhcmVtb2RsaXN0KGRhdGEpCisg CWxvY2FsIGdhbWVfbW9kcyA9IHt9CisgCisgCS0tcmVhZCBnbG9iYWwgbW9kcworLQlsb2NhbCBt b2RwYXRoID0gY29yZS5nZXRfbW9kcGF0aCgpCistCistCWlmIG1vZHBhdGggfj0gbmlsIGFuZAor LQkJbW9kcGF0aCB+PSAiIiB0aGVuCisrCWxvY2FsIG1vZHBhdGhzID0gY29yZS5nZXRfbW9kcGF0 aHMoKQorKwktLVhYWCB3aGF0IHdhcyDigJhtb2RwYXRoIH49ICIi4oCZIGFuZCDigJhtb2RwYXRo IH49IG5pbOKAmSBmb3I/CisrCWZvciBfLG1vZHBhdGggaW4gaXBhaXJzKG1vZHBhdGhzKSBkbwor IAkJZ2V0X21vZHMobW9kcGF0aCxnbG9iYWxfbW9kcykKKyAJZW5kCisgCitkaWZmIC0tZ2l0IGEv ZG9jL21lbnVfbHVhX2FwaS50eHQgYi9kb2MvbWVudV9sdWFfYXBpLnR4dAoraW5kZXggYjM5NzVi YzFkLi4xMzI0NDRiMTQgMTAwNjQ0CistLS0gYS9kb2MvbWVudV9sdWFfYXBpLnR4dAorKysrIGIv ZG9jL21lbnVfbHVhX2FwaS50eHQKK0BAIC0yMTgsNyArMjE4LDEzIEBAIFBhY2thZ2UgLSBjb250 ZW50IHdoaWNoIGlzIGRvd25sb2FkYWJsZSBmcm9tIHRoZSBjb250ZW50IGRiLCBtYXkgb3IgbWF5 IG5vdCBiZSBpCisgICAgICogcmV0dXJucyBwYXRoIHRvIGdsb2JhbCB1c2VyIGRhdGEsCisgICAg ICAgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHVzZXItcHJvdmlkZWQgbW9kcywgd29ybGRz LCBnYW1lcywgYW5kIHRleHR1cmUgcGFja3MuCisgKiBjb3JlLmdldF9tb2RwYXRoKCkgKHBvc3Np YmxlIGluIGFzeW5jIGNhbGxzKQorLSAgICAqIHJldHVybnMgcGF0aCB0byBnbG9iYWwgbW9kcGF0 aAorKyAgICAqIHJldHVybnMgcGF0aCB0byBnbG9iYWwgbW9kcGF0aCwgd2hlcmUgbW9kcyBjYW4g YmUgaW5zdGFsbGVkCisrKiBjb3JlLmdldF9tb2RwYXRocygpIChwb3NzaWJsZSBpbiBhc3luYyBj YWxscykKKysgICAgKiByZXR1cm5zIGxpc3Qgb2YgcGF0aHMgdG8gZ2xvYmFsIG1vZHBhdGhzLCB3 aGVyZSBtb2RzIGhhdmUgYmVlbiBpbnN0YWxsZWQKKysKKysgICAgICBUaGUgZGlmZmVyZW5jZSB3 aXRoICJjb3JlLmdldF9tb2RwYXRoIiBpcyB0aGF0IG5vIG1vZHMgc2hvdWxkIGJlIGluc3RhbGxl ZCBpbiB0aGVzZQorKyAgICAgIGRpcmVjdG9yaWVzIGJ5IE1pbmV0ZXN0IC0tIHRoZXkgbWlnaHQg YmUgcmVhZC1vbmx5LgorKworICogY29yZS5nZXRfY2xpZW50bW9kcGF0aCgpIChwb3NzaWJsZSBp biBhc3luYyBjYWxscykKKyAgICAgKiByZXR1cm5zIHBhdGggdG8gZ2xvYmFsIGNsaWVudC1zaWRl IG1vZHBhdGgKKyAqIGNvcmUuZ2V0X2dhbWVwYXRoKCkgKHBvc3NpYmxlIGluIGFzeW5jIGNhbGxz KQorZGlmZiAtLWdpdCBhL3NyYy9jb250ZW50L3N1YmdhbWVzLmNwcCBiL3NyYy9jb250ZW50L3N1 YmdhbWVzLmNwcAoraW5kZXggZTlkYzYwOWIwLi5kNzNmOTVhMWYgMTAwNjQ0CistLS0gYS9zcmMv Y29udGVudC9zdWJnYW1lcy5jcHAKKysrKyBiL3NyYy9jb250ZW50L3N1YmdhbWVzLmNwcAorQEAg LTYxLDYgKzYxLDEyIEBAIHN0ZDo6c3RyaW5nIGdldFN1YmdhbWVQYXRoRW52KCkKKyAJcmV0dXJu IHN1YmdhbWVfcGF0aCA/IHN0ZDo6c3RyaW5nKHN1YmdhbWVfcGF0aCkgOiAiIjsKKyB9CisgCisr c3RkOjpzdHJpbmcgZ2V0TW9kUGF0aEVudigpCisreworKwljaGFyICptb2RfcGF0aCA9IGdldGVu digiTUlORVRFU1RfTU9EX1BBVEgiKTsKKysJcmV0dXJuIG1vZF9wYXRoID8gc3RkOjpzdHJpbmco bW9kX3BhdGgpIDogIiI7CisrfQorKworIFN1YmdhbWVTcGVjIGZpbmRTdWJnYW1lKGNvbnN0IHN0 ZDo6c3RyaW5nICZpZCkKKyB7CisgCWlmIChpZC5lbXB0eSgpKQorQEAgLTExMCw2ICsxMTYsMTEg QEAgU3ViZ2FtZVNwZWMgZmluZFN1YmdhbWUoY29uc3Qgc3RkOjpzdHJpbmcgJmlkKQorIAlzdGQ6 OnNldDxzdGQ6OnN0cmluZz4gbW9kc19wYXRoczsKKyAJaWYgKCF1c2VyX2dhbWUpCisgCQltb2Rz X3BhdGhzLmluc2VydChzaGFyZSArIERJUl9ERUxJTSArICJtb2RzIik7CisrCisrCVN0cmZuZCBt b2Rfc2VhcmNoX3BhdGhzKGdldE1vZFBhdGhFbnYoKSk7CisrCXdoaWxlICghbW9kX3NlYXJjaF9w YXRocy5hdF9lbmQoKSkKKysJCW1vZHNfcGF0aHMuaW5zZXJ0KG1vZF9zZWFyY2hfcGF0aHMubmV4 dChQQVRIX0RFTElNKSk7CisrCisgCWlmICh1c2VyICE9IHNoYXJlIHx8IHVzZXJfZ2FtZSkKKyAJ CW1vZHNfcGF0aHMuaW5zZXJ0KHVzZXIgKyBESVJfREVMSU0gKyAibW9kcyIpOworIAorZGlmZiAt LWdpdCBhL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmNwcCBiL3NyYy9zY3JpcHQvbHVh X2FwaS9sX21haW5tZW51LmNwcAoraW5kZXggM2U5NzA5YmRlLi5jMTY0NzE5NWYgMTAwNjQ0Cist LS0gYS9zcmMvc2NyaXB0L2x1YV9hcGkvbF9tYWlubWVudS5jcHAKKysrKyBiL3NyYy9zY3JpcHQv bHVhX2FwaS9sX21haW5tZW51LmNwcAorQEAgLTIxLDYgKzIxLDcgQEAgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwK KyAjaW5jbHVkZSAibHVhX2FwaS9sX2ludGVybmFsLmgiCisgI2luY2x1ZGUgImNvbW1vbi9jX2Nv bnRlbnQuaCIKKyAjaW5jbHVkZSAiY3BwX2FwaS9zX2FzeW5jLmgiCisrI2luY2x1ZGUgInV0aWwv c3RyZm5kLmgiCisgI2luY2x1ZGUgImd1aS9ndWlFbmdpbmUuaCIKKyAjaW5jbHVkZSAiZ3VpL2d1 aU1haW5NZW51LmgiCisgI2luY2x1ZGUgImd1aS9ndWlLZXlDaGFuZ2VNZW51LmgiCitAQCAtNTAy LDYgKzUwMywzNCBAQCBpbnQgTW9kQXBpTWFpbk1lbnU6OmxfZ2V0X21vZHBhdGgobHVhX1N0YXRl ICpMKQorIAlyZXR1cm4gMTsKKyB9CisgCisrLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKytpbnQg TW9kQXBpTWFpbk1lbnU6OmxfZ2V0X21vZHBhdGhzKGx1YV9TdGF0ZSAqTCkKKyt7CisrCWNvbnN0 IGNoYXIgKmNfbW9kcGF0aCA9IGdldGVudigiTUlORVRFU1RfTU9EX1BBVEgiKTsKKysJaWYgKGNf bW9kcGF0aCA9PSBOVUxMKQorKwkJY19tb2RwYXRoID0gIiI7CisrCWludCBpbmRleCA9IDE7Cisr CWx1YV9uZXd0YWJsZShMKTsKKysJLy8gWFhYOiBmb3Igc29tZSByZWFzb24sIHNpbXBseSB3cml0 aW5nCisrCS8vIFN0cmZuZCBtb2Rfc2VhcmNoX3BhdGhzIChzdGQ6OnN0cmluZyhjX21vZHBhdGgp KTsKKysJLy8gbGVhZHMgdG8gYSBjb21waWxhdGlvbiBlcnJvcjoKKysJLy8KKysJLy8gcmVxdWVz dCBmb3IgbWVtYmVyIOKAmGF0X2VuZOKAmSBpbiDigJhtb2Rfc2VhcmNoX3BhdGhz4oCZLCB3aGlj aCBpcyBvZgorKwkvLyBub24tY2xhc3MgdHlwZSDigJhTdHJmbmQoc3RkOjpfX2N4eDExOjpzdHJp bmcpCisrCS8vIHtha2EgQmFzaWNTdHJmbmQ8Y2hhcj4oc3RkOjpfX2N4eDExOjpiYXNpY19zdHJp bmc8Y2hhcj4pfeKAmQorKwlzdGQ6OnN0cmluZyBtb2RwYXRoID0gc3RkOjpzdHJpbmcoY19tb2Rw YXRoKTsKKysJU3RyZm5kIG1vZF9zZWFyY2hfcGF0aHMobW9kcGF0aCk7CisrCXdoaWxlICghbW9k X3NlYXJjaF9wYXRocy5hdF9lbmQoKSkgeworKwkJc3RkOjpzdHJpbmcgY29tcG9uZW50ID0gbW9k X3NlYXJjaF9wYXRocy5uZXh0KFBBVEhfREVMSU0pOworKwkJbHVhX3B1c2hzdHJpbmcoTCwgY29t cG9uZW50LmNfc3RyKCkpOworKwkJbHVhX3Jhd3NldGkoTCwgLTIsIGluZGV4KTsKKysJCWluZGV4 Kys7CisrCX0KKysJTW9kQXBpTWFpbk1lbnU6OmxfZ2V0X21vZHBhdGgoTCk7CisrCWx1YV9yYXdz ZXRpKEwsIC0yLCBpbmRleCk7CisrCXJldHVybiAxOworK30KKysKKyAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworIGludCBNb2RBcGlNYWluTWVudTo6bF9nZXRfY2xpZW50bW9kcGF0aChsdWFfU3Rh dGUgKkwpCisgeworQEAgLTk0OSw2ICs5NzgsNyBAQCB2b2lkIE1vZEFwaU1haW5NZW51OjpJbml0 aWFsaXplKGx1YV9TdGF0ZSAqTCwgaW50IHRvcCkKKyAJQVBJX0ZDVChnZXRfbWFwZ2VuX25hbWVz KTsKKyAJQVBJX0ZDVChnZXRfdXNlcl9wYXRoKTsKKyAJQVBJX0ZDVChnZXRfbW9kcGF0aCk7Cisr CUFQSV9GQ1QoZ2V0X21vZHBhdGhzKTsKKyAJQVBJX0ZDVChnZXRfY2xpZW50bW9kcGF0aCk7Cisg CUFQSV9GQ1QoZ2V0X2dhbWVwYXRoKTsKKyAJQVBJX0ZDVChnZXRfdGV4dHVyZXBhdGgpOworQEAg LTk4Myw2ICsxMDEzLDcgQEAgdm9pZCBNb2RBcGlNYWluTWVudTo6SW5pdGlhbGl6ZUFzeW5jKGx1 YV9TdGF0ZSAqTCwgaW50IHRvcCkKKyAJQVBJX0ZDVChnZXRfbWFwZ2VuX25hbWVzKTsKKyAJQVBJ X0ZDVChnZXRfdXNlcl9wYXRoKTsKKyAJQVBJX0ZDVChnZXRfbW9kcGF0aCk7CisrCUFQSV9GQ1Qo Z2V0X21vZHBhdGhzKTsKKyAJQVBJX0ZDVChnZXRfY2xpZW50bW9kcGF0aCk7CisgCUFQSV9GQ1Qo Z2V0X2dhbWVwYXRoKTsKKyAJQVBJX0ZDVChnZXRfdGV4dHVyZXBhdGgpOworZGlmZiAtLWdpdCBh L3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmggYi9zcmMvc2NyaXB0L2x1YV9hcGkvbF9t YWlubWVudS5oCitpbmRleCAzM2FjOWU3MjEuLmE2YTU0YTJjYiAxMDA2NDQKKy0tLSBhL3NyYy9z Y3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmgKKysrKyBiL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21h aW5tZW51LmgKK0BAIC0xMTIsNiArMTEyLDggQEAgY2xhc3MgTW9kQXBpTWFpbk1lbnU6IHB1Ymxp YyBNb2RBcGlCYXNlCisgCisgCXN0YXRpYyBpbnQgbF9nZXRfbW9kcGF0aChsdWFfU3RhdGUgKkwp OworIAorKwlzdGF0aWMgaW50IGxfZ2V0X21vZHBhdGhzKGx1YV9TdGF0ZSAqTCk7CisrCisgCXN0 YXRpYyBpbnQgbF9nZXRfY2xpZW50bW9kcGF0aChsdWFfU3RhdGUgKkwpOworIAorIAlzdGF0aWMg aW50IGxfZ2V0X2dhbWVwYXRoKGx1YV9TdGF0ZSAqTCk7CistLSAKKzIuMzIuMAorCi0tIAoyLjMy LjAKCg== --=-YANAPBHRIJvCEQ0LwERN-- --=-hjh5nTm7ZB6cJrfwx3pV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQkkIRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mlyAPsFn6nqWCEelOR1kN8D9OBNzKkV HnD6xNoYjUyHz511QQD9HUUvVSakqVCzG5pMtlfzNALIetgFFpOzmmxVcYjWrQk= =uyPA -----END PGP SIGNATURE----- --=-hjh5nTm7ZB6cJrfwx3pV-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 07:54:51 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 11:54:51 +0000 Received: from localhost ([127.0.0.1]:39962 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAt0V-0000xa-Gm for submit@debbugs.gnu.org; Tue, 03 Aug 2021 07:54:51 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:47990) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAt0T-0000xP-JR for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 07:54:50 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GfCwP4dLRz1LBRt; Tue, 3 Aug 2021 13:54:45 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GfCwP4dLRz1LBRt DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627991686; bh=UklFGjc63dRK9ry6fJntIctDO33NJR4YK4TygOlyk4o=; h=Subject:From:To:Date:In-Reply-To:References:From; b=EfEebbnFlhRlQ1Xp1BJLonUHN531AJNKfdSvAAPwBtYr4fApaYvSxYBqQ1Fi0Q4PA ZFHlLF/EgbM4F91z8a0Enl/x/0Z78tRd8362EyRhgxODvfRJKBk6Wbjt4OY201P6kE uJNfZL+KOME5wK4N5oL6jQZNmJcIJQ4q1P4l5yRk= Message-ID: Subject: Re: [PATCH 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 13:54:44 +0200 In-Reply-To: <52f3bab58e39a8d6cd9db175f2abf883008a69f0.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-2-maximedevos@telenet.be> <87207455fefb91bb3e12fdb3209f28f11dab92e0.camel@student.tugraz.at> <97f899a616812a0086a68ee97c36d1531e04c2e3.camel@telenet.be> <19c7cec42e57899c62ba6b4ff7f297a3e5bc2be4.camel@student.tugraz.at> <9cc691b6c242e31edcc1215d259eab9306715708.camel@telenet.be> <52f3bab58e39a8d6cd9db175f2abf883008a69f0.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Dienstag, den 03.08.2021, 13:10 +0200 schrieb Maxime Devos: > (patches (search-patches "Add-environment-variable- > MINETEST_MOD_PATH.patch")) This line is a bit long. Even if might look a little weird, I think it's better split in three. > ++ // XXX: for some reason, simply writing > ++ // Strfnd mod_search_paths (std::string(c_modpath)); > ++ // leads to a compilation error: > ++ // > ++ // request for member ‘at_end’ in ‘mod_search_paths’, which is > of > ++ // non-class type ‘Strfnd(std::__cxx11::string) > ++ // {aka BasicStrfnd(std::__cxx11::basic_string)}’ > ++ std::string modpath = std::string(c_modpath); > ++ Strfnd mod_search_paths(modpath); Try Strfnd mod_search_paths{modpath}. The normal bracket style confuses C++, because it can also be parsed as a function declaration. > + * core.get_modpath() (possible in async calls) > +- * returns path to global modpath > ++ * returns path to global modpath, where mods can be installed > ++* core.get_modpaths() (possible in async calls) > ++ * returns list of paths to global modpaths, where mods have > been installed > ++ > ++ The difference with "core.get_modpath" is that no mods should > be installed in these > ++ directories by Minetest -- they might be read-only. This is a somewhat weird interface imo. I think core.get_modpath should be the first element of core.get_modpaths and documented in that way, so that any GUI that deals with "all known mods" needs to simply call the latter, whereas any GUI that deals with installing can comfortably use either the former or whatever Lua has for car. WDYT? Otherwise LGTM. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 07:59:29 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 11:59:29 +0000 Received: from localhost ([127.0.0.1]:39967 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAt4z-00014d-3S for submit@debbugs.gnu.org; Tue, 03 Aug 2021 07:59:29 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:35246) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAt4w-00014U-Vo for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 07:59:28 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id czzQ2500Q0mfAB406zzRsM; Tue, 03 Aug 2021 13:59:25 +0200 Message-ID: <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 13:59:16 +0200 In-Reply-To: <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-sfyLMo2Sx5QJRFrUwm+0" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1627991965; bh=hx0zyhESNz3fI7YWEWpnPV/4YP/bfb9VyPAgX+KCpYU=; h=Subject:From:To:Date:In-Reply-To:References; b=YTBzP2BvncLinN5FyXP/2+zkvhv5O8x04WLoMkdcgGEsxedQ5rF4mOAlKUsbbXmKj Bkq3GNu/53F3g69ZNPlRm88Y7x2BhZC+0fS1vJS4DzkyYU1yKTzHJtRWv6Ee6Or391 j+rnTJ8wLMozrjA5Wmv6/lFUZb5ZpNadua96bcLPebV6hpuPsDlruhaxvGOxUtlBVI 2TXFMfZsPphH0+OSkj5dVoTHGGPq2Jbcw+Ch1L0GpqE+Jkl4xquXW/MUNoaUyZ28OX F1g0brYkYxpoF5jPjiJ5ASxTBY+bBxQ/qrgYBgp8UttYYZwioUbaXuP9PdGRolAZ9j GKjcujUbIakrQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-sfyLMo2Sx5QJRFrUwm+0 Content-Type: multipart/mixed; boundary="=-BpoXgWIEz87cyYcDrK40" --=-BpoXgWIEz87cyYcDrK40 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op di 03-08-2021 om 11:17 [+0200]: > Hi, >=20 > I'd merge this and 04/20 into a single patch. 04/20 does of its own > give a good incentive as to why a new build system is to be used (this > could instead be handled by the importer), with this phase added it > makes slightly more sense. As an argument for having a 'minetest-mod-build-system', consider some ways 'minetest-mod-build-system' could be improved in the future: * a phase could be added to minimise PNG images (e.g. using 'optipng') * likewise, for lua code * some basic tests could be added (e.g. creating a new world and loading the mod, testing that Minetest doesn't raise an error during mod loading) Also, having "#:install-plan '(("." "share/minetest/mods/the-mod-name"))" appear in every package definition seems rather repetitive to me. The idea behind "04/20" and "05/20" being separate patches, is to start with a basic "minetest-mod-build-system" and gradually improve it. The small improvements (currently only one, i.e., 05/20) could be reviewed separately from each other and whether there should be a "minetest-mod-build-system" at all. E.g., see attached a patch that sets #:allowed-references '(), ensuring nothing sneaks into the closure. Another change I'm thinking of, is includ= ing only "tar", "gzip" and the like as implicit inputs, and not "bash" or "core= utils", though that's probably useless if shebang patching has been disabled. > OTOH, perhaps we shouldn't install those shell scripts in the first > place? Perhaps we can instead make the importer generate packages > based directly on copy-build-system, in which those static strings are > already evaluated. WDYT? Directly using 'copy-build-system' makes it more difficult to make the improvements listed above. I don't know what you mean with =E2=80=98in whic= h those static strings are already evaluated=E2=80=99 -- what are =E2=80=98those st= atic strings=E2=80=99 here? I suppose it is possible to exclude shell scripts from installation, but just installing everything (and disabling shebang patching) seems simpler. Greetings, Maxime. --=-BpoXgWIEz87cyYcDrK40 Content-Disposition: attachment; filename="0001-build-system-copy-Support-allowed-references.patch" Content-Type: text/x-patch; name="0001-build-system-copy-Support-allowed-references.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlZWY2Y2IxMWE5MjM0NThjYmE1MGJiYzRlNjQ0MGMwYjJmMzcyZGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFR1ZSwgMyBBdWcgMjAyMSAxMzo1MDo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8y XSBidWlsZC1zeXN0ZW0vY29weTogU3VwcG9ydCAjOmFsbG93ZWQtcmVmZXJlbmNlcy4KCiogZ3Vp eC9idWlsZC1zeXN0ZW0vY29weS5zY20KICAoY29weS1idWlsZCk6IEFkZCAjOmFsbG93ZWQtcmVm ZXJlbmNlcyBhcmd1bWVudC4KICAoY29weS1idWlsZClbY2Fub25pY2FsaXplLXJlZmVyZW5jZV06 IE5ldyBwcm9jZWR1cmUuCi0tLQogZ3VpeC9idWlsZC1zeXN0ZW0vY29weS5zY20gfCAyMCArKysr KysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkLXN5c3RlbS9jb3B5LnNjbSBiL2d1aXgv YnVpbGQtc3lzdGVtL2NvcHkuc2NtCmluZGV4IGQxYmY4ZmI2NTQuLjFjZDBhOTUxNTAgMTAwNjQ0 Ci0tLSBhL2d1aXgvYnVpbGQtc3lzdGVtL2NvcHkuc2NtCisrKyBiL2d1aXgvYnVpbGQtc3lzdGVt L2NvcHkuc2NtCkBAIC05Miw4ICs5MiwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgKHN5c3Rl bSAoJWN1cnJlbnQtc3lzdGVtKSkKICAgICAgICAgICAgICAgICAgICAgIChpbXBvcnRlZC1tb2R1 bGVzICVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKQogICAgICAgICAgICAgICAgICAgICAgKG1v ZHVsZXMgJygoZ3VpeCBidWlsZCBjb3B5LWJ1aWxkLXN5c3RlbSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGd1aXggYnVpbGQgdXRpbHMpKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChndWl4IGJ1aWxkIHV0aWxzKSkpCisgICAgICAgICAgICAgICAgICAgICBh bGxvd2VkLXJlZmVyZW5jZXMpCiAgICJCdWlsZCBTT1VSQ0UgdXNpbmcgSU5TVEFMTC1QTEFOLCBh bmQgd2l0aCBJTlBVVFMuIgorICA7OyBYWFg6IHByb2NlZHVyZSBjb3BpZWQgZnJvbSAoZ3VpeCBi dWlsZC1zeXN0ZW0gZ251KQorICAoZGVmaW5lIGNhbm9uaWNhbGl6ZS1yZWZlcmVuY2UKKyAgICAo bWF0Y2gtbGFtYmRhCisgICAgICgoPyBwYWNrYWdlPyBwKQorICAgICAgKGRlcml2YXRpb24tPm91 dHB1dC1wYXRoIChwYWNrYWdlLWRlcml2YXRpb24gc3RvcmUgcCBzeXN0ZW0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6Z3JhZnQ/ICNmKSkpCisg ICAgICgoKD8gcGFja2FnZT8gcCkgb3V0cHV0KQorICAgICAgKGRlcml2YXRpb24tPm91dHB1dC1w YXRoIChwYWNrYWdlLWRlcml2YXRpb24gc3RvcmUgcCBzeXN0ZW0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6Z3JhZnQ/ICNmKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkpCisgICAgICgoPyBzdHJpbmc/IG91dHB1dCkK KyAgICAgIG91dHB1dCkpKQorCiAgIChkZWZpbmUgYnVpbGRlcgogICAgIGAoYmVnaW4KICAgICAg ICAodXNlLW1vZHVsZXMgLEBtb2R1bGVzKQpAQCAtMTMxLDYgKzE0NSwxMCBAQAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjOnN5c3RlbSBzeXN0ZW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIzppbnB1dHMgaW5wdXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICM6bW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICM6YWxsb3dlZC1yZWZlcmVuY2VzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChhbmQgYWxsb3dlZC1yZWZlcmVuY2VzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1hcCBjYW5vbmljYWxpemUtcmVmZXJlbmNlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2VkLXJlZmVyZW5jZXMpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjOm91dHB1dHMgb3V0cHV0cwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjOmd1aWxlLWZvci1idWlsZCBndWlsZS1mb3ItYnVpbGQpKQogCi0t IAoyLjMyLjAKCg== --=-BpoXgWIEz87cyYcDrK40 Content-Disposition: attachment; filename*0=0002-build-system-minetest-Don-t-let-anything-sneak-into-.pat; filename*1=ch Content-Type: text/x-patch; name="0002-build-system-minetest-Don-t-let-anything-sneak-into-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmMzgzYWExYzg4NjcwMTYzMWY2YWU5MjRhOTNlMTNjZGFkMmVhYTU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFR1ZSwgMyBBdWcgMjAyMSAxMzo1MjozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBidWlsZC1zeXN0ZW0vbWluZXRlc3Q6IERvbid0IGxldCBhbnl0aGluZyBzbmVhayBpbnRvIHRo ZQogY2xvc3VyZS4KCiogZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtIChsb3dlci1tb2Qp OiBTZXQgIzphbGxvd2VkLXJlZmVyZW5jZXMKICB0byB0aGUgZW1wdHkgbGlzdC4KLS0tCiBndWl4 L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20gfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtIGIv Z3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCmluZGV4IDk5M2M1NjMxZWIuLjFkNjNlNWZm Y2YgMTAwNjQ0Ci0tLSBhL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQorKysgYi9ndWl4 L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KQEAgLTUxLDYgKzUxLDggQEAKICAgICBgJygoIi4i ICwoc3RyaW5nLWFwcGVuZCAic2hhcmUvbWluZXRlc3QvbW9kcy8iCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGd1aXgtbmFtZS0+bW9kLW5hbWUgbmFtZSkpKSkKICAgICAjOnBoYXNlcyAl c3RhbmRhcmQtcGhhc2VzCisgICAgOzsgRW5zdXJlIG5vdGhpbmcgc25lYWtzIGludG8gdGhlIGNs b3N1cmUuCisgICAgIzphbGxvd2VkLXJlZmVyZW5jZXMgJygpCiAgICAgYXJndW1lbnRzKSkKIAog KGRlZmluZSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtCi0tIAoyLjMyLjAKCg== --=-BpoXgWIEz87cyYcDrK40-- --=-sfyLMo2Sx5QJRFrUwm+0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQkvlBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7m0uAQDHvPNuKE0Kzqph1mQNRU+T4JHR 4ugvCqtJRxebG0S91wD/VO97KSiom/jmERbObhUUGG+tcHsz9YDaSgDXgktMHwU= =QwE9 -----END PGP SIGNATURE----- --=-sfyLMo2Sx5QJRFrUwm+0-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 03 08:28:44 2021 Received: (at 49828) by debbugs.gnu.org; 3 Aug 2021 12:28:44 +0000 Received: from localhost ([127.0.0.1]:39987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAtXI-0001px-Gf for submit@debbugs.gnu.org; Tue, 03 Aug 2021 08:28:44 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:33296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mAtXF-0001pk-Pk for 49828@debbugs.gnu.org; Tue, 03 Aug 2021 08:28:43 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GfDgV0H7Pz1LZW9; Tue, 3 Aug 2021 14:28:37 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GfDgV0H7Pz1LZW9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1627993718; bh=t6RDNSmDudhPqoS4WfT93ihokjKlEUKnmaNdGZwdrrc=; h=Subject:From:To:Date:In-Reply-To:References:From; b=HkEbrCnCq9GAEM917G8v58dOgcau8VaKNAV03ONiJLdEL8eNSCwNbVoAh1Z2OcfYy 4aOjYd3Sd6iW0U8Dw1skfU9+7HlmbiVkP/Lbpy44GG/R/Sug9OS0lYUAuFwvL5+zxX DmEGiEMVIOQp1Y0Mjj3amepXQw9FBKY/KIBuBA88= Message-ID: <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Tue, 03 Aug 2021 14:28:37 +0200 In-Reply-To: <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Dienstag, den 03.08.2021, 13:59 +0200 schrieb Maxime Devos: > Leo Prikler schreef op di 03-08-2021 om 11:17 [+0200]: > > Hi, > > > > I'd merge this and 04/20 into a single patch. 04/20 does of its > > own > > give a good incentive as to why a new build system is to be used > > (this > > could instead be handled by the importer), with this phase added it > > makes slightly more sense. > > As an argument for having a 'minetest-mod-build-system', consider > some ways 'minetest-mod-build-system' could be improved in the > future: > > * a phase could be added to minimise PNG images (e.g. using > 'optipng') > * likewise, for lua code > * some basic tests could be added (e.g. creating a new world and > loading the mod, testing that Minetest doesn't raise an error > during > mod loading) Of course there's more that can be done here, but this just reaffirms my earlier point, that the build system on its own as it is in 04/20 looks rather unfinished. I'd personally prefer introducing it as one whole as it gives a bigger picture of the whole thing rather than digging into every detail. > Also, having "#:install-plan '(("." "share/minetest/mods/the-mod- > name"))" > appear in every package definition seems rather repetitive to me. Perhaps, but it's not like there aren't other groups of things that can be implemented trivially in terms of copy-build-system. > The idea behind "04/20" and "05/20" being separate patches, is to > start > with a basic "minetest-mod-build-system" and gradually improve it. > The small improvements (currently only one, i.e., 05/20) could be > reviewed > separately from each other and whether there should be a > "minetest-mod-build-system" at all. See above. > E.g., see attached a patch that sets #:allowed-references '(), > ensuring > nothing sneaks into the closure. Another change I'm thinking of, is > including > only "tar", "gzip" and the like as implicit inputs, and not "bash" or > "coreutils", > though that's probably useless if shebang patching has been disabled. IMO that patch should also be merged "as one" with the others. > > OTOH, perhaps we shouldn't install those shell scripts in the first > > place? Perhaps we can instead make the importer generate packages > > based directly on copy-build-system, in which those static strings > > are > > already evaluated. WDYT? > > Directly using 'copy-build-system' makes it more difficult to make > the improvements listed above. I don't know what you mean with ‘in > which those static strings are already evaluated’ -- what are ‘those > static strings’ here? ‘Those static strings’ are exactly "the-mod-name" in > #:install-plan '(("." "share/minetest/mods/the-mod-name")) I'm still not quite convinced, that whatever improvements you seem there to be can't be made by using a good enough include regexp. > I suppose it is possible to exclude shell scripts from installation, > but just installing everything (and disabling shebang patching) seems > simpler. Likewise leaving shell references in there and using plain copy-build- system would be simpler than making a new build system, wouldn't it? I don't think that's a good reason not to make a proper install plan. Greetings From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 07:02:16 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 11:02:16 +0000 Received: from localhost ([127.0.0.1]:46048 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBb8e-0006Hp-RF for submit@debbugs.gnu.org; Thu, 05 Aug 2021 07:02:16 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:59218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBb8b-0006He-Rd for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 07:02:11 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id dn272500A0mfAB401n27TG; Thu, 05 Aug 2021 13:02:08 +0200 Message-ID: <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 13:01:46 +0200 In-Reply-To: <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-YT5BXOjimerGSmqVwXbS" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628161328; bh=VoBbMtZ6Ly5ez6BpK+loq1SaOoUKQDXzKAeC44KQB8Q=; h=Subject:From:To:Date:In-Reply-To:References; b=M02xqxCkcwJeWvt9zF7Kxu1kO0rHBDyEXsOyvgEnG1pYbudEYVckXbHOq94CiXMgr tNYuCKW+nhi3LHCXeOO2VUsDp+Mq6e9ldFOxwRSf8rU/ZoY9SurOoy/nK/62CT28Ej LDhLZIHUL8liJqI/O2By6i5IlkxwZU+C/+qelXOI3Zcp3OIqwx7whnzhz0SFvJF4Wk Nxf++WfnpPOFOFGG0MBlX9oEFLF9iY5GlDKIBoXTJsH2XI/sxv52NTEmOI84MsFMxO bV+o9DFldhOWuxc4uFbA5RLkXrLWW3ro83DATmz6UFfFeg6GFQaT3dd9WpjN7Tk3Lb fHqdTuwqc66Xw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-YT5BXOjimerGSmqVwXbS Content-Type: multipart/mixed; boundary="=-9IWZUGEznwXkBYCq3VbJ" --=-9IWZUGEznwXkBYCq3VbJ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, The attached patch squashes "PATCH 04" and "PATCH 05" together and extends the build system. It now has an install plan only installing what's necessary (Lua code, PNG images, some configuration files ...), a 'check' build phase verifying Minetest can actually load the mod, and a 'minimise-png' phase minimising PNG images. The mod name for =E2=80=98(("." "share/minetest/mods/the-mod-name"))=E2=80= =99 can now be determined exactly in most cases (Minetest doesn't really care but the directory name can appear in the GUI in some cases). Greetings, Maxime. --=-9IWZUGEznwXkBYCq3VbJ Content-Disposition: inline; filename="build-system-Add-minetest-mod-build-system.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" RnJvbSBlMjFlZjc4ZjZmZGZkNmQzOTUyYjJjYzRmMGZiMWZhOGI1OWFlNWUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBi dWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1aXgvYnVp bGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21pbmV0ZXN0 LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVTKTogQWRk IHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA4NyArKysrKysrKysr KwogZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIHwgMjIwICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzMTcgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbQoKZGlmZiAtLWdp dCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggZDVlYzkwOTIxMy4uZjQ0MzljZTkz YiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuYW0KKysrIGIvTWFrZWZpbGUuYW0KQEAgLTE0MSw2ICsx NDEsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vZ28uc2NtCQkJXAog ICBndWl4L2J1aWxkLXN5c3RlbS9tZXNvbi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL21p bmlmeS5zY20JCQlcCisgIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQkJXAogICBndWl4 L2J1aWxkLXN5c3RlbS9hc2RmLnNjbQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vY29weS5zY20J CQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dsaWItb3ItZ3RrLnNjbQkJXApAQCAtMjAzLDYgKzIw NCw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L2J1aWxkL2dudS1kaXN0LnNjbQkJCVwKICAg Z3VpeC9idWlsZC9ndWlsZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvbWF2ZW4t YnVpbGQtc3lzdGVtLnNjbQkJXAorICBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5z Y20JCVwKICAgZ3VpeC9idWlsZC9ub2RlLWJ1aWxkLXN5c3RlbS5zY20JCVwKICAgZ3VpeC9idWls ZC9wZXJsLWJ1aWxkLXN5c3RlbS5zY20JCVwKICAgZ3VpeC9idWlsZC9weXRob24tYnVpbGQtc3lz dGVtLnNjbQkJXApkaWZmIC0tZ2l0IGEvZG9jL2d1aXgudGV4aSBiL2RvYy9ndWl4LnRleGkKaW5k ZXggYjNjMTZlNjUwNy4uZjdkYmE0ZjI5MyAxMDA2NDQKLS0tIGEvZG9jL2d1aXgudGV4aQorKysg Yi9kb2MvZ3VpeC50ZXhpCkBAIC03ODk1LDYgKzc4OTUsMTQgQEAgZGVjbGFyYXRpb24uICBJdHMg ZGVmYXVsdCB2YWx1ZSBpcyBAY29kZXsoZGVmYXVsdC1tYXZlbi1wbHVnaW5zKX0gd2hpY2ggaXMK IGFsc28gZXhwb3J0ZWQuCiBAZW5kIGRlZnZyCiAKK0BkZWZ2ciB7U2NoZW1lIFZhcmlhYmxlfSBt aW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtCitUaGlzIHZhcmlhYmxlIGlzIGV4cG9ydGVkIGJ5IEBj b2RleyhndWl4IGJ1aWxkLXN5c3RlbSBtaW5ldGVzdCl9LiAgSXQKK2ltcGxlbWVudHMgYSBidWls ZCBwcm9jZWR1cmUgZm9yIEB1cmVme2h0dHBzOi8vd3d3Lm1pbmV0ZXN0Lm5ldCwgTWluZXRlc3R9 Cittb2RzLCB3aGljaCBjb25zaXN0cyBvZiBjb3B5aW5nIGx1YSBjb2RlLCBpbWFnZXMgYW5kIG90 aGVyIHJlc291cmNlcyB0bwordGhlIGxvY2F0aW9uIE1pbmV0ZXN0IHNlYXJjaGVzIGZvciBtb2Rz LiAgVGhlIGJ1aWxkIHN5c3RlbSBhbHNvIG1pbmltaXNlcworUE5HIGltYWdlcyBhbmQgdmVyaWZp ZXMgdGhhdCBNaW5ldGVzdCBjYW4gbG9hZCB0aGUgbW9kIHdpdGhvdXQgZXJyb3JzLgorQGVuZCBk ZWZ2cgorCiBAZGVmdnIge1NjaGVtZSBWYXJpYWJsZX0gbWluaWZ5LWJ1aWxkLXN5c3RlbQogVGhp cyB2YXJpYWJsZSBpcyBleHBvcnRlZCBieSBAY29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluaWZ5 KX0uICBJdAogaW1wbGVtZW50cyBhIG1pbmlmaWNhdGlvbiBwcm9jZWR1cmUgZm9yIHNpbXBsZSBK YXZhU2NyaXB0IHBhY2thZ2VzLgpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRl c3Quc2NtIGIvZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAuLmU5OWNjNDExYzkKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4 L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KQEAgLTAsMCArMSw4NyBAQAorOzs7IEdOVSBHdWl4 IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0 IMKpIDIwMjEgTWF4aW1lIERldm9zIDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgorOzs7Cis7Ozsg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cis7Ozsg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzs7 IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBtaW5ldGVzdCkK KyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBjb3B5KQorICAjOnVzZS1tb2R1bGUg KGd1aXggYnVpbGQtc3lzdGVtIGdudSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3Rl bSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAjOmV4cG9ydCAobWluZXRlc3QtbW9k LWJ1aWxkLXN5c3RlbSkpCisKKzs7Cis7OyBCdWlsZCBwcm9jZWR1cmUgZm9yIG1pbmV0ZXN0IG1v ZHMuICBUaGlzIGlzIGltcGxlbWVudGVkIGFzIGFuIGV4dGVuc2lvbgorOzsgb2Yg4oCYY29weS1i dWlsZC1zeXN0ZW3igJkuCis7OworOzsgQ29kZToKKworOzsgTGF6aWx5IHJlc29sdmUgdGhlIGJp bmRpbmdzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcy4KKyhkZWZpbmUgKGRlZmF1bHQt b3B0aXBuZykKKyAgOzsgTGF6aWx5IHJlc29sdmUgdGhlIGJpbmRpbmcgdG8gYXZvaWQgYSBjaXJj dWxhciBkZXBlbmRlbmN5LgorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUg cGFja2FnZXMgaW1hZ2UpKSAnb3B0aXBuZykpCisKKyhkZWZpbmUgKGRlZmF1bHQtbWluZXRlc3Qp CisgIChtb2R1bGUtcmVmIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNrYWdlcyBnYW1lcykp ICdtaW5ldGVzdCkpCisKKyhkZWZpbmUgKGRlZmF1bHQteHZmYi1ydW4pCisgIChtb2R1bGUtcmVm IChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNrYWdlcyB4b3JnKSkgJ3h2ZmItcnVuKSkKKwor KGRlZmluZSAlbWluZXRlc3QtYnVpbGQtc3lzdGVtLW1vZHVsZXMKKyAgOzsgQnVpbGQtc2lkZSBt b2R1bGVzIGltcG9ydGVkIGJ5IGRlZmF1bHQuCisgIGAoKGd1aXggYnVpbGQgbWluZXRlc3QtYnVp bGQtc3lzdGVtKQorICAgICxAJWNvcHktYnVpbGQtc3lzdGVtLW1vZHVsZXMpKQorCisoZGVmaW5l ICVkZWZhdWx0LW1vZHVsZXMKKyAgOzsgTW9kdWxlcyBpbiBzY29wZSBpbiB0aGUgYnVpbGQtc2lk ZSBlbnZpcm9ubWVudC4KKyAgJygoZ3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKQorICAgIChn dWl4IGJ1aWxkIG1pbmV0ZXN0LWJ1aWxkLXN5c3RlbSkKKyAgICAoZ3VpeCBidWlsZCB1dGlscykp KQorCisoZGVmaW5lIChzdGFuZGFyZC1taW5ldGVzdC1wYWNrYWdlcykKKyAgIlJldHVybiB0aGUg bGlzdCBvZiAoTkFNRSBQQUNLQUdFIE9VVFBVVCkgb3IgKE5BTUUgUEFDS0FHRSkgdHVwbGVzIG9m CitzdGFuZGFyZCBwYWNrYWdlcyB1c2VkIGFzIGltcGxpY2l0IGlucHV0cyBvZiB0aGUgTWluZXRl c3QgYnVpbGQgc3lzdGVtLiIKKyAgYCgoInh2ZmItcnVuIiAsKGRlZmF1bHQteHZmYi1ydW4pKQor ICAgICgib3B0aXBuZyIgLChkZWZhdWx0LW9wdGlwbmcpKQorICAgICgibWluZXRlc3QiICwoZGVm YXVsdC1taW5ldGVzdCkpCisgICAgLEAoZmlsdGVyIChsYW1iZGEgKGlucHV0KQorICAgICAgICAg ICAgICAgIChtZW1iZXIgKGNhciBpbnB1dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICcoImxp YmMiICJ0YXIiICJnemlwIiAiYnppcDIiICJ4eiIgImxvY2FsZXMiKSkpCisgICAgICAgICAgICAg IChzdGFuZGFyZC1wYWNrYWdlcykpKSkKKworKGRlZmluZSAobG93ZXItbW9kIG5hbWUgLiBhcmd1 bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5c3RlbS1sb3dlciBnbnUtYnVpbGQtc3lz dGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBuYW1lCisgICAgICAgICAjOmltcG9ydGVk LW1vZHVsZXMgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgICAgICAgICAjOm1vZHVs ZXMgJWRlZmF1bHQtbW9kdWxlcworICAgICAgICAgIzpwaGFzZXMgJyVzdGFuZGFyZC1waGFzZXMK KyAgICAgICAgICM6aW1wbGljaXQtaW5wdXRzPyAjZgorICAgICAgICAgOzsgTW9kcyBhcmUgYXJj aGl0ZWN0dXJlLWluZGVwZW5kZW50LgorICAgICAgICAgIzp0YXJnZXQgI2YKKyAgICAgICAgIDs7 IEVuc3VyZSBub3RoaW5nIHNuZWFrcyBpbnRvIHRoZSBjbG9zdXJlLgorICAgICAgICAgIzphbGxv d2VkLXJlZmVyZW5jZXMgJygpCisgICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50 cyBhcmd1bWVudHMKKyAgICAgICAgICAgKCgjOm5hdGl2ZS1pbnB1dHMgbmF0aXZlLWlucHV0cyAn KCkpCisgICAgICAgICAgICAoYXBwZW5kIG5hdGl2ZS1pbnB1dHMgKHN0YW5kYXJkLW1pbmV0ZXN0 LXBhY2thZ2VzKSkpKSkpCisKKyhkZWZpbmUgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorICAo YnVpbGQtc3lzdGVtCisgICAgKG5hbWUgJ21pbmV0ZXN0LW1vZCkKKyAgICAoZGVzY3JpcHRpb24g IlRoZSBidWlsZCBzeXN0ZW0gZm9yIG1pbmV0ZXN0IG1vZHMiKQorICAgIChsb3dlciBsb3dlci1t b2QpKSkKKworOzs7IG1pbmV0ZXN0LnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL2d1aXgvYnVp bGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSBiL2d1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQt c3lzdGVtLnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMGMxMWU5 MWY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0u c2NtCkBAIC0wLDAgKzEsMjIwIEBACis7OzsgQ29weXJpZ2h0IMKpIDIwMjEgTWF4aW1lIERldm9z IDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgorOzs7Cis7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg R05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cis7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7OzsKKzs7OyBHTlUg R3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzs7IGFsb25nIHdpdGggR05VIEd1aXgu ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUt bW9kdWxlIChndWl4IGJ1aWxkIG1pbmV0ZXN0LWJ1aWxkLXN5c3RlbSkKKyAgIzp1c2UtbW9kdWxl IChndWl4IGJ1aWxkIHV0aWxzKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVz ZS1tb2R1bGUgKGljZS05IGZvcm1hdCkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkKKyAg Izp1c2UtbW9kdWxlIChpY2UtOSByZGVsaW0pCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVjZWl2 ZSkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSByZWdleCkKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBi dWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnByZWZpeCBnbnU6KQorICAjOmV4cG9ydCAoJXN0YW5k YXJkLXBoYXNlcworICAgICAgICAgICAgbW9kLWluc3RhbGwtcGxhbiBtaW5pbWlzZS1wbmcgcmVh ZC1tb2QtbmFtZSBjaGVjaykpCisKKyhkZWZpbmUgKG1vZC1pbnN0YWxsLXBsYW4gbW9kLW5hbWUp CisgIGAoKCIuIiAsKHN0cmluZy1hcHBlbmQgInNoYXJlL21pbmV0ZXN0L21vZHMvIiBtb2QtbmFt ZSkKKyAgICAgOzsgT25seSBpbnN0YWxsIGZpbGVzIHRoYXQgd2lsbCBhY3R1YWxseSBiZSB1c2Vk IGF0IHJ1biB0aW1lLgorICAgICA7OyBUaGlzIGNhbiBzYXZlIGEgbGl0dGxlIGRpc2sgc3BhY2Uu CisgICAgIDs7CisgICAgIDs7IFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL21pbmV0ZXN0L21pbmV0 ZXN0L2Jsb2IvbWFzdGVyL2RvYy9sdWFfYXBpLnR4dD4KKyAgICAgOzsgZm9yIGFuIGluY29tcGxl IGxpc3Qgb2YgZmlsZXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gbW9kcy4KKyAgICAgIzppbmNsdWRl ICgibW9kLmNvbmYiICJtb2RwYWNrLmNvbmYiICJzZXR0aW5ndHlwZXMudHh0IiAiZGVwZW5kcy50 eHQiCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uLnR4dCIpCisgICAgICM6aW5jbHVkZS1y ZWdleHAgKCIubHVhJCIgIi5wbmckIiAiLm9nZyQiICIub2JqJCIgIi5iM2QkIiAiLnRyJCIKKyAg ICAgICAgICAgICAgICAgICAgICAgIi5tdHMkIikpKSkKKworKGRlZmluZSogKGd1ZXNzLW1vZC1u YW1lICM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICJUcnkgdG8gZGV0ZXJtaW5l IHRoZSBuYW1lIG9mIHRoZSBtb2Qgb3IgbW9kcGFjayB0aGF0IGlzIGJlaW5nIGJ1aWx0LgorSWYg aXQgaXMgdW5rbm93biwgbWFrZSBhbiBlZHVjYXRlZCBndWVzcy4iCisgIDs7IE1pbmV0ZXN0IGRv ZXNuJ3QgY2FyZSBhYm91dCB0aGUgZGlyZWN0b3J5IG5hbWVzIGluICJzaGFyZS9taW5ldGVzdC9t b2RzIgorICA7OyBzbyB0aGVyZSBpcyBubyB0ZWNobmljYWwgcHJvYmxlbSBpZiB0aGUgZGlyZWN0 b3J5IG5hbWVzIGRvbid0IG1hdGNoCisgIDs7IHRoZSBtb2QgbmFtZXMuICBUaGUgZGlyZWN0b3J5 IGNhbiBhcHBlYXIgaW4gdGhlIEdVSSBpZiB0aGUgbW9kcGFjaworICA7OyBkb2Vzbid0IGhhdmUg dGhlICduYW1lJyBzZXQgdGhvdWdoLCBzbyB0cnkgdG8gbWFrZSB0aGUgZ3Vlc3MuCisgIChkZWZp bmUgKGd1ZXNzKQorICAgIChsZXQqICgoc291cmNlIChhc3NvYy1yZWYgaW5wdXRzICJzb3VyY2Ui KSkKKyAgICAgICAgICAgKGZpbGUtbmFtZSAoYmFzZW5hbWUgc291cmNlKSkKKyAgICAgICAgICAg OzsgVGhlICJtaW5ldGVzdC0iIHByZWZpeCBpcyBub3QgaW5mb3JtYXRpdmUsIHNvIHN0cmlwIGl0 LgorICAgICAgICAgICAoZmlsZS1uYW1lIChpZiAoc3RyaW5nLXByZWZpeD8gIm1pbmV0ZXN0LSIg ZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGUtbmFt ZSAoc3RyaW5nLWxlbmd0aCAibWluZXRlc3QtIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGUtbmFtZSkpCisgICAgICAgICAgIDs7IFN0cmlwICItY2hlY2tvdXQiIHN1ZmZpeGVzIG9m IGdpdCBjaGVja291dHMuCisgICAgICAgICAgIChmaWxlLW5hbWUgKGlmIChzdHJpbmctc3VmZml4 PyAiLWNoZWNrb3V0IiBmaWxlLW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJz dHJpbmcgZmlsZS1uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChzdHJpbmctbGVuZ3RoIGZp bGUtbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LWxlbmd0aCAiLW1pbmV0ZXN0IikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5h bWUpKQorICAgICAgICAgICAoZmlyc3QtZG90IChzdHJpbmctaW5kZXggZmlsZS1uYW1lICNcLikp CisgICAgICAgICAgIDs7IElmIHRoZSBzb3VyY2UgY29kZSBpcyBpbiBhbiBhcmNoaXZlICgudGFy Lmd6LCAuemlwLCAuLi4pLAorICAgICAgICAgICA7OyBzdHJpcCB0aGUgZXh0ZW5zaW9uLgorICAg ICAgICAgICAoZmlsZS1uYW1lIChpZiBmaXJzdC1kb3QKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN1YnN0cmluZyBmaWxlLW5hbWUgMCBmaXJzdC1kb3QpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGZpbGUtbmFtZSkpKQorICAgICAgKGZvcm1hdCAoY3VycmVudC1lcnJvci1wb3J0KQor ICAgICAgICAgICAgICAid2FybmluZzogdGhlIG1vZHBhY2sgfmEgZGlkIG5vdCBzZXQgJ25hbWUn IGluICdtb2RwYWNrLmNvbmYnfiUiCisgICAgICAgICAgICAgIGZpbGUtbmFtZSkKKyAgICAgIGZp bGUtbmFtZSkpCisgIChjb25kICgoZmlsZS1leGlzdHM/ICJtb2QuY29uZiIpCisgICAgICAgICAo cmVhZC1tb2QtbmFtZSAibW9kLmNvbmYiKSkKKyAgICAgICAgKChmaWxlLWV4aXN0cz8gIm1vZHBh Y2suY29uZiIpCisgICAgICAgICAocmVhZC1tb2QtbmFtZSAibW9kcGFjay5jb25mIiBndWVzcykp CisgICAgICAgICgjdCAoZ3Vlc3MpKSkpCisKKyhkZWZpbmUqIChpbnN0YWxsICM6a2V5IGlucHV0 cyAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0IGFyZ3VtZW50cykKKyAgKGFwcGx5IChAQCAoZ3Vp eCBidWlsZCBjb3B5LWJ1aWxkLXN5c3RlbSkgaW5zdGFsbCkKKyAgICAgICAgICM6aW5zdGFsbC1w bGFuIChtb2QtaW5zdGFsbC1wbGFuIChhcHBseSBndWVzcy1tb2QtbmFtZSBhcmd1bWVudHMpKQor ICAgICAgICAgYXJndW1lbnRzKSkKKworKGRlZmluZSAlcG5nLW1hZ2ljLWJ5dGVzCisgIDs7IE1h Z2ljIGJ5dGVzIG9mIFBORyBpbWFnZXMsIHNlZSDigJg1LjIgUE5HIHNpZ25hdHVyZXPigJkgaW4K KyAgOzsg4oCYUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBTcGVjaWZpY2F0aW9uIChT ZWNvbmQgRWRpdGlvbinigJkKKyAgOzsgb24gPGh0dHBzOi8vd3d3LnczLm9yZy9UUi9QTkcvPi4K KyAgI3Z1OCgxMzcgODAgNzggNzEgMTMgMTAgMjYgMTApKQorCisoZGVmaW5lIHBuZy1maWxlPwor ICAoKEBAIChndWl4IGJ1aWxkIHV0aWxzKSBmaWxlLWhlYWRlci1tYXRjaCkgJXBuZy1tYWdpYy1i eXRlcykpCisKKyhkZWZpbmUqIChtaW5pbWlzZS1wbmcgIzprZXkgaW5wdXRzIG5hdGl2ZS1pbnB1 dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiTWluaW1pc2UgUE5HIGltYWdlcyBmb3VuZCBpbiB0 aGUgd29ya2luZyBkaXJlY3RvcnkuIgorICAoZGVmaW5lIG9wdGlwbmcgKHdoaWNoICJvcHRpcG5n IikpCisgIChkZWZpbmUgKG9wdGltaXNlIGltYWdlKQorICAgIChmb3JtYXQgI3QgIk9wdGltaXNp bmcgfmF+JSIgaW1hZ2UpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSAoZGlybmFtZSBpbWFnZSkp CisgICAgKG1ha2UtZmlsZS13cml0YWJsZSBpbWFnZSkKKyAgICAoZGVmaW5lIG9sZC1zaXplIChz dGF0OnNpemUgKHN0YXQgaW1hZ2UpKSkKKyAgICA7OyBUaGUgbW9kICJ0ZWNobmljIiBoYXMgYSBm aWxlICJ0ZWNobmljX211c2ljX3BsYXllcl90b3AucG5nIiB0aGF0CisgICAgOzsgYWN0dWFsbHkg aXMgYSBKUEVHIGZpbGUsIHNlZQorICAgIDs7IDxodHRwczovL2dpdGh1Yi5jb20vbWluZXRlc3Qt bW9kcy90ZWNobmljL2lzc3Vlcy81OTA+LgorICAgIChpZiAocG5nLWZpbGU/IGltYWdlKQorICAg ICAgICAoaW52b2tlIG9wdGlwbmcgIi1vNCIgIi1xdWlldCIgaW1hZ2UpCisgICAgICAgIChmb3Jt YXQgI3QgIndhcm5pbmc6IHNraXBwaW5nIH5hIGJlY2F1c2UgaXQncyBub3QgYWN0dWFsbHkgYSBQ TkcgaW1hZ2V+JSIKKyAgICAgICAgICAgICAgICBpbWFnZSkpCisgICAgKGRlZmluZSBuZXctc2l6 ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAgKHZhbHVlcyBvbGQtc2l6ZSBuZXctc2l6 ZSkpCisgIChkZWZpbmUgZmlsZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIpKQorICAobGV0IGxv b3AgKCh0b3RhbC1vbGQtc2l6ZSAwKQorICAgICAgICAgICAgICh0b3RhbC1uZXctc2l6ZSAwKQor ICAgICAgICAgICAgIChpbWFnZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIpKSkKKyAgICAoY29u ZCAoKHBhaXI/IGltYWdlcykKKyAgICAgICAgICAgKHJlY2VpdmUgKG9sZC1zaXplIG5ldy1zaXpl KQorICAgICAgICAgICAgICAgKG9wdGltaXNlIChjYXIgaW1hZ2VzKSkKKyAgICAgICAgICAgICAo bG9vcCAoKyB0b3RhbC1vbGQtc2l6ZSBvbGQtc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAoKyB0 b3RhbC1uZXctc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAoY2RyIGltYWdlcykp KSkKKyAgICAgICAgICAoKD0gdG90YWwtb2xkLXNpemUgMCkKKyAgICAgICAgICAgKGZvcm1hdCAj dCAiVGhlcmUgd2VyZSBubyBQTkcgaW1hZ2VzIHRvIG1pbmltaXNhdGlvbi4iKSkKKyAgICAgICAg ICAoI3QKKyAgICAgICAgICAgKGZvcm1hdCAjdCAiTWluaW1pc2F0aW9uIHJlZHVjZWQgc2l6ZSBv ZiBpbWFnZXMgYnkgfiwyZiUgKH4sMmYgTWlCIHRvIH4sMmYgTWlCKX4lIgorICAgICAgICAgICAg ICAgICAgICgqIDEwMC4wICgtIDEgKC8gdG90YWwtbmV3LXNpemUgdG90YWwtb2xkLXNpemUpKSkK KyAgICAgICAgICAgICAgICAgICAoLyB0b3RhbC1vbGQtc2l6ZSAoZXhwdCAxMDI0IDIpKQorICAg ICAgICAgICAgICAgICAgICgvIHRvdGFsLW5ldy1zaXplIChleHB0IDEwMjQgMikpKSkpKSkKKwor KGRlZmluZSBuYW1lLXJlZ2V4cCAobWFrZS1yZWdleHAgIl5uYW1lWyBdKj0oLispJCIpKQorCiso ZGVmaW5lKiAocmVhZC1tb2QtbmFtZSBtb2QuY29uZiAjOm9wdGlvbmFsIG5vdC1mb3VuZCkKKyAg IlJlYWQgdGhlIG5hbWUgb2YgYSBtb2QgZnJvbSBNT0QuQ09ORi4gIElmIE1PRC5DT05GCitkb2Vz IG5vdCBoYXZlIGEgbmFtZSBmaWVsZCBhbmQgTk9ULUZPVU5EIGlzICNmYWxzZSwgcmFpc2UgYW4K K2Vycm9yLiAgSWYgTk9ULUZPVU5EIGlzIFRSVUUsIGNhbGwgTk9ULUZPVU5EIGluc3RlYWQuIgor ICAoY2FsbC13aXRoLWlucHV0LWZpbGUgbW9kLmNvbmYKKyAgICAobGFtYmRhIChwb3J0KQorICAg ICAgKGxldCBsb29wICgpCisgICAgICAgIChkZWZpbmUgbGluZSAocmVhZC1saW5lIHBvcnQpKQor ICAgICAgICAoaWYgKGVvZi1vYmplY3Q/IGxpbmUpCisgICAgICAgICAgICAoaWYgbm90LWZvdW5k CisgICAgICAgICAgICAgICAgKG5vdC1mb3VuZCkKKyAgICAgICAgICAgICAgICAoZXJyb3IgIn5h IGRvZXMgbm90IGhhdmUgYSAnbmFtZScgZmllbGQiIG1vZC5jb25mKSkKKyAgICAgICAgICAgIChs ZXQgKChtYXRjaCAocmVnZXhwLWV4ZWMgbmFtZS1yZWdleHAgbGluZSkpKQorICAgICAgICAgICAg ICAoaWYgKHJlZ2V4cC1tYXRjaD8gbWF0Y2gpCisgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRy aW0tYm90aCAobWF0Y2g6c3Vic3RyaW5nIG1hdGNoIDEpICNcICkKKyAgICAgICAgICAgICAgICAg IChsb29wKSkpKSkpKSkKKworKGRlZmluZSogKGNoZWNrICM6a2V5IG91dHB1dHMgdGVzdHM/ICM6 YWxsb3ctb3RoZXIta2V5cykKKyAgIlRlc3Qgd2hldGhlciB0aGUgbW9kIGxvYWRzLiAgVGhlIG1v ZCBtdXN0IGZpcnN0IGJlIGluc3RhbGxlZCBmaXJzdC4iCisgIChkZWZpbmUgKGFsbC1tb2QtbmFt ZXMgZGlyZWN0b3JpZXMpCisgICAgKGFwcGVuZC1tYXAKKyAgICAgKGxhbWJkYSAoZGlyZWN0b3J5 KQorICAgICAgIChtYXAgcmVhZC1tb2QtbmFtZSAoZmluZC1maWxlcyBkaXJlY3RvcnkgIm1vZC5j b25mIikpKQorICAgICBkaXJlY3RvcmllcykpCisgICh3aGVuIHRlc3RzPworICAgIChta2RpciAi Z3VpeF90ZXN0d29ybGQiKQorICAgIDs7IEFkZCB0aGUgbW9kIHRvIHRoZSBtb2Qgc2VhcmNoIHBh dGgsIHN1Y2ggdGhhdCBNaW5ldGVzdCBjYW4gZmluZCBpdC4KKyAgICAoc2V0ZW52ICJNSU5FVEVT VF9NT0RfUEFUSCIKKyAgICAgICAgICAgIChsaXN0LT5zZWFyY2gtcGF0aC1hcy1zdHJpbmcKKyAg ICAgICAgICAgICAoY29ucworICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVm IG91dHB1dHMgIm91dCIpICIvc2hhcmUvbWluZXRlc3QvbW9kcyIpCisgICAgICAgICAgICAgIChz ZWFyY2gtcGF0aC1hcy1zdHJpbmctPmxpc3QKKyAgICAgICAgICAgICAgIChvciAoZ2V0ZW52ICJN SU5FVEVTVF9NT0RfUEFUSCIpICIiKSkpCisgICAgICAgICAgICAgIjoiKSkKKyAgICAod2l0aC1k aXJlY3RvcnktZXhjdXJzaW9uICJndWl4X3Rlc3R3b3JsZCIKKyAgICAgIChzZXRlbnYgIkhPTUUi IChnZXRjd2QpKQorICAgICAgOzsgQ3JlYXRlIGEgd29ybGQgaW4gd2hpY2ggYWxsIG1vZHMgYXJl IGxvYWRlZC4KKyAgICAgIChjYWxsLXdpdGgtb3V0cHV0LWZpbGUgIndvcmxkLm10IgorICAgICAg ICAobGFtYmRhIChwb3J0KQorICAgICAgICAgIChkaXNwbGF5CisgICAgICAgICAgICJnYW1laWQg PSBtaW5ldGVzdAord29ybGRfbmFtZSA9IGd1aXhfdGVzdHdvcmxkCitiYWNrZW5kID0gc3FsaXRl MworcGxheWVyX2JhY2tlbmQgPSBzcWxpdGUzCithdXRoX2JhY2tlbmQgPSBzcWxpdGUzCisiIHBv cnQpCisgICAgICAgICAgKGZvci1lYWNoCisgICAgICAgICAgIChsYW1iZGEgKG1vZCkKKyAgICAg ICAgICAgICAoZm9ybWF0IHBvcnQgImxvYWRfbW9kX35hID0gdHJ1ZX4lIiBtb2QpKQorICAgICAg ICAgICAoYWxsLW1vZC1uYW1lcyAoc2VhcmNoLXBhdGgtYXMtc3RyaW5nLT5saXN0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZ2V0ZW52ICJNSU5FVEVTVF9NT0RfUEFUSCIpKSkpKSkKKyAg ICAgIChyZWNlaXZlIChwb3J0IHBpZCkKKyAgICAgICAgICAoKEBAIChndWl4IGJ1aWxkIHV0aWxz KSBvcGVuLXBpcGUtd2l0aC1zdGRlcnIpCisgICAgICAgICAgICJ4dmZiLXJ1biIgIi0tIiAibWlu ZXRlc3QiICItLWluZm8iICItLXdvcmxkIiAiLiIgIi0tZ28iKQorICAgICAgICAoZm9ybWF0ICN0 ICJTdGFydGVkIE1pbmV0ZXN0IHdpdGggYWxsIG1vZHMgbG9hZGVkIGZvciB0ZXN0aW5nfiUiKQor ICAgICAgICA7OyBTY2FuIHRoZSBvdXRwdXQgZm9yIGVycm9yIG1lc3NhZ2VzLgorICAgICAgICA7 OyBXaGVuIHRoZSBwbGF5ZXIgaGFzIGpvaW5lZCB0aGUgc2VydmVyLCBzdG9wIG1pbmV0ZXN0Lgor ICAgICAgICAoZGVmaW5lIChlcnJvcj8gbGluZSkKKyAgICAgICAgICAoYW5kIChzdHJpbmc/IGxp bmUpCisgICAgICAgICAgICAgICAoc3RyaW5nLWNvbnRhaW5zIGxpbmUgIjogRVJST1JbIikpKQor ICAgICAgICAoZGVmaW5lIChzdG9wPyBsaW5lKQorICAgICAgICAgIChhbmQgKHN0cmluZz8gbGlu ZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMgbGluZSAiQUNUSU9OW1NlcnZlcl06 IHNpbmdsZXBsYXllciBbMTI3LjAuMC4xXSBqb2lucyBnYW1lLiIpKSkKKyAgICAgICAgKGxldCBs b29wICgpCisgICAgICAgICAgKG1hdGNoIChyZWFkLWxpbmUgcG9ydCkKKyAgICAgICAgICAgICgo PyBlcnJvcj8gbGluZSkKKyAgICAgICAgICAgICAoZXJyb3IgIm1pbmV0ZXN0IHJhaXNlZCBhbiBl cnJvcjogfmEiIGxpbmUpKQorICAgICAgICAgICAgKCg/IHN0b3A/KQorICAgICAgICAgICAgIChr aWxsIHBpZCBTSUdJTlQpCisgICAgICAgICAgICAgKGNsb3NlLXBvcnQgcG9ydCkKKyAgICAgICAg ICAgICAod2FpdHBpZCBwaWQpKQorICAgICAgICAgICAgKCg/IHN0cmluZz8gbGluZSkKKyAgICAg ICAgICAgICAoZGlzcGxheSBsaW5lKQorICAgICAgICAgICAgIChuZXdsaW5lKQorICAgICAgICAg ICAgIChsb29wKSkKKyAgICAgICAgICAgICgoPyBlb2Ytb2JqZWN0PykKKyAgICAgICAgICAgICAo ZXJyb3IgIm1pbmV0ZXN0IGRpZG4ndCBzdGFydCIpKSkpKSkpKQorCisoZGVmaW5lICVzdGFuZGFy ZC1waGFzZXMKKyAgKG1vZGlmeS1waGFzZXMgZ251OiVzdGFuZGFyZC1waGFzZXMKKyAgICAoZGVs ZXRlICdib290c3RyYXApCisgICAgKGRlbGV0ZSAnY29uZmlndXJlKQorICAgIChhZGQtYmVmb3Jl ICdidWlsZCAnbWluaW1pc2UtcG5nIG1pbmltaXNlLXBuZykKKyAgICAoZGVsZXRlICdidWlsZCkK KyAgICAoZGVsZXRlICdjaGVjaykKKyAgICAocmVwbGFjZSAnaW5zdGFsbCBpbnN0YWxsKQorICAg IDs7IFRoZSAnY2hlY2snIHBoYXNlIHJlcXVpcmVzIHRoZSBtb2QgdG8gYmUgaW5zdGFsbGVkLAor ICAgIDs7IHNvIG1vdmUgdGhlICdjaGVjaycgcGhhc2UgYWZ0ZXIgdGhlICdpbnN0YWxsJyBwaGFz ZS4KKyAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdjaGVjayBjaGVjaykpKQorCis7OzsgbWluZXRl c3QtYnVpbGQtc3lzdGVtLnNjbSBlbmRzIGhlcmUKLS0gCjIuMzIuMAoK --=-9IWZUGEznwXkBYCq3VbJ-- --=-YT5BXOjimerGSmqVwXbS Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQvFGxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7qh7AP43aRW2aGQVMi002RcK/NdmRrgv EarxVF3D33D3+XD+ngEAgOGwjaft59kMY4JSBuv+pdB5qMaQ0fkxO/okTrhK+Ac= =DEDF -----END PGP SIGNATURE----- --=-YT5BXOjimerGSmqVwXbS-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 08:04:14 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 12:04:14 +0000 Received: from localhost ([127.0.0.1]:46117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBc6g-0003fR-1P for submit@debbugs.gnu.org; Thu, 05 Aug 2021 08:04:14 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:44129) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBc6e-0003fH-0N for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 08:04:13 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GgS2K018gz1DH9P; Thu, 5 Aug 2021 14:04:08 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GgS2K018gz1DH9P DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628165049; bh=cdl1Uv7SMseSITfFEd3yF1LZNC2euuH5illtAH2rCMc=; h=Subject:From:To:Date:In-Reply-To:References:From; b=naDDzqlPWzBLsRxQnwKfaJoA6V3r4AlEJCB0wfaWH3XJ3X8iiQc3fkmKCGajYLZj7 aPGu1kMyqbss8dFlr+DNWuPuZI1u3VpiwGfTmnsvvB6pxX5WXDHF2ivwLL9y7/UiO5 TZ4xClbejqeDx2wSbFOQxpNT58wDezzUkzcQBz+Y= Message-ID: <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 14:04:07 +0200 In-Reply-To: <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Donnerstag, den 05.08.2021, 13:01 +0200 schrieb Maxime Devos: > Hi, > > The attached patch squashes "PATCH 04" and "PATCH 05" together > and extends the build system. It now has an install plan only > installing > what's necessary (Lua code, PNG images, some configuration files > ...), > a 'check' build phase verifying Minetest can actually load the mod, > and a 'minimise-png' phase minimising PNG images. > > The mod name for ‘(("." "share/minetest/mods/the-mod-name"))’ can now > be determined exactly in most cases (Minetest doesn't really care but > the directory name can appear in the GUI in some cases). > > Greetings, > Maxime. > +mods, which consists of copying lua code, images and other resources > to s/lua/Lua/ :) > +(define* (install #:key inputs #:allow-other-keys #:rest arguments) > + (apply (@@ (guix build copy-build-system) install) > + #:install-plan (mod-install-plan (apply guess-mod-name > arguments)) > + arguments)) @@ is a code smell, as far as Guix is concerned. Rather import copy- build-system with the copy: prefix. > +(define png-file? > + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) Likewise import (guix build utils) directly. > +(define (lower-mod name . arguments) > + (define lower (build-system-lower gnu-build-system)) > + (apply lower > + name > + #:imported-modules %minetest-build-system-modules > + #:modules %default-modules > + #:phases '%standard-phases > + #:implicit-inputs? #f > + ;; Mods are architecture-independent. > + #:target #f > + ;; Ensure nothing sneaks into the closure. > + #:allowed-references '() > + (substitute-keyword-arguments arguments > + ((#:native-inputs native-inputs '()) > + (append native-inputs (standard-minetest-packages)))))) This appears a little confusing. On first glance, it does not seem to allow overriding e.g. #:phases, but on a second look using `apply' together with shallowly substituted arguments would enable that. The only thing that's missing imo is that #:implicit-inputs? is not honoured for (standard-minetest-packages) -- I think you might want to rectify that. Otherwise looks pretty good to me. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 09:16:38 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 13:16:38 +0000 Received: from localhost ([127.0.0.1]:46176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBdEh-0005MM-4y for submit@debbugs.gnu.org; Thu, 05 Aug 2021 09:16:38 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:34908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBdEd-0005MB-Vg for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 09:16:34 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by albert.telenet-ops.be with bizsmtp id dpGV2500C0mfAB406pGWSg; Thu, 05 Aug 2021 15:16:30 +0200 Message-ID: <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 15:16:19 +0200 In-Reply-To: <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-g8VHnW5/m8RecFavaohE" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628169390; bh=eA0d0cNrRZOR2OPG+lhD2icpNjrzxshew0Rvqk/GB4Q=; h=Subject:From:To:Date:In-Reply-To:References; b=k/GDeYnr6NxWzz4c0X8tVLn5/XkML2WV8FX1rEzZInUKLk0Bww78jws+d52jtyXxN cCtbrEHcv+s/c9aHuJGeQ+o0SkjmRJ0FRJRnc2N696+Zb/YlhiwS7j8OKpIY9HaPy6 hEWVWaVSR3fnQeBomChh5gVgguQpGeq7+cbMt2cyzWwDCeAyYbk+bl168xt8DjedrN cNkhEqUtWnpW+qJEjVUibKxmiuLiwGQuvo34VE4MLDFJoZxHNjamj3GpwkJHPXKezV ZyVCnly2EnJrAjuwrdwpDsdf+ukrwtb+j5j66s3pJ67uJp73o8zp6G1MadRbfQeWlr AVPkT71K+HLwQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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 (-) --=-g8VHnW5/m8RecFavaohE Content-Type: multipart/mixed; boundary="=-6thp+vPaCJx0egrTAxGw" --=-6thp+vPaCJx0egrTAxGw Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op do 05-08-2021 om 14:04 [+0200]: > > +mods, which consists of copying lua code, images and other resources > > to > s/lua/Lua/ :) Fixed. > > +(define* (install #:key inputs #:allow-other-keys #:rest arguments) > > + (apply (@@ (guix build copy-build-system) install) > > + #:install-plan (mod-install-plan (apply guess-mod-name > > arguments)) > > + arguments)) > @@ is a code smell, as far as Guix is concerned. Rather import copy- > build-system with the copy: prefix. 'copy-build-system' does not export 'install', so I have to use '@@' here. Modifying 'copy-build-system' to export 'install' would presumably entail a many rebuilds. > > +(define png-file? > > + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) > Likewise import (guix build utils) directly. Likewise. > > +(define (lower-mod name . arguments) > > + (define lower (build-system-lower gnu-build-system)) > > + (apply lower > > + name > > + #:imported-modules %minetest-build-system-modules > > + #:modules %default-modules > > + #:phases '%standard-phases > > + #:implicit-inputs? #f > > + ;; Mods are architecture-independent. > > + #:target #f > > + ;; Ensure nothing sneaks into the closure. > > + #:allowed-references '() > > + (substitute-keyword-arguments arguments > > + ((#:native-inputs native-inputs '()) > > + (append native-inputs (standard-minetest-packages)))))) > This appears a little confusing. On first glance, it does not seem to > allow overriding e.g. #:phases, but on a second look using `apply' > together with shallowly substituted arguments would enable that.=20 I modified the patch to move more things into 'substitute-keyword-arguments= ' to reduce confusion. > The > only thing that's missing imo is that #:implicit-inputs? is not > honoured for (standard-minetest-packages) -- I think you might want to > rectify that. I modified 'lower-mod' to _not_ add 'standard-minetest-packages' to 'native-inputs' when #:implicit-inputs? is false, though I don't see why a package definition for a Minetest mod would do that. I also found a spellig bug ("to minimisation" -> "to minimise") which is now fixed. btw, I submitted the "MINETEST_MOD_PATH" patch upstream, with your suggesti= on for "{std::string(...)}" construction: . Greetings, Maxime. --=-6thp+vPaCJx0egrTAxGw Content-Disposition: inline; filename="build-system-Add-minetest-mod-build-system.patch" Content-Type: text/x-patch; name="build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYmQ5Y2Y1M2QzNTliNDYxYzAxMTc2ZTMxNzBiYTA2NjNjZTkwMDdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBi dWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1aXgvYnVp bGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21pbmV0ZXN0 LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVTKTogQWRk IHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA5OSArKysrKysrKysr KysKIGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSB8IDIyMCArKysrKysrKysr KysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzI5IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KIGNyZWF0ZSBt b2RlIDEwMDY0NCBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1n aXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQ1ZWM5MDkyMTMuLmY0NDM5Y2U5 M2IgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0xNDEsNiAr MTQxLDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dvLnNjbQkJCVwK ICAgZ3VpeC9idWlsZC1zeXN0ZW0vbWVzb24uc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9t aW5pZnkuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20JCVwKICAgZ3Vp eC9idWlsZC1zeXN0ZW0vYXNkZi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2NvcHkuc2Nt CQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9nbGliLW9yLWd0ay5zY20JCVwKQEAgLTIwMyw2ICsy MDQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9nbnUtZGlzdC5zY20JCQlcCiAg IGd1aXgvYnVpbGQvZ3VpbGUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxkL21hdmVu LWJ1aWxkLXN5c3RlbS5zY20JCVwKKyAgZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0u c2NtCQlcCiAgIGd1aXgvYnVpbGQvbm9kZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVp bGQvcGVybC1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvcHl0aG9uLWJ1aWxkLXN5 c3RlbS5zY20JCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmlu ZGV4IGIzYzE2ZTY1MDcuLmQ0NGVjYzIwMDUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysr IGIvZG9jL2d1aXgudGV4aQpAQCAtNzg5NSw2ICs3ODk1LDE0IEBAIGRlY2xhcmF0aW9uLiAgSXRz IGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7KGRlZmF1bHQtbWF2ZW4tcGx1Z2lucyl9IHdoaWNoIGlz CiBhbHNvIGV4cG9ydGVkLgogQGVuZCBkZWZ2cgogCitAZGVmdnIge1NjaGVtZSBWYXJpYWJsZX0g bWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorVGhpcyB2YXJpYWJsZSBpcyBleHBvcnRlZCBieSBA Y29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3QpfS4gIEl0CitpbXBsZW1lbnRzIGEgYnVp bGQgcHJvY2VkdXJlIGZvciBAdXJlZntodHRwczovL3d3dy5taW5ldGVzdC5uZXQsIE1pbmV0ZXN0 fQorbW9kcywgd2hpY2ggY29uc2lzdHMgb2YgY29weWluZyBMdWEgY29kZSwgaW1hZ2VzIGFuZCBv dGhlciByZXNvdXJjZXMgdG8KK3RoZSBsb2NhdGlvbiBNaW5ldGVzdCBzZWFyY2hlcyBmb3IgbW9k cy4gIFRoZSBidWlsZCBzeXN0ZW0gYWxzbyBtaW5pbWlzZXMKK1BORyBpbWFnZXMgYW5kIHZlcmlm aWVzIHRoYXQgTWluZXRlc3QgY2FuIGxvYWQgdGhlIG1vZCB3aXRob3V0IGVycm9ycy4KK0BlbmQg ZGVmdnIKKwogQGRlZnZyIHtTY2hlbWUgVmFyaWFibGV9IG1pbmlmeS1idWlsZC1zeXN0ZW0KIFRo aXMgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgQGNvZGV7KGd1aXggYnVpbGQtc3lzdGVtIG1pbmlm eSl9LiAgSXQKIGltcGxlbWVudHMgYSBtaW5pZmljYXRpb24gcHJvY2VkdXJlIGZvciBzaW1wbGUg SmF2YVNjcmlwdCBwYWNrYWdlcy4KZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0 ZXN0LnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi45OGJjYmM5ZTBjCi0tLSAvZGV2L251bGwKKysrIGIvZ3Vp eC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsOTkgQEAKKzs7OyBHTlUgR3Vp eCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENvcHlyaWdo dCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OworOzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3Qp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gY29weSkKKyAgIzp1c2UtbW9kdWxl IChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0 ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzpleHBvcnQgKG1pbmV0ZXN0LW1v ZC1idWlsZC1zeXN0ZW0pKQorCis7OworOzsgQnVpbGQgcHJvY2VkdXJlIGZvciBtaW5ldGVzdCBt b2RzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24KKzs7IG9mIOKAmGNvcHkt YnVpbGQtc3lzdGVt4oCZLgorOzsKKzs7IENvZGU6CisKKzs7IExhemlseSByZXNvbHZlIHRoZSBi aW5kaW5ncyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCisoZGVmaW5lIChkZWZhdWx0 LW9wdGlwbmcpCisgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2ly Y3VsYXIgZGVwZW5kZW5jeS4KKyAgKG1vZHVsZS1yZWYgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251 IHBhY2thZ2VzIGltYWdlKSkgJ29wdGlwbmcpKQorCisoZGVmaW5lIChkZWZhdWx0LW1pbmV0ZXN0 KQorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZ2FtZXMp KSAnbWluZXRlc3QpKQorCisoZGVmaW5lIChkZWZhdWx0LXh2ZmItcnVuKQorICAobW9kdWxlLXJl ZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgeG9yZykpICd4dmZiLXJ1bikpCisK KyhkZWZpbmUgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxkLXNpZGUg bW9kdWxlcyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIG1pbmV0ZXN0LWJ1 aWxkLXN5c3RlbSkKKyAgICAsQCVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKKworKGRlZmlu ZSAlZGVmYXVsdC1tb2R1bGVzCisgIDs7IE1vZHVsZXMgaW4gc2NvcGUgaW4gdGhlIGJ1aWxkLXNp ZGUgZW52aXJvbm1lbnQuCisgICcoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkKKyAgICAo Z3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQgdXRpbHMp KSkKKworKGRlZmluZSAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMpCisgICJSZXR1cm4gdGhl IGxpc3Qgb2YgKE5BTUUgUEFDS0FHRSBPVVRQVVQpIG9yIChOQU1FIFBBQ0tBR0UpIHR1cGxlcyBv Zgorc3RhbmRhcmQgcGFja2FnZXMgdXNlZCBhcyBpbXBsaWNpdCBpbnB1dHMgb2YgdGhlIE1pbmV0 ZXN0IGJ1aWxkIHN5c3RlbS4iCisgIGAoKCJ4dmZiLXJ1biIgLChkZWZhdWx0LXh2ZmItcnVuKSkK KyAgICAoIm9wdGlwbmciICwoZGVmYXVsdC1vcHRpcG5nKSkKKyAgICAoIm1pbmV0ZXN0IiAsKGRl ZmF1bHQtbWluZXRlc3QpKQorICAgICxAKGZpbHRlciAobGFtYmRhIChpbnB1dCkKKyAgICAgICAg ICAgICAgICAobWVtYmVyIChjYXIgaW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAgICAnKCJs aWJjIiAidGFyIiAiZ3ppcCIgImJ6aXAyIiAieHoiICJsb2NhbGVzIikpKQorICAgICAgICAgICAg ICAoc3RhbmRhcmQtcGFja2FnZXMpKSkpCisKKyhkZWZpbmUqIChsb3dlci1tb2QgbmFtZSAjOmtl eSAoaW1wbGljaXQtaW5wdXRzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAg ICAgICAgICM6cmVzdCBhcmd1bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5c3RlbS1s b3dlciBnbnUtYnVpbGQtc3lzdGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBuYW1lCisg ICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyBhcmd1bWVudHMKKyAgICAgICAg ICAgOzsgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSBhZGRzIGltcGxpY2l0IGlucHV0cyBieSBp dHNlbGYsCisgICAgICAgICAgIDs7IHNvIGRvbid0IGxldCBnbnUtYnVpbGQtc3lzdGVtIGFkZCBp dHMgb3duIGltcGxpY2l0IGlucHV0cworICAgICAgICAgICA7OyBhcyB3ZWxsLgorICAgICAgICAg ICAoKCM6aW1wbGljaXQtaW5wdXRzPyBpbXBsaWNpdC1pbnB1dHM/ICN0KQorICAgICAgICAgICAg I2YpCisgICAgICAgICAgICgoIzppbXBvcnRlZC1tb2R1bGVzIGltcG9ydGVkLW1vZHVsZXMgJW1p bmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKQorICAgICAgICAgICAgaW1wb3J0ZWQtbW9kdWxl cykKKyAgICAgICAgICAgKCgjOm1vZHVsZXMgbW9kdWxlcyAlZGVmYXVsdC1tb2R1bGVzKQorICAg ICAgICAgICAgbW9kdWxlcykKKyAgICAgICAgICAgKCgjOnBoYXNlcyBwaGFzZXMgJyVzdGFuZGFy ZC1waGFzZXMpCisgICAgICAgICAgICBwaGFzZXMpCisgICAgICAgICAgIDs7IE1vZHMgYXJlIGFy Y2hpdGVjdHVyZS1pbmRlcGVuZGVudC4KKyAgICAgICAgICAgKCgjOnRhcmdldCB0YXJnZXQgI2Yp ICNmKQorICAgICAgICAgICA7OyBFbnN1cmUgbm90aGluZyBzbmVha3MgaW50byB0aGUgY2xvc3Vy ZS4KKyAgICAgICAgICAgKCgjOmFsbG93ZWQtcmVmZXJlbmNlcyBhbGxvd2VkLXJlZmVyZW5jZXMg JygpKQorICAgICAgICAgICAgYWxsb3dlZC1yZWZlcmVuY2VzKQorICAgICAgICAgICA7OyBBZGQg dGhlIGltcGxpY2l0IGlucHV0cy4KKyAgICAgICAgICAgKCgjOm5hdGl2ZS1pbnB1dHMgbmF0aXZl LWlucHV0cyAnKCkpCisgICAgICAgICAgICAoaWYgaW1wbGljaXQtaW5wdXRzPworICAgICAgICAg ICAgICAgIChhcHBlbmQgbmF0aXZlLWlucHV0cyAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMp KQorICAgICAgICAgICAgICAgIG5hdGl2ZS1pbnB1dHMpKSkpKQorCisoZGVmaW5lIG1pbmV0ZXN0 LW1vZC1idWlsZC1zeXN0ZW0KKyAgKGJ1aWxkLXN5c3RlbQorICAgIChuYW1lICdtaW5ldGVzdC1t b2QpCisgICAgKGRlc2NyaXB0aW9uICJUaGUgYnVpbGQgc3lzdGVtIGZvciBtaW5ldGVzdCBtb2Rz IikKKyAgICAobG93ZXIgbG93ZXItbW9kKSkpCisKKzs7OyBtaW5ldGVzdC5zY20gZW5kcyBoZXJl CmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20gYi9ndWl4 L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uZTllYjQ5MWIxYgotLS0gL2Rldi9udWxsCisrKyBiL2d1aXgvYnVpbGQv bWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbQpAQCAtMCwwICsxLDIyMCBAQAorOzs7IENvcHlyaWdo dCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OworOzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1z eXN0ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZCB1dGlscykKKyAgIzp1c2UtbW9kdWxl IChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBmb3JtYXQpCisgICM6dXNlLW1v ZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmRlbGltKQorICAjOnVz ZS1tb2R1bGUgKGljZS05IHJlY2VpdmUpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmVnZXgpCisg ICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkgIzpwcmVmaXggZ251 OikKKyAgIzpleHBvcnQgKCVzdGFuZGFyZC1waGFzZXMKKyAgICAgICAgICAgIG1vZC1pbnN0YWxs LXBsYW4gbWluaW1pc2UtcG5nIHJlYWQtbW9kLW5hbWUgY2hlY2spKQorCisoZGVmaW5lIChtb2Qt aW5zdGFsbC1wbGFuIG1vZC1uYW1lKQorICBgKCgiLiIgLChzdHJpbmctYXBwZW5kICJzaGFyZS9t aW5ldGVzdC9tb2RzLyIgbW9kLW5hbWUpCisgICAgIDs7IE9ubHkgaW5zdGFsbCBmaWxlcyB0aGF0 IHdpbGwgYWN0dWFsbHkgYmUgdXNlZCBhdCBydW4gdGltZS4KKyAgICAgOzsgVGhpcyBjYW4gc2F2 ZSBhIGxpdHRsZSBkaXNrIHNwYWNlLgorICAgICA7OworICAgICA7OyBTZWUgPGh0dHBzOi8vZ2l0 aHViLmNvbS9taW5ldGVzdC9taW5ldGVzdC9ibG9iL21hc3Rlci9kb2MvbHVhX2FwaS50eHQ+Cisg ICAgIDs7IGZvciBhbiBpbmNvbXBsZSBsaXN0IG9mIGZpbGVzIHRoYXQgY2FuIGJlIGZvdW5kIGlu IG1vZHMuCisgICAgICM6aW5jbHVkZSAoIm1vZC5jb25mIiAibW9kcGFjay5jb25mIiAic2V0dGlu Z3R5cGVzLnR4dCIgImRlcGVuZHMudHh0IgorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbi50 eHQiKQorICAgICAjOmluY2x1ZGUtcmVnZXhwICgiLmx1YSQiICIucG5nJCIgIi5vZ2ckIiAiLm9i aiQiICIuYjNkJCIgIi50ciQiCisgICAgICAgICAgICAgICAgICAgICAgICIubXRzJCIpKSkpCisK KyhkZWZpbmUqIChndWVzcy1tb2QtbmFtZSAjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlz KQorICAiVHJ5IHRvIGRldGVybWluZSB0aGUgbmFtZSBvZiB0aGUgbW9kIG9yIG1vZHBhY2sgdGhh dCBpcyBiZWluZyBidWlsdC4KK0lmIGl0IGlzIHVua25vd24sIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vl c3MuIgorICA7OyBNaW5ldGVzdCBkb2Vzbid0IGNhcmUgYWJvdXQgdGhlIGRpcmVjdG9yeSBuYW1l cyBpbiAic2hhcmUvbWluZXRlc3QvbW9kcyIKKyAgOzsgc28gdGhlcmUgaXMgbm8gdGVjaG5pY2Fs IHByb2JsZW0gaWYgdGhlIGRpcmVjdG9yeSBuYW1lcyBkb24ndCBtYXRjaAorICA7OyB0aGUgbW9k IG5hbWVzLiAgVGhlIGRpcmVjdG9yeSBjYW4gYXBwZWFyIGluIHRoZSBHVUkgaWYgdGhlIG1vZHBh Y2sKKyAgOzsgZG9lc24ndCBoYXZlIHRoZSAnbmFtZScgc2V0IHRob3VnaCwgc28gdHJ5IHRvIG1h a2UgdGhlIGd1ZXNzLgorICAoZGVmaW5lIChndWVzcykKKyAgICAobGV0KiAoKHNvdXJjZSAoYXNz b2MtcmVmIGlucHV0cyAic291cmNlIikpCisgICAgICAgICAgIChmaWxlLW5hbWUgKGJhc2VuYW1l IHNvdXJjZSkpCisgICAgICAgICAgIDs7IFRoZSAibWluZXRlc3QtIiBwcmVmaXggaXMgbm90IGlu Zm9ybWF0aXZlLCBzbyBzdHJpcCBpdC4KKyAgICAgICAgICAgKGZpbGUtbmFtZSAoaWYgKHN0cmlu Zy1wcmVmaXg/ICJtaW5ldGVzdC0iIGZpbGUtbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN1YnN0cmluZyBmaWxlLW5hbWUgKHN0cmluZy1sZW5ndGggIm1pbmV0ZXN0LSIpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5hbWUpKQorICAgICAgICAgICA7OyBTdHJpcCAi LWNoZWNrb3V0IiBzdWZmaXhlcyBvZiBnaXQgY2hlY2tvdXRzLgorICAgICAgICAgICAoZmlsZS1u YW1lIChpZiAoc3RyaW5nLXN1ZmZpeD8gIi1jaGVja291dCIgZmlsZS1uYW1lKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoLSAoc3RyaW5nLWxlbmd0aCBmaWxlLW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGggIi1taW5ldGVzdCIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgZmlsZS1uYW1lKSkKKyAgICAgICAgICAgKGZpcnN0LWRvdCAoc3RyaW5n LWluZGV4IGZpbGUtbmFtZSAjXC4pKQorICAgICAgICAgICA7OyBJZiB0aGUgc291cmNlIGNvZGUg aXMgaW4gYW4gYXJjaGl2ZSAoLnRhci5neiwgLnppcCwgLi4uKSwKKyAgICAgICAgICAgOzsgc3Ry aXAgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgICAgKGZpbGUtbmFtZSAoaWYgZmlyc3QtZG90Cisg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgZmlsZS1uYW1lIDAgZmlyc3QtZG90 KQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5hbWUpKSkKKyAgICAgIChmb3JtYXQg KGN1cnJlbnQtZXJyb3ItcG9ydCkKKyAgICAgICAgICAgICAgIndhcm5pbmc6IHRoZSBtb2RwYWNr IH5hIGRpZCBub3Qgc2V0ICduYW1lJyBpbiAnbW9kcGFjay5jb25mJ34lIgorICAgICAgICAgICAg ICBmaWxlLW5hbWUpCisgICAgICBmaWxlLW5hbWUpKQorICAoY29uZCAoKGZpbGUtZXhpc3RzPyAi bW9kLmNvbmYiKQorICAgICAgICAgKHJlYWQtbW9kLW5hbWUgIm1vZC5jb25mIikpCisgICAgICAg ICgoZmlsZS1leGlzdHM/ICJtb2RwYWNrLmNvbmYiKQorICAgICAgICAgKHJlYWQtbW9kLW5hbWUg Im1vZHBhY2suY29uZiIgZ3Vlc3MpKQorICAgICAgICAoI3QgKGd1ZXNzKSkpKQorCisoZGVmaW5l KiAoaW5zdGFsbCAjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzICM6cmVzdCBhcmd1bWVu dHMpCisgIChhcHBseSAoQEAgKGd1aXggYnVpbGQgY29weS1idWlsZC1zeXN0ZW0pIGluc3RhbGwp CisgICAgICAgICAjOmluc3RhbGwtcGxhbiAobW9kLWluc3RhbGwtcGxhbiAoYXBwbHkgZ3Vlc3Mt bW9kLW5hbWUgYXJndW1lbnRzKSkKKyAgICAgICAgIGFyZ3VtZW50cykpCisKKyhkZWZpbmUgJXBu Zy1tYWdpYy1ieXRlcworICA7OyBNYWdpYyBieXRlcyBvZiBQTkcgaW1hZ2VzLCBzZWUg4oCYNS4y IFBORyBzaWduYXR1cmVz4oCZIGluCisgIDs7IOKAmFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3Mg KFBORykgU3BlY2lmaWNhdGlvbiAoU2Vjb25kIEVkaXRpb24p4oCZCisgIDs7IG9uIDxodHRwczov L3d3dy53My5vcmcvVFIvUE5HLz4uCisgICN2dTgoMTM3IDgwIDc4IDcxIDEzIDEwIDI2IDEwKSkK KworKGRlZmluZSBwbmctZmlsZT8KKyAgKChAQCAoZ3VpeCBidWlsZCB1dGlscykgZmlsZS1oZWFk ZXItbWF0Y2gpICVwbmctbWFnaWMtYnl0ZXMpKQorCisoZGVmaW5lKiAobWluaW1pc2UtcG5nICM6 a2V5IGlucHV0cyBuYXRpdmUtaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIk1pbmltaXNl IFBORyBpbWFnZXMgZm91bmQgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiIKKyAgKGRlZmluZSBv cHRpcG5nICh3aGljaCAib3B0aXBuZyIpKQorICAoZGVmaW5lIChvcHRpbWlzZSBpbWFnZSkKKyAg ICAoZm9ybWF0ICN0ICJPcHRpbWlzaW5nIH5hfiUiIGltYWdlKQorICAgIChtYWtlLWZpbGUtd3Jp dGFibGUgKGRpcm5hbWUgaW1hZ2UpKQorICAgIChtYWtlLWZpbGUtd3JpdGFibGUgaW1hZ2UpCisg ICAgKGRlZmluZSBvbGQtc2l6ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAgOzsgVGhl IG1vZCAidGVjaG5pYyIgaGFzIGEgZmlsZSAidGVjaG5pY19tdXNpY19wbGF5ZXJfdG9wLnBuZyIg dGhhdAorICAgIDs7IGFjdHVhbGx5IGlzIGEgSlBFRyBmaWxlLCBzZWUKKyAgICA7OyA8aHR0cHM6 Ly9naXRodWIuY29tL21pbmV0ZXN0LW1vZHMvdGVjaG5pYy9pc3N1ZXMvNTkwPi4KKyAgICAoaWYg KHBuZy1maWxlPyBpbWFnZSkKKyAgICAgICAgKGludm9rZSBvcHRpcG5nICItbzQiICItcXVpZXQi IGltYWdlKQorICAgICAgICAoZm9ybWF0ICN0ICJ3YXJuaW5nOiBza2lwcGluZyB+YSBiZWNhdXNl IGl0J3Mgbm90IGFjdHVhbGx5IGEgUE5HIGltYWdlfiUiCisgICAgICAgICAgICAgICAgaW1hZ2Up KQorICAgIChkZWZpbmUgbmV3LXNpemUgKHN0YXQ6c2l6ZSAoc3RhdCBpbWFnZSkpKQorICAgICh2 YWx1ZXMgb2xkLXNpemUgbmV3LXNpemUpKQorICAoZGVmaW5lIGZpbGVzIChmaW5kLWZpbGVzICIu IiAiLnBuZyQiKSkKKyAgKGxldCBsb29wICgodG90YWwtb2xkLXNpemUgMCkKKyAgICAgICAgICAg ICAodG90YWwtbmV3LXNpemUgMCkKKyAgICAgICAgICAgICAoaW1hZ2VzIChmaW5kLWZpbGVzICIu IiAiLnBuZyQiKSkpCisgICAgKGNvbmQgKChwYWlyPyBpbWFnZXMpCisgICAgICAgICAgIChyZWNl aXZlIChvbGQtc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAgIChvcHRpbWlzZSAoY2FyIGlt YWdlcykpCisgICAgICAgICAgICAgKGxvb3AgKCsgdG90YWwtb2xkLXNpemUgb2xkLXNpemUpCisg ICAgICAgICAgICAgICAgICAgKCsgdG90YWwtbmV3LXNpemUgbmV3LXNpemUpCisgICAgICAgICAg ICAgICAgICAgKGNkciBpbWFnZXMpKSkpCisgICAgICAgICAgKCg9IHRvdGFsLW9sZC1zaXplIDAp CisgICAgICAgICAgIChmb3JtYXQgI3QgIlRoZXJlIHdlcmUgbm8gUE5HIGltYWdlcyB0byBtaW5p bWlzZS4iKSkKKyAgICAgICAgICAoI3QKKyAgICAgICAgICAgKGZvcm1hdCAjdCAiTWluaW1pc2F0 aW9uIHJlZHVjZWQgc2l6ZSBvZiBpbWFnZXMgYnkgfiwyZiUgKH4sMmYgTWlCIHRvIH4sMmYgTWlC KX4lIgorICAgICAgICAgICAgICAgICAgICgqIDEwMC4wICgtIDEgKC8gdG90YWwtbmV3LXNpemUg dG90YWwtb2xkLXNpemUpKSkKKyAgICAgICAgICAgICAgICAgICAoLyB0b3RhbC1vbGQtc2l6ZSAo ZXhwdCAxMDI0IDIpKQorICAgICAgICAgICAgICAgICAgICgvIHRvdGFsLW5ldy1zaXplIChleHB0 IDEwMjQgMikpKSkpKSkKKworKGRlZmluZSBuYW1lLXJlZ2V4cCAobWFrZS1yZWdleHAgIl5uYW1l WyBdKj0oLispJCIpKQorCisoZGVmaW5lKiAocmVhZC1tb2QtbmFtZSBtb2QuY29uZiAjOm9wdGlv bmFsIG5vdC1mb3VuZCkKKyAgIlJlYWQgdGhlIG5hbWUgb2YgYSBtb2QgZnJvbSBNT0QuQ09ORi4g IElmIE1PRC5DT05GCitkb2VzIG5vdCBoYXZlIGEgbmFtZSBmaWVsZCBhbmQgTk9ULUZPVU5EIGlz ICNmYWxzZSwgcmFpc2UgYW4KK2Vycm9yLiAgSWYgTk9ULUZPVU5EIGlzIFRSVUUsIGNhbGwgTk9U LUZPVU5EIGluc3RlYWQuIgorICAoY2FsbC13aXRoLWlucHV0LWZpbGUgbW9kLmNvbmYKKyAgICAo bGFtYmRhIChwb3J0KQorICAgICAgKGxldCBsb29wICgpCisgICAgICAgIChkZWZpbmUgbGluZSAo cmVhZC1saW5lIHBvcnQpKQorICAgICAgICAoaWYgKGVvZi1vYmplY3Q/IGxpbmUpCisgICAgICAg ICAgICAoaWYgbm90LWZvdW5kCisgICAgICAgICAgICAgICAgKG5vdC1mb3VuZCkKKyAgICAgICAg ICAgICAgICAoZXJyb3IgIn5hIGRvZXMgbm90IGhhdmUgYSAnbmFtZScgZmllbGQiIG1vZC5jb25m KSkKKyAgICAgICAgICAgIChsZXQgKChtYXRjaCAocmVnZXhwLWV4ZWMgbmFtZS1yZWdleHAgbGlu ZSkpKQorICAgICAgICAgICAgICAoaWYgKHJlZ2V4cC1tYXRjaD8gbWF0Y2gpCisgICAgICAgICAg ICAgICAgICAoc3RyaW5nLXRyaW0tYm90aCAobWF0Y2g6c3Vic3RyaW5nIG1hdGNoIDEpICNcICkK KyAgICAgICAgICAgICAgICAgIChsb29wKSkpKSkpKSkKKworKGRlZmluZSogKGNoZWNrICM6a2V5 IG91dHB1dHMgdGVzdHM/ICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIlRlc3Qgd2hldGhlciB0aGUg bW9kIGxvYWRzLiAgVGhlIG1vZCBtdXN0IGZpcnN0IGJlIGluc3RhbGxlZCBmaXJzdC4iCisgIChk ZWZpbmUgKGFsbC1tb2QtbmFtZXMgZGlyZWN0b3JpZXMpCisgICAgKGFwcGVuZC1tYXAKKyAgICAg KGxhbWJkYSAoZGlyZWN0b3J5KQorICAgICAgIChtYXAgcmVhZC1tb2QtbmFtZSAoZmluZC1maWxl cyBkaXJlY3RvcnkgIm1vZC5jb25mIikpKQorICAgICBkaXJlY3RvcmllcykpCisgICh3aGVuIHRl c3RzPworICAgIChta2RpciAiZ3VpeF90ZXN0d29ybGQiKQorICAgIDs7IEFkZCB0aGUgbW9kIHRv IHRoZSBtb2Qgc2VhcmNoIHBhdGgsIHN1Y2ggdGhhdCBNaW5ldGVzdCBjYW4gZmluZCBpdC4KKyAg ICAoc2V0ZW52ICJNSU5FVEVTVF9NT0RfUEFUSCIKKyAgICAgICAgICAgIChsaXN0LT5zZWFyY2gt cGF0aC1hcy1zdHJpbmcKKyAgICAgICAgICAgICAoY29ucworICAgICAgICAgICAgICAoc3RyaW5n LWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpICIvc2hhcmUvbWluZXRlc3QvbW9kcyIp CisgICAgICAgICAgICAgIChzZWFyY2gtcGF0aC1hcy1zdHJpbmctPmxpc3QKKyAgICAgICAgICAg ICAgIChvciAoZ2V0ZW52ICJNSU5FVEVTVF9NT0RfUEFUSCIpICIiKSkpCisgICAgICAgICAgICAg IjoiKSkKKyAgICAod2l0aC1kaXJlY3RvcnktZXhjdXJzaW9uICJndWl4X3Rlc3R3b3JsZCIKKyAg ICAgIChzZXRlbnYgIkhPTUUiIChnZXRjd2QpKQorICAgICAgOzsgQ3JlYXRlIGEgd29ybGQgaW4g d2hpY2ggYWxsIG1vZHMgYXJlIGxvYWRlZC4KKyAgICAgIChjYWxsLXdpdGgtb3V0cHV0LWZpbGUg IndvcmxkLm10IgorICAgICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAgIChkaXNwbGF5Cisg ICAgICAgICAgICJnYW1laWQgPSBtaW5ldGVzdAord29ybGRfbmFtZSA9IGd1aXhfdGVzdHdvcmxk CitiYWNrZW5kID0gc3FsaXRlMworcGxheWVyX2JhY2tlbmQgPSBzcWxpdGUzCithdXRoX2JhY2tl bmQgPSBzcWxpdGUzCisiIHBvcnQpCisgICAgICAgICAgKGZvci1lYWNoCisgICAgICAgICAgIChs YW1iZGEgKG1vZCkKKyAgICAgICAgICAgICAoZm9ybWF0IHBvcnQgImxvYWRfbW9kX35hID0gdHJ1 ZX4lIiBtb2QpKQorICAgICAgICAgICAoYWxsLW1vZC1uYW1lcyAoc2VhcmNoLXBhdGgtYXMtc3Ry aW5nLT5saXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0ZW52ICJNSU5FVEVTVF9N T0RfUEFUSCIpKSkpKSkKKyAgICAgIChyZWNlaXZlIChwb3J0IHBpZCkKKyAgICAgICAgICAoKEBA IChndWl4IGJ1aWxkIHV0aWxzKSBvcGVuLXBpcGUtd2l0aC1zdGRlcnIpCisgICAgICAgICAgICJ4 dmZiLXJ1biIgIi0tIiAibWluZXRlc3QiICItLWluZm8iICItLXdvcmxkIiAiLiIgIi0tZ28iKQor ICAgICAgICAoZm9ybWF0ICN0ICJTdGFydGVkIE1pbmV0ZXN0IHdpdGggYWxsIG1vZHMgbG9hZGVk IGZvciB0ZXN0aW5nfiUiKQorICAgICAgICA7OyBTY2FuIHRoZSBvdXRwdXQgZm9yIGVycm9yIG1l c3NhZ2VzLgorICAgICAgICA7OyBXaGVuIHRoZSBwbGF5ZXIgaGFzIGpvaW5lZCB0aGUgc2VydmVy LCBzdG9wIG1pbmV0ZXN0LgorICAgICAgICAoZGVmaW5lIChlcnJvcj8gbGluZSkKKyAgICAgICAg ICAoYW5kIChzdHJpbmc/IGxpbmUpCisgICAgICAgICAgICAgICAoc3RyaW5nLWNvbnRhaW5zIGxp bmUgIjogRVJST1JbIikpKQorICAgICAgICAoZGVmaW5lIChzdG9wPyBsaW5lKQorICAgICAgICAg IChhbmQgKHN0cmluZz8gbGluZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMgbGlu ZSAiQUNUSU9OW1NlcnZlcl06IHNpbmdsZXBsYXllciBbMTI3LjAuMC4xXSBqb2lucyBnYW1lLiIp KSkKKyAgICAgICAgKGxldCBsb29wICgpCisgICAgICAgICAgKG1hdGNoIChyZWFkLWxpbmUgcG9y dCkKKyAgICAgICAgICAgICgoPyBlcnJvcj8gbGluZSkKKyAgICAgICAgICAgICAoZXJyb3IgIm1p bmV0ZXN0IHJhaXNlZCBhbiBlcnJvcjogfmEiIGxpbmUpKQorICAgICAgICAgICAgKCg/IHN0b3A/ KQorICAgICAgICAgICAgIChraWxsIHBpZCBTSUdJTlQpCisgICAgICAgICAgICAgKGNsb3NlLXBv cnQgcG9ydCkKKyAgICAgICAgICAgICAod2FpdHBpZCBwaWQpKQorICAgICAgICAgICAgKCg/IHN0 cmluZz8gbGluZSkKKyAgICAgICAgICAgICAoZGlzcGxheSBsaW5lKQorICAgICAgICAgICAgIChu ZXdsaW5lKQorICAgICAgICAgICAgIChsb29wKSkKKyAgICAgICAgICAgICgoPyBlb2Ytb2JqZWN0 PykKKyAgICAgICAgICAgICAoZXJyb3IgIm1pbmV0ZXN0IGRpZG4ndCBzdGFydCIpKSkpKSkpKQor CisoZGVmaW5lICVzdGFuZGFyZC1waGFzZXMKKyAgKG1vZGlmeS1waGFzZXMgZ251OiVzdGFuZGFy ZC1waGFzZXMKKyAgICAoZGVsZXRlICdib290c3RyYXApCisgICAgKGRlbGV0ZSAnY29uZmlndXJl KQorICAgIChhZGQtYmVmb3JlICdidWlsZCAnbWluaW1pc2UtcG5nIG1pbmltaXNlLXBuZykKKyAg ICAoZGVsZXRlICdidWlsZCkKKyAgICAoZGVsZXRlICdjaGVjaykKKyAgICAocmVwbGFjZSAnaW5z dGFsbCBpbnN0YWxsKQorICAgIDs7IFRoZSAnY2hlY2snIHBoYXNlIHJlcXVpcmVzIHRoZSBtb2Qg dG8gYmUgaW5zdGFsbGVkLAorICAgIDs7IHNvIG1vdmUgdGhlICdjaGVjaycgcGhhc2UgYWZ0ZXIg dGhlICdpbnN0YWxsJyBwaGFzZS4KKyAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdjaGVjayBjaGVj aykpKQorCis7OzsgbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSBlbmRzIGhlcmUKLS0gCjIuMzIu MAoK --=-6thp+vPaCJx0egrTAxGw-- --=-g8VHnW5/m8RecFavaohE Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQvkpBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hzrAP4pOr0s5FrCSmJecUOUWWaZkIRJ 0nWWx385tCHjXpvrhgEA3W6VDonCeLCkYuSEwfZcSvRVnDTuPRNXyLKmm3RI9AA= =1pgf -----END PGP SIGNATURE----- --=-g8VHnW5/m8RecFavaohE-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 09:42:58 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 13:42:58 +0000 Received: from localhost ([127.0.0.1]:46214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBdeE-0005xn-57 for submit@debbugs.gnu.org; Thu, 05 Aug 2021 09:42:58 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:35238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBdeA-0005xb-L8 for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 09:42:56 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GgVDB49DKz3xV2; Thu, 5 Aug 2021 15:42:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628170970; bh=Qatwmi1I+Jbf3g2AzMEGdfTLQuvETTKHjIs8aKJWh+0=; h=Subject:From:To:Date:In-Reply-To:References; b=Pe1AmJD0+gAiu5b6GvMXT0fomRR2bm2GhcRFJBEyP/X6htIAs8R3vl72A8m6ZpiYJ p+orDuDAbo0awr5IoctiZ2TvAlsCPCm+OPSnayIWy6WAByDn786w5b0tPY7UQcJCMM tTo8iSnJey1DNU32jIajNGbSPeHcyA9v1zxHPg1s= Message-ID: <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 15:42:49 +0200 In-Reply-To: <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Am Donnerstag, den 05.08.2021, 15:16 +0200 schrieb Maxime Devos: > [...] > > > +(define* (install #:key inputs #:allow-other-keys #:rest > > > arguments) > > > + (apply (@@ (guix build copy-build-system) install) > > > + #:install-plan (mod-install-plan (apply guess-mod-name > > > arguments)) > > > + arguments)) > > @@ is a code smell, as far as Guix is concerned. Rather import > > copy-build-system with the copy: prefix. > > 'copy-build-system' does not export 'install', so I have to use '@@' > here. > Modifying 'copy-build-system' to export 'install' would presumably > entail > a many rebuilds. I think the thing that's usually done here is fetching through %standard-phases. I.e. (define copy:install (assoc-ref copy-build-system:%standard-phases 'install)) > > > +(define png-file? > > > + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) > > Likewise import (guix build utils) directly. > > Likewise. In that case fine, but make a note to move the variable and procedure over to (guix build utils). > > > +(define (lower-mod name . arguments) > > > + (define lower (build-system-lower gnu-build-system)) > > > + (apply lower > > > + name > > > + #:imported-modules %minetest-build-system-modules > > > + #:modules %default-modules > > > + #:phases '%standard-phases > > > + #:implicit-inputs? #f > > > + ;; Mods are architecture-independent. > > > + #:target #f > > > + ;; Ensure nothing sneaks into the closure. > > > + #:allowed-references '() > > > + (substitute-keyword-arguments arguments > > > + ((#:native-inputs native-inputs '()) > > > + (append native-inputs (standard-minetest- > > > packages)))))) > > This appears a little confusing. On first glance, it does not seem > > to > > allow overriding e.g. #:phases, but on a second look using `apply' > > together with shallowly substituted arguments would enable that. > > I modified the patch to move more things into 'substitute-keyword- > arguments' to reduce confusion. LGTM. > > The > > only thing that's missing imo is that #:implicit-inputs? is not > > honoured for (standard-minetest-packages) -- I think you might want > > to > > rectify that. > > I modified 'lower-mod' to _not_ add 'standard-minetest-packages' to > 'native-inputs' when #:implicit-inputs? is false, though I don't see > why a package definition for a Minetest mod would do that. > > I also found a spellig bug ("to minimisation" -> "to minimise") which > is now fixed. The new lower-mod mostly LGTM, but > + ;; Mods are architecture-independent. > + ((#:target target #f) #f) should be `target' imho. What if the mod e.g. actually builds a shared object and somehow uses Lua's very dynamic FFI to load it? (Even if that's not currently possible, it might be in the future). Setting it to #f by default OTOH sounds very reasonable to me. > btw, I submitted the "MINETEST_MOD_PATH" patch upstream, with your > suggestion for "{std::string(...)}" construction: > ;. Nice, perhaps in 5.5 we will be able to enjoy this out-of-the-box. Greetings From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 10:41:35 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 14:41:36 +0000 Received: from localhost ([127.0.0.1]:48039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBeYu-0007sT-2p for submit@debbugs.gnu.org; Thu, 05 Aug 2021 10:41:35 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:39922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBeYq-0007sH-Ny for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 10:41:30 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id dqhG2500G0mfAB406qhSZW; Thu, 05 Aug 2021 16:41:27 +0200 Message-ID: Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 16:41:09 +0200 In-Reply-To: <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-99xDlAMYebYRHe9CiaQ3" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628174487; bh=AJ9qOhW9EY2XcZxsENbiiURyjhqRMqZIQu247VoPoEk=; h=Subject:From:To:Date:In-Reply-To:References; b=r4wteKYoPfKJCzfPUlc/2PaBk8tfCC+2MZJmW2Rj0pghXxEnXJ6Y1DLcYeyrEdZ4y cwzqb/In7h2avQiw4HnDmdOYyMYKngYCdfmLDMu86kClojeUnV00R/OT+Lu0zKSNzs XOIC6k9OiZfYgycMAz5FSuJ8DGdfqbYd57zO6CT210FYz2I0yyPVGpbFRVxdbvI57F 7QxEBVynIq4VBq8Lvr8x1JX21mz81J8ZQr01hyNkAURSsoffearDwPhMYunhAEtNKY qR1zGy4ezqqE665SwwsWbG9T7ckIq0wWuiC8ceUFpcYlOmhECmTpeZV7+bYeeipiHV 79bp8t4Y6AuGQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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 (-) --=-99xDlAMYebYRHe9CiaQ3 Content-Type: multipart/mixed; boundary="=-6a6B7mvXfmg8Y5NMP0v2" --=-6a6B7mvXfmg8Y5NMP0v2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op do 05-08-2021 om 15:42 [+0200]: > Am Donnerstag, den 05.08.2021, 15:16 +0200 schrieb Maxime Devos: > > [...] > > > > +(define* (install #:key inputs #:allow-other-keys #:rest > > > > arguments) > > > > + (apply (@@ (guix build copy-build-system) install) > > > > + #:install-plan (mod-install-plan (apply guess-mod-name > > > > arguments)) > > > > + arguments)) > > > @@ is a code smell, as far as Guix is concerned. Rather import > > > copy-build-system with the copy: prefix. > >=20 > > 'copy-build-system' does not export 'install', so I have to use '@@' > > here. > > Modifying 'copy-build-system' to export 'install' would presumably > > entail > > a many rebuilds. > I think the thing that's usually done here is fetching through > %standard-phases. > I.e. (define copy:install (assoc-ref copy-build-system:%standard-phases= =20 > 'install)) Done. > > > > +(define png-file? > > > > + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) > > > Likewise import (guix build utils) directly. > >=20 > > Likewise. > In that case fine, but make a note to move the variable and procedure > over to (guix build utils). I made a note. > The new lower-mod mostly LGTM, but > > + ;; Mods are architecture-independent. > > + ((#:target target #f) #f) > should be `target' imho. What if the mod e.g. actually builds a shared > object and somehow uses Lua's very dynamic FFI to load it? (Even if > that's not currently possible, it might be in the future). Setting it > to #f by default OTOH sounds very reasonable to me. 'target' is set by 'make-bag' in (guix build-system), so if the code above is made ((#:target target #f) target) then #:target will always be set to some triplet. Mostly harmless, but a bit a waste of disk space since this leads to (slightly) different derivati= ons depending on the value of "target". I don't think any mods use Lua's FFI, but some mods use 'os.execute', which takes a file name referring to an executable, which might need to be absolutised in Guix, and therefore some mods are architecture-dependent. It dropped the ((#:target target #f) #f). I noticed "#:implicit-cross-inpu= ts?" wasn't set to #f. That has been corrected as well. Greetings, Maxime. --=-6a6B7mvXfmg8Y5NMP0v2 Content-Disposition: inline; filename="build-system-Add-minetest-mod-build-system.patch" Content-Type: text/x-patch; name="build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5M2FhOGUxOTc2ZTc2MmQzMGJlNzBhZWY2ZDVjNTBiMWQwNmNhNGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBi dWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1aXgvYnVp bGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21pbmV0ZXN0 LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVTKTogQWRk IHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA5OSArKysrKysrKysr KysKIGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSB8IDIyNSArKysrKysrKysr KysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KIGNyZWF0ZSBt b2RlIDEwMDY0NCBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1n aXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQ1ZWM5MDkyMTMuLmY0NDM5Y2U5 M2IgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0xNDEsNiAr MTQxLDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dvLnNjbQkJCVwK ICAgZ3VpeC9idWlsZC1zeXN0ZW0vbWVzb24uc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9t aW5pZnkuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20JCVwKICAgZ3Vp eC9idWlsZC1zeXN0ZW0vYXNkZi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2NvcHkuc2Nt CQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9nbGliLW9yLWd0ay5zY20JCVwKQEAgLTIwMyw2ICsy MDQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9nbnUtZGlzdC5zY20JCQlcCiAg IGd1aXgvYnVpbGQvZ3VpbGUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxkL21hdmVu LWJ1aWxkLXN5c3RlbS5zY20JCVwKKyAgZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0u c2NtCQlcCiAgIGd1aXgvYnVpbGQvbm9kZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVp bGQvcGVybC1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvcHl0aG9uLWJ1aWxkLXN5 c3RlbS5zY20JCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmlu ZGV4IGIzYzE2ZTY1MDcuLmQ0NGVjYzIwMDUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysr IGIvZG9jL2d1aXgudGV4aQpAQCAtNzg5NSw2ICs3ODk1LDE0IEBAIGRlY2xhcmF0aW9uLiAgSXRz IGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7KGRlZmF1bHQtbWF2ZW4tcGx1Z2lucyl9IHdoaWNoIGlz CiBhbHNvIGV4cG9ydGVkLgogQGVuZCBkZWZ2cgogCitAZGVmdnIge1NjaGVtZSBWYXJpYWJsZX0g bWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorVGhpcyB2YXJpYWJsZSBpcyBleHBvcnRlZCBieSBA Y29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3QpfS4gIEl0CitpbXBsZW1lbnRzIGEgYnVp bGQgcHJvY2VkdXJlIGZvciBAdXJlZntodHRwczovL3d3dy5taW5ldGVzdC5uZXQsIE1pbmV0ZXN0 fQorbW9kcywgd2hpY2ggY29uc2lzdHMgb2YgY29weWluZyBMdWEgY29kZSwgaW1hZ2VzIGFuZCBv dGhlciByZXNvdXJjZXMgdG8KK3RoZSBsb2NhdGlvbiBNaW5ldGVzdCBzZWFyY2hlcyBmb3IgbW9k cy4gIFRoZSBidWlsZCBzeXN0ZW0gYWxzbyBtaW5pbWlzZXMKK1BORyBpbWFnZXMgYW5kIHZlcmlm aWVzIHRoYXQgTWluZXRlc3QgY2FuIGxvYWQgdGhlIG1vZCB3aXRob3V0IGVycm9ycy4KK0BlbmQg ZGVmdnIKKwogQGRlZnZyIHtTY2hlbWUgVmFyaWFibGV9IG1pbmlmeS1idWlsZC1zeXN0ZW0KIFRo aXMgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgQGNvZGV7KGd1aXggYnVpbGQtc3lzdGVtIG1pbmlm eSl9LiAgSXQKIGltcGxlbWVudHMgYSBtaW5pZmljYXRpb24gcHJvY2VkdXJlIGZvciBzaW1wbGUg SmF2YVNjcmlwdCBwYWNrYWdlcy4KZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0 ZXN0LnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMzNlOTc1NTlkCi0tLSAvZGV2L251bGwKKysrIGIvZ3Vp eC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsOTkgQEAKKzs7OyBHTlUgR3Vp eCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENvcHlyaWdo dCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OworOzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3Qp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gY29weSkKKyAgIzp1c2UtbW9kdWxl IChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0 ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzpleHBvcnQgKG1pbmV0ZXN0LW1v ZC1idWlsZC1zeXN0ZW0pKQorCis7OworOzsgQnVpbGQgcHJvY2VkdXJlIGZvciBtaW5ldGVzdCBt b2RzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24KKzs7IG9mIOKAmGNvcHkt YnVpbGQtc3lzdGVt4oCZLgorOzsKKzs7IENvZGU6CisKKzs7IExhemlseSByZXNvbHZlIHRoZSBi aW5kaW5ncyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCisoZGVmaW5lIChkZWZhdWx0 LW9wdGlwbmcpCisgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2ly Y3VsYXIgZGVwZW5kZW5jeS4KKyAgKG1vZHVsZS1yZWYgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251 IHBhY2thZ2VzIGltYWdlKSkgJ29wdGlwbmcpKQorCisoZGVmaW5lIChkZWZhdWx0LW1pbmV0ZXN0 KQorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZ2FtZXMp KSAnbWluZXRlc3QpKQorCisoZGVmaW5lIChkZWZhdWx0LXh2ZmItcnVuKQorICAobW9kdWxlLXJl ZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgeG9yZykpICd4dmZiLXJ1bikpCisK KyhkZWZpbmUgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxkLXNpZGUg bW9kdWxlcyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIG1pbmV0ZXN0LWJ1 aWxkLXN5c3RlbSkKKyAgICAsQCVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKKworKGRlZmlu ZSAlZGVmYXVsdC1tb2R1bGVzCisgIDs7IE1vZHVsZXMgaW4gc2NvcGUgaW4gdGhlIGJ1aWxkLXNp ZGUgZW52aXJvbm1lbnQuCisgICcoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkKKyAgICAo Z3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQgdXRpbHMp KSkKKworKGRlZmluZSAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMpCisgICJSZXR1cm4gdGhl IGxpc3Qgb2YgKE5BTUUgUEFDS0FHRSBPVVRQVVQpIG9yIChOQU1FIFBBQ0tBR0UpIHR1cGxlcyBv Zgorc3RhbmRhcmQgcGFja2FnZXMgdXNlZCBhcyBpbXBsaWNpdCBpbnB1dHMgb2YgdGhlIE1pbmV0 ZXN0IGJ1aWxkIHN5c3RlbS4iCisgIGAoKCJ4dmZiLXJ1biIgLChkZWZhdWx0LXh2ZmItcnVuKSkK KyAgICAoIm9wdGlwbmciICwoZGVmYXVsdC1vcHRpcG5nKSkKKyAgICAoIm1pbmV0ZXN0IiAsKGRl ZmF1bHQtbWluZXRlc3QpKQorICAgICxAKGZpbHRlciAobGFtYmRhIChpbnB1dCkKKyAgICAgICAg ICAgICAgICAobWVtYmVyIChjYXIgaW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAgICAnKCJs aWJjIiAidGFyIiAiZ3ppcCIgImJ6aXAyIiAieHoiICJsb2NhbGVzIikpKQorICAgICAgICAgICAg ICAoc3RhbmRhcmQtcGFja2FnZXMpKSkpCisKKyhkZWZpbmUqIChsb3dlci1tb2QgbmFtZSAjOmtl eSAoaW1wbGljaXQtaW5wdXRzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAg ICAgICAgICM6cmVzdCBhcmd1bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5c3RlbS1s b3dlciBnbnUtYnVpbGQtc3lzdGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBuYW1lCisg ICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyBhcmd1bWVudHMKKyAgICAgICAg ICAgOzsgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSBhZGRzIGltcGxpY2l0IGlucHV0cyBieSBp dHNlbGYsCisgICAgICAgICAgIDs7IHNvIGRvbid0IGxldCBnbnUtYnVpbGQtc3lzdGVtIGFkZCBp dHMgb3duIGltcGxpY2l0IGlucHV0cworICAgICAgICAgICA7OyBhcyB3ZWxsLgorICAgICAgICAg ICAoKCM6aW1wbGljaXQtaW5wdXRzPyBpbXBsaWNpdC1pbnB1dHM/ICN0KQorICAgICAgICAgICAg I2YpCisgICAgICAgICAgICgoIzppbXBsaWNpdC1jcm9zcy1pbnB1dHM/IGltcGxpY2l0LWNyb3Nz LWlucHV0cz8gI3QpCisgICAgICAgICAgICAjZikKKyAgICAgICAgICAgKCgjOmltcG9ydGVkLW1v ZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcyAlbWluZXRlc3QtYnVpbGQtc3lzdGVtLW1vZHVsZXMpCisg ICAgICAgICAgICBpbXBvcnRlZC1tb2R1bGVzKQorICAgICAgICAgICAoKCM6bW9kdWxlcyBtb2R1 bGVzICVkZWZhdWx0LW1vZHVsZXMpCisgICAgICAgICAgICBtb2R1bGVzKQorICAgICAgICAgICAo KCM6cGhhc2VzIHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKKyAgICAgICAgICAgIHBoYXNlcykK KyAgICAgICAgICAgOzsgRW5zdXJlIG5vdGhpbmcgc25lYWtzIGludG8gdGhlIGNsb3N1cmUuCisg ICAgICAgICAgICgoIzphbGxvd2VkLXJlZmVyZW5jZXMgYWxsb3dlZC1yZWZlcmVuY2VzICcoKSkK KyAgICAgICAgICAgIGFsbG93ZWQtcmVmZXJlbmNlcykKKyAgICAgICAgICAgOzsgQWRkIHRoZSBp bXBsaWNpdCBpbnB1dHMuCisgICAgICAgICAgICgoIzpuYXRpdmUtaW5wdXRzIG5hdGl2ZS1pbnB1 dHMgJygpKQorICAgICAgICAgICAgKGlmIGltcGxpY2l0LWlucHV0cz8KKyAgICAgICAgICAgICAg ICAoYXBwZW5kIG5hdGl2ZS1pbnB1dHMgKHN0YW5kYXJkLW1pbmV0ZXN0LXBhY2thZ2VzKSkKKyAg ICAgICAgICAgICAgICBuYXRpdmUtaW5wdXRzKSkpKSkKKworKGRlZmluZSBtaW5ldGVzdC1tb2Qt YnVpbGQtc3lzdGVtCisgIChidWlsZC1zeXN0ZW0KKyAgICAobmFtZSAnbWluZXRlc3QtbW9kKQor ICAgIChkZXNjcmlwdGlvbiAiVGhlIGJ1aWxkIHN5c3RlbSBmb3IgbWluZXRlc3QgbW9kcyIpCisg ICAgKGxvd2VyIGxvd2VyLW1vZCkpKQorCis7OzsgbWluZXRlc3Quc2NtIGVuZHMgaGVyZQpkaWZm IC0tZ2l0IGEvZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWls ZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmIwNTFkOWMyODgKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL21pbmV0 ZXN0LWJ1aWxkLXN5c3RlbS5zY20KQEAgLTAsMCArMSwyMjUgQEAKKzs7OyBDb3B5cmlnaHQgwqkg MjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7OyBUaGlz IGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxv bmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWluZXRlc3QtYnVpbGQtc3lzdGVt KQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAoc3Jm aSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOnVzZS1tb2R1bGUg KGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJkZWxpbSkKKyAgIzp1c2UtbW9k dWxlIChpY2UtOSByZWNlaXZlKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQorICAjOnVz ZS1tb2R1bGUgKChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGdudTopCisg ICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgY29weS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGNv cHk6KQorICAjOmV4cG9ydCAoJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgICAgbW9kLWluc3Rh bGwtcGxhbiBtaW5pbWlzZS1wbmcgcmVhZC1tb2QtbmFtZSBjaGVjaykpCisKKzs7IChndWl4IGJ1 aWxkIGNvcHktYnVpbGQtc3lzdGVtKSBkb2VzIG5vdCBleHBvcnQgJ2luc3RhbGwnLgorKGRlZmlu ZSBjb3B5Omluc3RhbGwKKyAgKGFzc29jLXJlZiBjb3B5OiVzdGFuZGFyZC1waGFzZXMgJ2luc3Rh bGwpKQorCisoZGVmaW5lIChtb2QtaW5zdGFsbC1wbGFuIG1vZC1uYW1lKQorICBgKCgiLiIgLChz dHJpbmctYXBwZW5kICJzaGFyZS9taW5ldGVzdC9tb2RzLyIgbW9kLW5hbWUpCisgICAgIDs7IE9u bHkgaW5zdGFsbCBmaWxlcyB0aGF0IHdpbGwgYWN0dWFsbHkgYmUgdXNlZCBhdCBydW4gdGltZS4K KyAgICAgOzsgVGhpcyBjYW4gc2F2ZSBhIGxpdHRsZSBkaXNrIHNwYWNlLgorICAgICA7OworICAg ICA7OyBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC9taW5ldGVzdC9ibG9iL21hc3Rl ci9kb2MvbHVhX2FwaS50eHQ+CisgICAgIDs7IGZvciBhbiBpbmNvbXBsZSBsaXN0IG9mIGZpbGVz IHRoYXQgY2FuIGJlIGZvdW5kIGluIG1vZHMuCisgICAgICM6aW5jbHVkZSAoIm1vZC5jb25mIiAi bW9kcGFjay5jb25mIiAic2V0dGluZ3R5cGVzLnR4dCIgImRlcGVuZHMudHh0IgorICAgICAgICAg ICAgICAgICJkZXNjcmlwdGlvbi50eHQiKQorICAgICAjOmluY2x1ZGUtcmVnZXhwICgiLmx1YSQi ICIucG5nJCIgIi5vZ2ckIiAiLm9iaiQiICIuYjNkJCIgIi50ciQiCisgICAgICAgICAgICAgICAg ICAgICAgICIubXRzJCIpKSkpCisKKyhkZWZpbmUqIChndWVzcy1tb2QtbmFtZSAjOmtleSBpbnB1 dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiVHJ5IHRvIGRldGVybWluZSB0aGUgbmFtZSBvZiB0 aGUgbW9kIG9yIG1vZHBhY2sgdGhhdCBpcyBiZWluZyBidWlsdC4KK0lmIGl0IGlzIHVua25vd24s IG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIgorICA7OyBNaW5ldGVzdCBkb2Vzbid0IGNhcmUgYWJv dXQgdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiAic2hhcmUvbWluZXRlc3QvbW9kcyIKKyAgOzsgc28g dGhlcmUgaXMgbm8gdGVjaG5pY2FsIHByb2JsZW0gaWYgdGhlIGRpcmVjdG9yeSBuYW1lcyBkb24n dCBtYXRjaAorICA7OyB0aGUgbW9kIG5hbWVzLiAgVGhlIGRpcmVjdG9yeSBjYW4gYXBwZWFyIGlu IHRoZSBHVUkgaWYgdGhlIG1vZHBhY2sKKyAgOzsgZG9lc24ndCBoYXZlIHRoZSAnbmFtZScgc2V0 IHRob3VnaCwgc28gdHJ5IHRvIG1ha2UgdGhlIGd1ZXNzLgorICAoZGVmaW5lIChndWVzcykKKyAg ICAobGV0KiAoKHNvdXJjZSAoYXNzb2MtcmVmIGlucHV0cyAic291cmNlIikpCisgICAgICAgICAg IChmaWxlLW5hbWUgKGJhc2VuYW1lIHNvdXJjZSkpCisgICAgICAgICAgIDs7IFRoZSAibWluZXRl c3QtIiBwcmVmaXggaXMgbm90IGluZm9ybWF0aXZlLCBzbyBzdHJpcCBpdC4KKyAgICAgICAgICAg KGZpbGUtbmFtZSAoaWYgKHN0cmluZy1wcmVmaXg/ICJtaW5ldGVzdC0iIGZpbGUtbmFtZSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlLW5hbWUgKHN0cmluZy1sZW5n dGggIm1pbmV0ZXN0LSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5hbWUpKQor ICAgICAgICAgICA7OyBTdHJpcCAiLWNoZWNrb3V0IiBzdWZmaXhlcyBvZiBnaXQgY2hlY2tvdXRz LgorICAgICAgICAgICAoZmlsZS1uYW1lIChpZiAoc3RyaW5nLXN1ZmZpeD8gIi1jaGVja291dCIg ZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGUtbmFt ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoLSAoc3RyaW5nLWxlbmd0aCBmaWxlLW5hbWUpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGggIi1taW5l dGVzdCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS1uYW1lKSkKKyAgICAgICAg ICAgKGZpcnN0LWRvdCAoc3RyaW5nLWluZGV4IGZpbGUtbmFtZSAjXC4pKQorICAgICAgICAgICA7 OyBJZiB0aGUgc291cmNlIGNvZGUgaXMgaW4gYW4gYXJjaGl2ZSAoLnRhci5neiwgLnppcCwgLi4u KSwKKyAgICAgICAgICAgOzsgc3RyaXAgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgICAgKGZpbGUt bmFtZSAoaWYgZmlyc3QtZG90CisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcg ZmlsZS1uYW1lIDAgZmlyc3QtZG90KQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5h bWUpKSkKKyAgICAgIChmb3JtYXQgKGN1cnJlbnQtZXJyb3ItcG9ydCkKKyAgICAgICAgICAgICAg Indhcm5pbmc6IHRoZSBtb2RwYWNrIH5hIGRpZCBub3Qgc2V0ICduYW1lJyBpbiAnbW9kcGFjay5j b25mJ34lIgorICAgICAgICAgICAgICBmaWxlLW5hbWUpCisgICAgICBmaWxlLW5hbWUpKQorICAo Y29uZCAoKGZpbGUtZXhpc3RzPyAibW9kLmNvbmYiKQorICAgICAgICAgKHJlYWQtbW9kLW5hbWUg Im1vZC5jb25mIikpCisgICAgICAgICgoZmlsZS1leGlzdHM/ICJtb2RwYWNrLmNvbmYiKQorICAg ICAgICAgKHJlYWQtbW9kLW5hbWUgIm1vZHBhY2suY29uZiIgZ3Vlc3MpKQorICAgICAgICAoI3Qg KGd1ZXNzKSkpKQorCisoZGVmaW5lKiAoaW5zdGFsbCAjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhl ci1rZXlzICM6cmVzdCBhcmd1bWVudHMpCisgIChhcHBseSBjb3B5Omluc3RhbGwKKyAgICAgICAg ICM6aW5zdGFsbC1wbGFuIChtb2QtaW5zdGFsbC1wbGFuIChhcHBseSBndWVzcy1tb2QtbmFtZSBh cmd1bWVudHMpKQorICAgICAgICAgYXJndW1lbnRzKSkKKworKGRlZmluZSAlcG5nLW1hZ2ljLWJ5 dGVzCisgIDs7IE1hZ2ljIGJ5dGVzIG9mIFBORyBpbWFnZXMsIHNlZSDigJg1LjIgUE5HIHNpZ25h dHVyZXPigJkgaW4KKyAgOzsg4oCYUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5HKSBTcGVj aWZpY2F0aW9uIChTZWNvbmQgRWRpdGlvbinigJkKKyAgOzsgb24gPGh0dHBzOi8vd3d3LnczLm9y Zy9UUi9QTkcvPi4KKyAgI3Z1OCgxMzcgODAgNzggNzEgMTMgMTAgMjYgMTApKQorCisoZGVmaW5l IHBuZy1maWxlPworICAoKEBAIChndWl4IGJ1aWxkIHV0aWxzKSBmaWxlLWhlYWRlci1tYXRjaCkg JXBuZy1tYWdpYy1ieXRlcykpCisKKyhkZWZpbmUqIChtaW5pbWlzZS1wbmcgIzprZXkgaW5wdXRz IG5hdGl2ZS1pbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiTWluaW1pc2UgUE5HIGltYWdl cyBmb3VuZCBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnkuIgorICAoZGVmaW5lIG9wdGlwbmcgKHdo aWNoICJvcHRpcG5nIikpCisgIChkZWZpbmUgKG9wdGltaXNlIGltYWdlKQorICAgIChmb3JtYXQg I3QgIk9wdGltaXNpbmcgfmF+JSIgaW1hZ2UpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSAoZGly bmFtZSBpbWFnZSkpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSBpbWFnZSkKKyAgICAoZGVmaW5l IG9sZC1zaXplIChzdGF0OnNpemUgKHN0YXQgaW1hZ2UpKSkKKyAgICA7OyBUaGUgbW9kICJ0ZWNo bmljIiBoYXMgYSBmaWxlICJ0ZWNobmljX211c2ljX3BsYXllcl90b3AucG5nIiB0aGF0CisgICAg OzsgYWN0dWFsbHkgaXMgYSBKUEVHIGZpbGUsIHNlZQorICAgIDs7IDxodHRwczovL2dpdGh1Yi5j b20vbWluZXRlc3QtbW9kcy90ZWNobmljL2lzc3Vlcy81OTA+LgorICAgIChpZiAocG5nLWZpbGU/ IGltYWdlKQorICAgICAgICAoaW52b2tlIG9wdGlwbmcgIi1vNCIgIi1xdWlldCIgaW1hZ2UpCisg ICAgICAgIChmb3JtYXQgI3QgIndhcm5pbmc6IHNraXBwaW5nIH5hIGJlY2F1c2UgaXQncyBub3Qg YWN0dWFsbHkgYSBQTkcgaW1hZ2V+JSIKKyAgICAgICAgICAgICAgICBpbWFnZSkpCisgICAgKGRl ZmluZSBuZXctc2l6ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAgKHZhbHVlcyBvbGQt c2l6ZSBuZXctc2l6ZSkpCisgIChkZWZpbmUgZmlsZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIp KQorICAobGV0IGxvb3AgKCh0b3RhbC1vbGQtc2l6ZSAwKQorICAgICAgICAgICAgICh0b3RhbC1u ZXctc2l6ZSAwKQorICAgICAgICAgICAgIChpbWFnZXMgKGZpbmQtZmlsZXMgIi4iICIucG5nJCIp KSkKKyAgICAoY29uZCAoKHBhaXI/IGltYWdlcykKKyAgICAgICAgICAgKHJlY2VpdmUgKG9sZC1z aXplIG5ldy1zaXplKQorICAgICAgICAgICAgICAgKG9wdGltaXNlIChjYXIgaW1hZ2VzKSkKKyAg ICAgICAgICAgICAobG9vcCAoKyB0b3RhbC1vbGQtc2l6ZSBvbGQtc2l6ZSkKKyAgICAgICAgICAg ICAgICAgICAoKyB0b3RhbC1uZXctc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAo Y2RyIGltYWdlcykpKSkKKyAgICAgICAgICAoKD0gdG90YWwtb2xkLXNpemUgMCkKKyAgICAgICAg ICAgKGZvcm1hdCAjdCAiVGhlcmUgd2VyZSBubyBQTkcgaW1hZ2VzIHRvIG1pbmltaXNlLiIpKQor ICAgICAgICAgICgjdAorICAgICAgICAgICAoZm9ybWF0ICN0ICJNaW5pbWlzYXRpb24gcmVkdWNl ZCBzaXplIG9mIGltYWdlcyBieSB+LDJmJSAofiwyZiBNaUIgdG8gfiwyZiBNaUIpfiUiCisgICAg ICAgICAgICAgICAgICAgKCogMTAwLjAgKC0gMSAoLyB0b3RhbC1uZXctc2l6ZSB0b3RhbC1vbGQt c2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICgvIHRvdGFsLW9sZC1zaXplIChleHB0IDEwMjQg MikpCisgICAgICAgICAgICAgICAgICAgKC8gdG90YWwtbmV3LXNpemUgKGV4cHQgMTAyNCAyKSkp KSkpKQorCisoZGVmaW5lIG5hbWUtcmVnZXhwIChtYWtlLXJlZ2V4cCAiXm5hbWVbIF0qPSguKykk IikpCisKKyhkZWZpbmUqIChyZWFkLW1vZC1uYW1lIG1vZC5jb25mICM6b3B0aW9uYWwgbm90LWZv dW5kKQorICAiUmVhZCB0aGUgbmFtZSBvZiBhIG1vZCBmcm9tIE1PRC5DT05GLiAgSWYgTU9ELkNP TkYKK2RvZXMgbm90IGhhdmUgYSBuYW1lIGZpZWxkIGFuZCBOT1QtRk9VTkQgaXMgI2ZhbHNlLCBy YWlzZSBhbgorZXJyb3IuICBJZiBOT1QtRk9VTkQgaXMgVFJVRSwgY2FsbCBOT1QtRk9VTkQgaW5z dGVhZC4iCisgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSBtb2QuY29uZgorICAgIChsYW1iZGEgKHBv cnQpCisgICAgICAobGV0IGxvb3AgKCkKKyAgICAgICAgKGRlZmluZSBsaW5lIChyZWFkLWxpbmUg cG9ydCkpCisgICAgICAgIChpZiAoZW9mLW9iamVjdD8gbGluZSkKKyAgICAgICAgICAgIChpZiBu b3QtZm91bmQKKyAgICAgICAgICAgICAgICAobm90LWZvdW5kKQorICAgICAgICAgICAgICAgIChl cnJvciAifmEgZG9lcyBub3QgaGF2ZSBhICduYW1lJyBmaWVsZCIgbW9kLmNvbmYpKQorICAgICAg ICAgICAgKGxldCAoKG1hdGNoIChyZWdleHAtZXhlYyBuYW1lLXJlZ2V4cCBsaW5lKSkpCisgICAg ICAgICAgICAgIChpZiAocmVnZXhwLW1hdGNoPyBtYXRjaCkKKyAgICAgICAgICAgICAgICAgIChz dHJpbmctdHJpbS1ib3RoIChtYXRjaDpzdWJzdHJpbmcgbWF0Y2ggMSkgI1wgKQorICAgICAgICAg ICAgICAgICAgKGxvb3ApKSkpKSkpKQorCisoZGVmaW5lKiAoY2hlY2sgIzprZXkgb3V0cHV0cyB0 ZXN0cz8gIzphbGxvdy1vdGhlci1rZXlzKQorICAiVGVzdCB3aGV0aGVyIHRoZSBtb2QgbG9hZHMu ICBUaGUgbW9kIG11c3QgZmlyc3QgYmUgaW5zdGFsbGVkIGZpcnN0LiIKKyAgKGRlZmluZSAoYWxs LW1vZC1uYW1lcyBkaXJlY3RvcmllcykKKyAgICAoYXBwZW5kLW1hcAorICAgICAobGFtYmRhIChk aXJlY3RvcnkpCisgICAgICAgKG1hcCByZWFkLW1vZC1uYW1lIChmaW5kLWZpbGVzIGRpcmVjdG9y eSAibW9kLmNvbmYiKSkpCisgICAgIGRpcmVjdG9yaWVzKSkKKyAgKHdoZW4gdGVzdHM/CisgICAg KG1rZGlyICJndWl4X3Rlc3R3b3JsZCIpCisgICAgOzsgQWRkIHRoZSBtb2QgdG8gdGhlIG1vZCBz ZWFyY2ggcGF0aCwgc3VjaCB0aGF0IE1pbmV0ZXN0IGNhbiBmaW5kIGl0LgorICAgIChzZXRlbnYg Ik1JTkVURVNUX01PRF9QQVRIIgorICAgICAgICAgICAgKGxpc3QtPnNlYXJjaC1wYXRoLWFzLXN0 cmluZworICAgICAgICAgICAgIChjb25zCisgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kIChh c3NvYy1yZWYgb3V0cHV0cyAib3V0IikgIi9zaGFyZS9taW5ldGVzdC9tb2RzIikKKyAgICAgICAg ICAgICAgKHNlYXJjaC1wYXRoLWFzLXN0cmluZy0+bGlzdAorICAgICAgICAgICAgICAgKG9yIChn ZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIikgIiIpKSkKKyAgICAgICAgICAgICAiOiIpKQorICAg ICh3aXRoLWRpcmVjdG9yeS1leGN1cnNpb24gImd1aXhfdGVzdHdvcmxkIgorICAgICAgKHNldGVu diAiSE9NRSIgKGdldGN3ZCkpCisgICAgICA7OyBDcmVhdGUgYSB3b3JsZCBpbiB3aGljaCBhbGwg bW9kcyBhcmUgbG9hZGVkLgorICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSAid29ybGQubXQi CisgICAgICAgIChsYW1iZGEgKHBvcnQpCisgICAgICAgICAgKGRpc3BsYXkKKyAgICAgICAgICAg ImdhbWVpZCA9IG1pbmV0ZXN0Cit3b3JsZF9uYW1lID0gZ3VpeF90ZXN0d29ybGQKK2JhY2tlbmQg PSBzcWxpdGUzCitwbGF5ZXJfYmFja2VuZCA9IHNxbGl0ZTMKK2F1dGhfYmFja2VuZCA9IHNxbGl0 ZTMKKyIgcG9ydCkKKyAgICAgICAgICAoZm9yLWVhY2gKKyAgICAgICAgICAgKGxhbWJkYSAobW9k KQorICAgICAgICAgICAgIChmb3JtYXQgcG9ydCAibG9hZF9tb2RffmEgPSB0cnVlfiUiIG1vZCkp CisgICAgICAgICAgIChhbGwtbW9kLW5hbWVzIChzZWFyY2gtcGF0aC1hcy1zdHJpbmctPmxpc3QK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIikp KSkpKQorICAgICAgKHJlY2VpdmUgKHBvcnQgcGlkKQorICAgICAgICAgICgoQEAgKGd1aXggYnVp bGQgdXRpbHMpIG9wZW4tcGlwZS13aXRoLXN0ZGVycikKKyAgICAgICAgICAgInh2ZmItcnVuIiAi LS0iICJtaW5ldGVzdCIgIi0taW5mbyIgIi0td29ybGQiICIuIiAiLS1nbyIpCisgICAgICAgIChm b3JtYXQgI3QgIlN0YXJ0ZWQgTWluZXRlc3Qgd2l0aCBhbGwgbW9kcyBsb2FkZWQgZm9yIHRlc3Rp bmd+JSIpCisgICAgICAgIDs7IFNjYW4gdGhlIG91dHB1dCBmb3IgZXJyb3IgbWVzc2FnZXMuCisg ICAgICAgIDs7IFdoZW4gdGhlIHBsYXllciBoYXMgam9pbmVkIHRoZSBzZXJ2ZXIsIHN0b3AgbWlu ZXRlc3QuCisgICAgICAgIChkZWZpbmUgKGVycm9yPyBsaW5lKQorICAgICAgICAgIChhbmQgKHN0 cmluZz8gbGluZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMgbGluZSAiOiBFUlJP UlsiKSkpCisgICAgICAgIChkZWZpbmUgKHN0b3A/IGxpbmUpCisgICAgICAgICAgKGFuZCAoc3Ry aW5nPyBsaW5lKQorICAgICAgICAgICAgICAgKHN0cmluZy1jb250YWlucyBsaW5lICJBQ1RJT05b U2VydmVyXTogc2luZ2xlcGxheWVyIFsxMjcuMC4wLjFdIGpvaW5zIGdhbWUuIikpKQorICAgICAg ICAobGV0IGxvb3AgKCkKKyAgICAgICAgICAobWF0Y2ggKHJlYWQtbGluZSBwb3J0KQorICAgICAg ICAgICAgKCg/IGVycm9yPyBsaW5lKQorICAgICAgICAgICAgIChlcnJvciAibWluZXRlc3QgcmFp c2VkIGFuIGVycm9yOiB+YSIgbGluZSkpCisgICAgICAgICAgICAoKD8gc3RvcD8pCisgICAgICAg ICAgICAgKGtpbGwgcGlkIFNJR0lOVCkKKyAgICAgICAgICAgICAoY2xvc2UtcG9ydCBwb3J0KQor ICAgICAgICAgICAgICh3YWl0cGlkIHBpZCkpCisgICAgICAgICAgICAoKD8gc3RyaW5nPyBsaW5l KQorICAgICAgICAgICAgIChkaXNwbGF5IGxpbmUpCisgICAgICAgICAgICAgKG5ld2xpbmUpCisg ICAgICAgICAgICAgKGxvb3ApKQorICAgICAgICAgICAgKCg/IGVvZi1vYmplY3Q/KQorICAgICAg ICAgICAgIChlcnJvciAibWluZXRlc3QgZGlkbid0IHN0YXJ0IikpKSkpKSkpCisKKyhkZWZpbmUg JXN0YW5kYXJkLXBoYXNlcworICAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwor ICAgIChkZWxldGUgJ2Jvb3RzdHJhcCkKKyAgICAoZGVsZXRlICdjb25maWd1cmUpCisgICAgKGFk ZC1iZWZvcmUgJ2J1aWxkICdtaW5pbWlzZS1wbmcgbWluaW1pc2UtcG5nKQorICAgIChkZWxldGUg J2J1aWxkKQorICAgIChkZWxldGUgJ2NoZWNrKQorICAgIChyZXBsYWNlICdpbnN0YWxsIGluc3Rh bGwpCisgICAgOzsgVGhlICdjaGVjaycgcGhhc2UgcmVxdWlyZXMgdGhlIG1vZCB0byBiZSBpbnN0 YWxsZWQsCisgICAgOzsgc28gbW92ZSB0aGUgJ2NoZWNrJyBwaGFzZSBhZnRlciB0aGUgJ2luc3Rh bGwnIHBoYXNlLgorICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ2NoZWNrIGNoZWNrKSkpCisKKzs7 OyBtaW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVyZQotLSAKMi4zMi4wCgo= --=-6a6B7mvXfmg8Y5NMP0v2-- --=-99xDlAMYebYRHe9CiaQ3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQv4hRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7qirAP4y0BJ+gayUfa13V0P/UyMnd2LZ vpUoYbOnpIJEPrqFjAD/Q57U2qHY19AcYGpQxshSM5UxkPO1G9GA5qdifNDEoQA= =I2NP -----END PGP SIGNATURE----- --=-99xDlAMYebYRHe9CiaQ3-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 11:00:47 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 15:00:47 +0000 Received: from localhost ([127.0.0.1]:48060 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBerW-0008OE-BZ for submit@debbugs.gnu.org; Thu, 05 Aug 2021 11:00:47 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:37955) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBclc-0004e1-BA for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 08:46:33 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id D66595C00AE for <49828@debbugs.gnu.org>; Thu, 5 Aug 2021 08:46:26 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 05 Aug 2021 08:46:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rubenwardy.com; h=date:subject:message-id:from:to:mime-version:content-type :content-transfer-encoding; s=fm3; bh=28xqhFKiSZoSIHpfpUmSYHCuFZ 5HR4h7DnI3n9h19q8=; b=uEqOsXn3MswZ3RIKP1RYofPN3aU7IT2YfRtEPIzZdx QDBF9GhB0W+w7n6BE9N/T6iZoh4p2tReC9p8TW1q89ZeWSdLOloQ0Yge8qdwIePr AlyEVK/Tz+NGuEgTyT0sdiSjC5GLx2PHLiIohrtY9M+Y3ADtAcVMjUzUdo9WcUfC u6orcmxjA4uZH1uIBrjQc9YPGAtlRQtNXM6k0NLkXf2gjIsj1V2we30NSb9OS7Oo jCVKvBJwZfXVJ4zUyDcReEWYL5lT2us+mUVpK3Ukw6YL6ZYRDLJVfdygmilguhmK 1ens8aiZMBPhi4E9GDfQrYI0ix1puDxSw8YviEMyG3IQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=28xqhF KiSZoSIHpfpUmSYHCuFZ5HR4h7DnI3n9h19q8=; b=oP0q+Hp0iC9UTY3yLtUwya guDMsMs7xinN3yo2R5pDa9YqNaBGa5IQ1LdMixn70JEi8yGafg2Tj6zE6l55Hu+m D/P3hjl0SjuRbjMVH1RiSkvBK4ItglkrbwySBuzZTS1lTKc4jc+OOTVYPDghSieH lyB71ccwYCqsTXzxlCdqupfLayBltlUF+25ulDIQPWSMsIKWehyYAbQn6BgRVXl0 Nqiti69v/qfCbO69KG6Ls3U+CMbgeU39XMadRtMIxqD4sDlReFa9bXd1QJGDCc1E Ab/rSo0Bho3JyOselL9yQOAuBN1NlsvXQkXV9brXxn4GrBF0H5G4OZwTtj+hAyBg == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrieelgdehgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffukffhvfgkrfgigggtgfeshhgsre dttddtjeenucfhrhhomheptehnughrvgifucghrghrugcuoehrfiesrhhusggvnhifrghr ugihrdgtohhmqeenucggtffrrghtthgvrhhnpeegieekhfelhfdvgefgveeuledutdfhtd dvteejuedtuddvkeejfeefheeulefgffenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehrfiesrhhusggvnhifrghrugihrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for <49828@debbugs.gnu.org>; Thu, 5 Aug 2021 08:46:25 -0400 (EDT) Date: Thu, 05 Aug 2021 13:46:16 +0100 Subject: [PATCH 00/20] Add minetest mods Message-ID: <68444560-b887-4c0c-af36-7f8cc609eda9@email.android.com> X-Android-Message-ID: <68444560-b887-4c0c-af36-7f8cc609eda9@email.android.com> From: Andrew Ward To: 49828@debbugs.gnu.org Importance: Normal X-Priority: 3 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49828 X-Mailman-Approved-At: Thu, 05 Aug 2021 11:00:46 -0400 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 (-) PGRpdiBkaXI9J2F1dG8nPkhpLCBJJ20gYSBNaW5ldGVzdCBjb3JlIGRldiBhbmQgdGhlIGNyZWF0 b3Igb2YgQ29udGVudERCICh0aGUgc2VydmljZSB0aGUgcG93ZXJzIHRoZSBidWlsdC1pbiBtb2Qv Z2FtZS9ldGMgbWFuYWdlciBpbiBNaW5ldGVzdCkuPGRpdiBkaXI9ImF1dG8iPjxicj48L2Rpdj48 ZGl2IGRpcj0iYXV0byI+SXQncyB2ZXJ5IGFubm95aW5nIHdoZW4gZGlzdHJvcyBpbmNsdWRlIG1v ZHMgYnV0IHRoZW4gbmV2ZXIgdXBkYXRlIHRoZW0uIEl0IGNhdXNlcyBjb25mdXNpb24gd2l0aCB1 c2VycywgYXMgbW9kcyBjaGFuZ2Ugb3ZlciB0aW1lIGFuZCB0aGVyZSBjYW4gYmUgYnJlYWthZ2Vz LiBTbywgSSdkIGxpa2UgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2UgcGFja2FnZXMgYXJlIGtlcHQg aW4gc3luYyB3aXRoIENvbnRlbnREQi48L2Rpdj48ZGl2IGRpcj0iYXV0byI+PGJyPjwvZGl2Pjxk aXYgZGlyPSJhdXRvIj5Db250ZW50REIgYWxzbyBwcm92aWRlcyB0d28gb3RoZXIgZmVhdHVyZXM6 IGl0IG9ubHkgcHJvdmlkZXMgeW91IHdpdGggdmVyc2lvbnMgb2YgbW9kcy9nYW1lcyB0aGF0IHN1 cHBvcnQgeW91ciBNaW5ldGVzdCB2ZXJzaW9uLiBJdCBhbHNvIGhhbmRsZXMgZGVwZW5kZW5jaWVz LCBzbyBJIGhvcGUgdGhpcyBpcyBzZXQgdXAgY29ycmVjdGx5LjwvZGl2PjxkaXYgZGlyPSJhdXRv Ij48YnI+PC9kaXY+PGRpdiBkaXI9ImF1dG8iPklmIHlvdSBhcmUgZGlzYWJsaW5nIENvbnRlbnRE QiBjb21wbGV0ZWx5LCB5b3Ugc2hvdWxkIGhhdmUgdGhlIHZhc3QgbWFqb3JpdHkgb2YgbW9kcywg Z2FtZXMsIGFuZCB0ZXh0dXJlIHBhY2tzIGF2YWlsYWJsZSAtIGVzcGVjaWFsbHkgYWxsIHRoZSBo YXJkIGRlcGVuZGVuY2llcyBuZWVkZWQsIGFzIG5vdCBoYXZpbmcgdGhlc2Ugd2lsbCBjYXVzZSBs b2FkIGlzc3Vlcy4gTWluZXRlc3QgaXMgYWxsIGFib3V0IGN1c3RvbWlzYXRpb24uPC9kaXY+PGRp diBkaXI9ImF1dG8iPjxicj48L2Rpdj48ZGl2IGRpcj0iYXV0byI+SSByZWNvbW1lbmQgYWRkaW5n IGEgYnV0dG9uIGFuZCBjb3JlLm9wZW5fdXJsIGNhbGwgdG8gdGhlIGd1aXggZGlhbG9nIHRoYXQg cmVwbGFjZXMgdGhlIGNvbnRlbnQgc3RvcmUuIEl0IHNob3VsZCBsaW5rIHRvIGEgcGFnZSBkZXNj cmliaW5nIGhvdyB0byBpbnN0YWxsIG1vZHMgdXNpbmcgZ3VpeCwgYW5kIGhvdyB0byBhbGxvdyB1 c2Ugb2YgQ29udGVudERCIGFnYWluIGlmIHRoZSB1c2VyIGRlc2lyZXM8L2Rpdj48ZGl2IGRpcj0i YXV0byI+PGJyPjwvZGl2PjxkaXYgZGlyPSJhdXRvIj5Bbnl3YXksIHNvcnJ5IGZvciBiZWluZyBj cml0aWNhbCAtIGl0J3MgZ3JlYXQgdG8gc2VlIG1vcmUgZGlzdHJvIHN1cHBvcnQgYW5kIGludGVn cmF0aW9uPC9kaXY+PC9kaXY+ From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 11:15:36 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 15:15:36 +0000 Received: from localhost ([127.0.0.1]:48094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBf5s-0000K2-IC for submit@debbugs.gnu.org; Thu, 05 Aug 2021 11:15:36 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:41718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBf5p-0000Jo-R6 for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 11:15:35 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GgXH60Qs2z1LB21; Thu, 5 Aug 2021 17:15:29 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GgXH60Qs2z1LB21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628176530; bh=/yhYM48BqQNa+eQDsxybgRGiW5igL8enWHZp1o1XmOU=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Rkvst1tdzZ2eDBg+E7QFD1RRNyLcysBp5U91Xi1cunKhp6XAqmhhVWabUDtCw1Yx6 KcxSgbQKskzU2Xj79uJ4j0z7ttgUA1lqLccYV5i8rOQ4/+4fS8Pl8aRV1gSSF2y7pQ fXghdLZbpYm4mWQXxg9sUU0WtUFg+r2v2v7BYd18= Message-ID: <96a038c941308c8ec427d4b37bb333b32a7d0204.camel@student.tugraz.at> Subject: Re: [PATCH 05/20] build-system: minetest: Don't retain references to "bash-minimal". From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 17:15:29 +0200 In-Reply-To: References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-5-maximedevos@telenet.be> <60c5062a7debff22cee27198c2548605fd7441e0.camel@student.tugraz.at> <265c85f914757066aee6b6933ba58bf1abd2bc84.camel@telenet.be> <8d13a1057f368f47eef8da538c554a379892cacc.camel@student.tugraz.at> <7680df67d8be80c1d55771407256c28b76e0d836.camel@telenet.be> <2a49c566e1ecc280db79bcda1e893547216dd83a.camel@student.tugraz.at> <8a8699af5e530cff4bab22aad4e5fa1862ebffc7.camel@telenet.be> <1a63353207ea0cbccaaf3138d42148fe5a98da62.camel@student.tugraz.at> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Am Donnerstag, den 05.08.2021, 16:41 +0200 schrieb Maxime Devos: > Leo Prikler schreef op do 05-08-2021 om 15:42 [+0200]: > > Am Donnerstag, den 05.08.2021, 15:16 +0200 schrieb Maxime Devos: > > > [...] > > > > > +(define* (install #:key inputs #:allow-other-keys #:rest > > > > > arguments) > > > > > + (apply (@@ (guix build copy-build-system) install) > > > > > + #:install-plan (mod-install-plan (apply guess-mod- > > > > > name > > > > > arguments)) > > > > > + arguments)) > > > > @@ is a code smell, as far as Guix is concerned. Rather import > > > > copy-build-system with the copy: prefix. > > > > > > 'copy-build-system' does not export 'install', so I have to use > > > '@@' > > > here. > > > Modifying 'copy-build-system' to export 'install' would > > > presumably > > > entail > > > a many rebuilds. > > I think the thing that's usually done here is fetching through > > %standard-phases. > > I.e. (define copy:install (assoc-ref copy-build-system:%standard- > > phases > > 'install)) > > Done. LGTM. > > > > > +(define png-file? > > > > > + ((@@ (guix build utils) file-header-match) %png-magic- > > > > > bytes)) > > > > Likewise import (guix build utils) directly. > > > > > > Likewise. > > In that case fine, but make a note to move the variable and > > procedure > > over to (guix build utils). > > I made a note. I'm not seeing it, did you send the right file? > > The new lower-mod mostly LGTM, but > > > + ;; Mods are architecture-independent. > > > + ((#:target target #f) #f) > > should be `target' imho. What if the mod e.g. actually builds a > > shared > > object and somehow uses Lua's very dynamic FFI to load it? (Even > > if > > that's not currently possible, it might be in the future). Setting > > it > > to #f by default OTOH sounds very reasonable to me. > > 'target' is set by 'make-bag' in (guix build-system), so if the code > above is made > > ((#:target target #f) target) > > then #:target will always be set to some triplet. Mostly harmless, > but a bit a waste of disk space since this leads to (slightly) > different derivations depending on the value of "target". I think deduplication should take care of that, but yeah. > I don't think any mods use Lua's FFI, but some mods use 'os.execute', > which takes a file name referring to an executable, which might need > to be absolutised in Guix, and therefore some mods are architecture- > dependent. > > It dropped the ((#:target target #f) #f). I noticed "#:implicit- > cross-inputs?" wasn't set to #f. That has been corrected as well. Good catch. Since my only remaining complaint is somewhat minor, you don't need to resend this patch; I'll have a look at the importer later (or maybe someone else gets to do that in between), but I won't cover the package definitions for the mods. If they work for you and you checked the licenses, they're probably going to be fine. Greetings From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 12:41:09 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 16:41:09 +0000 Received: from localhost ([127.0.0.1]:48223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBgQe-0002ZW-Pd for submit@debbugs.gnu.org; Thu, 05 Aug 2021 12:41:09 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:61584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBgQa-0002ZL-Tn for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 12:41:08 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GgZ9n2FM8z1LB21; Thu, 5 Aug 2021 18:41:01 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GgZ9n2FM8z1LB21 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628181661; bh=YQO4nib21aTPJsujFJOS8GvbkjBumspZ6XPiUaP28s8=; h=Subject:From:To:Date:In-Reply-To:References:From; b=VEeODhbKHBNIY6c42904GrN6ZywF7Ay4Gv02F54lv0riMBsZBcHIZKqkZncAhICZK KqvHudZI7r5GKF7PfPzLPaxEMkAVS1Zn/JxZa48iG6XFXpKgnIYRN3f7NACVCec7Go puHuAxR1y9qKpIqnciBgt8PHzzxua4IY1M9Bg/Zc= Message-ID: <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 18:41:00 +0200 In-Reply-To: <20210802155019.6122-6-maximedevos@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > * guix/import/contentdb.scm: New file. > * guix/scripts/import/contentdb.scm: New file. > * tests/contentdb.scm: New file. > * Makefile.am (MODULES, SCM_TESTS): Register them. > * po/guix/POTFILES.in: Likewise. > * doc/guix.texi (Invoking guix import): Document it. > [...] > diff --git a/doc/guix.texi b/doc/guix.texi > index 43c248234d..d06c9b73c5 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -11313,6 +11313,31 @@ and generate package expressions for all > those packages that are not yet > in Guix. > @end table > > +@item contentdb > +@cindex ContentDB > +Import metadata from @uref{https://content.minetest.net, ContentDB}. > +Information is taken from the JSON-formatted metadata provided > through > +@uref{https://content.minetest.net/help/api/, ContentDB's API} and > +includes most relevant information, including dependencies. There > are > +some caveats, however. The license information on ContentDB does > not > +distinguish between GPLvN-only and GPLvN-or-later. The commit id is > +sometimes missing. The descriptions are in the Markdown format, but > +Guix uses Texinfo instead. Texture packs and subgames are > unsupported. What is the "commit id"? Is it the hash? A tag? Anything that resolves to a commit? Also, since ContentDB sounds fairly generic (a database of content?), perhaps we ought to call this the "minetest" importer instead? > [...] > +;; The ContentDB API is documented at > +;; ;. > + > +(define %contentdb-api > + (make-parameter "https://content.minetest.net/api/")) > + > +(define (string-or-false x) > + (and (string? x) x)) > + > +(define (natural-or-false x) > + (and (exact-integer? x) (>= x 0) x)) > + > +;; Descriptions on ContentDB use carriage returns, but Guix doesn't. > +(define (delete-cr text) > + (string-delete #\cr text)) > + > +;; Minetest package. > +;; > +;; API endpoint: /packages/AUTHOR/NAME/ > +(define-json-mapping make-package package? > + json->package > + (author package-author) ; string > + (creation-date package-creation-date ; string > + "created_at") > + (downloads package-downloads) ; integer > + (forums package-forums "forums" natural-or-false) ; > natural | #f This comment and some others like it seem to simply be repeating already present information. Is there a use for them? Should we instead provide a third argument on every field to verify/enforce the type? > + (issue-tracker package-issue-tracker "issue_tracker") ; string > + (license package-license) ; string > + (long-description package-long-description "long_description") ; > string > + (maintainers package-maintainers ; list of strings > + "maintainers" vector->list) > + (media-license package-media-license "media_license") ; string > + (name package-name) ; string > + (provides package-provides ; list of strings > + "provides" vector->list) > + (release package-release) ; integer > + (repository package-repository "repo" string-or-false) ; > string | #f > + (score package-score) ; flonum > + (screenshots package-screenshots "screenshots" vector->list) > ; list of strings > + (short-description package-short-description "short_description") > ; string > + (state package-state) ; string > + (tags package-tags "tags" vector->list) ; list of > strings > + (thumbnail package-thumbnail) ; string > + (title package-title) ; string > + (type package-type) ; string > + (url package-url) ; string > + (website package-website "website" string-or-false)) ; > string | #f > + > +(define-json-mapping make-release release? > + json->release > + (commit release-commit "commit" string-or-false) ; > string | #f > + (downloads release-downloads) ; integer > + (id release-id) ; integer > + (max-minetest-version release-max-minetest-version) ; string | #f > + (min-minetest-version release-min-minetest-version) ; string | #f > + (release-date release-data) ; string > + (title release-title) ; string > + (url release-url)) ; string > + > +(define-json-mapping make-dependency dependency? > + json->dependency > + (optional? dependency-optional? "is_optional") ; #t | #f Also known as "boolean". > + (name dependency-name) ; string > + (packages dependency-packages "packages" vector->list)) ; list of > strings > + > +(define (contentdb-fetch author name) > + "Return a record for package NAME by AUTHOR, or #f on > failure." > + (and=> (json-fetch > + (string-append (%contentdb-api) "packages/" author "/" > name "/")) > + json->package)) Is there a reason for author and name to be separate keys? For me it makes more sense to take AUTHOR/NAME as a singular search string from users and then perform queries based on that. If ContentDB allows searching, we might also resolve NAME to a singular package where possible and otherwise error out, telling the user to choose one. > [...] > + > +(define (important-dependencies dependencies author name) > + (define dependency-list > + (assoc-ref dependencies (string-append author "/" name))) > + (filter-map > + (lambda (dependency) > + (and (not (dependency-optional? dependency)) > + ;; "default" must be provided by the 'subgame' in use > + ;; and does not refer to a specific minetest mod. > + ;; "doors", "bucket" ... are provided by the default > minetest > + ;; subgame. > + (not (member (dependency-name dependency) > + '("default" "doors" "beds" "bucket" "doors" > "farming" > + "flowers" "stairs" "xpanes"))) > + ;; Dependencies often have only one implementation. > + (let* ((/name (string-append "/" (dependency-name > dependency))) > + (likewise-named-implementations > + (filter (cut string-suffix? /name <>) > + (dependency-packages dependency))) > + (implementation > + (and (not (null? likewise-named-implementations)) > + (first likewise-named-implementations)))) > + (and implementation > + (apply cons (string-split implementation #\/)))))) > + dependency-list)) What exactly does the likewise-named-implementations bit do here? > +(define (contentdb-recursive-import author name) > + ;; recursive-import expects upstream package names to be strings, > + ;; so do some conversions. > + (define (split-author/name author/name) > + (string-split author/name #\/)) +1 for my author/name splitting, as it's already required for recursive imports. > + (define (author+name->author/name author+name) > + (string-append (car author+name) "/" (cdr author+name))) > + (define* (contentdb->guix-package* author/name #:key repo version) > + (receive (package . maybe-dependencies) > + (apply contentdb->guix-package (split-author/name > author/name)) > + (and package > + (receive (dependencies) > + (apply values maybe-dependencies) > + (values package > + (map author+name->author/name > dependencies)))))) > + (recursive-import (author+name->author/name (cons author name)) > + #:repo->guix-package contentdb->guix-package* > + #:guix-name > + (lambda (author/name) > + (contentdb->package-name > + (second (split-author/name author/name)))))) > + > +;; A list of license names is available at > +;; ;. > +(define (string->license str) > + "Convert the string STR into a license object." > + (match str > + ("GPLv3" license:gpl3) > + ("GPLv2" license:gpl2) > + ("ISC" license:isc) > + ;; "MIT" means the Expat license on ContentDB, > + ;; see < > https://github.com/minetest/contentdb/issues/326#issuecomment-890143784> > ;. > + ("MIT" license:expat) > + ("CC BY-SA 3.0" license:cc-by-sa3.0) > + ("CC BY-SA 4.0" license:cc-by-sa4.0) > + ("LGPLv2.1" license:lgpl2.1) > + ("LGPLv3" license:lgpl3) > + ("MPL 2.0" license:mpl2.0) > + ("ZLib" license:zlib) > + ("Unlicense" license:unlicense) > + (_ #f))) The link mentions, that ContentDB now supports all SPDX identifiers. Do we have a SPDX->Guix converter lying around in some other importer that we could use as default case here (especially w.r.t. "or later") WDYT? From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 05 17:11:02 2021 Received: (at 49828) by debbugs.gnu.org; 5 Aug 2021 21:11:02 +0000 Received: from localhost ([127.0.0.1]:48569 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBkdq-0005RO-B0 for submit@debbugs.gnu.org; Thu, 05 Aug 2021 17:11:02 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:49128) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mBkdo-0005R8-CI for 49828@debbugs.gnu.org; Thu, 05 Aug 2021 17:11:01 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by laurent.telenet-ops.be with bizsmtp id dxAy250060mfAB401xAyNb; Thu, 05 Aug 2021 23:10:58 +0200 Message-ID: <12b8c0746b9db7d9e744ad350aa8e1b37e80ad2a.camel@telenet.be> Subject: Re: [bug#49828] [PATCH 00/20] Add minetest mods From: Maxime Devos To: Andrew Ward , 49828@debbugs.gnu.org Date: Thu, 05 Aug 2021 23:10:45 +0200 In-Reply-To: <68444560-b887-4c0c-af36-7f8cc609eda9@email.android.com> References: <68444560-b887-4c0c-af36-7f8cc609eda9@email.android.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ohLoO8tmPB6ugCsUObKc" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628197858; bh=EF3rJn69ARl/lUyPbWFzQY67EG2MB9AljJzj7JVF72A=; h=Subject:From:To:Date:In-Reply-To:References; b=ndqZbd3jbB5YDAYjWPO+Yw6FsMDsLrJZA39lqCbtslO1LvxXYur4hjgouKmJth7PX p2ACMhJB4xQ0ywtEaW2NWoTmLesY9ZBPcD2trb43RU+GnJBwL8biSOakSyyLYeBJ2L vnatZpUHS3H26M3y3EDDULSgZ00Di6LD9ySwXqXwgNbGnm7ZKllr6Lstu5wVueIr47 j16T+E40kk7p3XWeRxDsRYbM+hDh4k6i3/aXBaqjOmiD22YnR91VuOh9FMUSDwReu4 FSuMV1PPNajeBvcxkzBmZkv/DeTbVU9f1fHAYDsi+bYDuHbQTmx6Bh25eui09sks3h KgGWSVTmT01mQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-ohLoO8tmPB6ugCsUObKc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Andrew Ward schreef op do 05-08-2021 om 13:46 [+0100]: > Hi, I'm a Minetest core dev and the creator of ContentDB (the service the= powers > the built-in mod/game/etc manager in Minetest). >=20 > It's very annoying when distros include mods but then never update them. > It causes confusion with users, as mods change over time and there can be= breakages. > So, I'd like to make sure that these packages are kept in sync with Conte= ntDB. When the mod is being =E2=80=98built=E2=80=99 in Guix, the 'check' phase wi= ll start Minetest with a new world where the mod and its dependencies are activated. It is v= erified there are no errors in the log. That should help with detecting breakage. It actually detected some breakage: ".mts" files were not being installed, = leading to errors at load time. This is fixed now. To keep in sync, there is "guix refresh minetest-MODA minetest-MODB ..." wh= ich can automatically upgrade packages to the latest version. It currently doe= sn't know about ContentDB however, so it has to fall-back to the generic updater= s which do not appear to work well with Minetest mods: gnu/packages/minetest.scm:345:13: 1.3 is already the latest version of mine= test-worldedit gnu/packages/minetest.scm:365:2: warning: no updater for minetest-unifieddy= es gnu/packages/minetest.scm:173:2: warning: no updater for minetest-mobs gnu/packages/minetest.scm:143:13: minetest-mesecons would be upgraded from = 1.2.1-0.db58797 to 2017.03.05 ^ this is actually a downgrade IIRC gnu/packages/minetest.scm:227:2: warning: no updater for minetest-pipeworks Hopefully that can be improved in the future (maybe keep the "release date"= in the 'properties' field of the Guix package and use that to determine if an = update is available?). > ContentDB also provides two other features: it only provides you with ver= sions of > mods/games that support your Minetest version. It also handles dependenci= es, so I > hope this is set up correctly. The ContentDB->guix importer handles dependencies. It reads the dependenci= es from ContentDB (with the /api/packages/AUTHOR/NAME/dependencies/ API) and adds the hard dependencies to 'propagated-inputs', so "minetest-mobs-animal= " has "minetest-mobs" in its 'propagated-inputs'. See also the 'check' phase mentioned above. > If you are disabling ContentDB completely, you should have the vast major= ity of mods, > games, and texture packs available - especially all the hard dependencies= needed, as > not having these will cause load issues. Minetest is all about customisat= ion. In the original patch series I sent, ContentDB was indeed disabled complete= ly when guix-installed mods are present. But with the revised patch (using the MIN= ETEST_MOD_PATH patch I submitted ), this = is no longer the case --- ContentDB and Guix can be used together. I tested installing mods with both Minetest's built-in installer and guix. = They can be used together. > I recommend adding a button and core.open_url call to the guix dialog tha= t replaces > the content store. It should link to a page describing how to install mod= s using guix, > and how to allow use of ContentDB again if the user desires ContentDB and mods installed with guix can be used together with the revise= d patches. It would be useful though to add some kind of dialog or something, telling = the user that mods can be installed with guix, and how to do so. > Anyway, sorry for being critical - it's great to see more distro support = and integration Greetings, Maxime (aka maximed aka emixa-d). --=-ohLoO8tmPB6ugCsUObKc Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQxT1RccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hH5AP0abbCPcvJAOeEqQE8r094M/CTB AGxqiqRcFjgawb1FPAEAxgjkosWm1zDCZ8tDT6YfodqUe9zrSmNo0jtY156Vugo= =dI9n -----END PGP SIGNATURE----- --=-ohLoO8tmPB6ugCsUObKc-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 07 14:31:24 2021 Received: (at 49828) by debbugs.gnu.org; 7 Aug 2021 18:31:24 +0000 Received: from localhost ([127.0.0.1]:53144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mCR6S-0004kX-Mh for submit@debbugs.gnu.org; Sat, 07 Aug 2021 14:31:24 -0400 Received: from andre.telenet-ops.be ([195.130.132.53]:49942) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mCR6P-0004kK-9f for 49828@debbugs.gnu.org; Sat, 07 Aug 2021 14:31:22 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by andre.telenet-ops.be with bizsmtp id eiXK250060mfAB401iXKUw; Sat, 07 Aug 2021 20:31:19 +0200 Message-ID: Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org In-Reply-To: <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-oZq8+BSForQdLMHZu8LQ" Date: Sat, 07 Aug 2021 20:31:05 +0200 MIME-Version: 1.0 User-Agent: Evolution 3.34.2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628361079; bh=Iu7EVNz7hLXZKfzBHTlyyeLkJO8g2A7ap6QDNEdH50g=; h=Subject:From:To:In-Reply-To:References:Date; b=XOFDKtbLvlCwYnUp9q8w5CIz1hfdvRYMZf3Vl5bBAyckTHF5+xu0CUwY5ThpmYk2j aFykaox1HETYLrSU+9KXn6MwoTGJeHP1gd6erTESSxmE+Ge4bywGojppCJt9RUg23X w9CsIHYXLd7WDZkNopBqLfwHOC6yqtHLy/Fe/P6Ur4P/72f8Qnc7SSyUQDi1zFRj2X oIAdoeldqhmoK6qotQU0yEJJGWDebuzRbttnta/jAt4XOdsRQsafGo9xHyapWxe1iP P03D0BN3A7zCDbGE2xiAM27KiajnimZn1udb6EEMuaM3/Kuh0GYoMddvSx2qiHkaa3 XnUR7HINde/2g== X-Debbugs-Envelope-To: 49828 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" --=-oZq8+BSForQdLMHZu8LQ Content-Type: multipart/mixed; boundary="=-0RBl4LwyT4qiuyjqEEgi" --=-0RBl4LwyT4qiuyjqEEgi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Leo Prikler schreef op do 05-08-2021 om 18:41 [+0200]: > Hi, >=20 > Am Montag, den 02.08.2021, 17:50 +0200 schrieb Maxime Devos: > > * guix/import/contentdb.scm: New file. > > * guix/scripts/import/contentdb.scm: New file. > > * tests/contentdb.scm: New file. > > * Makefile.am (MODULES, SCM_TESTS): Register them. > > * po/guix/POTFILES.in: Likewise. > > * doc/guix.texi (Invoking guix import): Document it. > > [...] > > diff --git a/doc/guix.texi b/doc/guix.texi > > index 43c248234d..d06c9b73c5 100644 > > --- a/doc/guix.texi > > +++ b/doc/guix.texi > > @@ -11313,6 +11313,31 @@ and generate package expressions for all > > those packages that are not yet > > in Guix. > > @end table > > =20 > > +@item contentdb > > +@cindex ContentDB > > +Import metadata from @uref{https://content.minetest.net, ContentDB}. > > +Information is taken from the JSON-formatted metadata provided > > through > > +@uref{https://content.minetest.net/help/api/, ContentDB's API} and > > +includes most relevant information, including dependencies. There > > are > > +some caveats, however. The license information on ContentDB does > > not > > +distinguish between GPLvN-only and GPLvN-or-later. ContentDB uses SPDX license identifiers now, and distinguishes between GPL-N-only and GPL-N-or-later, so I adjusted the documentation appropriatel= y. > > The commit id is > > +sometimes missing. The descriptions are in the Markdown format, but > > +Guix uses Texinfo instead. Texture packs and subgames are > > unsupported. > What is the "commit id"? Is it the hash? A tag? Anything that > resolves to a commit? It's the SHA-1 of the Git commit. I changes this to =E2=80=98the commit's = SHA-1=E2=80=99. > Also, since ContentDB sounds fairly generic (a database of content?), > perhaps we ought to call this the "minetest" importer instead? Technically, minetest has another mod repository as well: . It's unmoderated though, and has some moderation and seems more =E2=80=98official=E2=80=99 (it's integrated in Minetest itself). I replace= d (guix import contentdb) with (guix import minetest), likewise for (guix script import minetest) and tests/minetest.scm. > > +;; Minetest package. > > +;; > > +;; API endpoint: /packages/AUTHOR/NAME/ > > +(define-json-mapping make-package package? > > + json->package > > + (author package-author) ; string > > + (creation-date package-creation-date ; string > > + "created_at") > > + (downloads package-downloads) ; integer > > + (forums package-forums "forums" natural-or-false) ; > > natural | #f > This comment and some others like it seem to simply be repeating > already present information. Is there a use for them? Should we > instead provide a third argument on every field to verify/enforce the > type? I first added the =E2=80=98; natural-or-false=E2=80=99. I only added the p= rocedure "natural-false" later. Indeed, =E2=80=98; natural-or-false=E2=80=99 is red= undant. I removed the redundant ones in the revised patch. I don't think there is need to verify types for each field. Most aren't used by Guix. If a type check would fail, that would presumably mean the type check guix is incorrect (or not up-to-date). Except for perhaps a backtrace, ill-typed fields are harmless. > > +(define (contentdb-fetch author name) > > + "Return a record for package NAME by AUTHOR, or #f on > > failure." > > + (and=3D> (json-fetch > > + (string-append (%contentdb-api) "packages/" author "/" > > name "/")) > > + json->package)) > Is there a reason for author and name to be separate keys? For me it > makes more sense to take AUTHOR/NAME as a singular search string from > users and then perform queries based on that. Not really actually, AUTHOR tends to go togehter with NAME except for some exceptions. I modified the code such that AUTHOR/NAME is a single string. It simplified code somewhat. > If ContentDB allows > searching, we might also resolve NAME to a singular package where > possible and otherwise error out, telling the user to choose one. ContentDB allows searching. I wrote some a procedure 'elaborate-contentdb-= name' used by (guix scripts import contentdb) that resolves "mesecons" to "Jeija/= mesecons", using the search API and added some tests. If there are multiple candidate= s, the one with the highest =E2=80=98score=E2=80=99 is choosen (alternatively,= --sort=3Ddownloads can be used instead). > > +(define (important-dependencies dependencies author name) > > + (define dependency-list > > + (assoc-ref dependencies (string-append author "/" name))) > > + (filter-map > > + (lambda (dependency) > > + (and (not (dependency-optional? dependency)) > > + ;; "default" must be provided by the 'subgame' in use > > + ;; and does not refer to a specific minetest mod. > > + ;; "doors", "bucket" ... are provided by the default > > minetest > > + ;; subgame. > > + (not (member (dependency-name dependency) > > + '("default" "doors" "beds" "bucket" "doors" > > "farming" > > + "flowers" "stairs" "xpanes"))) I tested this some more, and it appears that some mods depend on "dyes", which is part of the default Minetest game, so I added all the mods provided by the default (sub?)game. The list began looking a little long, so I replaced it with a hash table. > > + ;; Dependencies often have only one implementation. > > + (let* ((/name (string-append "/" (dependency-name > > dependency))) > > + (likewise-named-implementations > > + (filter (cut string-suffix? /name <>) > > + (dependency-packages dependency))) > > + (implementation > > + (and (not (null? likewise-named-implementations)) > > + (first likewise-named-implementations)))) > > + (and implementation > > + (apply cons (string-split implementation #\/)))))) > > + dependency-list)) > What exactly does the likewise-named-implementations bit do here? The list returned by 'dependency-packages' not only contains the mod we need, but possibly also various =E2=80=98subgames=E2=80=99 that include = that mod. Filtering on '/name' filters out these subgames we don't need. Also, theoretically another mod could implement the same interface. The filtering would filter out the alternative implementations. Anyway, I changes the implementation a bit. It now explicitely filters out =E2=80=98subgames=E2=80=99 and =E2=80=98texture packs=E2=80=99 = using the =E2=80=98package-mod?=E2=80=99 procedure. The resulting list tends to consist of only a single element. If it consists of multiple, the one with the highest score (or the one with the highest download count, depending on --sort) will be choosen (and a warning is printed). > > +;; A list of license names is available at > > +;; ;;. > > +(define (string->license str) > > + "Convert the string STR into a license object." [...] > The link mentions, that ContentDB now supports all SPDX identifiers.=20 > Do we have a SPDX->Guix converter lying around in some other importer > that we could use as default case here (especially w.r.t. "or later") There's a a converter in (guix import utils): spdx-string->license. The old license identifiers appear to be removed, now only SPDX information is available. I modified the code to use spdx->string-license and removed string->license. It turns out it does not recognise GPL-N-only and GPL-N-or-later, so I added a patch =E2=80=98import/utils: Recognise GPL-3.0-or-later and fr= iends.=E2=80=99. I tried implementing "guix refresh -t minetest ...". It seems to work, but requires some changes to (guix upstream) that needs some more work, so I le= ft it out of the revised patch set. The refresher needs to know the author name (or perform extra HTTP requests), so I added 'upstream-name' the package pr= operties. The revised patch series is attached. It can also be found at . It includes the latest MINETEST_MOD_PATH patch. I'll make the patch to export more thi= ngs in (guix build utils) later (for core-updates). reetings, Maxime. --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0001-gnu-minetest-Respect-without-tests.patch" Content-Type: text/x-patch; name="0001-gnu-minetest-Respect-without-tests.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyOTJkY2UxNGVhNDgxMWYxNTU0OTY1ZDgzYWY1ZTMzNjg3Y2QwMGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTQ6NTA6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBnbnU6IG1pbmV0ZXN0OiBSZXNwZWN0IC0td2l0aG91dC10ZXN0cy4KCiogZ251L3BhY2th Z2VzL2dhbWVzLnNjbQogIChtaW5ldGVzdClbYXJndW1lbnRzXTwjOnBoYXNlcz57Y2hlY2t9OiBV c2UgJ3Rlc3RzPycgaW5zdGVhZAogIG9mICcsKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pJy4gUmVt b3ZlIHRyYWlsaW5nICN0LgotLS0KIGdudS9wYWNrYWdlcy9nYW1lcy5zY20gfCA3ICsrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZ251L3BhY2thZ2VzL2dhbWVzLnNjbSBiL2dudS9wYWNrYWdlcy9nYW1lcy5zY20KaW5k ZXggOGM2YjU1MjNmMS4uM2U3MDg2YjM5OCAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL2dhbWVz LnNjbQorKysgYi9nbnUvcGFja2FnZXMvZ2FtZXMuc2NtCkBAIC0zNTkwLDEzICszNTkwLDEyIEBA IG1hdGNoLCBjYW5ub24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAoZ2V0Y3dkKSAiL2dhbWVzIikpIDsgZm9yIGNoZWNr CiAgICAgICAgICAgICAgI3QpKQogICAgICAgICAgKHJlcGxhY2UgJ2NoZWNrCi0gICAgICAgICAg IChsYW1iZGEgXworICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgdGVzdHM/ICM6YWxsb3ctb3Ro ZXIta2V5cykKICAgICAgICAgICAgICA7OyBUaGFua3MgdG8gb3VyIHN1YnN0aXR1dGlvbnMsIHRo ZSB0ZXN0cyBzaG91bGQgYWxzbyBydW4KICAgICAgICAgICAgICA7OyB3aGVuIGludm9rZWQgb24g dGhlIHRhcmdldCBvdXRzaWRlIG9mIGBndWl4IGJ1aWxkJy4KLSAgICAgICAgICAgICAodW5sZXNz ICwoJWN1cnJlbnQtdGFyZ2V0LXN5c3RlbSkKKyAgICAgICAgICAgICAod2hlbiB0ZXN0cz8KICAg ICAgICAgICAgICAgIChzZXRlbnYgIkhPTUUiICIvdG1wIikKLSAgICAgICAgICAgICAgIChpbnZv a2UgInNyYy9taW5ldGVzdCIgIi0tcnVuLXVuaXR0ZXN0cyIpKQotICAgICAgICAgICAgICN0KSkp KSkKKyAgICAgICAgICAgICAgIChpbnZva2UgInNyYy9taW5ldGVzdCIgIi0tcnVuLXVuaXR0ZXN0 cyIpKSkpKSkpCiAgICAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMKICAgICAgKGxpc3QgKHNlYXJjaC1w YXRoLXNwZWNpZmljYXRpb24KICAgICAgICAgICAgICh2YXJpYWJsZSAiTUlORVRFU1RfU1VCR0FN RV9QQVRIIikKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch" Content-Type: text/x-patch; name="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NDIyMmYxNjcxMDdlMzZjYjc2ZjkzYzU1MWFhZWUwNjU5ZDE3YjQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTg6MDg6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzIwXSBnbnU6IG1pbmV0ZXN0OiBTZWFyY2ggZm9yIG1vZHMgaW4gTUlORVRFU1RfTU9EX1BBVEgu CgoqIGdudS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVT VF9NT0RfUEFUSC5wYXRjaDoKICBOZXcgZmlsZS4KKiBnbnUvcGFja2FnZXMvZ2FtZXMuc2NtCiAg KG1pbmV0ZXN0KVtzb3VyY2Vde3BhdGNoZXN9OiBBZGQgaXQuCiAgKG1pbmV0ZXN0KVtuYXRpdmUt c2VhcmNoLXBhdGhzXTogQWRkICJNSU5FVEVTVF9NT0RfUEFUSCIuCiogZ251L2xvY2FsLm1rIChk aXN0X3BhdGNoX0RBVEEpOiBBZGQgdGhlIHBhdGNoLgotLS0KIGdudS9sb2NhbC5tayAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBnbnUvcGFja2FnZXMvZ2FtZXMuc2Nt ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIC4uLnZpcm9ubWVudC12YXJpYWJsZS1N SU5FVEVTVF9NT0RfUEFUSC5wYXRjaCB8IDE1NiArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBnbnUvcGFja2FnZXMvcGF0Y2hlcy9BZGQtZW52aXJvbm1lbnQtdmFyaWFibGUtTUlORVRF U1RfTU9EX1BBVEgucGF0Y2gKCmRpZmYgLS1naXQgYS9nbnUvbG9jYWwubWsgYi9nbnUvbG9jYWwu bWsKaW5kZXggYzgwYTlhZjc4Yy4uZDk2ZDRlM2RiYyAxMDA2NDQKLS0tIGEvZ251L2xvY2FsLm1r CisrKyBiL2dudS9sb2NhbC5tawpAQCAtODAxLDYgKzgwMSw3IEBAIGRpc3RfcGF0Y2hfREFUQSA9 CQkJCQkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1ndGVzdC5wYXRj aAkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1zdHJlcnJvcl90ZXN0 LnBhdGNoCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvYWRiLWFkZC1saWJyYXJpZXMucGF0Y2gJ CQlcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5F VEVTVF9NT0RfUEFUSC5wYXRjaAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lzLWNvbnN0 bmVzcy1lcnJvci5wYXRjaCAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lz LXBlcmwtdGVtcGRpcjEucGF0Y2ggICAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVz L2FlZ2lzLXBlcmwtdGVtcGRpcjIucGF0Y2ggICAgICAgICAgIAlcCmRpZmYgLS1naXQgYS9nbnUv cGFja2FnZXMvZ2FtZXMuc2NtIGIvZ251L3BhY2thZ2VzL2dhbWVzLnNjbQppbmRleCAzZTcwODZi Mzk4Li40OGQ0NmEwMzc5IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvZ2FtZXMuc2NtCisrKyBi L2dudS9wYWNrYWdlcy9nYW1lcy5zY20KQEAgLTM1NTMsNiArMzU1Myw5IEBAIG1hdGNoLCBjYW5u b24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgICAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICAgICAgIjA2MmlsYjdzMzc3cTNod2ZobDhxMDZ2dmN3MnJheWR6NWxqemx6 d3kyZG15em1kY25kYjgiKSkKICAgICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB1 dGlscykpKQorICAgICAgICAgICAgICAocGF0Y2hlcworICAgICAgICAgICAgICAgKHNlYXJjaC1w YXRjaGVzCisgICAgICAgICAgICAgICAgIkFkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVT VF9NT0RfUEFUSC5wYXRjaCIpKQogICAgICAgICAgICAgICAoc25pcHBldAogICAgICAgICAgICAg ICAgJyhiZWdpbgogICAgICAgICAgICAgICAgICAgOzsgRGVsZXRlIGJ1bmRsZWQgbGlicmFyaWVz LgpAQCAtMzU5OSw3ICszNjAyLDEwIEBAIG1hdGNoLCBjYW5ub24ga2VlcCwgYW5kIGdyYXZlLWl0 YXRpb24gcGl0LiIpCiAgICAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMKICAgICAgKGxpc3QgKHNlYXJj aC1wYXRoLXNwZWNpZmljYXRpb24KICAgICAgICAgICAgICh2YXJpYWJsZSAiTUlORVRFU1RfU1VC R0FNRV9QQVRIIikKLSAgICAgICAgICAgIChmaWxlcyAnKCJzaGFyZS9taW5ldGVzdC9nYW1lcyIp KSkpKQorICAgICAgICAgICAgKGZpbGVzICcoInNoYXJlL21pbmV0ZXN0L2dhbWVzIikpKQorICAg ICAgICAgICAoc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbgorICAgICAgICAgICAgKHZhcmlhYmxl ICJNSU5FVEVTVF9NT0RfUEFUSCIpCisgICAgICAgICAgICAoZmlsZXMgJygic2hhcmUvbWluZXRl c3QvbW9kcyIpKSkpKQogICAgIChuYXRpdmUtaW5wdXRzCiAgICAgIGAoKCJwa2ctY29uZmlnIiAs cGtnLWNvbmZpZykpKQogICAgIChpbnB1dHMKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9wYXRj aGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVTVF9NT0RfUEFUSC5wYXRjaCBiL2du dS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVTVF9NT0Rf UEFUSC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hNzQwMzRh MmM1Ci0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvQWRkLWVudmlyb25t ZW50LXZhcmlhYmxlLU1JTkVURVNUX01PRF9QQVRILnBhdGNoCkBAIC0wLDAgKzEsMTU2IEBACitG cm9tIGQxMGVhMmFkN2VmYzIzNjRhOGEyMDA3YjRjNmQzZTg1NTExZTJmODQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CitEYXRlOiBUdWUsIDMgQXVnIDIwMjEgMDE6MDA6MjMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0g QWRkIGVudmlyb25tZW50IHZhcmlhYmxlIE1JTkVURVNUX01PRF9QQVRICisKK1RoaXMgYWRkcyBh biBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSU5FVEVTVF9NT0RfUEFUSC4KK1doZW4gaXQgZXhpc3Rz LCBNaW5ldGVzdCB3aWxsIGxvb2sgdGhlcmUgZm9yIG1vZHMKK2luIGFkZGl0aW9uIHRvIH4vLm1p bmV0ZXN0L21vZHMvLiAgTW9kcyBjYW4gc3RpbGwgYmUKK2luc3RhbGxlZCB0byB+Ly5taW5ldGVz dC9tb2RzLyB3aXRoIHRoZSBidWlsdC1pbiBpbnN0YWxsZXIuCisKK1dpdGggdGhhbmtzIHRvIExl byBQcmlrbGVyLgorLS0tCisgYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhICAgICAgIHwgIDcg KysrLS0tLQorIGRvYy9tZW51X2x1YV9hcGkudHh0ICAgICAgICAgICAgICB8ICA4ICsrKysrKyst Cisgc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwICAgICAgICAgIHwgMTEgKysrKysrKysrKysKKyBz cmMvc2NyaXB0L2x1YV9hcGkvbF9tYWlubWVudS5jcHAgfCAyMyArKysrKysrKysrKysrKysrKysr KysrKworIHNyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmggICB8ICAyICsrCisgNSBmaWxl cyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhIGIvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3Iu bHVhCitpbmRleCA3ODc5MzZlMzEuLmQ4ZmJhMGViZSAxMDA2NDQKKy0tLSBhL2J1aWx0aW4vbWFp bm1lbnUvcGtnbWdyLmx1YQorKysrIGIvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhCitAQCAt NjgyLDEwICs2ODIsOSBAQCBmdW5jdGlvbiBwa2dtZ3IucHJlcGFyZW1vZGxpc3QoZGF0YSkKKyAJ bG9jYWwgZ2FtZV9tb2RzID0ge30KKyAKKyAJLS1yZWFkIGdsb2JhbCBtb2RzCistCWxvY2FsIG1v ZHBhdGggPSBjb3JlLmdldF9tb2RwYXRoKCkKKy0KKy0JaWYgbW9kcGF0aCB+PSBuaWwgYW5kCist CQltb2RwYXRoIH49ICIiIHRoZW4KKysJbG9jYWwgbW9kcGF0aHMgPSBjb3JlLmdldF9tb2RwYXRo cygpCisrCS0tWFhYIHdoYXQgd2FzIOKAmG1vZHBhdGggfj0gIiLigJkgYW5kIOKAmG1vZHBhdGgg fj0gbmls4oCZIGZvcj8KKysJZm9yIF8sbW9kcGF0aCBpbiBpcGFpcnMobW9kcGF0aHMpIGRvCisg CQlnZXRfbW9kcyhtb2RwYXRoLGdsb2JhbF9tb2RzKQorIAllbmQKKyAKK2RpZmYgLS1naXQgYS9k b2MvbWVudV9sdWFfYXBpLnR4dCBiL2RvYy9tZW51X2x1YV9hcGkudHh0CitpbmRleCBiMzk3NWJj MWQuLjEzMjQ0NGIxNCAxMDA2NDQKKy0tLSBhL2RvYy9tZW51X2x1YV9hcGkudHh0CisrKysgYi9k b2MvbWVudV9sdWFfYXBpLnR4dAorQEAgLTIxOCw3ICsyMTgsMTMgQEAgUGFja2FnZSAtIGNvbnRl bnQgd2hpY2ggaXMgZG93bmxvYWRhYmxlIGZyb20gdGhlIGNvbnRlbnQgZGIsIG1heSBvciBtYXkg bm90IGJlIGkKKyAgICAgKiByZXR1cm5zIHBhdGggdG8gZ2xvYmFsIHVzZXIgZGF0YSwKKyAgICAg ICB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdXNlci1wcm92aWRlZCBtb2RzLCB3b3JsZHMs IGdhbWVzLCBhbmQgdGV4dHVyZSBwYWNrcy4KKyAqIGNvcmUuZ2V0X21vZHBhdGgoKSAocG9zc2li bGUgaW4gYXN5bmMgY2FsbHMpCistICAgICogcmV0dXJucyBwYXRoIHRvIGdsb2JhbCBtb2RwYXRo CisrICAgICogcmV0dXJucyBwYXRoIHRvIGdsb2JhbCBtb2RwYXRoLCB3aGVyZSBtb2RzIGNhbiBi ZSBpbnN0YWxsZWQKKysqIGNvcmUuZ2V0X21vZHBhdGhzKCkgKHBvc3NpYmxlIGluIGFzeW5jIGNh bGxzKQorKyAgICAqIHJldHVybnMgbGlzdCBvZiBwYXRocyB0byBnbG9iYWwgbW9kcGF0aHMsIHdo ZXJlIG1vZHMgaGF2ZSBiZWVuIGluc3RhbGxlZAorKworKyAgICAgIFRoZSBkaWZmZXJlbmNlIHdp dGggImNvcmUuZ2V0X21vZHBhdGgiIGlzIHRoYXQgbm8gbW9kcyBzaG91bGQgYmUgaW5zdGFsbGVk IGluIHRoZXNlCisrICAgICAgZGlyZWN0b3JpZXMgYnkgTWluZXRlc3QgLS0gdGhleSBtaWdodCBi ZSByZWFkLW9ubHkuCisrCisgKiBjb3JlLmdldF9jbGllbnRtb2RwYXRoKCkgKHBvc3NpYmxlIGlu IGFzeW5jIGNhbGxzKQorICAgICAqIHJldHVybnMgcGF0aCB0byBnbG9iYWwgY2xpZW50LXNpZGUg bW9kcGF0aAorICogY29yZS5nZXRfZ2FtZXBhdGgoKSAocG9zc2libGUgaW4gYXN5bmMgY2FsbHMp CitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwIGIvc3JjL2NvbnRlbnQvc3Vi Z2FtZXMuY3BwCitpbmRleCBlOWRjNjA5YjAuLmQ3M2Y5NWExZiAxMDA2NDQKKy0tLSBhL3NyYy9j b250ZW50L3N1YmdhbWVzLmNwcAorKysrIGIvc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwCitAQCAt NjEsNiArNjEsMTIgQEAgc3RkOjpzdHJpbmcgZ2V0U3ViZ2FtZVBhdGhFbnYoKQorIAlyZXR1cm4g c3ViZ2FtZV9wYXRoID8gc3RkOjpzdHJpbmcoc3ViZ2FtZV9wYXRoKSA6ICIiOworIH0KKyAKKytz dGQ6OnN0cmluZyBnZXRNb2RQYXRoRW52KCkKKyt7CisrCWNoYXIgKm1vZF9wYXRoID0gZ2V0ZW52 KCJNSU5FVEVTVF9NT0RfUEFUSCIpOworKwlyZXR1cm4gbW9kX3BhdGggPyBzdGQ6OnN0cmluZyht b2RfcGF0aCkgOiAiIjsKKyt9CisrCisgU3ViZ2FtZVNwZWMgZmluZFN1YmdhbWUoY29uc3Qgc3Rk OjpzdHJpbmcgJmlkKQorIHsKKyAJaWYgKGlkLmVtcHR5KCkpCitAQCAtMTEwLDYgKzExNiwxMSBA QCBTdWJnYW1lU3BlYyBmaW5kU3ViZ2FtZShjb25zdCBzdGQ6OnN0cmluZyAmaWQpCisgCXN0ZDo6 c2V0PHN0ZDo6c3RyaW5nPiBtb2RzX3BhdGhzOworIAlpZiAoIXVzZXJfZ2FtZSkKKyAJCW1vZHNf cGF0aHMuaW5zZXJ0KHNoYXJlICsgRElSX0RFTElNICsgIm1vZHMiKTsKKysKKysJU3RyZm5kIG1v ZF9zZWFyY2hfcGF0aHMoZ2V0TW9kUGF0aEVudigpKTsKKysJd2hpbGUgKCFtb2Rfc2VhcmNoX3Bh dGhzLmF0X2VuZCgpKQorKwkJbW9kc19wYXRocy5pbnNlcnQobW9kX3NlYXJjaF9wYXRocy5uZXh0 KFBBVEhfREVMSU0pKTsKKysKKyAJaWYgKHVzZXIgIT0gc2hhcmUgfHwgdXNlcl9nYW1lKQorIAkJ bW9kc19wYXRocy5pbnNlcnQodXNlciArIERJUl9ERUxJTSArICJtb2RzIik7CisgCitkaWZmIC0t Z2l0IGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuY3BwIGIvc3JjL3NjcmlwdC9sdWFf YXBpL2xfbWFpbm1lbnUuY3BwCitpbmRleCAzZTk3MDliZGUuLjkwM2FjM2EyMiAxMDA2NDQKKy0t LSBhL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmNwcAorKysrIGIvc3JjL3NjcmlwdC9s dWFfYXBpL2xfbWFpbm1lbnUuY3BwCitAQCAtMjEsNiArMjEsNyBAQCB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAor ICNpbmNsdWRlICJsdWFfYXBpL2xfaW50ZXJuYWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uL2NfY29u dGVudC5oIgorICNpbmNsdWRlICJjcHBfYXBpL3NfYXN5bmMuaCIKKysjaW5jbHVkZSAidXRpbC9z dHJmbmQuaCIKKyAjaW5jbHVkZSAiZ3VpL2d1aUVuZ2luZS5oIgorICNpbmNsdWRlICJndWkvZ3Vp TWFpbk1lbnUuaCIKKyAjaW5jbHVkZSAiZ3VpL2d1aUtleUNoYW5nZU1lbnUuaCIKK0BAIC01MDIs NiArNTAzLDI2IEBAIGludCBNb2RBcGlNYWluTWVudTo6bF9nZXRfbW9kcGF0aChsdWFfU3RhdGUg KkwpCisgCXJldHVybiAxOworIH0KKyAKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworK2ludCBN b2RBcGlNYWluTWVudTo6bF9nZXRfbW9kcGF0aHMobHVhX1N0YXRlICpMKQorK3sKKysJY29uc3Qg Y2hhciAqY19tb2RwYXRoID0gZ2V0ZW52KCJNSU5FVEVTVF9NT0RfUEFUSCIpOworKwlpZiAoY19t b2RwYXRoID09IE5VTEwpCisrCQljX21vZHBhdGggPSAiIjsKKysJaW50IGluZGV4ID0gMTsKKysJ bHVhX25ld3RhYmxlKEwpOworKwlTdHJmbmQgbW9kX3NlYXJjaF9wYXRoc3tzdGQ6OnN0cmluZyhj X21vZHBhdGgpfTsKKysJd2hpbGUgKCFtb2Rfc2VhcmNoX3BhdGhzLmF0X2VuZCgpKSB7CisrCQlz dGQ6OnN0cmluZyBjb21wb25lbnQgPSBtb2Rfc2VhcmNoX3BhdGhzLm5leHQoUEFUSF9ERUxJTSk7 CisrCQlsdWFfcHVzaHN0cmluZyhMLCBjb21wb25lbnQuY19zdHIoKSk7CisrCQlsdWFfcmF3c2V0 aShMLCAtMiwgaW5kZXgpOworKwkJaW5kZXgrKzsKKysJfQorKwlNb2RBcGlNYWluTWVudTo6bF9n ZXRfbW9kcGF0aChMKTsKKysJbHVhX3Jhd3NldGkoTCwgLTIsIGluZGV4KTsKKysJcmV0dXJuIDE7 CisrfQorKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgaW50IE1vZEFwaU1haW5NZW51Ojps X2dldF9jbGllbnRtb2RwYXRoKGx1YV9TdGF0ZSAqTCkKKyB7CitAQCAtOTQ5LDYgKzk3MCw3IEBA IHZvaWQgTW9kQXBpTWFpbk1lbnU6OkluaXRpYWxpemUobHVhX1N0YXRlICpMLCBpbnQgdG9wKQor IAlBUElfRkNUKGdldF9tYXBnZW5fbmFtZXMpOworIAlBUElfRkNUKGdldF91c2VyX3BhdGgpOwor IAlBUElfRkNUKGdldF9tb2RwYXRoKTsKKysJQVBJX0ZDVChnZXRfbW9kcGF0aHMpOworIAlBUElf RkNUKGdldF9jbGllbnRtb2RwYXRoKTsKKyAJQVBJX0ZDVChnZXRfZ2FtZXBhdGgpOworIAlBUElf RkNUKGdldF90ZXh0dXJlcGF0aCk7CitAQCAtOTgzLDYgKzEwMDUsNyBAQCB2b2lkIE1vZEFwaU1h aW5NZW51OjpJbml0aWFsaXplQXN5bmMobHVhX1N0YXRlICpMLCBpbnQgdG9wKQorIAlBUElfRkNU KGdldF9tYXBnZW5fbmFtZXMpOworIAlBUElfRkNUKGdldF91c2VyX3BhdGgpOworIAlBUElfRkNU KGdldF9tb2RwYXRoKTsKKysJQVBJX0ZDVChnZXRfbW9kcGF0aHMpOworIAlBUElfRkNUKGdldF9j bGllbnRtb2RwYXRoKTsKKyAJQVBJX0ZDVChnZXRfZ2FtZXBhdGgpOworIAlBUElfRkNUKGdldF90 ZXh0dXJlcGF0aCk7CitkaWZmIC0tZ2l0IGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUu aCBiL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmgKK2luZGV4IDMzYWM5ZTcyMS4uYTZh NTRhMmNiIDEwMDY0NAorLS0tIGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuaAorKysr IGIvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuaAorQEAgLTExMiw2ICsxMTIsOCBAQCBj bGFzcyBNb2RBcGlNYWluTWVudTogcHVibGljIE1vZEFwaUJhc2UKKyAKKyAJc3RhdGljIGludCBs X2dldF9tb2RwYXRoKGx1YV9TdGF0ZSAqTCk7CisgCisrCXN0YXRpYyBpbnQgbF9nZXRfbW9kcGF0 aHMobHVhX1N0YXRlICpMKTsKKysKKyAJc3RhdGljIGludCBsX2dldF9jbGllbnRtb2RwYXRoKGx1 YV9TdGF0ZSAqTCk7CisgCisgCXN0YXRpYyBpbnQgbF9nZXRfZ2FtZXBhdGgobHVhX1N0YXRlICpM KTsKKy0tIAorMi4zMi4wCisKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0003-gnu-minetest-New-package-module.patch" Content-Type: text/x-patch; name="0003-gnu-minetest-New-package-module.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNTE0OGFkODUzYjExM2RiODQ2MzQ5MTJjM2VhYTkzNmQ2ODllYjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTg6MzI6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBnbnU6IG1pbmV0ZXN0OiBOZXcgcGFja2FnZSBtb2R1bGUuCgpBc2lkZSBmcm9tIHRoZSAn bWluZXRlc3QtdG9waWMnIHByb2NlZHVyZSB3aGljaCB3aWxsIGJlIHVzZWQKZm9yIHRoZSAnaG9t ZS1wYWdlJyBmaWVsZCBvZiBzb21lIHBhY2thZ2VzLCB0aGlzIG1vZHVsZSBpcwpjdXJyZW50bHkg ZW1wdHkuICBUaGUgJ2NvbnRlbnRkYicgaW1wb3J0ZXIgZGVmaW5lZCBpbiB0aGUKZm9sbG93aW5n IHBhdGNoZXMgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoaXMgbW9kdWxlLgoKKiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtOiBOZXcgZmlsZS4KKiBnbnUvbG9jYWwubWsgKEdOVV9TWVNURU1f TU9EVUxFUyk6IEFkZCBpdC4KLS0tCiBnbnUvbG9jYWwubWsgICAgICAgICAgICAgIHwgIDEgKwog Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn bnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCgpkaWZmIC0tZ2l0IGEvZ251L2xvY2FsLm1rIGIvZ251 L2xvY2FsLm1rCmluZGV4IGQ5NmQ0ZTNkYmMuLjVkZTA4YjFiMDkgMTAwNjQ0Ci0tLSBhL2dudS9s b2NhbC5taworKysgYi9nbnUvbG9jYWwubWsKQEAgLTM4Myw2ICszODMsNyBAQCBHTlVfU1lTVEVN X01PRFVMRVMgPQkJCQlcCiAgICVEJS9wYWNrYWdlcy9tZXJjdXJ5LnNjbQkJCVwKICAgJUQlL3Bh Y2thZ2VzL21lcy5zY20JCQkJXAogICAlRCUvcGFja2FnZXMvbWVzc2FnaW5nLnNjbQkJCVwKKyAg JUQlL3BhY2thZ2VzL21pbmV0ZXN0LnNjbQkJCVwKICAgJUQlL3BhY2thZ2VzL21pbmd3LnNjbQkJ CVwKICAgJUQlL3BhY2thZ2VzL21pY3JvY29tLnNjbQkJCVwKICAgJUQlL3BhY2thZ2VzL21vZS5z Y20JCQkJXApkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSBiL2dudS9wYWNr YWdlcy9taW5ldGVzdC5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZjhhY2EzMDA1YwotLS0gL2Rldi9udWxsCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20K QEAgLTAsMCArMSwyNiBAQAorOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4 aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4K Kzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK Kzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyhkZWZpbmUtbW9kdWxlIChnbnUg cGFja2FnZXMgbWluZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykKKyAgIzp1 c2UtbW9kdWxlIChndWl4IGdpdC1kb3dubG9hZCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxk LXN5c3RlbSBtaW5ldGVzdCkKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBsaWNlbnNlcykgIzpwcmVm aXggbGljZW5zZTopKQorCisoZGVmaW5lLXB1YmxpYyAobWluZXRlc3QtdG9waWMgdG9waWMtaWQp CisgICJSZXR1cm4gYW4gVVJMIChhcyBhIHN0cmluZykgcG9pbnRpbmcgdG8gdGhlIGZvcnVtIHRv cGljIHdpdGgKK251bWVyaWMgaWRlbnRpZmllciBUT1BJQy1JRCBvbiB0aGUgb2ZmaWNpYWwgTWlu ZXRlc3QgZm9ydW1zLiIKKyAgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZm9ydW0ubWluZXRlc3Qu bmV0L3ZpZXd0b3BpYy5waHA/dD0iCisgICAgICAgICAgICAgICAgIChudW1iZXItPnN0cmluZyB0 b3BpYy1pZCkpKQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0004-build-system-Add-minetest-mod-build-system.patch" Content-Type: text/x-patch; name="0004-build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5M2FhOGUxOTc2ZTc2MmQzMGJlNzBhZWY2ZDVjNTBiMWQwNmNhNGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBidWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1 aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21p bmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVT KTogQWRkIHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdt aW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAg IHwgICA4ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA5OSArKysr KysrKysrKysKIGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSB8IDIyNSArKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzM0IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KCmRp ZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQ1ZWM5MDkyMTMuLmY0 NDM5Y2U5M2IgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0x NDEsNiArMTQxLDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dvLnNj bQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vbWVzb24uc2NtCQkJXAogICBndWl4L2J1aWxkLXN5 c3RlbS9taW5pZnkuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20JCVwK ICAgZ3VpeC9idWlsZC1zeXN0ZW0vYXNkZi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2Nv cHkuc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9nbGliLW9yLWd0ay5zY20JCVwKQEAgLTIw Myw2ICsyMDQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9nbnUtZGlzdC5zY20J CQlcCiAgIGd1aXgvYnVpbGQvZ3VpbGUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxk L21hdmVuLWJ1aWxkLXN5c3RlbS5zY20JCVwKKyAgZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1z eXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvbm9kZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1 aXgvYnVpbGQvcGVybC1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvcHl0aG9uLWJ1 aWxkLXN5c3RlbS5zY20JCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50 ZXhpCmluZGV4IGIzYzE2ZTY1MDcuLmQ0NGVjYzIwMDUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRl eGkKKysrIGIvZG9jL2d1aXgudGV4aQpAQCAtNzg5NSw2ICs3ODk1LDE0IEBAIGRlY2xhcmF0aW9u LiAgSXRzIGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7KGRlZmF1bHQtbWF2ZW4tcGx1Z2lucyl9IHdo aWNoIGlzCiBhbHNvIGV4cG9ydGVkLgogQGVuZCBkZWZ2cgogCitAZGVmdnIge1NjaGVtZSBWYXJp YWJsZX0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorVGhpcyB2YXJpYWJsZSBpcyBleHBvcnRl ZCBieSBAY29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3QpfS4gIEl0CitpbXBsZW1lbnRz IGEgYnVpbGQgcHJvY2VkdXJlIGZvciBAdXJlZntodHRwczovL3d3dy5taW5ldGVzdC5uZXQsIE1p bmV0ZXN0fQorbW9kcywgd2hpY2ggY29uc2lzdHMgb2YgY29weWluZyBMdWEgY29kZSwgaW1hZ2Vz IGFuZCBvdGhlciByZXNvdXJjZXMgdG8KK3RoZSBsb2NhdGlvbiBNaW5ldGVzdCBzZWFyY2hlcyBm b3IgbW9kcy4gIFRoZSBidWlsZCBzeXN0ZW0gYWxzbyBtaW5pbWlzZXMKK1BORyBpbWFnZXMgYW5k IHZlcmlmaWVzIHRoYXQgTWluZXRlc3QgY2FuIGxvYWQgdGhlIG1vZCB3aXRob3V0IGVycm9ycy4K K0BlbmQgZGVmdnIKKwogQGRlZnZyIHtTY2hlbWUgVmFyaWFibGV9IG1pbmlmeS1idWlsZC1zeXN0 ZW0KIFRoaXMgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgQGNvZGV7KGd1aXggYnVpbGQtc3lzdGVt IG1pbmlmeSl9LiAgSXQKIGltcGxlbWVudHMgYSBtaW5pZmljYXRpb24gcHJvY2VkdXJlIGZvciBz aW1wbGUgSmF2YVNjcmlwdCBwYWNrYWdlcy4KZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVt L21pbmV0ZXN0LnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMzNlOTc1NTlkCi0tLSAvZGV2L251bGwKKysr IGIvZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsOTkgQEAKKzs7OyBH TlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENv cHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7 OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXgg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWlu ZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gY29weSkKKyAgIzp1c2Ut bW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWls ZC1zeXN0ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzpleHBvcnQgKG1pbmV0 ZXN0LW1vZC1idWlsZC1zeXN0ZW0pKQorCis7OworOzsgQnVpbGQgcHJvY2VkdXJlIGZvciBtaW5l dGVzdCBtb2RzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24KKzs7IG9mIOKA mGNvcHktYnVpbGQtc3lzdGVt4oCZLgorOzsKKzs7IENvZGU6CisKKzs7IExhemlseSByZXNvbHZl IHRoZSBiaW5kaW5ncyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCisoZGVmaW5lIChk ZWZhdWx0LW9wdGlwbmcpCisgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lk IGEgY2lyY3VsYXIgZGVwZW5kZW5jeS4KKyAgKG1vZHVsZS1yZWYgKHJlc29sdmUtaW50ZXJmYWNl ICcoZ251IHBhY2thZ2VzIGltYWdlKSkgJ29wdGlwbmcpKQorCisoZGVmaW5lIChkZWZhdWx0LW1p bmV0ZXN0KQorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMg Z2FtZXMpKSAnbWluZXRlc3QpKQorCisoZGVmaW5lIChkZWZhdWx0LXh2ZmItcnVuKQorICAobW9k dWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgeG9yZykpICd4dmZiLXJ1 bikpCisKKyhkZWZpbmUgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxk LXNpZGUgbW9kdWxlcyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIG1pbmV0 ZXN0LWJ1aWxkLXN5c3RlbSkKKyAgICAsQCVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKKwor KGRlZmluZSAlZGVmYXVsdC1tb2R1bGVzCisgIDs7IE1vZHVsZXMgaW4gc2NvcGUgaW4gdGhlIGJ1 aWxkLXNpZGUgZW52aXJvbm1lbnQuCisgICcoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkK KyAgICAoZ3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQg dXRpbHMpKSkKKworKGRlZmluZSAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMpCisgICJSZXR1 cm4gdGhlIGxpc3Qgb2YgKE5BTUUgUEFDS0FHRSBPVVRQVVQpIG9yIChOQU1FIFBBQ0tBR0UpIHR1 cGxlcyBvZgorc3RhbmRhcmQgcGFja2FnZXMgdXNlZCBhcyBpbXBsaWNpdCBpbnB1dHMgb2YgdGhl IE1pbmV0ZXN0IGJ1aWxkIHN5c3RlbS4iCisgIGAoKCJ4dmZiLXJ1biIgLChkZWZhdWx0LXh2ZmIt cnVuKSkKKyAgICAoIm9wdGlwbmciICwoZGVmYXVsdC1vcHRpcG5nKSkKKyAgICAoIm1pbmV0ZXN0 IiAsKGRlZmF1bHQtbWluZXRlc3QpKQorICAgICxAKGZpbHRlciAobGFtYmRhIChpbnB1dCkKKyAg ICAgICAgICAgICAgICAobWVtYmVyIChjYXIgaW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAg ICAnKCJsaWJjIiAidGFyIiAiZ3ppcCIgImJ6aXAyIiAieHoiICJsb2NhbGVzIikpKQorICAgICAg ICAgICAgICAoc3RhbmRhcmQtcGFja2FnZXMpKSkpCisKKyhkZWZpbmUqIChsb3dlci1tb2QgbmFt ZSAjOmtleSAoaW1wbGljaXQtaW5wdXRzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAg ICAgICAgICAgICAgICM6cmVzdCBhcmd1bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5 c3RlbS1sb3dlciBnbnUtYnVpbGQtc3lzdGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBu YW1lCisgICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyBhcmd1bWVudHMKKyAg ICAgICAgICAgOzsgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSBhZGRzIGltcGxpY2l0IGlucHV0 cyBieSBpdHNlbGYsCisgICAgICAgICAgIDs7IHNvIGRvbid0IGxldCBnbnUtYnVpbGQtc3lzdGVt IGFkZCBpdHMgb3duIGltcGxpY2l0IGlucHV0cworICAgICAgICAgICA7OyBhcyB3ZWxsLgorICAg ICAgICAgICAoKCM6aW1wbGljaXQtaW5wdXRzPyBpbXBsaWNpdC1pbnB1dHM/ICN0KQorICAgICAg ICAgICAgI2YpCisgICAgICAgICAgICgoIzppbXBsaWNpdC1jcm9zcy1pbnB1dHM/IGltcGxpY2l0 LWNyb3NzLWlucHV0cz8gI3QpCisgICAgICAgICAgICAjZikKKyAgICAgICAgICAgKCgjOmltcG9y dGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcyAlbWluZXRlc3QtYnVpbGQtc3lzdGVtLW1vZHVs ZXMpCisgICAgICAgICAgICBpbXBvcnRlZC1tb2R1bGVzKQorICAgICAgICAgICAoKCM6bW9kdWxl cyBtb2R1bGVzICVkZWZhdWx0LW1vZHVsZXMpCisgICAgICAgICAgICBtb2R1bGVzKQorICAgICAg ICAgICAoKCM6cGhhc2VzIHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKKyAgICAgICAgICAgIHBo YXNlcykKKyAgICAgICAgICAgOzsgRW5zdXJlIG5vdGhpbmcgc25lYWtzIGludG8gdGhlIGNsb3N1 cmUuCisgICAgICAgICAgICgoIzphbGxvd2VkLXJlZmVyZW5jZXMgYWxsb3dlZC1yZWZlcmVuY2Vz ICcoKSkKKyAgICAgICAgICAgIGFsbG93ZWQtcmVmZXJlbmNlcykKKyAgICAgICAgICAgOzsgQWRk IHRoZSBpbXBsaWNpdCBpbnB1dHMuCisgICAgICAgICAgICgoIzpuYXRpdmUtaW5wdXRzIG5hdGl2 ZS1pbnB1dHMgJygpKQorICAgICAgICAgICAgKGlmIGltcGxpY2l0LWlucHV0cz8KKyAgICAgICAg ICAgICAgICAoYXBwZW5kIG5hdGl2ZS1pbnB1dHMgKHN0YW5kYXJkLW1pbmV0ZXN0LXBhY2thZ2Vz KSkKKyAgICAgICAgICAgICAgICBuYXRpdmUtaW5wdXRzKSkpKSkKKworKGRlZmluZSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtCisgIChidWlsZC1zeXN0ZW0KKyAgICAobmFtZSAnbWluZXRlc3Qt bW9kKQorICAgIChkZXNjcmlwdGlvbiAiVGhlIGJ1aWxkIHN5c3RlbSBmb3IgbWluZXRlc3QgbW9k cyIpCisgICAgKGxvd2VyIGxvd2VyLW1vZCkpKQorCis7OzsgbWluZXRlc3Quc2NtIGVuZHMgaGVy ZQpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3Vp eC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmIwNTFkOWMyODgKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxk L21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KQEAgLTAsMCArMSwyMjUgQEAKKzs7OyBDb3B5cmln aHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7 OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7 OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7 OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWluZXRlc3QtYnVpbGQt c3lzdGVtKQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOnVzZS1t b2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJkZWxpbSkKKyAgIzp1 c2UtbW9kdWxlIChpY2UtOSByZWNlaXZlKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQor ICAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGdu dTopCisgICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgY29weS1idWlsZC1zeXN0ZW0pICM6cHJl Zml4IGNvcHk6KQorICAjOmV4cG9ydCAoJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgICAgbW9k LWluc3RhbGwtcGxhbiBtaW5pbWlzZS1wbmcgcmVhZC1tb2QtbmFtZSBjaGVjaykpCisKKzs7IChn dWl4IGJ1aWxkIGNvcHktYnVpbGQtc3lzdGVtKSBkb2VzIG5vdCBleHBvcnQgJ2luc3RhbGwnLgor KGRlZmluZSBjb3B5Omluc3RhbGwKKyAgKGFzc29jLXJlZiBjb3B5OiVzdGFuZGFyZC1waGFzZXMg J2luc3RhbGwpKQorCisoZGVmaW5lIChtb2QtaW5zdGFsbC1wbGFuIG1vZC1uYW1lKQorICBgKCgi LiIgLChzdHJpbmctYXBwZW5kICJzaGFyZS9taW5ldGVzdC9tb2RzLyIgbW9kLW5hbWUpCisgICAg IDs7IE9ubHkgaW5zdGFsbCBmaWxlcyB0aGF0IHdpbGwgYWN0dWFsbHkgYmUgdXNlZCBhdCBydW4g dGltZS4KKyAgICAgOzsgVGhpcyBjYW4gc2F2ZSBhIGxpdHRsZSBkaXNrIHNwYWNlLgorICAgICA7 OworICAgICA7OyBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC9taW5ldGVzdC9ibG9i L21hc3Rlci9kb2MvbHVhX2FwaS50eHQ+CisgICAgIDs7IGZvciBhbiBpbmNvbXBsZSBsaXN0IG9m IGZpbGVzIHRoYXQgY2FuIGJlIGZvdW5kIGluIG1vZHMuCisgICAgICM6aW5jbHVkZSAoIm1vZC5j b25mIiAibW9kcGFjay5jb25mIiAic2V0dGluZ3R5cGVzLnR4dCIgImRlcGVuZHMudHh0IgorICAg ICAgICAgICAgICAgICJkZXNjcmlwdGlvbi50eHQiKQorICAgICAjOmluY2x1ZGUtcmVnZXhwICgi Lmx1YSQiICIucG5nJCIgIi5vZ2ckIiAiLm9iaiQiICIuYjNkJCIgIi50ciQiCisgICAgICAgICAg ICAgICAgICAgICAgICIubXRzJCIpKSkpCisKKyhkZWZpbmUqIChndWVzcy1tb2QtbmFtZSAjOmtl eSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiVHJ5IHRvIGRldGVybWluZSB0aGUgbmFt ZSBvZiB0aGUgbW9kIG9yIG1vZHBhY2sgdGhhdCBpcyBiZWluZyBidWlsdC4KK0lmIGl0IGlzIHVu a25vd24sIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIgorICA7OyBNaW5ldGVzdCBkb2Vzbid0IGNh cmUgYWJvdXQgdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiAic2hhcmUvbWluZXRlc3QvbW9kcyIKKyAg Ozsgc28gdGhlcmUgaXMgbm8gdGVjaG5pY2FsIHByb2JsZW0gaWYgdGhlIGRpcmVjdG9yeSBuYW1l cyBkb24ndCBtYXRjaAorICA7OyB0aGUgbW9kIG5hbWVzLiAgVGhlIGRpcmVjdG9yeSBjYW4gYXBw ZWFyIGluIHRoZSBHVUkgaWYgdGhlIG1vZHBhY2sKKyAgOzsgZG9lc24ndCBoYXZlIHRoZSAnbmFt ZScgc2V0IHRob3VnaCwgc28gdHJ5IHRvIG1ha2UgdGhlIGd1ZXNzLgorICAoZGVmaW5lIChndWVz cykKKyAgICAobGV0KiAoKHNvdXJjZSAoYXNzb2MtcmVmIGlucHV0cyAic291cmNlIikpCisgICAg ICAgICAgIChmaWxlLW5hbWUgKGJhc2VuYW1lIHNvdXJjZSkpCisgICAgICAgICAgIDs7IFRoZSAi bWluZXRlc3QtIiBwcmVmaXggaXMgbm90IGluZm9ybWF0aXZlLCBzbyBzdHJpcCBpdC4KKyAgICAg ICAgICAgKGZpbGUtbmFtZSAoaWYgKHN0cmluZy1wcmVmaXg/ICJtaW5ldGVzdC0iIGZpbGUtbmFt ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlLW5hbWUgKHN0cmlu Zy1sZW5ndGggIm1pbmV0ZXN0LSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLW5h bWUpKQorICAgICAgICAgICA7OyBTdHJpcCAiLWNoZWNrb3V0IiBzdWZmaXhlcyBvZiBnaXQgY2hl Y2tvdXRzLgorICAgICAgICAgICAoZmlsZS1uYW1lIChpZiAoc3RyaW5nLXN1ZmZpeD8gIi1jaGVj a291dCIgZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZp bGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAoc3RyaW5nLWxlbmd0aCBmaWxlLW5hbWUp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGgg Ii1taW5ldGVzdCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS1uYW1lKSkKKyAg ICAgICAgICAgKGZpcnN0LWRvdCAoc3RyaW5nLWluZGV4IGZpbGUtbmFtZSAjXC4pKQorICAgICAg ICAgICA7OyBJZiB0aGUgc291cmNlIGNvZGUgaXMgaW4gYW4gYXJjaGl2ZSAoLnRhci5neiwgLnpp cCwgLi4uKSwKKyAgICAgICAgICAgOzsgc3RyaXAgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgICAg KGZpbGUtbmFtZSAoaWYgZmlyc3QtZG90CisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJz dHJpbmcgZmlsZS1uYW1lIDAgZmlyc3QtZG90KQorICAgICAgICAgICAgICAgICAgICAgICAgICBm aWxlLW5hbWUpKSkKKyAgICAgIChmb3JtYXQgKGN1cnJlbnQtZXJyb3ItcG9ydCkKKyAgICAgICAg ICAgICAgIndhcm5pbmc6IHRoZSBtb2RwYWNrIH5hIGRpZCBub3Qgc2V0ICduYW1lJyBpbiAnbW9k cGFjay5jb25mJ34lIgorICAgICAgICAgICAgICBmaWxlLW5hbWUpCisgICAgICBmaWxlLW5hbWUp KQorICAoY29uZCAoKGZpbGUtZXhpc3RzPyAibW9kLmNvbmYiKQorICAgICAgICAgKHJlYWQtbW9k LW5hbWUgIm1vZC5jb25mIikpCisgICAgICAgICgoZmlsZS1leGlzdHM/ICJtb2RwYWNrLmNvbmYi KQorICAgICAgICAgKHJlYWQtbW9kLW5hbWUgIm1vZHBhY2suY29uZiIgZ3Vlc3MpKQorICAgICAg ICAoI3QgKGd1ZXNzKSkpKQorCisoZGVmaW5lKiAoaW5zdGFsbCAjOmtleSBpbnB1dHMgIzphbGxv dy1vdGhlci1rZXlzICM6cmVzdCBhcmd1bWVudHMpCisgIChhcHBseSBjb3B5Omluc3RhbGwKKyAg ICAgICAgICM6aW5zdGFsbC1wbGFuIChtb2QtaW5zdGFsbC1wbGFuIChhcHBseSBndWVzcy1tb2Qt bmFtZSBhcmd1bWVudHMpKQorICAgICAgICAgYXJndW1lbnRzKSkKKworKGRlZmluZSAlcG5nLW1h Z2ljLWJ5dGVzCisgIDs7IE1hZ2ljIGJ5dGVzIG9mIFBORyBpbWFnZXMsIHNlZSDigJg1LjIgUE5H IHNpZ25hdHVyZXPigJkgaW4KKyAgOzsg4oCYUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyAoUE5H KSBTcGVjaWZpY2F0aW9uIChTZWNvbmQgRWRpdGlvbinigJkKKyAgOzsgb24gPGh0dHBzOi8vd3d3 LnczLm9yZy9UUi9QTkcvPi4KKyAgI3Z1OCgxMzcgODAgNzggNzEgMTMgMTAgMjYgMTApKQorCiso ZGVmaW5lIHBuZy1maWxlPworICAoKEBAIChndWl4IGJ1aWxkIHV0aWxzKSBmaWxlLWhlYWRlci1t YXRjaCkgJXBuZy1tYWdpYy1ieXRlcykpCisKKyhkZWZpbmUqIChtaW5pbWlzZS1wbmcgIzprZXkg aW5wdXRzIG5hdGl2ZS1pbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiTWluaW1pc2UgUE5H IGltYWdlcyBmb3VuZCBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnkuIgorICAoZGVmaW5lIG9wdGlw bmcgKHdoaWNoICJvcHRpcG5nIikpCisgIChkZWZpbmUgKG9wdGltaXNlIGltYWdlKQorICAgIChm b3JtYXQgI3QgIk9wdGltaXNpbmcgfmF+JSIgaW1hZ2UpCisgICAgKG1ha2UtZmlsZS13cml0YWJs ZSAoZGlybmFtZSBpbWFnZSkpCisgICAgKG1ha2UtZmlsZS13cml0YWJsZSBpbWFnZSkKKyAgICAo ZGVmaW5lIG9sZC1zaXplIChzdGF0OnNpemUgKHN0YXQgaW1hZ2UpKSkKKyAgICA7OyBUaGUgbW9k ICJ0ZWNobmljIiBoYXMgYSBmaWxlICJ0ZWNobmljX211c2ljX3BsYXllcl90b3AucG5nIiB0aGF0 CisgICAgOzsgYWN0dWFsbHkgaXMgYSBKUEVHIGZpbGUsIHNlZQorICAgIDs7IDxodHRwczovL2dp dGh1Yi5jb20vbWluZXRlc3QtbW9kcy90ZWNobmljL2lzc3Vlcy81OTA+LgorICAgIChpZiAocG5n LWZpbGU/IGltYWdlKQorICAgICAgICAoaW52b2tlIG9wdGlwbmcgIi1vNCIgIi1xdWlldCIgaW1h Z2UpCisgICAgICAgIChmb3JtYXQgI3QgIndhcm5pbmc6IHNraXBwaW5nIH5hIGJlY2F1c2UgaXQn cyBub3QgYWN0dWFsbHkgYSBQTkcgaW1hZ2V+JSIKKyAgICAgICAgICAgICAgICBpbWFnZSkpCisg ICAgKGRlZmluZSBuZXctc2l6ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAgKHZhbHVl cyBvbGQtc2l6ZSBuZXctc2l6ZSkpCisgIChkZWZpbmUgZmlsZXMgKGZpbmQtZmlsZXMgIi4iICIu cG5nJCIpKQorICAobGV0IGxvb3AgKCh0b3RhbC1vbGQtc2l6ZSAwKQorICAgICAgICAgICAgICh0 b3RhbC1uZXctc2l6ZSAwKQorICAgICAgICAgICAgIChpbWFnZXMgKGZpbmQtZmlsZXMgIi4iICIu cG5nJCIpKSkKKyAgICAoY29uZCAoKHBhaXI/IGltYWdlcykKKyAgICAgICAgICAgKHJlY2VpdmUg KG9sZC1zaXplIG5ldy1zaXplKQorICAgICAgICAgICAgICAgKG9wdGltaXNlIChjYXIgaW1hZ2Vz KSkKKyAgICAgICAgICAgICAobG9vcCAoKyB0b3RhbC1vbGQtc2l6ZSBvbGQtc2l6ZSkKKyAgICAg ICAgICAgICAgICAgICAoKyB0b3RhbC1uZXctc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAg ICAgICAoY2RyIGltYWdlcykpKSkKKyAgICAgICAgICAoKD0gdG90YWwtb2xkLXNpemUgMCkKKyAg ICAgICAgICAgKGZvcm1hdCAjdCAiVGhlcmUgd2VyZSBubyBQTkcgaW1hZ2VzIHRvIG1pbmltaXNl LiIpKQorICAgICAgICAgICgjdAorICAgICAgICAgICAoZm9ybWF0ICN0ICJNaW5pbWlzYXRpb24g cmVkdWNlZCBzaXplIG9mIGltYWdlcyBieSB+LDJmJSAofiwyZiBNaUIgdG8gfiwyZiBNaUIpfiUi CisgICAgICAgICAgICAgICAgICAgKCogMTAwLjAgKC0gMSAoLyB0b3RhbC1uZXctc2l6ZSB0b3Rh bC1vbGQtc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICgvIHRvdGFsLW9sZC1zaXplIChleHB0 IDEwMjQgMikpCisgICAgICAgICAgICAgICAgICAgKC8gdG90YWwtbmV3LXNpemUgKGV4cHQgMTAy NCAyKSkpKSkpKQorCisoZGVmaW5lIG5hbWUtcmVnZXhwIChtYWtlLXJlZ2V4cCAiXm5hbWVbIF0q PSguKykkIikpCisKKyhkZWZpbmUqIChyZWFkLW1vZC1uYW1lIG1vZC5jb25mICM6b3B0aW9uYWwg bm90LWZvdW5kKQorICAiUmVhZCB0aGUgbmFtZSBvZiBhIG1vZCBmcm9tIE1PRC5DT05GLiAgSWYg TU9ELkNPTkYKK2RvZXMgbm90IGhhdmUgYSBuYW1lIGZpZWxkIGFuZCBOT1QtRk9VTkQgaXMgI2Zh bHNlLCByYWlzZSBhbgorZXJyb3IuICBJZiBOT1QtRk9VTkQgaXMgVFJVRSwgY2FsbCBOT1QtRk9V TkQgaW5zdGVhZC4iCisgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSBtb2QuY29uZgorICAgIChsYW1i ZGEgKHBvcnQpCisgICAgICAobGV0IGxvb3AgKCkKKyAgICAgICAgKGRlZmluZSBsaW5lIChyZWFk LWxpbmUgcG9ydCkpCisgICAgICAgIChpZiAoZW9mLW9iamVjdD8gbGluZSkKKyAgICAgICAgICAg IChpZiBub3QtZm91bmQKKyAgICAgICAgICAgICAgICAobm90LWZvdW5kKQorICAgICAgICAgICAg ICAgIChlcnJvciAifmEgZG9lcyBub3QgaGF2ZSBhICduYW1lJyBmaWVsZCIgbW9kLmNvbmYpKQor ICAgICAgICAgICAgKGxldCAoKG1hdGNoIChyZWdleHAtZXhlYyBuYW1lLXJlZ2V4cCBsaW5lKSkp CisgICAgICAgICAgICAgIChpZiAocmVnZXhwLW1hdGNoPyBtYXRjaCkKKyAgICAgICAgICAgICAg ICAgIChzdHJpbmctdHJpbS1ib3RoIChtYXRjaDpzdWJzdHJpbmcgbWF0Y2ggMSkgI1wgKQorICAg ICAgICAgICAgICAgICAgKGxvb3ApKSkpKSkpKQorCisoZGVmaW5lKiAoY2hlY2sgIzprZXkgb3V0 cHV0cyB0ZXN0cz8gIzphbGxvdy1vdGhlci1rZXlzKQorICAiVGVzdCB3aGV0aGVyIHRoZSBtb2Qg bG9hZHMuICBUaGUgbW9kIG11c3QgZmlyc3QgYmUgaW5zdGFsbGVkIGZpcnN0LiIKKyAgKGRlZmlu ZSAoYWxsLW1vZC1uYW1lcyBkaXJlY3RvcmllcykKKyAgICAoYXBwZW5kLW1hcAorICAgICAobGFt YmRhIChkaXJlY3RvcnkpCisgICAgICAgKG1hcCByZWFkLW1vZC1uYW1lIChmaW5kLWZpbGVzIGRp cmVjdG9yeSAibW9kLmNvbmYiKSkpCisgICAgIGRpcmVjdG9yaWVzKSkKKyAgKHdoZW4gdGVzdHM/ CisgICAgKG1rZGlyICJndWl4X3Rlc3R3b3JsZCIpCisgICAgOzsgQWRkIHRoZSBtb2QgdG8gdGhl IG1vZCBzZWFyY2ggcGF0aCwgc3VjaCB0aGF0IE1pbmV0ZXN0IGNhbiBmaW5kIGl0LgorICAgIChz ZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIgorICAgICAgICAgICAgKGxpc3QtPnNlYXJjaC1wYXRo LWFzLXN0cmluZworICAgICAgICAgICAgIChjb25zCisgICAgICAgICAgICAgIChzdHJpbmctYXBw ZW5kIChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikgIi9zaGFyZS9taW5ldGVzdC9tb2RzIikKKyAg ICAgICAgICAgICAgKHNlYXJjaC1wYXRoLWFzLXN0cmluZy0+bGlzdAorICAgICAgICAgICAgICAg KG9yIChnZXRlbnYgIk1JTkVURVNUX01PRF9QQVRIIikgIiIpKSkKKyAgICAgICAgICAgICAiOiIp KQorICAgICh3aXRoLWRpcmVjdG9yeS1leGN1cnNpb24gImd1aXhfdGVzdHdvcmxkIgorICAgICAg KHNldGVudiAiSE9NRSIgKGdldGN3ZCkpCisgICAgICA7OyBDcmVhdGUgYSB3b3JsZCBpbiB3aGlj aCBhbGwgbW9kcyBhcmUgbG9hZGVkLgorICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtZmlsZSAid29y bGQubXQiCisgICAgICAgIChsYW1iZGEgKHBvcnQpCisgICAgICAgICAgKGRpc3BsYXkKKyAgICAg ICAgICAgImdhbWVpZCA9IG1pbmV0ZXN0Cit3b3JsZF9uYW1lID0gZ3VpeF90ZXN0d29ybGQKK2Jh Y2tlbmQgPSBzcWxpdGUzCitwbGF5ZXJfYmFja2VuZCA9IHNxbGl0ZTMKK2F1dGhfYmFja2VuZCA9 IHNxbGl0ZTMKKyIgcG9ydCkKKyAgICAgICAgICAoZm9yLWVhY2gKKyAgICAgICAgICAgKGxhbWJk YSAobW9kKQorICAgICAgICAgICAgIChmb3JtYXQgcG9ydCAibG9hZF9tb2RffmEgPSB0cnVlfiUi IG1vZCkpCisgICAgICAgICAgIChhbGwtbW9kLW5hbWVzIChzZWFyY2gtcGF0aC1hcy1zdHJpbmct Pmxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRlbnYgIk1JTkVURVNUX01PRF9Q QVRIIikpKSkpKQorICAgICAgKHJlY2VpdmUgKHBvcnQgcGlkKQorICAgICAgICAgICgoQEAgKGd1 aXggYnVpbGQgdXRpbHMpIG9wZW4tcGlwZS13aXRoLXN0ZGVycikKKyAgICAgICAgICAgInh2ZmIt cnVuIiAiLS0iICJtaW5ldGVzdCIgIi0taW5mbyIgIi0td29ybGQiICIuIiAiLS1nbyIpCisgICAg ICAgIChmb3JtYXQgI3QgIlN0YXJ0ZWQgTWluZXRlc3Qgd2l0aCBhbGwgbW9kcyBsb2FkZWQgZm9y IHRlc3Rpbmd+JSIpCisgICAgICAgIDs7IFNjYW4gdGhlIG91dHB1dCBmb3IgZXJyb3IgbWVzc2Fn ZXMuCisgICAgICAgIDs7IFdoZW4gdGhlIHBsYXllciBoYXMgam9pbmVkIHRoZSBzZXJ2ZXIsIHN0 b3AgbWluZXRlc3QuCisgICAgICAgIChkZWZpbmUgKGVycm9yPyBsaW5lKQorICAgICAgICAgIChh bmQgKHN0cmluZz8gbGluZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFpbnMgbGluZSAi OiBFUlJPUlsiKSkpCisgICAgICAgIChkZWZpbmUgKHN0b3A/IGxpbmUpCisgICAgICAgICAgKGFu ZCAoc3RyaW5nPyBsaW5lKQorICAgICAgICAgICAgICAgKHN0cmluZy1jb250YWlucyBsaW5lICJB Q1RJT05bU2VydmVyXTogc2luZ2xlcGxheWVyIFsxMjcuMC4wLjFdIGpvaW5zIGdhbWUuIikpKQor ICAgICAgICAobGV0IGxvb3AgKCkKKyAgICAgICAgICAobWF0Y2ggKHJlYWQtbGluZSBwb3J0KQor ICAgICAgICAgICAgKCg/IGVycm9yPyBsaW5lKQorICAgICAgICAgICAgIChlcnJvciAibWluZXRl c3QgcmFpc2VkIGFuIGVycm9yOiB+YSIgbGluZSkpCisgICAgICAgICAgICAoKD8gc3RvcD8pCisg ICAgICAgICAgICAgKGtpbGwgcGlkIFNJR0lOVCkKKyAgICAgICAgICAgICAoY2xvc2UtcG9ydCBw b3J0KQorICAgICAgICAgICAgICh3YWl0cGlkIHBpZCkpCisgICAgICAgICAgICAoKD8gc3RyaW5n PyBsaW5lKQorICAgICAgICAgICAgIChkaXNwbGF5IGxpbmUpCisgICAgICAgICAgICAgKG5ld2xp bmUpCisgICAgICAgICAgICAgKGxvb3ApKQorICAgICAgICAgICAgKCg/IGVvZi1vYmplY3Q/KQor ICAgICAgICAgICAgIChlcnJvciAibWluZXRlc3QgZGlkbid0IHN0YXJ0IikpKSkpKSkpCisKKyhk ZWZpbmUgJXN0YW5kYXJkLXBoYXNlcworICAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBo YXNlcworICAgIChkZWxldGUgJ2Jvb3RzdHJhcCkKKyAgICAoZGVsZXRlICdjb25maWd1cmUpCisg ICAgKGFkZC1iZWZvcmUgJ2J1aWxkICdtaW5pbWlzZS1wbmcgbWluaW1pc2UtcG5nKQorICAgIChk ZWxldGUgJ2J1aWxkKQorICAgIChkZWxldGUgJ2NoZWNrKQorICAgIChyZXBsYWNlICdpbnN0YWxs IGluc3RhbGwpCisgICAgOzsgVGhlICdjaGVjaycgcGhhc2UgcmVxdWlyZXMgdGhlIG1vZCB0byBi ZSBpbnN0YWxsZWQsCisgICAgOzsgc28gbW92ZSB0aGUgJ2NoZWNrJyBwaGFzZSBhZnRlciB0aGUg J2luc3RhbGwnIHBoYXNlLgorICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwgJ2NoZWNrIGNoZWNrKSkp CisKKzs7OyBtaW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVyZQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename*0=0005-import-utils-Recognise-GPL-3.0-or-later-and-friends.patc; filename*1=h Content-Type: text/x-patch; name="0005-import-utils-Recognise-GPL-3.0-or-later-and-friends.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ODU4ZDQzZTUxY2RmZGJmNGNhMDIyMzk5NDY5ZDk5ZjQzN2JmNTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFRodSwgNSBBdWcgMjAyMSAyMTowMDo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MjBdIGltcG9ydC91dGlsczogUmVjb2duaXNlIEdQTC0zLjAtb3ItbGF0ZXIgYW5kIGZyaWVuZHMu CgoqIGd1aXgvaW1wb3J0L3V0aWxzLnNjbSAoc3BkeC1zdHJpbmctPmxpY2Vuc2UpOiBSZWNvZ25p c2UKICBHUEwtTi1vbmx5IGFuZCBHUEwtTi1vci1sYXRlci4gIExpa2V3aXNlIGZvciBMR1BMIGFu ZCBBR1BMLgotLS0KIGd1aXgvaW1wb3J0L3V0aWxzLnNjbSB8IDE4ICsrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9ndWl4L2lt cG9ydC91dGlscy5zY20gYi9ndWl4L2ltcG9ydC91dGlscy5zY20KaW5kZXggZDgxNzMxOGE5MS4u ZDFiODA3NmRkZCAxMDA2NDQKLS0tIGEvZ3VpeC9pbXBvcnQvdXRpbHMuc2NtCisrKyBiL2d1aXgv aW1wb3J0L3V0aWxzLnNjbQpAQCAtMTMzLDggKzEzMywxNCBAQCBvZiB0aGUgc3RyaW5nIFZFUlNJ T04gaXMgcmVwbGFjZWQgYnkgdGhlIHN5bWJvbCAndmVyc2lvbi4iCiAgIDs7IFBsZWFzZSB1cGRh dGUgZ3VpeC9saWNlbnNlcy5zY20gd2hlbiBtb2RpZnlpbmcKICAgOzsgdGhpcyBsaXN0IHRvIGF2 b2lkIG1pc21hdGNoZXMuCiAgIChtYXRjaCBzdHIKKyAgICA7OyAiR1BMLU4rIiBoYXMgYmVlbiBk ZXByZWNhdGVkIGluIGZhdm91ciBvZiAiR1BMLU4tb3ItbGF0ZXIiLgorICAgIDs7ICJHUEwtTiIg aGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgIkdQTC1OLW9ubHkiCisgICAgOzsgb3Ig IkdQTC1OLW9yLWxhdGVyIiBhcyBhcHByb3ByaWF0ZS4gIExpa2V3aXNlIGZvciBMR1BMCisgICAg OzsgYW5kIEFHUEwKICAgICAoIkFHUEwtMS4wIiAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6 YWdwbDEpCiAgICAgKCJBR1BMLTMuMCIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmFncGwz KQorICAgICgiQUdQTC0zLjAtb25seSIgICAgICAgICAgICAgICAnbGljZW5zZTphZ3BsMykKKyAg ICAoIkFHUEwtMy4wLW9yLWxhdGVyIiAgICAgICAgICAgJ2xpY2Vuc2U6YWdwbDMrKQogICAgICgi QXBhY2hlLTEuMSIgICAgICAgICAgICAgICAgICAnbGljZW5zZTphc2wxLjEpCiAgICAgKCJBcGFj aGUtMi4wIiAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmFzbDIuMCkKICAgICAoIkJTTC0xLjAi ICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Ym9vc3QxLjApCkBAIC0xNjEsMTEgKzE2Nywx NyBAQCBvZiB0aGUgc3RyaW5nIFZFUlNJT04gaXMgcmVwbGFjZWQgYnkgdGhlIHN5bWJvbCAndmVy c2lvbi4iCiAgICAgKCJHRkRMLTEuMyIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmZkbDEu MyspCiAgICAgKCJHaWZ0d2FyZSIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmdpZnR3YXJl KQogICAgICgiR1BMLTEuMCIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKQorICAg ICgiR1BMLTEuMC1vbmx5IiAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKQogICAgICgiR1BM LTEuMCsiICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKykKKyAgICAoIkdQTC0xLjAt b3ItbGF0ZXIiICAgICAgICAgICAgJ2xpY2Vuc2U6Z3BsMSspCiAgICAgKCJHUEwtMi4wIiAgICAg ICAgICAgICAgICAgICAgICdsaWNlbnNlOmdwbDIpCisgICAgKCJHUEwtMi4wLW9ubHkiICAgICAg ICAgICAgICAgICdsaWNlbnNlOmdwbDIpCiAgICAgKCJHUEwtMi4wKyIgICAgICAgICAgICAgICAg ICAgICdsaWNlbnNlOmdwbDIrKQorICAgICgiR1BMLTIuMC1vci1sYXRlciIgICAgICAgICAgICAn bGljZW5zZTpncGwyKykKICAgICAoIkdQTC0zLjAiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vu c2U6Z3BsMykKKyAgICAoIkdQTC0zLjAtb25seSIgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Z3Bs MykKICAgICAoIkdQTC0zLjArIiAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Z3BsMyspCisg ICAgKCJHUEwtMy4wLW9yLWxhdGVyIiAgICAgICAgICAgICdsaWNlbnNlOmdwbDMrKQogICAgICgi SVNDIiAgICAgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTppc2MpCiAgICAgKCJJSkciICAg ICAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmlqZykKICAgICAoIkltbGliMiIgICAgICAg ICAgICAgICAgICAgICAgJ2xpY2Vuc2U6aW1saWIyKQpAQCAtMTczLDExICsxODUsMTcgQEAgb2Yg dGhlIHN0cmluZyBWRVJTSU9OIGlzIHJlcGxhY2VkIGJ5IHRoZSBzeW1ib2wgJ3ZlcnNpb24uIgog ICAgICgiSVBMLTEuMCIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTppYm1wbDEuMCkKICAg ICAoIkxBTC0xLjMiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6bGFsMS4zKQogICAgICgi TEdQTC0yLjAiICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKQorICAgICgiTEdQ TC0yLjAtb25seSIgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKQogICAgICgiTEdQTC0y LjArIiAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKykKKyAgICAoIkxHUEwtMi4w LW9yLWxhdGVyIiAgICAgICAgICAgJ2xpY2Vuc2U6bGdwbDIuMCspCiAgICAgKCJMR1BMLTIuMSIg ICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjEpCisgICAgKCJMR1BMLTIuMS1vbmx5 IiAgICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjEpCiAgICAgKCJMR1BMLTIuMSsiICAgICAg ICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjErKQorICAgICgiTEdQTC0yLjEtb3ItbGF0ZXIi ICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4xKykKICAgICAoIkxHUEwtMy4wIiAgICAgICAgICAg ICAgICAgICAgJ2xpY2Vuc2U6bGdwbDMpCisgICAgKCJMR1BMLTMuMC1vbmx5IiAgICAgICAgICAg ICAgICdsaWNlbnNlOmxncGwzKQogICAgICgiTEdQTC0zLjArIiAgICAgICAgICAgICAgICAgICAn bGljZW5zZTpsZ3BsMyspCisgICAgKCJMR1BMLTMuMC1vci1sYXRlciIgICAgICAgICAgICdsaWNl bnNlOmxncGwzKykKICAgICAoIk1QTC0xLjAiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6 bXBsMS4wKQogICAgICgiTVBMLTEuMSIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTptcGwx LjEpCiAgICAgKCJNUEwtMi4wIiAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOm1wbDIuMCkK LS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0006-guix-Add-ContentDB-importer.patch" Content-Type: text/x-patch; name="0006-guix-Add-ContentDB-importer.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxZWE3NzRlN2ZmMDA3ZTYwY2Y2MTJmNGY3NGY2NTZiZTNkZTlmMWYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTQ6NDQ6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBndWl4OiBBZGQgQ29udGVudERCIGltcG9ydGVyLgoKKiBndWl4L2ltcG9ydC9jb250ZW50 ZGIuc2NtOiBOZXcgZmlsZS4KKiBndWl4L3NjcmlwdHMvaW1wb3J0L2NvbnRlbnRkYi5zY206IE5l dyBmaWxlLgoqIHRlc3RzL2NvbnRlbnRkYi5zY206IE5ldyBmaWxlLgoqIE1ha2VmaWxlLmFtIChN T0RVTEVTLCBTQ01fVEVTVFMpOiBSZWdpc3RlciB0aGVtLgoqIHBvL2d1aXgvUE9URklMRVMuaW46 IExpa2V3aXNlLgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nIGd1aXggaW1wb3J0KTogRG9jdW1l bnQgaXQuCi0tLQogTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZG9j L2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysrCiBndWl4L2ltcG9ydC9taW5l dGVzdC5zY20gICAgICAgICB8IDQ2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBn dWl4L3NjcmlwdHMvaW1wb3J0LnNjbSAgICAgICAgICB8ICAgMyArLQogZ3VpeC9zY3JpcHRzL2lt cG9ydC9taW5ldGVzdC5zY20gfCAxMTcgKysrKysrKysKIHBvL2d1aXgvUE9URklMRVMuaW4gICAg ICAgICAgICAgIHwgICAxICsKIHRlc3RzL21pbmV0ZXN0LnNjbSAgICAgICAgICAgICAgIHwgMzU1 ICsrKysrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDk3NyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9pbXBvcnQvbWluZXRl c3Quc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9zY3JpcHRzL2ltcG9ydC9taW5ldGVzdC5z Y20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9taW5ldGVzdC5zY20KCmRpZmYgLS1naXQgYS9N YWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGY0NDM5Y2U5M2IuLjYyNDM1ODM2MTYgMTAw NjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0yNjIsNiArMjYyLDcg QEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvaW1wb3J0L2pzb24uc2NtCQkJCVwKICAgZ3VpeC9p bXBvcnQva2RlLnNjbQkJCQlcCiAgIGd1aXgvaW1wb3J0L2xhdW5jaHBhZC5zY20gICAJCQlcCisg IGd1aXgvaW1wb3J0L21pbmV0ZXN0LnNjbSAgIAkJCVwKICAgZ3VpeC9pbXBvcnQvb3BhbS5zY20J CQkJXAogICBndWl4L2ltcG9ydC9wcmludC5zY20JCQkJXAogICBndWl4L2ltcG9ydC9weXBpLnNj bQkJCQlcCkBAIC0zMDQsNiArMzA1LDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvc2NyaXB0 cy9pbXBvcnQvZ28uc2NtCQkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L2hhY2thZ2Uuc2NtCQlc CiAgIGd1aXgvc2NyaXB0cy9pbXBvcnQvanNvbi5zY20gIAkJXAorICBndWl4L3NjcmlwdHMvaW1w b3J0L21pbmV0ZXN0LnNjbSAgCQlcCiAgIGd1aXgvc2NyaXB0cy9pbXBvcnQvb3BhbS5zY20JCQlc CiAgIGd1aXgvc2NyaXB0cy9pbXBvcnQvcHlwaS5zY20JCQlcCiAgIGd1aXgvc2NyaXB0cy9pbXBv cnQvc3RhY2thZ2Uuc2NtCQlcCkBAIC00NzAsNiArNDcyLDcgQEAgU0NNX1RFU1RTID0JCQkJCVwK ICAgdGVzdHMvaW1wb3J0LXV0aWxzLnNjbQkJCVwKICAgdGVzdHMvaW5mZXJpb3Iuc2NtCQkJCVwK ICAgdGVzdHMvbGludC5zY20JCQkJXAorICB0ZXN0cy9taW5ldGVzdC5zY20JCQkJXAogICB0ZXN0 cy9tb2R1bGVzLnNjbQkJCQlcCiAgIHRlc3RzL21vbmFkcy5zY20JCQkJXAogICB0ZXN0cy9uYXIu c2NtCQkJCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4 IGQ0NGVjYzIwMDUuLjQ3ODYxMDQ3ZWIgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIv ZG9jL2d1aXgudGV4aQpAQCAtMTEzMTQsNiArMTEzMTQsMzggQEAgYW5kIGdlbmVyYXRlIHBhY2th Z2UgZXhwcmVzc2lvbnMgZm9yIGFsbCB0aG9zZSBwYWNrYWdlcyB0aGF0IGFyZSBub3QgeWV0CiBp biBHdWl4LgogQGVuZCB0YWJsZQogCitAaXRlbSBjb250ZW50ZGIKK0BjaW5kZXggbWluZXRlc3QK K0BjaW5kZXggQ29udGVudERCCitJbXBvcnQgbWV0YWRhdGEgZnJvbSBAdXJlZntodHRwczovL2Nv bnRlbnQubWluZXRlc3QubmV0LCBDb250ZW50REJ9LgorSW5mb3JtYXRpb24gaXMgdGFrZW4gZnJv bSB0aGUgSlNPTi1mb3JtYXR0ZWQgbWV0YWRhdGEgcHJvdmlkZWQgdGhyb3VnaAorQHVyZWZ7aHR0 cHM6Ly9jb250ZW50Lm1pbmV0ZXN0Lm5ldC9oZWxwL2FwaS8sIENvbnRlbnREQidzIEFQSX0gYW5k CitpbmNsdWRlcyBtb3N0IHJlbGV2YW50IGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgZGVwZW5kZW5j aWVzLiAgVGhlcmUgYXJlCitzb21lIGNhdmVhdHMsIGhvd2V2ZXIuICBUaGUgbGljZW5zZSBpbmZv cm1hdGlvbiBpcyBvZnRlbiBpbmNvbXBsZXRlLgorVGhlIGNvbW1pdCdzIFNIQS0xIGlzIHNvbWV0 aW1lcyBtaXNzaW5nLiAgVGhlIGRlc2NyaXB0aW9ucyBhcmUgaW4gdGhlCitNYXJrZG93biBmb3Jt YXQsIGJ1dCBHdWl4IHVzZXMgVGV4aW5mbyBpbnN0ZWFkLiAgVGV4dHVyZSBwYWNrcyBhbmQKK3N1 YmdhbWVzIGFyZSB1bnN1cHBvcnRlZC4KKworVGhlIGNvbW1hbmQgYmVsb3cgaW1wb3J0cyBtZXRh ZGF0YSBmb3IgdGhlIE1lc2Vjb25zIG1vZCBieSBKZWlqYToKKworQGV4YW1wbGUKK2d1aXggaW1w b3J0IG1pbmV0ZXN0IEplaWphL21lc2Vjb25zCitAZW5kIGV4YW1wbGUKKworVGhlIGF1dGhvciBu YW1lIGNhbiBhbHNvIGJlIGxlZnQgb3V0OgorCitAZXhhbXBsZQorZ3VpeCBpbXBvcnQgbWluZXRl c3QgbWVzZWNvbnMKK0BlbmQgZXhhbXBsZQorCitAdGFibGUgQGNvZGUKK0BpdGVtIC0tcmVjdXJz aXZlCitAaXRlbXggLXIKK1RyYXZlcnNlIHRoZSBkZXBlbmRlbmN5IGdyYXBoIG9mIHRoZSBnaXZl biB1cHN0cmVhbSBwYWNrYWdlIHJlY3Vyc2l2ZWx5CithbmQgZ2VuZXJhdGUgcGFja2FnZSBleHBy ZXNzaW9ucyBmb3IgYWxsIHRob3NlIHBhY2thZ2VzIHRoYXQgYXJlIG5vdCB5ZXQKK2luIEd1aXgu CitAZW5kIHRhYmxlCisKIEBpdGVtIGNwYW4KIEBjaW5kZXggQ1BBTgogSW1wb3J0IG1ldGFkYXRh IGZyb20gQHVyZWZ7aHR0cHM6Ly93d3cubWV0YWNwYW4ub3JnLywgTWV0YUNQQU59LgpkaWZmIC0t Z2l0IGEvZ3VpeC9pbXBvcnQvbWluZXRlc3Quc2NtIGIvZ3VpeC9pbXBvcnQvbWluZXRlc3Quc2Nt Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjU3MjhmNDYxM2EKLS0tIC9k ZXYvbnVsbAorKysgYi9ndWl4L2ltcG9ydC9taW5ldGVzdC5zY20KQEAgLTAsMCArMSw0NjcgQEAK Kzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQor Ozs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5i ZT4KKzs7OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05V IEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7 OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7Ozsg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBpbXBvcnQgbWlu ZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgcmVjZWl2ZSkKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSB0aHJlYWRzKQorICAjOnVzZS1tb2R1 bGUgKGljZS05IGhhc2gtdGFibGUpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6 dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTExKQor ICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxz KQorICAjOnVzZS1tb2R1bGUgKGd1aXggdWkpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpMThuKQor ICAjOnVzZS1tb2R1bGUgKGd1aXggbWVtb2l6YXRpb24pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBz ZXJpYWxpemF0aW9uKQorICAjOnVzZS1tb2R1bGUgKGd1aXggaW1wb3J0IHV0aWxzKQorICAjOnVz ZS1tb2R1bGUgKGd1aXggaW1wb3J0IGpzb24pCisgICM6dXNlLW1vZHVsZSAoKGdjcnlwdCBoYXNo KSAjOnNlbGVjdCAob3Blbi1zaGEyNTYtcG9ydCBwb3J0LXNoYTI1NikpCisgICM6dXNlLW1vZHVs ZSAoanNvbikKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJhc2UzMikKKyAgIzp1c2UtbW9kdWxlIChn dWl4IGdpdCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHN0b3JlKQorICAjOmV4cG9ydCAoJWRlZmF1 bHQtc29ydC1rZXkKKyAgICAgICAgICAgICVjb250ZW50ZGItYXBpCisgICAgICAgICAgICBqc29u LT5wYWNrYWdlCisgICAgICAgICAgICBjb250ZW50ZGItZmV0Y2gKKyAgICAgICAgICAgIGVsYWJv cmF0ZS1jb250ZW50ZGItbmFtZQorICAgICAgICAgICAgbWluZXRlc3QtPmd1aXgtcGFja2FnZQor ICAgICAgICAgICAgbWluZXRlc3QtcmVjdXJzaXZlLWltcG9ydAorICAgICAgICAgICAgc29ydC1w YWNrYWdlcykpCisKKzs7IFRoZSBDb250ZW50REIgQVBJIGlzIGRvY3VtZW50ZWQgYXQKKzs7IDxo dHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0Pi4KKworKGRlZmluZSAlY29udGVudGRiLWFwaQor ICAobWFrZS1wYXJhbWV0ZXIgImh0dHBzOi8vY29udGVudC5taW5ldGVzdC5uZXQvYXBpLyIpKQor CisoZGVmaW5lIChzdHJpbmctb3ItZmFsc2UgeCkKKyAgKGFuZCAoc3RyaW5nPyB4KSB4KSkKKwor KGRlZmluZSAobmF0dXJhbC1vci1mYWxzZSB4KQorICAoYW5kIChleGFjdC1pbnRlZ2VyPyB4KSAo Pj0geCAwKSB4KSkKKworOzsgRGVzY3JpcHRpb25zIG9uIENvbnRlbnREQiB1c2UgY2FycmlhZ2Ug cmV0dXJucywgYnV0IEd1aXggZG9lc24ndC4KKyhkZWZpbmUgKGRlbGV0ZS1jciB0ZXh0KQorICAo c3RyaW5nLWRlbGV0ZSAjXGNyIHRleHQpKQorCisMCisKKzs7OworOzs7IEpTT04gbWFwcGluZ3MK Kzs7OworCis7OyBNaW5ldGVzdCBwYWNrYWdlLgorOzsKKzs7IEFQSSBlbmRwb2ludDogL3BhY2th Z2VzL0FVVEhPUi9OQU1FLworKGRlZmluZS1qc29uLW1hcHBpbmcgPHBhY2thZ2U+IG1ha2UtcGFj a2FnZSBwYWNrYWdlPworICBqc29uLT5wYWNrYWdlCisgIChhdXRob3IgICAgICAgICAgICBwYWNr YWdlLWF1dGhvcikgOyBzdHJpbmcKKyAgKGNyZWF0aW9uLWRhdGUgICAgIHBhY2thZ2UtY3JlYXRp b24tZGF0ZSA7IHN0cmluZworICAgICAgICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiKQorICAo ZG93bmxvYWRzICAgICAgICAgcGFja2FnZS1kb3dubG9hZHMpIDsgaW50ZWdlcgorICAoZm9ydW1z ICAgICAgICAgICAgcGFja2FnZS1mb3J1bXMgImZvcnVtcyIgbmF0dXJhbC1vci1mYWxzZSkKKyAg KGlzc3VlLXRyYWNrZXIgICAgIHBhY2thZ2UtaXNzdWUtdHJhY2tlciAiaXNzdWVfdHJhY2tlciIp IDsgc3RyaW5nCisgIChsaWNlbnNlICAgICAgICAgICBwYWNrYWdlLWxpY2Vuc2UpIDsgc3RyaW5n CisgIChsb25nLWRlc2NyaXB0aW9uICBwYWNrYWdlLWxvbmctZGVzY3JpcHRpb24gImxvbmdfZGVz Y3JpcHRpb24iKSA7IHN0cmluZworICAobWFpbnRhaW5lcnMgICAgICAgcGFja2FnZS1tYWludGFp bmVycyA7IGxpc3Qgb2Ygc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgIm1haW50YWluZXJz IiB2ZWN0b3ItPmxpc3QpCisgIChtZWRpYS1saWNlbnNlICAgICBwYWNrYWdlLW1lZGlhLWxpY2Vu c2UgIm1lZGlhX2xpY2Vuc2UiKSA7IHN0cmluZworICAobmFtZSAgICAgICAgICAgICAgcGFja2Fn ZS1uYW1lKSA7IHN0cmluZworICAocHJvdmlkZXMgICAgICAgICAgcGFja2FnZS1wcm92aWRlcyA7 IGxpc3Qgb2Ygc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgInByb3ZpZGVzIiB2ZWN0b3It Pmxpc3QpCisgIChyZWxlYXNlICAgICAgICAgICBwYWNrYWdlLXJlbGVhc2UpIDsgaW50ZWdlcgor ICAocmVwb3NpdG9yeSAgICAgICAgcGFja2FnZS1yZXBvc2l0b3J5ICJyZXBvIiBzdHJpbmctb3It ZmFsc2UpCisgIChzY29yZSAgICAgICAgICAgICBwYWNrYWdlLXNjb3JlKSA7IGZsb251bQorICAo c2NyZWVuc2hvdHMgICAgICAgcGFja2FnZS1zY3JlZW5zaG90cyAic2NyZWVuc2hvdHMiIHZlY3Rv ci0+bGlzdCkgOyBsaXN0IG9mIHN0cmluZ3MKKyAgKHNob3J0LWRlc2NyaXB0aW9uIHBhY2thZ2Ut c2hvcnQtZGVzY3JpcHRpb24gInNob3J0X2Rlc2NyaXB0aW9uIikgOyBzdHJpbmcKKyAgKHN0YXRl ICAgICAgICAgICAgIHBhY2thZ2Utc3RhdGUpIDsgc3RyaW5nCisgICh0YWdzICAgICAgICAgICAg ICBwYWNrYWdlLXRhZ3MgInRhZ3MiIHZlY3Rvci0+bGlzdCkgOyBsaXN0IG9mIHN0cmluZ3MKKyAg KHRodW1ibmFpbCAgICAgICAgIHBhY2thZ2UtdGh1bWJuYWlsKSA7IHN0cmluZworICAodGl0bGUg ICAgICAgICAgICAgcGFja2FnZS10aXRsZSkgOyBzdHJpbmcKKyAgKHR5cGUgICAgICAgICAgICAg IHBhY2thZ2UtdHlwZSkgOyBzdHJpbmcKKyAgKHVybCAgICAgICAgICAgICAgIHBhY2thZ2UtdXJs KSA7IHN0cmluZworICAod2Vic2l0ZSAgICAgICAgICAgcGFja2FnZS13ZWJzaXRlICJ3ZWJzaXRl IiBzdHJpbmctb3ItZmFsc2UpKQorCisoZGVmaW5lLWpzb24tbWFwcGluZyA8cmVsZWFzZT4gbWFr ZS1yZWxlYXNlIHJlbGVhc2U/CisgIGpzb24tPnJlbGVhc2UKKyAgOzsgSWYgcHJlc2VudCwgYSBn aXQgY29tbWl0IGlkZW50aWZpZWQgYnkgaXRzIGhhc2gKKyAgKGNvbW1pdCAgICAgICAgICAgICAg IHJlbGVhc2UtY29tbWl0ICJjb21taXQiIHN0cmluZy1vci1mYWxzZSkKKyAgKGRvd25sb2FkcyAg ICAgICAgICAgIHJlbGVhc2UtZG93bmxvYWRzKSA7IGludGVnZXIKKyAgKGlkICAgICAgICAgICAg ICAgICAgIHJlbGVhc2UtaWQpIDsgaW50ZWdlcgorICAobWF4LW1pbmV0ZXN0LXZlcnNpb24gcmVs ZWFzZS1tYXgtbWluZXRlc3QtdmVyc2lvbiBzdHJpbmctb3ItZmFsc2UpCisgIChtaW4tbWluZXRl c3QtdmVyc2lvbiByZWxlYXNlLW1pbi1taW5ldGVzdC12ZXJzaW9uIHN0cmluZy1vci1mYWxzZSkK KyAgKHJlbGVhc2UtZGF0ZSAgICAgICAgIHJlbGVhc2UtZGF0YSkgOyBzdHJpbmcKKyAgKHRpdGxl ICAgICAgICAgICAgICAgIHJlbGVhc2UtdGl0bGUpIDsgc3RyaW5nCisgICh1cmwgICAgICAgICAg ICAgICAgICByZWxlYXNlLXVybCkpIDsgc3RyaW5nCisKKyhkZWZpbmUtanNvbi1tYXBwaW5nIDxk ZXBlbmRlbmN5PiBtYWtlLWRlcGVuZGVuY3kgZGVwZW5kZW5jeT8KKyAganNvbi0+ZGVwZW5kZW5j eQorICAob3B0aW9uYWw/IGRlcGVuZGVuY3ktb3B0aW9uYWw/ICJpc19vcHRpb25hbCIpIDsgYm9v bAorICAobmFtZSBkZXBlbmRlbmN5LW5hbWUpIDsgc3RyaW5nCisgIChwYWNrYWdlcyBkZXBlbmRl bmN5LXBhY2thZ2VzICJwYWNrYWdlcyIgdmVjdG9yLT5saXN0KSkgOyBsaXN0IG9mIHN0cmluZ3MK KworOzsgQSBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgdGhlIC9hcGkvcGFja2FnZXMvP2ZtdD1rZXlz IGVuZHBvaW50CisoZGVmaW5lLWpzb24tbWFwcGluZyA8cGFja2FnZS9rZXlzPiBtYWtlLXBhY2th Z2Uva2V5cyBwYWNrYWdlL2tleXM/CisgIGpzb24tPnBhY2thZ2Uva2V5cworICAoYXV0aG9yIHBh Y2thZ2Uva2V5cy1hdXRob3IpIDsgc3RyaW5nCisgIChuYW1lIHBhY2thZ2Uva2V5cy1uYW1lKSAg ICAgOyBzdHJpbmcKKyAgKHR5cGUgcGFja2FnZS9rZXlzLXR5cGUpKSAgICA7IHN0cmluZworCiso ZGVmaW5lIChwYWNrYWdlLW1vZD8gcGFja2FnZSkKKyAgIklzIHRoZSBDb250ZW50REIgcGFja2Fn ZSBQQUNLQUdFIGEgbW9kPyIKKyAgOzsgQ29udGVudERCIGFsc28gaGFzIOKAmGdhbWVz4oCZIGFu ZCDigJh0ZXh0dXJlIHBhY2tz4oCZLgorICAoc3RyaW5nPT8gKHBhY2thZ2UtdHlwZSBwYWNrYWdl KSAibW9kIikpCisKKwwKKworOzs7Cis7OzsgTWFuaXB1bGF0aW5nIG5hbWVzIG9mIHBhY2thZ2Vz Cis7OzsKKzs7OyBUaGVyZSBhcmUgdGhyZWUga2luZCBvZiBuYW1lczoKKzs7OworOzs7ICAgKiBu YW1lcyBvZiBndWl4IHBhY2thZ2VzLCBlLmcuIG1pbmV0ZXN0LWJhc2ljLW1hdGVyaWFscy4KKzs7 OyAgICogbmFtZXMgb2YgbW9kcyBvbiBDb250ZW50REIsIGUuZy4gYmFzaWNfbWF0ZXJpYWxzCis7 OzsgICAqIGEgY29tYmluYXRpb24gb2YgYXV0aG9yIGFuZCBtb2QgbmFtZSBvbiBDb250ZW50REIs IGUuZy4gVmFuZXNzYUUvYmFzaWNfbWF0ZXJpYWxzCis7OzsKKworKGRlZmluZSAocGFja2FnZS1h dXRob3IvbmFtZSBwYWNrYWdlKQorICAiR2l2ZW4gYSA8cGFja2FnZT4gb2JqZWN0LCByZXR1cm4g dGhlIGNvcnJlc3BvbmRpbmcgQVVUSE9SL05BTUUgc3RyaW5nLiIKKyAgKHN0cmluZy1hcHBlbmQg KHBhY2thZ2UtYXV0aG9yIHBhY2thZ2UpICIvIiAocGFja2FnZS1uYW1lIHBhY2thZ2UpKSkKKwor KGRlZmluZSAocGFja2FnZS9rZXlzLWF1dGhvci9uYW1lIHBhY2thZ2UpCisgICJHaXZlbiBhIDxw YWNrYWdlL2tleXM+IG9iamVjdCwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIEFVVEhPUi9OQU1F IHN0cmluZy4iCisgIChzdHJpbmctYXBwZW5kIChwYWNrYWdlL2tleXMtYXV0aG9yIHBhY2thZ2Up CisgICAgICAgICAgICAgICAgICIvIiAocGFja2FnZS9rZXlzLW5hbWUgcGFja2FnZSkpKQorCiso ZGVmaW5lIChjb250ZW50ZGItPnBhY2thZ2UtbmFtZSBuYW1lKQorICAiR2l2ZW4gdGhlIE5BTUUg b2YgYSBwYWNrYWdlIG9uIENvbnRlbnREQiwgcmV0dXJuIGEgR3VpeC1jb21wbGlhbnQgbmFtZSBm b3IgdGhlCitwYWNrYWdlLiIKKyAgOzsgVGhlIGF1dGhvciBpcyBub3QgaW5jbHVkZWQsIGFzIHRo ZSBuYW1lcyBvZiBwb3B1bGFyIG1vZHMKKyAgOzsgdGVuZCB0byBiZSB1bmlxdWUuCisgIChzdHJp bmctYXBwZW5kICJtaW5ldGVzdC0iIChzbmFrZS1jYXNlIG5hbWUpKSkKKworKGRlZmluZSAoYXV0 aG9yL25hbWUtPm5hbWUgYXV0aG9yL25hbWUpCisgICJFeHRyYWN0IE5BTUUgZnJvbSB0aGUgQVVU SE9SL05BTUUgc3RyaW5nLCBvciByYWlzZSBhbiBlcnJvciBpZiBBVVRIT1IvTkFNRQoraXMgaWxs LWZvcm1hdHRlZC4iCisgIChtYXRjaCAoc3RyaW5nLXNwbGl0IGF1dGhvci9uYW1lICNcLykKKyAg ICAoKGF1dGhvciBuYW1lKQorICAgICAod2hlbiAoc3RyaW5nLW51bGw/IGF1dGhvcikKKyAgICAg ICAobGVhdmUKKyAgICAgICAgKEdfICJJbiB+YTogYXV0aG9yIG5hbWVzIG11c3QgY29uc2lzdCBv ZiBhdCBsZWFzdCBhIHNpbmdsZSBjaGFyYWN0ZXIufiUiKQorICAgICAgICBhdXRob3IvbmFtZSkp CisgICAgICh3aGVuIChzdHJpbmctbnVsbD8gbmFtZSkKKyAgICAgICAobGVhdmUKKyAgICAgICAg KEdfICJJbiB+YTogbW9kIG5hbWVzIG11c3QgY29uc2lzdCBvZiBhdCBsZWFzdCBhIHNpbmdsZSBj aGFyYWN0ZXIufiUiKQorICAgICAgICBhdXRob3IvbmFtZSkpCisgICAgIG5hbWUpCisgICAgKCh0 b28gbWFueSAuIGNvbXBvbmVudHMpCisgICAgIChsZWF2ZQorICAgICAgKEdfICJJbiB+YTogYXV0 aG9yIG5hbWVzIGFuZCBtb2QgbmFtZXMgbWF5IG5vdCBjb250YWluIGZvcndhcmQgc2xhc2hlcy5+ JSIpCisgICAgICBhdXRob3IvbmFtZSkpCisgICAgKChuYW1lKQorICAgICAoaWYgKHN0cmluZy1u dWxsPyBuYW1lKQorICAgICAgICAgKGxlYXZlIChHXyAibW9kIG5hbWVzIG1heSBub3QgYmUgZW1w dHkufiUiKSkKKyAgICAgICAgIChsZWF2ZSAoR18gIlRoZSBuYW1lIG9mIHRoZSBhdXRob3IgaXMg bWlzc2luZyBpbiB+YS5+JSIpCisgICAgICAgICAgICAgICAgYXV0aG9yL25hbWUpKSkpKQorCiso ZGVmaW5lKiAoZWxhYm9yYXRlLWNvbnRlbnRkYi1uYW1lIG5hbWUgIzprZXkgKHNvcnQgJWRlZmF1 bHQtc29ydC1rZXkpKQorICAiSWYgTkFNRSBpcyBhbiBBVVRIT1IvTkFNRSBzdHJpbmcsIHJldHVy biBpdC4gIE90aGVyd2lzZSwgdHJ5IHRvIGRldGVybWluZQordGhlIGF1dGhvciBhbmQgcmV0dXJu IGFuIGFwcHJvcHJpYXRlIEFVVEhPUi9OQU1FIHN0cmluZy4gIElmIHRoYXQgZmFpbHMsCityYWlz ZSBhbiBleGNlcHRpb24uIgorICAoaWYgKG9yIChzdHJpbmctY29udGFpbnMgbmFtZSAiLyIpIChz dHJpbmctbnVsbD8gbmFtZSkpCisgICAgICA7OyBDYWxsICdhdXRob3IvbmFtZS0+bmFtZScgdG8g dmVyaWZ5IHRoYXQgTkFNRSBzZWVtcyByZWFzb25hYmxlCisgICAgICA7OyBhbmQgcmFpc2UgYW4g YXBwcm9wcmlhdGUgZXhjZXB0aW9uIGlmIGl0IGlzbid0LgorICAgICAgKGJlZ2luCisgICAgICAg IChhdXRob3IvbmFtZS0+bmFtZSBuYW1lKQorICAgICAgICBuYW1lKQorICAgICAgKGxldCogKChw YWNrYWdlL2tleXMgKGNvbnRlbnRkYi1xdWVyeS1wYWNrYWdlcyBuYW1lICM6c29ydCBzb3J0KSkK KyAgICAgICAgICAgICAoY29ycmVjdGx5LW5hbWVkCisgICAgICAgICAgICAgIChmaWx0ZXIgKGxh bWJkYSAocGFja2FnZS9rZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nPT8gbmFt ZSAocGFja2FnZS9rZXlzLW5hbWUgcGFja2FnZS9rZXkpKSkKKyAgICAgICAgICAgICAgICAgICAg ICBwYWNrYWdlL2tleXMpKSkKKyAgICAgICAgKG1hdGNoIGNvcnJlY3RseS1uYW1lZAorICAgICAg ICAgICgob25lKSAocGFja2FnZS9rZXlzLWF1dGhvci9uYW1lIG9uZSkpCisgICAgICAgICAgKCh0 b28gLiBtYW55KQorICAgICAgICAgICAod2FybmluZyAoR18gIn5hIGlzIGFtYmlnaW91cywgcHJl c3VtaW5nIH5hIChvdGhlciBvcHRpb25zIGluY2x1ZGU6IH5hKX4lIikKKyAgICAgICAgICAgICAg ICAgICAgbmFtZSAocGFja2FnZS9rZXlzLWF1dGhvci9uYW1lIHRvbykKKyAgICAgICAgICAgICAg ICAgICAgKG1hcCBwYWNrYWdlL2tleXMtYXV0aG9yL25hbWUgbWFueSkpCisgICAgICAgICAgIChw YWNrYWdlL2tleXMtYXV0aG9yL25hbWUgdG9vKSkKKyAgICAgICAgICAoKCkKKyAgICAgICAgICAg KGxlYXZlIChHXyAiTm8gbW9kcyB3aXRoIG5hbWUgfmEgd2VyZSBmb3VuZC5+JSIpIG5hbWUpKSkp KSkKKworDAorCis7OzsKKzs7OyBBUEkgZW5kcG9pbnRzCis7OzsKKworKGRlZmluZSBjb250ZW50 ZGItZmV0Y2gKKyAgKG1sYW1iZGEgKGF1dGhvci9uYW1lKQorICAgICJSZXR1cm4gYSA8cGFja2Fn ZT4gcmVjb3JkIGZvciBwYWNrYWdlIEFVVEhPUi9OQU1FLCBvciAjZiBvbiBmYWlsdXJlLiIKKyAg ICAoYW5kPT4gKGpzb24tZmV0Y2gKKyAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICglY29udGVu dGRiLWFwaSkgInBhY2thZ2VzLyIgYXV0aG9yL25hbWUgIi8iKSkKKyAgICAgICAgICAganNvbi0+ cGFja2FnZSkpKQorCisoZGVmaW5lIChjb250ZW50ZGItZmV0Y2gtcmVsZWFzZXMgYXV0aG9yL25h bWUpCisgICJSZXR1cm4gYSBsaXN0IG9mIDxyZWxlYXNlPiByZWNvcmRzIGZvciBwYWNrYWdlIE5B TUUgYnkgQVVUSE9SLCBvciAjZgorb24gZmFpbHVyZS4iCisgIChhbmQ9PiAoanNvbi1mZXRjaCAo c3RyaW5nLWFwcGVuZCAoJWNvbnRlbnRkYi1hcGkpICJwYWNrYWdlcy8iIGF1dGhvci9uYW1lCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3JlbGVhc2VzLyIpKQorICAgICAg ICAgKGxhbWJkYSAoanNvbikKKyAgICAgICAgICAgKG1hcCBqc29uLT5yZWxlYXNlICh2ZWN0b3It Pmxpc3QganNvbikpKSkpCisKKyhkZWZpbmUgKGxhdGVzdC1yZWxlYXNlIGF1dGhvci9uYW1lKQor ICAiUmV0dXJuIHRoZSBsYXRlc3Qgc291cmNlIHJlbGVhc2UgZm9yIHBhY2thZ2UgTkFNRSBieSBB VVRIT1IsCitvciAjZiBpZiB0aGlzIHBhY2thZ2UgZG9lcyBub3QgZXhpc3QuIgorICAoYW5kPT4g KGNvbnRlbnRkYi1mZXRjaC1yZWxlYXNlcyBhdXRob3IvbmFtZSkKKyAgICAgICAgIGNhcikpCisK KyhkZWZpbmUgKGNvbnRlbnRkYi1mZXRjaC1kZXBlbmRlbmNpZXMgYXV0aG9yL25hbWUpCisgICJS ZXR1cm4gYW4gYWxpc3Qgb2YgbGlzdHMgb2YgPGRlcGVuZGVuY3k+IHJlY29yZHMgZm9yIHBhY2th Z2UgTkFNRSBieSBBVVRIT1IKK2FuZCBwb3NzaWJseSBzb21lIG90aGVyIHBhY2thZ2VzIGFzIHdl bGwsIG9yICNmIG9uIGZhaWx1cmUuIgorICAoZGVmaW5lIHVybCAoc3RyaW5nLWFwcGVuZCAoJWNv bnRlbnRkYi1hcGkpICJwYWNrYWdlcy8iIGF1dGhvci9uYW1lCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvZGVwZW5kZW5jaWVzLyIpKQorICAoYW5kPT4gKGpzb24tZmV0Y2ggdXJsKQor ICAgICAgICAgKGxhbWJkYSAoanNvbikKKyAgICAgICAgICAgKG1hcCAobWF0Y2gtbGFtYmRhCisg ICAgICAgICAgICAgICAgICAoKGtleSAuIHZhbHVlKQorICAgICAgICAgICAgICAgICAgIChjb25z IGtleSAobWFwIGpzb24tPmRlcGVuZGVuY3kgKHZlY3Rvci0+bGlzdCB2YWx1ZSkpKSkpCisgICAg ICAgICAgICAgICAganNvbikpKSkKKworKGRlZmluZSogKGNvbnRlbnRkYi1xdWVyeS1wYWNrYWdl cyBxICM6a2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlICJtb2Qi KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGltaXQgNTApCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkZXIgImRlc2MiKSkKKyAgIlNlYXJj aCBDb250ZW50REIgZm9yIFEgKGEgc3RyaW5nKS4gIFNvcnQgYnkgU09SVCwgaW4gYXNjZW5kaW5n IG9yZGVyCitpZiBPUkRFUiBpcyBcImFzY1wiIG9yIGRlc2NlbmRpbmcgb3JkZXIgaWYgT1JERVIg aXMgXCJkZXNjXCIuICBUWVBFIG11c3QKK2JlIFwibW9kXCIsIFwiZ2FtZVwiIG9yIFwidHhwXCIs IHJlc3RyaWN0aW5nIHRoZXMgc2VhcmNoIHJlc3VsdHMgdG8KK3Jlc3BlY3RpdmVseSBtb2RzLCBn YW1lcyBhbmQgdGV4dHVyZSBwYWNrcy4gIExpbWl0IHRvIGF0IG1vc3QgTElNSVQKK3Jlc3VsdHMu ICBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZiA8cGFja2FnZS9rZXlzPiByZWNvcmRzLiIK KyAgOzsgWFhYIGRvZXMgR3VpbGUgaGF2ZSBzb21ldGhpbmcgZm9yIGNvbnN0cnVjdGluZyAoYW5k LCB3aGVuIG5lY2Vzc2FyeSwKKyAgOzsgZXNjYXBpbmcpIHF1ZXJ5IHN0cmluZ3M/CisgIChkZWZp bmUgdXJsIChzdHJpbmctYXBwZW5kICglY29udGVudGRiLWFwaSkgInBhY2thZ2VzLz90eXBlPSIg dHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJnE9IiBxICImZm10PWtleXMiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICImbGltaXQ9IiAobnVtYmVyLT5zdHJpbmcgbGlt aXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImb3JkZXI9IiBvcmRlcgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiJnNvcnQ9IiBzb3J0KSkKKyAgKGxldCAoKGpzb24gKGpz b24tZmV0Y2ggdXJsKSkpCisgICAgKGlmIGpzb24KKyAgICAgICAgKG1hcCBqc29uLT5wYWNrYWdl L2tleXMgKHZlY3Rvci0+bGlzdCBqc29uKSkKKyAgICAgICAgKGxlYXZlCisgICAgICAgICAoR18g IlRoZSBwYWNrYWdlIHNlYXJjaCBBUEkgZG9lc24ndCBleGlzdCBhbnltb3JlLn4lIikpKSkpCisK KwwKKworOzsgWFhYIGNvcGllZCBmcm9tIChndWl4IGltcG9ydCBlbHBhKQorKGRlZmluZSogKGRv d25sb2FkLWdpdC1yZXBvc2l0b3J5IHVybCByZWYpCisgICJGZXRjaCB0aGUgZ2l2ZW4gUkVGIGZy b20gdGhlIEdpdCByZXBvc2l0b3J5IGF0IFVSTC4iCisgICh3aXRoLXN0b3JlIHN0b3JlCisgICAg KGxhdGVzdC1yZXBvc2l0b3J5LWNvbW1pdCBzdG9yZSB1cmwgIzpyZWYgcmVmKSkpCisKKzs7IFhY WCBhZGFwdGVkIGZyb20gKGd1aXggc2NyaXB0cyBoYXNoKQorKGRlZmluZSAoZmlsZS1oYXNoIGZp bGUgc2VsZWN0PyByZWN1cnNpdmU/KQorICA7OyBDb21wdXRlIHRoZSBoYXNoIG9mIEZJTEUuCisg IChpZiByZWN1cnNpdmU/CisgICAgICAobGV0LXZhbHVlcyAoKChwb3J0IGdldC1oYXNoKSAob3Bl bi1zaGEyNTYtcG9ydCkpKQorICAgICAgICAod3JpdGUtZmlsZSBmaWxlIHBvcnQgIzpzZWxlY3Q/ IHNlbGVjdD8pCisgICAgICAgIChmb3JjZS1vdXRwdXQgcG9ydCkKKyAgICAgICAgKGdldC1oYXNo KSkKKyAgICAgIChjYWxsLXdpdGgtaW5wdXQtZmlsZSBmaWxlIHBvcnQtc2hhMjU2KSkpCis7OyBY WFggbGlrZXdpc2UuCisoZGVmaW5lICh2Y3MtZmlsZT8gZmlsZSBzdGF0KQorICAoY2FzZSAoc3Rh dDp0eXBlIHN0YXQpCisgICAgKChkaXJlY3RvcnkpCisgICAgIChtZW1iZXIgKGJhc2VuYW1lIGZp bGUpICcoIi5ienIiICIuZ2l0IiAiLmhnIiAiLnN2biIgIkNWUyIpKSkKKyAgICAoKHJlZ3VsYXIp CisgICAgIDs7IEdpdCBzdWItbW9kdWxlcyBoYXZlIGEgJy5naXQnIGZpbGUgdGhhdCBpcyBhIHJl Z3VsYXIgdGV4dCBmaWxlLgorICAgICAoc3RyaW5nPT8gKGJhc2VuYW1lIGZpbGUpICIuZ2l0Iikp CisgICAgKGVsc2UKKyAgICAgI2YpKSkKKworKGRlZmluZSAobWFrZS1taW5ldGVzdC1zZXhwIGF1 dGhvci9uYW1lIHZlcnNpb24gcmVwb3NpdG9yeSBjb21taXQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnB1dHMgaG9tZS1wYWdlIHN5bm9wc2lzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVzY3JpcHRpb24gbWVkaWEtbGljZW5zZSBsaWNlbnNlKQorICAiUmV0dXJuIGEgUy1l eHByZXNzaW9uIGZvciB0aGUgbWluZXRlc3QgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiBhdXRob3Iv TkFNRSwKK1ZFUlNJT04sIFJFUE9TSVRPUlksIENPTU1JVCwgSU5QVVRTLCBIT01FLVBBR0UsIFNZ Tk9QU0lTLCBERVNDUklQVElPTiwKK01FRElBLUxJQ0VOU0UgYW5kIExJQ0VOU0UuIgorICBgKHBh Y2thZ2UKKyAgICAgKG5hbWUgLChjb250ZW50ZGItPnBhY2thZ2UtbmFtZSAoYXV0aG9yL25hbWUt Pm5hbWUgYXV0aG9yL25hbWUpKSkKKyAgICAgKHZlcnNpb24gLHZlcnNpb24pCisgICAgIChzb3Vy Y2UKKyAgICAgICAob3JpZ2luCisgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAodXJsICxyZXBvc2l0b3J5KQor ICAgICAgICAgICAgICAgIChjb21taXQgLGNvbW1pdCkpKQorICAgICAgICAgKHNoYTI1NgorICAg ICAgICAgIChiYXNlMzIKKyAgICAgICAgICAgOzsgVGhlIGdpdCBjb21taXQgaXMgbm90IGFsd2F5 cyBhdmFpbGFibGUuCisgICAgICAgICAgICwoYW5kIGNvbW1pdAorICAgICAgICAgICAgICAgICAo Ynl0ZXZlY3Rvci0+bml4LWJhc2UzMi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgIChmaWxlLWhh c2gKKyAgICAgICAgICAgICAgICAgICAoZG93bmxvYWQtZ2l0LXJlcG9zaXRvcnkgcmVwb3NpdG9y eSBgKGNvbW1pdCAuICxjb21taXQpKQorICAgICAgICAgICAgICAgICAgIChuZWdhdGUgdmNzLWZp bGU/KSAjdCkpKSkpCisgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVy c2lvbikpKSkKKyAgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQor ICAgICAsQChtYXliZS1wcm9wYWdhdGVkLWlucHV0cworICAgICAgICAobWFwIChjb21wb3NlIGNv bnRlbnRkYi0+cGFja2FnZS1uYW1lIGF1dGhvci9uYW1lLT5uYW1lKSBpbnB1dHMpKQorICAgICAo aG9tZS1wYWdlICxob21lLXBhZ2UpCisgICAgIChzeW5vcHNpcyAsKGRlbGV0ZS1jciBzeW5vcHNp cykpCisgICAgIChkZXNjcmlwdGlvbiAsKGRlbGV0ZS1jciBkZXNjcmlwdGlvbikpCisgICAgIChs aWNlbnNlICwoaWYgKGVxPyBtZWRpYS1saWNlbnNlIGxpY2Vuc2UpCisgICAgICAgICAgICAgICAg ICAgbGljZW5zZQorICAgICAgICAgICAgICAgICAgIGAobGlzdCAsbWVkaWEtbGljZW5zZSAsbGlj ZW5zZSkpKQorICAgICA7OyBUaGUgTWluZXRlc3QgdXBkYXRlciAobm90IHlldCBpbiBHdWl4OyBp dCByZXF1aXJlcyBub3QteWV0LXN1Ym1pdHRlZAorICAgICA7OyBwYXRjaGVzIHRvIChndWl4IHVw c3RyZWFtKSB0aGF0IHJlcXVpcmUgc29tZSB3b3JrKSBuZWVkcyB0byBrbm93IGJvdGgKKyAgICAg OzsgdGhlIGF1dGhvciBuYW1lIGFuZCBtb2QgbmFtZSBmb3IgZWZmaWNpZW5jeS4KKyAgICAgKHBy b3BlcnRpZXMgLChsaXN0ICdxdWFzaXF1b3RlIGAoKHVwc3RyZWFtLW5hbWUgLiAsYXV0aG9yL25h bWUpKSkpKSkKKworKGRlZmluZSAocGFja2FnZS1ob21lLXBhZ2UgcGFja2FnZSkKKyAgIkd1ZXNz IHRoZSBob21lIHBhZ2Ugb2YgdGhlIENvbnRlbnREQiBwYWNrYWdlIFBBQ0tBR0UuCisKK0luIG9y ZGVyIG9mIHByZWZlcmVuY2UsIHRyeSB0aGUgJ3dlYnNpdGUnLCB0aGUgZm9ydW0gdG9waWMgb24g dGhlCitvZmZpY2lhbCBNaW5ldGVzdCBmb3J1bSBhbmQgdGhlIEdpdCByZXBvc2l0b3J5IChpZiBh bnkpLiIKKyAgKGRlZmluZSAodG9waWMtPnVybC1zZXhwIHRvcGljKQorICAgIDs7ICdtaW5ldGVz dC10b3BpYycgaXMgYSBwcm9jZWR1cmUgZGVmaW5lZCBpbiAoZ251IHBhY2thZ2VzIG1pbmV0ZXN0 KQorICAgIGAobWluZXRlc3QtdG9waWMgLHRvcGljKSkKKyAgKG9yIChwYWNrYWdlLXdlYnNpdGUg cGFja2FnZSkKKyAgICAgIChhbmQ9PiAocGFja2FnZS1mb3J1bXMgcGFja2FnZSkgdG9waWMtPnVy bC1zZXhwKQorICAgICAgKHBhY2thZ2UtcmVwb3NpdG9yeSBwYWNrYWdlKSkpCisKKzs7IElmIHRo ZSBkZWZhdWx0IHNvcnQga2V5IGlzIGNoYW5nZWQsIG1ha2Ugc3VyZSB0byBtb2RpZnkgJ3Nob3ct aGVscCcKKzs7IGluIChndWl4IHNjcmlwdHMgaW1wb3J0IG1pbmV0ZXN0KSBhcHByb3ByaWF0ZWx5 IGFzIHdlbGwuCisoZGVmaW5lICVkZWZhdWx0LXNvcnQta2V5ICJzY29yZSIpCisKKyhkZWZpbmUq IChzb3J0LXBhY2thZ2VzIHBhY2thZ2VzICM6a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkK KyAgIlNvcnQgUEFDS0FHRVMgYnkgU09SVCwgaW4gZGVzY2VuZGluZyBvcmRlci4iCisgIChkZWZp bmUgcGFja2FnZS0+a2V5CisgICAgKG1hdGNoIHNvcnQKKyAgICAgICgic2NvcmUiIHBhY2thZ2Ut c2NvcmUpCisgICAgICAoImRvd25sb2FkcyIgcGFja2FnZS1kb3dubG9hZHMpKSkKKyAgKGRlZmlu ZSAoZ3JlYXRlciB4IHkpCisgICAgKD4gKHBhY2thZ2UtPmtleSB4KSAocGFja2FnZS0+a2V5IHkp KSkKKyAgKHNvcnQtbGlzdCBwYWNrYWdlcyBncmVhdGVyKSkKKworKGRlZmluZSBidWlsdGluLW1v ZD8KKyAgKGxldCAoKCVidWlsdGluLW1vZHMKKyAgICAgICAgIChhbGlzdC0+aGFzaC10YWJsZQor ICAgICAgICAgIChtYXAgKGxhbWJkYSAoeCkgKGNvbnMgeCAjdCkpCisgICAgICAgICAgICAgICAn KCJiZWRzIiAiYmlub2N1bGFycyIgImJvYXRzIiAiYm9uZXMiICJidWNrZXQiICJidXR0ZXJmbGll cyIKKyAgICAgICAgICAgICAgICAgImNhcnRzIiAiY3JlYXRpdmUiICJkZWZhdWx0IiAiZG9vcnMi ICJkdW5nZW9uX2xvb3QiICJkeWUiCisgICAgICAgICAgICAgICAgICJlbnZfc291bmRzIiAiZmFy bWluZyIgImZpcmUiICJmaXJlZmxpZXMiICJmbG93ZXJzIgorICAgICAgICAgICAgICAgICAiZ2Ft ZV9jb21tYW5kcyIgImdpdmVfaW5pdGlhbF9zdHVmZiIgIm1hcCIgIm10Z19jcmFmdGd1aWRlIgor ICAgICAgICAgICAgICAgICAicGxheWVyX2FwaSIgInNjcmV3ZHJpdmVyIiAic2V0aG9tZSIgInNm aW52IiAic3Bhd24iICJzdGFpcnMiCisgICAgICAgICAgICAgICAgICJ0bnQiICJ2ZXNzZWxzIiAi d2FsbHMiICJ3ZWF0aGVyIiAid29vbCIgInhwYW5lcyIpKSkpKQorICAgIChsYW1iZGEgKG1vZCkK KyAgICAgICJJcyBNT0QgcHJvdmlkZWQgYnkgdGhlIGRlZmF1bHQgbWluZXRlc3Qgc3ViZ2FtZT8i CisgICAgICAoaGFzaC1yZWYgJWJ1aWx0aW4tbW9kcyBtb2QpKSkpCisKKyhkZWZpbmUqIChpbXBv cnRhbnQtZGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llcyBhdXRob3IvbmFtZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzprZXkgKHNvcnQgJWRlZmF1bHQtc29ydC1rZXkpKQorICAi UmV0dXJuIHRoZSBoYXJkIGRlcGVuZGVuY2llcyBvZiBBVVRIT1IvTkFNRSBpbiB0aGUgYXNzb2Np YXRpb24gbGlzdAorREVQRU5ERU5DSUVTIGFzIGEgbGlzdCBvZiBBVVRIT1IvTkFNRSBzdHJpbmdz LiIKKyAgKGRlZmluZSBkZXBlbmRlbmN5LWxpc3QKKyAgICAoYXNzb2MtcmVmIGRlcGVuZGVuY2ll cyBhdXRob3IvbmFtZSkpCisgIChmaWx0ZXItbWFwCisgICAobGFtYmRhIChkZXBlbmRlbmN5KQor ICAgICAoYW5kIChub3QgKGRlcGVuZGVuY3ktb3B0aW9uYWw/IGRlcGVuZGVuY3kpKQorICAgICAg ICAgIChub3QgKGJ1aWx0aW4tbW9kPyAoZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpKSkKKyAg ICAgICAgICA7OyBUaGUgZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBjb250YWlucyBzeW1ib2xpYyBu YW1lcworICAgICAgICAgIDs7IHRoYXQgY2FuIGJlIOKAmHByb3ZpZGVk4oCZIGJ5IG11bHRpcGxl IG1vZHMsIHNvIHdlIG5lZWQgdG8gY2hvb3NlIG9uZQorICAgICAgICAgIDs7IG9mIHRoZSBpbXBs ZW1lbnRhdGlvbnMuCisgICAgICAgICAgKGxldCogKChpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAg ICAgICAgICAgIChwYXItbWFwIGNvbnRlbnRkYi1mZXRjaCAoZGVwZW5kZW5jeS1wYWNrYWdlcyBk ZXBlbmRlbmN5KSkpCisgICAgICAgICAgICAgICAgIDs7IEZldGNoaW5nIHBhY2thZ2UgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIHBhY2thZ2VzIGlzIHJhY3k6CisgICAgICAgICAgICAgICAgIDs7IHNv bWUgcGFja2FnZXMgbWlnaHQgYmUgcmVtb3ZlZCBmcm9tIENvbnRlbnREQiBiZXR3ZWVuIHRoZQor ICAgICAgICAgICAgICAgICA7OyBjb25zdHJ1Y3Rpb24gb2YgREVQRU5ERU5DSUVTIGFuZCB0aGUg Y2FsbCB0bworICAgICAgICAgICAgICAgICA7OyAnY29udGVudGRiLWZldGNoJy4gIFNvIGZpbHRl ciBvdXQgI2YuCisgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgIDs7IEZpbHRl ciBvdXQg4oCYZ2FtZXPigJkgdGhhdCBpbmNsdWRlIHRoZSByZXF1ZXN0ZWQgbW9kIC0tIGl0J3MK KyAgICAgICAgICAgICAgICAgOzsgdGhlIG1vZCBpdHNlbGYgd2Ugd2FudC4KKyAgICAgICAgICAg ICAgICAgKG1vZHMgKGZpbHRlciAobGFtYmRhIChwKSAoYW5kPT4gcCBwYWNrYWdlLW1vZD8pKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGF0aW9ucykpCisgICAgICAg ICAgICAgICAgIChzb3J0ZWQtbW9kcyAoc29ydC1wYWNrYWdlcyBtb2RzICM6c29ydCBzb3J0KSkp CisgICAgICAgICAgICAobWF0Y2ggc29ydGVkLW1vZHMKKyAgICAgICAgICAgICAgKChwYWNrYWdl KSAocGFja2FnZS1hdXRob3IvbmFtZSBwYWNrYWdlKSkKKyAgICAgICAgICAgICAgKCh0b28gLiBt YW55KQorICAgICAgICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAoR18gIlRoZSBk ZXBlbmRlbmN5IH5hIG9mIH5hIGhhcyBtdWx0aXBsZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25z IH5hLn4lIikKKyAgICAgICAgICAgICAgICAoZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpCisg ICAgICAgICAgICAgICAgYXV0aG9yL25hbWUKKyAgICAgICAgICAgICAgICAobWFwIHBhY2thZ2Ut YXV0aG9yL25hbWUgc29ydGVkLW1vZHMpKQorICAgICAgICAgICAgICAgKG1hdGNoIHNvcnQKKyAg ICAgICAgICAgICAgICAgKCJzY29yZSIKKyAgICAgICAgICAgICAgICAgICh3YXJuaW5nCisgICAg ICAgICAgICAgICAgICAgKEdfICJUaGUgaW1wbGVtZW50YXRpb24gd2l0aCB0aGUgaGlnaGVzdCBz Y29yZSB3aWxsIGJlIGNob29zZW4hfiUiKSkpCisgICAgICAgICAgICAgICAgICgiZG93bmxvYWRz IgorICAgICAgICAgICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAoR18gIlRo ZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGhhcyBiZWVuIGRvd25sb2FkZWQgdGhlIG1vc3Qgd2lsbCBi ZSBjaG9vc2VuIX4lIikpKSkKKyAgICAgICAgICAgICAgIChwYWNrYWdlLWF1dGhvci9uYW1lIHRv bykpCisgICAgICAgICAgICAgICgoKQorICAgICAgICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAg ICAgICAgICAoR18gIlRoZSBkZXBlbmRlbmN5IH5hIG9mIH5hIGRvZXMgbm90IGhhdmUgYW55IGlt cGxlbWVudGF0aW9uLiAgSXQgd2lsbCBiZSBpZ25vcmVkIX4lIikKKyAgICAgICAgICAgICAgICAo ZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpIGF1dGhvci9uYW1lKQorICAgICAgICAgICAgICAg I2YpKSkpKQorICAgZGVwZW5kZW5jeS1saXN0KSkKKworKGRlZmluZSogKCVtaW5ldGVzdC0+Z3Vp eC1wYWNrYWdlIGF1dGhvci9uYW1lICM6a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAg IkZldGNoIHRoZSBtZXRhZGF0YSBmb3IgQVVUSE9SL05BTUUgZnJvbSBodHRwczovL2NvbnRlbnQu bWluZXRlc3QubmV0LCBhbmQKK3JldHVybiB0aGUgJ3BhY2thZ2UnIFMtZXhwcmVzc2lvbiBjb3Jy ZXNwb25kaW5nIHRvIHRoYXQgcGFja2FnZSwgb3IgcmFpc2UgYW4KK2V4Y2VwdGlvbiBvbiBmYWls dXJlLiAgT24gc3VjY2VzcywgYWxzbyByZXR1cm4gdGhlIHVwc3RyZWFtIGRlcGVuZGVuY2llcyBh cyBhCitsaXN0IG9mIEFVVEhPUi9OQU1FIHN0cmluZ3MuIgorICA7OyBDYWxsICdhdXRob3IvbmFt ZS0+bmFtZScgdG8gdmVyaWZ5IHRoYXQgQVVUSE9SL05BTUUgc2VlbXMgcmVhc29uYWJsZS4KKyAg KGF1dGhvci9uYW1lLT5uYW1lIGF1dGhvci9uYW1lKQorICAoZGVmaW5lIHBhY2thZ2UgKGNvbnRl bnRkYi1mZXRjaCBhdXRob3IvbmFtZSkpCisgICh1bmxlc3MgcGFja2FnZQorICAgIChsZWF2ZSAo R18gIm5vIHBhY2thZ2UgbWV0YWRhdGEgZm9yIH5hIG9uIENvbnRlbnREQn4lIikgYXV0aG9yL25h bWUpKQorICAoZGVmaW5lIGRlcGVuZGVuY2llcyAoY29udGVudGRiLWZldGNoLWRlcGVuZGVuY2ll cyBhdXRob3IvbmFtZSkpCisgICh1bmxlc3MgZGVwZW5kZW5jaWVzCisgICAgKGxlYXZlIChHXyAi bm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBmb3IgfmEgb24gQ29udGVudERCfiUiKSBhdXRob3Iv bmFtZSkpCisgIChkZWZpbmUgcmVsZWFzZSAobGF0ZXN0LXJlbGVhc2UgYXV0aG9yL25hbWUpKQor ICAodW5sZXNzIHJlbGVhc2UKKyAgICAobGVhdmUgKEdfICJubyByZWxlYXNlIG9mIH5hIG9uIENv bnRlbnREQn4lIikgYXV0aG9yL25hbWUpKQorICAoZGVmaW5lIGltcG9ydGFudC11cHN0cmVhbS1k ZXBlbmRlbmNpZXMKKyAgICAoaW1wb3J0YW50LWRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXMgYXV0 aG9yL25hbWUgIzpzb3J0IHNvcnQpKQorICAodmFsdWVzIChtYWtlLW1pbmV0ZXN0LXNleHAgYXV0 aG9yL25hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWxlYXNlLXRpdGxlIHJl bGVhc2UpIDsgdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2Ut cmVwb3NpdG9yeSBwYWNrYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGVh c2UtY29tbWl0IHJlbGVhc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRh bnQtdXBzdHJlYW0tZGVwZW5kZW5jaWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cGFja2FnZS1ob21lLXBhZ2UgcGFja2FnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwYWNrYWdlLXNob3J0LWRlc2NyaXB0aW9uIHBhY2thZ2UpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAocGFja2FnZS1sb25nLWRlc2NyaXB0aW9uIHBhY2thZ2UpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3BkeC1zdHJpbmctPmxpY2Vuc2UKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocGFja2FnZS1tZWRpYS1saWNlbnNlIHBhY2thZ2UpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHNwZHgtc3RyaW5nLT5saWNlbnNlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtbGljZW5zZSBwYWNrYWdlKSkpCisgICAgICAg ICAgaW1wb3J0YW50LXVwc3RyZWFtLWRlcGVuZGVuY2llcykpCisKKyhkZWZpbmUgbWluZXRlc3Qt Pmd1aXgtcGFja2FnZQorICAobWVtb2l6ZSAlbWluZXRlc3QtPmd1aXgtcGFja2FnZSkpCisKKyhk ZWZpbmUqIChtaW5ldGVzdC1yZWN1cnNpdmUtaW1wb3J0IGF1dGhvci9uYW1lICM6a2V5IChzb3J0 ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgKGRlZmluZSogKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2Uq IGF1dGhvci9uYW1lICM6a2V5IHJlcG8gdmVyc2lvbikKKyAgICAobWluZXRlc3QtPmd1aXgtcGFj a2FnZSBhdXRob3IvbmFtZSAjOnNvcnQgc29ydCkpCisgIChyZWN1cnNpdmUtaW1wb3J0IGF1dGhv ci9uYW1lCisgICAgICAgICAgICAgICAgICAgICM6cmVwby0+Z3VpeC1wYWNrYWdlIG1pbmV0ZXN0 LT5ndWl4LXBhY2thZ2UqCisgICAgICAgICAgICAgICAgICAgICM6Z3VpeC1uYW1lCisgICAgICAg ICAgICAgICAgICAgIChjb21wb3NlIGNvbnRlbnRkYi0+cGFja2FnZS1uYW1lIGF1dGhvci9uYW1l LT5uYW1lKSkpCmRpZmYgLS1naXQgYS9ndWl4L3NjcmlwdHMvaW1wb3J0LnNjbSBiL2d1aXgvc2Ny aXB0cy9pbXBvcnQuc2NtCmluZGV4IGY1M2QxYWMxZjQuLmIzNjlhMzYyZDAgMTAwNjQ0Ci0tLSBh L2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtCisrKyBiL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtCkBA IC03Nyw3ICs3Nyw4IEBAIHJhdGhlciB0aGFuIFxcbi4iCiA7OzsKIAogKGRlZmluZSBpbXBvcnRl cnMgJygiZ251IiAicHlwaSIgImNwYW4iICJoYWNrYWdlIiAic3RhY2thZ2UiICJlZ2ciICJlbHBh IgotICAgICAgICAgICAgICAgICAgICAiZ2VtIiAiZ28iICJjcmFuIiAiY3JhdGUiICJ0ZXhsaXZl IiAianNvbiIgIm9wYW0iKSkKKyAgICAgICAgICAgICAgICAgICAgImdlbSIgImdvIiAiY3JhbiIg ImNyYXRlIiAidGV4bGl2ZSIgImpzb24iICJvcGFtIgorICAgICAgICAgICAgICAgICAgICAibWlu ZXRlc3QiKSkKIAogKGRlZmluZSAocmVzb2x2ZS1pbXBvcnRlciBuYW1lKQogICAobGV0ICgobW9k dWxlIChyZXNvbHZlLWludGVyZmFjZQpkaWZmIC0tZ2l0IGEvZ3VpeC9zY3JpcHRzL2ltcG9ydC9t aW5ldGVzdC5zY20gYi9ndWl4L3NjcmlwdHMvaW1wb3J0L21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41ZjIwNGQ5MGZjCi0tLSAvZGV2L251bGwKKysr IGIvZ3VpeC9zY3JpcHRzL2ltcG9ydC9taW5ldGVzdC5zY20KQEAgLTAsMCArMSwxMTcgQEAKKzs7 OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7 IENvcHlyaWdodCDCqSAyMDE0IERhdmlkIFRob21wc29uIDxkYXZldEBnbnUub3JnPgorOzs7IENv cHlyaWdodCDCqSAyMDE4IFJpY2FyZG8gV3VybXVzIDxyZWthZG9AZWxlcGhseS5uZXQ+Cis7Ozsg Q29weXJpZ2h0IMKpIDIwMjEgTWF4aW1lIERldm9zIDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgor Ozs7Cis7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3Vp eCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0Cis7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlIChndWl4IHNjcmlwdHMgaW1wb3J0 IG1pbmV0ZXN0KQorICAjOnVzZS1tb2R1bGUgKGd1aXggdWkpCisgICM6dXNlLW1vZHVsZSAoZ3Vp eCB1dGlscykKKyAgIzp1c2UtbW9kdWxlIChndWl4IHNjcmlwdHMpCisgICM6dXNlLW1vZHVsZSAo Z3VpeCBpbXBvcnQgbWluZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgdXRpbHMp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzY3JpcHRzIGltcG9ydCkKKyAgIzp1c2UtbW9kdWxlIChz cmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMTEpCisgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTM3KQorICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1t b2R1bGUgKGljZS05IGZvcm1hdCkKKyAgIzpleHBvcnQgKGd1aXgtaW1wb3J0LW1pbmV0ZXN0KSkK KworDAorOzs7Cis7OzsgQ29tbWFuZC1saW5lIG9wdGlvbnMuCis7OzsKKworKGRlZmluZSAlZGVm YXVsdC1vcHRpb25zCisgIGAoKHNvcnQgLiAsJWRlZmF1bHQtc29ydC1rZXkpKSkKKworKGRlZmlu ZSAoc2hvdy1oZWxwKQorICAoZGlzcGxheSAoR18gIlVzYWdlOiBndWl4IGltcG9ydCBtaW5ldGVz dCBBVVRIT1IvTkFNRQorSW1wb3J0IGFuZCBjb252ZXJ0IHRoZSBNaW5ldGVzdCBtb2QgTkFNRSBi eSBBVVRIT1IgZnJvbSBDb250ZW50REIuXG4iKSkKKyAgKGRpc3BsYXkgKEdfICIKKyAgLWgsIC0t aGVscCAgICAgICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdCIpKQorICAoZGlzcGxh eSAoR18gIgorICAtciwgLS1yZWN1cnNpdmUgICAgICAgIGltcG9ydCBwYWNrYWdlcyByZWN1cnNp dmVseSIpKQorICAoZGlzcGxheSAoR18gIgorICAtViwgLS12ZXJzaW9uICAgICAgICAgIGRpc3Bs YXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdCIpKQorICAoZGlzcGxheSAoR18gIgorICAg ICAgLS1zb3J0PUtFWSAgICAgICAgIHdoZW4gY2hvb3NpbmcgYmV0d2VlbiBtdWx0aXBsZSBpbXBs ZW1lbnRhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hvb3NlIHRoZSBvbmUgd2l0 aCB0aGUgaGlnaGVzdCB2YWx1ZSBmb3IgS0VZCisgICAgICAgICAgICAgICAgICAgICAgICAgKG9u ZSBvZiBcInNjb3JlXCIgKHN0YW5kYXJkKSBvciBcImRvd25sb2Fkc1wiKSIpKQorICAobmV3bGlu ZSkKKyAgKHNob3ctYnVnLXJlcG9ydC1pbmZvcm1hdGlvbikpCisKKyhkZWZpbmUgKHZlcmlmeS1z b3J0LW9yZGVyIHNvcnQpCisgICJWZXJpZnkgU09SVCBjYW4gYmUgdXNlZCB0byBzb3J0IG1vZHMg YnkuIgorICAodW5sZXNzIChtZW1iZXIgc29ydCAnKCJzY29yZSIgImRvd25sb2FkcyIgInJldmll d3MiKSkKKyAgICAobGVhdmUgKEdfICJ+YTogbm90IGEgdmFsaWQga2V5IHRvIHNvcnQgYnl+JSIp IHNvcnQpKQorICBzb3J0KQorCisoZGVmaW5lICVvcHRpb25zCisgIDs7IFNwZWNpZmljYXRpb24g b2YgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zLgorICAoY29ucyogKG9wdGlvbiAnKCNcaCAiaGVs cCIpICNmICNmCisgICAgICAgICAgICAgICAgIChsYW1iZGEgYXJncworICAgICAgICAgICAgICAg ICAgIChzaG93LWhlbHApCisgICAgICAgICAgICAgICAgICAgKGV4aXQgMCkpKQorICAgICAgICAg KG9wdGlvbiAnKCNcViAidmVyc2lvbiIpICNmICNmCisgICAgICAgICAgICAgICAgIChsYW1iZGEg YXJncworICAgICAgICAgICAgICAgICAgIChzaG93LXZlcnNpb24tYW5kLWV4aXQgImd1aXggaW1w b3J0IG1pbmV0ZXN0IikpKQorICAgICAgICAgKG9wdGlvbiAnKCNcciAicmVjdXJzaXZlIikgI2Yg I2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAg ICAgICAgICAgICAgICAoYWxpc3QtY29ucyAncmVjdXJzaXZlICN0IHJlc3VsdCkpKQorICAgICAg ICAgKG9wdGlvbiAnKCJzb3J0IikgI3QgI2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSAob3B0 IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAoYWxpc3QtY29ucyAnc29ydCAo dmVyaWZ5LXNvcnQtb3JkZXIgYXJnKSByZXN1bHQpKSkKKyAgICAgICAgICVzdGFuZGFyZC1pbXBv cnQtb3B0aW9ucykpCisKKwwKKzs7OworOzs7IEVudHJ5IHBvaW50LgorOzs7CisKKyhkZWZpbmUg KGd1aXgtaW1wb3J0LW1pbmV0ZXN0IC4gYXJncykKKyAgKGRlZmluZSAocGFyc2Utb3B0aW9ucykK KyAgICA7OyBSZXR1cm4gdGhlIGFsaXN0IG9mIG9wdGlvbiB2YWx1ZXMuCisgICAgKGFyZ3MtZm9s ZCogYXJncyAlb3B0aW9ucworICAgICAgICAgICAgICAgIChsYW1iZGEgKG9wdCBuYW1lIGFyZyBy ZXN1bHQpCisgICAgICAgICAgICAgICAgICAobGVhdmUgKEdfICJ+QTogdW5yZWNvZ25pemVkIG9w dGlvbn4lIikgbmFtZSkpCisgICAgICAgICAgICAgICAgKGxhbWJkYSAoYXJnIHJlc3VsdCkKKyAg ICAgICAgICAgICAgICAgIChhbGlzdC1jb25zICdhcmd1bWVudCBhcmcgcmVzdWx0KSkKKyAgICAg ICAgICAgICAgICAlZGVmYXVsdC1vcHRpb25zKSkKKworICAobGV0KiAoKG9wdHMgKHBhcnNlLW9w dGlvbnMpKQorICAgICAgICAgKGFyZ3MgKGZpbHRlci1tYXAgKG1hdGNoLWxhbWJkYQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoJ2FyZ3VtZW50IC4gdmFsdWUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfICNm KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXZlcnNlIG9wdHMpKSkpCisgICAgKG1h dGNoIGFyZ3MKKyAgICAgICgobmFtZSkKKyAgICAgICAod2l0aC1lcnJvci1oYW5kbGluZworICAg ICAgICAgKGxldCogKChzb3J0IChhc3NvYy1yZWYgb3B0cyAnc29ydCkpCisgICAgICAgICAgICAg ICAgKGF1dGhvci9uYW1lIChlbGFib3JhdGUtY29udGVudGRiLW5hbWUgbmFtZSAjOnNvcnQgc29y dCkpKQorICAgICAgICAgICAoaWYgKGFzc29jLXJlZiBvcHRzICdyZWN1cnNpdmUpCisgICAgICAg ICAgICAgICA7OyBSZWN1cnNpdmUgaW1wb3J0CisgICAgICAgICAgICAgICAoZmlsdGVyLW1hcCBw YWNrYWdlLT5kZWZpbml0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluZXRlc3Qt cmVjdXJzaXZlLWltcG9ydCBhdXRob3IvbmFtZSAjOnNvcnQgc29ydCkpCisgICAgICAgICAgICAg ICA7OyBTaW5nbGUgaW1wb3J0CisgICAgICAgICAgICAgICAobWluZXRlc3QtPmd1aXgtcGFja2Fn ZSBhdXRob3IvbmFtZSAjOnNvcnQgc29ydCkpKSkpCisgICAgICAoKCkKKyAgICAgICAobGVhdmUg KEdfICJ0b28gZmV3IGFyZ3VtZW50c34lIikpKQorICAgICAgKChtYW55IC4uLikKKyAgICAgICAo bGVhdmUgKEdfICJ0b28gbWFueSBhcmd1bWVudHN+JSIpKSkpKSkKZGlmZiAtLWdpdCBhL3BvL2d1 aXgvUE9URklMRVMuaW4gYi9wby9ndWl4L1BPVEZJTEVTLmluCmluZGV4IGEzYmNlZDFhOGYuLmYy NWE3YjQ4MDIgMTAwNjQ0Ci0tLSBhL3BvL2d1aXgvUE9URklMRVMuaW4KKysrIGIvcG8vZ3VpeC9Q T1RGSUxFUy5pbgpAQCAtNjAsNiArNjAsNyBAQCBndWl4L3NjcmlwdHMvZ2l0LnNjbQogZ3VpeC9z Y3JpcHRzL2dpdC9hdXRoZW50aWNhdGUuc2NtCiBndWl4L3NjcmlwdHMvaGFzaC5zY20KIGd1aXgv c2NyaXB0cy9pbXBvcnQuc2NtCitndWl4L3NjcmlwdHMvaW1wb3J0L2NvbnRlbnRkYi5zY20KIGd1 aXgvc2NyaXB0cy9pbXBvcnQvY3Jhbi5zY20KIGd1aXgvc2NyaXB0cy9pbXBvcnQvZWxwYS5zY20K IGd1aXgvc2NyaXB0cy9wdWxsLnNjbQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWluZXRlc3Quc2NtIGIv dGVzdHMvbWluZXRlc3Quc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjFlZjIwMmMwZmQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9taW5ldGVzdC5zY20KQEAgLTAs MCArMSwzNTUgQEAKKzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1l bnQgZm9yIEdOVQorOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2 b3NAdGVsZW5ldC5iZT4KKzs7OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgor Ozs7Cis7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7Ozsg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorOzs7Cis7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAodGVz dC1taW5ldGVzdCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IG1lbW9pemF0aW9uKQorICAjOnVzZS1t b2R1bGUgKGd1aXggaW1wb3J0IG1pbmV0ZXN0KQorICAjOnVzZS1tb2R1bGUgKGd1aXggaW1wb3J0 IHV0aWxzKQorICAjOnVzZS1tb2R1bGUgKGd1aXggdGVzdHMpCisgICM6dXNlLW1vZHVsZSAoanNv bikKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNy ZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCisgICM6dXNlLW1vZHVsZSAoc3Jm aSBzcmZpLTM0KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS02NCkpCisKKwwKKzs7IFNvbWUg cHJvY2VkdXJlcyBmb3IgcG9wdWxhdGluZyBhIOKAmGZha2XigJkgQ29udGVudERCIHNlcnZlci4K KworKGRlZmluZSogKG1ha2UtcGFja2FnZS1zZXhwICM6a2V5CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGd1aXgtbmFtZSAibWluZXRlc3QtZm9vIikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoaG9tZS1wYWdlICJodHRwczovL2V4YW1wbGUub3JnL2ZvbyIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJlcG8gImh0dHBzOi8vZXhhbXBsZS5vcmcvZm9vLmdpdCIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN5bm9wc2lzICJzeW5vcHNpcyIpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGd1aXgtZGVzY3JpcHRpb24gImRlc2NyaXB0aW9uIikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpeC1saWNlbnNlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcobGlzdCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMrKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRzICcoKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodXBzdHJlYW0tbmFtZSAiQXV0aG9yL2ZvbyIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICBgKHBhY2thZ2UKKyAgICAgKG5h bWUgLGd1aXgtbmFtZSkKKyAgICAgOzsgVGhpcyBpcyBub3QgYSBwcm9wZXIgdmVyc2lvbiBudW1i ZXIgYnV0IENvbnRlbnREQiBkb2VzIG5vdCBpbmNsdWRlCisgICAgIDs7IHZlcnNpb24gbnVtYmVy cy4KKyAgICAgKHZlcnNpb24gIjIwMjEtMDctMjUiKQorICAgICAoc291cmNlCisgICAgICAob3Jp Z2luCisgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICAodXJpIChnaXQtcmVmZXJl bmNlCisgICAgICAgICAgICAgICh1cmwgLChhbmQgKG5vdCAoZXE/IHJlcG8gJ251bGwpKSByZXBv KSkKKyAgICAgICAgICAgICAgKGNvbW1pdCAjZikpKQorICAgICAgICAoc2hhMjU2CisgICAgICAg ICAoYmFzZTMyICNmKSkKKyAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZl cnNpb24pKSkpCisgICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkK KyAgICAgLEAobWF5YmUtcHJvcGFnYXRlZC1pbnB1dHMgaW5wdXRzKQorICAgICAoaG9tZS1wYWdl ICxob21lLXBhZ2UpCisgICAgIChzeW5vcHNpcyAsc3lub3BzaXMpCisgICAgIChkZXNjcmlwdGlv biAsZ3VpeC1kZXNjcmlwdGlvbikKKyAgICAgKGxpY2Vuc2UgLGd1aXgtbGljZW5zZSkKKyAgICAg KHByb3BlcnRpZXMKKyAgICAgICwobGlzdCAncXVhc2lxdW90ZQorICAgICAgICAgICAgIGAoKHVw c3RyZWFtLW5hbWUgLiAsdXBzdHJlYW0tbmFtZSkpKSkpKQorCisoZGVmaW5lKiAobWFrZS1wYWNr YWdlLWpzb24gIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXV0aG9yICJBdXRo b3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lICJmb28iKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtZWRpYS1saWNlbnNlICJDQy1CWS1TQS00LjAiKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaWNlbnNlICJMR1BMLTMuMC1vci1sYXRlciIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHNob3J0LWRlc2NyaXB0aW9uICJzeW5vcHNpcyIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmctZGVzY3JpcHRpb24gImRlc2NyaXB0aW9u IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbyAiaHR0cHM6Ly9leGFtcGxlLm9y Zy9mb28uZ2l0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2Vic2l0ZSAiaHR0cHM6 Ly9leGFtcGxlLm9yZy9mb28iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J1bXMg MzIxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY29yZSA5ODcuNjU0KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChkb3dubG9hZHMgMTIzKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh0eXBlICJtb2QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6YWxs b3ctb3RoZXIta2V5cykKKyAgYCgoImF1dGhvciIgLiAsYXV0aG9yKQorICAgICgiY29udGVudF93 YXJuaW5ncyIgLiAjKCkpCisgICAgKCJjcmVhdGVkX2F0IiAuICIyMDE4LTA1LTIzVDE5OjU4OjA3 LjQyMjEwOCIpCisgICAgKCJkb3dubG9hZHMiIC4gLGRvd25sb2FkcykKKyAgICAoImZvcnVtcyIg LiAsZm9ydW1zKQorICAgICgiaXNzdWVfdHJhY2tlciIgLiAiaHR0cHM6Ly9leGFtcGxlLm9yZy9m b28vaXNzdWVzIikKKyAgICAoImxpY2Vuc2UiIC4gLGxpY2Vuc2UpCisgICAgKCJsb25nX2Rlc2Ny aXB0aW9uIiAuICxsb25nLWRlc2NyaXB0aW9uKQorICAgICgibWFpbnRhaW5lcnMiIC4gIygibWFp bnRhaW5lciIpKQorICAgICgibWVkaWFfbGljZW5zZSIgLiAsbWVkaWEtbGljZW5zZSkKKyAgICAo Im5hbWUiIC4gLG5hbWUpCisgICAgKCJwcm92aWRlcyIgLiAjKCJzdHVmZiIpKQorICAgICgicmVs ZWFzZSIgLiA0NTYpCisgICAgKCJyZXBvIiAuICxyZXBvKQorICAgICgic2NvcmUiIC4gLHNjb3Jl KQorICAgICgic2NyZWVuc2hvdHMiIC4gIygpKQorICAgICgic2hvcnRfZGVzY3JpcHRpb24iIC4g LHNob3J0LWRlc2NyaXB0aW9uKQorICAgICgic3RhdGUiIC4gIkFQUFJPVkVEIikKKyAgICAoInRh Z3MiIC4gIygic29tZSIgInRhZ3MiKSkKKyAgICAoInRodW1ibmFpbCIgLiBudWxsKQorICAgICgi dGl0bGUiIC4gIlRoZSBuYW1lIikKKyAgICAoInR5cGUiIC4gLHR5cGUpCisgICAgKCJ1cmwiIC4g LChzdHJpbmctYXBwZW5kICJodHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0L3BhY2thZ2VzLyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yICIvIiBuYW1lICIvZG93bmxvYWQv IikpCisgICAgKCJ3ZWJzaXRlIiAuICx3ZWJzaXRlKSkpCisKKyhkZWZpbmUqIChtYWtlLXJlbGVh c2VzLWpzb24gIzprZXkgKGNvbW1pdCAjZikgKHRpdGxlICIiKSAjOmFsbG93LW90aGVyLWtleXMp CisgIGAjKCgoImNvbW1pdCIgLiAsY29tbWl0KQorICAgICAgKCJkb3dubG9hZHMiIC4gNDY5KQor ICAgICAgKCJpZCIgLiA4NjE0KQorICAgICAgKCJtYXhfbWluZXRlc3RfdmVyc2lvbiIgLiBudWxs KQorICAgICAgKCJtaW5fbWluZXRlc3RfdmVyc2lvbiIgLiBudWxsKQorICAgICAgKCJyZWxlYXNl X2RhdGUiIC4gIjIwMjEtMDctMjVUMDE6MTA6MjMuMjA3NTg0IikKKyAgICAgICgidGl0bGUiIC4g IjIwMjEtMDctMjUiKSkpKQorCisoZGVmaW5lKiAobWFrZS1kZXBlbmRlbmNpZXMtanNvbiAjOmtl eSAoYXV0aG9yICJBdXRob3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5h bWUgImZvbyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWlyZW1lbnRz ICcoKCJkZWZhdWx0IiAjZiAoKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IzphbGxvdy1vdGhlci1rZXlzKQorICBgKCgsKHN0cmluZy1hcHBlbmQgYXV0aG9yICIvIiBuYW1l KQorICAgICAuICwobGlzdC0+dmVjdG9yCisgICAgICAgICAobWFwIChtYXRjaC1sYW1iZGEKKyAg ICAgICAgICAgICAgICAoKHN5bWJvbGljLW5hbWUgb3B0aW9uYWw/IGltcGxlbWVudGF0aW9ucykK KyAgICAgICAgICAgICAgICAgYCgoImlzX29wdGlvbmFsIiAuICxvcHRpb25hbD8pCisgICAgICAg ICAgICAgICAgICAgKCJuYW1lIiAuICxzeW1ib2xpYy1uYW1lKQorICAgICAgICAgICAgICAgICAg ICgicGFja2FnZXMiIC4gLChsaXN0LT52ZWN0b3IgaW1wbGVtZW50YXRpb25zKSkpKSkKKyAgICAg ICAgICAgICAgcmVxdWlyZW1lbnRzKSkpCisgICAgKCJzb21ldGhpbmcvZWxzZSIgLiAjKCkpKSkK KworKGRlZmluZSogKG1ha2UtcGFja2FnZXMva2V5cy1qc29uICM6a2V5IChhdXRob3IgIkF1dGhv ciIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgIk5hbWUiKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlICJtb2QiKSkKKyAgYCgoImF1dGhv ciIgLiAsYXV0aG9yKQorICAgICgibmFtZSIgLiAsbmFtZSkKKyAgICAoInR5cGUiIC4gLHR5cGUp KSkKKworKGRlZmluZSAoY2FsbC13aXRoLXBhY2thZ2VzIHRodW5rIC4gYXJndW1lbnQtbGlzdHMp CisgIDs7IERvbid0IHJldXNlIHJlc3VsdHMgZnJvbSBwcmV2aW91cyB0ZXN0cy4KKyAgKGludmFs aWRhdGUtbWVtb2l6YXRpb24hIGNvbnRlbnRkYi1mZXRjaCkKKyAgKGludmFsaWRhdGUtbWVtb2l6 YXRpb24hIG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UpCisgIChkZWZpbmUgKHNjbS0+anNvbi1wb3J0 IHNjbSkKKyAgICAob3Blbi1pbnB1dC1zdHJpbmcgKHNjbS0+anNvbi1zdHJpbmcgc2NtKSkpCisg IChkZWZpbmUgKGhhbmRsZS1wYWNrYWdlIHVybCByZXF1ZXN0ZWQtYXV0aG9yIHJlcXVlc3RlZC1u YW1lIC4gcmVzdCkKKyAgICAoZGVmaW5lIHJlbGV2YW50LWFyZ3VtZW50LWxpc3QKKyAgICAgIChh bnkgKGxhbWJkYSAoYXJndW1lbnQtbGlzdCkKKyAgICAgICAgICAgICAoYXBwbHkgKGxhbWJkYSog KCM6a2V5IChhdXRob3IgIkF1dGhvciIpIChuYW1lICJmb28iKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgICAgICAgIChh bmQgKGVxdWFsPyByZXF1ZXN0ZWQtYXV0aG9yIGF1dGhvcikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlcXVhbD8gcmVxdWVzdGVkLW5hbWUgbmFtZSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFyZ3VtZW50LWxpc3QpKQorICAgICAgICAgICAgICAgICAgICBhcmd1bWVudC1saXN0 KSkKKyAgICAgICAgICAgYXJndW1lbnQtbGlzdHMpKQorICAgICh3aGVuIChub3QgcmVsZXZhbnQt YXJndW1lbnQtbGlzdCkKKyAgICAgIChlcnJvciAidGhlIHBhY2thZ2UgfmEvfmEgc2hvdWxkIGJl IGlycmVsZXZhbnQsIGJ1dCB+YSBpcyBmZXRjaGVkIgorICAgICAgICAgICAgIHJlcXVlc3RlZC1h dXRob3IgcmVxdWVzdGVkLW5hbWUgdXJsKSkKKyAgICAoc2NtLT5qc29uLXBvcnQKKyAgICAgKGFw cGx5IChtYXRjaCByZXN0CisgICAgICAgICAgICAgICgoIiIpIG1ha2UtcGFja2FnZS1qc29uKQor ICAgICAgICAgICAgICAoKCJkZXBlbmRlbmNpZXMiICIiKSBtYWtlLWRlcGVuZGVuY2llcy1qc29u KQorICAgICAgICAgICAgICAoKCJyZWxlYXNlcyIgIiIpIG1ha2UtcmVsZWFzZXMtanNvbikKKyAg ICAgICAgICAgICAgKF8gKGVycm9yICJUT0RPIH5hIiByZXN0KSkpCisgICAgICAgICAgICByZWxl dmFudC1hcmd1bWVudC1saXN0KSkpCisgIChkZWZpbmUgKGhhbmRsZS1tb2Qtc2VhcmNoIHNvcnQp CisgICAgOzsgUHJvZHVjZSBzZWFyY2ggcmVzdWx0cywgc29ydGVkIGJ5IFNPUlQgaW4gZGVzY2Vu ZGluZyBvcmRlci4KKyAgICAoZGVmaW5lIGFyZ3VtZW50cy0+a2V5CisgICAgICAobWF0Y2ggc29y dAorICAgICAgICAoInNjb3JlIiAobGFtYmRhKiAoIzprZXkgKHNjb3JlIDk4Ny42NTQpICM6YWxs b3ctb3RoZXIta2V5cykKKyAgICAgICAgICAgICAgICAgICBzY29yZSkpCisgICAgICAgICgiZG93 bmxvYWRzIiAobGFtYmRhKiAoIzprZXkgKGRvd25sb2FkcyAxMjMpICM6YWxsb3ctb3RoZXIta2V5 cykKKyAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWRzKSkpKQorICAgIChkZWZpbmUgYXJn dW1lbnQtbGlzdC0+a2V5IChjdXQgYXBwbHkgYXJndW1lbnRzLT5rZXkgPD4pKQorICAgIChkZWZp bmUgKGdyZWF0ZXIgeCB5KQorICAgICAgKD4gKGFyZ3VtZW50LWxpc3QtPmtleSB4KSAoYXJndW1l bnQtbGlzdC0+a2V5IHkpKSkKKyAgICAoZGVmaW5lIHNvcnRlZC1hcmd1bWVudC1saXN0cyAoc29y dC1saXN0IGFyZ3VtZW50LWxpc3RzIGdyZWF0ZXIpKQorICAgIChkZWZpbmUqIChhcmd1bWVudHMt Pmpzb24gIzprZXkgKGF1dGhvciAiQXV0aG9yIikgKG5hbWUgIkZvbyIpICh0eXBlICJtb2QiKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAg KGFuZCAoc3RyaW5nPT8gdHlwZSAibW9kIikKKyAgICAgICAgICAgYCgoImF1dGhvciIgLiAsYXV0 aG9yKQorICAgICAgICAgICAgICgibmFtZSIgLiAsbmFtZSkKKyAgICAgICAgICAgICAoInR5cGUi IC4gLHR5cGUpKSkpCisgICAgKGRlZmluZSBhcmd1bWVudC1saXN0LT5qc29uIChjdXQgYXBwbHkg YXJndW1lbnRzLT5qc29uIDw+KSkKKyAgICAoc2NtLT5qc29uLXBvcnQKKyAgICAgKGxpc3QtPnZl Y3RvciAoZmlsdGVyLW1hcCBhcmd1bWVudC1saXN0LT5qc29uIHNvcnRlZC1hcmd1bWVudC1saXN0 cykpKSkKKyAgKG1vY2sgKChndWl4IGh0dHAtY2xpZW50KSBodHRwLWZldGNoCisgICAgICAgICAo bGFtYmRhKiAodXJsICM6a2V5IGhlYWRlcnMpCisgICAgICAgICAgICh1bmxlc3MgKHN0cmluZy1w cmVmaXg/ICJtb2NrOi8vYXBpL3BhY2thZ2VzLyIgdXJsKQorICAgICAgICAgICAgIChlcnJvciAi dGhlIFVSTCB+YSBzaG91bGQgbm90IGJlIHVzZWQiIHVybCkpCisgICAgICAgICAgIChkZWZpbmUg cmVzb3VyY2UKKyAgICAgICAgICAgICAoc3Vic3RyaW5nIHVybCAoc3RyaW5nLWxlbmd0aCAibW9j azovL2FwaS9wYWNrYWdlcy8iKSkpCisgICAgICAgICAgIChkZWZpbmUgY29tcG9uZW50cyAoc3Ry aW5nLXNwbGl0IHJlc291cmNlICNcLykpCisgICAgICAgICAgIChtYXRjaCBjb21wb25lbnRzCisg ICAgICAgICAgICAgKChhdXRob3IgbmFtZSAuIHJlc3QpCisgICAgICAgICAgICAgIChhcHBseSBo YW5kbGUtcGFja2FnZSB1cmwgYXV0aG9yIG5hbWUgcmVzdCkpCisgICAgICAgICAgICAgKCgoPyAo Y3V0IHN0cmluZy1wcmVmaXg/ICI/dHlwZT1tb2QmcT0iIDw+KSBxdWVyeSkpCisgICAgICAgICAg ICAgIChoYW5kbGUtbW9kLXNlYXJjaAorICAgICAgICAgICAgICAgKGNvbmQgKChzdHJpbmctY29u dGFpbnMgcXVlcnkgInNvcnQ9c2NvcmUiKSAic2NvcmUiKQorICAgICAgICAgICAgICAgICAgICAg KChzdHJpbmctY29udGFpbnMgcXVlcnkgInNvcnQ9ZG93bmxvYWRzIikgImRvd25sb2FkcyIpCisg ICAgICAgICAgICAgICAgICAgICAoI3QgKGVycm9yICJzZWFyY2ggcXVlcnkgfmEgaGFzIHVua25v d24gc29ydCBrZXkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5KSkpKSkK KyAgICAgICAgICAgICAoXworICAgICAgICAgICAgICAoZXJyb3IgInRoZSBVUkwgfmEgc2hvdWxk IGhhdmUgYW4gYXV0aG9yIGFuZCBuYW1lIGNvbXBvbmVudCIKKyAgICAgICAgICAgICAgICAgICAg IHVybCkpKSkpCisgICAgICAgIChwYXJhbWV0ZXJpemUgKCglY29udGVudGRiLWFwaSAibW9jazov L2FwaS8iKSkKKyAgICAgICAgICAodGh1bmspKSkpCisKKyhkZWZpbmUqIChtaW5ldGVzdC0+Z3Vp eC1wYWNrYWdlKiAjOmtleSAoYXV0aG9yICJBdXRob3IiKSAobmFtZSAiZm9vIikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc29ydCAlZGVmYXVsdC1zb3J0LWtleSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisgIChtaW5l dGVzdC0+Z3VpeC1wYWNrYWdlIChzdHJpbmctYXBwZW5kIGF1dGhvciAiLyIgbmFtZSkgIzpzb3J0 IHNvcnQpKQorCisoZGVmaW5lIChpbXBvcnRlZC1wYWNrYWdlLXNleHAqIHByaW1hcnktYXJndW1l bnRzIC4gc2Vjb25kYXJ5LWFyZ3VtZW50cykKKyAgIkFzayB0aGUgaW1wb3J0ZXIgdG8gaW1wb3J0 IGEgcGFja2FnZSBzcGVjaWZpZWQgYnkgUFJJTUFSWS1BUkdVTUVOVFMsCitkdXJpbmcgYSBkeW5h bWljIHdoZXJlIHRoYXQgcGFja2FnZSBhbmQgdGhlIHBhY2thZ2VzIHNwZWNpZmllZCBieQorU0VD T05EQVJZLUFSR1VNRU5UUyBhcmUgYXZhaWxhYmxlIG9uIENvbnRlbnREQi4iCisgIChhcHBseSBj YWxsLXdpdGgtcGFja2FnZXMKKyAgICAgICAgIChsYW1iZGEgKCkKKyAgICAgICAgICAgOzsgVGhl IG1lbW9pemF0aW9uIGNhY2hlIGlzIHJlc2V0IGJ5IGNhbGwtd2l0aC1wYWNrYWdlcworICAgICAg ICAgICAoYXBwbHkgbWluZXRlc3QtPmd1aXgtcGFja2FnZSogcHJpbWFyeS1hcmd1bWVudHMpKQor ICAgcHJpbWFyeS1hcmd1bWVudHMKKyAgIHNlY29uZGFyeS1hcmd1bWVudHMpKQorCisoZGVmaW5l IChpbXBvcnRlZC1wYWNrYWdlLXNleHAgLiBleHRyYS1hcmd1bWVudHMpCisgICJBc2sgdGhlIGlt cG9ydGVyIHRvIGltcG9ydCBhIHBhY2thZ2Ugc3BlY2lmaWVkIGJ5IEVYVFJBLUFSR1VNRU5UUywK K2R1cmluZyBhIGR5bmFtaWMgZXh0ZW50IHdoZXJlIHRoYXQgcGFja2FnZSBpcyBhdmFpbGFibGUg b24gQ29udGVudERCLiIKKyAgKGltcG9ydGVkLXBhY2thZ2Utc2V4cCogZXh0cmEtYXJndW1lbnRz KSkKKworKGRlZmluZS1zeW50YXgtcnVsZSAodGVzdC1wYWNrYWdlIHRlc3QtY2FzZSAuIGV4dHJh LWFyZ3VtZW50cykKKyAgKHRlc3QtZXF1YWwgdGVzdC1jYXNlCisgICAgKG1ha2UtcGFja2FnZS1z ZXhwIC4gZXh0cmEtYXJndW1lbnRzKQorICAgIChpbXBvcnRlZC1wYWNrYWdlLXNleHAgLiBleHRy YS1hcmd1bWVudHMpKSkKKworKGRlZmluZS1zeW50YXgtcnVsZSAodGVzdC1wYWNrYWdlKiB0ZXN0 LWNhc2UgcHJpbWFyeS1hcmd1bWVudHMgZXh0cmEtYXJndW1lbnRzCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC4uLikKKyAgKHRlc3QtZXF1YWwgdGVzdC1jYXNlCisgICAgKGFw cGx5IG1ha2UtcGFja2FnZS1zZXhwIHByaW1hcnktYXJndW1lbnRzKQorICAgIChpbXBvcnRlZC1w YWNrYWdlLXNleHAqIHByaW1hcnktYXJndW1lbnRzIGV4dHJhLWFyZ3VtZW50cyAuLi4pKSkKKwor KHRlc3QtYmVnaW4gIm1pbmV0ZXN0IikKKworDAorOzsgUGFja2FnZSBuYW1lcworKHRlc3QtcGFj a2FnZSAibWluZXRlc3QtPmd1aXgtcGFja2FnZSIpCisodGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+ Z3VpeC1wYWNrYWdlLCBfIOKGkiAtIGluIHBhY2thZ2UgbmFtZSIKKyAgICAgICAgICAgICAgIzpu YW1lICJmb29fYmFyIgorICAgICAgICAgICAgICAjOmd1aXgtbmFtZSAibWluZXRlc3QtZm9vLWJh ciIKKyAgICAgICAgICAgICAgIzp1cHN0cmVhbS1uYW1lICJBdXRob3IvZm9vX2JhciIpCisKKyh0 ZXN0LWVxdWFsICJlbGFib3JhdGUgbmFtZXMsIHVuYW1iaWdpb3VzIgorICAiSmVpamEvbWVzZWNv bnMiCisgIChjYWxsLXdpdGgtcGFja2FnZXMKKyAgIChjdXQgZWxhYm9yYXRlLWNvbnRlbnRkYi1u YW1lICJtZXNlY29ucyIpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6YXV0aG9yICJKZWlqYSIp CisgICAnKCM6bmFtZSAic29tZXRoaW5nIiAjOmF1dGhvciAiZWxzZSIpKSkKKworKHRlc3QtZXF1 YWwgImVsYWJvcmF0ZSBuYW1lLCBhbWJpZ2lvdXMgKGhpZ2hlc3Qgc2NvcmUpIgorICAiSmVpamEv bWVzZWNvbnMiCisgIChjYWxsLXdpdGgtcGFja2FnZXMKKyAgIDs7ICM6c29ydCAic2NvcmUiIGlz IHRoZSBkZWZhdWx0CisgICAoY3V0IGVsYWJvcmF0ZS1jb250ZW50ZGItbmFtZSAibWVzZWNvbnMi KQorICAgJygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1dGhvciAiSmVpamMiICM6c2NvcmUgNzc3KQor ICAgJygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1dGhvciAiSmVpamIiICM6c2NvcmUgODg4KQorICAg JygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1dGhvciAiSmVpamEiICM6c2NvcmUgOTk5KSkpCisKKwor KHRlc3QtZXF1YWwgImVsYWJvcmF0ZSBuYW1lLCBhbWJpZ2lvdXMgKG1vc3QgZG93bmxvYWRzKSIK KyAgIkplaWphL21lc2Vjb25zIgorICAoY2FsbC13aXRoLXBhY2thZ2VzCisgICAoY3V0IGVsYWJv cmF0ZS1jb250ZW50ZGItbmFtZSAibWVzZWNvbnMiICM6c29ydCAiZG93bmxvYWRzIikKKyAgICco IzpuYW1lICJtZXNlY29ucyIgIzphdXRob3IgIkplaWpjIiAjOmRvd25sb2FkcyA3NzcpCisgICAn KCM6bmFtZSAibWVzZWNvbnMiICM6YXV0aG9yICJKZWlqYiIgIzpkb3dubG9hZHMgODg4KQorICAg JygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1dGhvciAiSmVpamEiICM6ZG93bmxvYWRzIDk5OSkpKQor CisMCis7OyBEZXRlcm1pbmluZyB0aGUgaG9tZSBwYWdlCisodGVzdC1wYWNrYWdlICJtaW5ldGVz dC0+Z3VpeC1wYWNrYWdlLCB3ZWJzaXRlIGlzIHVzZWQgYXMgaG9tZSBwYWdlIgorICAgICAgICAg ICAgICAjOmhvbWUtcGFnZSAid2ViOi8vc2l0ZSIKKyAgICAgICAgICAgICAgIzp3ZWJzaXRlICJ3 ZWI6Ly9zaXRlIikKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIGlmIGFi c2VudCwgdGhlIGZvcnVtIGlzIHVzZWQiCisgICAgICAgICAgICAgICM6aG9tZS1wYWdlICcobWlu ZXRlc3QtdG9waWMgNjI4KQorICAgICAgICAgICAgICAjOmZvcnVtcyA2MjgKKyAgICAgICAgICAg ICAgIzp3ZWJzaXRlICdudWxsKQorKHRlc3QtcGFja2FnZSAibWluZXRlc3QtPmd1aXgtcGFja2Fn ZSwgaWYgYWJzZW50LCB0aGUgZ2l0IHJlcG8gaXMgdXNlZCIKKyAgICAgICAgICAgICAgIzpob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC1tb2RzL21lc2Vjb25zIgorICAgICAg ICAgICAgICAjOmZvcnVtcyAnbnVsbAorICAgICAgICAgICAgICAjOndlYnNpdGUgJ251bGwKKyAg ICAgICAgICAgICAgIzpyZXBvICJodHRwczovL2dpdGh1Yi5jb20vbWluZXRlc3QtbW9kcy9tZXNl Y29ucyIpCisodGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBhbGwgaG9tZSBw YWdlIGluZm9ybWF0aW9uIGFic2VudCIKKyAgICAgICAgICAgICAgIzpob21lLXBhZ2UgI2YKKyAg ICAgICAgICAgICAgIzpmb3J1bXMgJ251bGwKKyAgICAgICAgICAgICAgIzp3ZWJzaXRlICdudWxs CisgICAgICAgICAgICAgICM6cmVwbyAnbnVsbCkKKworDAorCis7OyBEZXBlbmRlbmNpZXMKKyh0 ZXN0LXBhY2thZ2UqICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCB1bmFtYmlnaW91cyBkZXBlbmRl bmN5IgorICAobGlzdCAjOnJlcXVpcmVtZW50cyAnKCgibWVzZWNvbnMiICNmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICgiSmVpamEvbWVzZWNvbnMiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAic29tZS1tb2RwYWNrL2NvbnRhaW5pbmctbWVzZSIpKSkKKyAgICAgICAgIzppbnB1dHMg JygibWluZXRlc3QtbWVzZWNvbnMiKSkKKyAgKGxpc3QgIzphdXRob3IgIkplaWphIiAjOm5hbWUg Im1lc2Vjb25zIikKKyAgKGxpc3QgIzphdXRob3IgInNvbWUtbW9kcGFjayIgIzpuYW1lICJjb250 YWluaW5nLW1lc2UiICM6dHlwZSAibW9kcGFjayIpKQorCisodGVzdC1wYWNrYWdlKiAibWluZXRl c3QtPmd1aXgtcGFja2FnZSwgYW1iaWdpb3VzIGRlcGVuZGVuY3kgKGhpZ2hlc3Qgc2NvcmUpIgor ICAobGlzdCAjOm5hbWUgImZyb2JuaWNhdGUiCisgICAgICAgICM6Z3VpeC1uYW1lICJtaW5ldGVz dC1mcm9ibmljYXRlIgorICAgICAgICAjOnVwc3RyZWFtLW5hbWUgIkF1dGhvci9mcm9ibmljYXRl IgorICAgICAgICAjOnJlcXVpcmVtZW50cyAnKCgiZnJvYiIgI2YKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKCJBdXRob3IvZm9vIiAiQXV0aG9yL2JhciIpKSkKKyAgICAgICAgOzsgIzpzb3J0 ICJzY29yZSIgaXMgdGhlIGRlZmF1bHQKKyAgICAgICAgIzppbnB1dHMgJygibWluZXRlc3QtYmFy IikpCisgIChsaXN0ICM6YXV0aG9yICJBdXRob3IiICM6bmFtZSAiZm9vIiAjOnNjb3JlIDApCisg IChsaXN0ICM6YXV0aG9yICJBdXRob3IiICM6bmFtZSAiYmFyIiAjOnNjb3JlIDk5OTkpKQorCiso dGVzdC1wYWNrYWdlKiAibWluZXRlc3QtPmd1aXgtcGFja2FnZSwgYW1iaWdpb3VzIGRlcGVuZGVu Y3kgKG1vc3QgZG93bmxvYWRzKSIKKyAgKGxpc3QgIzpuYW1lICJmcm9ibmljYXRlIgorICAgICAg ICAjOmd1aXgtbmFtZSAibWluZXRlc3QtZnJvYm5pY2F0ZSIKKyAgICAgICAgIzp1cHN0cmVhbS1u YW1lICJBdXRob3IvZnJvYm5pY2F0ZSIKKyAgICAgICAgIzpyZXF1aXJlbWVudHMgJygoImZyb2Ii ICNmCisgICAgICAgICAgICAgICAgICAgICAgICAgICgiQXV0aG9yL2ZvbyIgIkF1dGhvci9iYXIi KSkpCisgICAgICAgICM6aW5wdXRzICcoIm1pbmV0ZXN0LWJhciIpCisgICAgICAgICM6c29ydCAi ZG93bmxvYWRzIikKKyAgKGxpc3QgIzphdXRob3IgIkF1dGhvciIgIzpuYW1lICJmb28iICM6ZG93 bmxvYWRzIDApCisgIChsaXN0ICM6YXV0aG9yICJBdXRob3IiICM6bmFtZSAiYmFyIiAjOmRvd25s b2FkcyA5OTk5KSkKKworKHRlc3QtcGFja2FnZSAibWluZXRlc3QtPmd1aXgtcGFja2FnZSwgb3B0 aW9uYWwgZGVwZW5kZW5jeSIKKyAgICAgICAgICAgICAgIzpyZXF1aXJlbWVudHMgJygoIm1lc2Vj b25zIiAjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIkplaWphL21lc2Vjb25z IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvbWUtbW9kcGFjay9jb250YWlu aW5nLW1lc2UiKSkpCisgICAgICAgICAgICAgICM6aW5wdXRzICcoKSkKKworDAorOzsgTGljZW5z ZQorKHRlc3QtcGFja2FnZSAibWluZXRlc3QtPmd1aXgtcGFja2FnZSwgaWRlbnRpY2FsIGxpY2Vu c2VzIgorICAgICAgICAgICAgICAjOmd1aXgtbGljZW5zZSAnbGljZW5zZTpsZ3BsMysKKyAgICAg ICAgICAgICAgIzpsaWNlbnNlICJMR1BMLTMuMC1vci1sYXRlciIKKyAgICAgICAgICAgICAgIzpt ZWRpYS1saWNlbnNlICJMR1BMLTMuMC1vci1sYXRlciIpCisKKzs7IFNvcnRpbmcKKyhsZXQqICgo bWFrZS1wYWNrYWdlCisgICAgICAgIChsYW1iZGEgYXJndW1lbnRzCisgICAgICAgICAgKGpzb24t PnBhY2thZ2UgKGFwcGx5IG1ha2UtcGFja2FnZS1qc29uIGFyZ3VtZW50cykpKSkKKyAgICAgICAo eCAobWFrZS1wYWNrYWdlICM6c2NvcmUgMCkpCisgICAgICAgKHkgKG1ha2UtcGFja2FnZSAjOnNj b3JlIDEpKQorICAgICAgICh6IChtYWtlLXBhY2thZ2UgIzpzY29yZSAyKSkpCisgICh0ZXN0LWVx dWFsICJzb3J0LXBhY2thZ2VzLCBhbHJlYWR5IHNvcnRlZCIKKyAgICAobGlzdCB6IHkgeCkKKyAg ICAoc29ydC1wYWNrYWdlcyAobGlzdCB6IHkgeCkpKQorICAodGVzdC1lcXVhbCAic29ydC1wYWNr YWdlcywgcmV2ZXJzZSIKKyAgICAobGlzdCB6IHkgeCkKKyAgICAoc29ydC1wYWNrYWdlcyAobGlz dCB4IHkgeikpKSkKKworKHRlc3QtZW5kICJtaW5ldGVzdCIpCi0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0007-gnu-Add-minetest-mesecons.patch" Content-Type: text/x-patch; name="0007-gnu-Add-minetest-mesecons.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjMGE3NjMxMWJlNzNhZWY0MTA5NmYzZTUyY2EzMjljZjJmZDI5NTBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6MDA6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1tZXNlY29ucy4KCiogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSAobWluZXRlc3QtbWVzZWNvbnMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2Vz L21pbmV0ZXN0LnNjbSB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCBmOGFjYTMw MDVjLi5kOTllZmE0NjI1IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisr KyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI0LDMgKzI0LDM5IEBACiBudW1lcmlj IGlkZW50aWZpZXIgVE9QSUMtSUQgb24gdGhlIG9mZmljaWFsIE1pbmV0ZXN0IGZvcnVtcy4iCiAg IChzdHJpbmctYXBwZW5kICJodHRwczovL2ZvcnVtLm1pbmV0ZXN0Lm5ldC92aWV3dG9waWMucGhw P3Q9IgogICAgICAgICAgICAgICAgICAobnVtYmVyLT5zdHJpbmcgdG9waWMtaWQpKSkKKworKGRl ZmluZS1wdWJsaWMgbWluZXRlc3QtbWVzZWNvbnMKKyAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVu dERCIGRvZXMgbm90IGhhdmUgaXRzIG93biB2ZXJzaW9uIG51bWJlci4KKyAgKGxldCAoKGNvbW1p dCAiZGI1ODc5NzA2ZDA0ZDM0ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCisgICAgICAgIChy ZXZpc2lvbiAiMCIpKQorICAocGFja2FnZQorICAgIChuYW1lICJtaW5ldGVzdC1tZXNlY29ucyIp CisgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIxLjIuMSIgcmV2aXNpb24gY29tbWl0KSkKKyAg ICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL21pbmV0ZXN0LW1vZHMvbWVzZWNvbnMiKQorICAgICAgICAgICAgIChjb21taXQgY29tbWl0 KSkpCisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIwNG05czlsM2ZydzFsZ2tpNDFo Z3Zqc3cyemtydmZ2MHN5NzUwYjZqMTJhcnpiM2x2NjQ1IikpCisgICAgICAgKGZpbGUtbmFtZSAo Z2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vbWVzZWNvbnMubmV0 IikKKyAgICAoc3lub3BzaXMKKyAgICAgIkRpZ2l0YWwgY2lyY3VpdHJ5IGZvciBNaW5ldGVzdCwg aW5jbHVkaW5nIHdpcmVzLCBidXR0b25zIGFuZCBsaWdodHMiKQorICAgIChkZXNjcmlwdGlvbgor ICAgICAiTWVzZWNvbnMgaXMgYSBtb2QgZm9yIE1pbmV0ZXN0IGltcGxlbWVudGluZyB2YXJpb3Vz IGl0ZW1zIHJlbGF0ZWQKK3RvIGRpZ2l0YWwgY2lyY3VpdHJ5LCBzdWNoIGFzIHdpcmVzLCBidXR0 b25zLCBsaWdodHMgYW5kIHByb2dyYW1tYWJsZQorY29udHJvbGxlcnMuICBBbW9uZyBvdGhlciB0 aGluZ3MsIHRoZXJlIGFyZSBhbHNvIHBpc3RvbnMsIHNvbGFyIHBhbmVscywKK3ByZXNzdXJlIHBs YXRlcyBhbmQgbm90ZSBibG9ja3MuCisKK01lc2Vjb25zIGhhcyBhIHNpbWlsYXIgZ29hbCB0byBS ZWRzdG9uZSBpbiBNaW5lY3JhZnQsIGJ1dCB3b3JrcyBpbiBpdHMgb3duIHdheSwKK3dpdGggZGlm ZmVyZW50IHJ1bGVzIGFuZCBtZWNoYW5pY3MuIikKKyAgICA7OyBMR1BMIGZvciBjb2RlLCBDQy1C WS1TQSBmb3IgdGV4dHVyZXMuCisgICAgOzsgVGhlIFJFQURNRS5tZCBhbmQgQ09QWUlORy50eHQg ZGlzYWdyZWUgYWJvdXQgdGhlICIrIiBpbiBsaWNlbnNlOmxncGwzKy4KKyAgICA7OyBGb3Igbm93 LCBhc3N1bWUgUkVBRE1FLm1kIGlzIGNvcnJlY3QuICBVcHN0cmVhbSBoYXMgYmVlbiBhc2tlZCB0 bworICAgIDs7IGNvcnJlY3QgdGhlIGluY29uc2lzdGVuY3k6CisgICAgOzsgPGh0dHBzOi8vZ2l0 aHViLmNvbS9taW5ldGVzdC1tb2RzL21lc2Vjb25zL2lzc3Vlcy81NzU+LgorICAgIChsaWNlbnNl IChsaXN0IGxpY2Vuc2U6bGdwbDMrIGxpY2Vuc2U6Y2MtYnktc2EzLjApKQorICAgIChwcm9wZXJ0 aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiSmVpamEvbWVzZWNvbnMiKSkpKSkpCi0tIAoyLjMyLjAK Cg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0008-gnu-Add-minetest-basic-materials.patch" Content-Type: text/x-patch; name="0008-gnu-Add-minetest-basic-materials.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmZGY5OTkyN2QwZGQwMDkwZmU2NmYwNGU5YTZlN2U2OGY4ODJmMmUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6MjM6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMuCgoqIGdudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gKG1pbmV0ZXN0LWJhc2ljLW1hdGVyaWFscyk6IE5ldyB2YXJpYWJsZS4KLS0t CiBnbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCBkOTll ZmE0NjI1Li45N2Q0ZDNjOWFjIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2Nt CisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI1LDYgKzI1LDMxIEBAIG51bWVy aWMgaWRlbnRpZmllciBUT1BJQy1JRCBvbiB0aGUgb2ZmaWNpYWwgTWluZXRlc3QgZm9ydW1zLiIK ICAgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZm9ydW0ubWluZXRlc3QubmV0L3ZpZXd0b3BpYy5w aHA/dD0iCiAgICAgICAgICAgICAgICAgIChudW1iZXItPnN0cmluZyB0b3BpYy1pZCkpKQogCiso ZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMKKyAgKHBhY2thZ2UKKyAgICAo bmFtZSAibWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzIikKKyAgICA7OyBVcHN0cmVhbSB1c2VzIGRh dGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lvbiAiMjAyMS0wMS0zMCIpCisgICAg KHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAg KHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0bGFiLmNv bS9WYW5lc3NhRS9iYXNpY19tYXRlcmlhbHMuZ2l0IikKKyAgICAgICAgICAgICAoY29tbWl0ICJl NzI2NjViMmVkOThkN2JlMTE1Nzc5YTMyZDM1ZTZkOWZmYTIzMWJkIikpKQorICAgICAgIChzaGEy NTYKKyAgICAgICAgKGJhc2UzMiAiMHY2bDNscmpnc2h5NHNjY2poZmhtZnhjM2drMGNkeTczcWIw Mmk5d2Qydnc1MDZ2NWFzeCIpKQorICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFt ZSB2ZXJzaW9uKSkpKQorICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3Rl bSkKKyAgICAoaG9tZS1wYWdlIChtaW5ldGVzdC10b3BpYyAyMTAwMCkpCisgICAgKHN5bm9wc2lz ICJTb21lIFwiYmFzaWNcIiBtYXRlcmlhbHMgYW5kIGl0ZW1zIGZvciBvdGhlciBNaW5ldGVzdCBt b2RzIHRvIHVzZSIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJUaGUgTWluZXRlc3QgbW9kIFwi YmFzaWNfbWF0ZXJpYWxzXCIgcHJvdmlkZXMgYSBzbWFsbCBzZWxlY3Rpb24gb2YKK1wiYmFzaWNc IiBtYXRlcmlhbHMgYW5kIGl0ZW1zIHRoYXQgb3RoZXIgbW9kcyBzaG91bGQgdXNlIHdoZW4gcG9z c2libGUgLS0gdGhpbmdzCitsaWtlIHN0ZWVsIGJhcnMgYW5kIGNoYWlucywgd2lyZSwgcGxhc3Rp YyBzdHJpcHMgYW5kIHNoZWV0cywgYW5kIG1vcmUuIikKKyAgICAobGljZW5zZQorICAgICAobGlz dCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQorICAgIChwcm9wZXJ0aWVzIGAo KHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvYmFzaWNfbWF0ZXJpYWxzIikpKSkpCisKIChkZWZp bmUtcHVibGljIG1pbmV0ZXN0LW1lc2Vjb25zCiAgIDs7IFRoZSByZWxlYXNlIG9uIENvbnRlbnRE QiBkb2VzIG5vdCBoYXZlIGl0cyBvd24gdmVyc2lvbiBudW1iZXIuCiAgIChsZXQgKChjb21taXQg ImRiNTg3OTcwNmQwNGQzNDgwYmM0ODYzY2UwYzAzZmE3M2U1ZjEwYzciKQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0009-gnu-Add-minetest-unifieddyes.patch" Content-Type: text/x-patch; name="0009-gnu-Add-minetest-unifieddyes.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2ZWEyOGRmNjdiNTQwMjYzNGIxNDg2N2NlMzM0YTJiOTc2NGU2ZDQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6NDA6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC11bmlmaWVkZHllcy4KCiogZ251L3BhY2thZ2VzL21pbmV0 ZXN0LnNjbSAobWluZXRlc3QtdW5pZmllZGR5ZXMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3Bh Y2thZ2VzL21pbmV0ZXN0LnNjbSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdl cy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IDk3ZDRkM2M5 YWMuLjhiOWViMzBhNmEgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysr IGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtODUsMyArODUsMzIgQEAgd2l0aCBkaWZm ZXJlbnQgcnVsZXMgYW5kIG1lY2hhbmljcy4iKQogICAgIDs7IDxodHRwczovL2dpdGh1Yi5jb20v bWluZXRlc3QtbW9kcy9tZXNlY29ucy9pc3N1ZXMvNTc1Pi4KICAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmxncGwzKyBsaWNlbnNlOmNjLWJ5LXNhMy4wKSkKICAgICAocHJvcGVydGllcyBgKCh1 cHN0cmVhbS1uYW1lIC4gIkplaWphL21lc2Vjb25zIikpKSkpKQorCisoZGVmaW5lLXB1YmxpYyBt aW5ldGVzdC11bmlmaWVkZHllcworICAocGFja2FnZQorICAgIChuYW1lICJtaW5ldGVzdC11bmlm aWVkZHllcyIpCisgICAgOzsgVXBzdHJlYW0gdXNlcyBkYXRlcyBhcyB2ZXJzaW9uIG51bWJlcnMu CisgICAgKHZlcnNpb24gIjIwMjEtMDQtMjAtMSIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2lu CisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQor ICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0bGFiLmNvbS9WYW5lc3NhRS91bmlmaWVkZHll cyIpCisgICAgICAgICAgICAgKGNvbW1pdCAiZmYzYjJkMzBmYTBkZjVjNzE4MWZkZDQwMWI5ODlk ZTYyNzFjM2JiMyIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIKKyAgICAgICAg ICIwcmJhOW4xOTJ4Y3BteHducTdpeGI2bW4zMmdrcGljMjQ3ajN3NG13aW5ycWN5c2NhY3N2Iikp CisgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAg KGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVk LWlucHV0cworICAgICBgKCgibWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFz aWMtbWF0ZXJpYWxzKSkpCisgICAgKGhvbWUtcGFnZSAobWluZXRlc3QtdG9waWMgMjE3OCkpCisg ICAgKHN5bm9wc2lzCisgICAgICJVbmlmaWVkIER5ZXMgZXhwYW5kcyB0aGUgc3RhbmRhcmQgZHll IHNldCBvZiBNaW5ldGVzdCB0byB1cCB0byAyNTYgY29sb3VycyIpCisgICAgKGRlc2NyaXB0aW9u ICJUaGUgcHVycG9zZSBvZiB0aGlzIG1vZCBvcmlnaW5hbGx5IHdhcyB0byBzdXBwbHkgYSBjb21w bGV0ZQorc2V0IG9mIGNvbG91cnMgZm9yIE1pbmV0ZXN0IG1vZCBhdXRob3JzIHRvIHVzZSBmb3Ig Y29sb3VyaXNlZCBub2RlcyBvcgorcmVmZXJlbmNlIGluIHJlY2lwZXMuICBTaW5jZSB0aGUgYWR2 ZW50IG9mIHRoZSBkZWZhdWx0IGR5ZXMgbW9kIGluIHRoZSBzdGFuZGFyZAorTWluZXRlc3QgZ2Ft ZSwgdGhpcyBtb2QgaGFzIGJlY29tZSBhbiBleHRlbnNpb24gb2YgdGhlIGRlZmF1bHQgbW9kIGFu IGEgbGlicmFyeQorZm9yIGdlbmVyYWwgY29sb3VyIGhhbmRsaW5nLiIpCisgICAgKGxpY2Vuc2Ug bGljZW5zZTpncGwyKykKKyAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVz c2FFL3VuaWZpZWRkeWVzIikpKSkpCi0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0010-gnu-Add-minetest-pipeworks.patch" Content-Type: text/x-patch; name="0010-gnu-Add-minetest-pipeworks.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3OTliZjM5YmI4OGExNmQwOWE4NDczYTQzZWE0NThmYTk4ZGY4NmFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjM6Mzk6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1waXBld29ya3MuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVz dC5zY20gKG1pbmV0ZXN0LXBpcGV3b3Jrcyk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCA4YjllYjMwYTZh Li43ODIxNjZkYWVmIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBi L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTg2LDYgKzg2LDM3IEBAIHdpdGggZGlmZmVy ZW50IHJ1bGVzIGFuZCBtZWNoYW5pY3MuIikKICAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmxn cGwzKyBsaWNlbnNlOmNjLWJ5LXNhMy4wKSkKICAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1u YW1lIC4gIkplaWphL21lc2Vjb25zIikpKSkpKQogCisoZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC1w aXBld29ya3MKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtcGlwZXdvcmtzIikKKyAg ICA7OyBVcHN0cmVhbSB1c2VzIGRhdGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lv biAiMjAyMS0wNC0xNC0xIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAg KHVybCAiaHR0cHM6Ly9naXRsYWIuY29tL1ZhbmVzc2FFL3BpcGV3b3JrcyIpCisgICAgICAgICAg ICAgKGNvbW1pdCAiZGI2ZDFiZDljMTA5ZTFlNTQzYjk3Y2MzZmE4YTExNDAwZGEyM2JjZCIpKSkK KyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjFmbGhjbmYxN2RuMXY4NmtjZzQ3YTFu NGNiMGx5YmQxMW5jeHJreG4zd21mMTBpYnNybTAiKSkKKyAgICAgICAoZmlsZS1uYW1lIChnaXQt ZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVpbGQtc3lzdGVtIG1pbmV0ZXN0LW1v ZC1idWlsZC1zeXN0ZW0pCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJtaW5ldGVz dC1iYXNpYy1tYXRlcmlhbHMiICxtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMpKSkKKyAgICAoaG9t ZS1wYWdlIChtaW5ldGVzdC10b3BpYyAyMTU1KSkKKyAgICAoc3lub3BzaXMgIlBpcGVzLCBpdGVt LXRyYW5zcG9ydCB0dWJlcyBhbmQgcmVsYXRlZCBkZXZpY2VzIGZvciBNaW5ldGVzdCIpCisgICAg KGRlc2NyaXB0aW9uCisgICAgICJQaXBld29ya3MgaXMgYSBtb2QgZm9yIE1pbmV0ZXN0IGltcGxl bWVudGluZyAzRCBwaXBlcyBhbmQgdHViZXMgZm9yCit0cmFuc3BvcnRpbmcgbGlxdWlkcyBhbmQg aXRlbXMgYW5kIHNvbWUgcmVsYXRlZCBkZXZpY2VzLiAgUGlwZXMgYW5kIHR1YmVzIGNhbgorZ28g aG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuICBJdGVtIHR1YmVzIGNhbiBhbHNvIGJlIHVzZWQg Zm9yIHNvcnRpbmcgaXRlbXMKK2FuZCBleHRyYWN0aW5nIGl0ZW1zIGZyb20gY2hlc3RzIG9yIHB1 dHRpbmcgaXRlbXMgaW4gY2hlc3RzLiAgQXV0b2NyYWZ0ZXJzIGNhbgorYXV0b21hdGljYWxseSBm b2xsb3cgY3JhZnQgcmVjaXBlcyB0byBtYWtlIG5ldyBpdGVtcyBhbmQgY2FuIGJlIGZlZCBieSBp dGVtCit0dWJlcy4gIERlcGxveWVycyBjYW4gcGxhY2UgaXRlbXMgaW4gdGhlIHdvcmxkIGFzIGEg cGxheWVyIHdvdWxkLiAgTm9kZQorYnJlYWtlcnMgc2ltdWxhdGUgYSBwbGF5ZXIgcHVuY2hpbmcg YSBub2RlLiIpCisgICAgOzsgQ0MtQlktU0EgZm9yIHRleHR1cmVzLCBMR1BMIGZvciBjb2RlCisg ICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpjYy1ieS1zYTQuMCBsaWNlbnNlOmxncGwzKSkKKyAg ICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL3BpcGV3b3JrcyIpKSkp KQorCiAoZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC11bmlmaWVkZHllcwogICAocGFja2FnZQogICAg IChuYW1lICJtaW5ldGVzdC11bmlmaWVkZHllcyIpCi0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0011-gnu-Add-minetest-coloredwood.patch" Content-Type: text/x-patch; name="0011-gnu-Add-minetest-coloredwood.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5M2RlZWY3NDMxYTk4NmM0MWIwODVhYTEwNzA1NWIwMzQ4YThlZDhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAwMDo1MDoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWNvbG9yZWR3b29kLgoKKiBnbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtIChtaW5ldGVzdC1jb2xvcmVkd29vZCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCA3ODIxNjZkYWVm Li40YzU0MmM2MDYxIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBi L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTUwLDYgKzUwLDM0IEBAIGxpa2Ugc3RlZWwg YmFycyBhbmQgY2hhaW5zLCB3aXJlLCBwbGFzdGljIHN0cmlwcyBhbmQgc2hlZXRzLCBhbmQgbW9y ZS4iKQogICAgICAobGlzdCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAg IChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvYmFzaWNfbWF0ZXJpYWxz IikpKSkpCiAKKyhkZWZpbmUtcHVibGljIG1pbmV0ZXN0LWNvbG9yZWR3b29kCisgIChwYWNrYWdl CisgICAgKG5hbWUgIm1pbmV0ZXN0LWNvbG9yZWR3b29kIikKKyAgICA7OyBVcHN0cmVhbSB1c2Vz IGRhdGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lvbiAiMjAyMS0wNC0xNC0xIikK KyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRs YWIuY29tL1ZhbmVzc2FFL2NvbG9yZWR3b29kIikKKyAgICAgICAgICAgICAoY29tbWl0ICJiZTRk ZjZmYzg4OTQxOTE1NWJlZDg2MzhiYmI3NTI0OTNlNzhjYmQ1IikpKQorICAgICAgIChzaGEyNTYK KyAgICAgICAgKGJhc2UzMiAiMXN3aXJmazZiNHhmYml3djhhZHl3NXlsMmx5ZnBwOHltZmlwenE5 aXZ5dm1pZjhubDNraSIpKQorICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2 ZXJzaW9uKSkpKQorICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkK KyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIiAs bWluZXRlc3QtdW5pZmllZGR5ZXMpKSkKKyAgICAoaG9tZS1wYWdlIChtaW5ldGVzdC10b3BpYyAy NDExKSkKKyAgICAoc3lub3BzaXMgIlBhaW50ZWQgd29vZCBpbiBNaW5ldGVzdCIpCisgICAgKGRl c2NyaXB0aW9uCisgICAgICJUaGlzIE1pbmV0ZXN0IG1vZCBwcm92aWRlcyBodW5kcmVkcyBvZiBj b2xvdXJzIG9mIHdvb2QgYW5kIGZlbmNlcyB0bworTWluZXRlc3QsIHVzaW5nIFVuaWZpZWQgRHll cy4gIElmIHRoZSBcIm1vcmVibG9ja3NcIiBtb2QgaXMgYWN0aXZlLAorY29sb3VyZWQgYW5kIGN1 dCB3b29kIHNoYXBlcyBhcmUgcHJvdmlkZWQgYXMgd2VsbC4iKQorICAgIChsaWNlbnNlCisgICAg IDs7IExHUEwgZm9yIGNvZGUsIENDLUJZLVNBIGZvciB0ZXh0dXJlcworICAgICAobGlzdCBsaWNl bnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3Ry ZWFtLW5hbWUgLiAiVmFuZXNzYUUvY29sb3JlZHdvb2QiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMg bWluZXRlc3QtbWVzZWNvbnMKICAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVudERCIGRvZXMgbm90 IGhhdmUgaXRzIG93biB2ZXJzaW9uIG51bWJlci4KICAgKGxldCAoKGNvbW1pdCAiZGI1ODc5NzA2 ZDA0ZDM0ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCi0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0012-gnu-Add-minetest-ethereal.patch" Content-Type: text/x-patch; name="0012-gnu-Add-minetest-ethereal.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0MmIzZGFmMjc1NmU1ZWIzZjc4OTBiOWE0M2ZlYTkwYmRmZjRiYTkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAwMToyNDo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWV0aGVyZWFsLgoKKiBnbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIChtaW5ldGVzdC1ldGhlcmVhbCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmlu ZGV4IDRjNTQyYzYwNjEuLmExYWE5MDI3NmQgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5l dGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtNzgsNiArNzgsMzUg QEAgY29sb3VyZWQgYW5kIGN1dCB3b29kIHNoYXBlcyBhcmUgcHJvdmlkZWQgYXMgd2VsbC4iKQog ICAgICAobGlzdCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAgIChwcm9w ZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvY29sb3JlZHdvb2QiKSkpKSkKIAor KGRlZmluZS1wdWJsaWMgbWluZXRlc3QtZXRoZXJlYWwKKyAgOzsgQ29udGVudERCIHJlbGVhc2Ug MjAyMS0wNy0yOCBpcyBzbGlnaHRseSBhaGVhZCBvZiB0aGUKKyAgOzsgaW5pdGlhbCB2ZXJzaW9u IDEuMjkgLS0gaS5lLiwgc29tZSByZWxlYXNlZCBjaGFuZ2VzIGhhdmUgYmVlbgorICA7OyBtYWRl IHRvIHZlcnNpb24gMS4yOSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyB2ZXJzaW9uIGJ1bXAuCisg IChsZXQgKChjb21taXQgIjc2NzBjMWRhOTI3NDkwMWY1N2Y2NjgyMzg0YWYyYjNiYWUwMDVhODYi KQorICAgICAgICAocmV2aXNpb24gIjAiKSkKKyAgICAocGFja2FnZQorICAgICAgKG5hbWUgIm1p bmV0ZXN0LWV0aGVyZWFsIikKKyAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMS4yOSIgcmV2 aXNpb24gY29tbWl0KSkKKyAgICAgIChzb3VyY2UKKyAgICAgICAob3JpZ2luCisgICAgICAgICAo bWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAg ICAgICAgICh1cmwgImh0dHBzOi8vbm90YWJ1Zy5vcmcvVGVuUGx1czEvZXRoZXJlYWwiKQorICAg ICAgICAgICAgICAgKGNvbW1pdCBjb21taXQpKSkKKyAgICAgICAgIChzaGEyNTYKKyAgICAgICAg ICAoYmFzZTMyICIxaGFsOGJxNGZ5ZHNpcDdzOHJxejR2bGFhcXk5cmh6eG1yeWQwajJxbnFtOTI4 NnlqZ2trIikpCisgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lv bikpKSkKKyAgICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkKKyAg ICAgIChob21lLXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDE0NjM4KSkKKyAgICAgIChzeW5vcHNpcyAi VGhlIEV0aGVyZWFsIG1vZCBhZGRzIG1hbnkgbmV3IGJpb21lcyB0byBNaW5ldGVzdCIpCisgICAg ICAoZGVzY3JpcHRpb24KKyAgICAgICAiVGhlIEV0aGVyZWFsIE1pbmV0ZXN0IG1vZCB1c2VzIHRo ZSB2NyBtYXAgZ2VuZXJhdG9yIHRvIGFkZCBtYW55IG5ldworYmlvbWVzIHRvIHRoZSB3b3JsZC4g IEl0IGFkZHMgbmV3IHRyZWVzLCBwbGFudHMsIGZvb2QgaXRlbXMsIHR3ZWFrcyBhbmQgc29tZQor c3BlY2lhbCBpdGVtcywgaW50ZW5kaW5nIHRvIG1ha2UgYW4gaW50ZXJlc3RpbmcgYWR2ZW50dXJl LiIpCisgICAgICA7OyBDQzA6IHNvbWUgdGV4dHVyZXMKKyAgICAgIChsaWNlbnNlIChsaXN0IGxp Y2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhwYXQpKQorICAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0t bmFtZSAuICJUZW5QbHVzMS9ldGhlcmVhbCIpKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRl c3QtbWVzZWNvbnMKICAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVudERCIGRvZXMgbm90IGhhdmUg aXRzIG93biB2ZXJzaW9uIG51bWJlci4KICAgKGxldCAoKGNvbW1pdCAiZGI1ODc5NzA2ZDA0ZDM0 ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCkBAIC0xNTcsOCArMTg2LDcgQEAgYnJlYWtlcnMg c2ltdWxhdGUgYSBwbGF5ZXIgcHVuY2hpbmcgYSBub2RlLiIpCiAgICAgICAgICAgICAgKHVybCAi aHR0cHM6Ly9naXRsYWIuY29tL1ZhbmVzc2FFL3VuaWZpZWRkeWVzIikKICAgICAgICAgICAgICAo Y29tbWl0ICJmZjNiMmQzMGZhMGRmNWM3MTgxZmRkNDAxYjk4OWRlNjI3MWMzYmIzIikpKQogICAg ICAgIChzaGEyNTYKLSAgICAgICAgKGJhc2UzMgotICAgICAgICAgIjByYmE5bjE5MnhjcG14d25x N2l4YjZtbjMyZ2twaWMyNDdqM3c0bXdpbnJxY3lzY2Fjc3YiKSkKKyAgICAgICAgKGJhc2UzMiAi MHJiYTluMTkyeGNwbXh3bnE3aXhiNm1uMzJna3BpYzI0N2ozdzRtd2lucnFjeXNjYWNzdiIpKQog ICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkpKQogICAgIChi dWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkKICAgICAocHJvcGFnYXRlZC1p bnB1dHMKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0013-gnu-Add-minetest-technic.patch" Content-Type: text/x-patch; name="0013-gnu-Add-minetest-technic.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlOGI1NDAzNjliNTFjZTc0YzNmOWU4MzE3OWE3YTE3ZjE3YzIxMTE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxMzo0MDo1NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRlY2huaWMuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVzdC5z Y20gKG1pbmV0ZXN0LXRlY2huaWMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2VzL21p bmV0ZXN0LnNjbSB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IGExYWE5MDI3NmQu LmJiOTE0ZjMyYjQgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIv Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTc0LDYgKzE3NCw0MSBAQCBicmVha2VycyBz aW11bGF0ZSBhIHBsYXllciBwdW5jaGluZyBhIG5vZGUuIikKICAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAgIChwcm9wZXJ0aWVzIGAoKHVw c3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvcGlwZXdvcmtzIikpKSkpCiAKKyhkZWZpbmUtcHVibGlj IG1pbmV0ZXN0LXRlY2huaWMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtdGVjaG5p YyIpCisgICAgOzsgVXBzdHJlYW0gZG9lc24ndCBrZWVwIHZlcnNpb24gbnVtYmVycywgc28gdXNl IHRoZSByZWxlYXNlCisgICAgOzsgZGF0ZSBvbiBDb250ZW50REIgaW5zdGVhZC4KKyAgICAodmVy c2lvbiAiMjAyMS0wNC0xNSIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1l dGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAgICAg ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC1tb2RzL3RlY2huaWMiKQorICAgICAg ICAgICAgIChjb21taXQgIjFjMjE5NDg3ZDNmNGRkMDNjMDFmZjlhYTFmMjk4YzdjMThjN2UxODki KSkpCisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIxazloZGd6cDdqbmhzazZyZ3Js cnYxbHI1eHJtaDhsbjR3djZyMjV2NmYwZndieWo1N3NmIikpCisgICAgICAgKGZpbGUtbmFtZSAo Z2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgibWlu ZXRlc3QtcGlwZXdvcmtzIiAsbWluZXRlc3QtcGlwZXdvcmtzKQorICAgICAgICgibWluZXRlc3Qt YmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzKSkpCisgICAgKGhvbWUt cGFnZSAobWluZXRlc3QtdG9waWMgMjUzOCkpCisgICAgKHN5bm9wc2lzICJNYWNoaW5lcnkgYW5k IGF1dG9tYXRpb24gZm9yIE1pbmV0ZXN0IikKKyAgICAoZGVzY3JpcHRpb24KKyAgICAgIlRoaXMg TWluZXRlc3QgbW9kIGFkZHMgbWFjaGluZXJ5IGFuZCBhdXRvbWF0aW9uIHRvIE1pbmV0ZXN0Lgor SXQgYWRkcyB2YXJpb3VzIG9yZXMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGZvciBjb25zdHJ1Y3Rp bmcgdmFyaW91cworbWFjaGluZXJ5LCBzdWNoIGFzIHBvd2VyIGdlbmVyYXRvcnMsIGZvcmNlIGZp ZWxkIGVtaXR0ZXJzLCBxdWFycmllcworYW5kIGEgd29ya3Nob3AgZm9yIHJlcGFpcmluZyB0b29s cy4gIE1vc3QgbWFjaGluZXMgYXJlIGVsZWN0cmljYWxseQorcG93ZXJlZC4iKQorICAgIDs7IEND IEJZLVNBIDMuMDogc29tZSB0ZXh0dXJlCisgICAgOzsgV1RGUEw6IHNvbWUgdGV4dHVyZXMKKyAg ICA7OyBDQyBCWS1TQTMuMDogc29tZSB0ZXh0dXJlcworICAgIDs7IENDIEJZLVNBNC4wOiBzb21l IHNvdW5kcworICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6bGdwbDIuMSsgbGljZW5zZTpjYy1i eS1zYTMuMCBsaWNlbnNlOmNjLWJ5LXNhNC4wCisgICAgICAgICAgICAgICAgICAgbGljZW5zZTp3 dGZwbDIpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiUmVhbEJhZEFuZ2Vs L3RlY2huaWMiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtdW5pZmllZGR5ZXMKICAg KHBhY2thZ2UKICAgICAobmFtZSAibWluZXRlc3QtdW5pZmllZGR5ZXMiKQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0014-gnu-Add-minetest-throwing.patch" Content-Type: text/x-patch; name="0014-gnu-Add-minetest-throwing.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ZjJhMjBkNjY0ZmI4ZDI4MGY0OWRiOWNhNDYyNDdkZTgyNDJmNTNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNDoxNjoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRocm93aW5nLgoKKiBnbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIChtaW5ldGVzdC10aHJvd2luZyk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2Vk LCAyMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNj bSBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KaW5kZXggYmI5MTRmMzJiNC4uMTQ0NGRkZjRk OCAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQorKysgYi9nbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtCkBAIC0yMDksNiArMjA5LDI5IEBAIHBvd2VyZWQuIikKICAgICAgICAg ICAgICAgICAgICBsaWNlbnNlOnd0ZnBsMikpCiAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0t bmFtZSAuICJSZWFsQmFkQW5nZWwvdGVjaG5pYyIpKSkpKQogCisoZGVmaW5lLXB1YmxpYyBtaW5l dGVzdC10aHJvd2luZworICAocGFja2FnZQorICAgIChuYW1lICJtaW5ldGVzdC10aHJvd2luZyIp CisgICAgKHZlcnNpb24gIjIwMjAtMDgtMTQiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgor ICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAg ICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vbWluZXRlc3QtbW9kcy90aHJvd2lu ZyIpCisgICAgICAgICAgICAgKGNvbW1pdCAiMzFmMGNmNWY4Njg2NzNkYzgyZjI0ZGRjNDMyYjQ1 YzljZDI4MmQyNyIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjFzNWtrcjZy eHh2MmRoYmJqenY2Mmd3MXM2MTdobnBqYXZ3MXY5ZnYxMXYzbWdpZ2RmamIiKSkKKyAgICAgICAo ZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVpbGQtc3lz dGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAobWluZXRlc3Qt dG9waWMgMTYzNjUpKQorICAgIChzeW5vcHNpcyAiQVBJIGZvciB0aHJvd2luZyB0aGluZ3MgaW4g TWluZXRlc3QiKQorICAgIChkZXNjcmlwdGlvbgorICAgICAiVGhpcyBNaW5ldGVzdCBtb2QgcHJv dmlkZXMgYW4gQVBJIGZvciByZWdpc3RlcmluZyB0aHJvd2FibGUgdGhpbmdzIGFuZAordGhyb3dp bmcgdGhpbmdzIGxpa2UgYXJyb3dzLiAgSG93ZXZlciwgdGhpcyBtb2QgZG9lcyBub3QgcHJvdmlk ZSBhbiBhY3R1YWwKK2Fycm93IGFuZCBib3csIGJ1dCBAY29kZXttaW5ldGVzdC10aHJvd2luZy1h cnJvd3N9IGRvZXMuIikKKyAgICAobGljZW5zZSBsaWNlbnNlOm1wbDIuMCkKKyAgICAocHJvcGVy dGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlBhbGlnZS90aHJvd2luZyIpKSkpKQorCiAoZGVmaW5l LXB1YmxpYyBtaW5ldGVzdC11bmlmaWVkZHllcwogICAocGFja2FnZQogICAgIChuYW1lICJtaW5l dGVzdC11bmlmaWVkZHllcyIpCi0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0015-gnu-Add-minetest-throwing-arrows.patch" Content-Type: text/x-patch; name="0015-gnu-Add-minetest-throwing-arrows.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmMTQ3N2JhM2VkYjk3MjliNjMwNDE4NjM2MTE3MDRhZjE2MjFiZjI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNDozNDoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRocm93aW5nLWFycm93cy4KCiogZ251L3BhY2thZ2VzL21p bmV0ZXN0LnNjbQogIChtaW5ldGVzdC10aHJvd2luZy1hcnJvd3MpOiBOZXcgdmFyaWFibGUuCi0t LQogZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSB8IDMwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9n bnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRl eCAxNDQ0ZGRmNGQ4Li42MTgzMzY3MTAxIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTIzMiw2ICsyMzIsMzYg QEAgYXJyb3cgYW5kIGJvdywgYnV0IEBjb2Rle21pbmV0ZXN0LXRocm93aW5nLWFycm93c30gZG9l cy4iKQogICAgIChsaWNlbnNlIGxpY2Vuc2U6bXBsMi4wKQogICAgIChwcm9wZXJ0aWVzIGAoKHVw c3RyZWFtLW5hbWUgLiAiUGFsaWdlL3Rocm93aW5nIikpKSkpCiAKKyhkZWZpbmUtcHVibGljIG1p bmV0ZXN0LXRocm93aW5nLWFycm93cworICA7OyBUaGVyZSBpcyBvbmx5IG9uZSB0YWdnZWQgY29t bWl0ICh2ZXJzaW9uIDEuMSksCisgIDs7IHRoZXJlIGFyZSBubyByZWxlYXNlcyBvbiBDb250ZW50 REIgYW5kIHRoZSBsYXRlc3QKKyAgOzsgY29tbWl0IGhhcyBhIGNvbXBhdGliaWxpdHkgZml4IGZv ciBNaW5ldGVzdCA1LjQuMC1kZXYuCisgIChsZXQgKChjb21taXQgIjA1OWNjODk3YWYwYWViZmJk MmM1NGFjNTU4OGYyYjg0MmY0NGYxNTkiKQorICAgICAgICAocmV2aXNpb24gIjAiKSkKKyAgICAo cGFja2FnZQorICAgICAgKG5hbWUgIm1pbmV0ZXN0LXRocm93aW5nLWFycm93cyIpCisgICAgICAo dmVyc2lvbiAoZ2l0LXZlcnNpb24gIjEuMSIgcmV2aXNpb24gY29tbWl0KSkKKyAgICAgIChzb3Vy Y2UKKyAgICAgICAob3JpZ2luCisgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAg ICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHVi LmNvbS9taW5ldGVzdC1tb2RzL3Rocm93aW5nX2Fycm93cyIpCisgICAgICAgICAgICAgICAoY29t bWl0IGNvbW1pdCkpKQorICAgICAgICAgKHNoYTI1NgorICAgICAgICAgIChiYXNlMzIgIjBtMnBt Y2NwZnhuODc4emQwMHBtcnBnYTJoNmdrbno0ZjNxcHJjazBmcTk0bWtzbXdxczMiKSkKKyAgICAg ICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkpKQorICAgICAgKGJ1 aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgICAgKHByb3BhZ2F0ZWQt aW5wdXRzCisgICAgICAgYCgoIm1pbmV0ZXN0LXRocm93aW5nIiAsbWluZXRlc3QtdGhyb3dpbmcp KSkKKyAgICAgIChob21lLXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDE2MzY1KSkKKyAgICAgIChzeW5v cHNpcyAiQXJyb3dzIGFuZCBib3dzIGZvciBNaW5ldGVzdCIpCisgICAgICAoZGVzY3JpcHRpb24K KyAgICAgICA7OyBUUkFOU0xBVE9SUzogInRocm93aW5nIiBpcyB0aGUgbmFtZSBvZiBhIE1pbmV0 ZXN0IG1vZCBhbmQgc2hvdWxkCisgICAgICAgOzsgbm90IGJlIHRyYW5zbGF0ZWQuCisgICAgICAg IlRoaXMgbW9kIGFkZHMgYXJyb3dzIGFuZCBib3dzIHRvIE1pbmV0ZXN0LiAgSXQgaXMgYSBjb21w YXRpYmxlCityZXBsYWNlbWVudCBmb3IgdGhlIHRocm93aW5nIG1vZCBieSBQaWx6QWRhbSB0aGF0 IHVzZXMgdGhlIHRocm93aW5nIEFQSS4iKQorICAgICAgKGxpY2Vuc2UgbGljZW5zZTptcGwyLjAp KSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LXVuaWZpZWRkeWVzCiAgIChwYWNrYWdlCiAg ICAgKG5hbWUgIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIikKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0016-gnu-Add-minetest-unified-inventory.patch" Content-Type: text/x-patch; name="0016-gnu-Add-minetest-unified-inventory.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3MTg4YWMyOWE3M2JlNGYxNWRmOTk3N2NlNzViMWRkNjBkODM3ZTQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNzozOTozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5LgoKKiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtCiAgKG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5KTogTmV3IHZhcmlhYmxl LgotLS0KIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gfCAzNSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbQppbmRleCA2MTgzMzY3MTAxLi4wNDJmNzEwYzg1IDEwMDY0NAotLS0gYS9nbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI4OSwz ICsyODksMzggQEAgTWluZXRlc3QgZ2FtZSwgdGhpcyBtb2QgaGFzIGJlY29tZSBhbiBleHRlbnNp b24gb2YgdGhlIGRlZmF1bHQgbW9kIGFuIGEgbGlicmFyeQogZm9yIGdlbmVyYWwgY29sb3VyIGhh bmRsaW5nLiIpCiAgICAgKGxpY2Vuc2UgbGljZW5zZTpncGwyKykKICAgICAocHJvcGVydGllcyBg KCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL3VuaWZpZWRkeWVzIikpKSkpCisKKyhkZWZpbmUt cHVibGljIG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5CisgIChwYWNrYWdlCisgICAgKG5hbWUg Im1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5IikKKyAgICA7OyBVcHN0cmVhbSBkb2Vzbid0IGtl ZXAgdmVyc2lvbiBudW1iZXJzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0bGUKKyAgICA7OyBvbiBD b250ZW50REIgaW5zdGVhZC4KKyAgICAodmVyc2lvbiAiMjAyMS0wMy0yNS0xIikKKyAgICAoc291 cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJp IChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21p bmV0ZXN0LW1vZHMvdW5pZmllZF9pbnZlbnRvcnkiKQorICAgICAgICAgICAgIChjb21taXQgImMw NDRmNWUzYjA4ZjBjNjhhYjAyOGQ3NTdiMmZhNjNkOWExYjAzNzAiKSkpCisgICAgICAgKHNoYTI1 NgorICAgICAgICAoYmFzZTMyICIxOThnOTQ1Z3piZmwwa3BzNDZnd2p3MGM2MDFsM2Izd3ZuNGM3 ZHc4bWFuc2tyaTFqcjRnIikpCisgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1l IHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVt KQorICAgIChob21lLXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDEyNzY3KSkKKyAgICAoc3lub3BzaXMg IlJlcGxhY2UgdGhlIGRlZmF1bHQgaW52ZW50b3J5IGluIE1pbmV0ZXN0IGFuZCBhZGQgYSBjcmFm dGluZyBndWlkZSIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJUaGUgVW5pZmllZCBJbnZlbnRv cnkgTWluZXRlc3QgbW9kIHJlbGFjZXMgdGhlIGRlZmF1bHQgc3Vydml2YWwgYW4KK2NyZWF0aXZl IGludmVudG9yeS4gIEl0IGluY2x1ZGVzIGEgbm9kZSwgaXRlbSBhbmQgdG9vbCBicm93c2VyLCBh IGNyYWZ0aW5nCitndWlkZSwgYSB0cmFzaCBhbmQgcmVmaWxsIHNsb3QgZm9yIGNyZWF0aXZlIG1v ZGUsIGJhZ3MgYW5kIHdheXBvaW50cyBmb3Iga2VlcGluZwordHJhY2sgb2YgaW1wb3J0YW50IGxv Y2F0aW9ucy4iKQorICAgIDs7IENDLUJZOiBzb21lIHRleHR1cmVzIGFuZCBpY29ucworICAgIDs7 IENDLUJZLVNBOiBzb21lIHRleHR1cmVzIGFuZCBpY29ucworICAgIDs7IExHTFBMMi4xKzogY29k ZSBhbmQgc29tZSB0ZXh0dXJlcworICAgIDs7IEdQTDIrOiBzb21lIHRleHR1cmVzCisgICAgOzsg R1BMMzogYmFncy5sdWEKKyAgICA7OyBHRkRMOiBzb21lIGljb25zCisgICAgOzsgcHVibGljIGRv bWFpbiwgQ0MwOiBzb21lIGljb25zCisgICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpncGwzIGxp Y2Vuc2U6Z3BsMisgbGljZW5zZTpsZ3BsMi4xKyBsaWNlbnNlOmNjLWJ5My4wCisgICAgICAgICAg ICAgICAgICAgbGljZW5zZTpjYy1ieTQuMCBsaWNlbnNlOmNjLWJ5LXNhMy4wIGxpY2Vuc2U6cHVi bGljLWRvbWFpbgorICAgICAgICAgICAgICAgICAgIGxpY2Vuc2U6Y2MwIGxpY2Vuc2U6ZmRsMS4y KykpCisgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJSZWFsQmFkQW5nZWwvdW5p ZmllZF9pbnZlbnRvcnkiKSkpKSkKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0017-gnu-Add-minetest-worldedit.patch" Content-Type: text/x-patch; name="0017-gnu-Add-minetest-worldedit.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2NjRhYThkZTA5ZTEwYjQ2OTllYjFlNWVhOTViZGUzYjUxY2EyZjM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNzo1ODoyNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXdvcmxkZWRpdC4KCiogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSAobWluZXRlc3Qtd29ybGRlZGl0KTogTmV3IHZhcmlhYmxlLgotLS0KIGdudS9wYWNrYWdl cy9taW5ldGVzdC5zY20gfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDIzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCAwNDJmNzEwYzg1Li5mMjZlN2Uw ZmYzIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBiL2dudS9wYWNr YWdlcy9taW5ldGVzdC5zY20KQEAgLTI2Miw2ICsyNjIsMjkgQEAgYXJyb3cgYW5kIGJvdywgYnV0 IEBjb2Rle21pbmV0ZXN0LXRocm93aW5nLWFycm93c30gZG9lcy4iKQogcmVwbGFjZW1lbnQgZm9y IHRoZSB0aHJvd2luZyBtb2QgYnkgUGlsekFkYW0gdGhhdCB1c2VzIHRoZSB0aHJvd2luZyBBUEku IikKICAgICAgIChsaWNlbnNlIGxpY2Vuc2U6bXBsMi4wKSkpKQogCisoZGVmaW5lLXB1YmxpYyBt aW5ldGVzdC13b3JsZGVkaXQKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3Qtd29ybGRl ZGl0IikKKyAgICAodmVyc2lvbiAiMS4zIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL1ViZXJpL01pbmV0ZXN0LVdvcmxkRWRp dCIpCisgICAgICAgICAgICAgKGNvbW1pdCAiMmYyNmZiNzY0NTljNTg3ODY4MTk5MTYwYjlkN2I1 ZDZkNzg1MmU1MCIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjBsc3ZpaGtp eGkybmExYjB2bW1sOXZ3Z3MwZzI0aHFxc2hsNzNmZmhremg2anNxNGNhZ3EiKSkKKyAgICAgICAo ZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVpbGQtc3lz dGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAobWluZXRlc3Qt dG9waWMgNTcyKSkKKyAgICAoc3lub3BzaXMgIkluLWdhbWUgd29ybGQgZWRpdG9yIGZvciBNaW5l dGVzdCIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJXb3JsZEVkaXQgaXMgYSBtb2QgZm9yIE1p bmV0ZXN0LiAgSXQgYWxsb3dzIGZvciBjcmVhdGluZyB2YXJpb3VzCitnZW9tZXRyaWMgc2hhcGVz IGFuZCBjb3B5aW5nIHJlZ2lvbnMuICBJdCBjYW4gYWxzbyBleHBvcnQgYW5kIGltcG9ydCByZWdp b25zCit0byBhbmQgZnJvbSB0aGUgZmlsZSBzeXN0ZW0uIikKKyAgICAobGljZW5zZSBsaWNlbnNl OmFncGwzKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAic2ZhbjUvd29ybGRl ZGl0IikpKSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LXVuaWZpZWRkeWVzCiAgIChwYWNr YWdlCiAgICAgKG5hbWUgIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIikKLS0gCjIuMzIuMAoK --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0018-gnu-Add-minetest-mobs.patch" Content-Type: text/x-patch; name="0018-gnu-Add-minetest-mobs.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzZDJhNjcxNTg5MjdlMTBiZDJhODE2OWI4MTk5YmI2ZGUxMThjODQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxODo1Mzo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgv MjBdIGdudTogQWRkIG1pbmV0ZXN0LW1vYnMuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20g KG1pbmV0ZXN0LW1vYnMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20g Yi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IGYyNmU3ZTBmZjMuLjJhN2JkMDA4MWUg MTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2Vz L21pbmV0ZXN0LnNjbQpAQCAtMTQzLDYgKzE0MywzNSBAQCB3aXRoIGRpZmZlcmVudCBydWxlcyBh bmQgbWVjaGFuaWNzLiIpCiAgICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpsZ3BsMysgbGljZW5z ZTpjYy1ieS1zYTMuMCkpCiAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJKZWlq YS9tZXNlY29ucyIpKSkpKSkKIAorKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtbW9icworICAocGFj a2FnZQorICAgIChuYW1lICJtaW5ldGVzdC1tb2JzIikKKyAgICA7OyBVcHN0cmVhbSBkb2VzIG5v dCB0YWcgcmVsZWFzZSwgc28gdXNlIHRoZSBDb250ZW50REIgcmVsZWFzZQorICAgIDs7IHRpdGxl IGluc3RlYWQuCisgICAgKHZlcnNpb24gIjIwMjEtMDctMjIiKQorICAgIChzb3VyY2UKKyAgICAg KG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKKyAgICAgICAgICAgICAodXJsICJodHRwczovL25vdGFidWcub3JnL1RlblBsdXMxL21v YnNfcmVkbyIpCisgICAgICAgICAgICAgKGNvbW1pdCAiOWY0NjE4MmJiNGIxYTM5MGY5YTE0MGJj MmI0NDNmM2NkYTcwMjMzMiIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjAy NmtxamlzNGxpcGdza2ppdmIzamg5cmlzM2l6ODB2eTJxMWp2Z3hoeG1mZ2hqanpwNGoiKSkKKyAg ICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVp bGQtc3lzdGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAobWlu ZXRlc3QtdG9waWMgOTkxNykpCisgICAgKHN5bm9wc2lzICJNb2IgbGlicmFyeSBmb3IgTWluZXRl c3QgbW9kcywgZm9yIGFuaW1hbHMsIG1vbnN0ZXJzIGV0Yy4iKQorICAgIChkZXNjcmlwdGlvbgor ICAgICAiVGhpcyBNaW5ldGVzdCBtb2QgcHJvdmlkZXMgYW4gQVBJIGZvciBhZGRpbmcgbW9kcyAo bW92aW5nIGVudGl0aWVzCitsaWtlIGFuaW1hbHMgYW5kIG1vbnN0ZXJzKSwgYnV0IGRvZXMgbm90 IGluY2x1ZGUgYW55IG1vYnMgaXRzZWxmLiAgVG8gYWN0dWFsbHkKK2FkZCBzb21lIG1vYnMsIGEg bW9kIGxpa2UgZS5nLiBAY29kZXttb2JzX2FuaW1hbH0gcHJvdmlkZWQgYnkgdGhlCitAY29kZXtt aW5ldGVzdC1tb2JzLWFuaW1hbH0gcGFja2FnZSBuZWVkcyB0byBiZSBlbmFibGVkLiIpCisgICAg OzsgQ0MwOiBtb2Jfc3dpbmcub2dnCisgICAgOzsgQ0MtQlkgMy4wOiBtb2Jfc3BlbGwub2dnCisg ICAgOzsgRXhwYXQ6IGV2ZXJ5dGhpbmcgZWxzZQorICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6 ZXhwYXQgbGljZW5zZTpjYzAgbGljZW5zZTpjYy1ieTMuMCkpCisgICAgKHByb3BlcnRpZXMgYCgo dXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9tb2JzIikpKSkpCisKIChkZWZpbmUtcHVibGljIG1p bmV0ZXN0LXBpcGV3b3JrcwogICAocGFja2FnZQogICAgIChuYW1lICJtaW5ldGVzdC1waXBld29y a3MiKQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0019-gnu-Add-minetest-mobs-animal.patch" Content-Type: text/x-patch; name="0019-gnu-Add-minetest-mobs-animal.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmN2Q5Y2Q5MmJmOWViNTA0MzMzMmMxZDBiYTkxNWI2OTIzYzYwY2MxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxOTo0Mzo0NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkv MjBdIGdudTogQWRkIG1pbmV0ZXN0LW1vYnMtYW5pbWFsLgoKKiBnbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtIChtaW5ldGVzdC1tb2JzLWFuaW1hbCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IDJhN2JkMDA4MWUu LmY0OWUwMDgwZjIgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIv Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTcyLDYgKzE3MiwzMyBAQCBhZGQgc29tZSBt b2JzLCBhIG1vZCBsaWtlIGUuZy4gQGNvZGV7bW9ic19hbmltYWx9IHByb3ZpZGVkIGJ5IHRoZQog ICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTpjYzAgbGljZW5zZTpjYy1i eTMuMCkpCiAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9tb2Jz IikpKSkpCiAKKyhkZWZpbmUtcHVibGljIG1pbmV0ZXN0LW1vYnMtYW5pbWFsCisgIChwYWNrYWdl CisgICAgKG5hbWUgIm1pbmV0ZXN0LW1vYnMtYW5pbWFsIikKKyAgICA7OyBVcHN0cmVhbSBkb2Vz IG5vdCB1c2UgdmVyc2lvbiBudW1iZXJzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0bGUKKyAgICA7 OyBmcm9tIENvbnRlbnREQiBpbnN0ZWFkOworICAgICh2ZXJzaW9uICIyMDIxLTA3LTI0IikKKyAg ICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9ub3RhYnVn Lm9yZy9UZW5QbHVzMS9tb2JzX2FuaW1hbCIpCisgICAgICAgICAgICAgKGNvbW1pdCAiYzJmYTNl MzAwYzc5YzdkZDgwYjZmZTkxYThiNTA4MmJiNmIzZDkzNCIpKSkKKyAgICAgICAoc2hhMjU2Cisg ICAgICAgIChiYXNlMzIgIjFqNzE5ZjA3OWlhOXZqeHJtanJjajhzNmp2YXo1a2dzMXI0ZGg2Nno4 cWw2czcwa3g3dmgiKSkKKyAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVy c2lvbikpKSkKKyAgICAoYnVpbGQtc3lzdGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisg ICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJtaW5ldGVzdC1tb2JzIiAsbWluZXRlc3Qt bW9icykpKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vbm90YWJ1Zy5vcmcvVGVuUGx1czEvbW9i c19hbmltYWwiKQorICAgIChzeW5vcHNpcyAiQWRkIGFuaW1hbHMgdG8gTWluZXRlc3QiKQorICAg IChkZXNjcmlwdGlvbgorICAgICAiVGhpcyBNaW5ldGVzdCBtb2QgYWRkcyB2YXJpb3VzIGFuaW1h bHMgdG8gTWluZXRlc3QsIHN1Y2ggYXMgYmVlcywKK2J1bm5pZXMsIGNoaWNrZW5zLCBjb3dzLCBr aXR0ZW5zLCByYXRzLCBzaGVlcCwgd2FydGhvZ3MsIHBlbmd1aW5zIGFuZCBwYW5kYXMuIikKKyAg ICA7OyBDQzA6IHNvbWUgdGV4dHVyZXMgYW5kIHNvdW5kcworICAgIChsaWNlbnNlIChsaXN0IGxp Y2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhwYXQpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5h bWUgLiAiVGVuUGx1czEvbW9ic19hbmltYWwiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRl c3QtcGlwZXdvcmtzCiAgIChwYWNrYWdlCiAgICAgKG5hbWUgIm1pbmV0ZXN0LXBpcGV3b3JrcyIp Ci0tIAoyLjMyLjAKCg== --=-0RBl4LwyT4qiuyjqEEgi Content-Disposition: attachment; filename="0020-gnu-Add-minetest-homedecor-modpack.patch" Content-Type: text/x-patch; name="0020-gnu-Add-minetest-homedecor-modpack.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzM2UxNTExMWMwMGQ5OTg4ZDgxMjNhNjc0OTMwYTI3YjYxZTg5MWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAyMDowMzowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjAv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWhvbWVkZWNvci1tb2RwYWNrLgoKKiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtCiAgKG1pbmV0ZXN0LWhvbWVkZWNvci1tb2RwYWNrKTogTmV3IHZhcmlhYmxl LgotLS0KIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gfCAzMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2Nt CmluZGV4IGY0OWUwMDgwZjIuLmNhOWQwYWM3MjAgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTA3LDYgKzEw NywzNyBAQCBzcGVjaWFsIGl0ZW1zLCBpbnRlbmRpbmcgdG8gbWFrZSBhbiBpbnRlcmVzdGluZyBh ZHZlbnR1cmUuIikKICAgICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhw YXQpKQogICAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9ldGhl cmVhbCIpKSkpKSkKIAorKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtaG9tZWRlY29yLW1vZHBhY2sK KyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtaG9tZWRlY29yLW1vZHBhY2siKQorICAg IDs7IFVwc3RyZWFtIGRvZXNuJ3QgdGFnIHJlbGVhc2VzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0 bGUgZnJvbQorICAgIDs7IENvbnRlbnREQiBhcyB2ZXJzaW9uLgorICAgICh2ZXJzaW9uICIyMDIx LTAzLTI3LTEiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0 LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAodXJsICJo dHRwczovL2dpdGxhYi5jb20vVmFuZXNzYUUvaG9tZWRlY29yX21vZHBhY2siKQorICAgICAgICAg ICAgIChjb21taXQgIjlmZmUyYjdkNjkxMTMzZTFhMDY3NTQ2NTc0ZmJlNzM2NGZkMDJmMzIiKSkp CisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIxbGZhanF2YzJhZGY5aHFza2doa3k0 YXJjY3F6cGp3NGk5YTAxaHY0cWNja3Zpdm0wNGFnIikpCisgICAgICAgKGZpbGUtbmFtZSAoZ2l0 LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1t b2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgibWluZXRl c3QtYmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzKQorICAgICAgICgi bWluZXRlc3QtdW5pZmllZGR5ZXMiICxtaW5ldGVzdC11bmlmaWVkZHllcykpKQorICAgIChob21l LXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDIwNDEpKQorICAgIChzeW5vcHNpcyAiSG9tZSBkZWNvciBt b2QgZm9yIE1pbmV0ZXN0IikKKyAgICAoZGVzY3JpcHRpb24KKyAgICAgOzsgVFJBTlNMQVRPUlM6 IOKAmGhvbWVkZWNvcuKAmSBpcyB0aGUgbmFtZSBpcyB0aGUgbmFtZSBvZiBhIE1pbmV0ZXN0IG1v ZAorICAgICA7OyBhbmQgc2hvdWxkIG5vdCBiZSB0cmFuc2xhdGVkLgorICAgICAiVGhlIGhvbWVk ZWNvciBNaW5ldGVzdCBtb2QgcHJvdmlkZXMgYSBsYXJnZSBzZWxlZWN0aW9uIG9mIGl0ZW1zIHRo YXQKK21pZ2h0IGJlIGZvdW5kIGluc2lkZSBhbmQgYXJvdW5kIGhvbWVzLCBzdWNoIGFzIHNvZmFz LCBjaGFpcnMsIHRhYmxlcywgZmVuY2VzCithbmQgYSB2YXJpZXR5IG9mIG90aGVyIHN0dWZmLiIp CisgICAgKGxpY2Vuc2UKKyAgICAgKGxpc3QgbGljZW5zZTpjYy1ieS1zYTQuMCBsaWNlbnNlOmxn cGwzKSkKKyAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL2hvbWVk ZWNvcl9tb2RwYWNrIikpKSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LW1lc2Vjb25zCiAg IDs7IFRoZSByZWxlYXNlIG9uIENvbnRlbnREQiBkb2VzIG5vdCBoYXZlIGl0cyBvd24gdmVyc2lv biBudW1iZXIuCiAgIChsZXQgKChjb21taXQgImRiNTg3OTcwNmQwNGQzNDgwYmM0ODYzY2UwYzAz ZmE3M2U1ZjEwYzciKQotLSAKMi4zMi4wCgo= --=-0RBl4LwyT4qiuyjqEEgi-- --=-oZq8+BSForQdLMHZu8LQ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYQ7RVxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lB6AP9q6y2qYdE9Jo/Gz10XE5UJDWnJ kEOhlYigZZ/LlOzoQQD/RKIFuQBEofHGgdtrtonUPrIDTqmiS1eDHWClPy47UQk= =Le0m -----END PGP SIGNATURE----- --=-oZq8+BSForQdLMHZu8LQ-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 07 15:48:10 2021 Received: (at 49828) by debbugs.gnu.org; 7 Aug 2021 19:48:10 +0000 Received: from localhost ([127.0.0.1]:53193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mCSIk-0006Yo-2j for submit@debbugs.gnu.org; Sat, 07 Aug 2021 15:48:10 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:56887) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mCSIe-0006YZ-Aw for 49828@debbugs.gnu.org; Sat, 07 Aug 2021 15:48:08 -0400 Received: from nijino.local (194-118-35-216.adsl.highway.telekom.at [194.118.35.216]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GhtDc0PcXz1LBCr; Sat, 7 Aug 2021 21:47:59 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GhtDc0PcXz1LBCr DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628365680; bh=aR5LXmO2lVbiyrFgm8fHof1R8Ol981onFF3EYzTYVqQ=; h=Subject:From:To:Date:In-Reply-To:References:From; b=mnDnunSU5JhvhINc1tBbHUB+0ltGrRxHqsqb/5pFB1c0EwV8M1sC4MqPSFV6CAFQG VlQFd6d/EU4MdfgVib5/h8dtiv7rO7di8B3L0Fcik5QpoEIyq0CMKN9a6AXMAWqZdH iaAQRaahlsrkBAOpAnvJ5Oy4vCTY3uTLhYZDkjoU= Message-ID: <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Sat, 07 Aug 2021 21:47:59 +0200 In-Reply-To: References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Samstag, den 07.08.2021, 20:31 +0200 schrieb Maxime Devos: > [...] > ContentDB uses SPDX license identifiers now, and distinguishes > between GPL-N-only and GPL-N-or-later, so I adjusted the > documentation appropriately. Nice. > > > The commit id is > > > +sometimes missing. The descriptions are in the Markdown format, > > > but > > > +Guix uses Texinfo instead. Texture packs and subgames are > > > unsupported. > > What is the "commit id"? Is it the hash? A tag? Anything that > > resolves to a commit? > > It's the SHA-1 of the Git commit. I changes this to ‘the commit's > SHA-1’. We usually call it the hash around here :) > > Also, since ContentDB sounds fairly generic (a database of > > content?), > > perhaps we ought to call this the "minetest" importer instead? > > Technically, minetest has another mod repository as well: > ;. It's unmoderated though, and > has some moderation and seems more > ‘official’ (it's integrated in Minetest itself). I replaced > (guix import contentdb) with (guix import minetest), likewise > for (guix script import minetest) and tests/minetest.scm. If we get more of these we could label them like elpa repos, but I don't think we'll get many third party repos with ContentDB existing. > > > +;; Minetest package. > > > +;; > > > +;; API endpoint: /packages/AUTHOR/NAME/ > > > +(define-json-mapping make-package package? > > > + json->package > > > + (author package-author) ; string > > > + (creation-date package-creation-date ; string > > > + "created_at") > > > + (downloads package-downloads) ; integer > > > + (forums package-forums "forums" natural-or-false) ; > > > natural | #f > > This comment and some others like it seem to simply be repeating > > already present information. Is there a use for them? Should we > > instead provide a third argument on every field to verify/enforce > > the > > type? > > I first added the ‘; natural-or-false’. I only added the procedure > "natural-false" later. Indeed, ‘; natural-or-false’ is redundant. > I removed the redundant ones in the revised patch. > > I don't think there is need to verify types for each field. > Most aren't used by Guix. If a type check would fail, that would > presumably mean the type check guix is incorrect (or not up-to-date). > Except for perhaps a backtrace, ill-typed fields are harmless. Fair enough, gratuitous redundancy is the bigger issue here. > [...] > ContentDB allows searching. I wrote some a procedure 'elaborate- > contentdb-name' used by (guix scripts import contentdb) that resolves > "mesecons" to "Jeija/mesecons", using the search API and added some > tests. If there are multiple candidates, the one with the highest > ‘score’ is choosen (alternatively, --sort=downloads can be used > instead). Sounds good to me. > > > +(define (important-dependencies dependencies author name) > > > + (define dependency-list > > > + (assoc-ref dependencies (string-append author "/" name))) > > > + (filter-map > > > + (lambda (dependency) > > > + (and (not (dependency-optional? dependency)) > > > + ;; "default" must be provided by the 'subgame' in use > > > + ;; and does not refer to a specific minetest mod. > > > + ;; "doors", "bucket" ... are provided by the default > > > minetest > > > + ;; subgame. > > > + (not (member (dependency-name dependency) > > > + '("default" "doors" "beds" "bucket" > > > "doors" > > > "farming" > > > + "flowers" "stairs" "xpanes"))) > > I tested this some more, and it appears that some mods depend on > "dyes", > which is part of the default Minetest game, so I added all the mods > provided by the default (sub?)game. The list began looking a little > long, so I replaced it with a hash table. > > > > + ;; Dependencies often have only one implementation. > > > + (let* ((/name (string-append "/" (dependency-name > > > dependency))) > > > + (likewise-named-implementations > > > + (filter (cut string-suffix? /name <>) > > > + (dependency-packages dependency))) > > > + (implementation > > > + (and (not (null? likewise-named- > > > implementations)) > > > + (first likewise-named-implementations)))) > > > + (and implementation > > > + (apply cons (string-split implementation > > > #\/)))))) > > > + dependency-list)) > > What exactly does the likewise-named-implementations bit do here? > > The list returned by 'dependency-packages' not only contains the mod > we need, but possibly also various ‘subgames’ that include that mod. > Filtering on '/name' filters out these subgames we don't need. > > Also, theoretically another mod could implement the same interface. > The filtering would filter out the alternative implementations. > > Anyway, I changes the implementation a bit. It now explicitely > filters out ‘subgames’ and ‘texture packs’ using the ‘package-mod?’ > procedure. The resulting list tends to consist of only a single > element. If it consists of multiple, the one with the highest score > (or the one with the highest download count, depending on --sort) > will be choosen (and a warning is printed). Sounds good. > > > +;; A list of license names is available at > > > +;; ;;;. > > > +(define (string->license str) > > > + "Convert the string STR into a license object." [...] > > The link mentions, that ContentDB now supports all SPDX > > identifiers. > > Do we have a SPDX->Guix converter lying around in some other > > importer > > that we could use as default case here (especially w.r.t. "or > > later") > > There's a a converter in (guix import utils): spdx-string->license. > The old license identifiers appear to be removed, now only SPDX > information is available. I modified the code to use spdx->string- > license and removed string->license. Nice. > It turns out it does not recognise GPL-N-only and GPL-N-or-later, > so I added a patch ‘import/utils: Recognise GPL-3.0-or-later and > friends.’. Said patch LGTM. > I tried implementing "guix refresh -t minetest ...". It seems to > work, but requires some changes to (guix upstream) that needs some > more work, so I left it out of the revised patch set. The refresher > needs to know the author name (or perform extra HTTP requests), so I > added 'upstream-name' the package properties. Could we somehow define a (minetest-uri) procedure that can be supplied to (guix download)? Somehow Minetest must get the package to installations across operating systems, so surely there's some download link somewhere. > The revised patch series is attached. It can also be found at > ;. It > includes the latest MINETEST_MOD_PATH patch. I'll make the patch to > export more things in (guix build utils) later (for core-updates). For the rest of this, I'll only look over 06/20 v2. I'll assume you did nothing naughty to 01..04. > +;; A structure returned by the /api/packages/?fmt=keys endpoint > +(define-json-mapping make-package/keys package/keys? > + json->package/keys > + (author package/keys-author) ; string > + (name package/keys-name) ; string > + (type package/keys-type)) ; string Not sure about this slash, as it typically specifies extension of some sort. Perhaps just naming this package-keys would be better? > +(define (package-author/name package) > + "Given a object, return the corresponding AUTHOR/NAME > string." > + (string-append (package-author package) "/" (package-name > package))) > + > +(define (package/keys-author/name package) > + "Given a object, return the corresponding > AUTHOR/NAME string." > + (string-append (package/keys-author package) > + "/" (package/keys-name package))) I think it's probably be better to merge this into a single procedure called "package-full-name", "package-unique-name" or "package-id" (whichever you prefer naming-wise), which handles both cases. > +(define (contentdb->package-name name) > + "Given the NAME of a package on ContentDB, return a Guix-compliant > name for the > +package." > + ;; The author is not included, as the names of popular mods > + ;; tend to be unique. > + (string-append "minetest-" (snake-case name))) I'd at least add an option to generate full names instead, for cases in which as before we warn about non-uniqueness. Though actually, this comment is a little misleading as the actual stripping happens... > + (name ,(contentdb->package-name (author/name->name > author/name))) here. > +(define* (make-package-sexp #:key > + (guix-name "minetest-foo") > + (home-page "https://example.org/foo") > + (repo "https://example.org/foo.git") > + (synopsis "synopsis") > + (guix-description "description") > + (guix-license > + '(list license:cc-by-sa4.0 > license:lgpl3+)) > + (inputs '()) > + (upstream-name "Author/foo") > + #:allow-other-keys) > + [...] As noted above, this procedure would be somewhat simplified if we could define a (mintest-uri). Regards From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 16:01:51 2021 Received: (at 49828) by debbugs.gnu.org; 9 Aug 2021 20:01:51 +0000 Received: from localhost ([127.0.0.1]:57861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDBT0-0005Vj-B6 for submit@debbugs.gnu.org; Mon, 09 Aug 2021 16:01:51 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:37890) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDBSt-0005VT-NV for 49828@debbugs.gnu.org; Mon, 09 Aug 2021 16:01:45 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by laurent.telenet-ops.be with bizsmtp id fY1d2500F0mfAB401Y1dav; Mon, 09 Aug 2021 22:01:37 +0200 Message-ID: <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. (XXX Don't send yet) From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Mon, 09 Aug 2021 22:00:51 +0200 In-Reply-To: <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-SnrmijhdF6L2D37MJZhV" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628539298; bh=zmZarp+WtKnI2dt2tCyXn7UrlLiQfDDyPIV7SrqDJZE=; h=Subject:From:To:Date:In-Reply-To:References; b=Wr5RS+BJf7qSHzeTuWh3cYXn9mIJvX+eJovC2BTAOMRulLmU5290i8wHgxip6I9Pp UBm8fx2mjUstp64VBkBwUNUClNgvSpMt5ipH+avu43f2G9MwE6TR9d2ysp5Z2MbGfO +xmu1c9cbs1Ag1fhvKLRKNFd9PPPa5Ie+BnkCIO0O1Oq5+CSIiAL7Grz3bSEIO+2Fi YKR9MB/ZCSxrXeNXc7TF6ND1IzP1AiPsbHBpgxFJKiRNKsxSNl7atfQ+xvdyhAZDVq q5Zojy55ZXImf1Zio5lj+aISx+Yu3jy8ksdzuxjgPTTbIfvJOW9SDWp0Zt9VNGHmT3 R/+WoP8veC63Q== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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 (-) --=-SnrmijhdF6L2D37MJZhV Content-Type: multipart/mixed; boundary="=-pOoEpqErlQ86NDgwYOoH" --=-pOoEpqErlQ86NDgwYOoH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Leo Prikler schreef op za 07-08-2021 om 21:47 [+0200]: > > > > The commit id is > > > > +sometimes missing. The descriptions are in the Markdown format, > > > > but > > > > +Guix uses Texinfo instead. Texture packs and subgames are > > > > unsupported. > > > What is the "commit id"? Is it the hash? A tag? Anything that > > > resolves to a commit? > >=20 > > It's the SHA-1 of the Git commit. I changes this to =E2=80=98the commi= t's > > SHA-1=E2=80=99. > We usually call it the hash around here :) I adjusted the documentation to call it =E2=80=98the commit hash=E2=80=99. > > I tried implementing "guix refresh -t minetest ...". It seems to > > work, but requires some changes to (guix upstream) that needs some > > more work, so I left it out of the revised patch set. The refresher > > needs to know the author name (or perform extra HTTP requests), so I > > added 'upstream-name' the package properties. > Could we somehow define a (minetest-uri) procedure that can be supplied > to (guix download)? Somehow Minetest must get the package to > installations across operating systems, so surely there's some download > link somewhere. What is this 'minetest-uri' supposed to do? I assume it would be a procedure like 'pypi-uri', 'cran-uri', 'crate-uri', which takes a package name, the version and should return an URL string pointing to a tarball. That would be possible. ContentDB allows for downloading zips: https://github.com/minetest/contentdb/blob/master/docs/minetest_client.md#d= ownloading-and-installing The URL would look like: /packages///releases//downl= oad/. Here, is a the =E2=80=98release id=E2=80=99, which is an integer = (e.g. 4209). It is _not_ the version number, but it is monotonically increasing. There are some problems however: * Old archives are sometimes deleted. TenPlus1/ethereal was added to ContentDB on 2018-02-23, but it only has a single release on ContentDB, from 2021-07-28 . Likewise for TenPlus1/bakedclay, TenPlus1/wine, TenPlus1/bees. Most other mods still have the old archives though (e.g., Jeija/mesecon= s, sfan5/worldedit, PilzAdam/nether). The mods by TenPlus1 seems to be an exception. * The version number is not included in the download URL, the release id = is. So IIUC, update-package-source in (guix upstream) would still need to b= e adjusted somewhat to support Minetest packages. +(define* (make-package-sexp #:key > > + (guix-name "minetest-foo") > > + (home-page "https://example.org/foo") > > + (repo "https://example.org/foo.git") > > + (synopsis "synopsis") > > + (guix-description "description") > > + (guix-license > > + '(list license:cc-by-sa4.0 > > license:lgpl3+)) > > + (inputs '()) > > + (upstream-name "Author/foo") > > + #:allow-other-keys) > > + [...] > As noted above, this procedure would be somewhat simplified if we could > define a (mintest-uri). >=20 I don't see how a 'minetest-uri' would simplify the definition of 'make-package-sexp'. Using 'minetest-uri' would avoid the need to specify the commit, but 'minetest-uri' needs a release id anyway, so no simplification there. I guess it would avoid the 'download-git-repository' procedure and 'vcs-file?', but see two points above. Also, 'latest-repository-commit= ' returns a store path, which does not include the '.git' directory, so 'vcs-file?' isn't necessary, so I removed 'vcs-file?'. > > The revised patch series is attached. It can also be found at > > ;;. It > > includes the latest MINETEST_MOD_PATH patch. I'll make the patch to > > export more things in (guix build utils) later (for core-updates). > For the rest of this, I'll only look over 06/20 v2. I'll assume you > did nothing naughty to 01..04. >=20 > > +;; A structure returned by the /api/packages/?fmt=3Dkeys endpoint > > +(define-json-mapping make-package/keys package/keys? > > + json->package/keys > > + (author package/keys-author) ; string > > + (name package/keys-name) ; string > > + (type package/keys-type)) ; string > Not sure about this slash, as it typically specifies extension of some > sort. Perhaps just naming this package-keys would be better? Done. > > +(define (package-author/name package) > > + "Given a object, return the corresponding AUTHOR/NAME > > string." > > + (string-append (package-author package) "/" (package-name > > package))) > > + > > +(define (package/keys-author/name package) > > + "Given a object, return the corresponding > > AUTHOR/NAME string." > > + (string-append (package/keys-author package) > > + "/" (package/keys-name package))) > I think it's probably be better to merge this into a single procedure > called "package-full-name", "package-unique-name" or "package-id" > (whichever you prefer naming-wise), which handles both cases. I like the name 'package-full-name'. and are rather different structures and used in different contexts though, so I kept package-full-name and package-keys-full-name separate. FWIW, I added a procedure (define (%construct-full-name author name) (string-append author "/" name)) used by 'package-full-name' and 'package-keys-full-name'. > > +(define (contentdb->package-name name) > > + "Given the NAME of a package on ContentDB, return a Guix-compliant= =20 > > name for the > > +package." > > + ;; The author is not included, as the names of popular mods > > + ;; tend to be unique. > > + (string-append "minetest-" (snake-case name))) > I'd at least add an option to generate full names instead, for cases in > which as before we warn about non-uniqueness. Though actually, this > comment is a little misleading as the actual stripping happens... > > + (name ,(contentdb->package-name (author/name->name > > author/name))) > here ContentDB has a policy of requiring mod names to be unique in order to be a =E2=80=98approved=E2=80=99, so I don't think name conflict will be a p= roblem in practice. If full names were generated, keep in mind that dependencies would need to use the full names a well. I couldn't find any mods with name conflicts. I would just emit a warning for now. contentdb->package-name was always used together with 'author/name->name', so I modified contentdb->package-name to call author/name->name as you seem to suggest. It maked the code a little simpler. Thanks, Maxime. --=-pOoEpqErlQ86NDgwYOoH Content-Disposition: inline; filename="guix-Add-ContentDB-importer.patch" Content-Type: text/x-patch; name="guix-Add-ContentDB-importer.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzOWQ4NjkzNzBlN2EyODZmYjMwYTA2NTEyYzA4ZmQzMzk5ZDkyZDRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTQ6NDQ6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBn dWl4OiBBZGQgQ29udGVudERCIGltcG9ydGVyLgoKKiBndWl4L2ltcG9ydC9jb250ZW50ZGIuc2Nt OiBOZXcgZmlsZS4KKiBndWl4L3NjcmlwdHMvaW1wb3J0L2NvbnRlbnRkYi5zY206IE5ldyBmaWxl LgoqIHRlc3RzL2NvbnRlbnRkYi5zY206IE5ldyBmaWxlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVT LCBTQ01fVEVTVFMpOiBSZWdpc3RlciB0aGVtLgoqIHBvL2d1aXgvUE9URklMRVMuaW46IExpa2V3 aXNlLgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nIGd1aXggaW1wb3J0KTogRG9jdW1lbnQgaXQu Ci0tLQogTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZG9jL2d1aXgu dGV4aSAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysrCiBndWl4L2ltcG9ydC9taW5ldGVzdC5z Y20gICAgICAgICB8IDQ1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBndWl4L3Nj cmlwdHMvaW1wb3J0LnNjbSAgICAgICAgICB8ICAgMyArLQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9t aW5ldGVzdC5zY20gfCAxMTcgKysrKysrKysKIHBvL2d1aXgvUE9URklMRVMuaW4gICAgICAgICAg ICAgIHwgICAxICsKIHRlc3RzL21pbmV0ZXN0LnNjbSAgICAgICAgICAgICAgIHwgMzU1ICsrKysr KysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA5NjYgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgvaW1wb3J0L21pbmV0ZXN0LnNj bQogY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgvc2NyaXB0cy9pbXBvcnQvbWluZXRlc3Quc2NtCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbWluZXRlc3Quc2NtCgpkaWZmIC0tZ2l0IGEvTWFrZWZp bGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCBmNDQzOWNlOTNiLi42MjQzNTgzNjE2IDEwMDY0NAot LS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMjYyLDYgKzI2Miw3IEBAIE1P RFVMRVMgPQkJCQkJXAogICBndWl4L2ltcG9ydC9qc29uLnNjbQkJCQlcCiAgIGd1aXgvaW1wb3J0 L2tkZS5zY20JCQkJXAogICBndWl4L2ltcG9ydC9sYXVuY2hwYWQuc2NtICAgCQkJXAorICBndWl4 L2ltcG9ydC9taW5ldGVzdC5zY20gICAJCQlcCiAgIGd1aXgvaW1wb3J0L29wYW0uc2NtCQkJCVwK ICAgZ3VpeC9pbXBvcnQvcHJpbnQuc2NtCQkJCVwKICAgZ3VpeC9pbXBvcnQvcHlwaS5zY20JCQkJ XApAQCAtMzA0LDYgKzMwNSw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L3NjcmlwdHMvaW1w b3J0L2dvLnNjbQkJCVwKICAgZ3VpeC9zY3JpcHRzL2ltcG9ydC9oYWNrYWdlLnNjbQkJXAogICBn dWl4L3NjcmlwdHMvaW1wb3J0L2pzb24uc2NtICAJCVwKKyAgZ3VpeC9zY3JpcHRzL2ltcG9ydC9t aW5ldGVzdC5zY20gIAkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L29wYW0uc2NtCQkJXAogICBn dWl4L3NjcmlwdHMvaW1wb3J0L3B5cGkuc2NtCQkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L3N0 YWNrYWdlLnNjbQkJXApAQCAtNDcwLDYgKzQ3Miw3IEBAIFNDTV9URVNUUyA9CQkJCQlcCiAgIHRl c3RzL2ltcG9ydC11dGlscy5zY20JCQlcCiAgIHRlc3RzL2luZmVyaW9yLnNjbQkJCQlcCiAgIHRl c3RzL2xpbnQuc2NtCQkJCVwKKyAgdGVzdHMvbWluZXRlc3Quc2NtCQkJCVwKICAgdGVzdHMvbW9k dWxlcy5zY20JCQkJXAogICB0ZXN0cy9tb25hZHMuc2NtCQkJCVwKICAgdGVzdHMvbmFyLnNjbQkJ CQlcCmRpZmYgLS1naXQgYS9kb2MvZ3VpeC50ZXhpIGIvZG9jL2d1aXgudGV4aQppbmRleCBkNDRl Y2MyMDA1Li44NTRlMjgyYjM4IDEwMDY0NAotLS0gYS9kb2MvZ3VpeC50ZXhpCisrKyBiL2RvYy9n dWl4LnRleGkKQEAgLTExMzE0LDYgKzExMzE0LDM4IEBAIGFuZCBnZW5lcmF0ZSBwYWNrYWdlIGV4 cHJlc3Npb25zIGZvciBhbGwgdGhvc2UgcGFja2FnZXMgdGhhdCBhcmUgbm90IHlldAogaW4gR3Vp eC4KIEBlbmQgdGFibGUKIAorQGl0ZW0gY29udGVudGRiCitAY2luZGV4IG1pbmV0ZXN0CitAY2lu ZGV4IENvbnRlbnREQgorSW1wb3J0IG1ldGFkYXRhIGZyb20gQHVyZWZ7aHR0cHM6Ly9jb250ZW50 Lm1pbmV0ZXN0Lm5ldCwgQ29udGVudERCfS4KK0luZm9ybWF0aW9uIGlzIHRha2VuIGZyb20gdGhl IEpTT04tZm9ybWF0dGVkIG1ldGFkYXRhIHByb3ZpZGVkIHRocm91Z2gKK0B1cmVme2h0dHBzOi8v Y29udGVudC5taW5ldGVzdC5uZXQvaGVscC9hcGkvLCBDb250ZW50REIncyBBUEl9IGFuZAoraW5j bHVkZXMgbW9zdCByZWxldmFudCBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIGRlcGVuZGVuY2llcy4g IFRoZXJlIGFyZQorc29tZSBjYXZlYXRzLCBob3dldmVyLiAgVGhlIGxpY2Vuc2UgaW5mb3JtYXRp b24gaXMgb2Z0ZW4gaW5jb21wbGV0ZS4KK1RoZSBjb21taXQgaGFzaCBpcyBzb21ldGltZXMgbWlz c2luZy4gIFRoZSBkZXNjcmlwdGlvbnMgYXJlIGluIHRoZQorTWFya2Rvd24gZm9ybWF0LCBidXQg R3VpeCB1c2VzIFRleGluZm8gaW5zdGVhZC4gIFRleHR1cmUgcGFja3MgYW5kCitzdWJnYW1lcyBh cmUgdW5zdXBwb3J0ZWQuCisKK1RoZSBjb21tYW5kIGJlbG93IGltcG9ydHMgbWV0YWRhdGEgZm9y IHRoZSBNZXNlY29ucyBtb2QgYnkgSmVpamE6CisKK0BleGFtcGxlCitndWl4IGltcG9ydCBtaW5l dGVzdCBKZWlqYS9tZXNlY29ucworQGVuZCBleGFtcGxlCisKK1RoZSBhdXRob3IgbmFtZSBjYW4g YWxzbyBiZSBsZWZ0IG91dDoKKworQGV4YW1wbGUKK2d1aXggaW1wb3J0IG1pbmV0ZXN0IG1lc2Vj b25zCitAZW5kIGV4YW1wbGUKKworQHRhYmxlIEBjb2RlCitAaXRlbSAtLXJlY3Vyc2l2ZQorQGl0 ZW14IC1yCitUcmF2ZXJzZSB0aGUgZGVwZW5kZW5jeSBncmFwaCBvZiB0aGUgZ2l2ZW4gdXBzdHJl YW0gcGFja2FnZSByZWN1cnNpdmVseQorYW5kIGdlbmVyYXRlIHBhY2thZ2UgZXhwcmVzc2lvbnMg Zm9yIGFsbCB0aG9zZSBwYWNrYWdlcyB0aGF0IGFyZSBub3QgeWV0CitpbiBHdWl4LgorQGVuZCB0 YWJsZQorCiBAaXRlbSBjcGFuCiBAY2luZGV4IENQQU4KIEltcG9ydCBtZXRhZGF0YSBmcm9tIEB1 cmVme2h0dHBzOi8vd3d3Lm1ldGFjcGFuLm9yZy8sIE1ldGFDUEFOfS4KZGlmZiAtLWdpdCBhL2d1 aXgvaW1wb3J0L21pbmV0ZXN0LnNjbSBiL2d1aXgvaW1wb3J0L21pbmV0ZXN0LnNjbQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMWY4NDg3Yjc1Ci0tLSAvZGV2L251bGwK KysrIGIvZ3VpeC9pbXBvcnQvbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsNDU2IEBACis7OzsgR05V IEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7OyBDb3B5 cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsK Kzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK Kzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggaW1wb3J0IG1pbmV0ZXN0KQor ICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJlY2Vp dmUpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgdGhyZWFkcykKKyAgIzp1c2UtbW9kdWxlIChpY2Ut OSBoYXNoLXRhYmxlKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVzZS1tb2R1 bGUgKHNyZmkgc3JmaS0yKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMSkKKyAgIzp1c2Ut bW9kdWxlIChzcmZpIHNyZmktMjYpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzp1 c2UtbW9kdWxlIChndWl4IHVpKQorICAjOnVzZS1tb2R1bGUgKGd1aXggaTE4bikKKyAgIzp1c2Ut bW9kdWxlIChndWl4IG1lbW9pemF0aW9uKQorICAjOnVzZS1tb2R1bGUgKGd1aXggc2VyaWFsaXph dGlvbikKKyAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCB1dGlscykKKyAgIzp1c2UtbW9kdWxl IChndWl4IGltcG9ydCBqc29uKQorICAjOnVzZS1tb2R1bGUgKChnY3J5cHQgaGFzaCkgIzpzZWxl Y3QgKG9wZW4tc2hhMjU2LXBvcnQgcG9ydC1zaGEyNTYpKQorICAjOnVzZS1tb2R1bGUgKGpzb24p CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBiYXNlMzIpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBnaXQp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzpleHBvcnQgKCVkZWZhdWx0LXNvcnQt a2V5CisgICAgICAgICAgICAlY29udGVudGRiLWFwaQorICAgICAgICAgICAganNvbi0+cGFja2Fn ZQorICAgICAgICAgICAgY29udGVudGRiLWZldGNoCisgICAgICAgICAgICBlbGFib3JhdGUtY29u dGVudGRiLW5hbWUKKyAgICAgICAgICAgIG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UKKyAgICAgICAg ICAgIG1pbmV0ZXN0LXJlY3Vyc2l2ZS1pbXBvcnQKKyAgICAgICAgICAgIHNvcnQtcGFja2FnZXMp KQorCis7OyBUaGUgQ29udGVudERCIEFQSSBpcyBkb2N1bWVudGVkIGF0Cis7OyA8aHR0cHM6Ly9j b250ZW50Lm1pbmV0ZXN0Lm5ldD4uCisKKyhkZWZpbmUgJWNvbnRlbnRkYi1hcGkKKyAgKG1ha2Ut cGFyYW1ldGVyICJodHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0L2FwaS8iKSkKKworKGRlZmlu ZSAoc3RyaW5nLW9yLWZhbHNlIHgpCisgIChhbmQgKHN0cmluZz8geCkgeCkpCisKKyhkZWZpbmUg KG5hdHVyYWwtb3ItZmFsc2UgeCkKKyAgKGFuZCAoZXhhY3QtaW50ZWdlcj8geCkgKD49IHggMCkg eCkpCisKKzs7IERlc2NyaXB0aW9ucyBvbiBDb250ZW50REIgdXNlIGNhcnJpYWdlIHJldHVybnMs IGJ1dCBHdWl4IGRvZXNuJ3QuCisoZGVmaW5lIChkZWxldGUtY3IgdGV4dCkKKyAgKHN0cmluZy1k ZWxldGUgI1xjciB0ZXh0KSkKKworDAorCis7OzsKKzs7OyBKU09OIG1hcHBpbmdzCis7OzsKKwor OzsgTWluZXRlc3QgcGFja2FnZS4KKzs7Cis7OyBBUEkgZW5kcG9pbnQ6IC9wYWNrYWdlcy9BVVRI T1IvTkFNRS8KKyhkZWZpbmUtanNvbi1tYXBwaW5nIDxwYWNrYWdlPiBtYWtlLXBhY2thZ2UgcGFj a2FnZT8KKyAganNvbi0+cGFja2FnZQorICAoYXV0aG9yICAgICAgICAgICAgcGFja2FnZS1hdXRo b3IpIDsgc3RyaW5nCisgIChjcmVhdGlvbi1kYXRlICAgICBwYWNrYWdlLWNyZWF0aW9uLWRhdGUg OyBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IikKKyAgKGRvd25sb2Fk cyAgICAgICAgIHBhY2thZ2UtZG93bmxvYWRzKSA7IGludGVnZXIKKyAgKGZvcnVtcyAgICAgICAg ICAgIHBhY2thZ2UtZm9ydW1zICJmb3J1bXMiIG5hdHVyYWwtb3ItZmFsc2UpCisgIChpc3N1ZS10 cmFja2VyICAgICBwYWNrYWdlLWlzc3VlLXRyYWNrZXIgImlzc3VlX3RyYWNrZXIiKSA7IHN0cmlu ZworICAobGljZW5zZSAgICAgICAgICAgcGFja2FnZS1saWNlbnNlKSA7IHN0cmluZworICAobG9u Zy1kZXNjcmlwdGlvbiAgcGFja2FnZS1sb25nLWRlc2NyaXB0aW9uICJsb25nX2Rlc2NyaXB0aW9u IikgOyBzdHJpbmcKKyAgKG1haW50YWluZXJzICAgICAgIHBhY2thZ2UtbWFpbnRhaW5lcnMgOyBs aXN0IG9mIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICJtYWludGFpbmVycyIgdmVjdG9y LT5saXN0KQorICAobWVkaWEtbGljZW5zZSAgICAgcGFja2FnZS1tZWRpYS1saWNlbnNlICJtZWRp YV9saWNlbnNlIikgOyBzdHJpbmcKKyAgKG5hbWUgICAgICAgICAgICAgIHBhY2thZ2UtbmFtZSkg OyBzdHJpbmcKKyAgKHByb3ZpZGVzICAgICAgICAgIHBhY2thZ2UtcHJvdmlkZXMgOyBsaXN0IG9m IHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICJwcm92aWRlcyIgdmVjdG9yLT5saXN0KQor ICAocmVsZWFzZSAgICAgICAgICAgcGFja2FnZS1yZWxlYXNlKSA7IGludGVnZXIKKyAgKHJlcG9z aXRvcnkgICAgICAgIHBhY2thZ2UtcmVwb3NpdG9yeSAicmVwbyIgc3RyaW5nLW9yLWZhbHNlKQor ICAoc2NvcmUgICAgICAgICAgICAgcGFja2FnZS1zY29yZSkgOyBmbG9udW0KKyAgKHNjcmVlbnNo b3RzICAgICAgIHBhY2thZ2Utc2NyZWVuc2hvdHMgInNjcmVlbnNob3RzIiB2ZWN0b3ItPmxpc3Qp IDsgbGlzdCBvZiBzdHJpbmdzCisgIChzaG9ydC1kZXNjcmlwdGlvbiBwYWNrYWdlLXNob3J0LWRl c2NyaXB0aW9uICJzaG9ydF9kZXNjcmlwdGlvbiIpIDsgc3RyaW5nCisgIChzdGF0ZSAgICAgICAg ICAgICBwYWNrYWdlLXN0YXRlKSA7IHN0cmluZworICAodGFncyAgICAgICAgICAgICAgcGFja2Fn ZS10YWdzICJ0YWdzIiB2ZWN0b3ItPmxpc3QpIDsgbGlzdCBvZiBzdHJpbmdzCisgICh0aHVtYm5h aWwgICAgICAgICBwYWNrYWdlLXRodW1ibmFpbCkgOyBzdHJpbmcKKyAgKHRpdGxlICAgICAgICAg ICAgIHBhY2thZ2UtdGl0bGUpIDsgc3RyaW5nCisgICh0eXBlICAgICAgICAgICAgICBwYWNrYWdl LXR5cGUpIDsgc3RyaW5nCisgICh1cmwgICAgICAgICAgICAgICBwYWNrYWdlLXVybCkgOyBzdHJp bmcKKyAgKHdlYnNpdGUgICAgICAgICAgIHBhY2thZ2Utd2Vic2l0ZSAid2Vic2l0ZSIgc3RyaW5n LW9yLWZhbHNlKSkKKworKGRlZmluZS1qc29uLW1hcHBpbmcgPHJlbGVhc2U+IG1ha2UtcmVsZWFz ZSByZWxlYXNlPworICBqc29uLT5yZWxlYXNlCisgIDs7IElmIHByZXNlbnQsIGEgZ2l0IGNvbW1p dCBpZGVudGlmaWVkIGJ5IGl0cyBoYXNoCisgIChjb21taXQgICAgICAgICAgICAgICByZWxlYXNl LWNvbW1pdCAiY29tbWl0IiBzdHJpbmctb3ItZmFsc2UpCisgIChkb3dubG9hZHMgICAgICAgICAg ICByZWxlYXNlLWRvd25sb2FkcykgOyBpbnRlZ2VyCisgIChpZCAgICAgICAgICAgICAgICAgICBy ZWxlYXNlLWlkKSA7IGludGVnZXIKKyAgKG1heC1taW5ldGVzdC12ZXJzaW9uIHJlbGVhc2UtbWF4 LW1pbmV0ZXN0LXZlcnNpb24gc3RyaW5nLW9yLWZhbHNlKQorICAobWluLW1pbmV0ZXN0LXZlcnNp b24gcmVsZWFzZS1taW4tbWluZXRlc3QtdmVyc2lvbiBzdHJpbmctb3ItZmFsc2UpCisgIChyZWxl YXNlLWRhdGUgICAgICAgICByZWxlYXNlLWRhdGEpIDsgc3RyaW5nCisgICh0aXRsZSAgICAgICAg ICAgICAgICByZWxlYXNlLXRpdGxlKSA7IHN0cmluZworICAodXJsICAgICAgICAgICAgICAgICAg cmVsZWFzZS11cmwpKSA7IHN0cmluZworCisoZGVmaW5lLWpzb24tbWFwcGluZyA8ZGVwZW5kZW5j eT4gbWFrZS1kZXBlbmRlbmN5IGRlcGVuZGVuY3k/CisgIGpzb24tPmRlcGVuZGVuY3kKKyAgKG9w dGlvbmFsPyBkZXBlbmRlbmN5LW9wdGlvbmFsPyAiaXNfb3B0aW9uYWwiKSA7IGJvb2wKKyAgKG5h bWUgZGVwZW5kZW5jeS1uYW1lKSA7IHN0cmluZworICAocGFja2FnZXMgZGVwZW5kZW5jeS1wYWNr YWdlcyAicGFja2FnZXMiIHZlY3Rvci0+bGlzdCkpIDsgbGlzdCBvZiBzdHJpbmdzCisKKzs7IEEg c3RydWN0dXJlIHJldHVybmVkIGJ5IHRoZSAvYXBpL3BhY2thZ2VzLz9mbXQ9a2V5cyBlbmRwb2lu dAorKGRlZmluZS1qc29uLW1hcHBpbmcgPHBhY2thZ2Uta2V5cz4gbWFrZS1wYWNrYWdlLWtleXMg cGFja2FnZS1rZXlzPworICBqc29uLT5wYWNrYWdlLWtleXMKKyAgKGF1dGhvciBwYWNrYWdlLWtl eXMtYXV0aG9yKSA7IHN0cmluZworICAobmFtZSBwYWNrYWdlLWtleXMtbmFtZSkgICAgIDsgc3Ry aW5nCisgICh0eXBlIHBhY2thZ2Uta2V5cy10eXBlKSkgICAgOyBzdHJpbmcKKworKGRlZmluZSAo cGFja2FnZS1tb2Q/IHBhY2thZ2UpCisgICJJcyB0aGUgQ29udGVudERCIHBhY2thZ2UgUEFDS0FH RSBhIG1vZD8iCisgIDs7IENvbnRlbnREQiBhbHNvIGhhcyDigJhnYW1lc+KAmSBhbmQg4oCYdGV4 dHVyZSBwYWNrc+KAmS4KKyAgKHN0cmluZz0/IChwYWNrYWdlLXR5cGUgcGFja2FnZSkgIm1vZCIp KQorCisMCisKKzs7OworOzs7IE1hbmlwdWxhdGluZyBuYW1lcyBvZiBwYWNrYWdlcworOzs7Cis7 OzsgVGhlcmUgYXJlIHRocmVlIGtpbmQgb2YgbmFtZXM6Cis7OzsKKzs7OyAgICogbmFtZXMgb2Yg Z3VpeCBwYWNrYWdlcywgZS5nLiBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMuCis7OzsgICAqIG5h bWVzIG9mIG1vZHMgb24gQ29udGVudERCLCBlLmcuIGJhc2ljX21hdGVyaWFscworOzs7ICAgKiBh IGNvbWJpbmF0aW9uIG9mIGF1dGhvciBhbmQgbW9kIG5hbWUgb24gQ29udGVudERCLCBlLmcuIFZh bmVzc2FFL2Jhc2ljX21hdGVyaWFscworOzs7CisKKyhkZWZpbmUgKCVjb25zdHJ1Y3QtZnVsbC1u YW1lIGF1dGhvciBuYW1lKQorICAoc3RyaW5nLWFwcGVuZCBhdXRob3IgIi8iIG5hbWUpKQorCiso ZGVmaW5lIChwYWNrYWdlLWZ1bGwtbmFtZSBwYWNrYWdlKQorICAiR2l2ZW4gYSA8cGFja2FnZT4g b2JqZWN0LCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgQVVUSE9SL05BTUUgc3RyaW5nLiIKKyAg KCVjb25zdHJ1Y3QtZnVsbC1uYW1lIChwYWNrYWdlLWF1dGhvciBwYWNrYWdlKSAocGFja2FnZS1u YW1lIHBhY2thZ2UpKSkKKworKGRlZmluZSAocGFja2FnZS1rZXlzLWZ1bGwtbmFtZSBwYWNrYWdl KQorICAiR2l2ZW4gYSA8cGFja2FnZS1rZXlzPiBvYmplY3QsIHJldHVybiB0aGUgY29ycmVzcG9u ZGluZyBBVVRIT1IvTkFNRSBzdHJpbmcuIgorICAoJWNvbnN0cnVjdC1mdWxsLW5hbWUgKHBhY2th Z2Uta2V5cy1hdXRob3IgcGFja2FnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdl LWtleXMtbmFtZSBwYWNrYWdlKSkpCisKKyhkZWZpbmUgKGNvbnRlbnRkYi0+cGFja2FnZS1uYW1l IGF1dGhvci9uYW1lKQorICAiR2l2ZW4gdGhlIEFVVEhPUi9OQU1FIG9mIGEgcGFja2FnZSBvbiBD b250ZW50REIsIHJldHVybiBhIEd1aXgtY29tcGxpYW50CituYW1lIGZvciB0aGUgcGFja2FnZS4i CisgIDs7IFRoZSBhdXRob3IgaXMgbm90IGluY2x1ZGVkLCBhcyB0aGUgbmFtZXMgb2YgcG9wdWxh ciBtb2RzCisgIDs7IHRlbmQgdG8gYmUgdW5pcXVlLgorICAoc3RyaW5nLWFwcGVuZCAibWluZXRl c3QtIiAoc25ha2UtY2FzZSAoYXV0aG9yL25hbWUtPm5hbWUgYXV0aG9yL25hbWUpKSkpCisKKyhk ZWZpbmUgKGF1dGhvci9uYW1lLT5uYW1lIGF1dGhvci9uYW1lKQorICAiRXh0cmFjdCBOQU1FIGZy b20gdGhlIEFVVEhPUi9OQU1FIHN0cmluZywgb3IgcmFpc2UgYW4gZXJyb3IgaWYgQVVUSE9SL05B TUUKK2lzIGlsbC1mb3JtYXR0ZWQuIgorICAobWF0Y2ggKHN0cmluZy1zcGxpdCBhdXRob3IvbmFt ZSAjXC8pCisgICAgKChhdXRob3IgbmFtZSkKKyAgICAgKHdoZW4gKHN0cmluZy1udWxsPyBhdXRo b3IpCisgICAgICAgKGxlYXZlCisgICAgICAgIChHXyAiSW4gfmE6IGF1dGhvciBuYW1lcyBtdXN0 IGNvbnNpc3Qgb2YgYXQgbGVhc3QgYSBzaW5nbGUgY2hhcmFjdGVyLn4lIikKKyAgICAgICAgYXV0 aG9yL25hbWUpKQorICAgICAod2hlbiAoc3RyaW5nLW51bGw/IG5hbWUpCisgICAgICAgKGxlYXZl CisgICAgICAgIChHXyAiSW4gfmE6IG1vZCBuYW1lcyBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3Qg YSBzaW5nbGUgY2hhcmFjdGVyLn4lIikKKyAgICAgICAgYXV0aG9yL25hbWUpKQorICAgICBuYW1l KQorICAgICgodG9vIG1hbnkgLiBjb21wb25lbnRzKQorICAgICAobGVhdmUKKyAgICAgIChHXyAi SW4gfmE6IGF1dGhvciBuYW1lcyBhbmQgbW9kIG5hbWVzIG1heSBub3QgY29udGFpbiBmb3J3YXJk IHNsYXNoZXMufiUiKQorICAgICAgYXV0aG9yL25hbWUpKQorICAgICgobmFtZSkKKyAgICAgKGlm IChzdHJpbmctbnVsbD8gbmFtZSkKKyAgICAgICAgIChsZWF2ZSAoR18gIm1vZCBuYW1lcyBtYXkg bm90IGJlIGVtcHR5Ln4lIikpCisgICAgICAgICAobGVhdmUgKEdfICJUaGUgbmFtZSBvZiB0aGUg YXV0aG9yIGlzIG1pc3NpbmcgaW4gfmEufiUiKQorICAgICAgICAgICAgICAgIGF1dGhvci9uYW1l KSkpKSkKKworKGRlZmluZSogKGVsYWJvcmF0ZS1jb250ZW50ZGItbmFtZSBuYW1lICM6a2V5IChz b3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgIklmIE5BTUUgaXMgYW4gQVVUSE9SL05BTUUgc3Ry aW5nLCByZXR1cm4gaXQuICBPdGhlcndpc2UsIHRyeSB0byBkZXRlcm1pbmUKK3RoZSBhdXRob3Ig YW5kIHJldHVybiBhbiBhcHByb3ByaWF0ZSBBVVRIT1IvTkFNRSBzdHJpbmcuICBJZiB0aGF0IGZh aWxzLAorcmFpc2UgYW4gZXhjZXB0aW9uLiIKKyAgKGlmIChvciAoc3RyaW5nLWNvbnRhaW5zIG5h bWUgIi8iKSAoc3RyaW5nLW51bGw/IG5hbWUpKQorICAgICAgOzsgQ2FsbCAnYXV0aG9yL25hbWUt Pm5hbWUnIHRvIHZlcmlmeSB0aGF0IE5BTUUgc2VlbXMgcmVhc29uYWJsZQorICAgICAgOzsgYW5k IHJhaXNlIGFuIGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiBpZiBpdCBpc24ndC4KKyAgICAgIChiZWdp bgorICAgICAgICAoYXV0aG9yL25hbWUtPm5hbWUgbmFtZSkKKyAgICAgICAgbmFtZSkKKyAgICAg IChsZXQqICgocGFja2FnZS1rZXlzIChjb250ZW50ZGItcXVlcnktcGFja2FnZXMgbmFtZSAjOnNv cnQgc29ydCkpCisgICAgICAgICAgICAgKGNvcnJlY3RseS1uYW1lZAorICAgICAgICAgICAgICAo ZmlsdGVyIChsYW1iZGEgKHBhY2thZ2Uta2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgKHN0 cmluZz0/IG5hbWUgKHBhY2thZ2Uta2V5cy1uYW1lIHBhY2thZ2Uta2V5KSkpCisgICAgICAgICAg ICAgICAgICAgICAgcGFja2FnZS1rZXlzKSkpCisgICAgICAgIChtYXRjaCBjb3JyZWN0bHktbmFt ZWQKKyAgICAgICAgICAoKG9uZSkgKHBhY2thZ2Uta2V5cy1mdWxsLW5hbWUgb25lKSkKKyAgICAg ICAgICAoKHRvbyAuIG1hbnkpCisgICAgICAgICAgICh3YXJuaW5nIChHXyAifmEgaXMgYW1iaWdp b3VzLCBwcmVzdW1pbmcgfmEgKG90aGVyIG9wdGlvbnMgaW5jbHVkZTogfmEpfiUiKQorICAgICAg ICAgICAgICAgICAgICBuYW1lIChwYWNrYWdlLWtleXMtZnVsbC1uYW1lIHRvbykKKyAgICAgICAg ICAgICAgICAgICAgKG1hcCBwYWNrYWdlLWtleXMtZnVsbC1uYW1lIG1hbnkpKQorICAgICAgICAg ICAocGFja2FnZS1rZXlzLWZ1bGwtbmFtZSB0b28pKQorICAgICAgICAgICgoKQorICAgICAgICAg ICAobGVhdmUgKEdfICJObyBtb2RzIHdpdGggbmFtZSB+YSB3ZXJlIGZvdW5kLn4lIikgbmFtZSkp KSkpKQorCisMCisKKzs7OworOzs7IEFQSSBlbmRwb2ludHMKKzs7OworCisoZGVmaW5lIGNvbnRl bnRkYi1mZXRjaAorICAobWxhbWJkYSAoYXV0aG9yL25hbWUpCisgICAgIlJldHVybiBhIDxwYWNr YWdlPiByZWNvcmQgZm9yIHBhY2thZ2UgQVVUSE9SL05BTUUsIG9yICNmIG9uIGZhaWx1cmUuIgor ICAgIChhbmQ9PiAoanNvbi1mZXRjaAorICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgKCVjb250 ZW50ZGItYXBpKSAicGFja2FnZXMvIiBhdXRob3IvbmFtZSAiLyIpKQorICAgICAgICAgICBqc29u LT5wYWNrYWdlKSkpCisKKyhkZWZpbmUgKGNvbnRlbnRkYi1mZXRjaC1yZWxlYXNlcyBhdXRob3Iv bmFtZSkKKyAgIlJldHVybiBhIGxpc3Qgb2YgPHJlbGVhc2U+IHJlY29yZHMgZm9yIHBhY2thZ2Ug TkFNRSBieSBBVVRIT1IsIG9yICNmCitvbiBmYWlsdXJlLiIKKyAgKGFuZD0+IChqc29uLWZldGNo IChzdHJpbmctYXBwZW5kICglY29udGVudGRiLWFwaSkgInBhY2thZ2VzLyIgYXV0aG9yL25hbWUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvcmVsZWFzZXMvIikpCisgICAg ICAgICAobGFtYmRhIChqc29uKQorICAgICAgICAgICAobWFwIGpzb24tPnJlbGVhc2UgKHZlY3Rv ci0+bGlzdCBqc29uKSkpKSkKKworKGRlZmluZSAobGF0ZXN0LXJlbGVhc2UgYXV0aG9yL25hbWUp CisgICJSZXR1cm4gdGhlIGxhdGVzdCBzb3VyY2UgcmVsZWFzZSBmb3IgcGFja2FnZSBOQU1FIGJ5 IEFVVEhPUiwKK29yICNmIGlmIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBleGlzdC4iCisgIChhbmQ9 PiAoY29udGVudGRiLWZldGNoLXJlbGVhc2VzIGF1dGhvci9uYW1lKQorICAgICAgICAgY2FyKSkK KworKGRlZmluZSAoY29udGVudGRiLWZldGNoLWRlcGVuZGVuY2llcyBhdXRob3IvbmFtZSkKKyAg IlJldHVybiBhbiBhbGlzdCBvZiBsaXN0cyBvZiA8ZGVwZW5kZW5jeT4gcmVjb3JkcyBmb3IgcGFj a2FnZSBOQU1FIGJ5IEFVVEhPUgorYW5kIHBvc3NpYmx5IHNvbWUgb3RoZXIgcGFja2FnZXMgYXMg d2VsbCwgb3IgI2Ygb24gZmFpbHVyZS4iCisgIChkZWZpbmUgdXJsIChzdHJpbmctYXBwZW5kICgl Y29udGVudGRiLWFwaSkgInBhY2thZ2VzLyIgYXV0aG9yL25hbWUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIi9kZXBlbmRlbmNpZXMvIikpCisgIChhbmQ9PiAoanNvbi1mZXRjaCB1cmwp CisgICAgICAgICAobGFtYmRhIChqc29uKQorICAgICAgICAgICAobWFwIChtYXRjaC1sYW1iZGEK KyAgICAgICAgICAgICAgICAgICgoa2V5IC4gdmFsdWUpCisgICAgICAgICAgICAgICAgICAgKGNv bnMga2V5IChtYXAganNvbi0+ZGVwZW5kZW5jeSAodmVjdG9yLT5saXN0IHZhbHVlKSkpKSkKKyAg ICAgICAgICAgICAgICBqc29uKSkpKQorCisoZGVmaW5lKiAoY29udGVudGRiLXF1ZXJ5LXBhY2th Z2VzIHEgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUgIm1v ZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW1pdCA1MCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnQgJWRlZmF1bHQtc29ydC1rZXkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmRlciAiZGVzYyIpKQorICAiU2Vh cmNoIENvbnRlbnREQiBmb3IgUSAoYSBzdHJpbmcpLiAgU29ydCBieSBTT1JULCBpbiBhc2NlbmRp bmcgb3JkZXIKK2lmIE9SREVSIGlzIFwiYXNjXCIgb3IgZGVzY2VuZGluZyBvcmRlciBpZiBPUkRF UiBpcyBcImRlc2NcIi4gIFRZUEUgbXVzdAorYmUgXCJtb2RcIiwgXCJnYW1lXCIgb3IgXCJ0eHBc IiwgcmVzdHJpY3RpbmcgdGhlcyBzZWFyY2ggcmVzdWx0cyB0bworcmVzcGVjdGl2ZWx5IG1vZHMs IGdhbWVzIGFuZCB0ZXh0dXJlIHBhY2tzLiAgTGltaXQgdG8gYXQgbW9zdCBMSU1JVAorcmVzdWx0 cy4gIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0IG9mIDxwYWNrYWdlLWtleXM+IHJlY29yZHMu IgorICA7OyBYWFggZG9lcyBHdWlsZSBoYXZlIHNvbWV0aGluZyBmb3IgY29uc3RydWN0aW5nIChh bmQsIHdoZW4gbmVjZXNzYXJ5LAorICA7OyBlc2NhcGluZykgcXVlcnkgc3RyaW5ncz8KKyAgKGRl ZmluZSB1cmwgKHN0cmluZy1hcHBlbmQgKCVjb250ZW50ZGItYXBpKSAicGFja2FnZXMvP3R5cGU9 IiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImcT0iIHEgIiZmbXQ9a2V5cyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZsaW1pdD0iIChudW1iZXItPnN0cmluZyBs aW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZvcmRlcj0iIG9yZGVyCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICImc29ydD0iIHNvcnQpKQorICAobGV0ICgoanNvbiAo anNvbi1mZXRjaCB1cmwpKSkKKyAgICAoaWYganNvbgorICAgICAgICAobWFwIGpzb24tPnBhY2th Z2Uta2V5cyAodmVjdG9yLT5saXN0IGpzb24pKQorICAgICAgICAobGVhdmUKKyAgICAgICAgIChH XyAiVGhlIHBhY2thZ2Ugc2VhcmNoIEFQSSBkb2Vzbid0IGV4aXN0IGFueW1vcmUufiUiKSkpKSkK KworDAorCis7OyBYWFggY29waWVkIGZyb20gKGd1aXggaW1wb3J0IGVscGEpCisoZGVmaW5lKiAo ZG93bmxvYWQtZ2l0LXJlcG9zaXRvcnkgdXJsIHJlZikKKyAgIkZldGNoIHRoZSBnaXZlbiBSRUYg ZnJvbSB0aGUgR2l0IHJlcG9zaXRvcnkgYXQgVVJMLiIKKyAgKHdpdGgtc3RvcmUgc3RvcmUKKyAg ICAobGF0ZXN0LXJlcG9zaXRvcnktY29tbWl0IHN0b3JlIHVybCAjOnJlZiByZWYpKSkKKworOzsg WFhYIGFkYXB0ZWQgZnJvbSAoZ3VpeCBzY3JpcHRzIGhhc2gpCisoZGVmaW5lIChmaWxlLWhhc2gg ZmlsZSkKKyAgIkNvbXB1dGUgdGhlIGhhc2ggb2YgRklMRS4iCisgIChsZXQtdmFsdWVzICgoKHBv cnQgZ2V0LWhhc2gpIChvcGVuLXNoYTI1Ni1wb3J0KSkpCisgICAgKHdyaXRlLWZpbGUgZmlsZSBw b3J0KQorICAgIChmb3JjZS1vdXRwdXQgcG9ydCkKKyAgICAoZ2V0LWhhc2gpKSkKKworKGRlZmlu ZSAobWFrZS1taW5ldGVzdC1zZXhwIGF1dGhvci9uYW1lIHZlcnNpb24gcmVwb3NpdG9yeSBjb21t aXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHMgaG9tZS1wYWdlIHN5bm9wc2lz CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gbWVkaWEtbGljZW5zZSBs aWNlbnNlKQorICAiUmV0dXJuIGEgUy1leHByZXNzaW9uIGZvciB0aGUgbWluZXRlc3QgcGFja2Fn ZSB3aXRoIHRoZSBnaXZlbiBhdXRob3IvTkFNRSwKK1ZFUlNJT04sIFJFUE9TSVRPUlksIENPTU1J VCwgSU5QVVRTLCBIT01FLVBBR0UsIFNZTk9QU0lTLCBERVNDUklQVElPTiwKK01FRElBLUxJQ0VO U0UgYW5kIExJQ0VOU0UuIgorICBgKHBhY2thZ2UKKyAgICAgKG5hbWUgLChjb250ZW50ZGItPnBh Y2thZ2UtbmFtZSBhdXRob3IvbmFtZSkpCisgICAgICh2ZXJzaW9uICx2ZXJzaW9uKQorICAgICAo c291cmNlCisgICAgICAgKG9yaWdpbgorICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgKHVybCAscmVwb3NpdG9y eSkKKyAgICAgICAgICAgICAgICAoY29tbWl0ICxjb21taXQpKSkKKyAgICAgICAgIChzaGEyNTYK KyAgICAgICAgICAoYmFzZTMyCisgICAgICAgICAgIDs7IFRoZSBnaXQgY29tbWl0IGlzIG5vdCBh bHdheXMgYXZhaWxhYmxlLgorICAgICAgICAgICAsKGFuZCBjb21taXQKKyAgICAgICAgICAgICAg ICAgKGJ5dGV2ZWN0b3ItPm5peC1iYXNlMzItc3RyaW5nCisgICAgICAgICAgICAgICAgICAoZmls ZS1oYXNoCisgICAgICAgICAgICAgICAgICAgKGRvd25sb2FkLWdpdC1yZXBvc2l0b3J5IHJlcG9z aXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYChjb21t aXQgLiAsY29tbWl0KSkpKSkpKQorICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBu YW1lIHZlcnNpb24pKSkpCisgICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5 c3RlbSkKKyAgICAgLEAobWF5YmUtcHJvcGFnYXRlZC1pbnB1dHMgKG1hcCBjb250ZW50ZGItPnBh Y2thZ2UtbmFtZSBpbnB1dHMpKQorICAgICAoaG9tZS1wYWdlICxob21lLXBhZ2UpCisgICAgIChz eW5vcHNpcyAsKGRlbGV0ZS1jciBzeW5vcHNpcykpCisgICAgIChkZXNjcmlwdGlvbiAsKGRlbGV0 ZS1jciBkZXNjcmlwdGlvbikpCisgICAgIChsaWNlbnNlICwoaWYgKGVxPyBtZWRpYS1saWNlbnNl IGxpY2Vuc2UpCisgICAgICAgICAgICAgICAgICAgbGljZW5zZQorICAgICAgICAgICAgICAgICAg IGAobGlzdCAsbWVkaWEtbGljZW5zZSAsbGljZW5zZSkpKQorICAgICA7OyBUaGUgTWluZXRlc3Qg dXBkYXRlciAobm90IHlldCBpbiBHdWl4OyBpdCByZXF1aXJlcyBub3QteWV0LXN1Ym1pdHRlZAor ICAgICA7OyBwYXRjaGVzIHRvIChndWl4IHVwc3RyZWFtKSB0aGF0IHJlcXVpcmUgc29tZSB3b3Jr KSBuZWVkcyB0byBrbm93IGJvdGgKKyAgICAgOzsgdGhlIGF1dGhvciBuYW1lIGFuZCBtb2QgbmFt ZSBmb3IgZWZmaWNpZW5jeS4KKyAgICAgKHByb3BlcnRpZXMgLChsaXN0ICdxdWFzaXF1b3RlIGAo KHVwc3RyZWFtLW5hbWUgLiAsYXV0aG9yL25hbWUpKSkpKSkKKworKGRlZmluZSAocGFja2FnZS1o b21lLXBhZ2UgcGFja2FnZSkKKyAgIkd1ZXNzIHRoZSBob21lIHBhZ2Ugb2YgdGhlIENvbnRlbnRE QiBwYWNrYWdlIFBBQ0tBR0UuCisKK0luIG9yZGVyIG9mIHByZWZlcmVuY2UsIHRyeSB0aGUgJ3dl YnNpdGUnLCB0aGUgZm9ydW0gdG9waWMgb24gdGhlCitvZmZpY2lhbCBNaW5ldGVzdCBmb3J1bSBh bmQgdGhlIEdpdCByZXBvc2l0b3J5IChpZiBhbnkpLiIKKyAgKGRlZmluZSAodG9waWMtPnVybC1z ZXhwIHRvcGljKQorICAgIDs7ICdtaW5ldGVzdC10b3BpYycgaXMgYSBwcm9jZWR1cmUgZGVmaW5l ZCBpbiAoZ251IHBhY2thZ2VzIG1pbmV0ZXN0KQorICAgIGAobWluZXRlc3QtdG9waWMgLHRvcGlj KSkKKyAgKG9yIChwYWNrYWdlLXdlYnNpdGUgcGFja2FnZSkKKyAgICAgIChhbmQ9PiAocGFja2Fn ZS1mb3J1bXMgcGFja2FnZSkgdG9waWMtPnVybC1zZXhwKQorICAgICAgKHBhY2thZ2UtcmVwb3Np dG9yeSBwYWNrYWdlKSkpCisKKzs7IElmIHRoZSBkZWZhdWx0IHNvcnQga2V5IGlzIGNoYW5nZWQs IG1ha2Ugc3VyZSB0byBtb2RpZnkgJ3Nob3ctaGVscCcKKzs7IGluIChndWl4IHNjcmlwdHMgaW1w b3J0IG1pbmV0ZXN0KSBhcHByb3ByaWF0ZWx5IGFzIHdlbGwuCisoZGVmaW5lICVkZWZhdWx0LXNv cnQta2V5ICJzY29yZSIpCisKKyhkZWZpbmUqIChzb3J0LXBhY2thZ2VzIHBhY2thZ2VzICM6a2V5 IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgIlNvcnQgUEFDS0FHRVMgYnkgU09SVCwgaW4g ZGVzY2VuZGluZyBvcmRlci4iCisgIChkZWZpbmUgcGFja2FnZS0+a2V5CisgICAgKG1hdGNoIHNv cnQKKyAgICAgICgic2NvcmUiIHBhY2thZ2Utc2NvcmUpCisgICAgICAoImRvd25sb2FkcyIgcGFj a2FnZS1kb3dubG9hZHMpKSkKKyAgKGRlZmluZSAoZ3JlYXRlciB4IHkpCisgICAgKD4gKHBhY2th Z2UtPmtleSB4KSAocGFja2FnZS0+a2V5IHkpKSkKKyAgKHNvcnQtbGlzdCBwYWNrYWdlcyBncmVh dGVyKSkKKworKGRlZmluZSBidWlsdGluLW1vZD8KKyAgKGxldCAoKCVidWlsdGluLW1vZHMKKyAg ICAgICAgIChhbGlzdC0+aGFzaC10YWJsZQorICAgICAgICAgIChtYXAgKGxhbWJkYSAoeCkgKGNv bnMgeCAjdCkpCisgICAgICAgICAgICAgICAnKCJiZWRzIiAiYmlub2N1bGFycyIgImJvYXRzIiAi Ym9uZXMiICJidWNrZXQiICJidXR0ZXJmbGllcyIKKyAgICAgICAgICAgICAgICAgImNhcnRzIiAi Y3JlYXRpdmUiICJkZWZhdWx0IiAiZG9vcnMiICJkdW5nZW9uX2xvb3QiICJkeWUiCisgICAgICAg ICAgICAgICAgICJlbnZfc291bmRzIiAiZmFybWluZyIgImZpcmUiICJmaXJlZmxpZXMiICJmbG93 ZXJzIgorICAgICAgICAgICAgICAgICAiZ2FtZV9jb21tYW5kcyIgImdpdmVfaW5pdGlhbF9zdHVm ZiIgIm1hcCIgIm10Z19jcmFmdGd1aWRlIgorICAgICAgICAgICAgICAgICAicGxheWVyX2FwaSIg InNjcmV3ZHJpdmVyIiAic2V0aG9tZSIgInNmaW52IiAic3Bhd24iICJzdGFpcnMiCisgICAgICAg ICAgICAgICAgICJ0bnQiICJ2ZXNzZWxzIiAid2FsbHMiICJ3ZWF0aGVyIiAid29vbCIgInhwYW5l cyIpKSkpKQorICAgIChsYW1iZGEgKG1vZCkKKyAgICAgICJJcyBNT0QgcHJvdmlkZWQgYnkgdGhl IGRlZmF1bHQgbWluZXRlc3Qgc3ViZ2FtZT8iCisgICAgICAoaGFzaC1yZWYgJWJ1aWx0aW4tbW9k cyBtb2QpKSkpCisKKyhkZWZpbmUqIChpbXBvcnRhbnQtZGVwZW5kZW5jaWVzIGRlcGVuZGVuY2ll cyBhdXRob3IvbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzprZXkgKHNv cnQgJWRlZmF1bHQtc29ydC1rZXkpKQorICAiUmV0dXJuIHRoZSBoYXJkIGRlcGVuZGVuY2llcyBv ZiBBVVRIT1IvTkFNRSBpbiB0aGUgYXNzb2NpYXRpb24gbGlzdAorREVQRU5ERU5DSUVTIGFzIGEg bGlzdCBvZiBBVVRIT1IvTkFNRSBzdHJpbmdzLiIKKyAgKGRlZmluZSBkZXBlbmRlbmN5LWxpc3QK KyAgICAoYXNzb2MtcmVmIGRlcGVuZGVuY2llcyBhdXRob3IvbmFtZSkpCisgIChmaWx0ZXItbWFw CisgICAobGFtYmRhIChkZXBlbmRlbmN5KQorICAgICAoYW5kIChub3QgKGRlcGVuZGVuY3ktb3B0 aW9uYWw/IGRlcGVuZGVuY3kpKQorICAgICAgICAgIChub3QgKGJ1aWx0aW4tbW9kPyAoZGVwZW5k ZW5jeS1uYW1lIGRlcGVuZGVuY3kpKSkKKyAgICAgICAgICA7OyBUaGUgZGVwZW5kZW5jeSBpbmZv cm1hdGlvbiBjb250YWlucyBzeW1ib2xpYyBuYW1lcworICAgICAgICAgIDs7IHRoYXQgY2FuIGJl IOKAmHByb3ZpZGVk4oCZIGJ5IG11bHRpcGxlIG1vZHMsIHNvIHdlIG5lZWQgdG8gY2hvb3NlIG9u ZQorICAgICAgICAgIDs7IG9mIHRoZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgICAgKGxldCog KChpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgICAgICAgICAgIChwYXItbWFwIGNvbnRlbnRkYi1m ZXRjaCAoZGVwZW5kZW5jeS1wYWNrYWdlcyBkZXBlbmRlbmN5KSkpCisgICAgICAgICAgICAgICAg IDs7IEZldGNoaW5nIHBhY2thZ2UgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhY2thZ2VzIGlzIHJh Y3k6CisgICAgICAgICAgICAgICAgIDs7IHNvbWUgcGFja2FnZXMgbWlnaHQgYmUgcmVtb3ZlZCBm cm9tIENvbnRlbnREQiBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAgICA7OyBjb25zdHJ1Y3Rp b24gb2YgREVQRU5ERU5DSUVTIGFuZCB0aGUgY2FsbCB0bworICAgICAgICAgICAgICAgICA7OyAn Y29udGVudGRiLWZldGNoJy4gIFNvIGZpbHRlciBvdXQgI2YuCisgICAgICAgICAgICAgICAgIDs7 CisgICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQg4oCYZ2FtZXPigJkgdGhhdCBpbmNsdWRl IHRoZSByZXF1ZXN0ZWQgbW9kIC0tIGl0J3MKKyAgICAgICAgICAgICAgICAgOzsgdGhlIG1vZCBp dHNlbGYgd2Ugd2FudC4KKyAgICAgICAgICAgICAgICAgKG1vZHMgKGZpbHRlciAobGFtYmRhIChw KSAoYW5kPT4gcCBwYWNrYWdlLW1vZD8pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGltcGxlbWVudGF0aW9ucykpCisgICAgICAgICAgICAgICAgIChzb3J0ZWQtbW9kcyAoc29ydC1w YWNrYWdlcyBtb2RzICM6c29ydCBzb3J0KSkpCisgICAgICAgICAgICAobWF0Y2ggc29ydGVkLW1v ZHMKKyAgICAgICAgICAgICAgKChwYWNrYWdlKSAocGFja2FnZS1mdWxsLW5hbWUgcGFja2FnZSkp CisgICAgICAgICAgICAgICgodG9vIC4gbWFueSkKKyAgICAgICAgICAgICAgICh3YXJuaW5nCisg ICAgICAgICAgICAgICAgKEdfICJUaGUgZGVwZW5kZW5jeSB+YSBvZiB+YSBoYXMgbXVsdGlwbGUg ZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyB+YS5+JSIpCisgICAgICAgICAgICAgICAgKGRlcGVu ZGVuY3ktbmFtZSBkZXBlbmRlbmN5KQorICAgICAgICAgICAgICAgIGF1dGhvci9uYW1lCisgICAg ICAgICAgICAgICAgKG1hcCBwYWNrYWdlLWZ1bGwtbmFtZSBzb3J0ZWQtbW9kcykpCisgICAgICAg ICAgICAgICAobWF0Y2ggc29ydAorICAgICAgICAgICAgICAgICAoInNjb3JlIgorICAgICAgICAg ICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAoR18gIlRoZSBpbXBsZW1lbnRh dGlvbiB3aXRoIHRoZSBoaWdoZXN0IHNjb3JlIHdpbGwgYmUgY2hvb3NlbiF+JSIpKSkKKyAgICAg ICAgICAgICAgICAgKCJkb3dubG9hZHMiCisgICAgICAgICAgICAgICAgICAod2FybmluZworICAg ICAgICAgICAgICAgICAgIChHXyAiVGhlIGltcGxlbWVudGF0aW9uIHRoYXQgaGFzIGJlZW4gZG93 bmxvYWRlZCB0aGUgbW9zdCB3aWxsIGJlIGNob29zZW4hfiUiKSkpKQorICAgICAgICAgICAgICAg KHBhY2thZ2UtZnVsbC1uYW1lIHRvbykpCisgICAgICAgICAgICAgICgoKQorICAgICAgICAgICAg ICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAoR18gIlRoZSBkZXBlbmRlbmN5IH5hIG9mIH5h IGRvZXMgbm90IGhhdmUgYW55IGltcGxlbWVudGF0aW9uLiAgSXQgd2lsbCBiZSBpZ25vcmVkIX4l IikKKyAgICAgICAgICAgICAgICAoZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpIGF1dGhvci9u YW1lKQorICAgICAgICAgICAgICAgI2YpKSkpKQorICAgZGVwZW5kZW5jeS1saXN0KSkKKworKGRl ZmluZSogKCVtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlIGF1dGhvci9uYW1lICM6a2V5IChzb3J0ICVk ZWZhdWx0LXNvcnQta2V5KSkKKyAgIkZldGNoIHRoZSBtZXRhZGF0YSBmb3IgQVVUSE9SL05BTUUg ZnJvbSBodHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0LCBhbmQKK3JldHVybiB0aGUgJ3BhY2th Z2UnIFMtZXhwcmVzc2lvbiBjb3JyZXNwb25kaW5nIHRvIHRoYXQgcGFja2FnZSwgb3IgcmFpc2Ug YW4KK2V4Y2VwdGlvbiBvbiBmYWlsdXJlLiAgT24gc3VjY2VzcywgYWxzbyByZXR1cm4gdGhlIHVw c3RyZWFtIGRlcGVuZGVuY2llcyBhcyBhCitsaXN0IG9mIEFVVEhPUi9OQU1FIHN0cmluZ3MuIgor ICA7OyBDYWxsICdhdXRob3IvbmFtZS0+bmFtZScgdG8gdmVyaWZ5IHRoYXQgQVVUSE9SL05BTUUg c2VlbXMgcmVhc29uYWJsZS4KKyAgKGF1dGhvci9uYW1lLT5uYW1lIGF1dGhvci9uYW1lKQorICAo ZGVmaW5lIHBhY2thZ2UgKGNvbnRlbnRkYi1mZXRjaCBhdXRob3IvbmFtZSkpCisgICh1bmxlc3Mg cGFja2FnZQorICAgIChsZWF2ZSAoR18gIm5vIHBhY2thZ2UgbWV0YWRhdGEgZm9yIH5hIG9uIENv bnRlbnREQn4lIikgYXV0aG9yL25hbWUpKQorICAoZGVmaW5lIGRlcGVuZGVuY2llcyAoY29udGVu dGRiLWZldGNoLWRlcGVuZGVuY2llcyBhdXRob3IvbmFtZSkpCisgICh1bmxlc3MgZGVwZW5kZW5j aWVzCisgICAgKGxlYXZlIChHXyAibm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBmb3IgfmEgb24g Q29udGVudERCfiUiKSBhdXRob3IvbmFtZSkpCisgIChkZWZpbmUgcmVsZWFzZSAobGF0ZXN0LXJl bGVhc2UgYXV0aG9yL25hbWUpKQorICAodW5sZXNzIHJlbGVhc2UKKyAgICAobGVhdmUgKEdfICJu byByZWxlYXNlIG9mIH5hIG9uIENvbnRlbnREQn4lIikgYXV0aG9yL25hbWUpKQorICAoZGVmaW5l IGltcG9ydGFudC11cHN0cmVhbS1kZXBlbmRlbmNpZXMKKyAgICAoaW1wb3J0YW50LWRlcGVuZGVu Y2llcyBkZXBlbmRlbmNpZXMgYXV0aG9yL25hbWUgIzpzb3J0IHNvcnQpKQorICAodmFsdWVzICht YWtlLW1pbmV0ZXN0LXNleHAgYXV0aG9yL25hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChyZWxlYXNlLXRpdGxlIHJlbGVhc2UpIDsgdmVyc2lvbgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHBhY2thZ2UtcmVwb3NpdG9yeSBwYWNrYWdlKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHJlbGVhc2UtY29tbWl0IHJlbGVhc2UpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbXBvcnRhbnQtdXBzdHJlYW0tZGVwZW5kZW5jaWVzCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1ob21lLXBhZ2UgcGFja2FnZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLXNob3J0LWRlc2NyaXB0aW9uIHBhY2thZ2Up CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1sb25nLWRlc2NyaXB0aW9u IHBhY2thZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3BkeC1zdHJpbmctPmxp Y2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1tZWRpYS1saWNl bnNlIHBhY2thZ2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNwZHgtc3RyaW5n LT5saWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtbGljZW5z ZSBwYWNrYWdlKSkpCisgICAgICAgICAgaW1wb3J0YW50LXVwc3RyZWFtLWRlcGVuZGVuY2llcykp CisKKyhkZWZpbmUgbWluZXRlc3QtPmd1aXgtcGFja2FnZQorICAobWVtb2l6ZSAlbWluZXRlc3Qt Pmd1aXgtcGFja2FnZSkpCisKKyhkZWZpbmUqIChtaW5ldGVzdC1yZWN1cnNpdmUtaW1wb3J0IGF1 dGhvci9uYW1lICM6a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgKGRlZmluZSogKG1p bmV0ZXN0LT5ndWl4LXBhY2thZ2UqIGF1dGhvci9uYW1lICM6a2V5IHJlcG8gdmVyc2lvbikKKyAg ICAobWluZXRlc3QtPmd1aXgtcGFja2FnZSBhdXRob3IvbmFtZSAjOnNvcnQgc29ydCkpCisgIChy ZWN1cnNpdmUtaW1wb3J0IGF1dGhvci9uYW1lCisgICAgICAgICAgICAgICAgICAgICM6cmVwby0+ Z3VpeC1wYWNrYWdlIG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UqCisgICAgICAgICAgICAgICAgICAg ICM6Z3VpeC1uYW1lIGNvbnRlbnRkYi0+cGFja2FnZS1uYW1lKSkKZGlmZiAtLWdpdCBhL2d1aXgv c2NyaXB0cy9pbXBvcnQuc2NtIGIvZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KaW5kZXggZjUzZDFh YzFmNC4uYjM2OWEzNjJkMCAxMDA2NDQKLS0tIGEvZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KKysr IGIvZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KQEAgLTc3LDcgKzc3LDggQEAgcmF0aGVyIHRoYW4g XFxuLiIKIDs7OwogCiAoZGVmaW5lIGltcG9ydGVycyAnKCJnbnUiICJweXBpIiAiY3BhbiIgImhh Y2thZ2UiICJzdGFja2FnZSIgImVnZyIgImVscGEiCi0gICAgICAgICAgICAgICAgICAgICJnZW0i ICJnbyIgImNyYW4iICJjcmF0ZSIgInRleGxpdmUiICJqc29uIiAib3BhbSIpKQorICAgICAgICAg ICAgICAgICAgICAiZ2VtIiAiZ28iICJjcmFuIiAiY3JhdGUiICJ0ZXhsaXZlIiAianNvbiIgIm9w YW0iCisgICAgICAgICAgICAgICAgICAgICJtaW5ldGVzdCIpKQogCiAoZGVmaW5lIChyZXNvbHZl LWltcG9ydGVyIG5hbWUpCiAgIChsZXQgKChtb2R1bGUgKHJlc29sdmUtaW50ZXJmYWNlCmRpZmYg LS1naXQgYS9ndWl4L3NjcmlwdHMvaW1wb3J0L21pbmV0ZXN0LnNjbSBiL2d1aXgvc2NyaXB0cy9p bXBvcnQvbWluZXRlc3Quc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjVmMjA0ZDkwZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L3NjcmlwdHMvaW1wb3J0L21pbmV0 ZXN0LnNjbQpAQCAtMCwwICsxLDExNyBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBh Y2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMTQgRGF2aWQgVGhv bXBzb24gPGRhdmV0QGdudS5vcmc+Cis7OzsgQ29weXJpZ2h0IMKpIDIwMTggUmljYXJkbyBXdXJt dXMgPHJla2Fkb0BlbGVwaGx5Lm5ldD4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2 b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdO VSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws IGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3Vp eC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmlu ZS1tb2R1bGUgKGd1aXggc2NyaXB0cyBpbXBvcnQgbWluZXRlc3QpCisgICM6dXNlLW1vZHVsZSAo Z3VpeCB1aSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAjOnVzZS1tb2R1bGUgKGd1 aXggc2NyaXB0cykKKyAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCBtaW5ldGVzdCkKKyAgIzp1 c2UtbW9kdWxlIChndWl4IGltcG9ydCB1dGlscykKKyAgIzp1c2UtbW9kdWxlIChndWl4IHNjcmlw dHMgaW1wb3J0KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVzZS1tb2R1bGUg KHNyZmkgc3JmaS0xMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMzcpCisgICM6dXNlLW1v ZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOmV4 cG9ydCAoZ3VpeC1pbXBvcnQtbWluZXRlc3QpKQorCisMCis7OzsKKzs7OyBDb21tYW5kLWxpbmUg b3B0aW9ucy4KKzs7OworCisoZGVmaW5lICVkZWZhdWx0LW9wdGlvbnMKKyAgYCgoc29ydCAuICwl ZGVmYXVsdC1zb3J0LWtleSkpKQorCisoZGVmaW5lIChzaG93LWhlbHApCisgIChkaXNwbGF5IChH XyAiVXNhZ2U6IGd1aXggaW1wb3J0IG1pbmV0ZXN0IEFVVEhPUi9OQU1FCitJbXBvcnQgYW5kIGNv bnZlcnQgdGhlIE1pbmV0ZXN0IG1vZCBOQU1FIGJ5IEFVVEhPUiBmcm9tIENvbnRlbnREQi5cbiIp KQorICAoZGlzcGxheSAoR18gIgorICAtaCwgLS1oZWxwICAgICAgICAgICAgIGRpc3BsYXkgdGhp cyBoZWxwIGFuZCBleGl0IikpCisgIChkaXNwbGF5IChHXyAiCisgIC1yLCAtLXJlY3Vyc2l2ZSAg ICAgICAgaW1wb3J0IHBhY2thZ2VzIHJlY3Vyc2l2ZWx5IikpCisgIChkaXNwbGF5IChHXyAiCisg IC1WLCAtLXZlcnNpb24gICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBl eGl0IikpCisgIChkaXNwbGF5IChHXyAiCisgICAgICAtLXNvcnQ9S0VZICAgICAgICAgd2hlbiBj aG9vc2luZyBiZXR3ZWVuIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucywKKyAgICAgICAgICAgICAg ICAgICAgICAgICBjaG9vc2UgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHZhbHVlIGZvciBLRVkK KyAgICAgICAgICAgICAgICAgICAgICAgICAob25lIG9mIFwic2NvcmVcIiAoc3RhbmRhcmQpIG9y IFwiZG93bmxvYWRzXCIpIikpCisgIChuZXdsaW5lKQorICAoc2hvdy1idWctcmVwb3J0LWluZm9y bWF0aW9uKSkKKworKGRlZmluZSAodmVyaWZ5LXNvcnQtb3JkZXIgc29ydCkKKyAgIlZlcmlmeSBT T1JUIGNhbiBiZSB1c2VkIHRvIHNvcnQgbW9kcyBieS4iCisgICh1bmxlc3MgKG1lbWJlciBzb3J0 ICcoInNjb3JlIiAiZG93bmxvYWRzIiAicmV2aWV3cyIpKQorICAgIChsZWF2ZSAoR18gIn5hOiBu b3QgYSB2YWxpZCBrZXkgdG8gc29ydCBieX4lIikgc29ydCkpCisgIHNvcnQpCisKKyhkZWZpbmUg JW9wdGlvbnMKKyAgOzsgU3BlY2lmaWNhdGlvbiBvZiB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMu CisgIChjb25zKiAob3B0aW9uICcoI1xoICJoZWxwIikgI2YgI2YKKyAgICAgICAgICAgICAgICAg KGxhbWJkYSBhcmdzCisgICAgICAgICAgICAgICAgICAgKHNob3ctaGVscCkKKyAgICAgICAgICAg ICAgICAgICAoZXhpdCAwKSkpCisgICAgICAgICAob3B0aW9uICcoI1xWICJ2ZXJzaW9uIikgI2Yg I2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSBhcmdzCisgICAgICAgICAgICAgICAgICAgKHNo b3ctdmVyc2lvbi1hbmQtZXhpdCAiZ3VpeCBpbXBvcnQgbWluZXRlc3QiKSkpCisgICAgICAgICAo b3B0aW9uICcoI1xyICJyZWN1cnNpdmUiKSAjZiAjZgorICAgICAgICAgICAgICAgICAobGFtYmRh IChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAgICAgIChhbGlzdC1jb25zICdy ZWN1cnNpdmUgI3QgcmVzdWx0KSkpCisgICAgICAgICAob3B0aW9uICcoInNvcnQiKSAjdCAjZgor ICAgICAgICAgICAgICAgICAobGFtYmRhIChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAgICAgICAg ICAgICAgICAgIChhbGlzdC1jb25zICdzb3J0ICh2ZXJpZnktc29ydC1vcmRlciBhcmcpIHJlc3Vs dCkpKQorICAgICAgICAgJXN0YW5kYXJkLWltcG9ydC1vcHRpb25zKSkKKworDAorOzs7Cis7Ozsg RW50cnkgcG9pbnQuCis7OzsKKworKGRlZmluZSAoZ3VpeC1pbXBvcnQtbWluZXRlc3QgLiBhcmdz KQorICAoZGVmaW5lIChwYXJzZS1vcHRpb25zKQorICAgIDs7IFJldHVybiB0aGUgYWxpc3Qgb2Yg b3B0aW9uIHZhbHVlcy4KKyAgICAoYXJncy1mb2xkKiBhcmdzICVvcHRpb25zCisgICAgICAgICAg ICAgICAgKGxhbWJkYSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgIChs ZWF2ZSAoR18gIn5BOiB1bnJlY29nbml6ZWQgb3B0aW9ufiUiKSBuYW1lKSkKKyAgICAgICAgICAg ICAgICAobGFtYmRhIChhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAgICAgKGFsaXN0LWNvbnMg J2FyZ3VtZW50IGFyZyByZXN1bHQpKQorICAgICAgICAgICAgICAgICVkZWZhdWx0LW9wdGlvbnMp KQorCisgIChsZXQqICgob3B0cyAocGFyc2Utb3B0aW9ucykpCisgICAgICAgICAoYXJncyAoZmls dGVyLW1hcCAobWF0Y2gtbGFtYmRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgnYXJn dW1lbnQgLiB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKF8gI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHJldmVyc2Ugb3B0cykpKSkKKyAgICAobWF0Y2ggYXJncworICAgICAgKChuYW1lKQorICAg ICAgICh3aXRoLWVycm9yLWhhbmRsaW5nCisgICAgICAgICAobGV0KiAoKHNvcnQgKGFzc29jLXJl ZiBvcHRzICdzb3J0KSkKKyAgICAgICAgICAgICAgICAoYXV0aG9yL25hbWUgKGVsYWJvcmF0ZS1j b250ZW50ZGItbmFtZSBuYW1lICM6c29ydCBzb3J0KSkpCisgICAgICAgICAgIChpZiAoYXNzb2Mt cmVmIG9wdHMgJ3JlY3Vyc2l2ZSkKKyAgICAgICAgICAgICAgIDs7IFJlY3Vyc2l2ZSBpbXBvcnQK KyAgICAgICAgICAgICAgIChmaWx0ZXItbWFwIHBhY2thZ2UtPmRlZmluaXRpb24KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtaW5ldGVzdC1yZWN1cnNpdmUtaW1wb3J0IGF1dGhvci9uYW1l ICM6c29ydCBzb3J0KSkKKyAgICAgICAgICAgICAgIDs7IFNpbmdsZSBpbXBvcnQKKyAgICAgICAg ICAgICAgIChtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlIGF1dGhvci9uYW1lICM6c29ydCBzb3J0KSkp KSkKKyAgICAgICgoKQorICAgICAgIChsZWF2ZSAoR18gInRvbyBmZXcgYXJndW1lbnRzfiUiKSkp CisgICAgICAoKG1hbnkgLi4uKQorICAgICAgIChsZWF2ZSAoR18gInRvbyBtYW55IGFyZ3VtZW50 c34lIikpKSkpKQpkaWZmIC0tZ2l0IGEvcG8vZ3VpeC9QT1RGSUxFUy5pbiBiL3BvL2d1aXgvUE9U RklMRVMuaW4KaW5kZXggYTNiY2VkMWE4Zi4uZjI1YTdiNDgwMiAxMDA2NDQKLS0tIGEvcG8vZ3Vp eC9QT1RGSUxFUy5pbgorKysgYi9wby9ndWl4L1BPVEZJTEVTLmluCkBAIC02MCw2ICs2MCw3IEBA IGd1aXgvc2NyaXB0cy9naXQuc2NtCiBndWl4L3NjcmlwdHMvZ2l0L2F1dGhlbnRpY2F0ZS5zY20K IGd1aXgvc2NyaXB0cy9oYXNoLnNjbQogZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KK2d1aXgvc2Ny aXB0cy9pbXBvcnQvY29udGVudGRiLnNjbQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9jcmFuLnNjbQog Z3VpeC9zY3JpcHRzL2ltcG9ydC9lbHBhLnNjbQogZ3VpeC9zY3JpcHRzL3B1bGwuc2NtCmRpZmYg LS1naXQgYS90ZXN0cy9taW5ldGVzdC5zY20gYi90ZXN0cy9taW5ldGVzdC5zY20KbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNmFlNDc2ZmU1ZgotLS0gL2Rldi9udWxsCisr KyBiL3Rlc3RzL21pbmV0ZXN0LnNjbQpAQCAtMCwwICsxLDM1NSBAQAorOzs7IEdOVSBHdWl4IC0t LSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKp IDIwMjEgTWF4aW1lIERldm9zIDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgorOzs7Cis7OzsgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cis7OzsgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzs7IGFs b25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LW1pbmV0ZXN0KQorICAjOnVzZS1tb2R1bGUg KGd1aXggbWVtb2l6YXRpb24pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgbWluZXRlc3Qp CisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAoZ3Vp eCB0ZXN0cykKKyAgIzp1c2UtbW9kdWxlIChqc29uKQorICAjOnVzZS1tb2R1bGUgKGljZS05IG1h dGNoKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVzZS1tb2R1bGUgKHNyZmkg c3JmaS0yNikKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMzQpCisgICM6dXNlLW1vZHVsZSAo c3JmaSBzcmZpLTY0KSkKKworDAorOzsgU29tZSBwcm9jZWR1cmVzIGZvciBwb3B1bGF0aW5nIGEg 4oCYZmFrZeKAmSBDb250ZW50REIgc2VydmVyLgorCisoZGVmaW5lKiAobWFrZS1wYWNrYWdlLXNl eHAgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpeC1uYW1lICJtaW5ldGVz dC1mb28iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChob21lLXBhZ2UgImh0dHBzOi8v ZXhhbXBsZS5vcmcvZm9vIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbyAiaHR0 cHM6Ly9leGFtcGxlLm9yZy9mb28uZ2l0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c3lub3BzaXMgInN5bm9wc2lzIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpeC1k ZXNjcmlwdGlvbiAiZGVzY3JpcHRpb24iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn dWl4LWxpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhsaXN0IGxpY2Vuc2U6 Y2MtYnktc2E0LjAgbGljZW5zZTpsZ3BsMyspKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpbnB1dHMgJygpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1cHN0cmVhbS1uYW1l ICJBdXRob3IvZm9vIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVy LWtleXMpCisgIGAocGFja2FnZQorICAgICAobmFtZSAsZ3VpeC1uYW1lKQorICAgICA7OyBUaGlz IGlzIG5vdCBhIHByb3BlciB2ZXJzaW9uIG51bWJlciBidXQgQ29udGVudERCIGRvZXMgbm90IGlu Y2x1ZGUKKyAgICAgOzsgdmVyc2lvbiBudW1iZXJzLgorICAgICAodmVyc2lvbiAiMjAyMS0wNy0y NSIpCisgICAgIChzb3VyY2UKKyAgICAgIChvcmlnaW4KKyAgICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgKHVybCAsKGFu ZCAobm90IChlcT8gcmVwbyAnbnVsbCkpIHJlcG8pKQorICAgICAgICAgICAgICAoY29tbWl0ICNm KSkpCisgICAgICAgIChzaGEyNTYKKyAgICAgICAgIChiYXNlMzIgI2YpKQorICAgICAgICAoZmls ZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAgKGJ1aWxkLXN5c3Rl bSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgICAsQChtYXliZS1wcm9wYWdhdGVkLWlu cHV0cyBpbnB1dHMpCisgICAgIChob21lLXBhZ2UgLGhvbWUtcGFnZSkKKyAgICAgKHN5bm9wc2lz ICxzeW5vcHNpcykKKyAgICAgKGRlc2NyaXB0aW9uICxndWl4LWRlc2NyaXB0aW9uKQorICAgICAo bGljZW5zZSAsZ3VpeC1saWNlbnNlKQorICAgICAocHJvcGVydGllcworICAgICAgLChsaXN0ICdx dWFzaXF1b3RlCisgICAgICAgICAgICAgYCgodXBzdHJlYW0tbmFtZSAuICx1cHN0cmVhbS1uYW1l KSkpKSkpCisKKyhkZWZpbmUqIChtYWtlLXBhY2thZ2UtanNvbiAjOmtleQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChhdXRob3IgIkF1dGhvciIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG5hbWUgImZvbyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lZGlhLWxp Y2Vuc2UgIkNDLUJZLVNBLTQuMCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpY2Vu c2UgIkxHUEwtMy4wLW9yLWxhdGVyIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hv cnQtZGVzY3JpcHRpb24gInN5bm9wc2lzIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bG9uZy1kZXNjcmlwdGlvbiAiZGVzY3JpcHRpb24iKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChyZXBvICJodHRwczovL2V4YW1wbGUub3JnL2Zvby5naXQiKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3ZWJzaXRlICJodHRwczovL2V4YW1wbGUub3JnL2ZvbyIpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGZvcnVtcyAzMjEpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNjb3JlIDk4Ny42NTQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvd25s b2FkcyAxMjMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUgIm1vZCIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICBgKCgiYXV0aG9y IiAuICxhdXRob3IpCisgICAgKCJjb250ZW50X3dhcm5pbmdzIiAuICMoKSkKKyAgICAoImNyZWF0 ZWRfYXQiIC4gIjIwMTgtMDUtMjNUMTk6NTg6MDcuNDIyMTA4IikKKyAgICAoImRvd25sb2FkcyIg LiAsZG93bmxvYWRzKQorICAgICgiZm9ydW1zIiAuICxmb3J1bXMpCisgICAgKCJpc3N1ZV90cmFj a2VyIiAuICJodHRwczovL2V4YW1wbGUub3JnL2Zvby9pc3N1ZXMiKQorICAgICgibGljZW5zZSIg LiAsbGljZW5zZSkKKyAgICAoImxvbmdfZGVzY3JpcHRpb24iIC4gLGxvbmctZGVzY3JpcHRpb24p CisgICAgKCJtYWludGFpbmVycyIgLiAjKCJtYWludGFpbmVyIikpCisgICAgKCJtZWRpYV9saWNl bnNlIiAuICxtZWRpYS1saWNlbnNlKQorICAgICgibmFtZSIgLiAsbmFtZSkKKyAgICAoInByb3Zp ZGVzIiAuICMoInN0dWZmIikpCisgICAgKCJyZWxlYXNlIiAuIDQ1NikKKyAgICAoInJlcG8iIC4g LHJlcG8pCisgICAgKCJzY29yZSIgLiAsc2NvcmUpCisgICAgKCJzY3JlZW5zaG90cyIgLiAjKCkp CisgICAgKCJzaG9ydF9kZXNjcmlwdGlvbiIgLiAsc2hvcnQtZGVzY3JpcHRpb24pCisgICAgKCJz dGF0ZSIgLiAiQVBQUk9WRUQiKQorICAgICgidGFncyIgLiAjKCJzb21lIiAidGFncyIpKQorICAg ICgidGh1bWJuYWlsIiAuIG51bGwpCisgICAgKCJ0aXRsZSIgLiAiVGhlIG5hbWUiKQorICAgICgi dHlwZSIgLiAsdHlwZSkKKyAgICAoInVybCIgLiAsKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vY29u dGVudC5taW5ldGVzdC5uZXQvcGFja2FnZXMvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhdXRob3IgIi8iIG5hbWUgIi9kb3dubG9hZC8iKSkKKyAgICAoIndlYnNpdGUiIC4gLHdlYnNp dGUpKSkKKworKGRlZmluZSogKG1ha2UtcmVsZWFzZXMtanNvbiAjOmtleSAoY29tbWl0ICNmKSAo dGl0bGUgIiIpICM6YWxsb3ctb3RoZXIta2V5cykKKyAgYCMoKCgiY29tbWl0IiAuICxjb21taXQp CisgICAgICAoImRvd25sb2FkcyIgLiA0NjkpCisgICAgICAoImlkIiAuIDg2MTQpCisgICAgICAo Im1heF9taW5ldGVzdF92ZXJzaW9uIiAuIG51bGwpCisgICAgICAoIm1pbl9taW5ldGVzdF92ZXJz aW9uIiAuIG51bGwpCisgICAgICAoInJlbGVhc2VfZGF0ZSIgLiAiMjAyMS0wNy0yNVQwMToxMDoy My4yMDc1ODQiKQorICAgICAgKCJ0aXRsZSIgLiAiMjAyMS0wNy0yNSIpKSkpCisKKyhkZWZpbmUq IChtYWtlLWRlcGVuZGVuY2llcy1qc29uICM6a2V5IChhdXRob3IgIkF1dGhvciIpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSAiZm9vIikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChyZXF1aXJlbWVudHMgJygoImRlZmF1bHQiICNmICgpKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisgIGAoKCwo c3RyaW5nLWFwcGVuZCBhdXRob3IgIi8iIG5hbWUpCisgICAgIC4gLChsaXN0LT52ZWN0b3IKKyAg ICAgICAgIChtYXAgKG1hdGNoLWxhbWJkYQorICAgICAgICAgICAgICAgICgoc3ltYm9saWMtbmFt ZSBvcHRpb25hbD8gaW1wbGVtZW50YXRpb25zKQorICAgICAgICAgICAgICAgICBgKCgiaXNfb3B0 aW9uYWwiIC4gLG9wdGlvbmFsPykKKyAgICAgICAgICAgICAgICAgICAoIm5hbWUiIC4gLHN5bWJv bGljLW5hbWUpCisgICAgICAgICAgICAgICAgICAgKCJwYWNrYWdlcyIgLiAsKGxpc3QtPnZlY3Rv ciBpbXBsZW1lbnRhdGlvbnMpKSkpKQorICAgICAgICAgICAgICByZXF1aXJlbWVudHMpKSkKKyAg ICAoInNvbWV0aGluZy9lbHNlIiAuICMoKSkpKQorCisoZGVmaW5lKiAobWFrZS1wYWNrYWdlcy1r ZXlzLWpzb24gIzprZXkgKGF1dGhvciAiQXV0aG9yIikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobmFtZSAiTmFtZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHR5cGUgIm1vZCIpKQorICBgKCgiYXV0aG9yIiAuICxhdXRob3IpCisgICAgKCJuYW1lIiAu ICxuYW1lKQorICAgICgidHlwZSIgLiAsdHlwZSkpKQorCisoZGVmaW5lIChjYWxsLXdpdGgtcGFj a2FnZXMgdGh1bmsgLiBhcmd1bWVudC1saXN0cykKKyAgOzsgRG9uJ3QgcmV1c2UgcmVzdWx0cyBm cm9tIHByZXZpb3VzIHRlc3RzLgorICAoaW52YWxpZGF0ZS1tZW1vaXphdGlvbiEgY29udGVudGRi LWZldGNoKQorICAoaW52YWxpZGF0ZS1tZW1vaXphdGlvbiEgbWluZXRlc3QtPmd1aXgtcGFja2Fn ZSkKKyAgKGRlZmluZSAoc2NtLT5qc29uLXBvcnQgc2NtKQorICAgIChvcGVuLWlucHV0LXN0cmlu ZyAoc2NtLT5qc29uLXN0cmluZyBzY20pKSkKKyAgKGRlZmluZSAoaGFuZGxlLXBhY2thZ2UgdXJs IHJlcXVlc3RlZC1hdXRob3IgcmVxdWVzdGVkLW5hbWUgLiByZXN0KQorICAgIChkZWZpbmUgcmVs ZXZhbnQtYXJndW1lbnQtbGlzdAorICAgICAgKGFueSAobGFtYmRhIChhcmd1bWVudC1saXN0KQor ICAgICAgICAgICAgIChhcHBseSAobGFtYmRhKiAoIzprZXkgKGF1dGhvciAiQXV0aG9yIikgKG5h bWUgImZvbyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtl eXMpCisgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZXF1YWw/IHJlcXVlc3RlZC1hdXRob3Ig YXV0aG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsPyByZXF1ZXN0ZWQtbmFt ZSBuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQtbGlzdCkpCisgICAg ICAgICAgICAgICAgICAgIGFyZ3VtZW50LWxpc3QpKQorICAgICAgICAgICBhcmd1bWVudC1saXN0 cykpCisgICAgKHdoZW4gKG5vdCByZWxldmFudC1hcmd1bWVudC1saXN0KQorICAgICAgKGVycm9y ICJ0aGUgcGFja2FnZSB+YS9+YSBzaG91bGQgYmUgaXJyZWxldmFudCwgYnV0IH5hIGlzIGZldGNo ZWQiCisgICAgICAgICAgICAgcmVxdWVzdGVkLWF1dGhvciByZXF1ZXN0ZWQtbmFtZSB1cmwpKQor ICAgIChzY20tPmpzb24tcG9ydAorICAgICAoYXBwbHkgKG1hdGNoIHJlc3QKKyAgICAgICAgICAg ICAgKCgiIikgbWFrZS1wYWNrYWdlLWpzb24pCisgICAgICAgICAgICAgICgoImRlcGVuZGVuY2ll cyIgIiIpIG1ha2UtZGVwZW5kZW5jaWVzLWpzb24pCisgICAgICAgICAgICAgICgoInJlbGVhc2Vz IiAiIikgbWFrZS1yZWxlYXNlcy1qc29uKQorICAgICAgICAgICAgICAoXyAoZXJyb3IgIlRPRE8g fmEiIHJlc3QpKSkKKyAgICAgICAgICAgIHJlbGV2YW50LWFyZ3VtZW50LWxpc3QpKSkKKyAgKGRl ZmluZSAoaGFuZGxlLW1vZC1zZWFyY2ggc29ydCkKKyAgICA7OyBQcm9kdWNlIHNlYXJjaCByZXN1 bHRzLCBzb3J0ZWQgYnkgU09SVCBpbiBkZXNjZW5kaW5nIG9yZGVyLgorICAgIChkZWZpbmUgYXJn dW1lbnRzLT5rZXkKKyAgICAgIChtYXRjaCBzb3J0CisgICAgICAgICgic2NvcmUiIChsYW1iZGEq ICgjOmtleSAoc2NvcmUgOTg3LjY1NCkgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAg ICAgICAgIHNjb3JlKSkKKyAgICAgICAgKCJkb3dubG9hZHMiIChsYW1iZGEqICgjOmtleSAoZG93 bmxvYWRzIDEyMykgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgICAgICAgICBk b3dubG9hZHMpKSkpCisgICAgKGRlZmluZSBhcmd1bWVudC1saXN0LT5rZXkgKGN1dCBhcHBseSBh cmd1bWVudHMtPmtleSA8PikpCisgICAgKGRlZmluZSAoZ3JlYXRlciB4IHkpCisgICAgICAoPiAo YXJndW1lbnQtbGlzdC0+a2V5IHgpIChhcmd1bWVudC1saXN0LT5rZXkgeSkpKQorICAgIChkZWZp bmUgc29ydGVkLWFyZ3VtZW50LWxpc3RzIChzb3J0LWxpc3QgYXJndW1lbnQtbGlzdHMgZ3JlYXRl cikpCisgICAgKGRlZmluZSogKGFyZ3VtZW50cy0+anNvbiAjOmtleSAoYXV0aG9yICJBdXRob3Ii KSAobmFtZSAiRm9vIikgKHR5cGUgIm1vZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAoYW5kIChzdHJpbmc9PyB0eXBlICJtb2QiKQor ICAgICAgICAgICBgKCgiYXV0aG9yIiAuICxhdXRob3IpCisgICAgICAgICAgICAgKCJuYW1lIiAu ICxuYW1lKQorICAgICAgICAgICAgICgidHlwZSIgLiAsdHlwZSkpKSkKKyAgICAoZGVmaW5lIGFy Z3VtZW50LWxpc3QtPmpzb24gKGN1dCBhcHBseSBhcmd1bWVudHMtPmpzb24gPD4pKQorICAgIChz Y20tPmpzb24tcG9ydAorICAgICAobGlzdC0+dmVjdG9yIChmaWx0ZXItbWFwIGFyZ3VtZW50LWxp c3QtPmpzb24gc29ydGVkLWFyZ3VtZW50LWxpc3RzKSkpKQorICAobW9jayAoKGd1aXggaHR0cC1j bGllbnQpIGh0dHAtZmV0Y2gKKyAgICAgICAgIChsYW1iZGEqICh1cmwgIzprZXkgaGVhZGVycykK KyAgICAgICAgICAgKHVubGVzcyAoc3RyaW5nLXByZWZpeD8gIm1vY2s6Ly9hcGkvcGFja2FnZXMv IiB1cmwpCisgICAgICAgICAgICAgKGVycm9yICJ0aGUgVVJMIH5hIHNob3VsZCBub3QgYmUgdXNl ZCIgdXJsKSkKKyAgICAgICAgICAgKGRlZmluZSByZXNvdXJjZQorICAgICAgICAgICAgIChzdWJz dHJpbmcgdXJsIChzdHJpbmctbGVuZ3RoICJtb2NrOi8vYXBpL3BhY2thZ2VzLyIpKSkKKyAgICAg ICAgICAgKGRlZmluZSBjb21wb25lbnRzIChzdHJpbmctc3BsaXQgcmVzb3VyY2UgI1wvKSkKKyAg ICAgICAgICAgKG1hdGNoIGNvbXBvbmVudHMKKyAgICAgICAgICAgICAoKGF1dGhvciBuYW1lIC4g cmVzdCkKKyAgICAgICAgICAgICAgKGFwcGx5IGhhbmRsZS1wYWNrYWdlIHVybCBhdXRob3IgbmFt ZSByZXN0KSkKKyAgICAgICAgICAgICAoKCg/IChjdXQgc3RyaW5nLXByZWZpeD8gIj90eXBlPW1v ZCZxPSIgPD4pIHF1ZXJ5KSkKKyAgICAgICAgICAgICAgKGhhbmRsZS1tb2Qtc2VhcmNoCisgICAg ICAgICAgICAgICAoY29uZCAoKHN0cmluZy1jb250YWlucyBxdWVyeSAic29ydD1zY29yZSIpICJz Y29yZSIpCisgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1jb250YWlucyBxdWVyeSAic29y dD1kb3dubG9hZHMiKSAiZG93bmxvYWRzIikKKyAgICAgICAgICAgICAgICAgICAgICgjdCAoZXJy b3IgInNlYXJjaCBxdWVyeSB+YSBoYXMgdW5rbm93biBzb3J0IGtleSIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcXVlcnkpKSkpKQorICAgICAgICAgICAgIChfCisgICAgICAgICAg ICAgIChlcnJvciAidGhlIFVSTCB+YSBzaG91bGQgaGF2ZSBhbiBhdXRob3IgYW5kIG5hbWUgY29t cG9uZW50IgorICAgICAgICAgICAgICAgICAgICAgdXJsKSkpKSkKKyAgICAgICAgKHBhcmFtZXRl cml6ZSAoKCVjb250ZW50ZGItYXBpICJtb2NrOi8vYXBpLyIpKQorICAgICAgICAgICh0aHVuaykp KSkKKworKGRlZmluZSogKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UqICM6a2V5IChhdXRob3IgIkF1 dGhvciIpIChuYW1lICJmb28iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz b3J0ICVkZWZhdWx0LXNvcnQta2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICM6YWxsb3ctb3RoZXIta2V5cykKKyAgKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UgKHN0cmluZy1h cHBlbmQgYXV0aG9yICIvIiBuYW1lKSAjOnNvcnQgc29ydCkpCisKKyhkZWZpbmUgKGltcG9ydGVk LXBhY2thZ2Utc2V4cCogcHJpbWFyeS1hcmd1bWVudHMgLiBzZWNvbmRhcnktYXJndW1lbnRzKQor ICAiQXNrIHRoZSBpbXBvcnRlciB0byBpbXBvcnQgYSBwYWNrYWdlIHNwZWNpZmllZCBieSBQUklN QVJZLUFSR1VNRU5UUywKK2R1cmluZyBhIGR5bmFtaWMgd2hlcmUgdGhhdCBwYWNrYWdlIGFuZCB0 aGUgcGFja2FnZXMgc3BlY2lmaWVkIGJ5CitTRUNPTkRBUlktQVJHVU1FTlRTIGFyZSBhdmFpbGFi bGUgb24gQ29udGVudERCLiIKKyAgKGFwcGx5IGNhbGwtd2l0aC1wYWNrYWdlcworICAgICAgICAg KGxhbWJkYSAoKQorICAgICAgICAgICA7OyBUaGUgbWVtb2l6YXRpb24gY2FjaGUgaXMgcmVzZXQg YnkgY2FsbC13aXRoLXBhY2thZ2VzCisgICAgICAgICAgIChhcHBseSBtaW5ldGVzdC0+Z3VpeC1w YWNrYWdlKiBwcmltYXJ5LWFyZ3VtZW50cykpCisgICBwcmltYXJ5LWFyZ3VtZW50cworICAgc2Vj b25kYXJ5LWFyZ3VtZW50cykpCisKKyhkZWZpbmUgKGltcG9ydGVkLXBhY2thZ2Utc2V4cCAuIGV4 dHJhLWFyZ3VtZW50cykKKyAgIkFzayB0aGUgaW1wb3J0ZXIgdG8gaW1wb3J0IGEgcGFja2FnZSBz cGVjaWZpZWQgYnkgRVhUUkEtQVJHVU1FTlRTLAorZHVyaW5nIGEgZHluYW1pYyBleHRlbnQgd2hl cmUgdGhhdCBwYWNrYWdlIGlzIGF2YWlsYWJsZSBvbiBDb250ZW50REIuIgorICAoaW1wb3J0ZWQt cGFja2FnZS1zZXhwKiBleHRyYS1hcmd1bWVudHMpKQorCisoZGVmaW5lLXN5bnRheC1ydWxlICh0 ZXN0LXBhY2thZ2UgdGVzdC1jYXNlIC4gZXh0cmEtYXJndW1lbnRzKQorICAodGVzdC1lcXVhbCB0 ZXN0LWNhc2UKKyAgICAobWFrZS1wYWNrYWdlLXNleHAgLiBleHRyYS1hcmd1bWVudHMpCisgICAg KGltcG9ydGVkLXBhY2thZ2Utc2V4cCAuIGV4dHJhLWFyZ3VtZW50cykpKQorCisoZGVmaW5lLXN5 bnRheC1ydWxlICh0ZXN0LXBhY2thZ2UqIHRlc3QtY2FzZSBwcmltYXJ5LWFyZ3VtZW50cyBleHRy YS1hcmd1bWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKQorICAo dGVzdC1lcXVhbCB0ZXN0LWNhc2UKKyAgICAoYXBwbHkgbWFrZS1wYWNrYWdlLXNleHAgcHJpbWFy eS1hcmd1bWVudHMpCisgICAgKGltcG9ydGVkLXBhY2thZ2Utc2V4cCogcHJpbWFyeS1hcmd1bWVu dHMgZXh0cmEtYXJndW1lbnRzIC4uLikpKQorCisodGVzdC1iZWdpbiAibWluZXRlc3QiKQorCisM Cis7OyBQYWNrYWdlIG5hbWVzCisodGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdl IikKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIF8g4oaSIC0gaW4gcGFj a2FnZSBuYW1lIgorICAgICAgICAgICAgICAjOm5hbWUgImZvb19iYXIiCisgICAgICAgICAgICAg ICM6Z3VpeC1uYW1lICJtaW5ldGVzdC1mb28tYmFyIgorICAgICAgICAgICAgICAjOnVwc3RyZWFt LW5hbWUgIkF1dGhvci9mb29fYmFyIikKKworKHRlc3QtZXF1YWwgImVsYWJvcmF0ZSBuYW1lcywg dW5hbWJpZ2lvdXMiCisgICJKZWlqYS9tZXNlY29ucyIKKyAgKGNhbGwtd2l0aC1wYWNrYWdlcwor ICAgKGN1dCBlbGFib3JhdGUtY29udGVudGRiLW5hbWUgIm1lc2Vjb25zIikKKyAgICcoIzpuYW1l ICJtZXNlY29ucyIgIzphdXRob3IgIkplaWphIikKKyAgICcoIzpuYW1lICJzb21ldGhpbmciICM6 YXV0aG9yICJlbHNlIikpKQorCisodGVzdC1lcXVhbCAiZWxhYm9yYXRlIG5hbWUsIGFtYmlnaW91 cyAoaGlnaGVzdCBzY29yZSkiCisgICJKZWlqYS9tZXNlY29ucyIKKyAgKGNhbGwtd2l0aC1wYWNr YWdlcworICAgOzsgIzpzb3J0ICJzY29yZSIgaXMgdGhlIGRlZmF1bHQKKyAgIChjdXQgZWxhYm9y YXRlLWNvbnRlbnRkYi1uYW1lICJtZXNlY29ucyIpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6 YXV0aG9yICJKZWlqYyIgIzpzY29yZSA3NzcpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6YXV0 aG9yICJKZWlqYiIgIzpzY29yZSA4ODgpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6YXV0aG9y ICJKZWlqYSIgIzpzY29yZSA5OTkpKSkKKworCisodGVzdC1lcXVhbCAiZWxhYm9yYXRlIG5hbWUs IGFtYmlnaW91cyAobW9zdCBkb3dubG9hZHMpIgorICAiSmVpamEvbWVzZWNvbnMiCisgIChjYWxs LXdpdGgtcGFja2FnZXMKKyAgIChjdXQgZWxhYm9yYXRlLWNvbnRlbnRkYi1uYW1lICJtZXNlY29u cyIgIzpzb3J0ICJkb3dubG9hZHMiKQorICAgJygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1dGhvciAi SmVpamMiICM6ZG93bmxvYWRzIDc3NykKKyAgICcoIzpuYW1lICJtZXNlY29ucyIgIzphdXRob3Ig IkplaWpiIiAjOmRvd25sb2FkcyA4ODgpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6YXV0aG9y ICJKZWlqYSIgIzpkb3dubG9hZHMgOTk5KSkpCisKKwwKKzs7IERldGVybWluaW5nIHRoZSBob21l IHBhZ2UKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIHdlYnNpdGUgaXMg dXNlZCBhcyBob21lIHBhZ2UiCisgICAgICAgICAgICAgICM6aG9tZS1wYWdlICJ3ZWI6Ly9zaXRl IgorICAgICAgICAgICAgICAjOndlYnNpdGUgIndlYjovL3NpdGUiKQorKHRlc3QtcGFja2FnZSAi bWluZXRlc3QtPmd1aXgtcGFja2FnZSwgaWYgYWJzZW50LCB0aGUgZm9ydW0gaXMgdXNlZCIKKyAg ICAgICAgICAgICAgIzpob21lLXBhZ2UgJyhtaW5ldGVzdC10b3BpYyA2MjgpCisgICAgICAgICAg ICAgICM6Zm9ydW1zIDYyOAorICAgICAgICAgICAgICAjOndlYnNpdGUgJ251bGwpCisodGVzdC1w YWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBpZiBhYnNlbnQsIHRoZSBnaXQgcmVwbyBp cyB1c2VkIgorICAgICAgICAgICAgICAjOmhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL21p bmV0ZXN0LW1vZHMvbWVzZWNvbnMiCisgICAgICAgICAgICAgICM6Zm9ydW1zICdudWxsCisgICAg ICAgICAgICAgICM6d2Vic2l0ZSAnbnVsbAorICAgICAgICAgICAgICAjOnJlcG8gImh0dHBzOi8v Z2l0aHViLmNvbS9taW5ldGVzdC1tb2RzL21lc2Vjb25zIikKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0 ZXN0LT5ndWl4LXBhY2thZ2UsIGFsbCBob21lIHBhZ2UgaW5mb3JtYXRpb24gYWJzZW50IgorICAg ICAgICAgICAgICAjOmhvbWUtcGFnZSAjZgorICAgICAgICAgICAgICAjOmZvcnVtcyAnbnVsbAor ICAgICAgICAgICAgICAjOndlYnNpdGUgJ251bGwKKyAgICAgICAgICAgICAgIzpyZXBvICdudWxs KQorCisMCisKKzs7IERlcGVuZGVuY2llcworKHRlc3QtcGFja2FnZSogIm1pbmV0ZXN0LT5ndWl4 LXBhY2thZ2UsIHVuYW1iaWdpb3VzIGRlcGVuZGVuY3kiCisgIChsaXN0ICM6cmVxdWlyZW1lbnRz ICcoKCJtZXNlY29ucyIgI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJKZWlqYS9tZXNl Y29ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21lLW1vZHBhY2svY29udGFpbmlu Zy1tZXNlIikpKQorICAgICAgICAjOmlucHV0cyAnKCJtaW5ldGVzdC1tZXNlY29ucyIpKQorICAo bGlzdCAjOmF1dGhvciAiSmVpamEiICM6bmFtZSAibWVzZWNvbnMiKQorICAobGlzdCAjOmF1dGhv ciAic29tZS1tb2RwYWNrIiAjOm5hbWUgImNvbnRhaW5pbmctbWVzZSIgIzp0eXBlICJtb2RwYWNr IikpCisKKyh0ZXN0LXBhY2thZ2UqICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBhbWJpZ2lvdXMg ZGVwZW5kZW5jeSAoaGlnaGVzdCBzY29yZSkiCisgIChsaXN0ICM6bmFtZSAiZnJvYm5pY2F0ZSIK KyAgICAgICAgIzpndWl4LW5hbWUgIm1pbmV0ZXN0LWZyb2JuaWNhdGUiCisgICAgICAgICM6dXBz dHJlYW0tbmFtZSAiQXV0aG9yL2Zyb2JuaWNhdGUiCisgICAgICAgICM6cmVxdWlyZW1lbnRzICco KCJmcm9iIiAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAoIkF1dGhvci9mb28iICJBdXRo b3IvYmFyIikpKQorICAgICAgICA7OyAjOnNvcnQgInNjb3JlIiBpcyB0aGUgZGVmYXVsdAorICAg ICAgICAjOmlucHV0cyAnKCJtaW5ldGVzdC1iYXIiKSkKKyAgKGxpc3QgIzphdXRob3IgIkF1dGhv ciIgIzpuYW1lICJmb28iICM6c2NvcmUgMCkKKyAgKGxpc3QgIzphdXRob3IgIkF1dGhvciIgIzpu YW1lICJiYXIiICM6c2NvcmUgOTk5OSkpCisKKyh0ZXN0LXBhY2thZ2UqICJtaW5ldGVzdC0+Z3Vp eC1wYWNrYWdlLCBhbWJpZ2lvdXMgZGVwZW5kZW5jeSAobW9zdCBkb3dubG9hZHMpIgorICAobGlz dCAjOm5hbWUgImZyb2JuaWNhdGUiCisgICAgICAgICM6Z3VpeC1uYW1lICJtaW5ldGVzdC1mcm9i bmljYXRlIgorICAgICAgICAjOnVwc3RyZWFtLW5hbWUgIkF1dGhvci9mcm9ibmljYXRlIgorICAg ICAgICAjOnJlcXVpcmVtZW50cyAnKCgiZnJvYiIgI2YKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKCJBdXRob3IvZm9vIiAiQXV0aG9yL2JhciIpKSkKKyAgICAgICAgIzppbnB1dHMgJygibWlu ZXRlc3QtYmFyIikKKyAgICAgICAgIzpzb3J0ICJkb3dubG9hZHMiKQorICAobGlzdCAjOmF1dGhv ciAiQXV0aG9yIiAjOm5hbWUgImZvbyIgIzpkb3dubG9hZHMgMCkKKyAgKGxpc3QgIzphdXRob3Ig IkF1dGhvciIgIzpuYW1lICJiYXIiICM6ZG93bmxvYWRzIDk5OTkpKQorCisodGVzdC1wYWNrYWdl ICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBvcHRpb25hbCBkZXBlbmRlbmN5IgorICAgICAgICAg ICAgICAjOnJlcXVpcmVtZW50cyAnKCgibWVzZWNvbnMiICN0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgiSmVpamEvbWVzZWNvbnMiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAic29tZS1tb2RwYWNrL2NvbnRhaW5pbmctbWVzZSIpKSkKKyAgICAgICAgICAgICAg IzppbnB1dHMgJygpKQorCisMCis7OyBMaWNlbnNlCisodGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+ Z3VpeC1wYWNrYWdlLCBpZGVudGljYWwgbGljZW5zZXMiCisgICAgICAgICAgICAgICM6Z3VpeC1s aWNlbnNlICdsaWNlbnNlOmxncGwzKworICAgICAgICAgICAgICAjOmxpY2Vuc2UgIkxHUEwtMy4w LW9yLWxhdGVyIgorICAgICAgICAgICAgICAjOm1lZGlhLWxpY2Vuc2UgIkxHUEwtMy4wLW9yLWxh dGVyIikKKworOzsgU29ydGluZworKGxldCogKChtYWtlLXBhY2thZ2UKKyAgICAgICAgKGxhbWJk YSBhcmd1bWVudHMKKyAgICAgICAgICAoanNvbi0+cGFja2FnZSAoYXBwbHkgbWFrZS1wYWNrYWdl LWpzb24gYXJndW1lbnRzKSkpKQorICAgICAgICh4IChtYWtlLXBhY2thZ2UgIzpzY29yZSAwKSkK KyAgICAgICAoeSAobWFrZS1wYWNrYWdlICM6c2NvcmUgMSkpCisgICAgICAgKHogKG1ha2UtcGFj a2FnZSAjOnNjb3JlIDIpKSkKKyAgKHRlc3QtZXF1YWwgInNvcnQtcGFja2FnZXMsIGFscmVhZHkg c29ydGVkIgorICAgIChsaXN0IHogeSB4KQorICAgIChzb3J0LXBhY2thZ2VzIChsaXN0IHogeSB4 KSkpCisgICh0ZXN0LWVxdWFsICJzb3J0LXBhY2thZ2VzLCByZXZlcnNlIgorICAgIChsaXN0IHog eSB4KQorICAgIChzb3J0LXBhY2thZ2VzIChsaXN0IHggeSB6KSkpKQorCisodGVzdC1lbmQgIm1p bmV0ZXN0IikKLS0gCjIuMzIuMAoK --=-pOoEpqErlQ86NDgwYOoH-- --=-SnrmijhdF6L2D37MJZhV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRGJcxccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7tj+AP47AjnwF/YJKIyF8UwjSijeWoLy UgJMnWD1gOdJTtmW1gEAkTYIuELe4Sjp8txanA28UGwpIXzbSUI+PcWi2J+pHAc= =xaNN -----END PGP SIGNATURE----- --=-SnrmijhdF6L2D37MJZhV-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 16:04:10 2021 Received: (at 49828) by debbugs.gnu.org; 9 Aug 2021 20:04:10 +0000 Received: from localhost ([127.0.0.1]:57866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDBVG-0005Z9-Jg for submit@debbugs.gnu.org; Mon, 09 Aug 2021 16:04:10 -0400 Received: from albert.telenet-ops.be ([195.130.137.90]:34068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDBVB-0005Yg-U3 for 49828@debbugs.gnu.org; Mon, 09 Aug 2021 16:04:05 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by albert.telenet-ops.be with bizsmtp id fY402500M0mfAB406Y40lB; Mon, 09 Aug 2021 22:04:00 +0200 Message-ID: <0268533d28206bace4f6d4364a12c22f10e67f5e.camel@telenet.be> Subject: Re: [bug#49828] [PATCH 06/20] guix: Add ContentDB importer. (XXX Don't send yet) From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Mon, 09 Aug 2021 22:04:00 +0200 In-Reply-To: <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-FKCgE/G1/utaOA46ADjO" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628539440; bh=QiHMtPzaAUs496SFnvJWbFujFEY7Ehq0MFPUTPIE8Hc=; h=Subject:From:To:Date:In-Reply-To:References; b=h7Kglp2qevKAlHLLbCmJ4xxQ8WL1P9utg8Lw4UQHEFbhL8oXVT3t0+li3GWyKSxH1 P1TN7yDimZIfiOfQk12J1zrqdrUtwuvMG49mpn/iKbLgO+3kIwLS3xQLjL2vg7gzLc k8PFYJjbjzeKYjbKawX5FQo58xPZ+4w1wwz6QiPyDKW/qzoN76taJqHIOBrMFx0cnz wx1KiCQMS6+eAqiFZmOkeAcNv17LCmx8b9pMMeNWTIvjm72om2c6CUrguil6zl8Y+b 081j73F0QQEPmpLAoZSPOmamjCsx9x6UNhnCasqe7L7GofDCamWxAfDkt+jKo0pK1c KTuyLC3Or8jtA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 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.7 (-) --=-FKCgE/G1/utaOA46ADjO Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Don't mind the subject line, I actually meant to sent this but forgot to remove =E2=80=98XXX Don't send yet=E2=80=99. --=-FKCgE/G1/utaOA46ADjO Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRGKMBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7kMoAP94ECG4SvyHowxAznsvWzJpDyby OlGSmiy6a0ztOTpAyQEAsQeHQpz1ULSYRQB5tBuGjT+brhKtglwHcAWfcxPelAg= =eUav -----END PGP SIGNATURE----- --=-FKCgE/G1/utaOA46ADjO-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 17:46:06 2021 Received: (at 49828) by debbugs.gnu.org; 9 Aug 2021 21:46:07 +0000 Received: from localhost ([127.0.0.1]:57964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDD5y-0008MG-HU for submit@debbugs.gnu.org; Mon, 09 Aug 2021 17:46:06 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:30146) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDD5u-0008LT-6h for 49828@debbugs.gnu.org; Mon, 09 Aug 2021 17:46:05 -0400 Received: from [10.0.0.4] (62-116-39-185.adsl.highway.telekom.at [62.116.39.185]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Gk8lp2mTkz3wVn; Mon, 9 Aug 2021 23:45:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628545558; bh=khVVG8wSSQUVVFHkxphWQzyS+U1quxGFQgIvEi9jDuA=; h=Subject:From:To:Date:In-Reply-To:References; b=hgaf0XN0fMeTLrmrKWD9auRhD32rG5nxzZwrj0o4nqFOKRa2cfgtiHT8mPc9Ih6hL NzgauzFATigvrOYPLZXXxRe/t90cC2anRDgVEF8U9YbI3SfZetWAB/Rzf9s0C9M+Gj K2F06xZ5QYRtyMqvkXvJM3ejxE7apinRbDC8jYUo= Message-ID: <16898c13929d873249c1873bc2b74d4bea07040b.camel@student.tugraz.at> Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. (XXX Yes send now) From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Mon, 09 Aug 2021 23:45:32 +0200 In-Reply-To: <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Montag, den 09.08.2021, 22:00 +0200 schrieb Maxime Devos: > [...] > The URL would look like: > /packages///releases//download/. > Here, is a the ‘release id’, which is an integer (e.g. > 4209). It is _not_ the version number, but it is monotonically > increasing. > > There are some problems however: > > * Old archives are sometimes deleted. > > TenPlus1/ethereal was added to ContentDB on 2018-02-23, but it > only has a single release on ContentDB, from 2021-07-28 > [...] > Likewise for TenPlus1/bakedclay, TenPlus1/wine, TenPlus1/bees. > > Most other mods still have the old archives though (e.g., > Jeija/mesecons, sfan5/worldedit, PilzAdam/nether). The mods by > TenPlus1 seems to be an exception. > > * The version number is not included in the download URL, the > release id is. > So IIUC, update-package-source in (guix upstream) would still > need to be adjusted somewhat to support Minetest packages. > > +(define* (make-package-sexp #:key > > > + (guix-name "minetest-foo") > > > + (home-page "https://example.org/foo" > > > ) > > > + (repo "https://example.org/foo.git") > > > + (synopsis "synopsis") > > > + (guix-description "description") > > > + (guix-license > > > + '(list license:cc-by-sa4.0 > > > license:lgpl3+)) > > > + (inputs '()) > > > + (upstream-name "Author/foo") > > > + #:allow-other-keys) > > > + [...] > > As noted above, this procedure would be somewhat simplified if we > > could define a (mintest-uri). > > > > I don't see how a 'minetest-uri' would simplify the definition of > 'make-package-sexp'. Using 'minetest-uri' would avoid the need > to specify the commit, but 'minetest-uri' needs a release id anyway, > so no simplification there. > > I guess it would avoid the 'download-git-repository' procedure > and 'vcs-file?', but see two points above. Also, 'latest-repository- > commit' returns a store path, which does not include the '.git' > directory, so 'vcs-file?' isn't necessary, so I removed 'vcs-file?'. In other words, taking minetest-uri as is currently doesn't seem too good of an idea. Does the plain git/vcs updater work for those packages then? I assume at least some of the packages should be tagged properly in git, are they not? > [...] > I like the name 'package-full-name'. and > are rather different structures and used in different contexts > though, so I kept package-full-name and package-keys-full-name > separate. > > FWIW, I added a procedure > > (define (%construct-full-name author name) > (string-append author "/" name)) > > used by 'package-full-name' and 'package-keys-full-name'. Sounds good to me. > > > +(define (contentdb->package-name name) > > > + "Given the NAME of a package on ContentDB, return a Guix- > > > compliant > > > name for the > > > +package." > > > + ;; The author is not included, as the names of popular mods > > > + ;; tend to be unique. > > > + (string-append "minetest-" (snake-case name))) > > I'd at least add an option to generate full names instead, for > > cases in > > which as before we warn about non-uniqueness. Though actually, > > this > > comment is a little misleading as the actual stripping happens... > > > + (name ,(contentdb->package-name (author/name->name > > > author/name))) > > here > > ContentDB has a policy of requiring mod names to be unique in order > to be a ‘approved’, so I don't think name conflict will be a problem > in practice. If full names were generated, keep in mind that > dependencies would need to use the full names a well. I couldn't > find any mods with name conflicts. I would just emit a warning for > now. Fair enough, if that requirement is actually enforced by ContentDB, that's good. It does make the AUTHOR/NAME URI syntax look a bit weird tho. > contentdb->package-name was always used together with 'author/name- > >name', so I modified contentdb->package-name to call author/name- > >name as you seem to suggest. It maked the code a little simpler. Well, that's one way of resolving this issue, another would have been to move the comment to where it makes sense. All in all, I think I'm rather content with this patch now, but I have a final nitpick w.r.t the updater. "upstream-name" is a weird name for a property that will supposedly be used by only one updater (and even if different updaters were to use it, would not each one have slightly different, but perhaps sometimes overlapping expectations for that field?) I think a better solution would be to set home-page to the ContentDB page, assuming that is acceptable. If not, perhaps having a "refresh-url" that is well defined over all refreshers and supersedes home-page if specified might be a more appropriate solution. WDYT? From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 07:03:49 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 11:03:49 +0000 Received: from localhost ([127.0.0.1]:58526 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDPXx-0000mI-8Z for submit@debbugs.gnu.org; Tue, 10 Aug 2021 07:03:49 -0400 Received: from xavier.telenet-ops.be ([195.130.132.52]:35722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDPXv-0000m9-LU for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 07:03:48 -0400 Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by xavier.telenet-ops.be with bizsmtp id fn3l250080mfAB401n3l04; Tue, 10 Aug 2021 13:03:45 +0200 Message-ID: Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. From: Maxime Devos To: Leo Prikler , 49828@debbugs.gnu.org Date: Tue, 10 Aug 2021 13:02:42 +0200 In-Reply-To: <16898c13929d873249c1873bc2b74d4bea07040b.camel@student.tugraz.at> References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> <16898c13929d873249c1873bc2b74d4bea07040b.camel@student.tugraz.at> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-uQFkrIuN3/nyTNvRD4mt" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628593426; bh=ZoG0gTj4l1hbnvuneuklQtfXCeeJGcwiJB8NqYPp168=; h=Subject:From:To:Date:In-Reply-To:References; b=Fjqh6YWByD52rfunFIHkaoTXUccQ8eBn2BNMqF9Mo2QdpJb14NMCQPa6cqEaLQ40K I+g2sRkjLxzXLNT8D6pzNYu6NLBqT6B/YAc8xAqxadGBVrnyRnX4yy52hUSOtfj518 k/e25h9uwG8l2hb3p+pdDVbRKAMEXOtxpN3HIY4VGr8swy/+DsZbQdEe7fKrIUShzn 0T4dbJMulBbC2w6v90yufoz6G6xQfD/32Fv0Skv3ySYUFC4rZIoDRM6M+BHKtBuNWG F/BeiSQ/qL0takKZAM+V5OGE02WUsw+lUfCEhTsaje3SohVd4Yju997JvefGsoz68y A6AcSHOBke+jw== X-Debbugs-Envelope-To: 49828 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" --=-uQFkrIuN3/nyTNvRD4mt Content-Type: multipart/mixed; boundary="=-wpu1s/I5xVebNtvpHEc4" --=-wpu1s/I5xVebNtvpHEc4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I re-ran "./pre-inst-env guix build [all-minetest-mods]" and it turns out "minetest-unified-inventory" retains a reference to the corresponding git checkout. Using 'strip-store-file-name' instead of 'basename' in 'guess-mod-name' in =E2=80=98build-system: Add 'minetest-mod-build-syste= m'=E2=80=99 fixed this. Leo Prikler schreef op ma 09-08-2021 om 23:45 [+0200]: > Hi, >=20 > [...] > In other words, taking minetest-uri as is currently doesn't seem too > good of an idea. Does the plain git/vcs updater work for those > packages then? I assume at least some of the packages should be tagged > properly in git, are they not? FWIW, there is no git/vcs updater, but there is a GitHub updater (a git updater looking at tags in a git repository if the package origin uses the git-fetch method could be written though). The GitHub updater could theoretically work, but look at the output: ./pre-inst-env guix refresh minetest-{unified-inventory,unifieddyes,worlded= it,throwing-arrows,throwing,technic,pipeworks,mobs-animal,mobs,mesecons,hom= edecor-modpack,ethereal,coloredwood,basic- materials} gnu/packages/minetest.scm:29:2: warning: no updater for minetest-basic-mate= rials gnu/packages/minetest.scm:54:2: warning: no updater for minetest-coloredwoo= d gnu/packages/minetest.scm:87:4: warning: no updater for minetest-ethereal gnu/packages/minetest.scm:111:2: warning: no updater for minetest-homedecor= -modpack gnu/packages/minetest.scm:147:13: minetest-mesecons would be upgraded from = 1.2.1-0.db58797 to 2017.03.05 gnu/packages/minetest.scm:178:2: warning: no updater for minetest-mobs gnu/packages/minetest.scm:207:2: warning: no updater for minetest-mobs-anim= al gnu/packages/minetest.scm:234:2: warning: no updater for minetest-pipeworks gnu/packages/minetest.scm:265:2: warning: 'github' updater failed to determ= ine available releases for minetest-technic gnu/packages/minetest.scm:302:13: warning: 2020-08-14 is greater than the l= atest known version of minetest-throwing (1.1) gnu/packages/minetest.scm:330:15: warning: 1.1-0.059cc89 is greater than th= e latest known version of minetest-throwing-arrows (1.1) gnu/packages/minetest.scm:355:13: 1.3 is already the latest version of mine= test-worldedit gnu/packages/minetest.scm:376:2: warning: no updater for minetest-unifieddy= es gnu/packages/minetest.scm:408:13: minetest-unified-inventory would be upgra= ded from 2021-03-25-1 to 20180810 Apparently, the git repos of minetest mods often don't keep version numbers= , or aren't on github, or uses multiple version schemes simultanuously (x.y[.z] version numbers + dates) ... "minetest-worldedit" is properly tagged though. For the other cases, an updater for ContentDB packages may be required. I modified the definition of 'minetest-throwing' to use "1.1" as 'version' (the commit remains the same). > All in all, I think I'm rather content with this patch now, but I have > a final nitpick w.r.t the updater. "upstream-name" is a weird name for > a property that will supposedly be used by only one updater (and even > if different updaters were to use it, would not each one have slightly > different, but perhaps sometimes overlapping expectations for that > field?) I think a better solution would be to set home-page to the > ContentDB page, assuming that is acceptable. If not, perhaps having a > "refresh-url" that is well defined over all refreshers and supersedes > home-page if specified might be a more appropriate solution. =20 'upstream-name' is used by the refresher of "egg", "cpan" and "opam". I searched for "package-properties" in (guix import ...), and the only package property used by refreshers in 'upstream-name'. So using anything other than 'upstream-name' for Minetest would be unusual. The documentation of "guix refresh" mentions: Sometimes the upstream name differs from the package name used in Guix, and =E2=80=98guix refresh=E2=80=99 needs a little help. Most updater= s honor the =E2=80=98upstream-name=E2=80=99 property in package definitions, which can = be used to that effect: (define-public network-manager (package (name "network-manager") ;; ... (properties '((upstream-name . "NetworkManager"))))) So using a different package property than 'upstream-name' would be unexpected. I assume 'refresh-url' would be "https://content.minetest.net/api/packages/AUTHOR/NAME" for minetest packages, "https://github.com/ocaml/opam-repository/packages/NAME" for opam packages? That seems rather verbose though, and every refresher would have a different idea of how to fetch the package description from the URL and interpret it, so this doesn't seem to be an improvement over 'upstream-name' to me. About pointing the home page to content.minetest.net: that would work for the refresher, but the ContentDB page isn't really the home page, not unlike how the pypi page for python packages isn't the home page. Likewise for opam and ocaml. Compare https://content.minetest.net/packages/Jeija/mesecons/ with https://mesecons.net/, which one seems more =E2=80=98homey=E2=80=99? = I'd say the latter is the home page. The revised patch series is attached. Only =E2=80=98build-system: Add 'minetest-mod-build-system'=E2=80=99 and =E2=80= =98gnu: Add minetest-throwing=E2=80=99 have been changed. It can also be found at . Greetings, Maxime. --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0001-gnu-minetest-Respect-without-tests.patch" Content-Type: text/x-patch; name="0001-gnu-minetest-Respect-without-tests.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyOTJkY2UxNGVhNDgxMWYxNTU0OTY1ZDgzYWY1ZTMzNjg3Y2QwMGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTQ6NTA6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzIwXSBnbnU6IG1pbmV0ZXN0OiBSZXNwZWN0IC0td2l0aG91dC10ZXN0cy4KCiogZ251L3BhY2th Z2VzL2dhbWVzLnNjbQogIChtaW5ldGVzdClbYXJndW1lbnRzXTwjOnBoYXNlcz57Y2hlY2t9OiBV c2UgJ3Rlc3RzPycgaW5zdGVhZAogIG9mICcsKCVjdXJyZW50LXRhcmdldC1zeXN0ZW0pJy4gUmVt b3ZlIHRyYWlsaW5nICN0LgotLS0KIGdudS9wYWNrYWdlcy9nYW1lcy5zY20gfCA3ICsrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZ251L3BhY2thZ2VzL2dhbWVzLnNjbSBiL2dudS9wYWNrYWdlcy9nYW1lcy5zY20KaW5k ZXggOGM2YjU1MjNmMS4uM2U3MDg2YjM5OCAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL2dhbWVz LnNjbQorKysgYi9nbnUvcGFja2FnZXMvZ2FtZXMuc2NtCkBAIC0zNTkwLDEzICszNTkwLDEyIEBA IG1hdGNoLCBjYW5ub24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAoZ2V0Y3dkKSAiL2dhbWVzIikpIDsgZm9yIGNoZWNr CiAgICAgICAgICAgICAgI3QpKQogICAgICAgICAgKHJlcGxhY2UgJ2NoZWNrCi0gICAgICAgICAg IChsYW1iZGEgXworICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgdGVzdHM/ICM6YWxsb3ctb3Ro ZXIta2V5cykKICAgICAgICAgICAgICA7OyBUaGFua3MgdG8gb3VyIHN1YnN0aXR1dGlvbnMsIHRo ZSB0ZXN0cyBzaG91bGQgYWxzbyBydW4KICAgICAgICAgICAgICA7OyB3aGVuIGludm9rZWQgb24g dGhlIHRhcmdldCBvdXRzaWRlIG9mIGBndWl4IGJ1aWxkJy4KLSAgICAgICAgICAgICAodW5sZXNz ICwoJWN1cnJlbnQtdGFyZ2V0LXN5c3RlbSkKKyAgICAgICAgICAgICAod2hlbiB0ZXN0cz8KICAg ICAgICAgICAgICAgIChzZXRlbnYgIkhPTUUiICIvdG1wIikKLSAgICAgICAgICAgICAgIChpbnZv a2UgInNyYy9taW5ldGVzdCIgIi0tcnVuLXVuaXR0ZXN0cyIpKQotICAgICAgICAgICAgICN0KSkp KSkKKyAgICAgICAgICAgICAgIChpbnZva2UgInNyYy9taW5ldGVzdCIgIi0tcnVuLXVuaXR0ZXN0 cyIpKSkpKSkpCiAgICAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMKICAgICAgKGxpc3QgKHNlYXJjaC1w YXRoLXNwZWNpZmljYXRpb24KICAgICAgICAgICAgICh2YXJpYWJsZSAiTUlORVRFU1RfU1VCR0FN RV9QQVRIIikKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch" Content-Type: text/x-patch; name="0002-gnu-minetest-Search-for-mods-in-MINETEST_MOD_PATH.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NDIyMmYxNjcxMDdlMzZjYjc2ZjkzYzU1MWFhZWUwNjU5ZDE3YjQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTg6MDg6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzIwXSBnbnU6IG1pbmV0ZXN0OiBTZWFyY2ggZm9yIG1vZHMgaW4gTUlORVRFU1RfTU9EX1BBVEgu CgoqIGdudS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVT VF9NT0RfUEFUSC5wYXRjaDoKICBOZXcgZmlsZS4KKiBnbnUvcGFja2FnZXMvZ2FtZXMuc2NtCiAg KG1pbmV0ZXN0KVtzb3VyY2Vde3BhdGNoZXN9OiBBZGQgaXQuCiAgKG1pbmV0ZXN0KVtuYXRpdmUt c2VhcmNoLXBhdGhzXTogQWRkICJNSU5FVEVTVF9NT0RfUEFUSCIuCiogZ251L2xvY2FsLm1rIChk aXN0X3BhdGNoX0RBVEEpOiBBZGQgdGhlIHBhdGNoLgotLS0KIGdudS9sb2NhbC5tayAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBnbnUvcGFja2FnZXMvZ2FtZXMuc2Nt ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIC4uLnZpcm9ubWVudC12YXJpYWJsZS1N SU5FVEVTVF9NT0RfUEFUSC5wYXRjaCB8IDE1NiArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBnbnUvcGFja2FnZXMvcGF0Y2hlcy9BZGQtZW52aXJvbm1lbnQtdmFyaWFibGUtTUlORVRF U1RfTU9EX1BBVEgucGF0Y2gKCmRpZmYgLS1naXQgYS9nbnUvbG9jYWwubWsgYi9nbnUvbG9jYWwu bWsKaW5kZXggYzgwYTlhZjc4Yy4uZDk2ZDRlM2RiYyAxMDA2NDQKLS0tIGEvZ251L2xvY2FsLm1r CisrKyBiL2dudS9sb2NhbC5tawpAQCAtODAxLDYgKzgwMSw3IEBAIGRpc3RfcGF0Y2hfREFUQSA9 CQkJCQkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1ndGVzdC5wYXRj aAkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9hYnNlaWwtY3BwLWZpeC1zdHJlcnJvcl90ZXN0 LnBhdGNoCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvYWRiLWFkZC1saWJyYXJpZXMucGF0Y2gJ CQlcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5F VEVTVF9NT0RfUEFUSC5wYXRjaAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lzLWNvbnN0 bmVzcy1lcnJvci5wYXRjaCAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2FlZ2lz LXBlcmwtdGVtcGRpcjEucGF0Y2ggICAgICAgICAgIAlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVz L2FlZ2lzLXBlcmwtdGVtcGRpcjIucGF0Y2ggICAgICAgICAgIAlcCmRpZmYgLS1naXQgYS9nbnUv cGFja2FnZXMvZ2FtZXMuc2NtIGIvZ251L3BhY2thZ2VzL2dhbWVzLnNjbQppbmRleCAzZTcwODZi Mzk4Li40OGQ0NmEwMzc5IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvZ2FtZXMuc2NtCisrKyBi L2dudS9wYWNrYWdlcy9nYW1lcy5zY20KQEAgLTM1NTMsNiArMzU1Myw5IEBAIG1hdGNoLCBjYW5u b24ga2VlcCwgYW5kIGdyYXZlLWl0YXRpb24gcGl0LiIpCiAgICAgICAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICAgICAgIjA2MmlsYjdzMzc3cTNod2ZobDhxMDZ2dmN3MnJheWR6NWxqemx6 d3kyZG15em1kY25kYjgiKSkKICAgICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB1 dGlscykpKQorICAgICAgICAgICAgICAocGF0Y2hlcworICAgICAgICAgICAgICAgKHNlYXJjaC1w YXRjaGVzCisgICAgICAgICAgICAgICAgIkFkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVT VF9NT0RfUEFUSC5wYXRjaCIpKQogICAgICAgICAgICAgICAoc25pcHBldAogICAgICAgICAgICAg ICAgJyhiZWdpbgogICAgICAgICAgICAgICAgICAgOzsgRGVsZXRlIGJ1bmRsZWQgbGlicmFyaWVz LgpAQCAtMzU5OSw3ICszNjAyLDEwIEBAIG1hdGNoLCBjYW5ub24ga2VlcCwgYW5kIGdyYXZlLWl0 YXRpb24gcGl0LiIpCiAgICAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMKICAgICAgKGxpc3QgKHNlYXJj aC1wYXRoLXNwZWNpZmljYXRpb24KICAgICAgICAgICAgICh2YXJpYWJsZSAiTUlORVRFU1RfU1VC R0FNRV9QQVRIIikKLSAgICAgICAgICAgIChmaWxlcyAnKCJzaGFyZS9taW5ldGVzdC9nYW1lcyIp KSkpKQorICAgICAgICAgICAgKGZpbGVzICcoInNoYXJlL21pbmV0ZXN0L2dhbWVzIikpKQorICAg ICAgICAgICAoc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbgorICAgICAgICAgICAgKHZhcmlhYmxl ICJNSU5FVEVTVF9NT0RfUEFUSCIpCisgICAgICAgICAgICAoZmlsZXMgJygic2hhcmUvbWluZXRl c3QvbW9kcyIpKSkpKQogICAgIChuYXRpdmUtaW5wdXRzCiAgICAgIGAoKCJwa2ctY29uZmlnIiAs cGtnLWNvbmZpZykpKQogICAgIChpbnB1dHMKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9wYXRj aGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVTVF9NT0RfUEFUSC5wYXRjaCBiL2du dS9wYWNrYWdlcy9wYXRjaGVzL0FkZC1lbnZpcm9ubWVudC12YXJpYWJsZS1NSU5FVEVTVF9NT0Rf UEFUSC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5hNzQwMzRh MmM1Ci0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvQWRkLWVudmlyb25t ZW50LXZhcmlhYmxlLU1JTkVURVNUX01PRF9QQVRILnBhdGNoCkBAIC0wLDAgKzEsMTU2IEBACitG cm9tIGQxMGVhMmFkN2VmYzIzNjRhOGEyMDA3YjRjNmQzZTg1NTExZTJmODQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CitEYXRlOiBUdWUsIDMgQXVnIDIwMjEgMDE6MDA6MjMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0g QWRkIGVudmlyb25tZW50IHZhcmlhYmxlIE1JTkVURVNUX01PRF9QQVRICisKK1RoaXMgYWRkcyBh biBlbnZpcm9ubWVudCB2YXJpYWJsZSBNSU5FVEVTVF9NT0RfUEFUSC4KK1doZW4gaXQgZXhpc3Rz LCBNaW5ldGVzdCB3aWxsIGxvb2sgdGhlcmUgZm9yIG1vZHMKK2luIGFkZGl0aW9uIHRvIH4vLm1p bmV0ZXN0L21vZHMvLiAgTW9kcyBjYW4gc3RpbGwgYmUKK2luc3RhbGxlZCB0byB+Ly5taW5ldGVz dC9tb2RzLyB3aXRoIHRoZSBidWlsdC1pbiBpbnN0YWxsZXIuCisKK1dpdGggdGhhbmtzIHRvIExl byBQcmlrbGVyLgorLS0tCisgYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhICAgICAgIHwgIDcg KysrLS0tLQorIGRvYy9tZW51X2x1YV9hcGkudHh0ICAgICAgICAgICAgICB8ICA4ICsrKysrKyst Cisgc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwICAgICAgICAgIHwgMTEgKysrKysrKysrKysKKyBz cmMvc2NyaXB0L2x1YV9hcGkvbF9tYWlubWVudS5jcHAgfCAyMyArKysrKysrKysrKysrKysrKysr KysrKworIHNyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmggICB8ICAyICsrCisgNSBmaWxl cyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhIGIvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3Iu bHVhCitpbmRleCA3ODc5MzZlMzEuLmQ4ZmJhMGViZSAxMDA2NDQKKy0tLSBhL2J1aWx0aW4vbWFp bm1lbnUvcGtnbWdyLmx1YQorKysrIGIvYnVpbHRpbi9tYWlubWVudS9wa2dtZ3IubHVhCitAQCAt NjgyLDEwICs2ODIsOSBAQCBmdW5jdGlvbiBwa2dtZ3IucHJlcGFyZW1vZGxpc3QoZGF0YSkKKyAJ bG9jYWwgZ2FtZV9tb2RzID0ge30KKyAKKyAJLS1yZWFkIGdsb2JhbCBtb2RzCistCWxvY2FsIG1v ZHBhdGggPSBjb3JlLmdldF9tb2RwYXRoKCkKKy0KKy0JaWYgbW9kcGF0aCB+PSBuaWwgYW5kCist CQltb2RwYXRoIH49ICIiIHRoZW4KKysJbG9jYWwgbW9kcGF0aHMgPSBjb3JlLmdldF9tb2RwYXRo cygpCisrCS0tWFhYIHdoYXQgd2FzIOKAmG1vZHBhdGggfj0gIiLigJkgYW5kIOKAmG1vZHBhdGgg fj0gbmls4oCZIGZvcj8KKysJZm9yIF8sbW9kcGF0aCBpbiBpcGFpcnMobW9kcGF0aHMpIGRvCisg CQlnZXRfbW9kcyhtb2RwYXRoLGdsb2JhbF9tb2RzKQorIAllbmQKKyAKK2RpZmYgLS1naXQgYS9k b2MvbWVudV9sdWFfYXBpLnR4dCBiL2RvYy9tZW51X2x1YV9hcGkudHh0CitpbmRleCBiMzk3NWJj MWQuLjEzMjQ0NGIxNCAxMDA2NDQKKy0tLSBhL2RvYy9tZW51X2x1YV9hcGkudHh0CisrKysgYi9k b2MvbWVudV9sdWFfYXBpLnR4dAorQEAgLTIxOCw3ICsyMTgsMTMgQEAgUGFja2FnZSAtIGNvbnRl bnQgd2hpY2ggaXMgZG93bmxvYWRhYmxlIGZyb20gdGhlIGNvbnRlbnQgZGIsIG1heSBvciBtYXkg bm90IGJlIGkKKyAgICAgKiByZXR1cm5zIHBhdGggdG8gZ2xvYmFsIHVzZXIgZGF0YSwKKyAgICAg ICB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdXNlci1wcm92aWRlZCBtb2RzLCB3b3JsZHMs IGdhbWVzLCBhbmQgdGV4dHVyZSBwYWNrcy4KKyAqIGNvcmUuZ2V0X21vZHBhdGgoKSAocG9zc2li bGUgaW4gYXN5bmMgY2FsbHMpCistICAgICogcmV0dXJucyBwYXRoIHRvIGdsb2JhbCBtb2RwYXRo CisrICAgICogcmV0dXJucyBwYXRoIHRvIGdsb2JhbCBtb2RwYXRoLCB3aGVyZSBtb2RzIGNhbiBi ZSBpbnN0YWxsZWQKKysqIGNvcmUuZ2V0X21vZHBhdGhzKCkgKHBvc3NpYmxlIGluIGFzeW5jIGNh bGxzKQorKyAgICAqIHJldHVybnMgbGlzdCBvZiBwYXRocyB0byBnbG9iYWwgbW9kcGF0aHMsIHdo ZXJlIG1vZHMgaGF2ZSBiZWVuIGluc3RhbGxlZAorKworKyAgICAgIFRoZSBkaWZmZXJlbmNlIHdp dGggImNvcmUuZ2V0X21vZHBhdGgiIGlzIHRoYXQgbm8gbW9kcyBzaG91bGQgYmUgaW5zdGFsbGVk IGluIHRoZXNlCisrICAgICAgZGlyZWN0b3JpZXMgYnkgTWluZXRlc3QgLS0gdGhleSBtaWdodCBi ZSByZWFkLW9ubHkuCisrCisgKiBjb3JlLmdldF9jbGllbnRtb2RwYXRoKCkgKHBvc3NpYmxlIGlu IGFzeW5jIGNhbGxzKQorICAgICAqIHJldHVybnMgcGF0aCB0byBnbG9iYWwgY2xpZW50LXNpZGUg bW9kcGF0aAorICogY29yZS5nZXRfZ2FtZXBhdGgoKSAocG9zc2libGUgaW4gYXN5bmMgY2FsbHMp CitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwIGIvc3JjL2NvbnRlbnQvc3Vi Z2FtZXMuY3BwCitpbmRleCBlOWRjNjA5YjAuLmQ3M2Y5NWExZiAxMDA2NDQKKy0tLSBhL3NyYy9j b250ZW50L3N1YmdhbWVzLmNwcAorKysrIGIvc3JjL2NvbnRlbnQvc3ViZ2FtZXMuY3BwCitAQCAt NjEsNiArNjEsMTIgQEAgc3RkOjpzdHJpbmcgZ2V0U3ViZ2FtZVBhdGhFbnYoKQorIAlyZXR1cm4g c3ViZ2FtZV9wYXRoID8gc3RkOjpzdHJpbmcoc3ViZ2FtZV9wYXRoKSA6ICIiOworIH0KKyAKKytz dGQ6OnN0cmluZyBnZXRNb2RQYXRoRW52KCkKKyt7CisrCWNoYXIgKm1vZF9wYXRoID0gZ2V0ZW52 KCJNSU5FVEVTVF9NT0RfUEFUSCIpOworKwlyZXR1cm4gbW9kX3BhdGggPyBzdGQ6OnN0cmluZyht b2RfcGF0aCkgOiAiIjsKKyt9CisrCisgU3ViZ2FtZVNwZWMgZmluZFN1YmdhbWUoY29uc3Qgc3Rk OjpzdHJpbmcgJmlkKQorIHsKKyAJaWYgKGlkLmVtcHR5KCkpCitAQCAtMTEwLDYgKzExNiwxMSBA QCBTdWJnYW1lU3BlYyBmaW5kU3ViZ2FtZShjb25zdCBzdGQ6OnN0cmluZyAmaWQpCisgCXN0ZDo6 c2V0PHN0ZDo6c3RyaW5nPiBtb2RzX3BhdGhzOworIAlpZiAoIXVzZXJfZ2FtZSkKKyAJCW1vZHNf cGF0aHMuaW5zZXJ0KHNoYXJlICsgRElSX0RFTElNICsgIm1vZHMiKTsKKysKKysJU3RyZm5kIG1v ZF9zZWFyY2hfcGF0aHMoZ2V0TW9kUGF0aEVudigpKTsKKysJd2hpbGUgKCFtb2Rfc2VhcmNoX3Bh dGhzLmF0X2VuZCgpKQorKwkJbW9kc19wYXRocy5pbnNlcnQobW9kX3NlYXJjaF9wYXRocy5uZXh0 KFBBVEhfREVMSU0pKTsKKysKKyAJaWYgKHVzZXIgIT0gc2hhcmUgfHwgdXNlcl9nYW1lKQorIAkJ bW9kc19wYXRocy5pbnNlcnQodXNlciArIERJUl9ERUxJTSArICJtb2RzIik7CisgCitkaWZmIC0t Z2l0IGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuY3BwIGIvc3JjL3NjcmlwdC9sdWFf YXBpL2xfbWFpbm1lbnUuY3BwCitpbmRleCAzZTk3MDliZGUuLjkwM2FjM2EyMiAxMDA2NDQKKy0t LSBhL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmNwcAorKysrIGIvc3JjL3NjcmlwdC9s dWFfYXBpL2xfbWFpbm1lbnUuY3BwCitAQCAtMjEsNiArMjEsNyBAQCB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAor ICNpbmNsdWRlICJsdWFfYXBpL2xfaW50ZXJuYWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uL2NfY29u dGVudC5oIgorICNpbmNsdWRlICJjcHBfYXBpL3NfYXN5bmMuaCIKKysjaW5jbHVkZSAidXRpbC9z dHJmbmQuaCIKKyAjaW5jbHVkZSAiZ3VpL2d1aUVuZ2luZS5oIgorICNpbmNsdWRlICJndWkvZ3Vp TWFpbk1lbnUuaCIKKyAjaW5jbHVkZSAiZ3VpL2d1aUtleUNoYW5nZU1lbnUuaCIKK0BAIC01MDIs NiArNTAzLDI2IEBAIGludCBNb2RBcGlNYWluTWVudTo6bF9nZXRfbW9kcGF0aChsdWFfU3RhdGUg KkwpCisgCXJldHVybiAxOworIH0KKyAKKysvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworK2ludCBN b2RBcGlNYWluTWVudTo6bF9nZXRfbW9kcGF0aHMobHVhX1N0YXRlICpMKQorK3sKKysJY29uc3Qg Y2hhciAqY19tb2RwYXRoID0gZ2V0ZW52KCJNSU5FVEVTVF9NT0RfUEFUSCIpOworKwlpZiAoY19t b2RwYXRoID09IE5VTEwpCisrCQljX21vZHBhdGggPSAiIjsKKysJaW50IGluZGV4ID0gMTsKKysJ bHVhX25ld3RhYmxlKEwpOworKwlTdHJmbmQgbW9kX3NlYXJjaF9wYXRoc3tzdGQ6OnN0cmluZyhj X21vZHBhdGgpfTsKKysJd2hpbGUgKCFtb2Rfc2VhcmNoX3BhdGhzLmF0X2VuZCgpKSB7CisrCQlz dGQ6OnN0cmluZyBjb21wb25lbnQgPSBtb2Rfc2VhcmNoX3BhdGhzLm5leHQoUEFUSF9ERUxJTSk7 CisrCQlsdWFfcHVzaHN0cmluZyhMLCBjb21wb25lbnQuY19zdHIoKSk7CisrCQlsdWFfcmF3c2V0 aShMLCAtMiwgaW5kZXgpOworKwkJaW5kZXgrKzsKKysJfQorKwlNb2RBcGlNYWluTWVudTo6bF9n ZXRfbW9kcGF0aChMKTsKKysJbHVhX3Jhd3NldGkoTCwgLTIsIGluZGV4KTsKKysJcmV0dXJuIDE7 CisrfQorKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgaW50IE1vZEFwaU1haW5NZW51Ojps X2dldF9jbGllbnRtb2RwYXRoKGx1YV9TdGF0ZSAqTCkKKyB7CitAQCAtOTQ5LDYgKzk3MCw3IEBA IHZvaWQgTW9kQXBpTWFpbk1lbnU6OkluaXRpYWxpemUobHVhX1N0YXRlICpMLCBpbnQgdG9wKQor IAlBUElfRkNUKGdldF9tYXBnZW5fbmFtZXMpOworIAlBUElfRkNUKGdldF91c2VyX3BhdGgpOwor IAlBUElfRkNUKGdldF9tb2RwYXRoKTsKKysJQVBJX0ZDVChnZXRfbW9kcGF0aHMpOworIAlBUElf RkNUKGdldF9jbGllbnRtb2RwYXRoKTsKKyAJQVBJX0ZDVChnZXRfZ2FtZXBhdGgpOworIAlBUElf RkNUKGdldF90ZXh0dXJlcGF0aCk7CitAQCAtOTgzLDYgKzEwMDUsNyBAQCB2b2lkIE1vZEFwaU1h aW5NZW51OjpJbml0aWFsaXplQXN5bmMobHVhX1N0YXRlICpMLCBpbnQgdG9wKQorIAlBUElfRkNU KGdldF9tYXBnZW5fbmFtZXMpOworIAlBUElfRkNUKGdldF91c2VyX3BhdGgpOworIAlBUElfRkNU KGdldF9tb2RwYXRoKTsKKysJQVBJX0ZDVChnZXRfbW9kcGF0aHMpOworIAlBUElfRkNUKGdldF9j bGllbnRtb2RwYXRoKTsKKyAJQVBJX0ZDVChnZXRfZ2FtZXBhdGgpOworIAlBUElfRkNUKGdldF90 ZXh0dXJlcGF0aCk7CitkaWZmIC0tZ2l0IGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUu aCBiL3NyYy9zY3JpcHQvbHVhX2FwaS9sX21haW5tZW51LmgKK2luZGV4IDMzYWM5ZTcyMS4uYTZh NTRhMmNiIDEwMDY0NAorLS0tIGEvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuaAorKysr IGIvc3JjL3NjcmlwdC9sdWFfYXBpL2xfbWFpbm1lbnUuaAorQEAgLTExMiw2ICsxMTIsOCBAQCBj bGFzcyBNb2RBcGlNYWluTWVudTogcHVibGljIE1vZEFwaUJhc2UKKyAKKyAJc3RhdGljIGludCBs X2dldF9tb2RwYXRoKGx1YV9TdGF0ZSAqTCk7CisgCisrCXN0YXRpYyBpbnQgbF9nZXRfbW9kcGF0 aHMobHVhX1N0YXRlICpMKTsKKysKKyAJc3RhdGljIGludCBsX2dldF9jbGllbnRtb2RwYXRoKGx1 YV9TdGF0ZSAqTCk7CisgCisgCXN0YXRpYyBpbnQgbF9nZXRfZ2FtZXBhdGgobHVhX1N0YXRlICpM KTsKKy0tIAorMi4zMi4wCisKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0003-gnu-minetest-New-package-module.patch" Content-Type: text/x-patch; name="0003-gnu-minetest-New-package-module.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNTE0OGFkODUzYjExM2RiODQ2MzQ5MTJjM2VhYTkzNmQ2ODllYjIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTg6MzI6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAz LzIwXSBnbnU6IG1pbmV0ZXN0OiBOZXcgcGFja2FnZSBtb2R1bGUuCgpBc2lkZSBmcm9tIHRoZSAn bWluZXRlc3QtdG9waWMnIHByb2NlZHVyZSB3aGljaCB3aWxsIGJlIHVzZWQKZm9yIHRoZSAnaG9t ZS1wYWdlJyBmaWVsZCBvZiBzb21lIHBhY2thZ2VzLCB0aGlzIG1vZHVsZSBpcwpjdXJyZW50bHkg ZW1wdHkuICBUaGUgJ2NvbnRlbnRkYicgaW1wb3J0ZXIgZGVmaW5lZCBpbiB0aGUKZm9sbG93aW5n IHBhdGNoZXMgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoaXMgbW9kdWxlLgoKKiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtOiBOZXcgZmlsZS4KKiBnbnUvbG9jYWwubWsgKEdOVV9TWVNURU1f TU9EVUxFUyk6IEFkZCBpdC4KLS0tCiBnbnUvbG9jYWwubWsgICAgICAgICAgICAgIHwgIDEgKwog Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn bnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCgpkaWZmIC0tZ2l0IGEvZ251L2xvY2FsLm1rIGIvZ251 L2xvY2FsLm1rCmluZGV4IGQ5NmQ0ZTNkYmMuLjVkZTA4YjFiMDkgMTAwNjQ0Ci0tLSBhL2dudS9s b2NhbC5taworKysgYi9nbnUvbG9jYWwubWsKQEAgLTM4Myw2ICszODMsNyBAQCBHTlVfU1lTVEVN X01PRFVMRVMgPQkJCQlcCiAgICVEJS9wYWNrYWdlcy9tZXJjdXJ5LnNjbQkJCVwKICAgJUQlL3Bh Y2thZ2VzL21lcy5zY20JCQkJXAogICAlRCUvcGFja2FnZXMvbWVzc2FnaW5nLnNjbQkJCVwKKyAg JUQlL3BhY2thZ2VzL21pbmV0ZXN0LnNjbQkJCVwKICAgJUQlL3BhY2thZ2VzL21pbmd3LnNjbQkJ CVwKICAgJUQlL3BhY2thZ2VzL21pY3JvY29tLnNjbQkJCVwKICAgJUQlL3BhY2thZ2VzL21vZS5z Y20JCQkJXApkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSBiL2dudS9wYWNr YWdlcy9taW5ldGVzdC5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZjhhY2EzMDA1YwotLS0gL2Rldi9udWxsCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20K QEAgLTAsMCArMSwyNiBAQAorOzs7IENvcHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4 aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4K Kzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK Kzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyhkZWZpbmUtbW9kdWxlIChnbnUg cGFja2FnZXMgbWluZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykKKyAgIzp1 c2UtbW9kdWxlIChndWl4IGdpdC1kb3dubG9hZCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxk LXN5c3RlbSBtaW5ldGVzdCkKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBsaWNlbnNlcykgIzpwcmVm aXggbGljZW5zZTopKQorCisoZGVmaW5lLXB1YmxpYyAobWluZXRlc3QtdG9waWMgdG9waWMtaWQp CisgICJSZXR1cm4gYW4gVVJMIChhcyBhIHN0cmluZykgcG9pbnRpbmcgdG8gdGhlIGZvcnVtIHRv cGljIHdpdGgKK251bWVyaWMgaWRlbnRpZmllciBUT1BJQy1JRCBvbiB0aGUgb2ZmaWNpYWwgTWlu ZXRlc3QgZm9ydW1zLiIKKyAgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZm9ydW0ubWluZXRlc3Qu bmV0L3ZpZXd0b3BpYy5waHA/dD0iCisgICAgICAgICAgICAgICAgIChudW1iZXItPnN0cmluZyB0 b3BpYy1pZCkpKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0004-build-system-Add-minetest-mod-build-system.patch" Content-Type: text/x-patch; name="0004-build-system-Add-minetest-mod-build-system.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NDU0OTlkZTUyYzY4NjlkZjQ5OGIwZGY1ZDViNDAzZDA1NDQ4ZmUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTM6NTI6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0 LzIwXSBidWlsZC1zeXN0ZW06IEFkZCAnbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbScuCgoqIGd1 aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbTogTmV3IG1vZHVsZS4KKiBndWl4L2J1aWxkL21p bmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY206IExpa2V3aXNlLgoqIE1ha2VmaWxlLmFtIChNT0RVTEVT KTogQWRkIHRoZW0uCiogZG9jL2d1aXgudGV4aSAoQnVpbGQgU3lzdGVtcyk6IERvY3VtZW50ICdt aW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtJy4KLS0tCiBNYWtlZmlsZS5hbSAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgICAg IHwgICA4ICsKIGd1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbSAgICAgICB8ICA5OSArKysr KysrKysrKysKIGd1aXgvYnVpbGQvbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSB8IDIyNiArKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzM1IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20KIGNy ZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkL21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KCmRp ZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IGQ1ZWM5MDkyMTMuLmY0 NDM5Y2U5M2IgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0x NDEsNiArMTQxLDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2dvLnNj bQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vbWVzb24uc2NtCQkJXAogICBndWl4L2J1aWxkLXN5 c3RlbS9taW5pZnkuc2NtCQkJXAorICBndWl4L2J1aWxkLXN5c3RlbS9taW5ldGVzdC5zY20JCVwK ICAgZ3VpeC9idWlsZC1zeXN0ZW0vYXNkZi5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL2Nv cHkuc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3RlbS9nbGliLW9yLWd0ay5zY20JCVwKQEAgLTIw Myw2ICsyMDQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9nbnUtZGlzdC5zY20J CQlcCiAgIGd1aXgvYnVpbGQvZ3VpbGUtYnVpbGQtc3lzdGVtLnNjbQkJXAogICBndWl4L2J1aWxk L21hdmVuLWJ1aWxkLXN5c3RlbS5zY20JCVwKKyAgZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1z eXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvbm9kZS1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1 aXgvYnVpbGQvcGVybC1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgvYnVpbGQvcHl0aG9uLWJ1 aWxkLXN5c3RlbS5zY20JCVwKZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50 ZXhpCmluZGV4IGIzYzE2ZTY1MDcuLmQ0NGVjYzIwMDUgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRl eGkKKysrIGIvZG9jL2d1aXgudGV4aQpAQCAtNzg5NSw2ICs3ODk1LDE0IEBAIGRlY2xhcmF0aW9u LiAgSXRzIGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7KGRlZmF1bHQtbWF2ZW4tcGx1Z2lucyl9IHdo aWNoIGlzCiBhbHNvIGV4cG9ydGVkLgogQGVuZCBkZWZ2cgogCitAZGVmdnIge1NjaGVtZSBWYXJp YWJsZX0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbQorVGhpcyB2YXJpYWJsZSBpcyBleHBvcnRl ZCBieSBAY29kZXsoZ3VpeCBidWlsZC1zeXN0ZW0gbWluZXRlc3QpfS4gIEl0CitpbXBsZW1lbnRz IGEgYnVpbGQgcHJvY2VkdXJlIGZvciBAdXJlZntodHRwczovL3d3dy5taW5ldGVzdC5uZXQsIE1p bmV0ZXN0fQorbW9kcywgd2hpY2ggY29uc2lzdHMgb2YgY29weWluZyBMdWEgY29kZSwgaW1hZ2Vz IGFuZCBvdGhlciByZXNvdXJjZXMgdG8KK3RoZSBsb2NhdGlvbiBNaW5ldGVzdCBzZWFyY2hlcyBm b3IgbW9kcy4gIFRoZSBidWlsZCBzeXN0ZW0gYWxzbyBtaW5pbWlzZXMKK1BORyBpbWFnZXMgYW5k IHZlcmlmaWVzIHRoYXQgTWluZXRlc3QgY2FuIGxvYWQgdGhlIG1vZCB3aXRob3V0IGVycm9ycy4K K0BlbmQgZGVmdnIKKwogQGRlZnZyIHtTY2hlbWUgVmFyaWFibGV9IG1pbmlmeS1idWlsZC1zeXN0 ZW0KIFRoaXMgdmFyaWFibGUgaXMgZXhwb3J0ZWQgYnkgQGNvZGV7KGd1aXggYnVpbGQtc3lzdGVt IG1pbmlmeSl9LiAgSXQKIGltcGxlbWVudHMgYSBtaW5pZmljYXRpb24gcHJvY2VkdXJlIGZvciBz aW1wbGUgSmF2YVNjcmlwdCBwYWNrYWdlcy4KZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVt L21pbmV0ZXN0LnNjbSBiL2d1aXgvYnVpbGQtc3lzdGVtL21pbmV0ZXN0LnNjbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMzNlOTc1NTlkCi0tLSAvZGV2L251bGwKKysr IGIvZ3VpeC9idWlsZC1zeXN0ZW0vbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsOTkgQEAKKzs7OyBH TlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENv cHlyaWdodCDCqSAyMDIxIE1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT4KKzs7 OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXgg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gbWlu ZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gY29weSkKKyAgIzp1c2Ut bW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWls ZC1zeXN0ZW0pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAgIzpleHBvcnQgKG1pbmV0 ZXN0LW1vZC1idWlsZC1zeXN0ZW0pKQorCis7OworOzsgQnVpbGQgcHJvY2VkdXJlIGZvciBtaW5l dGVzdCBtb2RzLiAgVGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24KKzs7IG9mIOKA mGNvcHktYnVpbGQtc3lzdGVt4oCZLgorOzsKKzs7IENvZGU6CisKKzs7IExhemlseSByZXNvbHZl IHRoZSBiaW5kaW5ncyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuCisoZGVmaW5lIChk ZWZhdWx0LW9wdGlwbmcpCisgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lk IGEgY2lyY3VsYXIgZGVwZW5kZW5jeS4KKyAgKG1vZHVsZS1yZWYgKHJlc29sdmUtaW50ZXJmYWNl ICcoZ251IHBhY2thZ2VzIGltYWdlKSkgJ29wdGlwbmcpKQorCisoZGVmaW5lIChkZWZhdWx0LW1p bmV0ZXN0KQorICAobW9kdWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMg Z2FtZXMpKSAnbWluZXRlc3QpKQorCisoZGVmaW5lIChkZWZhdWx0LXh2ZmItcnVuKQorICAobW9k dWxlLXJlZiAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgeG9yZykpICd4dmZiLXJ1 bikpCisKKyhkZWZpbmUgJW1pbmV0ZXN0LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCisgIDs7IEJ1aWxk LXNpZGUgbW9kdWxlcyBpbXBvcnRlZCBieSBkZWZhdWx0LgorICBgKChndWl4IGJ1aWxkIG1pbmV0 ZXN0LWJ1aWxkLXN5c3RlbSkKKyAgICAsQCVjb3B5LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKKwor KGRlZmluZSAlZGVmYXVsdC1tb2R1bGVzCisgIDs7IE1vZHVsZXMgaW4gc2NvcGUgaW4gdGhlIGJ1 aWxkLXNpZGUgZW52aXJvbm1lbnQuCisgICcoKGd1aXggYnVpbGQgZ251LWJ1aWxkLXN5c3RlbSkK KyAgICAoZ3VpeCBidWlsZCBtaW5ldGVzdC1idWlsZC1zeXN0ZW0pCisgICAgKGd1aXggYnVpbGQg dXRpbHMpKSkKKworKGRlZmluZSAoc3RhbmRhcmQtbWluZXRlc3QtcGFja2FnZXMpCisgICJSZXR1 cm4gdGhlIGxpc3Qgb2YgKE5BTUUgUEFDS0FHRSBPVVRQVVQpIG9yIChOQU1FIFBBQ0tBR0UpIHR1 cGxlcyBvZgorc3RhbmRhcmQgcGFja2FnZXMgdXNlZCBhcyBpbXBsaWNpdCBpbnB1dHMgb2YgdGhl IE1pbmV0ZXN0IGJ1aWxkIHN5c3RlbS4iCisgIGAoKCJ4dmZiLXJ1biIgLChkZWZhdWx0LXh2ZmIt cnVuKSkKKyAgICAoIm9wdGlwbmciICwoZGVmYXVsdC1vcHRpcG5nKSkKKyAgICAoIm1pbmV0ZXN0 IiAsKGRlZmF1bHQtbWluZXRlc3QpKQorICAgICxAKGZpbHRlciAobGFtYmRhIChpbnB1dCkKKyAg ICAgICAgICAgICAgICAobWVtYmVyIChjYXIgaW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAg ICAnKCJsaWJjIiAidGFyIiAiZ3ppcCIgImJ6aXAyIiAieHoiICJsb2NhbGVzIikpKQorICAgICAg ICAgICAgICAoc3RhbmRhcmQtcGFja2FnZXMpKSkpCisKKyhkZWZpbmUqIChsb3dlci1tb2QgbmFt ZSAjOmtleSAoaW1wbGljaXQtaW5wdXRzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAg ICAgICAgICAgICAgICM6cmVzdCBhcmd1bWVudHMpCisgIChkZWZpbmUgbG93ZXIgKGJ1aWxkLXN5 c3RlbS1sb3dlciBnbnUtYnVpbGQtc3lzdGVtKSkKKyAgKGFwcGx5IGxvd2VyCisgICAgICAgICBu YW1lCisgICAgICAgICAoc3Vic3RpdHV0ZS1rZXl3b3JkLWFyZ3VtZW50cyBhcmd1bWVudHMKKyAg ICAgICAgICAgOzsgbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSBhZGRzIGltcGxpY2l0IGlucHV0 cyBieSBpdHNlbGYsCisgICAgICAgICAgIDs7IHNvIGRvbid0IGxldCBnbnUtYnVpbGQtc3lzdGVt IGFkZCBpdHMgb3duIGltcGxpY2l0IGlucHV0cworICAgICAgICAgICA7OyBhcyB3ZWxsLgorICAg ICAgICAgICAoKCM6aW1wbGljaXQtaW5wdXRzPyBpbXBsaWNpdC1pbnB1dHM/ICN0KQorICAgICAg ICAgICAgI2YpCisgICAgICAgICAgICgoIzppbXBsaWNpdC1jcm9zcy1pbnB1dHM/IGltcGxpY2l0 LWNyb3NzLWlucHV0cz8gI3QpCisgICAgICAgICAgICAjZikKKyAgICAgICAgICAgKCgjOmltcG9y dGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcyAlbWluZXRlc3QtYnVpbGQtc3lzdGVtLW1vZHVs ZXMpCisgICAgICAgICAgICBpbXBvcnRlZC1tb2R1bGVzKQorICAgICAgICAgICAoKCM6bW9kdWxl cyBtb2R1bGVzICVkZWZhdWx0LW1vZHVsZXMpCisgICAgICAgICAgICBtb2R1bGVzKQorICAgICAg ICAgICAoKCM6cGhhc2VzIHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKKyAgICAgICAgICAgIHBo YXNlcykKKyAgICAgICAgICAgOzsgRW5zdXJlIG5vdGhpbmcgc25lYWtzIGludG8gdGhlIGNsb3N1 cmUuCisgICAgICAgICAgICgoIzphbGxvd2VkLXJlZmVyZW5jZXMgYWxsb3dlZC1yZWZlcmVuY2Vz ICcoKSkKKyAgICAgICAgICAgIGFsbG93ZWQtcmVmZXJlbmNlcykKKyAgICAgICAgICAgOzsgQWRk IHRoZSBpbXBsaWNpdCBpbnB1dHMuCisgICAgICAgICAgICgoIzpuYXRpdmUtaW5wdXRzIG5hdGl2 ZS1pbnB1dHMgJygpKQorICAgICAgICAgICAgKGlmIGltcGxpY2l0LWlucHV0cz8KKyAgICAgICAg ICAgICAgICAoYXBwZW5kIG5hdGl2ZS1pbnB1dHMgKHN0YW5kYXJkLW1pbmV0ZXN0LXBhY2thZ2Vz KSkKKyAgICAgICAgICAgICAgICBuYXRpdmUtaW5wdXRzKSkpKSkKKworKGRlZmluZSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtCisgIChidWlsZC1zeXN0ZW0KKyAgICAobmFtZSAnbWluZXRlc3Qt bW9kKQorICAgIChkZXNjcmlwdGlvbiAiVGhlIGJ1aWxkIHN5c3RlbSBmb3IgbWluZXRlc3QgbW9k cyIpCisgICAgKGxvd2VyIGxvd2VyLW1vZCkpKQorCis7OzsgbWluZXRlc3Quc2NtIGVuZHMgaGVy ZQpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3Vp eC9idWlsZC9taW5ldGVzdC1idWlsZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjQ5NjhkM2Y1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxk L21pbmV0ZXN0LWJ1aWxkLXN5c3RlbS5zY20KQEAgLTAsMCArMSwyMjYgQEAKKzs7OyBDb3B5cmln aHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7 OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7 OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7 OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWluZXRlc3QtYnVpbGQt c3lzdGVtKQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOnVzZS1t b2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJkZWxpbSkKKyAgIzp1 c2UtbW9kdWxlIChpY2UtOSByZWNlaXZlKQorICAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQor ICAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGdu dTopCisgICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgY29weS1idWlsZC1zeXN0ZW0pICM6cHJl Zml4IGNvcHk6KQorICAjOmV4cG9ydCAoJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgICAgbW9k LWluc3RhbGwtcGxhbiBtaW5pbWlzZS1wbmcgcmVhZC1tb2QtbmFtZSBjaGVjaykpCisKKzs7IChn dWl4IGJ1aWxkIGNvcHktYnVpbGQtc3lzdGVtKSBkb2VzIG5vdCBleHBvcnQgJ2luc3RhbGwnLgor KGRlZmluZSBjb3B5Omluc3RhbGwKKyAgKGFzc29jLXJlZiBjb3B5OiVzdGFuZGFyZC1waGFzZXMg J2luc3RhbGwpKQorCisoZGVmaW5lIChtb2QtaW5zdGFsbC1wbGFuIG1vZC1uYW1lKQorICBgKCgi LiIgLChzdHJpbmctYXBwZW5kICJzaGFyZS9taW5ldGVzdC9tb2RzLyIgbW9kLW5hbWUpCisgICAg IDs7IE9ubHkgaW5zdGFsbCBmaWxlcyB0aGF0IHdpbGwgYWN0dWFsbHkgYmUgdXNlZCBhdCBydW4g dGltZS4KKyAgICAgOzsgVGhpcyBjYW4gc2F2ZSBhIGxpdHRsZSBkaXNrIHNwYWNlLgorICAgICA7 OworICAgICA7OyBTZWUgPGh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC9taW5ldGVzdC9ibG9i L21hc3Rlci9kb2MvbHVhX2FwaS50eHQ+CisgICAgIDs7IGZvciBhbiBpbmNvbXBsZSBsaXN0IG9m IGZpbGVzIHRoYXQgY2FuIGJlIGZvdW5kIGluIG1vZHMuCisgICAgICM6aW5jbHVkZSAoIm1vZC5j b25mIiAibW9kcGFjay5jb25mIiAic2V0dGluZ3R5cGVzLnR4dCIgImRlcGVuZHMudHh0IgorICAg ICAgICAgICAgICAgICJkZXNjcmlwdGlvbi50eHQiKQorICAgICAjOmluY2x1ZGUtcmVnZXhwICgi Lmx1YSQiICIucG5nJCIgIi5vZ2ckIiAiLm9iaiQiICIuYjNkJCIgIi50ciQiCisgICAgICAgICAg ICAgICAgICAgICAgICIubXRzJCIpKSkpCisKKyhkZWZpbmUqIChndWVzcy1tb2QtbmFtZSAjOmtl eSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAiVHJ5IHRvIGRldGVybWluZSB0aGUgbmFt ZSBvZiB0aGUgbW9kIG9yIG1vZHBhY2sgdGhhdCBpcyBiZWluZyBidWlsdC4KK0lmIGl0IGlzIHVu a25vd24sIG1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MuIgorICA7OyBNaW5ldGVzdCBkb2Vzbid0IGNh cmUgYWJvdXQgdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiAic2hhcmUvbWluZXRlc3QvbW9kcyIKKyAg Ozsgc28gdGhlcmUgaXMgbm8gdGVjaG5pY2FsIHByb2JsZW0gaWYgdGhlIGRpcmVjdG9yeSBuYW1l cyBkb24ndCBtYXRjaAorICA7OyB0aGUgbW9kIG5hbWVzLiAgVGhlIGRpcmVjdG9yeSBjYW4gYXBw ZWFyIGluIHRoZSBHVUkgaWYgdGhlIG1vZHBhY2sKKyAgOzsgZG9lc24ndCBoYXZlIHRoZSAnbmFt ZScgc2V0IHRob3VnaCwgc28gdHJ5IHRvIG1ha2UgdGhlIGd1ZXNzLgorICAoZGVmaW5lIChndWVz cykKKyAgICAobGV0KiAoKHNvdXJjZSAoYXNzb2MtcmVmIGlucHV0cyAic291cmNlIikpCisgICAg ICAgICAgIDs7IERvbid0IHJldGFpbiBhIHJlZmVyZW5jZSB0byB0aGUgc3RvcmUuCisgICAgICAg ICAgIChmaWxlLW5hbWUgKHN0cmlwLXN0b3JlLWZpbGUtbmFtZSBzb3VyY2UpKQorICAgICAgICAg ICA7OyBUaGUgIm1pbmV0ZXN0LSIgcHJlZml4IGlzIG5vdCBpbmZvcm1hdGl2ZSwgc28gc3RyaXAg aXQuCisgICAgICAgICAgIChmaWxlLW5hbWUgKGlmIChzdHJpbmctcHJlZml4PyAibWluZXRlc3Qt IiBmaWxlLW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgZmlsZS1u YW1lIChzdHJpbmctbGVuZ3RoICJtaW5ldGVzdC0iKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsZS1uYW1lKSkKKyAgICAgICAgICAgOzsgU3RyaXAgIi1jaGVja291dCIgc3VmZml4ZXMg b2YgZ2l0IGNoZWNrb3V0cy4KKyAgICAgICAgICAgKGZpbGUtbmFtZSAoaWYgKHN0cmluZy1zdWZm aXg/ICItY2hlY2tvdXQiIGZpbGUtbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1 YnN0cmluZyBmaWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC0gKHN0cmluZy1sZW5ndGgg ZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctbGVuZ3RoICItbWluZXRlc3QiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUt bmFtZSkpCisgICAgICAgICAgIChmaXJzdC1kb3QgKHN0cmluZy1pbmRleCBmaWxlLW5hbWUgI1wu KSkKKyAgICAgICAgICAgOzsgSWYgdGhlIHNvdXJjZSBjb2RlIGlzIGluIGFuIGFyY2hpdmUgKC50 YXIuZ3osIC56aXAsIC4uLiksCisgICAgICAgICAgIDs7IHN0cmlwIHRoZSBleHRlbnNpb24uCisg ICAgICAgICAgIChmaWxlLW5hbWUgKGlmIGZpcnN0LWRvdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3Vic3RyaW5nIGZpbGUtbmFtZSAwIGZpcnN0LWRvdCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsZS1uYW1lKSkpCisgICAgICAoZm9ybWF0IChjdXJyZW50LWVycm9yLXBvcnQp CisgICAgICAgICAgICAgICJ3YXJuaW5nOiB0aGUgbW9kcGFjayB+YSBkaWQgbm90IHNldCAnbmFt ZScgaW4gJ21vZHBhY2suY29uZid+JSIKKyAgICAgICAgICAgICAgZmlsZS1uYW1lKQorICAgICAg ZmlsZS1uYW1lKSkKKyAgKGNvbmQgKChmaWxlLWV4aXN0cz8gIm1vZC5jb25mIikKKyAgICAgICAg IChyZWFkLW1vZC1uYW1lICJtb2QuY29uZiIpKQorICAgICAgICAoKGZpbGUtZXhpc3RzPyAibW9k cGFjay5jb25mIikKKyAgICAgICAgIChyZWFkLW1vZC1uYW1lICJtb2RwYWNrLmNvbmYiIGd1ZXNz KSkKKyAgICAgICAgKCN0IChndWVzcykpKSkKKworKGRlZmluZSogKGluc3RhbGwgIzprZXkgaW5w dXRzICM6YWxsb3ctb3RoZXIta2V5cyAjOnJlc3QgYXJndW1lbnRzKQorICAoYXBwbHkgY29weTpp bnN0YWxsCisgICAgICAgICAjOmluc3RhbGwtcGxhbiAobW9kLWluc3RhbGwtcGxhbiAoYXBwbHkg Z3Vlc3MtbW9kLW5hbWUgYXJndW1lbnRzKSkKKyAgICAgICAgIGFyZ3VtZW50cykpCisKKyhkZWZp bmUgJXBuZy1tYWdpYy1ieXRlcworICA7OyBNYWdpYyBieXRlcyBvZiBQTkcgaW1hZ2VzLCBzZWUg 4oCYNS4yIFBORyBzaWduYXR1cmVz4oCZIGluCisgIDs7IOKAmFBvcnRhYmxlIE5ldHdvcmsgR3Jh cGhpY3MgKFBORykgU3BlY2lmaWNhdGlvbiAoU2Vjb25kIEVkaXRpb24p4oCZCisgIDs7IG9uIDxo dHRwczovL3d3dy53My5vcmcvVFIvUE5HLz4uCisgICN2dTgoMTM3IDgwIDc4IDcxIDEzIDEwIDI2 IDEwKSkKKworKGRlZmluZSBwbmctZmlsZT8KKyAgKChAQCAoZ3VpeCBidWlsZCB1dGlscykgZmls ZS1oZWFkZXItbWF0Y2gpICVwbmctbWFnaWMtYnl0ZXMpKQorCisoZGVmaW5lKiAobWluaW1pc2Ut cG5nICM6a2V5IGlucHV0cyBuYXRpdmUtaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIk1p bmltaXNlIFBORyBpbWFnZXMgZm91bmQgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiIKKyAgKGRl ZmluZSBvcHRpcG5nICh3aGljaCAib3B0aXBuZyIpKQorICAoZGVmaW5lIChvcHRpbWlzZSBpbWFn ZSkKKyAgICAoZm9ybWF0ICN0ICJPcHRpbWlzaW5nIH5hfiUiIGltYWdlKQorICAgIChtYWtlLWZp bGUtd3JpdGFibGUgKGRpcm5hbWUgaW1hZ2UpKQorICAgIChtYWtlLWZpbGUtd3JpdGFibGUgaW1h Z2UpCisgICAgKGRlZmluZSBvbGQtc2l6ZSAoc3RhdDpzaXplIChzdGF0IGltYWdlKSkpCisgICAg OzsgVGhlIG1vZCAidGVjaG5pYyIgaGFzIGEgZmlsZSAidGVjaG5pY19tdXNpY19wbGF5ZXJfdG9w LnBuZyIgdGhhdAorICAgIDs7IGFjdHVhbGx5IGlzIGEgSlBFRyBmaWxlLCBzZWUKKyAgICA7OyA8 aHR0cHM6Ly9naXRodWIuY29tL21pbmV0ZXN0LW1vZHMvdGVjaG5pYy9pc3N1ZXMvNTkwPi4KKyAg ICAoaWYgKHBuZy1maWxlPyBpbWFnZSkKKyAgICAgICAgKGludm9rZSBvcHRpcG5nICItbzQiICIt cXVpZXQiIGltYWdlKQorICAgICAgICAoZm9ybWF0ICN0ICJ3YXJuaW5nOiBza2lwcGluZyB+YSBi ZWNhdXNlIGl0J3Mgbm90IGFjdHVhbGx5IGEgUE5HIGltYWdlfiUiCisgICAgICAgICAgICAgICAg aW1hZ2UpKQorICAgIChkZWZpbmUgbmV3LXNpemUgKHN0YXQ6c2l6ZSAoc3RhdCBpbWFnZSkpKQor ICAgICh2YWx1ZXMgb2xkLXNpemUgbmV3LXNpemUpKQorICAoZGVmaW5lIGZpbGVzIChmaW5kLWZp bGVzICIuIiAiLnBuZyQiKSkKKyAgKGxldCBsb29wICgodG90YWwtb2xkLXNpemUgMCkKKyAgICAg ICAgICAgICAodG90YWwtbmV3LXNpemUgMCkKKyAgICAgICAgICAgICAoaW1hZ2VzIChmaW5kLWZp bGVzICIuIiAiLnBuZyQiKSkpCisgICAgKGNvbmQgKChwYWlyPyBpbWFnZXMpCisgICAgICAgICAg IChyZWNlaXZlIChvbGQtc2l6ZSBuZXctc2l6ZSkKKyAgICAgICAgICAgICAgIChvcHRpbWlzZSAo Y2FyIGltYWdlcykpCisgICAgICAgICAgICAgKGxvb3AgKCsgdG90YWwtb2xkLXNpemUgb2xkLXNp emUpCisgICAgICAgICAgICAgICAgICAgKCsgdG90YWwtbmV3LXNpemUgbmV3LXNpemUpCisgICAg ICAgICAgICAgICAgICAgKGNkciBpbWFnZXMpKSkpCisgICAgICAgICAgKCg9IHRvdGFsLW9sZC1z aXplIDApCisgICAgICAgICAgIChmb3JtYXQgI3QgIlRoZXJlIHdlcmUgbm8gUE5HIGltYWdlcyB0 byBtaW5pbWlzZS4iKSkKKyAgICAgICAgICAoI3QKKyAgICAgICAgICAgKGZvcm1hdCAjdCAiTWlu aW1pc2F0aW9uIHJlZHVjZWQgc2l6ZSBvZiBpbWFnZXMgYnkgfiwyZiUgKH4sMmYgTWlCIHRvIH4s MmYgTWlCKX4lIgorICAgICAgICAgICAgICAgICAgICgqIDEwMC4wICgtIDEgKC8gdG90YWwtbmV3 LXNpemUgdG90YWwtb2xkLXNpemUpKSkKKyAgICAgICAgICAgICAgICAgICAoLyB0b3RhbC1vbGQt c2l6ZSAoZXhwdCAxMDI0IDIpKQorICAgICAgICAgICAgICAgICAgICgvIHRvdGFsLW5ldy1zaXpl IChleHB0IDEwMjQgMikpKSkpKSkKKworKGRlZmluZSBuYW1lLXJlZ2V4cCAobWFrZS1yZWdleHAg Il5uYW1lWyBdKj0oLispJCIpKQorCisoZGVmaW5lKiAocmVhZC1tb2QtbmFtZSBtb2QuY29uZiAj Om9wdGlvbmFsIG5vdC1mb3VuZCkKKyAgIlJlYWQgdGhlIG5hbWUgb2YgYSBtb2QgZnJvbSBNT0Qu Q09ORi4gIElmIE1PRC5DT05GCitkb2VzIG5vdCBoYXZlIGEgbmFtZSBmaWVsZCBhbmQgTk9ULUZP VU5EIGlzICNmYWxzZSwgcmFpc2UgYW4KK2Vycm9yLiAgSWYgTk9ULUZPVU5EIGlzIFRSVUUsIGNh bGwgTk9ULUZPVU5EIGluc3RlYWQuIgorICAoY2FsbC13aXRoLWlucHV0LWZpbGUgbW9kLmNvbmYK KyAgICAobGFtYmRhIChwb3J0KQorICAgICAgKGxldCBsb29wICgpCisgICAgICAgIChkZWZpbmUg bGluZSAocmVhZC1saW5lIHBvcnQpKQorICAgICAgICAoaWYgKGVvZi1vYmplY3Q/IGxpbmUpCisg ICAgICAgICAgICAoaWYgbm90LWZvdW5kCisgICAgICAgICAgICAgICAgKG5vdC1mb3VuZCkKKyAg ICAgICAgICAgICAgICAoZXJyb3IgIn5hIGRvZXMgbm90IGhhdmUgYSAnbmFtZScgZmllbGQiIG1v ZC5jb25mKSkKKyAgICAgICAgICAgIChsZXQgKChtYXRjaCAocmVnZXhwLWV4ZWMgbmFtZS1yZWdl eHAgbGluZSkpKQorICAgICAgICAgICAgICAoaWYgKHJlZ2V4cC1tYXRjaD8gbWF0Y2gpCisgICAg ICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0tYm90aCAobWF0Y2g6c3Vic3RyaW5nIG1hdGNoIDEp ICNcICkKKyAgICAgICAgICAgICAgICAgIChsb29wKSkpKSkpKSkKKworKGRlZmluZSogKGNoZWNr ICM6a2V5IG91dHB1dHMgdGVzdHM/ICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIlRlc3Qgd2hldGhl ciB0aGUgbW9kIGxvYWRzLiAgVGhlIG1vZCBtdXN0IGZpcnN0IGJlIGluc3RhbGxlZCBmaXJzdC4i CisgIChkZWZpbmUgKGFsbC1tb2QtbmFtZXMgZGlyZWN0b3JpZXMpCisgICAgKGFwcGVuZC1tYXAK KyAgICAgKGxhbWJkYSAoZGlyZWN0b3J5KQorICAgICAgIChtYXAgcmVhZC1tb2QtbmFtZSAoZmlu ZC1maWxlcyBkaXJlY3RvcnkgIm1vZC5jb25mIikpKQorICAgICBkaXJlY3RvcmllcykpCisgICh3 aGVuIHRlc3RzPworICAgIChta2RpciAiZ3VpeF90ZXN0d29ybGQiKQorICAgIDs7IEFkZCB0aGUg bW9kIHRvIHRoZSBtb2Qgc2VhcmNoIHBhdGgsIHN1Y2ggdGhhdCBNaW5ldGVzdCBjYW4gZmluZCBp dC4KKyAgICAoc2V0ZW52ICJNSU5FVEVTVF9NT0RfUEFUSCIKKyAgICAgICAgICAgIChsaXN0LT5z ZWFyY2gtcGF0aC1hcy1zdHJpbmcKKyAgICAgICAgICAgICAoY29ucworICAgICAgICAgICAgICAo c3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpICIvc2hhcmUvbWluZXRlc3Qv bW9kcyIpCisgICAgICAgICAgICAgIChzZWFyY2gtcGF0aC1hcy1zdHJpbmctPmxpc3QKKyAgICAg ICAgICAgICAgIChvciAoZ2V0ZW52ICJNSU5FVEVTVF9NT0RfUEFUSCIpICIiKSkpCisgICAgICAg ICAgICAgIjoiKSkKKyAgICAod2l0aC1kaXJlY3RvcnktZXhjdXJzaW9uICJndWl4X3Rlc3R3b3Js ZCIKKyAgICAgIChzZXRlbnYgIkhPTUUiIChnZXRjd2QpKQorICAgICAgOzsgQ3JlYXRlIGEgd29y bGQgaW4gd2hpY2ggYWxsIG1vZHMgYXJlIGxvYWRlZC4KKyAgICAgIChjYWxsLXdpdGgtb3V0cHV0 LWZpbGUgIndvcmxkLm10IgorICAgICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAgIChkaXNw bGF5CisgICAgICAgICAgICJnYW1laWQgPSBtaW5ldGVzdAord29ybGRfbmFtZSA9IGd1aXhfdGVz dHdvcmxkCitiYWNrZW5kID0gc3FsaXRlMworcGxheWVyX2JhY2tlbmQgPSBzcWxpdGUzCithdXRo X2JhY2tlbmQgPSBzcWxpdGUzCisiIHBvcnQpCisgICAgICAgICAgKGZvci1lYWNoCisgICAgICAg ICAgIChsYW1iZGEgKG1vZCkKKyAgICAgICAgICAgICAoZm9ybWF0IHBvcnQgImxvYWRfbW9kX35h ID0gdHJ1ZX4lIiBtb2QpKQorICAgICAgICAgICAoYWxsLW1vZC1uYW1lcyAoc2VhcmNoLXBhdGgt YXMtc3RyaW5nLT5saXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0ZW52ICJNSU5F VEVTVF9NT0RfUEFUSCIpKSkpKSkKKyAgICAgIChyZWNlaXZlIChwb3J0IHBpZCkKKyAgICAgICAg ICAoKEBAIChndWl4IGJ1aWxkIHV0aWxzKSBvcGVuLXBpcGUtd2l0aC1zdGRlcnIpCisgICAgICAg ICAgICJ4dmZiLXJ1biIgIi0tIiAibWluZXRlc3QiICItLWluZm8iICItLXdvcmxkIiAiLiIgIi0t Z28iKQorICAgICAgICAoZm9ybWF0ICN0ICJTdGFydGVkIE1pbmV0ZXN0IHdpdGggYWxsIG1vZHMg bG9hZGVkIGZvciB0ZXN0aW5nfiUiKQorICAgICAgICA7OyBTY2FuIHRoZSBvdXRwdXQgZm9yIGVy cm9yIG1lc3NhZ2VzLgorICAgICAgICA7OyBXaGVuIHRoZSBwbGF5ZXIgaGFzIGpvaW5lZCB0aGUg c2VydmVyLCBzdG9wIG1pbmV0ZXN0LgorICAgICAgICAoZGVmaW5lIChlcnJvcj8gbGluZSkKKyAg ICAgICAgICAoYW5kIChzdHJpbmc/IGxpbmUpCisgICAgICAgICAgICAgICAoc3RyaW5nLWNvbnRh aW5zIGxpbmUgIjogRVJST1JbIikpKQorICAgICAgICAoZGVmaW5lIChzdG9wPyBsaW5lKQorICAg ICAgICAgIChhbmQgKHN0cmluZz8gbGluZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctY29udGFp bnMgbGluZSAiQUNUSU9OW1NlcnZlcl06IHNpbmdsZXBsYXllciBbMTI3LjAuMC4xXSBqb2lucyBn YW1lLiIpKSkKKyAgICAgICAgKGxldCBsb29wICgpCisgICAgICAgICAgKG1hdGNoIChyZWFkLWxp bmUgcG9ydCkKKyAgICAgICAgICAgICgoPyBlcnJvcj8gbGluZSkKKyAgICAgICAgICAgICAoZXJy b3IgIm1pbmV0ZXN0IHJhaXNlZCBhbiBlcnJvcjogfmEiIGxpbmUpKQorICAgICAgICAgICAgKCg/ IHN0b3A/KQorICAgICAgICAgICAgIChraWxsIHBpZCBTSUdJTlQpCisgICAgICAgICAgICAgKGNs b3NlLXBvcnQgcG9ydCkKKyAgICAgICAgICAgICAod2FpdHBpZCBwaWQpKQorICAgICAgICAgICAg KCg/IHN0cmluZz8gbGluZSkKKyAgICAgICAgICAgICAoZGlzcGxheSBsaW5lKQorICAgICAgICAg ICAgIChuZXdsaW5lKQorICAgICAgICAgICAgIChsb29wKSkKKyAgICAgICAgICAgICgoPyBlb2Yt b2JqZWN0PykKKyAgICAgICAgICAgICAoZXJyb3IgIm1pbmV0ZXN0IGRpZG4ndCBzdGFydCIpKSkp KSkpKQorCisoZGVmaW5lICVzdGFuZGFyZC1waGFzZXMKKyAgKG1vZGlmeS1waGFzZXMgZ251OiVz dGFuZGFyZC1waGFzZXMKKyAgICAoZGVsZXRlICdib290c3RyYXApCisgICAgKGRlbGV0ZSAnY29u ZmlndXJlKQorICAgIChhZGQtYmVmb3JlICdidWlsZCAnbWluaW1pc2UtcG5nIG1pbmltaXNlLXBu ZykKKyAgICAoZGVsZXRlICdidWlsZCkKKyAgICAoZGVsZXRlICdjaGVjaykKKyAgICAocmVwbGFj ZSAnaW5zdGFsbCBpbnN0YWxsKQorICAgIDs7IFRoZSAnY2hlY2snIHBoYXNlIHJlcXVpcmVzIHRo ZSBtb2QgdG8gYmUgaW5zdGFsbGVkLAorICAgIDs7IHNvIG1vdmUgdGhlICdjaGVjaycgcGhhc2Ug YWZ0ZXIgdGhlICdpbnN0YWxsJyBwaGFzZS4KKyAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdjaGVj ayBjaGVjaykpKQorCis7OzsgbWluZXRlc3QtYnVpbGQtc3lzdGVtLnNjbSBlbmRzIGhlcmUKLS0g CjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename*0=0005-import-utils-Recognise-GPL-3.0-or-later-and-friends.patc; filename*1=h Content-Type: text/x-patch; name="0005-import-utils-Recognise-GPL-3.0-or-later-and-friends.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4Y2YyMjQ1ZDllY2RkNmY4ZGQ2NWQ1YmYyYjliZjY1MzI1MTFjYTViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFRodSwgNSBBdWcgMjAyMSAyMTowMDo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MjBdIGltcG9ydC91dGlsczogUmVjb2duaXNlIEdQTC0zLjAtb3ItbGF0ZXIgYW5kIGZyaWVuZHMu CgoqIGd1aXgvaW1wb3J0L3V0aWxzLnNjbSAoc3BkeC1zdHJpbmctPmxpY2Vuc2UpOiBSZWNvZ25p c2UKICBHUEwtTi1vbmx5IGFuZCBHUEwtTi1vci1sYXRlci4gIExpa2V3aXNlIGZvciBMR1BMIGFu ZCBBR1BMLgotLS0KIGd1aXgvaW1wb3J0L3V0aWxzLnNjbSB8IDE4ICsrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9ndWl4L2lt cG9ydC91dGlscy5zY20gYi9ndWl4L2ltcG9ydC91dGlscy5zY20KaW5kZXggZDgxNzMxOGE5MS4u ZDFiODA3NmRkZCAxMDA2NDQKLS0tIGEvZ3VpeC9pbXBvcnQvdXRpbHMuc2NtCisrKyBiL2d1aXgv aW1wb3J0L3V0aWxzLnNjbQpAQCAtMTMzLDggKzEzMywxNCBAQCBvZiB0aGUgc3RyaW5nIFZFUlNJ T04gaXMgcmVwbGFjZWQgYnkgdGhlIHN5bWJvbCAndmVyc2lvbi4iCiAgIDs7IFBsZWFzZSB1cGRh dGUgZ3VpeC9saWNlbnNlcy5zY20gd2hlbiBtb2RpZnlpbmcKICAgOzsgdGhpcyBsaXN0IHRvIGF2 b2lkIG1pc21hdGNoZXMuCiAgIChtYXRjaCBzdHIKKyAgICA7OyAiR1BMLU4rIiBoYXMgYmVlbiBk ZXByZWNhdGVkIGluIGZhdm91ciBvZiAiR1BMLU4tb3ItbGF0ZXIiLgorICAgIDs7ICJHUEwtTiIg aGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgIkdQTC1OLW9ubHkiCisgICAgOzsgb3Ig IkdQTC1OLW9yLWxhdGVyIiBhcyBhcHByb3ByaWF0ZS4gIExpa2V3aXNlIGZvciBMR1BMCisgICAg OzsgYW5kIEFHUEwKICAgICAoIkFHUEwtMS4wIiAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6 YWdwbDEpCiAgICAgKCJBR1BMLTMuMCIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmFncGwz KQorICAgICgiQUdQTC0zLjAtb25seSIgICAgICAgICAgICAgICAnbGljZW5zZTphZ3BsMykKKyAg ICAoIkFHUEwtMy4wLW9yLWxhdGVyIiAgICAgICAgICAgJ2xpY2Vuc2U6YWdwbDMrKQogICAgICgi QXBhY2hlLTEuMSIgICAgICAgICAgICAgICAgICAnbGljZW5zZTphc2wxLjEpCiAgICAgKCJBcGFj aGUtMi4wIiAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmFzbDIuMCkKICAgICAoIkJTTC0xLjAi ICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Ym9vc3QxLjApCkBAIC0xNjEsMTEgKzE2Nywx NyBAQCBvZiB0aGUgc3RyaW5nIFZFUlNJT04gaXMgcmVwbGFjZWQgYnkgdGhlIHN5bWJvbCAndmVy c2lvbi4iCiAgICAgKCJHRkRMLTEuMyIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmZkbDEu MyspCiAgICAgKCJHaWZ0d2FyZSIgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmdpZnR3YXJl KQogICAgICgiR1BMLTEuMCIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKQorICAg ICgiR1BMLTEuMC1vbmx5IiAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKQogICAgICgiR1BM LTEuMCsiICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpncGwxKykKKyAgICAoIkdQTC0xLjAt b3ItbGF0ZXIiICAgICAgICAgICAgJ2xpY2Vuc2U6Z3BsMSspCiAgICAgKCJHUEwtMi4wIiAgICAg ICAgICAgICAgICAgICAgICdsaWNlbnNlOmdwbDIpCisgICAgKCJHUEwtMi4wLW9ubHkiICAgICAg ICAgICAgICAgICdsaWNlbnNlOmdwbDIpCiAgICAgKCJHUEwtMi4wKyIgICAgICAgICAgICAgICAg ICAgICdsaWNlbnNlOmdwbDIrKQorICAgICgiR1BMLTIuMC1vci1sYXRlciIgICAgICAgICAgICAn bGljZW5zZTpncGwyKykKICAgICAoIkdQTC0zLjAiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vu c2U6Z3BsMykKKyAgICAoIkdQTC0zLjAtb25seSIgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Z3Bs MykKICAgICAoIkdQTC0zLjArIiAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6Z3BsMyspCisg ICAgKCJHUEwtMy4wLW9yLWxhdGVyIiAgICAgICAgICAgICdsaWNlbnNlOmdwbDMrKQogICAgICgi SVNDIiAgICAgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTppc2MpCiAgICAgKCJJSkciICAg ICAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmlqZykKICAgICAoIkltbGliMiIgICAgICAg ICAgICAgICAgICAgICAgJ2xpY2Vuc2U6aW1saWIyKQpAQCAtMTczLDExICsxODUsMTcgQEAgb2Yg dGhlIHN0cmluZyBWRVJTSU9OIGlzIHJlcGxhY2VkIGJ5IHRoZSBzeW1ib2wgJ3ZlcnNpb24uIgog ICAgICgiSVBMLTEuMCIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTppYm1wbDEuMCkKICAg ICAoIkxBTC0xLjMiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6bGFsMS4zKQogICAgICgi TEdQTC0yLjAiICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKQorICAgICgiTEdQ TC0yLjAtb25seSIgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKQogICAgICgiTEdQTC0y LjArIiAgICAgICAgICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4wKykKKyAgICAoIkxHUEwtMi4w LW9yLWxhdGVyIiAgICAgICAgICAgJ2xpY2Vuc2U6bGdwbDIuMCspCiAgICAgKCJMR1BMLTIuMSIg ICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjEpCisgICAgKCJMR1BMLTIuMS1vbmx5 IiAgICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjEpCiAgICAgKCJMR1BMLTIuMSsiICAgICAg ICAgICAgICAgICAgICdsaWNlbnNlOmxncGwyLjErKQorICAgICgiTEdQTC0yLjEtb3ItbGF0ZXIi ICAgICAgICAgICAnbGljZW5zZTpsZ3BsMi4xKykKICAgICAoIkxHUEwtMy4wIiAgICAgICAgICAg ICAgICAgICAgJ2xpY2Vuc2U6bGdwbDMpCisgICAgKCJMR1BMLTMuMC1vbmx5IiAgICAgICAgICAg ICAgICdsaWNlbnNlOmxncGwzKQogICAgICgiTEdQTC0zLjArIiAgICAgICAgICAgICAgICAgICAn bGljZW5zZTpsZ3BsMyspCisgICAgKCJMR1BMLTMuMC1vci1sYXRlciIgICAgICAgICAgICdsaWNl bnNlOmxncGwzKykKICAgICAoIk1QTC0xLjAiICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2U6 bXBsMS4wKQogICAgICgiTVBMLTEuMSIgICAgICAgICAgICAgICAgICAgICAnbGljZW5zZTptcGwx LjEpCiAgICAgKCJNUEwtMi4wIiAgICAgICAgICAgICAgICAgICAgICdsaWNlbnNlOm1wbDIuMCkK LS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0006-guix-Add-ContentDB-importer.patch" Content-Type: text/x-patch; name="0006-guix-Add-ContentDB-importer.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2NTYxNGMwMjFhZDMzZjQxMTZkNjMxYTdlMjRhMzU2ZDkyMzY4MDNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMTQ6NDQ6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 LzIwXSBndWl4OiBBZGQgQ29udGVudERCIGltcG9ydGVyLgoKKiBndWl4L2ltcG9ydC9jb250ZW50 ZGIuc2NtOiBOZXcgZmlsZS4KKiBndWl4L3NjcmlwdHMvaW1wb3J0L2NvbnRlbnRkYi5zY206IE5l dyBmaWxlLgoqIHRlc3RzL2NvbnRlbnRkYi5zY206IE5ldyBmaWxlLgoqIE1ha2VmaWxlLmFtIChN T0RVTEVTLCBTQ01fVEVTVFMpOiBSZWdpc3RlciB0aGVtLgoqIHBvL2d1aXgvUE9URklMRVMuaW46 IExpa2V3aXNlLgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nIGd1aXggaW1wb3J0KTogRG9jdW1l bnQgaXQuCi0tLQogTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZG9j L2d1aXgudGV4aSAgICAgICAgICAgICAgICAgICAgfCAgMzIgKysrCiBndWl4L2ltcG9ydC9taW5l dGVzdC5zY20gICAgICAgICB8IDQ1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBn dWl4L3NjcmlwdHMvaW1wb3J0LnNjbSAgICAgICAgICB8ICAgMyArLQogZ3VpeC9zY3JpcHRzL2lt cG9ydC9taW5ldGVzdC5zY20gfCAxMTcgKysrKysrKysKIHBvL2d1aXgvUE9URklMRVMuaW4gICAg ICAgICAgICAgIHwgICAxICsKIHRlc3RzL21pbmV0ZXN0LnNjbSAgICAgICAgICAgICAgIHwgMzU1 ICsrKysrKysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA5NjYgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgvaW1wb3J0L21pbmV0 ZXN0LnNjbQogY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgvc2NyaXB0cy9pbXBvcnQvbWluZXRlc3Qu c2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbWluZXRlc3Quc2NtCgpkaWZmIC0tZ2l0IGEv TWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCBmNDQzOWNlOTNiLi42MjQzNTgzNjE2IDEw MDY0NAotLS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMjYyLDYgKzI2Miw3 IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L2ltcG9ydC9qc29uLnNjbQkJCQlcCiAgIGd1aXgv aW1wb3J0L2tkZS5zY20JCQkJXAogICBndWl4L2ltcG9ydC9sYXVuY2hwYWQuc2NtICAgCQkJXAor ICBndWl4L2ltcG9ydC9taW5ldGVzdC5zY20gICAJCQlcCiAgIGd1aXgvaW1wb3J0L29wYW0uc2Nt CQkJCVwKICAgZ3VpeC9pbXBvcnQvcHJpbnQuc2NtCQkJCVwKICAgZ3VpeC9pbXBvcnQvcHlwaS5z Y20JCQkJXApAQCAtMzA0LDYgKzMwNSw3IEBAIE1PRFVMRVMgPQkJCQkJXAogICBndWl4L3Njcmlw dHMvaW1wb3J0L2dvLnNjbQkJCVwKICAgZ3VpeC9zY3JpcHRzL2ltcG9ydC9oYWNrYWdlLnNjbQkJ XAogICBndWl4L3NjcmlwdHMvaW1wb3J0L2pzb24uc2NtICAJCVwKKyAgZ3VpeC9zY3JpcHRzL2lt cG9ydC9taW5ldGVzdC5zY20gIAkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L29wYW0uc2NtCQkJ XAogICBndWl4L3NjcmlwdHMvaW1wb3J0L3B5cGkuc2NtCQkJXAogICBndWl4L3NjcmlwdHMvaW1w b3J0L3N0YWNrYWdlLnNjbQkJXApAQCAtNDcwLDYgKzQ3Miw3IEBAIFNDTV9URVNUUyA9CQkJCQlc CiAgIHRlc3RzL2ltcG9ydC11dGlscy5zY20JCQlcCiAgIHRlc3RzL2luZmVyaW9yLnNjbQkJCQlc CiAgIHRlc3RzL2xpbnQuc2NtCQkJCVwKKyAgdGVzdHMvbWluZXRlc3Quc2NtCQkJCVwKICAgdGVz dHMvbW9kdWxlcy5zY20JCQkJXAogICB0ZXN0cy9tb25hZHMuc2NtCQkJCVwKICAgdGVzdHMvbmFy LnNjbQkJCQlcCmRpZmYgLS1naXQgYS9kb2MvZ3VpeC50ZXhpIGIvZG9jL2d1aXgudGV4aQppbmRl eCBkNDRlY2MyMDA1Li44NTRlMjgyYjM4IDEwMDY0NAotLS0gYS9kb2MvZ3VpeC50ZXhpCisrKyBi L2RvYy9ndWl4LnRleGkKQEAgLTExMzE0LDYgKzExMzE0LDM4IEBAIGFuZCBnZW5lcmF0ZSBwYWNr YWdlIGV4cHJlc3Npb25zIGZvciBhbGwgdGhvc2UgcGFja2FnZXMgdGhhdCBhcmUgbm90IHlldAog aW4gR3VpeC4KIEBlbmQgdGFibGUKIAorQGl0ZW0gY29udGVudGRiCitAY2luZGV4IG1pbmV0ZXN0 CitAY2luZGV4IENvbnRlbnREQgorSW1wb3J0IG1ldGFkYXRhIGZyb20gQHVyZWZ7aHR0cHM6Ly9j b250ZW50Lm1pbmV0ZXN0Lm5ldCwgQ29udGVudERCfS4KK0luZm9ybWF0aW9uIGlzIHRha2VuIGZy b20gdGhlIEpTT04tZm9ybWF0dGVkIG1ldGFkYXRhIHByb3ZpZGVkIHRocm91Z2gKK0B1cmVme2h0 dHBzOi8vY29udGVudC5taW5ldGVzdC5uZXQvaGVscC9hcGkvLCBDb250ZW50REIncyBBUEl9IGFu ZAoraW5jbHVkZXMgbW9zdCByZWxldmFudCBpbmZvcm1hdGlvbiwgaW5jbHVkaW5nIGRlcGVuZGVu Y2llcy4gIFRoZXJlIGFyZQorc29tZSBjYXZlYXRzLCBob3dldmVyLiAgVGhlIGxpY2Vuc2UgaW5m b3JtYXRpb24gaXMgb2Z0ZW4gaW5jb21wbGV0ZS4KK1RoZSBjb21taXQgaGFzaCBpcyBzb21ldGlt ZXMgbWlzc2luZy4gIFRoZSBkZXNjcmlwdGlvbnMgYXJlIGluIHRoZQorTWFya2Rvd24gZm9ybWF0 LCBidXQgR3VpeCB1c2VzIFRleGluZm8gaW5zdGVhZC4gIFRleHR1cmUgcGFja3MgYW5kCitzdWJn YW1lcyBhcmUgdW5zdXBwb3J0ZWQuCisKK1RoZSBjb21tYW5kIGJlbG93IGltcG9ydHMgbWV0YWRh dGEgZm9yIHRoZSBNZXNlY29ucyBtb2QgYnkgSmVpamE6CisKK0BleGFtcGxlCitndWl4IGltcG9y dCBtaW5ldGVzdCBKZWlqYS9tZXNlY29ucworQGVuZCBleGFtcGxlCisKK1RoZSBhdXRob3IgbmFt ZSBjYW4gYWxzbyBiZSBsZWZ0IG91dDoKKworQGV4YW1wbGUKK2d1aXggaW1wb3J0IG1pbmV0ZXN0 IG1lc2Vjb25zCitAZW5kIGV4YW1wbGUKKworQHRhYmxlIEBjb2RlCitAaXRlbSAtLXJlY3Vyc2l2 ZQorQGl0ZW14IC1yCitUcmF2ZXJzZSB0aGUgZGVwZW5kZW5jeSBncmFwaCBvZiB0aGUgZ2l2ZW4g dXBzdHJlYW0gcGFja2FnZSByZWN1cnNpdmVseQorYW5kIGdlbmVyYXRlIHBhY2thZ2UgZXhwcmVz c2lvbnMgZm9yIGFsbCB0aG9zZSBwYWNrYWdlcyB0aGF0IGFyZSBub3QgeWV0CitpbiBHdWl4Lgor QGVuZCB0YWJsZQorCiBAaXRlbSBjcGFuCiBAY2luZGV4IENQQU4KIEltcG9ydCBtZXRhZGF0YSBm cm9tIEB1cmVme2h0dHBzOi8vd3d3Lm1ldGFjcGFuLm9yZy8sIE1ldGFDUEFOfS4KZGlmZiAtLWdp dCBhL2d1aXgvaW1wb3J0L21pbmV0ZXN0LnNjbSBiL2d1aXgvaW1wb3J0L21pbmV0ZXN0LnNjbQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lMWY4NDg3Yjc1Ci0tLSAvZGV2 L251bGwKKysrIGIvZ3VpeC9pbXBvcnQvbWluZXRlc3Quc2NtCkBAIC0wLDAgKzEsNDU2IEBACis7 OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7 OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBH dWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7Ozsg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggaW1wb3J0IG1pbmV0 ZXN0KQorICAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05 IHJlY2VpdmUpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgdGhyZWFkcykKKyAgIzp1c2UtbW9kdWxl IChpY2UtOSBoYXNoLXRhYmxlKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVz ZS1tb2R1bGUgKHNyZmkgc3JmaS0yKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMSkKKyAg Izp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykK KyAgIzp1c2UtbW9kdWxlIChndWl4IHVpKQorICAjOnVzZS1tb2R1bGUgKGd1aXggaTE4bikKKyAg Izp1c2UtbW9kdWxlIChndWl4IG1lbW9pemF0aW9uKQorICAjOnVzZS1tb2R1bGUgKGd1aXggc2Vy aWFsaXphdGlvbikKKyAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCB1dGlscykKKyAgIzp1c2Ut bW9kdWxlIChndWl4IGltcG9ydCBqc29uKQorICAjOnVzZS1tb2R1bGUgKChnY3J5cHQgaGFzaCkg IzpzZWxlY3QgKG9wZW4tc2hhMjU2LXBvcnQgcG9ydC1zaGEyNTYpKQorICAjOnVzZS1tb2R1bGUg KGpzb24pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBiYXNlMzIpCisgICM6dXNlLW1vZHVsZSAoZ3Vp eCBnaXQpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzpleHBvcnQgKCVkZWZhdWx0 LXNvcnQta2V5CisgICAgICAgICAgICAlY29udGVudGRiLWFwaQorICAgICAgICAgICAganNvbi0+ cGFja2FnZQorICAgICAgICAgICAgY29udGVudGRiLWZldGNoCisgICAgICAgICAgICBlbGFib3Jh dGUtY29udGVudGRiLW5hbWUKKyAgICAgICAgICAgIG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UKKyAg ICAgICAgICAgIG1pbmV0ZXN0LXJlY3Vyc2l2ZS1pbXBvcnQKKyAgICAgICAgICAgIHNvcnQtcGFj a2FnZXMpKQorCis7OyBUaGUgQ29udGVudERCIEFQSSBpcyBkb2N1bWVudGVkIGF0Cis7OyA8aHR0 cHM6Ly9jb250ZW50Lm1pbmV0ZXN0Lm5ldD4uCisKKyhkZWZpbmUgJWNvbnRlbnRkYi1hcGkKKyAg KG1ha2UtcGFyYW1ldGVyICJodHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0L2FwaS8iKSkKKwor KGRlZmluZSAoc3RyaW5nLW9yLWZhbHNlIHgpCisgIChhbmQgKHN0cmluZz8geCkgeCkpCisKKyhk ZWZpbmUgKG5hdHVyYWwtb3ItZmFsc2UgeCkKKyAgKGFuZCAoZXhhY3QtaW50ZWdlcj8geCkgKD49 IHggMCkgeCkpCisKKzs7IERlc2NyaXB0aW9ucyBvbiBDb250ZW50REIgdXNlIGNhcnJpYWdlIHJl dHVybnMsIGJ1dCBHdWl4IGRvZXNuJ3QuCisoZGVmaW5lIChkZWxldGUtY3IgdGV4dCkKKyAgKHN0 cmluZy1kZWxldGUgI1xjciB0ZXh0KSkKKworDAorCis7OzsKKzs7OyBKU09OIG1hcHBpbmdzCis7 OzsKKworOzsgTWluZXRlc3QgcGFja2FnZS4KKzs7Cis7OyBBUEkgZW5kcG9pbnQ6IC9wYWNrYWdl cy9BVVRIT1IvTkFNRS8KKyhkZWZpbmUtanNvbi1tYXBwaW5nIDxwYWNrYWdlPiBtYWtlLXBhY2th Z2UgcGFja2FnZT8KKyAganNvbi0+cGFja2FnZQorICAoYXV0aG9yICAgICAgICAgICAgcGFja2Fn ZS1hdXRob3IpIDsgc3RyaW5nCisgIChjcmVhdGlvbi1kYXRlICAgICBwYWNrYWdlLWNyZWF0aW9u LWRhdGUgOyBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IikKKyAgKGRv d25sb2FkcyAgICAgICAgIHBhY2thZ2UtZG93bmxvYWRzKSA7IGludGVnZXIKKyAgKGZvcnVtcyAg ICAgICAgICAgIHBhY2thZ2UtZm9ydW1zICJmb3J1bXMiIG5hdHVyYWwtb3ItZmFsc2UpCisgIChp c3N1ZS10cmFja2VyICAgICBwYWNrYWdlLWlzc3VlLXRyYWNrZXIgImlzc3VlX3RyYWNrZXIiKSA7 IHN0cmluZworICAobGljZW5zZSAgICAgICAgICAgcGFja2FnZS1saWNlbnNlKSA7IHN0cmluZwor ICAobG9uZy1kZXNjcmlwdGlvbiAgcGFja2FnZS1sb25nLWRlc2NyaXB0aW9uICJsb25nX2Rlc2Ny aXB0aW9uIikgOyBzdHJpbmcKKyAgKG1haW50YWluZXJzICAgICAgIHBhY2thZ2UtbWFpbnRhaW5l cnMgOyBsaXN0IG9mIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICJtYWludGFpbmVycyIg dmVjdG9yLT5saXN0KQorICAobWVkaWEtbGljZW5zZSAgICAgcGFja2FnZS1tZWRpYS1saWNlbnNl ICJtZWRpYV9saWNlbnNlIikgOyBzdHJpbmcKKyAgKG5hbWUgICAgICAgICAgICAgIHBhY2thZ2Ut bmFtZSkgOyBzdHJpbmcKKyAgKHByb3ZpZGVzICAgICAgICAgIHBhY2thZ2UtcHJvdmlkZXMgOyBs aXN0IG9mIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICJwcm92aWRlcyIgdmVjdG9yLT5s aXN0KQorICAocmVsZWFzZSAgICAgICAgICAgcGFja2FnZS1yZWxlYXNlKSA7IGludGVnZXIKKyAg KHJlcG9zaXRvcnkgICAgICAgIHBhY2thZ2UtcmVwb3NpdG9yeSAicmVwbyIgc3RyaW5nLW9yLWZh bHNlKQorICAoc2NvcmUgICAgICAgICAgICAgcGFja2FnZS1zY29yZSkgOyBmbG9udW0KKyAgKHNj cmVlbnNob3RzICAgICAgIHBhY2thZ2Utc2NyZWVuc2hvdHMgInNjcmVlbnNob3RzIiB2ZWN0b3It Pmxpc3QpIDsgbGlzdCBvZiBzdHJpbmdzCisgIChzaG9ydC1kZXNjcmlwdGlvbiBwYWNrYWdlLXNo b3J0LWRlc2NyaXB0aW9uICJzaG9ydF9kZXNjcmlwdGlvbiIpIDsgc3RyaW5nCisgIChzdGF0ZSAg ICAgICAgICAgICBwYWNrYWdlLXN0YXRlKSA7IHN0cmluZworICAodGFncyAgICAgICAgICAgICAg cGFja2FnZS10YWdzICJ0YWdzIiB2ZWN0b3ItPmxpc3QpIDsgbGlzdCBvZiBzdHJpbmdzCisgICh0 aHVtYm5haWwgICAgICAgICBwYWNrYWdlLXRodW1ibmFpbCkgOyBzdHJpbmcKKyAgKHRpdGxlICAg ICAgICAgICAgIHBhY2thZ2UtdGl0bGUpIDsgc3RyaW5nCisgICh0eXBlICAgICAgICAgICAgICBw YWNrYWdlLXR5cGUpIDsgc3RyaW5nCisgICh1cmwgICAgICAgICAgICAgICBwYWNrYWdlLXVybCkg OyBzdHJpbmcKKyAgKHdlYnNpdGUgICAgICAgICAgIHBhY2thZ2Utd2Vic2l0ZSAid2Vic2l0ZSIg c3RyaW5nLW9yLWZhbHNlKSkKKworKGRlZmluZS1qc29uLW1hcHBpbmcgPHJlbGVhc2U+IG1ha2Ut cmVsZWFzZSByZWxlYXNlPworICBqc29uLT5yZWxlYXNlCisgIDs7IElmIHByZXNlbnQsIGEgZ2l0 IGNvbW1pdCBpZGVudGlmaWVkIGJ5IGl0cyBoYXNoCisgIChjb21taXQgICAgICAgICAgICAgICBy ZWxlYXNlLWNvbW1pdCAiY29tbWl0IiBzdHJpbmctb3ItZmFsc2UpCisgIChkb3dubG9hZHMgICAg ICAgICAgICByZWxlYXNlLWRvd25sb2FkcykgOyBpbnRlZ2VyCisgIChpZCAgICAgICAgICAgICAg ICAgICByZWxlYXNlLWlkKSA7IGludGVnZXIKKyAgKG1heC1taW5ldGVzdC12ZXJzaW9uIHJlbGVh c2UtbWF4LW1pbmV0ZXN0LXZlcnNpb24gc3RyaW5nLW9yLWZhbHNlKQorICAobWluLW1pbmV0ZXN0 LXZlcnNpb24gcmVsZWFzZS1taW4tbWluZXRlc3QtdmVyc2lvbiBzdHJpbmctb3ItZmFsc2UpCisg IChyZWxlYXNlLWRhdGUgICAgICAgICByZWxlYXNlLWRhdGEpIDsgc3RyaW5nCisgICh0aXRsZSAg ICAgICAgICAgICAgICByZWxlYXNlLXRpdGxlKSA7IHN0cmluZworICAodXJsICAgICAgICAgICAg ICAgICAgcmVsZWFzZS11cmwpKSA7IHN0cmluZworCisoZGVmaW5lLWpzb24tbWFwcGluZyA8ZGVw ZW5kZW5jeT4gbWFrZS1kZXBlbmRlbmN5IGRlcGVuZGVuY3k/CisgIGpzb24tPmRlcGVuZGVuY3kK KyAgKG9wdGlvbmFsPyBkZXBlbmRlbmN5LW9wdGlvbmFsPyAiaXNfb3B0aW9uYWwiKSA7IGJvb2wK KyAgKG5hbWUgZGVwZW5kZW5jeS1uYW1lKSA7IHN0cmluZworICAocGFja2FnZXMgZGVwZW5kZW5j eS1wYWNrYWdlcyAicGFja2FnZXMiIHZlY3Rvci0+bGlzdCkpIDsgbGlzdCBvZiBzdHJpbmdzCisK Kzs7IEEgc3RydWN0dXJlIHJldHVybmVkIGJ5IHRoZSAvYXBpL3BhY2thZ2VzLz9mbXQ9a2V5cyBl bmRwb2ludAorKGRlZmluZS1qc29uLW1hcHBpbmcgPHBhY2thZ2Uta2V5cz4gbWFrZS1wYWNrYWdl LWtleXMgcGFja2FnZS1rZXlzPworICBqc29uLT5wYWNrYWdlLWtleXMKKyAgKGF1dGhvciBwYWNr YWdlLWtleXMtYXV0aG9yKSA7IHN0cmluZworICAobmFtZSBwYWNrYWdlLWtleXMtbmFtZSkgICAg IDsgc3RyaW5nCisgICh0eXBlIHBhY2thZ2Uta2V5cy10eXBlKSkgICAgOyBzdHJpbmcKKworKGRl ZmluZSAocGFja2FnZS1tb2Q/IHBhY2thZ2UpCisgICJJcyB0aGUgQ29udGVudERCIHBhY2thZ2Ug UEFDS0FHRSBhIG1vZD8iCisgIDs7IENvbnRlbnREQiBhbHNvIGhhcyDigJhnYW1lc+KAmSBhbmQg 4oCYdGV4dHVyZSBwYWNrc+KAmS4KKyAgKHN0cmluZz0/IChwYWNrYWdlLXR5cGUgcGFja2FnZSkg Im1vZCIpKQorCisMCisKKzs7OworOzs7IE1hbmlwdWxhdGluZyBuYW1lcyBvZiBwYWNrYWdlcwor Ozs7Cis7OzsgVGhlcmUgYXJlIHRocmVlIGtpbmQgb2YgbmFtZXM6Cis7OzsKKzs7OyAgICogbmFt ZXMgb2YgZ3VpeCBwYWNrYWdlcywgZS5nLiBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMuCis7Ozsg ICAqIG5hbWVzIG9mIG1vZHMgb24gQ29udGVudERCLCBlLmcuIGJhc2ljX21hdGVyaWFscworOzs7 ICAgKiBhIGNvbWJpbmF0aW9uIG9mIGF1dGhvciBhbmQgbW9kIG5hbWUgb24gQ29udGVudERCLCBl LmcuIFZhbmVzc2FFL2Jhc2ljX21hdGVyaWFscworOzs7CisKKyhkZWZpbmUgKCVjb25zdHJ1Y3Qt ZnVsbC1uYW1lIGF1dGhvciBuYW1lKQorICAoc3RyaW5nLWFwcGVuZCBhdXRob3IgIi8iIG5hbWUp KQorCisoZGVmaW5lIChwYWNrYWdlLWZ1bGwtbmFtZSBwYWNrYWdlKQorICAiR2l2ZW4gYSA8cGFj a2FnZT4gb2JqZWN0LCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgQVVUSE9SL05BTUUgc3RyaW5n LiIKKyAgKCVjb25zdHJ1Y3QtZnVsbC1uYW1lIChwYWNrYWdlLWF1dGhvciBwYWNrYWdlKSAocGFj a2FnZS1uYW1lIHBhY2thZ2UpKSkKKworKGRlZmluZSAocGFja2FnZS1rZXlzLWZ1bGwtbmFtZSBw YWNrYWdlKQorICAiR2l2ZW4gYSA8cGFja2FnZS1rZXlzPiBvYmplY3QsIHJldHVybiB0aGUgY29y cmVzcG9uZGluZyBBVVRIT1IvTkFNRSBzdHJpbmcuIgorICAoJWNvbnN0cnVjdC1mdWxsLW5hbWUg KHBhY2thZ2Uta2V5cy1hdXRob3IgcGFja2FnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChw YWNrYWdlLWtleXMtbmFtZSBwYWNrYWdlKSkpCisKKyhkZWZpbmUgKGNvbnRlbnRkYi0+cGFja2Fn ZS1uYW1lIGF1dGhvci9uYW1lKQorICAiR2l2ZW4gdGhlIEFVVEhPUi9OQU1FIG9mIGEgcGFja2Fn ZSBvbiBDb250ZW50REIsIHJldHVybiBhIEd1aXgtY29tcGxpYW50CituYW1lIGZvciB0aGUgcGFj a2FnZS4iCisgIDs7IFRoZSBhdXRob3IgaXMgbm90IGluY2x1ZGVkLCBhcyB0aGUgbmFtZXMgb2Yg cG9wdWxhciBtb2RzCisgIDs7IHRlbmQgdG8gYmUgdW5pcXVlLgorICAoc3RyaW5nLWFwcGVuZCAi bWluZXRlc3QtIiAoc25ha2UtY2FzZSAoYXV0aG9yL25hbWUtPm5hbWUgYXV0aG9yL25hbWUpKSkp CisKKyhkZWZpbmUgKGF1dGhvci9uYW1lLT5uYW1lIGF1dGhvci9uYW1lKQorICAiRXh0cmFjdCBO QU1FIGZyb20gdGhlIEFVVEhPUi9OQU1FIHN0cmluZywgb3IgcmFpc2UgYW4gZXJyb3IgaWYgQVVU SE9SL05BTUUKK2lzIGlsbC1mb3JtYXR0ZWQuIgorICAobWF0Y2ggKHN0cmluZy1zcGxpdCBhdXRo b3IvbmFtZSAjXC8pCisgICAgKChhdXRob3IgbmFtZSkKKyAgICAgKHdoZW4gKHN0cmluZy1udWxs PyBhdXRob3IpCisgICAgICAgKGxlYXZlCisgICAgICAgIChHXyAiSW4gfmE6IGF1dGhvciBuYW1l cyBtdXN0IGNvbnNpc3Qgb2YgYXQgbGVhc3QgYSBzaW5nbGUgY2hhcmFjdGVyLn4lIikKKyAgICAg ICAgYXV0aG9yL25hbWUpKQorICAgICAod2hlbiAoc3RyaW5nLW51bGw/IG5hbWUpCisgICAgICAg KGxlYXZlCisgICAgICAgIChHXyAiSW4gfmE6IG1vZCBuYW1lcyBtdXN0IGNvbnNpc3Qgb2YgYXQg bGVhc3QgYSBzaW5nbGUgY2hhcmFjdGVyLn4lIikKKyAgICAgICAgYXV0aG9yL25hbWUpKQorICAg ICBuYW1lKQorICAgICgodG9vIG1hbnkgLiBjb21wb25lbnRzKQorICAgICAobGVhdmUKKyAgICAg IChHXyAiSW4gfmE6IGF1dGhvciBuYW1lcyBhbmQgbW9kIG5hbWVzIG1heSBub3QgY29udGFpbiBm b3J3YXJkIHNsYXNoZXMufiUiKQorICAgICAgYXV0aG9yL25hbWUpKQorICAgICgobmFtZSkKKyAg ICAgKGlmIChzdHJpbmctbnVsbD8gbmFtZSkKKyAgICAgICAgIChsZWF2ZSAoR18gIm1vZCBuYW1l cyBtYXkgbm90IGJlIGVtcHR5Ln4lIikpCisgICAgICAgICAobGVhdmUgKEdfICJUaGUgbmFtZSBv ZiB0aGUgYXV0aG9yIGlzIG1pc3NpbmcgaW4gfmEufiUiKQorICAgICAgICAgICAgICAgIGF1dGhv ci9uYW1lKSkpKSkKKworKGRlZmluZSogKGVsYWJvcmF0ZS1jb250ZW50ZGItbmFtZSBuYW1lICM6 a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgIklmIE5BTUUgaXMgYW4gQVVUSE9SL05B TUUgc3RyaW5nLCByZXR1cm4gaXQuICBPdGhlcndpc2UsIHRyeSB0byBkZXRlcm1pbmUKK3RoZSBh dXRob3IgYW5kIHJldHVybiBhbiBhcHByb3ByaWF0ZSBBVVRIT1IvTkFNRSBzdHJpbmcuICBJZiB0 aGF0IGZhaWxzLAorcmFpc2UgYW4gZXhjZXB0aW9uLiIKKyAgKGlmIChvciAoc3RyaW5nLWNvbnRh aW5zIG5hbWUgIi8iKSAoc3RyaW5nLW51bGw/IG5hbWUpKQorICAgICAgOzsgQ2FsbCAnYXV0aG9y L25hbWUtPm5hbWUnIHRvIHZlcmlmeSB0aGF0IE5BTUUgc2VlbXMgcmVhc29uYWJsZQorICAgICAg OzsgYW5kIHJhaXNlIGFuIGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiBpZiBpdCBpc24ndC4KKyAgICAg IChiZWdpbgorICAgICAgICAoYXV0aG9yL25hbWUtPm5hbWUgbmFtZSkKKyAgICAgICAgbmFtZSkK KyAgICAgIChsZXQqICgocGFja2FnZS1rZXlzIChjb250ZW50ZGItcXVlcnktcGFja2FnZXMgbmFt ZSAjOnNvcnQgc29ydCkpCisgICAgICAgICAgICAgKGNvcnJlY3RseS1uYW1lZAorICAgICAgICAg ICAgICAoZmlsdGVyIChsYW1iZGEgKHBhY2thZ2Uta2V5KQorICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmluZz0/IG5hbWUgKHBhY2thZ2Uta2V5cy1uYW1lIHBhY2thZ2Uta2V5KSkpCisgICAg ICAgICAgICAgICAgICAgICAgcGFja2FnZS1rZXlzKSkpCisgICAgICAgIChtYXRjaCBjb3JyZWN0 bHktbmFtZWQKKyAgICAgICAgICAoKG9uZSkgKHBhY2thZ2Uta2V5cy1mdWxsLW5hbWUgb25lKSkK KyAgICAgICAgICAoKHRvbyAuIG1hbnkpCisgICAgICAgICAgICh3YXJuaW5nIChHXyAifmEgaXMg YW1iaWdpb3VzLCBwcmVzdW1pbmcgfmEgKG90aGVyIG9wdGlvbnMgaW5jbHVkZTogfmEpfiUiKQor ICAgICAgICAgICAgICAgICAgICBuYW1lIChwYWNrYWdlLWtleXMtZnVsbC1uYW1lIHRvbykKKyAg ICAgICAgICAgICAgICAgICAgKG1hcCBwYWNrYWdlLWtleXMtZnVsbC1uYW1lIG1hbnkpKQorICAg ICAgICAgICAocGFja2FnZS1rZXlzLWZ1bGwtbmFtZSB0b28pKQorICAgICAgICAgICgoKQorICAg ICAgICAgICAobGVhdmUgKEdfICJObyBtb2RzIHdpdGggbmFtZSB+YSB3ZXJlIGZvdW5kLn4lIikg bmFtZSkpKSkpKQorCisMCisKKzs7OworOzs7IEFQSSBlbmRwb2ludHMKKzs7OworCisoZGVmaW5l IGNvbnRlbnRkYi1mZXRjaAorICAobWxhbWJkYSAoYXV0aG9yL25hbWUpCisgICAgIlJldHVybiBh IDxwYWNrYWdlPiByZWNvcmQgZm9yIHBhY2thZ2UgQVVUSE9SL05BTUUsIG9yICNmIG9uIGZhaWx1 cmUuIgorICAgIChhbmQ9PiAoanNvbi1mZXRjaAorICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQg KCVjb250ZW50ZGItYXBpKSAicGFja2FnZXMvIiBhdXRob3IvbmFtZSAiLyIpKQorICAgICAgICAg ICBqc29uLT5wYWNrYWdlKSkpCisKKyhkZWZpbmUgKGNvbnRlbnRkYi1mZXRjaC1yZWxlYXNlcyBh dXRob3IvbmFtZSkKKyAgIlJldHVybiBhIGxpc3Qgb2YgPHJlbGVhc2U+IHJlY29yZHMgZm9yIHBh Y2thZ2UgTkFNRSBieSBBVVRIT1IsIG9yICNmCitvbiBmYWlsdXJlLiIKKyAgKGFuZD0+IChqc29u LWZldGNoIChzdHJpbmctYXBwZW5kICglY29udGVudGRiLWFwaSkgInBhY2thZ2VzLyIgYXV0aG9y L25hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvcmVsZWFzZXMvIikp CisgICAgICAgICAobGFtYmRhIChqc29uKQorICAgICAgICAgICAobWFwIGpzb24tPnJlbGVhc2Ug KHZlY3Rvci0+bGlzdCBqc29uKSkpKSkKKworKGRlZmluZSAobGF0ZXN0LXJlbGVhc2UgYXV0aG9y L25hbWUpCisgICJSZXR1cm4gdGhlIGxhdGVzdCBzb3VyY2UgcmVsZWFzZSBmb3IgcGFja2FnZSBO QU1FIGJ5IEFVVEhPUiwKK29yICNmIGlmIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBleGlzdC4iCisg IChhbmQ9PiAoY29udGVudGRiLWZldGNoLXJlbGVhc2VzIGF1dGhvci9uYW1lKQorICAgICAgICAg Y2FyKSkKKworKGRlZmluZSAoY29udGVudGRiLWZldGNoLWRlcGVuZGVuY2llcyBhdXRob3IvbmFt ZSkKKyAgIlJldHVybiBhbiBhbGlzdCBvZiBsaXN0cyBvZiA8ZGVwZW5kZW5jeT4gcmVjb3JkcyBm b3IgcGFja2FnZSBOQU1FIGJ5IEFVVEhPUgorYW5kIHBvc3NpYmx5IHNvbWUgb3RoZXIgcGFja2Fn ZXMgYXMgd2VsbCwgb3IgI2Ygb24gZmFpbHVyZS4iCisgIChkZWZpbmUgdXJsIChzdHJpbmctYXBw ZW5kICglY29udGVudGRiLWFwaSkgInBhY2thZ2VzLyIgYXV0aG9yL25hbWUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIi9kZXBlbmRlbmNpZXMvIikpCisgIChhbmQ9PiAoanNvbi1mZXRj aCB1cmwpCisgICAgICAgICAobGFtYmRhIChqc29uKQorICAgICAgICAgICAobWFwIChtYXRjaC1s YW1iZGEKKyAgICAgICAgICAgICAgICAgICgoa2V5IC4gdmFsdWUpCisgICAgICAgICAgICAgICAg ICAgKGNvbnMga2V5IChtYXAganNvbi0+ZGVwZW5kZW5jeSAodmVjdG9yLT5saXN0IHZhbHVlKSkp KSkKKyAgICAgICAgICAgICAgICBqc29uKSkpKQorCisoZGVmaW5lKiAoY29udGVudGRiLXF1ZXJ5 LXBhY2thZ2VzIHEgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5 cGUgIm1vZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW1pdCA1MCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnQgJWRlZmF1bHQtc29ydC1r ZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmRlciAiZGVzYyIpKQor ICAiU2VhcmNoIENvbnRlbnREQiBmb3IgUSAoYSBzdHJpbmcpLiAgU29ydCBieSBTT1JULCBpbiBh c2NlbmRpbmcgb3JkZXIKK2lmIE9SREVSIGlzIFwiYXNjXCIgb3IgZGVzY2VuZGluZyBvcmRlciBp ZiBPUkRFUiBpcyBcImRlc2NcIi4gIFRZUEUgbXVzdAorYmUgXCJtb2RcIiwgXCJnYW1lXCIgb3Ig XCJ0eHBcIiwgcmVzdHJpY3RpbmcgdGhlcyBzZWFyY2ggcmVzdWx0cyB0bworcmVzcGVjdGl2ZWx5 IG1vZHMsIGdhbWVzIGFuZCB0ZXh0dXJlIHBhY2tzLiAgTGltaXQgdG8gYXQgbW9zdCBMSU1JVAor cmVzdWx0cy4gIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0IG9mIDxwYWNrYWdlLWtleXM+IHJl Y29yZHMuIgorICA7OyBYWFggZG9lcyBHdWlsZSBoYXZlIHNvbWV0aGluZyBmb3IgY29uc3RydWN0 aW5nIChhbmQsIHdoZW4gbmVjZXNzYXJ5LAorICA7OyBlc2NhcGluZykgcXVlcnkgc3RyaW5ncz8K KyAgKGRlZmluZSB1cmwgKHN0cmluZy1hcHBlbmQgKCVjb250ZW50ZGItYXBpKSAicGFja2FnZXMv P3R5cGU9IiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImcT0iIHEgIiZmbXQ9 a2V5cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZsaW1pdD0iIChudW1iZXItPnN0 cmluZyBsaW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZvcmRlcj0iIG9yZGVy CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImc29ydD0iIHNvcnQpKQorICAobGV0ICgo anNvbiAoanNvbi1mZXRjaCB1cmwpKSkKKyAgICAoaWYganNvbgorICAgICAgICAobWFwIGpzb24t PnBhY2thZ2Uta2V5cyAodmVjdG9yLT5saXN0IGpzb24pKQorICAgICAgICAobGVhdmUKKyAgICAg ICAgIChHXyAiVGhlIHBhY2thZ2Ugc2VhcmNoIEFQSSBkb2Vzbid0IGV4aXN0IGFueW1vcmUufiUi KSkpKSkKKworDAorCis7OyBYWFggY29waWVkIGZyb20gKGd1aXggaW1wb3J0IGVscGEpCisoZGVm aW5lKiAoZG93bmxvYWQtZ2l0LXJlcG9zaXRvcnkgdXJsIHJlZikKKyAgIkZldGNoIHRoZSBnaXZl biBSRUYgZnJvbSB0aGUgR2l0IHJlcG9zaXRvcnkgYXQgVVJMLiIKKyAgKHdpdGgtc3RvcmUgc3Rv cmUKKyAgICAobGF0ZXN0LXJlcG9zaXRvcnktY29tbWl0IHN0b3JlIHVybCAjOnJlZiByZWYpKSkK KworOzsgWFhYIGFkYXB0ZWQgZnJvbSAoZ3VpeCBzY3JpcHRzIGhhc2gpCisoZGVmaW5lIChmaWxl LWhhc2ggZmlsZSkKKyAgIkNvbXB1dGUgdGhlIGhhc2ggb2YgRklMRS4iCisgIChsZXQtdmFsdWVz ICgoKHBvcnQgZ2V0LWhhc2gpIChvcGVuLXNoYTI1Ni1wb3J0KSkpCisgICAgKHdyaXRlLWZpbGUg ZmlsZSBwb3J0KQorICAgIChmb3JjZS1vdXRwdXQgcG9ydCkKKyAgICAoZ2V0LWhhc2gpKSkKKwor KGRlZmluZSAobWFrZS1taW5ldGVzdC1zZXhwIGF1dGhvci9uYW1lIHZlcnNpb24gcmVwb3NpdG9y eSBjb21taXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dHMgaG9tZS1wYWdlIHN5 bm9wc2lzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gbWVkaWEtbGlj ZW5zZSBsaWNlbnNlKQorICAiUmV0dXJuIGEgUy1leHByZXNzaW9uIGZvciB0aGUgbWluZXRlc3Qg cGFja2FnZSB3aXRoIHRoZSBnaXZlbiBhdXRob3IvTkFNRSwKK1ZFUlNJT04sIFJFUE9TSVRPUlks IENPTU1JVCwgSU5QVVRTLCBIT01FLVBBR0UsIFNZTk9QU0lTLCBERVNDUklQVElPTiwKK01FRElB LUxJQ0VOU0UgYW5kIExJQ0VOU0UuIgorICBgKHBhY2thZ2UKKyAgICAgKG5hbWUgLChjb250ZW50 ZGItPnBhY2thZ2UtbmFtZSBhdXRob3IvbmFtZSkpCisgICAgICh2ZXJzaW9uICx2ZXJzaW9uKQor ICAgICAoc291cmNlCisgICAgICAgKG9yaWdpbgorICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gp CisgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgKHVybCAscmVw b3NpdG9yeSkKKyAgICAgICAgICAgICAgICAoY29tbWl0ICxjb21taXQpKSkKKyAgICAgICAgIChz aGEyNTYKKyAgICAgICAgICAoYmFzZTMyCisgICAgICAgICAgIDs7IFRoZSBnaXQgY29tbWl0IGlz IG5vdCBhbHdheXMgYXZhaWxhYmxlLgorICAgICAgICAgICAsKGFuZCBjb21taXQKKyAgICAgICAg ICAgICAgICAgKGJ5dGV2ZWN0b3ItPm5peC1iYXNlMzItc3RyaW5nCisgICAgICAgICAgICAgICAg ICAoZmlsZS1oYXNoCisgICAgICAgICAgICAgICAgICAgKGRvd25sb2FkLWdpdC1yZXBvc2l0b3J5 IHJlcG9zaXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YChjb21taXQgLiAsY29tbWl0KSkpKSkpKQorICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUt bmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1 aWxkLXN5c3RlbSkKKyAgICAgLEAobWF5YmUtcHJvcGFnYXRlZC1pbnB1dHMgKG1hcCBjb250ZW50 ZGItPnBhY2thZ2UtbmFtZSBpbnB1dHMpKQorICAgICAoaG9tZS1wYWdlICxob21lLXBhZ2UpCisg ICAgIChzeW5vcHNpcyAsKGRlbGV0ZS1jciBzeW5vcHNpcykpCisgICAgIChkZXNjcmlwdGlvbiAs KGRlbGV0ZS1jciBkZXNjcmlwdGlvbikpCisgICAgIChsaWNlbnNlICwoaWYgKGVxPyBtZWRpYS1s aWNlbnNlIGxpY2Vuc2UpCisgICAgICAgICAgICAgICAgICAgbGljZW5zZQorICAgICAgICAgICAg ICAgICAgIGAobGlzdCAsbWVkaWEtbGljZW5zZSAsbGljZW5zZSkpKQorICAgICA7OyBUaGUgTWlu ZXRlc3QgdXBkYXRlciAobm90IHlldCBpbiBHdWl4OyBpdCByZXF1aXJlcyBub3QteWV0LXN1Ym1p dHRlZAorICAgICA7OyBwYXRjaGVzIHRvIChndWl4IHVwc3RyZWFtKSB0aGF0IHJlcXVpcmUgc29t ZSB3b3JrKSBuZWVkcyB0byBrbm93IGJvdGgKKyAgICAgOzsgdGhlIGF1dGhvciBuYW1lIGFuZCBt b2QgbmFtZSBmb3IgZWZmaWNpZW5jeS4KKyAgICAgKHByb3BlcnRpZXMgLChsaXN0ICdxdWFzaXF1 b3RlIGAoKHVwc3RyZWFtLW5hbWUgLiAsYXV0aG9yL25hbWUpKSkpKSkKKworKGRlZmluZSAocGFj a2FnZS1ob21lLXBhZ2UgcGFja2FnZSkKKyAgIkd1ZXNzIHRoZSBob21lIHBhZ2Ugb2YgdGhlIENv bnRlbnREQiBwYWNrYWdlIFBBQ0tBR0UuCisKK0luIG9yZGVyIG9mIHByZWZlcmVuY2UsIHRyeSB0 aGUgJ3dlYnNpdGUnLCB0aGUgZm9ydW0gdG9waWMgb24gdGhlCitvZmZpY2lhbCBNaW5ldGVzdCBm b3J1bSBhbmQgdGhlIEdpdCByZXBvc2l0b3J5IChpZiBhbnkpLiIKKyAgKGRlZmluZSAodG9waWMt PnVybC1zZXhwIHRvcGljKQorICAgIDs7ICdtaW5ldGVzdC10b3BpYycgaXMgYSBwcm9jZWR1cmUg ZGVmaW5lZCBpbiAoZ251IHBhY2thZ2VzIG1pbmV0ZXN0KQorICAgIGAobWluZXRlc3QtdG9waWMg LHRvcGljKSkKKyAgKG9yIChwYWNrYWdlLXdlYnNpdGUgcGFja2FnZSkKKyAgICAgIChhbmQ9PiAo cGFja2FnZS1mb3J1bXMgcGFja2FnZSkgdG9waWMtPnVybC1zZXhwKQorICAgICAgKHBhY2thZ2Ut cmVwb3NpdG9yeSBwYWNrYWdlKSkpCisKKzs7IElmIHRoZSBkZWZhdWx0IHNvcnQga2V5IGlzIGNo YW5nZWQsIG1ha2Ugc3VyZSB0byBtb2RpZnkgJ3Nob3ctaGVscCcKKzs7IGluIChndWl4IHNjcmlw dHMgaW1wb3J0IG1pbmV0ZXN0KSBhcHByb3ByaWF0ZWx5IGFzIHdlbGwuCisoZGVmaW5lICVkZWZh dWx0LXNvcnQta2V5ICJzY29yZSIpCisKKyhkZWZpbmUqIChzb3J0LXBhY2thZ2VzIHBhY2thZ2Vz ICM6a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgIlNvcnQgUEFDS0FHRVMgYnkgU09S VCwgaW4gZGVzY2VuZGluZyBvcmRlci4iCisgIChkZWZpbmUgcGFja2FnZS0+a2V5CisgICAgKG1h dGNoIHNvcnQKKyAgICAgICgic2NvcmUiIHBhY2thZ2Utc2NvcmUpCisgICAgICAoImRvd25sb2Fk cyIgcGFja2FnZS1kb3dubG9hZHMpKSkKKyAgKGRlZmluZSAoZ3JlYXRlciB4IHkpCisgICAgKD4g KHBhY2thZ2UtPmtleSB4KSAocGFja2FnZS0+a2V5IHkpKSkKKyAgKHNvcnQtbGlzdCBwYWNrYWdl cyBncmVhdGVyKSkKKworKGRlZmluZSBidWlsdGluLW1vZD8KKyAgKGxldCAoKCVidWlsdGluLW1v ZHMKKyAgICAgICAgIChhbGlzdC0+aGFzaC10YWJsZQorICAgICAgICAgIChtYXAgKGxhbWJkYSAo eCkgKGNvbnMgeCAjdCkpCisgICAgICAgICAgICAgICAnKCJiZWRzIiAiYmlub2N1bGFycyIgImJv YXRzIiAiYm9uZXMiICJidWNrZXQiICJidXR0ZXJmbGllcyIKKyAgICAgICAgICAgICAgICAgImNh cnRzIiAiY3JlYXRpdmUiICJkZWZhdWx0IiAiZG9vcnMiICJkdW5nZW9uX2xvb3QiICJkeWUiCisg ICAgICAgICAgICAgICAgICJlbnZfc291bmRzIiAiZmFybWluZyIgImZpcmUiICJmaXJlZmxpZXMi ICJmbG93ZXJzIgorICAgICAgICAgICAgICAgICAiZ2FtZV9jb21tYW5kcyIgImdpdmVfaW5pdGlh bF9zdHVmZiIgIm1hcCIgIm10Z19jcmFmdGd1aWRlIgorICAgICAgICAgICAgICAgICAicGxheWVy X2FwaSIgInNjcmV3ZHJpdmVyIiAic2V0aG9tZSIgInNmaW52IiAic3Bhd24iICJzdGFpcnMiCisg ICAgICAgICAgICAgICAgICJ0bnQiICJ2ZXNzZWxzIiAid2FsbHMiICJ3ZWF0aGVyIiAid29vbCIg InhwYW5lcyIpKSkpKQorICAgIChsYW1iZGEgKG1vZCkKKyAgICAgICJJcyBNT0QgcHJvdmlkZWQg YnkgdGhlIGRlZmF1bHQgbWluZXRlc3Qgc3ViZ2FtZT8iCisgICAgICAoaGFzaC1yZWYgJWJ1aWx0 aW4tbW9kcyBtb2QpKSkpCisKKyhkZWZpbmUqIChpbXBvcnRhbnQtZGVwZW5kZW5jaWVzIGRlcGVu ZGVuY2llcyBhdXRob3IvbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpr ZXkgKHNvcnQgJWRlZmF1bHQtc29ydC1rZXkpKQorICAiUmV0dXJuIHRoZSBoYXJkIGRlcGVuZGVu Y2llcyBvZiBBVVRIT1IvTkFNRSBpbiB0aGUgYXNzb2NpYXRpb24gbGlzdAorREVQRU5ERU5DSUVT IGFzIGEgbGlzdCBvZiBBVVRIT1IvTkFNRSBzdHJpbmdzLiIKKyAgKGRlZmluZSBkZXBlbmRlbmN5 LWxpc3QKKyAgICAoYXNzb2MtcmVmIGRlcGVuZGVuY2llcyBhdXRob3IvbmFtZSkpCisgIChmaWx0 ZXItbWFwCisgICAobGFtYmRhIChkZXBlbmRlbmN5KQorICAgICAoYW5kIChub3QgKGRlcGVuZGVu Y3ktb3B0aW9uYWw/IGRlcGVuZGVuY3kpKQorICAgICAgICAgIChub3QgKGJ1aWx0aW4tbW9kPyAo ZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpKSkKKyAgICAgICAgICA7OyBUaGUgZGVwZW5kZW5j eSBpbmZvcm1hdGlvbiBjb250YWlucyBzeW1ib2xpYyBuYW1lcworICAgICAgICAgIDs7IHRoYXQg Y2FuIGJlIOKAmHByb3ZpZGVk4oCZIGJ5IG11bHRpcGxlIG1vZHMsIHNvIHdlIG5lZWQgdG8gY2hv b3NlIG9uZQorICAgICAgICAgIDs7IG9mIHRoZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgICAg KGxldCogKChpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgICAgICAgICAgIChwYXItbWFwIGNvbnRl bnRkYi1mZXRjaCAoZGVwZW5kZW5jeS1wYWNrYWdlcyBkZXBlbmRlbmN5KSkpCisgICAgICAgICAg ICAgICAgIDs7IEZldGNoaW5nIHBhY2thZ2UgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBhY2thZ2Vz IGlzIHJhY3k6CisgICAgICAgICAgICAgICAgIDs7IHNvbWUgcGFja2FnZXMgbWlnaHQgYmUgcmVt b3ZlZCBmcm9tIENvbnRlbnREQiBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAgICA7OyBjb25z dHJ1Y3Rpb24gb2YgREVQRU5ERU5DSUVTIGFuZCB0aGUgY2FsbCB0bworICAgICAgICAgICAgICAg ICA7OyAnY29udGVudGRiLWZldGNoJy4gIFNvIGZpbHRlciBvdXQgI2YuCisgICAgICAgICAgICAg ICAgIDs7CisgICAgICAgICAgICAgICAgIDs7IEZpbHRlciBvdXQg4oCYZ2FtZXPigJkgdGhhdCBp bmNsdWRlIHRoZSByZXF1ZXN0ZWQgbW9kIC0tIGl0J3MKKyAgICAgICAgICAgICAgICAgOzsgdGhl IG1vZCBpdHNlbGYgd2Ugd2FudC4KKyAgICAgICAgICAgICAgICAgKG1vZHMgKGZpbHRlciAobGFt YmRhIChwKSAoYW5kPT4gcCBwYWNrYWdlLW1vZD8pKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGltcGxlbWVudGF0aW9ucykpCisgICAgICAgICAgICAgICAgIChzb3J0ZWQtbW9kcyAo c29ydC1wYWNrYWdlcyBtb2RzICM6c29ydCBzb3J0KSkpCisgICAgICAgICAgICAobWF0Y2ggc29y dGVkLW1vZHMKKyAgICAgICAgICAgICAgKChwYWNrYWdlKSAocGFja2FnZS1mdWxsLW5hbWUgcGFj a2FnZSkpCisgICAgICAgICAgICAgICgodG9vIC4gbWFueSkKKyAgICAgICAgICAgICAgICh3YXJu aW5nCisgICAgICAgICAgICAgICAgKEdfICJUaGUgZGVwZW5kZW5jeSB+YSBvZiB+YSBoYXMgbXVs dGlwbGUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyB+YS5+JSIpCisgICAgICAgICAgICAgICAg KGRlcGVuZGVuY3ktbmFtZSBkZXBlbmRlbmN5KQorICAgICAgICAgICAgICAgIGF1dGhvci9uYW1l CisgICAgICAgICAgICAgICAgKG1hcCBwYWNrYWdlLWZ1bGwtbmFtZSBzb3J0ZWQtbW9kcykpCisg ICAgICAgICAgICAgICAobWF0Y2ggc29ydAorICAgICAgICAgICAgICAgICAoInNjb3JlIgorICAg ICAgICAgICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAoR18gIlRoZSBpbXBs ZW1lbnRhdGlvbiB3aXRoIHRoZSBoaWdoZXN0IHNjb3JlIHdpbGwgYmUgY2hvb3NlbiF+JSIpKSkK KyAgICAgICAgICAgICAgICAgKCJkb3dubG9hZHMiCisgICAgICAgICAgICAgICAgICAod2Fybmlu ZworICAgICAgICAgICAgICAgICAgIChHXyAiVGhlIGltcGxlbWVudGF0aW9uIHRoYXQgaGFzIGJl ZW4gZG93bmxvYWRlZCB0aGUgbW9zdCB3aWxsIGJlIGNob29zZW4hfiUiKSkpKQorICAgICAgICAg ICAgICAgKHBhY2thZ2UtZnVsbC1uYW1lIHRvbykpCisgICAgICAgICAgICAgICgoKQorICAgICAg ICAgICAgICAgKHdhcm5pbmcKKyAgICAgICAgICAgICAgICAoR18gIlRoZSBkZXBlbmRlbmN5IH5h IG9mIH5hIGRvZXMgbm90IGhhdmUgYW55IGltcGxlbWVudGF0aW9uLiAgSXQgd2lsbCBiZSBpZ25v cmVkIX4lIikKKyAgICAgICAgICAgICAgICAoZGVwZW5kZW5jeS1uYW1lIGRlcGVuZGVuY3kpIGF1 dGhvci9uYW1lKQorICAgICAgICAgICAgICAgI2YpKSkpKQorICAgZGVwZW5kZW5jeS1saXN0KSkK KworKGRlZmluZSogKCVtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlIGF1dGhvci9uYW1lICM6a2V5IChz b3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgIkZldGNoIHRoZSBtZXRhZGF0YSBmb3IgQVVUSE9S L05BTUUgZnJvbSBodHRwczovL2NvbnRlbnQubWluZXRlc3QubmV0LCBhbmQKK3JldHVybiB0aGUg J3BhY2thZ2UnIFMtZXhwcmVzc2lvbiBjb3JyZXNwb25kaW5nIHRvIHRoYXQgcGFja2FnZSwgb3Ig cmFpc2UgYW4KK2V4Y2VwdGlvbiBvbiBmYWlsdXJlLiAgT24gc3VjY2VzcywgYWxzbyByZXR1cm4g dGhlIHVwc3RyZWFtIGRlcGVuZGVuY2llcyBhcyBhCitsaXN0IG9mIEFVVEhPUi9OQU1FIHN0cmlu Z3MuIgorICA7OyBDYWxsICdhdXRob3IvbmFtZS0+bmFtZScgdG8gdmVyaWZ5IHRoYXQgQVVUSE9S L05BTUUgc2VlbXMgcmVhc29uYWJsZS4KKyAgKGF1dGhvci9uYW1lLT5uYW1lIGF1dGhvci9uYW1l KQorICAoZGVmaW5lIHBhY2thZ2UgKGNvbnRlbnRkYi1mZXRjaCBhdXRob3IvbmFtZSkpCisgICh1 bmxlc3MgcGFja2FnZQorICAgIChsZWF2ZSAoR18gIm5vIHBhY2thZ2UgbWV0YWRhdGEgZm9yIH5h IG9uIENvbnRlbnREQn4lIikgYXV0aG9yL25hbWUpKQorICAoZGVmaW5lIGRlcGVuZGVuY2llcyAo Y29udGVudGRiLWZldGNoLWRlcGVuZGVuY2llcyBhdXRob3IvbmFtZSkpCisgICh1bmxlc3MgZGVw ZW5kZW5jaWVzCisgICAgKGxlYXZlIChHXyAibm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBmb3Ig fmEgb24gQ29udGVudERCfiUiKSBhdXRob3IvbmFtZSkpCisgIChkZWZpbmUgcmVsZWFzZSAobGF0 ZXN0LXJlbGVhc2UgYXV0aG9yL25hbWUpKQorICAodW5sZXNzIHJlbGVhc2UKKyAgICAobGVhdmUg KEdfICJubyByZWxlYXNlIG9mIH5hIG9uIENvbnRlbnREQn4lIikgYXV0aG9yL25hbWUpKQorICAo ZGVmaW5lIGltcG9ydGFudC11cHN0cmVhbS1kZXBlbmRlbmNpZXMKKyAgICAoaW1wb3J0YW50LWRl cGVuZGVuY2llcyBkZXBlbmRlbmNpZXMgYXV0aG9yL25hbWUgIzpzb3J0IHNvcnQpKQorICAodmFs dWVzIChtYWtlLW1pbmV0ZXN0LXNleHAgYXV0aG9yL25hbWUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChyZWxlYXNlLXRpdGxlIHJlbGVhc2UpIDsgdmVyc2lvbgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtcmVwb3NpdG9yeSBwYWNrYWdlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHJlbGVhc2UtY29tbWl0IHJlbGVhc2UpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbXBvcnRhbnQtdXBzdHJlYW0tZGVwZW5kZW5jaWVzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1ob21lLXBhZ2UgcGFja2FnZSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLXNob3J0LWRlc2NyaXB0aW9uIHBh Y2thZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1sb25nLWRlc2Ny aXB0aW9uIHBhY2thZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3BkeC1zdHJp bmctPmxpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1tZWRp YS1saWNlbnNlIHBhY2thZ2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNwZHgt c3RyaW5nLT5saWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2Ut bGljZW5zZSBwYWNrYWdlKSkpCisgICAgICAgICAgaW1wb3J0YW50LXVwc3RyZWFtLWRlcGVuZGVu Y2llcykpCisKKyhkZWZpbmUgbWluZXRlc3QtPmd1aXgtcGFja2FnZQorICAobWVtb2l6ZSAlbWlu ZXRlc3QtPmd1aXgtcGFja2FnZSkpCisKKyhkZWZpbmUqIChtaW5ldGVzdC1yZWN1cnNpdmUtaW1w b3J0IGF1dGhvci9uYW1lICM6a2V5IChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KSkKKyAgKGRlZmlu ZSogKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UqIGF1dGhvci9uYW1lICM6a2V5IHJlcG8gdmVyc2lv bikKKyAgICAobWluZXRlc3QtPmd1aXgtcGFja2FnZSBhdXRob3IvbmFtZSAjOnNvcnQgc29ydCkp CisgIChyZWN1cnNpdmUtaW1wb3J0IGF1dGhvci9uYW1lCisgICAgICAgICAgICAgICAgICAgICM6 cmVwby0+Z3VpeC1wYWNrYWdlIG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UqCisgICAgICAgICAgICAg ICAgICAgICM6Z3VpeC1uYW1lIGNvbnRlbnRkYi0+cGFja2FnZS1uYW1lKSkKZGlmZiAtLWdpdCBh L2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtIGIvZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KaW5kZXgg ZjUzZDFhYzFmNC4uYjM2OWEzNjJkMCAxMDA2NDQKLS0tIGEvZ3VpeC9zY3JpcHRzL2ltcG9ydC5z Y20KKysrIGIvZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KQEAgLTc3LDcgKzc3LDggQEAgcmF0aGVy IHRoYW4gXFxuLiIKIDs7OwogCiAoZGVmaW5lIGltcG9ydGVycyAnKCJnbnUiICJweXBpIiAiY3Bh biIgImhhY2thZ2UiICJzdGFja2FnZSIgImVnZyIgImVscGEiCi0gICAgICAgICAgICAgICAgICAg ICJnZW0iICJnbyIgImNyYW4iICJjcmF0ZSIgInRleGxpdmUiICJqc29uIiAib3BhbSIpKQorICAg ICAgICAgICAgICAgICAgICAiZ2VtIiAiZ28iICJjcmFuIiAiY3JhdGUiICJ0ZXhsaXZlIiAianNv biIgIm9wYW0iCisgICAgICAgICAgICAgICAgICAgICJtaW5ldGVzdCIpKQogCiAoZGVmaW5lIChy ZXNvbHZlLWltcG9ydGVyIG5hbWUpCiAgIChsZXQgKChtb2R1bGUgKHJlc29sdmUtaW50ZXJmYWNl CmRpZmYgLS1naXQgYS9ndWl4L3NjcmlwdHMvaW1wb3J0L21pbmV0ZXN0LnNjbSBiL2d1aXgvc2Ny aXB0cy9pbXBvcnQvbWluZXRlc3Quc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjVmMjA0ZDkwZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L3NjcmlwdHMvaW1wb3J0 L21pbmV0ZXN0LnNjbQpAQCAtMCwwICsxLDExNyBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlv bmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMTQgRGF2 aWQgVGhvbXBzb24gPGRhdmV0QGdudS5vcmc+Cis7OzsgQ29weXJpZ2h0IMKpIDIwMTggUmljYXJk byBXdXJtdXMgPHJla2Fkb0BlbGVwaGx5Lm5ldD4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhp bWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMg cGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Owor Ozs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBH TlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor KGRlZmluZS1tb2R1bGUgKGd1aXggc2NyaXB0cyBpbXBvcnQgbWluZXRlc3QpCisgICM6dXNlLW1v ZHVsZSAoZ3VpeCB1aSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAjOnVzZS1tb2R1 bGUgKGd1aXggc2NyaXB0cykKKyAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCBtaW5ldGVzdCkK KyAgIzp1c2UtbW9kdWxlIChndWl4IGltcG9ydCB1dGlscykKKyAgIzp1c2UtbW9kdWxlIChndWl4 IHNjcmlwdHMgaW1wb3J0KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVzZS1t b2R1bGUgKHNyZmkgc3JmaS0xMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMzcpCisgICM6 dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQor ICAjOmV4cG9ydCAoZ3VpeC1pbXBvcnQtbWluZXRlc3QpKQorCisMCis7OzsKKzs7OyBDb21tYW5k LWxpbmUgb3B0aW9ucy4KKzs7OworCisoZGVmaW5lICVkZWZhdWx0LW9wdGlvbnMKKyAgYCgoc29y dCAuICwlZGVmYXVsdC1zb3J0LWtleSkpKQorCisoZGVmaW5lIChzaG93LWhlbHApCisgIChkaXNw bGF5IChHXyAiVXNhZ2U6IGd1aXggaW1wb3J0IG1pbmV0ZXN0IEFVVEhPUi9OQU1FCitJbXBvcnQg YW5kIGNvbnZlcnQgdGhlIE1pbmV0ZXN0IG1vZCBOQU1FIGJ5IEFVVEhPUiBmcm9tIENvbnRlbnRE Qi5cbiIpKQorICAoZGlzcGxheSAoR18gIgorICAtaCwgLS1oZWxwICAgICAgICAgICAgIGRpc3Bs YXkgdGhpcyBoZWxwIGFuZCBleGl0IikpCisgIChkaXNwbGF5IChHXyAiCisgIC1yLCAtLXJlY3Vy c2l2ZSAgICAgICAgaW1wb3J0IHBhY2thZ2VzIHJlY3Vyc2l2ZWx5IikpCisgIChkaXNwbGF5IChH XyAiCisgIC1WLCAtLXZlcnNpb24gICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9u IGFuZCBleGl0IikpCisgIChkaXNwbGF5IChHXyAiCisgICAgICAtLXNvcnQ9S0VZICAgICAgICAg d2hlbiBjaG9vc2luZyBiZXR3ZWVuIG11bHRpcGxlIGltcGxlbWVudGF0aW9ucywKKyAgICAgICAg ICAgICAgICAgICAgICAgICBjaG9vc2UgdGhlIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHZhbHVlIGZv ciBLRVkKKyAgICAgICAgICAgICAgICAgICAgICAgICAob25lIG9mIFwic2NvcmVcIiAoc3RhbmRh cmQpIG9yIFwiZG93bmxvYWRzXCIpIikpCisgIChuZXdsaW5lKQorICAoc2hvdy1idWctcmVwb3J0 LWluZm9ybWF0aW9uKSkKKworKGRlZmluZSAodmVyaWZ5LXNvcnQtb3JkZXIgc29ydCkKKyAgIlZl cmlmeSBTT1JUIGNhbiBiZSB1c2VkIHRvIHNvcnQgbW9kcyBieS4iCisgICh1bmxlc3MgKG1lbWJl ciBzb3J0ICcoInNjb3JlIiAiZG93bmxvYWRzIiAicmV2aWV3cyIpKQorICAgIChsZWF2ZSAoR18g In5hOiBub3QgYSB2YWxpZCBrZXkgdG8gc29ydCBieX4lIikgc29ydCkpCisgIHNvcnQpCisKKyhk ZWZpbmUgJW9wdGlvbnMKKyAgOzsgU3BlY2lmaWNhdGlvbiBvZiB0aGUgY29tbWFuZC1saW5lIG9w dGlvbnMuCisgIChjb25zKiAob3B0aW9uICcoI1xoICJoZWxwIikgI2YgI2YKKyAgICAgICAgICAg ICAgICAgKGxhbWJkYSBhcmdzCisgICAgICAgICAgICAgICAgICAgKHNob3ctaGVscCkKKyAgICAg ICAgICAgICAgICAgICAoZXhpdCAwKSkpCisgICAgICAgICAob3B0aW9uICcoI1xWICJ2ZXJzaW9u IikgI2YgI2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSBhcmdzCisgICAgICAgICAgICAgICAg ICAgKHNob3ctdmVyc2lvbi1hbmQtZXhpdCAiZ3VpeCBpbXBvcnQgbWluZXRlc3QiKSkpCisgICAg ICAgICAob3B0aW9uICcoI1xyICJyZWN1cnNpdmUiKSAjZiAjZgorICAgICAgICAgICAgICAgICAo bGFtYmRhIChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAgICAgIChhbGlzdC1j b25zICdyZWN1cnNpdmUgI3QgcmVzdWx0KSkpCisgICAgICAgICAob3B0aW9uICcoInNvcnQiKSAj dCAjZgorICAgICAgICAgICAgICAgICAobGFtYmRhIChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAg ICAgICAgICAgICAgICAgIChhbGlzdC1jb25zICdzb3J0ICh2ZXJpZnktc29ydC1vcmRlciBhcmcp IHJlc3VsdCkpKQorICAgICAgICAgJXN0YW5kYXJkLWltcG9ydC1vcHRpb25zKSkKKworDAorOzs7 Cis7OzsgRW50cnkgcG9pbnQuCis7OzsKKworKGRlZmluZSAoZ3VpeC1pbXBvcnQtbWluZXRlc3Qg LiBhcmdzKQorICAoZGVmaW5lIChwYXJzZS1vcHRpb25zKQorICAgIDs7IFJldHVybiB0aGUgYWxp c3Qgb2Ygb3B0aW9uIHZhbHVlcy4KKyAgICAoYXJncy1mb2xkKiBhcmdzICVvcHRpb25zCisgICAg ICAgICAgICAgICAgKGxhbWJkYSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAg ICAgIChsZWF2ZSAoR18gIn5BOiB1bnJlY29nbml6ZWQgb3B0aW9ufiUiKSBuYW1lKSkKKyAgICAg ICAgICAgICAgICAobGFtYmRhIChhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAgICAgKGFsaXN0 LWNvbnMgJ2FyZ3VtZW50IGFyZyByZXN1bHQpKQorICAgICAgICAgICAgICAgICVkZWZhdWx0LW9w dGlvbnMpKQorCisgIChsZXQqICgob3B0cyAocGFyc2Utb3B0aW9ucykpCisgICAgICAgICAoYXJn cyAoZmlsdGVyLW1hcCAobWF0Y2gtbGFtYmRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCgnYXJndW1lbnQgLiB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF8gI2YpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHJldmVyc2Ugb3B0cykpKSkKKyAgICAobWF0Y2ggYXJncworICAgICAgKChuYW1l KQorICAgICAgICh3aXRoLWVycm9yLWhhbmRsaW5nCisgICAgICAgICAobGV0KiAoKHNvcnQgKGFz c29jLXJlZiBvcHRzICdzb3J0KSkKKyAgICAgICAgICAgICAgICAoYXV0aG9yL25hbWUgKGVsYWJv cmF0ZS1jb250ZW50ZGItbmFtZSBuYW1lICM6c29ydCBzb3J0KSkpCisgICAgICAgICAgIChpZiAo YXNzb2MtcmVmIG9wdHMgJ3JlY3Vyc2l2ZSkKKyAgICAgICAgICAgICAgIDs7IFJlY3Vyc2l2ZSBp bXBvcnQKKyAgICAgICAgICAgICAgIChmaWx0ZXItbWFwIHBhY2thZ2UtPmRlZmluaXRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtaW5ldGVzdC1yZWN1cnNpdmUtaW1wb3J0IGF1dGhv ci9uYW1lICM6c29ydCBzb3J0KSkKKyAgICAgICAgICAgICAgIDs7IFNpbmdsZSBpbXBvcnQKKyAg ICAgICAgICAgICAgIChtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlIGF1dGhvci9uYW1lICM6c29ydCBz b3J0KSkpKSkKKyAgICAgICgoKQorICAgICAgIChsZWF2ZSAoR18gInRvbyBmZXcgYXJndW1lbnRz fiUiKSkpCisgICAgICAoKG1hbnkgLi4uKQorICAgICAgIChsZWF2ZSAoR18gInRvbyBtYW55IGFy Z3VtZW50c34lIikpKSkpKQpkaWZmIC0tZ2l0IGEvcG8vZ3VpeC9QT1RGSUxFUy5pbiBiL3BvL2d1 aXgvUE9URklMRVMuaW4KaW5kZXggYTNiY2VkMWE4Zi4uZjI1YTdiNDgwMiAxMDA2NDQKLS0tIGEv cG8vZ3VpeC9QT1RGSUxFUy5pbgorKysgYi9wby9ndWl4L1BPVEZJTEVTLmluCkBAIC02MCw2ICs2 MCw3IEBAIGd1aXgvc2NyaXB0cy9naXQuc2NtCiBndWl4L3NjcmlwdHMvZ2l0L2F1dGhlbnRpY2F0 ZS5zY20KIGd1aXgvc2NyaXB0cy9oYXNoLnNjbQogZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20KK2d1 aXgvc2NyaXB0cy9pbXBvcnQvY29udGVudGRiLnNjbQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9jcmFu LnNjbQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9lbHBhLnNjbQogZ3VpeC9zY3JpcHRzL3B1bGwuc2Nt CmRpZmYgLS1naXQgYS90ZXN0cy9taW5ldGVzdC5zY20gYi90ZXN0cy9taW5ldGVzdC5zY20KbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNmFlNDc2ZmU1ZgotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RzL21pbmV0ZXN0LnNjbQpAQCAtMCwwICsxLDM1NSBAQAorOzs7IEdOVSBH dWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCis7OzsgQ29weXJp Z2h0IMKpIDIwMjEgTWF4aW1lIERldm9zIDxtYXhpbWVkZXZvc0B0ZWxlbmV0LmJlPgorOzs7Cis7 OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cis7 OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor Ozs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LW1pbmV0ZXN0KQorICAjOnVzZS1t b2R1bGUgKGd1aXggbWVtb2l6YXRpb24pCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgbWlu ZXRlc3QpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBpbXBvcnQgdXRpbHMpCisgICM6dXNlLW1vZHVs ZSAoZ3VpeCB0ZXN0cykKKyAgIzp1c2UtbW9kdWxlIChqc29uKQorICAjOnVzZS1tb2R1bGUgKGlj ZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAjOnVzZS1tb2R1bGUg KHNyZmkgc3JmaS0yNikKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMzQpCisgICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTY0KSkKKworDAorOzsgU29tZSBwcm9jZWR1cmVzIGZvciBwb3B1bGF0 aW5nIGEg4oCYZmFrZeKAmSBDb250ZW50REIgc2VydmVyLgorCisoZGVmaW5lKiAobWFrZS1wYWNr YWdlLXNleHAgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpeC1uYW1lICJt aW5ldGVzdC1mb28iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChob21lLXBhZ2UgImh0 dHBzOi8vZXhhbXBsZS5vcmcvZm9vIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVw byAiaHR0cHM6Ly9leGFtcGxlLm9yZy9mb28uZ2l0IikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3lub3BzaXMgInN5bm9wc2lzIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Z3VpeC1kZXNjcmlwdGlvbiAiZGVzY3JpcHRpb24iKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChndWl4LWxpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhsaXN0IGxp Y2Vuc2U6Y2MtYnktc2E0LjAgbGljZW5zZTpsZ3BsMyspKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChpbnB1dHMgJygpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1cHN0cmVh bS1uYW1lICJBdXRob3IvZm9vIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93 LW90aGVyLWtleXMpCisgIGAocGFja2FnZQorICAgICAobmFtZSAsZ3VpeC1uYW1lKQorICAgICA7 OyBUaGlzIGlzIG5vdCBhIHByb3BlciB2ZXJzaW9uIG51bWJlciBidXQgQ29udGVudERCIGRvZXMg bm90IGluY2x1ZGUKKyAgICAgOzsgdmVyc2lvbiBudW1iZXJzLgorICAgICAodmVyc2lvbiAiMjAy MS0wNy0yNSIpCisgICAgIChzb3VyY2UKKyAgICAgIChvcmlnaW4KKyAgICAgICAgKG1ldGhvZCBn aXQtZmV0Y2gpCisgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAgKHVy bCAsKGFuZCAobm90IChlcT8gcmVwbyAnbnVsbCkpIHJlcG8pKQorICAgICAgICAgICAgICAoY29t bWl0ICNmKSkpCisgICAgICAgIChzaGEyNTYKKyAgICAgICAgIChiYXNlMzIgI2YpKQorICAgICAg ICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAgKGJ1aWxk LXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgICAsQChtYXliZS1wcm9wYWdh dGVkLWlucHV0cyBpbnB1dHMpCisgICAgIChob21lLXBhZ2UgLGhvbWUtcGFnZSkKKyAgICAgKHN5 bm9wc2lzICxzeW5vcHNpcykKKyAgICAgKGRlc2NyaXB0aW9uICxndWl4LWRlc2NyaXB0aW9uKQor ICAgICAobGljZW5zZSAsZ3VpeC1saWNlbnNlKQorICAgICAocHJvcGVydGllcworICAgICAgLChs aXN0ICdxdWFzaXF1b3RlCisgICAgICAgICAgICAgYCgodXBzdHJlYW0tbmFtZSAuICx1cHN0cmVh bS1uYW1lKSkpKSkpCisKKyhkZWZpbmUqIChtYWtlLXBhY2thZ2UtanNvbiAjOmtleQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhdXRob3IgIkF1dGhvciIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG5hbWUgImZvbyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1l ZGlhLWxpY2Vuc2UgIkNDLUJZLVNBLTQuMCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpY2Vuc2UgIkxHUEwtMy4wLW9yLWxhdGVyIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2hvcnQtZGVzY3JpcHRpb24gInN5bm9wc2lzIikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobG9uZy1kZXNjcmlwdGlvbiAiZGVzY3JpcHRpb24iKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChyZXBvICJodHRwczovL2V4YW1wbGUub3JnL2Zvby5naXQiKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh3ZWJzaXRlICJodHRwczovL2V4YW1wbGUub3JnL2ZvbyIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcnVtcyAzMjEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNjb3JlIDk4Ny42NTQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGRvd25sb2FkcyAxMjMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUgIm1vZCIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICBgKCgi YXV0aG9yIiAuICxhdXRob3IpCisgICAgKCJjb250ZW50X3dhcm5pbmdzIiAuICMoKSkKKyAgICAo ImNyZWF0ZWRfYXQiIC4gIjIwMTgtMDUtMjNUMTk6NTg6MDcuNDIyMTA4IikKKyAgICAoImRvd25s b2FkcyIgLiAsZG93bmxvYWRzKQorICAgICgiZm9ydW1zIiAuICxmb3J1bXMpCisgICAgKCJpc3N1 ZV90cmFja2VyIiAuICJodHRwczovL2V4YW1wbGUub3JnL2Zvby9pc3N1ZXMiKQorICAgICgibGlj ZW5zZSIgLiAsbGljZW5zZSkKKyAgICAoImxvbmdfZGVzY3JpcHRpb24iIC4gLGxvbmctZGVzY3Jp cHRpb24pCisgICAgKCJtYWludGFpbmVycyIgLiAjKCJtYWludGFpbmVyIikpCisgICAgKCJtZWRp YV9saWNlbnNlIiAuICxtZWRpYS1saWNlbnNlKQorICAgICgibmFtZSIgLiAsbmFtZSkKKyAgICAo InByb3ZpZGVzIiAuICMoInN0dWZmIikpCisgICAgKCJyZWxlYXNlIiAuIDQ1NikKKyAgICAoInJl cG8iIC4gLHJlcG8pCisgICAgKCJzY29yZSIgLiAsc2NvcmUpCisgICAgKCJzY3JlZW5zaG90cyIg LiAjKCkpCisgICAgKCJzaG9ydF9kZXNjcmlwdGlvbiIgLiAsc2hvcnQtZGVzY3JpcHRpb24pCisg ICAgKCJzdGF0ZSIgLiAiQVBQUk9WRUQiKQorICAgICgidGFncyIgLiAjKCJzb21lIiAidGFncyIp KQorICAgICgidGh1bWJuYWlsIiAuIG51bGwpCisgICAgKCJ0aXRsZSIgLiAiVGhlIG5hbWUiKQor ICAgICgidHlwZSIgLiAsdHlwZSkKKyAgICAoInVybCIgLiAsKHN0cmluZy1hcHBlbmQgImh0dHBz Oi8vY29udGVudC5taW5ldGVzdC5uZXQvcGFja2FnZXMvIgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdXRob3IgIi8iIG5hbWUgIi9kb3dubG9hZC8iKSkKKyAgICAoIndlYnNpdGUiIC4g LHdlYnNpdGUpKSkKKworKGRlZmluZSogKG1ha2UtcmVsZWFzZXMtanNvbiAjOmtleSAoY29tbWl0 ICNmKSAodGl0bGUgIiIpICM6YWxsb3ctb3RoZXIta2V5cykKKyAgYCMoKCgiY29tbWl0IiAuICxj b21taXQpCisgICAgICAoImRvd25sb2FkcyIgLiA0NjkpCisgICAgICAoImlkIiAuIDg2MTQpCisg ICAgICAoIm1heF9taW5ldGVzdF92ZXJzaW9uIiAuIG51bGwpCisgICAgICAoIm1pbl9taW5ldGVz dF92ZXJzaW9uIiAuIG51bGwpCisgICAgICAoInJlbGVhc2VfZGF0ZSIgLiAiMjAyMS0wNy0yNVQw MToxMDoyMy4yMDc1ODQiKQorICAgICAgKCJ0aXRsZSIgLiAiMjAyMS0wNy0yNSIpKSkpCisKKyhk ZWZpbmUqIChtYWtlLWRlcGVuZGVuY2llcy1qc29uICM6a2V5IChhdXRob3IgIkF1dGhvciIpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSAiZm9vIikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChyZXF1aXJlbWVudHMgJygoImRlZmF1bHQiICNmICgpKSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisg IGAoKCwoc3RyaW5nLWFwcGVuZCBhdXRob3IgIi8iIG5hbWUpCisgICAgIC4gLChsaXN0LT52ZWN0 b3IKKyAgICAgICAgIChtYXAgKG1hdGNoLWxhbWJkYQorICAgICAgICAgICAgICAgICgoc3ltYm9s aWMtbmFtZSBvcHRpb25hbD8gaW1wbGVtZW50YXRpb25zKQorICAgICAgICAgICAgICAgICBgKCgi aXNfb3B0aW9uYWwiIC4gLG9wdGlvbmFsPykKKyAgICAgICAgICAgICAgICAgICAoIm5hbWUiIC4g LHN5bWJvbGljLW5hbWUpCisgICAgICAgICAgICAgICAgICAgKCJwYWNrYWdlcyIgLiAsKGxpc3Qt PnZlY3RvciBpbXBsZW1lbnRhdGlvbnMpKSkpKQorICAgICAgICAgICAgICByZXF1aXJlbWVudHMp KSkKKyAgICAoInNvbWV0aGluZy9lbHNlIiAuICMoKSkpKQorCisoZGVmaW5lKiAobWFrZS1wYWNr YWdlcy1rZXlzLWpzb24gIzprZXkgKGF1dGhvciAiQXV0aG9yIikKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobmFtZSAiTmFtZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHR5cGUgIm1vZCIpKQorICBgKCgiYXV0aG9yIiAuICxhdXRob3IpCisgICAgKCJu YW1lIiAuICxuYW1lKQorICAgICgidHlwZSIgLiAsdHlwZSkpKQorCisoZGVmaW5lIChjYWxsLXdp dGgtcGFja2FnZXMgdGh1bmsgLiBhcmd1bWVudC1saXN0cykKKyAgOzsgRG9uJ3QgcmV1c2UgcmVz dWx0cyBmcm9tIHByZXZpb3VzIHRlc3RzLgorICAoaW52YWxpZGF0ZS1tZW1vaXphdGlvbiEgY29u dGVudGRiLWZldGNoKQorICAoaW52YWxpZGF0ZS1tZW1vaXphdGlvbiEgbWluZXRlc3QtPmd1aXgt cGFja2FnZSkKKyAgKGRlZmluZSAoc2NtLT5qc29uLXBvcnQgc2NtKQorICAgIChvcGVuLWlucHV0 LXN0cmluZyAoc2NtLT5qc29uLXN0cmluZyBzY20pKSkKKyAgKGRlZmluZSAoaGFuZGxlLXBhY2th Z2UgdXJsIHJlcXVlc3RlZC1hdXRob3IgcmVxdWVzdGVkLW5hbWUgLiByZXN0KQorICAgIChkZWZp bmUgcmVsZXZhbnQtYXJndW1lbnQtbGlzdAorICAgICAgKGFueSAobGFtYmRhIChhcmd1bWVudC1s aXN0KQorICAgICAgICAgICAgIChhcHBseSAobGFtYmRhKiAoIzprZXkgKGF1dGhvciAiQXV0aG9y IikgKG5hbWUgImZvbyIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmFsbG93LW90 aGVyLWtleXMpCisgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZXF1YWw/IHJlcXVlc3RlZC1h dXRob3IgYXV0aG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsPyByZXF1ZXN0 ZWQtbmFtZSBuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQtbGlzdCkp CisgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50LWxpc3QpKQorICAgICAgICAgICBhcmd1bWVu dC1saXN0cykpCisgICAgKHdoZW4gKG5vdCByZWxldmFudC1hcmd1bWVudC1saXN0KQorICAgICAg KGVycm9yICJ0aGUgcGFja2FnZSB+YS9+YSBzaG91bGQgYmUgaXJyZWxldmFudCwgYnV0IH5hIGlz IGZldGNoZWQiCisgICAgICAgICAgICAgcmVxdWVzdGVkLWF1dGhvciByZXF1ZXN0ZWQtbmFtZSB1 cmwpKQorICAgIChzY20tPmpzb24tcG9ydAorICAgICAoYXBwbHkgKG1hdGNoIHJlc3QKKyAgICAg ICAgICAgICAgKCgiIikgbWFrZS1wYWNrYWdlLWpzb24pCisgICAgICAgICAgICAgICgoImRlcGVu ZGVuY2llcyIgIiIpIG1ha2UtZGVwZW5kZW5jaWVzLWpzb24pCisgICAgICAgICAgICAgICgoInJl bGVhc2VzIiAiIikgbWFrZS1yZWxlYXNlcy1qc29uKQorICAgICAgICAgICAgICAoXyAoZXJyb3Ig IlRPRE8gfmEiIHJlc3QpKSkKKyAgICAgICAgICAgIHJlbGV2YW50LWFyZ3VtZW50LWxpc3QpKSkK KyAgKGRlZmluZSAoaGFuZGxlLW1vZC1zZWFyY2ggc29ydCkKKyAgICA7OyBQcm9kdWNlIHNlYXJj aCByZXN1bHRzLCBzb3J0ZWQgYnkgU09SVCBpbiBkZXNjZW5kaW5nIG9yZGVyLgorICAgIChkZWZp bmUgYXJndW1lbnRzLT5rZXkKKyAgICAgIChtYXRjaCBzb3J0CisgICAgICAgICgic2NvcmUiIChs YW1iZGEqICgjOmtleSAoc2NvcmUgOTg3LjY1NCkgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAg ICAgICAgICAgICAgIHNjb3JlKSkKKyAgICAgICAgKCJkb3dubG9hZHMiIChsYW1iZGEqICgjOmtl eSAoZG93bmxvYWRzIDEyMykgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgICAg ICAgICBkb3dubG9hZHMpKSkpCisgICAgKGRlZmluZSBhcmd1bWVudC1saXN0LT5rZXkgKGN1dCBh cHBseSBhcmd1bWVudHMtPmtleSA8PikpCisgICAgKGRlZmluZSAoZ3JlYXRlciB4IHkpCisgICAg ICAoPiAoYXJndW1lbnQtbGlzdC0+a2V5IHgpIChhcmd1bWVudC1saXN0LT5rZXkgeSkpKQorICAg IChkZWZpbmUgc29ydGVkLWFyZ3VtZW50LWxpc3RzIChzb3J0LWxpc3QgYXJndW1lbnQtbGlzdHMg Z3JlYXRlcikpCisgICAgKGRlZmluZSogKGFyZ3VtZW50cy0+anNvbiAjOmtleSAoYXV0aG9yICJB dXRob3IiKSAobmFtZSAiRm9vIikgKHR5cGUgIm1vZCIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAoYW5kIChzdHJpbmc9PyB0eXBlICJt b2QiKQorICAgICAgICAgICBgKCgiYXV0aG9yIiAuICxhdXRob3IpCisgICAgICAgICAgICAgKCJu YW1lIiAuICxuYW1lKQorICAgICAgICAgICAgICgidHlwZSIgLiAsdHlwZSkpKSkKKyAgICAoZGVm aW5lIGFyZ3VtZW50LWxpc3QtPmpzb24gKGN1dCBhcHBseSBhcmd1bWVudHMtPmpzb24gPD4pKQor ICAgIChzY20tPmpzb24tcG9ydAorICAgICAobGlzdC0+dmVjdG9yIChmaWx0ZXItbWFwIGFyZ3Vt ZW50LWxpc3QtPmpzb24gc29ydGVkLWFyZ3VtZW50LWxpc3RzKSkpKQorICAobW9jayAoKGd1aXgg aHR0cC1jbGllbnQpIGh0dHAtZmV0Y2gKKyAgICAgICAgIChsYW1iZGEqICh1cmwgIzprZXkgaGVh ZGVycykKKyAgICAgICAgICAgKHVubGVzcyAoc3RyaW5nLXByZWZpeD8gIm1vY2s6Ly9hcGkvcGFj a2FnZXMvIiB1cmwpCisgICAgICAgICAgICAgKGVycm9yICJ0aGUgVVJMIH5hIHNob3VsZCBub3Qg YmUgdXNlZCIgdXJsKSkKKyAgICAgICAgICAgKGRlZmluZSByZXNvdXJjZQorICAgICAgICAgICAg IChzdWJzdHJpbmcgdXJsIChzdHJpbmctbGVuZ3RoICJtb2NrOi8vYXBpL3BhY2thZ2VzLyIpKSkK KyAgICAgICAgICAgKGRlZmluZSBjb21wb25lbnRzIChzdHJpbmctc3BsaXQgcmVzb3VyY2UgI1wv KSkKKyAgICAgICAgICAgKG1hdGNoIGNvbXBvbmVudHMKKyAgICAgICAgICAgICAoKGF1dGhvciBu YW1lIC4gcmVzdCkKKyAgICAgICAgICAgICAgKGFwcGx5IGhhbmRsZS1wYWNrYWdlIHVybCBhdXRo b3IgbmFtZSByZXN0KSkKKyAgICAgICAgICAgICAoKCg/IChjdXQgc3RyaW5nLXByZWZpeD8gIj90 eXBlPW1vZCZxPSIgPD4pIHF1ZXJ5KSkKKyAgICAgICAgICAgICAgKGhhbmRsZS1tb2Qtc2VhcmNo CisgICAgICAgICAgICAgICAoY29uZCAoKHN0cmluZy1jb250YWlucyBxdWVyeSAic29ydD1zY29y ZSIpICJzY29yZSIpCisgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1jb250YWlucyBxdWVy eSAic29ydD1kb3dubG9hZHMiKSAiZG93bmxvYWRzIikKKyAgICAgICAgICAgICAgICAgICAgICgj dCAoZXJyb3IgInNlYXJjaCBxdWVyeSB+YSBoYXMgdW5rbm93biBzb3J0IGtleSIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkpKSkpKQorICAgICAgICAgICAgIChfCisgICAg ICAgICAgICAgIChlcnJvciAidGhlIFVSTCB+YSBzaG91bGQgaGF2ZSBhbiBhdXRob3IgYW5kIG5h bWUgY29tcG9uZW50IgorICAgICAgICAgICAgICAgICAgICAgdXJsKSkpKSkKKyAgICAgICAgKHBh cmFtZXRlcml6ZSAoKCVjb250ZW50ZGItYXBpICJtb2NrOi8vYXBpLyIpKQorICAgICAgICAgICh0 aHVuaykpKSkKKworKGRlZmluZSogKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UqICM6a2V5IChhdXRo b3IgIkF1dGhvciIpIChuYW1lICJmb28iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzb3J0ICVkZWZhdWx0LXNvcnQta2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICM6YWxsb3ctb3RoZXIta2V5cykKKyAgKG1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UgKHN0 cmluZy1hcHBlbmQgYXV0aG9yICIvIiBuYW1lKSAjOnNvcnQgc29ydCkpCisKKyhkZWZpbmUgKGlt cG9ydGVkLXBhY2thZ2Utc2V4cCogcHJpbWFyeS1hcmd1bWVudHMgLiBzZWNvbmRhcnktYXJndW1l bnRzKQorICAiQXNrIHRoZSBpbXBvcnRlciB0byBpbXBvcnQgYSBwYWNrYWdlIHNwZWNpZmllZCBi eSBQUklNQVJZLUFSR1VNRU5UUywKK2R1cmluZyBhIGR5bmFtaWMgd2hlcmUgdGhhdCBwYWNrYWdl IGFuZCB0aGUgcGFja2FnZXMgc3BlY2lmaWVkIGJ5CitTRUNPTkRBUlktQVJHVU1FTlRTIGFyZSBh dmFpbGFibGUgb24gQ29udGVudERCLiIKKyAgKGFwcGx5IGNhbGwtd2l0aC1wYWNrYWdlcworICAg ICAgICAgKGxhbWJkYSAoKQorICAgICAgICAgICA7OyBUaGUgbWVtb2l6YXRpb24gY2FjaGUgaXMg cmVzZXQgYnkgY2FsbC13aXRoLXBhY2thZ2VzCisgICAgICAgICAgIChhcHBseSBtaW5ldGVzdC0+ Z3VpeC1wYWNrYWdlKiBwcmltYXJ5LWFyZ3VtZW50cykpCisgICBwcmltYXJ5LWFyZ3VtZW50cwor ICAgc2Vjb25kYXJ5LWFyZ3VtZW50cykpCisKKyhkZWZpbmUgKGltcG9ydGVkLXBhY2thZ2Utc2V4 cCAuIGV4dHJhLWFyZ3VtZW50cykKKyAgIkFzayB0aGUgaW1wb3J0ZXIgdG8gaW1wb3J0IGEgcGFj a2FnZSBzcGVjaWZpZWQgYnkgRVhUUkEtQVJHVU1FTlRTLAorZHVyaW5nIGEgZHluYW1pYyBleHRl bnQgd2hlcmUgdGhhdCBwYWNrYWdlIGlzIGF2YWlsYWJsZSBvbiBDb250ZW50REIuIgorICAoaW1w b3J0ZWQtcGFja2FnZS1zZXhwKiBleHRyYS1hcmd1bWVudHMpKQorCisoZGVmaW5lLXN5bnRheC1y dWxlICh0ZXN0LXBhY2thZ2UgdGVzdC1jYXNlIC4gZXh0cmEtYXJndW1lbnRzKQorICAodGVzdC1l cXVhbCB0ZXN0LWNhc2UKKyAgICAobWFrZS1wYWNrYWdlLXNleHAgLiBleHRyYS1hcmd1bWVudHMp CisgICAgKGltcG9ydGVkLXBhY2thZ2Utc2V4cCAuIGV4dHJhLWFyZ3VtZW50cykpKQorCisoZGVm aW5lLXN5bnRheC1ydWxlICh0ZXN0LXBhY2thZ2UqIHRlc3QtY2FzZSBwcmltYXJ5LWFyZ3VtZW50 cyBleHRyYS1hcmd1bWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4u KQorICAodGVzdC1lcXVhbCB0ZXN0LWNhc2UKKyAgICAoYXBwbHkgbWFrZS1wYWNrYWdlLXNleHAg cHJpbWFyeS1hcmd1bWVudHMpCisgICAgKGltcG9ydGVkLXBhY2thZ2Utc2V4cCogcHJpbWFyeS1h cmd1bWVudHMgZXh0cmEtYXJndW1lbnRzIC4uLikpKQorCisodGVzdC1iZWdpbiAibWluZXRlc3Qi KQorCisMCis7OyBQYWNrYWdlIG5hbWVzCisodGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1w YWNrYWdlIikKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIF8g4oaSIC0g aW4gcGFja2FnZSBuYW1lIgorICAgICAgICAgICAgICAjOm5hbWUgImZvb19iYXIiCisgICAgICAg ICAgICAgICM6Z3VpeC1uYW1lICJtaW5ldGVzdC1mb28tYmFyIgorICAgICAgICAgICAgICAjOnVw c3RyZWFtLW5hbWUgIkF1dGhvci9mb29fYmFyIikKKworKHRlc3QtZXF1YWwgImVsYWJvcmF0ZSBu YW1lcywgdW5hbWJpZ2lvdXMiCisgICJKZWlqYS9tZXNlY29ucyIKKyAgKGNhbGwtd2l0aC1wYWNr YWdlcworICAgKGN1dCBlbGFib3JhdGUtY29udGVudGRiLW5hbWUgIm1lc2Vjb25zIikKKyAgICco IzpuYW1lICJtZXNlY29ucyIgIzphdXRob3IgIkplaWphIikKKyAgICcoIzpuYW1lICJzb21ldGhp bmciICM6YXV0aG9yICJlbHNlIikpKQorCisodGVzdC1lcXVhbCAiZWxhYm9yYXRlIG5hbWUsIGFt YmlnaW91cyAoaGlnaGVzdCBzY29yZSkiCisgICJKZWlqYS9tZXNlY29ucyIKKyAgKGNhbGwtd2l0 aC1wYWNrYWdlcworICAgOzsgIzpzb3J0ICJzY29yZSIgaXMgdGhlIGRlZmF1bHQKKyAgIChjdXQg ZWxhYm9yYXRlLWNvbnRlbnRkYi1uYW1lICJtZXNlY29ucyIpCisgICAnKCM6bmFtZSAibWVzZWNv bnMiICM6YXV0aG9yICJKZWlqYyIgIzpzY29yZSA3NzcpCisgICAnKCM6bmFtZSAibWVzZWNvbnMi ICM6YXV0aG9yICJKZWlqYiIgIzpzY29yZSA4ODgpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6 YXV0aG9yICJKZWlqYSIgIzpzY29yZSA5OTkpKSkKKworCisodGVzdC1lcXVhbCAiZWxhYm9yYXRl IG5hbWUsIGFtYmlnaW91cyAobW9zdCBkb3dubG9hZHMpIgorICAiSmVpamEvbWVzZWNvbnMiCisg IChjYWxsLXdpdGgtcGFja2FnZXMKKyAgIChjdXQgZWxhYm9yYXRlLWNvbnRlbnRkYi1uYW1lICJt ZXNlY29ucyIgIzpzb3J0ICJkb3dubG9hZHMiKQorICAgJygjOm5hbWUgIm1lc2Vjb25zIiAjOmF1 dGhvciAiSmVpamMiICM6ZG93bmxvYWRzIDc3NykKKyAgICcoIzpuYW1lICJtZXNlY29ucyIgIzph dXRob3IgIkplaWpiIiAjOmRvd25sb2FkcyA4ODgpCisgICAnKCM6bmFtZSAibWVzZWNvbnMiICM6 YXV0aG9yICJKZWlqYSIgIzpkb3dubG9hZHMgOTk5KSkpCisKKwwKKzs7IERldGVybWluaW5nIHRo ZSBob21lIHBhZ2UKKyh0ZXN0LXBhY2thZ2UgIm1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIHdlYnNp dGUgaXMgdXNlZCBhcyBob21lIHBhZ2UiCisgICAgICAgICAgICAgICM6aG9tZS1wYWdlICJ3ZWI6 Ly9zaXRlIgorICAgICAgICAgICAgICAjOndlYnNpdGUgIndlYjovL3NpdGUiKQorKHRlc3QtcGFj a2FnZSAibWluZXRlc3QtPmd1aXgtcGFja2FnZSwgaWYgYWJzZW50LCB0aGUgZm9ydW0gaXMgdXNl ZCIKKyAgICAgICAgICAgICAgIzpob21lLXBhZ2UgJyhtaW5ldGVzdC10b3BpYyA2MjgpCisgICAg ICAgICAgICAgICM6Zm9ydW1zIDYyOAorICAgICAgICAgICAgICAjOndlYnNpdGUgJ251bGwpCiso dGVzdC1wYWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBpZiBhYnNlbnQsIHRoZSBnaXQg cmVwbyBpcyB1c2VkIgorICAgICAgICAgICAgICAjOmhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIu Y29tL21pbmV0ZXN0LW1vZHMvbWVzZWNvbnMiCisgICAgICAgICAgICAgICM6Zm9ydW1zICdudWxs CisgICAgICAgICAgICAgICM6d2Vic2l0ZSAnbnVsbAorICAgICAgICAgICAgICAjOnJlcG8gImh0 dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC1tb2RzL21lc2Vjb25zIikKKyh0ZXN0LXBhY2thZ2Ug Im1pbmV0ZXN0LT5ndWl4LXBhY2thZ2UsIGFsbCBob21lIHBhZ2UgaW5mb3JtYXRpb24gYWJzZW50 IgorICAgICAgICAgICAgICAjOmhvbWUtcGFnZSAjZgorICAgICAgICAgICAgICAjOmZvcnVtcyAn bnVsbAorICAgICAgICAgICAgICAjOndlYnNpdGUgJ251bGwKKyAgICAgICAgICAgICAgIzpyZXBv ICdudWxsKQorCisMCisKKzs7IERlcGVuZGVuY2llcworKHRlc3QtcGFja2FnZSogIm1pbmV0ZXN0 LT5ndWl4LXBhY2thZ2UsIHVuYW1iaWdpb3VzIGRlcGVuZGVuY3kiCisgIChsaXN0ICM6cmVxdWly ZW1lbnRzICcoKCJtZXNlY29ucyIgI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJKZWlq YS9tZXNlY29ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21lLW1vZHBhY2svY29u dGFpbmluZy1tZXNlIikpKQorICAgICAgICAjOmlucHV0cyAnKCJtaW5ldGVzdC1tZXNlY29ucyIp KQorICAobGlzdCAjOmF1dGhvciAiSmVpamEiICM6bmFtZSAibWVzZWNvbnMiKQorICAobGlzdCAj OmF1dGhvciAic29tZS1tb2RwYWNrIiAjOm5hbWUgImNvbnRhaW5pbmctbWVzZSIgIzp0eXBlICJt b2RwYWNrIikpCisKKyh0ZXN0LXBhY2thZ2UqICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBhbWJp Z2lvdXMgZGVwZW5kZW5jeSAoaGlnaGVzdCBzY29yZSkiCisgIChsaXN0ICM6bmFtZSAiZnJvYm5p Y2F0ZSIKKyAgICAgICAgIzpndWl4LW5hbWUgIm1pbmV0ZXN0LWZyb2JuaWNhdGUiCisgICAgICAg ICM6dXBzdHJlYW0tbmFtZSAiQXV0aG9yL2Zyb2JuaWNhdGUiCisgICAgICAgICM6cmVxdWlyZW1l bnRzICcoKCJmcm9iIiAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAoIkF1dGhvci9mb28i ICJBdXRob3IvYmFyIikpKQorICAgICAgICA7OyAjOnNvcnQgInNjb3JlIiBpcyB0aGUgZGVmYXVs dAorICAgICAgICAjOmlucHV0cyAnKCJtaW5ldGVzdC1iYXIiKSkKKyAgKGxpc3QgIzphdXRob3Ig IkF1dGhvciIgIzpuYW1lICJmb28iICM6c2NvcmUgMCkKKyAgKGxpc3QgIzphdXRob3IgIkF1dGhv ciIgIzpuYW1lICJiYXIiICM6c2NvcmUgOTk5OSkpCisKKyh0ZXN0LXBhY2thZ2UqICJtaW5ldGVz dC0+Z3VpeC1wYWNrYWdlLCBhbWJpZ2lvdXMgZGVwZW5kZW5jeSAobW9zdCBkb3dubG9hZHMpIgor ICAobGlzdCAjOm5hbWUgImZyb2JuaWNhdGUiCisgICAgICAgICM6Z3VpeC1uYW1lICJtaW5ldGVz dC1mcm9ibmljYXRlIgorICAgICAgICAjOnVwc3RyZWFtLW5hbWUgIkF1dGhvci9mcm9ibmljYXRl IgorICAgICAgICAjOnJlcXVpcmVtZW50cyAnKCgiZnJvYiIgI2YKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKCJBdXRob3IvZm9vIiAiQXV0aG9yL2JhciIpKSkKKyAgICAgICAgIzppbnB1dHMg JygibWluZXRlc3QtYmFyIikKKyAgICAgICAgIzpzb3J0ICJkb3dubG9hZHMiKQorICAobGlzdCAj OmF1dGhvciAiQXV0aG9yIiAjOm5hbWUgImZvbyIgIzpkb3dubG9hZHMgMCkKKyAgKGxpc3QgIzph dXRob3IgIkF1dGhvciIgIzpuYW1lICJiYXIiICM6ZG93bmxvYWRzIDk5OTkpKQorCisodGVzdC1w YWNrYWdlICJtaW5ldGVzdC0+Z3VpeC1wYWNrYWdlLCBvcHRpb25hbCBkZXBlbmRlbmN5IgorICAg ICAgICAgICAgICAjOnJlcXVpcmVtZW50cyAnKCgibWVzZWNvbnMiICN0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgiSmVpamEvbWVzZWNvbnMiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic29tZS1tb2RwYWNrL2NvbnRhaW5pbmctbWVzZSIpKSkKKyAgICAgICAg ICAgICAgIzppbnB1dHMgJygpKQorCisMCis7OyBMaWNlbnNlCisodGVzdC1wYWNrYWdlICJtaW5l dGVzdC0+Z3VpeC1wYWNrYWdlLCBpZGVudGljYWwgbGljZW5zZXMiCisgICAgICAgICAgICAgICM6 Z3VpeC1saWNlbnNlICdsaWNlbnNlOmxncGwzKworICAgICAgICAgICAgICAjOmxpY2Vuc2UgIkxH UEwtMy4wLW9yLWxhdGVyIgorICAgICAgICAgICAgICAjOm1lZGlhLWxpY2Vuc2UgIkxHUEwtMy4w LW9yLWxhdGVyIikKKworOzsgU29ydGluZworKGxldCogKChtYWtlLXBhY2thZ2UKKyAgICAgICAg KGxhbWJkYSBhcmd1bWVudHMKKyAgICAgICAgICAoanNvbi0+cGFja2FnZSAoYXBwbHkgbWFrZS1w YWNrYWdlLWpzb24gYXJndW1lbnRzKSkpKQorICAgICAgICh4IChtYWtlLXBhY2thZ2UgIzpzY29y ZSAwKSkKKyAgICAgICAoeSAobWFrZS1wYWNrYWdlICM6c2NvcmUgMSkpCisgICAgICAgKHogKG1h a2UtcGFja2FnZSAjOnNjb3JlIDIpKSkKKyAgKHRlc3QtZXF1YWwgInNvcnQtcGFja2FnZXMsIGFs cmVhZHkgc29ydGVkIgorICAgIChsaXN0IHogeSB4KQorICAgIChzb3J0LXBhY2thZ2VzIChsaXN0 IHogeSB4KSkpCisgICh0ZXN0LWVxdWFsICJzb3J0LXBhY2thZ2VzLCByZXZlcnNlIgorICAgIChs aXN0IHogeSB4KQorICAgIChzb3J0LXBhY2thZ2VzIChsaXN0IHggeSB6KSkpKQorCisodGVzdC1l bmQgIm1pbmV0ZXN0IikKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0007-gnu-Add-minetest-mesecons.patch" Content-Type: text/x-patch; name="0007-gnu-Add-minetest-mesecons.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlYWI3NWY3YjQzNmY2ZmQwNjkyNjI0NjI4NDEwODBiZjY5Mjg1MWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6MDA6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1tZXNlY29ucy4KCiogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSAobWluZXRlc3QtbWVzZWNvbnMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2Vz L21pbmV0ZXN0LnNjbSB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCBmOGFjYTMw MDVjLi5kOTllZmE0NjI1IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisr KyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI0LDMgKzI0LDM5IEBACiBudW1lcmlj IGlkZW50aWZpZXIgVE9QSUMtSUQgb24gdGhlIG9mZmljaWFsIE1pbmV0ZXN0IGZvcnVtcy4iCiAg IChzdHJpbmctYXBwZW5kICJodHRwczovL2ZvcnVtLm1pbmV0ZXN0Lm5ldC92aWV3dG9waWMucGhw P3Q9IgogICAgICAgICAgICAgICAgICAobnVtYmVyLT5zdHJpbmcgdG9waWMtaWQpKSkKKworKGRl ZmluZS1wdWJsaWMgbWluZXRlc3QtbWVzZWNvbnMKKyAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVu dERCIGRvZXMgbm90IGhhdmUgaXRzIG93biB2ZXJzaW9uIG51bWJlci4KKyAgKGxldCAoKGNvbW1p dCAiZGI1ODc5NzA2ZDA0ZDM0ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCisgICAgICAgIChy ZXZpc2lvbiAiMCIpKQorICAocGFja2FnZQorICAgIChuYW1lICJtaW5ldGVzdC1tZXNlY29ucyIp CisgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIxLjIuMSIgcmV2aXNpb24gY29tbWl0KSkKKyAg ICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIu Y29tL21pbmV0ZXN0LW1vZHMvbWVzZWNvbnMiKQorICAgICAgICAgICAgIChjb21taXQgY29tbWl0 KSkpCisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIwNG05czlsM2ZydzFsZ2tpNDFo Z3Zqc3cyemtydmZ2MHN5NzUwYjZqMTJhcnpiM2x2NjQ1IikpCisgICAgICAgKGZpbGUtbmFtZSAo Z2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vbWVzZWNvbnMubmV0 IikKKyAgICAoc3lub3BzaXMKKyAgICAgIkRpZ2l0YWwgY2lyY3VpdHJ5IGZvciBNaW5ldGVzdCwg aW5jbHVkaW5nIHdpcmVzLCBidXR0b25zIGFuZCBsaWdodHMiKQorICAgIChkZXNjcmlwdGlvbgor ICAgICAiTWVzZWNvbnMgaXMgYSBtb2QgZm9yIE1pbmV0ZXN0IGltcGxlbWVudGluZyB2YXJpb3Vz IGl0ZW1zIHJlbGF0ZWQKK3RvIGRpZ2l0YWwgY2lyY3VpdHJ5LCBzdWNoIGFzIHdpcmVzLCBidXR0 b25zLCBsaWdodHMgYW5kIHByb2dyYW1tYWJsZQorY29udHJvbGxlcnMuICBBbW9uZyBvdGhlciB0 aGluZ3MsIHRoZXJlIGFyZSBhbHNvIHBpc3RvbnMsIHNvbGFyIHBhbmVscywKK3ByZXNzdXJlIHBs YXRlcyBhbmQgbm90ZSBibG9ja3MuCisKK01lc2Vjb25zIGhhcyBhIHNpbWlsYXIgZ29hbCB0byBS ZWRzdG9uZSBpbiBNaW5lY3JhZnQsIGJ1dCB3b3JrcyBpbiBpdHMgb3duIHdheSwKK3dpdGggZGlm ZmVyZW50IHJ1bGVzIGFuZCBtZWNoYW5pY3MuIikKKyAgICA7OyBMR1BMIGZvciBjb2RlLCBDQy1C WS1TQSBmb3IgdGV4dHVyZXMuCisgICAgOzsgVGhlIFJFQURNRS5tZCBhbmQgQ09QWUlORy50eHQg ZGlzYWdyZWUgYWJvdXQgdGhlICIrIiBpbiBsaWNlbnNlOmxncGwzKy4KKyAgICA7OyBGb3Igbm93 LCBhc3N1bWUgUkVBRE1FLm1kIGlzIGNvcnJlY3QuICBVcHN0cmVhbSBoYXMgYmVlbiBhc2tlZCB0 bworICAgIDs7IGNvcnJlY3QgdGhlIGluY29uc2lzdGVuY3k6CisgICAgOzsgPGh0dHBzOi8vZ2l0 aHViLmNvbS9taW5ldGVzdC1tb2RzL21lc2Vjb25zL2lzc3Vlcy81NzU+LgorICAgIChsaWNlbnNl IChsaXN0IGxpY2Vuc2U6bGdwbDMrIGxpY2Vuc2U6Y2MtYnktc2EzLjApKQorICAgIChwcm9wZXJ0 aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiSmVpamEvbWVzZWNvbnMiKSkpKSkpCi0tIAoyLjMyLjAK Cg== --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0008-gnu-Add-minetest-basic-materials.patch" Content-Type: text/x-patch; name="0008-gnu-Add-minetest-basic-materials.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5YjNkODU5NjlkNWFjNDZhOWIwZTliMGY4Y2IzNDdlYzY2ZGY5ZDA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6MjM6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMuCgoqIGdudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gKG1pbmV0ZXN0LWJhc2ljLW1hdGVyaWFscyk6IE5ldyB2YXJpYWJsZS4KLS0t CiBnbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCBkOTll ZmE0NjI1Li45N2Q0ZDNjOWFjIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2Nt CisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI1LDYgKzI1LDMxIEBAIG51bWVy aWMgaWRlbnRpZmllciBUT1BJQy1JRCBvbiB0aGUgb2ZmaWNpYWwgTWluZXRlc3QgZm9ydW1zLiIK ICAgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vZm9ydW0ubWluZXRlc3QubmV0L3ZpZXd0b3BpYy5w aHA/dD0iCiAgICAgICAgICAgICAgICAgIChudW1iZXItPnN0cmluZyB0b3BpYy1pZCkpKQogCiso ZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMKKyAgKHBhY2thZ2UKKyAgICAo bmFtZSAibWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzIikKKyAgICA7OyBVcHN0cmVhbSB1c2VzIGRh dGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lvbiAiMjAyMS0wMS0zMCIpCisgICAg KHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAg KHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0bGFiLmNv bS9WYW5lc3NhRS9iYXNpY19tYXRlcmlhbHMuZ2l0IikKKyAgICAgICAgICAgICAoY29tbWl0ICJl NzI2NjViMmVkOThkN2JlMTE1Nzc5YTMyZDM1ZTZkOWZmYTIzMWJkIikpKQorICAgICAgIChzaGEy NTYKKyAgICAgICAgKGJhc2UzMiAiMHY2bDNscmpnc2h5NHNjY2poZmhtZnhjM2drMGNkeTczcWIw Mmk5d2Qydnc1MDZ2NWFzeCIpKQorICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFt ZSB2ZXJzaW9uKSkpKQorICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3Rl bSkKKyAgICAoaG9tZS1wYWdlIChtaW5ldGVzdC10b3BpYyAyMTAwMCkpCisgICAgKHN5bm9wc2lz ICJTb21lIFwiYmFzaWNcIiBtYXRlcmlhbHMgYW5kIGl0ZW1zIGZvciBvdGhlciBNaW5ldGVzdCBt b2RzIHRvIHVzZSIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJUaGUgTWluZXRlc3QgbW9kIFwi YmFzaWNfbWF0ZXJpYWxzXCIgcHJvdmlkZXMgYSBzbWFsbCBzZWxlY3Rpb24gb2YKK1wiYmFzaWNc IiBtYXRlcmlhbHMgYW5kIGl0ZW1zIHRoYXQgb3RoZXIgbW9kcyBzaG91bGQgdXNlIHdoZW4gcG9z c2libGUgLS0gdGhpbmdzCitsaWtlIHN0ZWVsIGJhcnMgYW5kIGNoYWlucywgd2lyZSwgcGxhc3Rp YyBzdHJpcHMgYW5kIHNoZWV0cywgYW5kIG1vcmUuIikKKyAgICAobGljZW5zZQorICAgICAobGlz dCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQorICAgIChwcm9wZXJ0aWVzIGAo KHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvYmFzaWNfbWF0ZXJpYWxzIikpKSkpCisKIChkZWZp bmUtcHVibGljIG1pbmV0ZXN0LW1lc2Vjb25zCiAgIDs7IFRoZSByZWxlYXNlIG9uIENvbnRlbnRE QiBkb2VzIG5vdCBoYXZlIGl0cyBvd24gdmVyc2lvbiBudW1iZXIuCiAgIChsZXQgKChjb21taXQg ImRiNTg3OTcwNmQwNGQzNDgwYmM0ODYzY2UwYzAzZmE3M2U1ZjEwYzciKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0009-gnu-Add-minetest-unifieddyes.patch" Content-Type: text/x-patch; name="0009-gnu-Add-minetest-unifieddyes.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1MmVkNmVkMTQ1YjA1NGNmMDQ5YTc0NWQ0YzNjMmFkODVlYmNhNTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjA6NDA6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5 LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC11bmlmaWVkZHllcy4KCiogZ251L3BhY2thZ2VzL21pbmV0 ZXN0LnNjbSAobWluZXRlc3QtdW5pZmllZGR5ZXMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3Bh Y2thZ2VzL21pbmV0ZXN0LnNjbSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdl cy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IDk3ZDRkM2M5 YWMuLjhiOWViMzBhNmEgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysr IGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtODUsMyArODUsMzIgQEAgd2l0aCBkaWZm ZXJlbnQgcnVsZXMgYW5kIG1lY2hhbmljcy4iKQogICAgIDs7IDxodHRwczovL2dpdGh1Yi5jb20v bWluZXRlc3QtbW9kcy9tZXNlY29ucy9pc3N1ZXMvNTc1Pi4KICAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmxncGwzKyBsaWNlbnNlOmNjLWJ5LXNhMy4wKSkKICAgICAocHJvcGVydGllcyBgKCh1 cHN0cmVhbS1uYW1lIC4gIkplaWphL21lc2Vjb25zIikpKSkpKQorCisoZGVmaW5lLXB1YmxpYyBt aW5ldGVzdC11bmlmaWVkZHllcworICAocGFja2FnZQorICAgIChuYW1lICJtaW5ldGVzdC11bmlm aWVkZHllcyIpCisgICAgOzsgVXBzdHJlYW0gdXNlcyBkYXRlcyBhcyB2ZXJzaW9uIG51bWJlcnMu CisgICAgKHZlcnNpb24gIjIwMjEtMDQtMjAtMSIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2lu CisgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQor ICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0bGFiLmNvbS9WYW5lc3NhRS91bmlmaWVkZHll cyIpCisgICAgICAgICAgICAgKGNvbW1pdCAiZmYzYjJkMzBmYTBkZjVjNzE4MWZkZDQwMWI5ODlk ZTYyNzFjM2JiMyIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIKKyAgICAgICAg ICIwcmJhOW4xOTJ4Y3BteHducTdpeGI2bW4zMmdrcGljMjQ3ajN3NG13aW5ycWN5c2NhY3N2Iikp CisgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAg KGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVk LWlucHV0cworICAgICBgKCgibWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFz aWMtbWF0ZXJpYWxzKSkpCisgICAgKGhvbWUtcGFnZSAobWluZXRlc3QtdG9waWMgMjE3OCkpCisg ICAgKHN5bm9wc2lzCisgICAgICJVbmlmaWVkIER5ZXMgZXhwYW5kcyB0aGUgc3RhbmRhcmQgZHll IHNldCBvZiBNaW5ldGVzdCB0byB1cCB0byAyNTYgY29sb3VycyIpCisgICAgKGRlc2NyaXB0aW9u ICJUaGUgcHVycG9zZSBvZiB0aGlzIG1vZCBvcmlnaW5hbGx5IHdhcyB0byBzdXBwbHkgYSBjb21w bGV0ZQorc2V0IG9mIGNvbG91cnMgZm9yIE1pbmV0ZXN0IG1vZCBhdXRob3JzIHRvIHVzZSBmb3Ig Y29sb3VyaXNlZCBub2RlcyBvcgorcmVmZXJlbmNlIGluIHJlY2lwZXMuICBTaW5jZSB0aGUgYWR2 ZW50IG9mIHRoZSBkZWZhdWx0IGR5ZXMgbW9kIGluIHRoZSBzdGFuZGFyZAorTWluZXRlc3QgZ2Ft ZSwgdGhpcyBtb2QgaGFzIGJlY29tZSBhbiBleHRlbnNpb24gb2YgdGhlIGRlZmF1bHQgbW9kIGFu IGEgbGlicmFyeQorZm9yIGdlbmVyYWwgY29sb3VyIGhhbmRsaW5nLiIpCisgICAgKGxpY2Vuc2Ug bGljZW5zZTpncGwyKykKKyAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVz c2FFL3VuaWZpZWRkeWVzIikpKSkpCi0tIAoyLjMyLjAKCg== --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0010-gnu-Add-minetest-pipeworks.patch" Content-Type: text/x-patch; name="0010-gnu-Add-minetest-pipeworks.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmZDQxNGI5ZGEyZmM3NDY3MzA1MzZiNzc3MDI0MGYyYzMyZmRiZWUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgMzEgSnVsIDIwMjEgMjM6Mzk6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIwXSBnbnU6IEFkZCBtaW5ldGVzdC1waXBld29ya3MuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVz dC5zY20gKG1pbmV0ZXN0LXBpcGV3b3Jrcyk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCA4YjllYjMwYTZh Li43ODIxNjZkYWVmIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBi L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTg2LDYgKzg2LDM3IEBAIHdpdGggZGlmZmVy ZW50IHJ1bGVzIGFuZCBtZWNoYW5pY3MuIikKICAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmxn cGwzKyBsaWNlbnNlOmNjLWJ5LXNhMy4wKSkKICAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1u YW1lIC4gIkplaWphL21lc2Vjb25zIikpKSkpKQogCisoZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC1w aXBld29ya3MKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtcGlwZXdvcmtzIikKKyAg ICA7OyBVcHN0cmVhbSB1c2VzIGRhdGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lv biAiMjAyMS0wNC0xNC0xIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0 aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAg KHVybCAiaHR0cHM6Ly9naXRsYWIuY29tL1ZhbmVzc2FFL3BpcGV3b3JrcyIpCisgICAgICAgICAg ICAgKGNvbW1pdCAiZGI2ZDFiZDljMTA5ZTFlNTQzYjk3Y2MzZmE4YTExNDAwZGEyM2JjZCIpKSkK KyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjFmbGhjbmYxN2RuMXY4NmtjZzQ3YTFu NGNiMGx5YmQxMW5jeHJreG4zd21mMTBpYnNybTAiKSkKKyAgICAgICAoZmlsZS1uYW1lIChnaXQt ZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVpbGQtc3lzdGVtIG1pbmV0ZXN0LW1v ZC1idWlsZC1zeXN0ZW0pCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJtaW5ldGVz dC1iYXNpYy1tYXRlcmlhbHMiICxtaW5ldGVzdC1iYXNpYy1tYXRlcmlhbHMpKSkKKyAgICAoaG9t ZS1wYWdlIChtaW5ldGVzdC10b3BpYyAyMTU1KSkKKyAgICAoc3lub3BzaXMgIlBpcGVzLCBpdGVt LXRyYW5zcG9ydCB0dWJlcyBhbmQgcmVsYXRlZCBkZXZpY2VzIGZvciBNaW5ldGVzdCIpCisgICAg KGRlc2NyaXB0aW9uCisgICAgICJQaXBld29ya3MgaXMgYSBtb2QgZm9yIE1pbmV0ZXN0IGltcGxl bWVudGluZyAzRCBwaXBlcyBhbmQgdHViZXMgZm9yCit0cmFuc3BvcnRpbmcgbGlxdWlkcyBhbmQg aXRlbXMgYW5kIHNvbWUgcmVsYXRlZCBkZXZpY2VzLiAgUGlwZXMgYW5kIHR1YmVzIGNhbgorZ28g aG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkuICBJdGVtIHR1YmVzIGNhbiBhbHNvIGJlIHVzZWQg Zm9yIHNvcnRpbmcgaXRlbXMKK2FuZCBleHRyYWN0aW5nIGl0ZW1zIGZyb20gY2hlc3RzIG9yIHB1 dHRpbmcgaXRlbXMgaW4gY2hlc3RzLiAgQXV0b2NyYWZ0ZXJzIGNhbgorYXV0b21hdGljYWxseSBm b2xsb3cgY3JhZnQgcmVjaXBlcyB0byBtYWtlIG5ldyBpdGVtcyBhbmQgY2FuIGJlIGZlZCBieSBp dGVtCit0dWJlcy4gIERlcGxveWVycyBjYW4gcGxhY2UgaXRlbXMgaW4gdGhlIHdvcmxkIGFzIGEg cGxheWVyIHdvdWxkLiAgTm9kZQorYnJlYWtlcnMgc2ltdWxhdGUgYSBwbGF5ZXIgcHVuY2hpbmcg YSBub2RlLiIpCisgICAgOzsgQ0MtQlktU0EgZm9yIHRleHR1cmVzLCBMR1BMIGZvciBjb2RlCisg ICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpjYy1ieS1zYTQuMCBsaWNlbnNlOmxncGwzKSkKKyAg ICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL3BpcGV3b3JrcyIpKSkp KQorCiAoZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC11bmlmaWVkZHllcwogICAocGFja2FnZQogICAg IChuYW1lICJtaW5ldGVzdC11bmlmaWVkZHllcyIpCi0tIAoyLjMyLjAKCg== --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0011-gnu-Add-minetest-coloredwood.patch" Content-Type: text/x-patch; name="0011-gnu-Add-minetest-coloredwood.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiOWI5OGRjOGJlYzg3ODRlMDk0MTk4OWRhMWY5Y2NlN2I1MDYzNDEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAwMDo1MDoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWNvbG9yZWR3b29kLgoKKiBnbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtIChtaW5ldGVzdC1jb2xvcmVkd29vZCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCA3ODIxNjZkYWVm Li40YzU0MmM2MDYxIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBi L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTUwLDYgKzUwLDM0IEBAIGxpa2Ugc3RlZWwg YmFycyBhbmQgY2hhaW5zLCB3aXJlLCBwbGFzdGljIHN0cmlwcyBhbmQgc2hlZXRzLCBhbmQgbW9y ZS4iKQogICAgICAobGlzdCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAg IChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvYmFzaWNfbWF0ZXJpYWxz IikpKSkpCiAKKyhkZWZpbmUtcHVibGljIG1pbmV0ZXN0LWNvbG9yZWR3b29kCisgIChwYWNrYWdl CisgICAgKG5hbWUgIm1pbmV0ZXN0LWNvbG9yZWR3b29kIikKKyAgICA7OyBVcHN0cmVhbSB1c2Vz IGRhdGVzIGFzIHZlcnNpb24gbnVtYmVycy4KKyAgICAodmVyc2lvbiAiMjAyMS0wNC0xNC0xIikK KyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAg ICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRs YWIuY29tL1ZhbmVzc2FFL2NvbG9yZWR3b29kIikKKyAgICAgICAgICAgICAoY29tbWl0ICJiZTRk ZjZmYzg4OTQxOTE1NWJlZDg2MzhiYmI3NTI0OTNlNzhjYmQ1IikpKQorICAgICAgIChzaGEyNTYK KyAgICAgICAgKGJhc2UzMiAiMXN3aXJmazZiNHhmYml3djhhZHl3NXlsMmx5ZnBwOHltZmlwenE5 aXZ5dm1pZjhubDNraSIpKQorICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2 ZXJzaW9uKSkpKQorICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkK KyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIiAs bWluZXRlc3QtdW5pZmllZGR5ZXMpKSkKKyAgICAoaG9tZS1wYWdlIChtaW5ldGVzdC10b3BpYyAy NDExKSkKKyAgICAoc3lub3BzaXMgIlBhaW50ZWQgd29vZCBpbiBNaW5ldGVzdCIpCisgICAgKGRl c2NyaXB0aW9uCisgICAgICJUaGlzIE1pbmV0ZXN0IG1vZCBwcm92aWRlcyBodW5kcmVkcyBvZiBj b2xvdXJzIG9mIHdvb2QgYW5kIGZlbmNlcyB0bworTWluZXRlc3QsIHVzaW5nIFVuaWZpZWQgRHll cy4gIElmIHRoZSBcIm1vcmVibG9ja3NcIiBtb2QgaXMgYWN0aXZlLAorY29sb3VyZWQgYW5kIGN1 dCB3b29kIHNoYXBlcyBhcmUgcHJvdmlkZWQgYXMgd2VsbC4iKQorICAgIChsaWNlbnNlCisgICAg IDs7IExHUEwgZm9yIGNvZGUsIENDLUJZLVNBIGZvciB0ZXh0dXJlcworICAgICAobGlzdCBsaWNl bnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3Ry ZWFtLW5hbWUgLiAiVmFuZXNzYUUvY29sb3JlZHdvb2QiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMg bWluZXRlc3QtbWVzZWNvbnMKICAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVudERCIGRvZXMgbm90 IGhhdmUgaXRzIG93biB2ZXJzaW9uIG51bWJlci4KICAgKGxldCAoKGNvbW1pdCAiZGI1ODc5NzA2 ZDA0ZDM0ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCi0tIAoyLjMyLjAKCg== --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0012-gnu-Add-minetest-ethereal.patch" Content-Type: text/x-patch; name="0012-gnu-Add-minetest-ethereal.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmZGI3MjA2N2U0NDI5NzkzMTkyMjBjYTgzM2Y4ZTUwODgyNDZlY2NkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAwMToyNDo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWV0aGVyZWFsLgoKKiBnbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIChtaW5ldGVzdC1ldGhlcmVhbCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmlu ZGV4IDRjNTQyYzYwNjEuLmExYWE5MDI3NmQgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5l dGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtNzgsNiArNzgsMzUg QEAgY29sb3VyZWQgYW5kIGN1dCB3b29kIHNoYXBlcyBhcmUgcHJvdmlkZWQgYXMgd2VsbC4iKQog ICAgICAobGlzdCBsaWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAgIChwcm9w ZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvY29sb3JlZHdvb2QiKSkpKSkKIAor KGRlZmluZS1wdWJsaWMgbWluZXRlc3QtZXRoZXJlYWwKKyAgOzsgQ29udGVudERCIHJlbGVhc2Ug MjAyMS0wNy0yOCBpcyBzbGlnaHRseSBhaGVhZCBvZiB0aGUKKyAgOzsgaW5pdGlhbCB2ZXJzaW9u IDEuMjkgLS0gaS5lLiwgc29tZSByZWxlYXNlZCBjaGFuZ2VzIGhhdmUgYmVlbgorICA7OyBtYWRl IHRvIHZlcnNpb24gMS4yOSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyB2ZXJzaW9uIGJ1bXAuCisg IChsZXQgKChjb21taXQgIjc2NzBjMWRhOTI3NDkwMWY1N2Y2NjgyMzg0YWYyYjNiYWUwMDVhODYi KQorICAgICAgICAocmV2aXNpb24gIjAiKSkKKyAgICAocGFja2FnZQorICAgICAgKG5hbWUgIm1p bmV0ZXN0LWV0aGVyZWFsIikKKyAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMS4yOSIgcmV2 aXNpb24gY29tbWl0KSkKKyAgICAgIChzb3VyY2UKKyAgICAgICAob3JpZ2luCisgICAgICAgICAo bWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAg ICAgICAgICh1cmwgImh0dHBzOi8vbm90YWJ1Zy5vcmcvVGVuUGx1czEvZXRoZXJlYWwiKQorICAg ICAgICAgICAgICAgKGNvbW1pdCBjb21taXQpKSkKKyAgICAgICAgIChzaGEyNTYKKyAgICAgICAg ICAoYmFzZTMyICIxaGFsOGJxNGZ5ZHNpcDdzOHJxejR2bGFhcXk5cmh6eG1yeWQwajJxbnFtOTI4 NnlqZ2trIikpCisgICAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lv bikpKSkKKyAgICAgIChidWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkKKyAg ICAgIChob21lLXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDE0NjM4KSkKKyAgICAgIChzeW5vcHNpcyAi VGhlIEV0aGVyZWFsIG1vZCBhZGRzIG1hbnkgbmV3IGJpb21lcyB0byBNaW5ldGVzdCIpCisgICAg ICAoZGVzY3JpcHRpb24KKyAgICAgICAiVGhlIEV0aGVyZWFsIE1pbmV0ZXN0IG1vZCB1c2VzIHRo ZSB2NyBtYXAgZ2VuZXJhdG9yIHRvIGFkZCBtYW55IG5ldworYmlvbWVzIHRvIHRoZSB3b3JsZC4g IEl0IGFkZHMgbmV3IHRyZWVzLCBwbGFudHMsIGZvb2QgaXRlbXMsIHR3ZWFrcyBhbmQgc29tZQor c3BlY2lhbCBpdGVtcywgaW50ZW5kaW5nIHRvIG1ha2UgYW4gaW50ZXJlc3RpbmcgYWR2ZW50dXJl LiIpCisgICAgICA7OyBDQzA6IHNvbWUgdGV4dHVyZXMKKyAgICAgIChsaWNlbnNlIChsaXN0IGxp Y2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhwYXQpKQorICAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0t bmFtZSAuICJUZW5QbHVzMS9ldGhlcmVhbCIpKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRl c3QtbWVzZWNvbnMKICAgOzsgVGhlIHJlbGVhc2Ugb24gQ29udGVudERCIGRvZXMgbm90IGhhdmUg aXRzIG93biB2ZXJzaW9uIG51bWJlci4KICAgKGxldCAoKGNvbW1pdCAiZGI1ODc5NzA2ZDA0ZDM0 ODBiYzQ4NjNjZTBjMDNmYTczZTVmMTBjNyIpCkBAIC0xNTcsOCArMTg2LDcgQEAgYnJlYWtlcnMg c2ltdWxhdGUgYSBwbGF5ZXIgcHVuY2hpbmcgYSBub2RlLiIpCiAgICAgICAgICAgICAgKHVybCAi aHR0cHM6Ly9naXRsYWIuY29tL1ZhbmVzc2FFL3VuaWZpZWRkeWVzIikKICAgICAgICAgICAgICAo Y29tbWl0ICJmZjNiMmQzMGZhMGRmNWM3MTgxZmRkNDAxYjk4OWRlNjI3MWMzYmIzIikpKQogICAg ICAgIChzaGEyNTYKLSAgICAgICAgKGJhc2UzMgotICAgICAgICAgIjByYmE5bjE5MnhjcG14d25x N2l4YjZtbjMyZ2twaWMyNDdqM3c0bXdpbnJxY3lzY2Fjc3YiKSkKKyAgICAgICAgKGJhc2UzMiAi MHJiYTluMTkyeGNwbXh3bnE3aXhiNm1uMzJna3BpYzI0N2ozdzRtd2lucnFjeXNjYWNzdiIpKQog ICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkpKQogICAgIChi dWlsZC1zeXN0ZW0gbWluZXRlc3QtbW9kLWJ1aWxkLXN5c3RlbSkKICAgICAocHJvcGFnYXRlZC1p bnB1dHMKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0013-gnu-Add-minetest-technic.patch" Content-Type: text/x-patch; name="0013-gnu-Add-minetest-technic.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlOWRkYzMzZTM0NmJiYjE3MjNiYzc3ZDM5NmMzYzZkYWZmNGU2OWFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxMzo0MDo1NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRlY2huaWMuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVzdC5z Y20gKG1pbmV0ZXN0LXRlY2huaWMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2VzL21p bmV0ZXN0LnNjbSB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IGExYWE5MDI3NmQu LmJiOTE0ZjMyYjQgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIv Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTc0LDYgKzE3NCw0MSBAQCBicmVha2VycyBz aW11bGF0ZSBhIHBsYXllciBwdW5jaGluZyBhIG5vZGUuIikKICAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmNjLWJ5LXNhNC4wIGxpY2Vuc2U6bGdwbDMpKQogICAgIChwcm9wZXJ0aWVzIGAoKHVw c3RyZWFtLW5hbWUgLiAiVmFuZXNzYUUvcGlwZXdvcmtzIikpKSkpCiAKKyhkZWZpbmUtcHVibGlj IG1pbmV0ZXN0LXRlY2huaWMKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtdGVjaG5p YyIpCisgICAgOzsgVXBzdHJlYW0gZG9lc24ndCBrZWVwIHZlcnNpb24gbnVtYmVycywgc28gdXNl IHRoZSByZWxlYXNlCisgICAgOzsgZGF0ZSBvbiBDb250ZW50REIgaW5zdGVhZC4KKyAgICAodmVy c2lvbiAiMjAyMS0wNC0xNSIpCisgICAgKHNvdXJjZQorICAgICAob3JpZ2luCisgICAgICAgKG1l dGhvZCBnaXQtZmV0Y2gpCisgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAgICAg ICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9taW5ldGVzdC1tb2RzL3RlY2huaWMiKQorICAgICAg ICAgICAgIChjb21taXQgIjFjMjE5NDg3ZDNmNGRkMDNjMDFmZjlhYTFmMjk4YzdjMThjN2UxODki KSkpCisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIxazloZGd6cDdqbmhzazZyZ3Js cnYxbHI1eHJtaDhsbjR3djZyMjV2NmYwZndieWo1N3NmIikpCisgICAgICAgKGZpbGUtbmFtZSAo Z2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVz dC1tb2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgibWlu ZXRlc3QtcGlwZXdvcmtzIiAsbWluZXRlc3QtcGlwZXdvcmtzKQorICAgICAgICgibWluZXRlc3Qt YmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzKSkpCisgICAgKGhvbWUt cGFnZSAobWluZXRlc3QtdG9waWMgMjUzOCkpCisgICAgKHN5bm9wc2lzICJNYWNoaW5lcnkgYW5k IGF1dG9tYXRpb24gZm9yIE1pbmV0ZXN0IikKKyAgICAoZGVzY3JpcHRpb24KKyAgICAgIlRoaXMg TWluZXRlc3QgbW9kIGFkZHMgbWFjaGluZXJ5IGFuZCBhdXRvbWF0aW9uIHRvIE1pbmV0ZXN0Lgor SXQgYWRkcyB2YXJpb3VzIG9yZXMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGZvciBjb25zdHJ1Y3Rp bmcgdmFyaW91cworbWFjaGluZXJ5LCBzdWNoIGFzIHBvd2VyIGdlbmVyYXRvcnMsIGZvcmNlIGZp ZWxkIGVtaXR0ZXJzLCBxdWFycmllcworYW5kIGEgd29ya3Nob3AgZm9yIHJlcGFpcmluZyB0b29s cy4gIE1vc3QgbWFjaGluZXMgYXJlIGVsZWN0cmljYWxseQorcG93ZXJlZC4iKQorICAgIDs7IEND IEJZLVNBIDMuMDogc29tZSB0ZXh0dXJlCisgICAgOzsgV1RGUEw6IHNvbWUgdGV4dHVyZXMKKyAg ICA7OyBDQyBCWS1TQTMuMDogc29tZSB0ZXh0dXJlcworICAgIDs7IENDIEJZLVNBNC4wOiBzb21l IHNvdW5kcworICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6bGdwbDIuMSsgbGljZW5zZTpjYy1i eS1zYTMuMCBsaWNlbnNlOmNjLWJ5LXNhNC4wCisgICAgICAgICAgICAgICAgICAgbGljZW5zZTp3 dGZwbDIpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAiUmVhbEJhZEFuZ2Vs L3RlY2huaWMiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtdW5pZmllZGR5ZXMKICAg KHBhY2thZ2UKICAgICAobmFtZSAibWluZXRlc3QtdW5pZmllZGR5ZXMiKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0014-gnu-Add-minetest-throwing.patch" Content-Type: text/x-patch; name="0014-gnu-Add-minetest-throwing.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmMjhiYjA2MTEwYjA4ZjFmMjgxNmE3NDhmOGIxZDRmZTQ4MzcxOTE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNDoxNjoyNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRocm93aW5nLgoKKiBnbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIChtaW5ldGVzdC10aHJvd2luZyk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgMjcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9taW5ldGVz dC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IGJiOTE0ZjMyYjQuLjQ1NjZk OTQ0ODkgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIvZ251L3Bh Y2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMjA5LDYgKzIwOSwzMyBAQCBwb3dlcmVkLiIpCiAgICAg ICAgICAgICAgICAgICAgbGljZW5zZTp3dGZwbDIpKQogICAgIChwcm9wZXJ0aWVzIGAoKHVwc3Ry ZWFtLW5hbWUgLiAiUmVhbEJhZEFuZ2VsL3RlY2huaWMiKSkpKSkKIAorKGRlZmluZS1wdWJsaWMg bWluZXRlc3QtdGhyb3dpbmcKKyAgOzsgVGhlIGxhdGVzdCByZWxlYXNlIG9uIENvbnRlbnREQiBp cyBhaGVhZCBvZiB0aGUgbGF0ZXQKKyAgOzsgdGFnZ2VkIGNvbW1pdC4KKyAgKGxldCAoKGNvbW1p dCAiMzFmMGNmNWY4Njg2NzNkYzgyZjI0ZGRjNDMyYjQ1YzljZDI4MmQyNyIpCisgICAgICAgIChy ZXZpc2lvbiAiMCIpKQorICAgIChwYWNrYWdlCisgICAgICAobmFtZSAibWluZXRlc3QtdGhyb3dp bmciKQorICAgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIxLjEiIHJldmlzaW9uIGNvbW1pdCkp CisgICAgICAoc291cmNlCisgICAgICAgKG9yaWdpbgorICAgICAgICAgKG1ldGhvZCBnaXQtZmV0 Y2gpCisgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgICAodXJsICJo dHRwczovL2dpdGh1Yi5jb20vbWluZXRlc3QtbW9kcy90aHJvd2luZyIpCisgICAgICAgICAgICAg ICAoY29tbWl0IGNvbW1pdCkpKQorICAgICAgICAgKHNoYTI1NgorICAgICAgICAgIChiYXNlMzIg IjFzNWtrcjZyeHh2MmRoYmJqenY2Mmd3MXM2MTdobnBqYXZ3MXY5ZnYxMXYzbWdpZ2RmamIiKSkK KyAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9uKSkpKQorICAg ICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVtKQorICAgICAgKGhvbWUt cGFnZSAobWluZXRlc3QtdG9waWMgMTYzNjUpKQorICAgICAgKHN5bm9wc2lzICJBUEkgZm9yIHRo cm93aW5nIHRoaW5ncyBpbiBNaW5ldGVzdCIpCisgICAgICAoZGVzY3JpcHRpb24KKyAgICAgICAi VGhpcyBNaW5ldGVzdCBtb2QgcHJvdmlkZXMgYW4gQVBJIGZvciByZWdpc3RlcmluZyB0aHJvd2Fi bGUgdGhpbmdzIGFuZAordGhyb3dpbmcgdGhpbmdzIGxpa2UgYXJyb3dzLiAgSG93ZXZlciwgdGhp cyBtb2QgZG9lcyBub3QgcHJvdmlkZSBhbiBhY3R1YWwKK2Fycm93IGFuZCBib3csIGJ1dCBAY29k ZXttaW5ldGVzdC10aHJvd2luZy1hcnJvd3N9IGRvZXMuIikKKyAgICAgIChsaWNlbnNlIGxpY2Vu c2U6bXBsMi4wKQorICAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJQYWxpZ2Uv dGhyb3dpbmciKSkpKSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LXVuaWZpZWRkeWVzCiAg IChwYWNrYWdlCiAgICAgKG5hbWUgIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIikKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0015-gnu-Add-minetest-throwing-arrows.patch" Content-Type: text/x-patch; name="0015-gnu-Add-minetest-throwing-arrows.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzYTU0ZDRkYWE1OWNmYTI5ZjMzNjA3MTQwNzgxNmU0MGM1ZmJhYjdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNDozNDoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXRocm93aW5nLWFycm93cy4KCiogZ251L3BhY2thZ2VzL21p bmV0ZXN0LnNjbQogIChtaW5ldGVzdC10aHJvd2luZy1hcnJvd3MpOiBOZXcgdmFyaWFibGUuCi0t LQogZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbSB8IDMwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9n bnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRl eCA0NTY2ZDk0NDg5Li4xZjc4NTA5OGY5IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTIzNiw2ICsyMzYsMzYg QEAgYXJyb3cgYW5kIGJvdywgYnV0IEBjb2Rle21pbmV0ZXN0LXRocm93aW5nLWFycm93c30gZG9l cy4iKQogICAgICAgKGxpY2Vuc2UgbGljZW5zZTptcGwyLjApCiAgICAgICAocHJvcGVydGllcyBg KCh1cHN0cmVhbS1uYW1lIC4gIlBhbGlnZS90aHJvd2luZyIpKSkpKSkKIAorKGRlZmluZS1wdWJs aWMgbWluZXRlc3QtdGhyb3dpbmctYXJyb3dzCisgIDs7IFRoZXJlIGlzIG9ubHkgb25lIHRhZ2dl ZCBjb21taXQgKHZlcnNpb24gMS4xKSwKKyAgOzsgdGhlcmUgYXJlIG5vIHJlbGVhc2VzIG9uIENv bnRlbnREQiBhbmQgdGhlIGxhdGVzdAorICA7OyBjb21taXQgaGFzIGEgY29tcGF0aWJpbGl0eSBm aXggZm9yIE1pbmV0ZXN0IDUuNC4wLWRldi4KKyAgKGxldCAoKGNvbW1pdCAiMDU5Y2M4OTdhZjBh ZWJmYmQyYzU0YWM1NTg4ZjJiODQyZjQ0ZjE1OSIpCisgICAgICAgIChyZXZpc2lvbiAiMCIpKQor ICAgIChwYWNrYWdlCisgICAgICAobmFtZSAibWluZXRlc3QtdGhyb3dpbmctYXJyb3dzIikKKyAg ICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMS4xIiByZXZpc2lvbiBjb21taXQpKQorICAgICAg KHNvdXJjZQorICAgICAgIChvcmlnaW4KKyAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAg ICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQorICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9n aXRodWIuY29tL21pbmV0ZXN0LW1vZHMvdGhyb3dpbmdfYXJyb3dzIikKKyAgICAgICAgICAgICAg IChjb21taXQgY29tbWl0KSkpCisgICAgICAgICAoc2hhMjU2CisgICAgICAgICAgKGJhc2UzMiAi MG0ycG1jY3BmeG44Nzh6ZDAwcG1ycGdhMmg2Z2tuejRmM3FwcmNrMGZxOTRta3Ntd3FzMyIpKQor ICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAg ICAoYnVpbGQtc3lzdGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgICAocHJvcGFn YXRlZC1pbnB1dHMKKyAgICAgICBgKCgibWluZXRlc3QtdGhyb3dpbmciICxtaW5ldGVzdC10aHJv d2luZykpKQorICAgICAgKGhvbWUtcGFnZSAobWluZXRlc3QtdG9waWMgMTYzNjUpKQorICAgICAg KHN5bm9wc2lzICJBcnJvd3MgYW5kIGJvd3MgZm9yIE1pbmV0ZXN0IikKKyAgICAgIChkZXNjcmlw dGlvbgorICAgICAgIDs7IFRSQU5TTEFUT1JTOiAidGhyb3dpbmciIGlzIHRoZSBuYW1lIG9mIGEg TWluZXRlc3QgbW9kIGFuZCBzaG91bGQKKyAgICAgICA7OyBub3QgYmUgdHJhbnNsYXRlZC4KKyAg ICAgICAiVGhpcyBtb2QgYWRkcyBhcnJvd3MgYW5kIGJvd3MgdG8gTWluZXRlc3QuICBJdCBpcyBh IGNvbXBhdGlibGUKK3JlcGxhY2VtZW50IGZvciB0aGUgdGhyb3dpbmcgbW9kIGJ5IFBpbHpBZGFt IHRoYXQgdXNlcyB0aGUgdGhyb3dpbmcgQVBJLiIpCisgICAgICAobGljZW5zZSBsaWNlbnNlOm1w bDIuMCkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtdW5pZmllZGR5ZXMKICAgKHBhY2th Z2UKICAgICAobmFtZSAibWluZXRlc3QtdW5pZmllZGR5ZXMiKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0016-gnu-Add-minetest-unified-inventory.patch" Content-Type: text/x-patch; name="0016-gnu-Add-minetest-unified-inventory.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4MjY0MTViODAxYWU5NmNjNjIyMjMzMDkyMjUyZmVhOTZiNjI0YTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNzozOTozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5LgoKKiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtCiAgKG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5KTogTmV3IHZhcmlhYmxl LgotLS0KIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gfCAzNSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbQppbmRleCAxZjc4NTA5OGY5Li5kNmZmNmM5ZTQ3IDEwMDY0NAotLS0gYS9nbnUvcGFja2Fn ZXMvbWluZXRlc3Quc2NtCisrKyBiL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KQEAgLTI5Mywz ICsyOTMsMzggQEAgTWluZXRlc3QgZ2FtZSwgdGhpcyBtb2QgaGFzIGJlY29tZSBhbiBleHRlbnNp b24gb2YgdGhlIGRlZmF1bHQgbW9kIGFuIGEgbGlicmFyeQogZm9yIGdlbmVyYWwgY29sb3VyIGhh bmRsaW5nLiIpCiAgICAgKGxpY2Vuc2UgbGljZW5zZTpncGwyKykKICAgICAocHJvcGVydGllcyBg KCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL3VuaWZpZWRkeWVzIikpKSkpCisKKyhkZWZpbmUt cHVibGljIG1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5CisgIChwYWNrYWdlCisgICAgKG5hbWUg Im1pbmV0ZXN0LXVuaWZpZWQtaW52ZW50b3J5IikKKyAgICA7OyBVcHN0cmVhbSBkb2Vzbid0IGtl ZXAgdmVyc2lvbiBudW1iZXJzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0bGUKKyAgICA7OyBvbiBD b250ZW50REIgaW5zdGVhZC4KKyAgICAodmVyc2lvbiAiMjAyMS0wMy0yNS0xIikKKyAgICAoc291 cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJp IChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL21p bmV0ZXN0LW1vZHMvdW5pZmllZF9pbnZlbnRvcnkiKQorICAgICAgICAgICAgIChjb21taXQgImMw NDRmNWUzYjA4ZjBjNjhhYjAyOGQ3NTdiMmZhNjNkOWExYjAzNzAiKSkpCisgICAgICAgKHNoYTI1 NgorICAgICAgICAoYmFzZTMyICIxOThnOTQ1Z3piZmwwa3BzNDZnd2p3MGM2MDFsM2Izd3ZuNGM3 ZHc4bWFuc2tyaTFqcjRnIikpCisgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1l IHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1tb2QtYnVpbGQtc3lzdGVt KQorICAgIChob21lLXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDEyNzY3KSkKKyAgICAoc3lub3BzaXMg IlJlcGxhY2UgdGhlIGRlZmF1bHQgaW52ZW50b3J5IGluIE1pbmV0ZXN0IGFuZCBhZGQgYSBjcmFm dGluZyBndWlkZSIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJUaGUgVW5pZmllZCBJbnZlbnRv cnkgTWluZXRlc3QgbW9kIHJlbGFjZXMgdGhlIGRlZmF1bHQgc3Vydml2YWwgYW4KK2NyZWF0aXZl IGludmVudG9yeS4gIEl0IGluY2x1ZGVzIGEgbm9kZSwgaXRlbSBhbmQgdG9vbCBicm93c2VyLCBh IGNyYWZ0aW5nCitndWlkZSwgYSB0cmFzaCBhbmQgcmVmaWxsIHNsb3QgZm9yIGNyZWF0aXZlIG1v ZGUsIGJhZ3MgYW5kIHdheXBvaW50cyBmb3Iga2VlcGluZwordHJhY2sgb2YgaW1wb3J0YW50IGxv Y2F0aW9ucy4iKQorICAgIDs7IENDLUJZOiBzb21lIHRleHR1cmVzIGFuZCBpY29ucworICAgIDs7 IENDLUJZLVNBOiBzb21lIHRleHR1cmVzIGFuZCBpY29ucworICAgIDs7IExHTFBMMi4xKzogY29k ZSBhbmQgc29tZSB0ZXh0dXJlcworICAgIDs7IEdQTDIrOiBzb21lIHRleHR1cmVzCisgICAgOzsg R1BMMzogYmFncy5sdWEKKyAgICA7OyBHRkRMOiBzb21lIGljb25zCisgICAgOzsgcHVibGljIGRv bWFpbiwgQ0MwOiBzb21lIGljb25zCisgICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpncGwzIGxp Y2Vuc2U6Z3BsMisgbGljZW5zZTpsZ3BsMi4xKyBsaWNlbnNlOmNjLWJ5My4wCisgICAgICAgICAg ICAgICAgICAgbGljZW5zZTpjYy1ieTQuMCBsaWNlbnNlOmNjLWJ5LXNhMy4wIGxpY2Vuc2U6cHVi bGljLWRvbWFpbgorICAgICAgICAgICAgICAgICAgIGxpY2Vuc2U6Y2MwIGxpY2Vuc2U6ZmRsMS4y KykpCisgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJSZWFsQmFkQW5nZWwvdW5p ZmllZF9pbnZlbnRvcnkiKSkpKSkKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0017-gnu-Add-minetest-worldedit.patch" Content-Type: text/x-patch; name="0017-gnu-Add-minetest-worldedit.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3NWE4ZTcwNjkzMTBkNmE0YWUzNDY4ZDZjZjI2NjIxNDEzZmY5OGYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxNzo1ODoyNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcv MjBdIGdudTogQWRkIG1pbmV0ZXN0LXdvcmxkZWRpdC4KCiogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSAobWluZXRlc3Qtd29ybGRlZGl0KTogTmV3IHZhcmlhYmxlLgotLS0KIGdudS9wYWNrYWdl cy9taW5ldGVzdC5zY20gfCAyMyArKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDIzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvbWluZXRlc3Qu c2NtIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQppbmRleCBkNmZmNmM5ZTQ3Li43MDBhOWIy ODcyIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCisrKyBiL2dudS9wYWNr YWdlcy9taW5ldGVzdC5zY20KQEAgLTI2Niw2ICsyNjYsMjkgQEAgYXJyb3cgYW5kIGJvdywgYnV0 IEBjb2Rle21pbmV0ZXN0LXRocm93aW5nLWFycm93c30gZG9lcy4iKQogcmVwbGFjZW1lbnQgZm9y IHRoZSB0aHJvd2luZyBtb2QgYnkgUGlsekFkYW0gdGhhdCB1c2VzIHRoZSB0aHJvd2luZyBBUEku IikKICAgICAgIChsaWNlbnNlIGxpY2Vuc2U6bXBsMi4wKSkpKQogCisoZGVmaW5lLXB1YmxpYyBt aW5ldGVzdC13b3JsZGVkaXQKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3Qtd29ybGRl ZGl0IikKKyAgICAodmVyc2lvbiAiMS4zIikKKyAgICAoc291cmNlCisgICAgIChvcmlnaW4KKyAg ICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAg ICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL1ViZXJpL01pbmV0ZXN0LVdvcmxkRWRp dCIpCisgICAgICAgICAgICAgKGNvbW1pdCAiMmYyNmZiNzY0NTljNTg3ODY4MTk5MTYwYjlkN2I1 ZDZkNzg1MmU1MCIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjBsc3ZpaGtp eGkybmExYjB2bW1sOXZ3Z3MwZzI0aHFxc2hsNzNmZmhremg2anNxNGNhZ3EiKSkKKyAgICAgICAo ZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVpbGQtc3lz dGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAobWluZXRlc3Qt dG9waWMgNTcyKSkKKyAgICAoc3lub3BzaXMgIkluLWdhbWUgd29ybGQgZWRpdG9yIGZvciBNaW5l dGVzdCIpCisgICAgKGRlc2NyaXB0aW9uCisgICAgICJXb3JsZEVkaXQgaXMgYSBtb2QgZm9yIE1p bmV0ZXN0LiAgSXQgYWxsb3dzIGZvciBjcmVhdGluZyB2YXJpb3VzCitnZW9tZXRyaWMgc2hhcGVz IGFuZCBjb3B5aW5nIHJlZ2lvbnMuICBJdCBjYW4gYWxzbyBleHBvcnQgYW5kIGltcG9ydCByZWdp b25zCit0byBhbmQgZnJvbSB0aGUgZmlsZSBzeXN0ZW0uIikKKyAgICAobGljZW5zZSBsaWNlbnNl OmFncGwzKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5hbWUgLiAic2ZhbjUvd29ybGRl ZGl0IikpKSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LXVuaWZpZWRkeWVzCiAgIChwYWNr YWdlCiAgICAgKG5hbWUgIm1pbmV0ZXN0LXVuaWZpZWRkeWVzIikKLS0gCjIuMzIuMAoK --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0018-gnu-Add-minetest-mobs.patch" Content-Type: text/x-patch; name="0018-gnu-Add-minetest-mobs.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiZTRlYzU3N2MyMWU5MDQ5Njc1NGM1YjU3MzVlZmQwOTA0NDE3YmQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxODo1Mzo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgv MjBdIGdudTogQWRkIG1pbmV0ZXN0LW1vYnMuCgoqIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20g KG1pbmV0ZXN0LW1vYnMpOiBOZXcgdmFyaWFibGUuCi0tLQogZ251L3BhY2thZ2VzL21pbmV0ZXN0 LnNjbSB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20g Yi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IDcwMGE5YjI4NzIuLmQzNmNhMDZlZjUg MTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2Vz L21pbmV0ZXN0LnNjbQpAQCAtMTQzLDYgKzE0MywzNSBAQCB3aXRoIGRpZmZlcmVudCBydWxlcyBh bmQgbWVjaGFuaWNzLiIpCiAgICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpsZ3BsMysgbGljZW5z ZTpjYy1ieS1zYTMuMCkpCiAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJKZWlq YS9tZXNlY29ucyIpKSkpKSkKIAorKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtbW9icworICAocGFj a2FnZQorICAgIChuYW1lICJtaW5ldGVzdC1tb2JzIikKKyAgICA7OyBVcHN0cmVhbSBkb2VzIG5v dCB0YWcgcmVsZWFzZSwgc28gdXNlIHRoZSBDb250ZW50REIgcmVsZWFzZQorICAgIDs7IHRpdGxl IGluc3RlYWQuCisgICAgKHZlcnNpb24gIjIwMjEtMDctMjIiKQorICAgIChzb3VyY2UKKyAgICAg KG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZl cmVuY2UKKyAgICAgICAgICAgICAodXJsICJodHRwczovL25vdGFidWcub3JnL1RlblBsdXMxL21v YnNfcmVkbyIpCisgICAgICAgICAgICAgKGNvbW1pdCAiOWY0NjE4MmJiNGIxYTM5MGY5YTE0MGJj MmI0NDNmM2NkYTcwMjMzMiIpKSkKKyAgICAgICAoc2hhMjU2CisgICAgICAgIChiYXNlMzIgIjAy NmtxamlzNGxpcGdza2ppdmIzamg5cmlzM2l6ODB2eTJxMWp2Z3hoeG1mZ2hqanpwNGoiKSkKKyAg ICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpKSkKKyAgICAoYnVp bGQtc3lzdGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisgICAgKGhvbWUtcGFnZSAobWlu ZXRlc3QtdG9waWMgOTkxNykpCisgICAgKHN5bm9wc2lzICJNb2IgbGlicmFyeSBmb3IgTWluZXRl c3QgbW9kcywgZm9yIGFuaW1hbHMsIG1vbnN0ZXJzIGV0Yy4iKQorICAgIChkZXNjcmlwdGlvbgor ICAgICAiVGhpcyBNaW5ldGVzdCBtb2QgcHJvdmlkZXMgYW4gQVBJIGZvciBhZGRpbmcgbW9kcyAo bW92aW5nIGVudGl0aWVzCitsaWtlIGFuaW1hbHMgYW5kIG1vbnN0ZXJzKSwgYnV0IGRvZXMgbm90 IGluY2x1ZGUgYW55IG1vYnMgaXRzZWxmLiAgVG8gYWN0dWFsbHkKK2FkZCBzb21lIG1vYnMsIGEg bW9kIGxpa2UgZS5nLiBAY29kZXttb2JzX2FuaW1hbH0gcHJvdmlkZWQgYnkgdGhlCitAY29kZXtt aW5ldGVzdC1tb2JzLWFuaW1hbH0gcGFja2FnZSBuZWVkcyB0byBiZSBlbmFibGVkLiIpCisgICAg OzsgQ0MwOiBtb2Jfc3dpbmcub2dnCisgICAgOzsgQ0MtQlkgMy4wOiBtb2Jfc3BlbGwub2dnCisg ICAgOzsgRXhwYXQ6IGV2ZXJ5dGhpbmcgZWxzZQorICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6 ZXhwYXQgbGljZW5zZTpjYzAgbGljZW5zZTpjYy1ieTMuMCkpCisgICAgKHByb3BlcnRpZXMgYCgo dXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9tb2JzIikpKSkpCisKIChkZWZpbmUtcHVibGljIG1p bmV0ZXN0LXBpcGV3b3JrcwogICAocGFja2FnZQogICAgIChuYW1lICJtaW5ldGVzdC1waXBld29y a3MiKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0019-gnu-Add-minetest-mobs-animal.patch" Content-Type: text/x-patch; name="0019-gnu-Add-minetest-mobs-animal.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBhN2JhYTNhZGIxOTA5MzZmOGY5OTUyMWY1NzdhZTljZWY1MjExYWIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAxOTo0Mzo0NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkv MjBdIGdudTogQWRkIG1pbmV0ZXN0LW1vYnMtYW5pbWFsLgoKKiBnbnUvcGFja2FnZXMvbWluZXRl c3Quc2NtIChtaW5ldGVzdC1tb2JzLWFuaW1hbCk6IE5ldyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFj a2FnZXMvbWluZXRlc3Quc2NtIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2NtCmluZGV4IGQzNmNhMDZlZjUu LjNjZDE0YTZkZjggMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20KKysrIGIv Z251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTcyLDYgKzE3MiwzMyBAQCBhZGQgc29tZSBt b2JzLCBhIG1vZCBsaWtlIGUuZy4gQGNvZGV7bW9ic19hbmltYWx9IHByb3ZpZGVkIGJ5IHRoZQog ICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTpjYzAgbGljZW5zZTpjYy1i eTMuMCkpCiAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9tb2Jz IikpKSkpCiAKKyhkZWZpbmUtcHVibGljIG1pbmV0ZXN0LW1vYnMtYW5pbWFsCisgIChwYWNrYWdl CisgICAgKG5hbWUgIm1pbmV0ZXN0LW1vYnMtYW5pbWFsIikKKyAgICA7OyBVcHN0cmVhbSBkb2Vz IG5vdCB1c2UgdmVyc2lvbiBudW1iZXJzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0bGUKKyAgICA7 OyBmcm9tIENvbnRlbnREQiBpbnN0ZWFkOworICAgICh2ZXJzaW9uICIyMDIxLTA3LTI0IikKKyAg ICAoc291cmNlCisgICAgIChvcmlnaW4KKyAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAg ICAodXJpIChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9ub3RhYnVn Lm9yZy9UZW5QbHVzMS9tb2JzX2FuaW1hbCIpCisgICAgICAgICAgICAgKGNvbW1pdCAiYzJmYTNl MzAwYzc5YzdkZDgwYjZmZTkxYThiNTA4MmJiNmIzZDkzNCIpKSkKKyAgICAgICAoc2hhMjU2Cisg ICAgICAgIChiYXNlMzIgIjFqNzE5ZjA3OWlhOXZqeHJtanJjajhzNmp2YXo1a2dzMXI0ZGg2Nno4 cWw2czcwa3g3dmgiKSkKKyAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVy c2lvbikpKSkKKyAgICAoYnVpbGQtc3lzdGVtIG1pbmV0ZXN0LW1vZC1idWlsZC1zeXN0ZW0pCisg ICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJtaW5ldGVzdC1tb2JzIiAsbWluZXRlc3Qt bW9icykpKQorICAgIChob21lLXBhZ2UgImh0dHBzOi8vbm90YWJ1Zy5vcmcvVGVuUGx1czEvbW9i c19hbmltYWwiKQorICAgIChzeW5vcHNpcyAiQWRkIGFuaW1hbHMgdG8gTWluZXRlc3QiKQorICAg IChkZXNjcmlwdGlvbgorICAgICAiVGhpcyBNaW5ldGVzdCBtb2QgYWRkcyB2YXJpb3VzIGFuaW1h bHMgdG8gTWluZXRlc3QsIHN1Y2ggYXMgYmVlcywKK2J1bm5pZXMsIGNoaWNrZW5zLCBjb3dzLCBr aXR0ZW5zLCByYXRzLCBzaGVlcCwgd2FydGhvZ3MsIHBlbmd1aW5zIGFuZCBwYW5kYXMuIikKKyAg ICA7OyBDQzA6IHNvbWUgdGV4dHVyZXMgYW5kIHNvdW5kcworICAgIChsaWNlbnNlIChsaXN0IGxp Y2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhwYXQpKQorICAgIChwcm9wZXJ0aWVzIGAoKHVwc3RyZWFtLW5h bWUgLiAiVGVuUGx1czEvbW9ic19hbmltYWwiKSkpKSkKKwogKGRlZmluZS1wdWJsaWMgbWluZXRl c3QtcGlwZXdvcmtzCiAgIChwYWNrYWdlCiAgICAgKG5hbWUgIm1pbmV0ZXN0LXBpcGV3b3JrcyIp Ci0tIAoyLjMyLjAKCg== --=-wpu1s/I5xVebNtvpHEc4 Content-Disposition: inline; filename="0020-gnu-Add-minetest-homedecor-modpack.patch" Content-Type: text/x-patch; name="0020-gnu-Add-minetest-homedecor-modpack.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYmNhODdhZDQ4OWQ4ODM0ODcwNDdhZjJjMmE5NTdhNjY1MDk2NDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgMSBBdWcgMjAyMSAyMDowMzowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjAv MjBdIGdudTogQWRkIG1pbmV0ZXN0LWhvbWVkZWNvci1tb2RwYWNrLgoKKiBnbnUvcGFja2FnZXMv bWluZXRlc3Quc2NtCiAgKG1pbmV0ZXN0LWhvbWVkZWNvci1tb2RwYWNrKTogTmV3IHZhcmlhYmxl LgotLS0KIGdudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gfCAzMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2dudS9wYWNrYWdlcy9taW5ldGVzdC5zY20gYi9nbnUvcGFja2FnZXMvbWluZXRlc3Quc2Nt CmluZGV4IDNjZDE0YTZkZjguLjNiZDY0MGRhNDUgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9t aW5ldGVzdC5zY20KKysrIGIvZ251L3BhY2thZ2VzL21pbmV0ZXN0LnNjbQpAQCAtMTA3LDYgKzEw NywzNyBAQCBzcGVjaWFsIGl0ZW1zLCBpbnRlbmRpbmcgdG8gbWFrZSBhbiBpbnRlcmVzdGluZyBh ZHZlbnR1cmUuIikKICAgICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Y2MwIGxpY2Vuc2U6ZXhw YXQpKQogICAgICAgKHByb3BlcnRpZXMgYCgodXBzdHJlYW0tbmFtZSAuICJUZW5QbHVzMS9ldGhl cmVhbCIpKSkpKSkKIAorKGRlZmluZS1wdWJsaWMgbWluZXRlc3QtaG9tZWRlY29yLW1vZHBhY2sK KyAgKHBhY2thZ2UKKyAgICAobmFtZSAibWluZXRlc3QtaG9tZWRlY29yLW1vZHBhY2siKQorICAg IDs7IFVwc3RyZWFtIGRvZXNuJ3QgdGFnIHJlbGVhc2VzLCBzbyB1c2UgdGhlIHJlbGVhc2UgdGl0 bGUgZnJvbQorICAgIDs7IENvbnRlbnREQiBhcyB2ZXJzaW9uLgorICAgICh2ZXJzaW9uICIyMDIx LTAzLTI3LTEiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRob2QgZ2l0 LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAodXJsICJo dHRwczovL2dpdGxhYi5jb20vVmFuZXNzYUUvaG9tZWRlY29yX21vZHBhY2siKQorICAgICAgICAg ICAgIChjb21taXQgIjlmZmUyYjdkNjkxMTMzZTFhMDY3NTQ2NTc0ZmJlNzM2NGZkMDJmMzIiKSkp CisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIxbGZhanF2YzJhZGY5aHFza2doa3k0 YXJjY3F6cGp3NGk5YTAxaHY0cWNja3Zpdm0wNGFnIikpCisgICAgICAgKGZpbGUtbmFtZSAoZ2l0 LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKSkpCisgICAgKGJ1aWxkLXN5c3RlbSBtaW5ldGVzdC1t b2QtYnVpbGQtc3lzdGVtKQorICAgIChwcm9wYWdhdGVkLWlucHV0cworICAgICBgKCgibWluZXRl c3QtYmFzaWMtbWF0ZXJpYWxzIiAsbWluZXRlc3QtYmFzaWMtbWF0ZXJpYWxzKQorICAgICAgICgi bWluZXRlc3QtdW5pZmllZGR5ZXMiICxtaW5ldGVzdC11bmlmaWVkZHllcykpKQorICAgIChob21l LXBhZ2UgKG1pbmV0ZXN0LXRvcGljIDIwNDEpKQorICAgIChzeW5vcHNpcyAiSG9tZSBkZWNvciBt b2QgZm9yIE1pbmV0ZXN0IikKKyAgICAoZGVzY3JpcHRpb24KKyAgICAgOzsgVFJBTlNMQVRPUlM6 IOKAmGhvbWVkZWNvcuKAmSBpcyB0aGUgbmFtZSBpcyB0aGUgbmFtZSBvZiBhIE1pbmV0ZXN0IG1v ZAorICAgICA7OyBhbmQgc2hvdWxkIG5vdCBiZSB0cmFuc2xhdGVkLgorICAgICAiVGhlIGhvbWVk ZWNvciBNaW5ldGVzdCBtb2QgcHJvdmlkZXMgYSBsYXJnZSBzZWxlZWN0aW9uIG9mIGl0ZW1zIHRo YXQKK21pZ2h0IGJlIGZvdW5kIGluc2lkZSBhbmQgYXJvdW5kIGhvbWVzLCBzdWNoIGFzIHNvZmFz LCBjaGFpcnMsIHRhYmxlcywgZmVuY2VzCithbmQgYSB2YXJpZXR5IG9mIG90aGVyIHN0dWZmLiIp CisgICAgKGxpY2Vuc2UKKyAgICAgKGxpc3QgbGljZW5zZTpjYy1ieS1zYTQuMCBsaWNlbnNlOmxn cGwzKSkKKyAgICAocHJvcGVydGllcyBgKCh1cHN0cmVhbS1uYW1lIC4gIlZhbmVzc2FFL2hvbWVk ZWNvcl9tb2RwYWNrIikpKSkpCisKIChkZWZpbmUtcHVibGljIG1pbmV0ZXN0LW1lc2Vjb25zCiAg IDs7IFRoZSByZWxlYXNlIG9uIENvbnRlbnREQiBkb2VzIG5vdCBoYXZlIGl0cyBvd24gdmVyc2lv biBudW1iZXIuCiAgIChsZXQgKChjb21taXQgImRiNTg3OTcwNmQwNGQzNDgwYmM0ODYzY2UwYzAz ZmE3M2U1ZjEwYzciKQotLSAKMi4zMi4wCgo= --=-wpu1s/I5xVebNtvpHEc4-- --=-uQFkrIuN3/nyTNvRD4mt Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iIwEABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYRJc0hccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7pDYAQD/ZXekBQ9I8UJqbeR7iZGDOcwY OGbHxdGRmak88JTjVAD43agNq4eI6igTSzXuRsdBqEBWxIXVJcXSaKwNWAJbDA== =W2GO -----END PGP SIGNATURE----- --=-uQFkrIuN3/nyTNvRD4mt-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 08:16:33 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 12:16:33 +0000 Received: from localhost ([127.0.0.1]:58629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDQgL-0004gY-4t for submit@debbugs.gnu.org; Tue, 10 Aug 2021 08:16:33 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:9797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDQgG-0004gM-QT for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 08:16:31 -0400 Received: from nijino.local (62-116-39-185.adsl.highway.telekom.at [62.116.39.185]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4GkX460bD9z1LXt2; Tue, 10 Aug 2021 14:16:21 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailrelay.tugraz.at 4GkX460bD9z1LXt2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1628597782; bh=ASQ+rb2c0IskAjdSLbNr7nSQf1Cljwuy19f0pvx8w9M=; h=Subject:From:To:Date:In-Reply-To:References:From; b=BesFxHIQVoETnXlPwjdg4qQUUUPm4AD2XCUdYUTFW+qzQ/x4Db0TmkrKTm+dG6hPR e92PeTWE1FBnZYVzQRJCH6+AKYGbulGwCiCjEliVVQo5UylQkrAZG5Eiam8XPrOUrC 9Pcrhr4dCG7SJwqr1e5DP48LhEDQw+g1B4N8sRg8= Message-ID: <37f5bc23e13faec846b8c8b7b4b092d29bfa0713.camel@student.tugraz.at> Subject: Re: [PATCH 06/20] guix: Add ContentDB importer. From: Leo Prikler To: Maxime Devos , 49828@debbugs.gnu.org Date: Tue, 10 Aug 2021 14:16:21 +0200 In-Reply-To: References: <20210802155019.6122-1-maximedevos@telenet.be> <20210802155019.6122-6-maximedevos@telenet.be> <74fcdc1aec1e92afec81c84930cff6ac831f72b1.camel@student.tugraz.at> <190b2e2c5da797a8c0e70f53de3e221861ce3b89.camel@student.tugraz.at> <9e75e458ab823e627b221218542f800105748c2a.camel@telenet.be> <16898c13929d873249c1873bc2b74d4bea07040b.camel@student.tugraz.at> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.116 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828 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 (---) Hi, Am Dienstag, den 10.08.2021, 13:02 +0200 schrieb Maxime Devos: > [...] > FWIW, there is no git/vcs updater, but there is a GitHub updater > (a git updater looking at tags in a git repository if the package > origin uses the git-fetch method could be written though). My bad, I thought that worked for more than just GitHub (having at least GitLab as well would cover most git repos anyway.) > The GitHub updater could theoretically work, but look at the output: > > ./pre-inst-env guix refresh minetest-{unified- > inventory,unifieddyes,worldedit,throwing- > arrows,throwing,technic,pipeworks,mobs- > animal,mobs,mesecons,homedecor-modpack,ethereal,coloredwood,basic- > materials} > [...] > Apparently, the git repos of minetest mods often don't keep version > numbers, > or aren't on github, or uses multiple version schemes simultanuously > (x.y[.z] version numbers + dates) ... "minetest-worldedit" is > properly > tagged though. For the other cases, an updater for ContentDB > packages > may be required. > > I modified the definition of 'minetest-throwing' to use "1.1" as > 'version' (the commit remains the same). Okay, it seems a separate updater using contentdb is still very much needed. > 'upstream-name' is used by the refresher of "egg", "cpan" and "opam". > I searched for "package-properties" in (guix import ...), and the > only > package property used by refreshers in 'upstream-name'. So using > anything other than 'upstream-name' for Minetest would be unusual. > > The documentation of "guix refresh" mentions: > > Sometimes the upstream name differs from the package name used in > Guix, and ‘guix refresh’ needs a little help. Most updaters honor > the > ‘upstream-name’ property in package definitions, which can be used to > that effect: > > (define-public network-manager > (package > (name "network-manager") > ;; ... > (properties '((upstream-name . "NetworkManager"))))) > > So using a different package property than 'upstream-name' would > be unexpected. > [...] Fair enough, I should probably read up on the code in `guix refresh` to understand how it ensures the correct updater is chosen. > About pointing the home page to content.minetest.net: that would > work for the refresher, but the ContentDB page isn't really the > home page, not unlike how the pypi page for python packages isn't > the home page. Likewise for opam and ocaml. Compare > > https://content.minetest.net/packages/Jeija/mesecons/ > > with https://mesecons.net/, which one seems more ‘homey’? I'd > say the latter is the home page. Point taken. > The revised patch series is attached. Only > ‘build-system: Add 'minetest-mod-build-system'’ and ‘gnu: Add > minetest-throwing’ > have been changed. It can also be found at > ;. Can you resend this v3 (with or without amendments to the points below) via `git send-email'? The series appears pretty "final" to me, but having one mail per patch might make it easier for others to point out issues if they find them. > + (file-name (if (string-suffix? "-checkout" file-name) > + (substring file-name > + 0 > + (- (string-length file-name) > + (string-length "- > minetest"))) > + file-name)) It is probably an accident, that "-checkout" and "-minetest" have the same string length :P I think we should probably add a (guix build utils) procedure to take care of such string prefix/suffix stripping in next core-updates. > + (cond ((file-exists? "mod.conf") > + (read-mod-name "mod.conf")) > + ((file-exists? "modpack.conf") > + (read-mod-name "modpack.conf" guess)) > + (#t (guess)))) Why do we yield an error if there's no name in mod.conf instead of trying to read from modpack.conf or just guessing? > [PATCH 14/20] gnu: Add minetest-throwing. LGTM From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:38 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:38 +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 1mDTLu-0007UP-EO for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:38 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTLs-0007U8-FV for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:37 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7biy; Tue, 10 Aug 2021 17:07:35 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 01/20] gnu: minetest: Respect --without-tests. Date: Tue, 10 Aug 2021 17:07:15 +0200 Message-Id: <20210810150734.11778-2-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608055; bh=CziCEUv/WSPQuPV4ScsL+rJ4eW0p8b8j08yFSvDKecQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Nzi/EMp0rhI6P0mZ5YfwrN7/SnymG6ytLVtrqJRdCXZOSTDOBd/g1YgJLu4PVxqnb fMIOYVrPPu5B+6x+TGroStuLjQvFRaZOR+xkid/uDpNzV+CMwNWob3VaovPyE52g3z 49cUAhkSNDHWu3jff5EqdWYLeVulvJu922YLm7b2O3Azre0Iue3yM18ELb1EzpuPwO uUq9QgseC+5QoTBzi6j5hKTBpXVw16AzXQgxEJobQIRWTOHekS+05wqH4MigYJ34xE ht98VCj59DigcsgNmMk0Qfvsq9drAt60G3zMIDmb83C8l+LlDRrwaoXbClSK6lEccX O54nu5mmkk0og== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/games.scm (minetest)[arguments]<#:phases>{check}: Use 'tests?' instead of ',(%current-target-system)'. Remove trailing #t. --- gnu/packages/games.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8c6b5523f1..3e7086b398 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3590,13 +3590,12 @@ match, cannon keep, and grave-itation pit.") (string-append (getcwd) "/games")) ; for check #t)) (replace 'check - (lambda _ + (lambda* (#:key tests? #:allow-other-keys) ;; Thanks to our substitutions, the tests should also run ;; when invoked on the target outside of `guix build'. - (unless ,(%current-target-system) + (when tests? (setenv "HOME" "/tmp") - (invoke "src/minetest" "--run-unittests")) - #t))))) + (invoke "src/minetest" "--run-unittests"))))))) (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:39 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:39 +0000 Received: from localhost ([127.0.0.1]:60323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTLu-0007UR-L0 for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:39 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTLs-0007U9-FM for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:37 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7bj1; Tue, 10 Aug 2021 17:07:35 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. Date: Tue, 10 Aug 2021 17:07:16 +0200 Message-Id: <20210810150734.11778-3-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608055; bh=JZpD2bVhpS5aeRSzOQ9bhTioT0ZsylAJ7BRP1vQmRsE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=geUo400UyquPQBwfuhyeZFOcZjGZkoFC1l7uIZ1Xk2bkUEhinWx3VCEKfYoOFWmuE VF1HT4NiOaXx7sBxD17gTc5Kw7X8ah0lLgk80aKPwGjIzo+7xgbIkRkz7ockoBMgKl pLbiB1IBx5tNNXNnAo6F2PQwGVh9KKQHWXJtI5K84admcDF7eZuc2aY8ir5/GjNErF AUnwnPh+RpVPFuSgYBcjkYqulewR+uF9TgVq8Ki4/OMR8bcj1vJO73dguJdLYOnnH6 /dTegVLNt+ojAj3egUwLkwFQG13PZvzb3vEyPx3kkmAS3uVR/I1I7cBAPk/Y1CfYiA +uA46rU8xkGyw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch: New file. * gnu/packages/games.scm (minetest)[source]{patches}: Add it. (minetest)[native-search-paths]: Add "MINETEST_MOD_PATH". * gnu/local.mk (dist_patch_DATA): Add the patch. --- gnu/local.mk | 1 + gnu/packages/games.scm | 8 +- ...vironment-variable-MINETEST_MOD_PATH.patch | 156 ++++++++++++++++++ 3 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch diff --git a/gnu/local.mk b/gnu/local.mk index c80a9af78c..d96d4e3dbc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -801,6 +801,7 @@ dist_patch_DATA = \ %D%/packages/patches/abseil-cpp-fix-gtest.patch \ %D%/packages/patches/abseil-cpp-fix-strerror_test.patch \ %D%/packages/patches/adb-add-libraries.patch \ + %D%/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ %D%/packages/patches/aegis-perl-tempdir2.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3e7086b398..48d46a0379 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -3553,6 +3553,9 @@ match, cannon keep, and grave-itation pit.") (base32 "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8")) (modules '((guix build utils))) + (patches + (search-patches + "Add-environment-variable-MINETEST_MOD_PATH.patch")) (snippet '(begin ;; Delete bundled libraries. @@ -3599,7 +3602,10 @@ match, cannon keep, and grave-itation pit.") (native-search-paths (list (search-path-specification (variable "MINETEST_SUBGAME_PATH") - (files '("share/minetest/games"))))) + (files '("share/minetest/games"))) + (search-path-specification + (variable "MINETEST_MOD_PATH") + (files '("share/minetest/mods"))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch b/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch new file mode 100644 index 0000000000..a74034a2c5 --- /dev/null +++ b/gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch @@ -0,0 +1,156 @@ +From d10ea2ad7efc2364a8a2007b4c6d3e85511e2f84 Mon Sep 17 00:00:00 2001 +From: Maxime Devos +Date: Tue, 3 Aug 2021 01:00:23 +0200 +Subject: [PATCH] Add environment variable MINETEST_MOD_PATH + +This adds an environment variable MINETEST_MOD_PATH. +When it exists, Minetest will look there for mods +in addition to ~/.minetest/mods/. Mods can still be +installed to ~/.minetest/mods/ with the built-in installer. + +With thanks to Leo Prikler. +--- + builtin/mainmenu/pkgmgr.lua | 7 +++---- + doc/menu_lua_api.txt | 8 +++++++- + src/content/subgames.cpp | 11 +++++++++++ + src/script/lua_api/l_mainmenu.cpp | 23 +++++++++++++++++++++++ + src/script/lua_api/l_mainmenu.h | 2 ++ + 5 files changed, 46 insertions(+), 5 deletions(-) + +diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua +index 787936e31..d8fba0ebe 100644 +--- a/builtin/mainmenu/pkgmgr.lua ++++ b/builtin/mainmenu/pkgmgr.lua +@@ -682,10 +682,9 @@ function pkgmgr.preparemodlist(data) + local game_mods = {} + + --read global mods +- local modpath = core.get_modpath() +- +- if modpath ~= nil and +- modpath ~= "" then ++ local modpaths = core.get_modpaths() ++ --XXX what was ‘modpath ~= ""’ and ‘modpath ~= nil’ for? ++ for _,modpath in ipairs(modpaths) do + get_mods(modpath,global_mods) + end + +diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt +index b3975bc1d..132444b14 100644 +--- a/doc/menu_lua_api.txt ++++ b/doc/menu_lua_api.txt +@@ -218,7 +218,13 @@ Package - content which is downloadable from the content db, may or may not be i + * returns path to global user data, + the directory that contains user-provided mods, worlds, games, and texture packs. + * core.get_modpath() (possible in async calls) +- * returns path to global modpath ++ * returns path to global modpath, where mods can be installed ++* core.get_modpaths() (possible in async calls) ++ * returns list of paths to global modpaths, where mods have been installed ++ ++ The difference with "core.get_modpath" is that no mods should be installed in these ++ directories by Minetest -- they might be read-only. ++ + * core.get_clientmodpath() (possible in async calls) + * returns path to global client-side modpath + * core.get_gamepath() (possible in async calls) +diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp +index e9dc609b0..d73f95a1f 100644 +--- a/src/content/subgames.cpp ++++ b/src/content/subgames.cpp +@@ -61,6 +61,12 @@ std::string getSubgamePathEnv() + return subgame_path ? std::string(subgame_path) : ""; + } + ++std::string getModPathEnv() ++{ ++ char *mod_path = getenv("MINETEST_MOD_PATH"); ++ return mod_path ? std::string(mod_path) : ""; ++} ++ + SubgameSpec findSubgame(const std::string &id) + { + if (id.empty()) +@@ -110,6 +116,11 @@ SubgameSpec findSubgame(const std::string &id) + std::set mods_paths; + if (!user_game) + mods_paths.insert(share + DIR_DELIM + "mods"); ++ ++ Strfnd mod_search_paths(getModPathEnv()); ++ while (!mod_search_paths.at_end()) ++ mods_paths.insert(mod_search_paths.next(PATH_DELIM)); ++ + if (user != share || user_game) + mods_paths.insert(user + DIR_DELIM + "mods"); + +diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp +index 3e9709bde..903ac3a22 100644 +--- a/src/script/lua_api/l_mainmenu.cpp ++++ b/src/script/lua_api/l_mainmenu.cpp +@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc., + #include "lua_api/l_internal.h" + #include "common/c_content.h" + #include "cpp_api/s_async.h" ++#include "util/strfnd.h" + #include "gui/guiEngine.h" + #include "gui/guiMainMenu.h" + #include "gui/guiKeyChangeMenu.h" +@@ -502,6 +503,26 @@ int ModApiMainMenu::l_get_modpath(lua_State *L) + return 1; + } + ++/******************************************************************************/ ++int ModApiMainMenu::l_get_modpaths(lua_State *L) ++{ ++ const char *c_modpath = getenv("MINETEST_MOD_PATH"); ++ if (c_modpath == NULL) ++ c_modpath = ""; ++ int index = 1; ++ lua_newtable(L); ++ Strfnd mod_search_paths{std::string(c_modpath)}; ++ while (!mod_search_paths.at_end()) { ++ std::string component = mod_search_paths.next(PATH_DELIM); ++ lua_pushstring(L, component.c_str()); ++ lua_rawseti(L, -2, index); ++ index++; ++ } ++ ModApiMainMenu::l_get_modpath(L); ++ lua_rawseti(L, -2, index); ++ return 1; ++} ++ + /******************************************************************************/ + int ModApiMainMenu::l_get_clientmodpath(lua_State *L) + { +@@ -949,6 +970,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top) + API_FCT(get_mapgen_names); + API_FCT(get_user_path); + API_FCT(get_modpath); ++ API_FCT(get_modpaths); + API_FCT(get_clientmodpath); + API_FCT(get_gamepath); + API_FCT(get_texturepath); +@@ -983,6 +1005,7 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top) + API_FCT(get_mapgen_names); + API_FCT(get_user_path); + API_FCT(get_modpath); ++ API_FCT(get_modpaths); + API_FCT(get_clientmodpath); + API_FCT(get_gamepath); + API_FCT(get_texturepath); +diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h +index 33ac9e721..a6a54a2cb 100644 +--- a/src/script/lua_api/l_mainmenu.h ++++ b/src/script/lua_api/l_mainmenu.h +@@ -112,6 +112,8 @@ class ModApiMainMenu: public ModApiBase + + static int l_get_modpath(lua_State *L); + ++ static int l_get_modpaths(lua_State *L); ++ + static int l_get_clientmodpath(lua_State *L); + + static int l_get_gamepath(lua_State *L); +-- +2.32.0 + -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:44 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:44 +0000 Received: from localhost ([127.0.0.1]:60325 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM0-0007Uo-Cw for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:44 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTLs-0007U7-FR for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:38 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7ait; Tue, 10 Aug 2021 17:07:34 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 00/20] Add minetest mods Date: Tue, 10 Aug 2021 17:07:14 +0200 Message-Id: <20210810150734.11778-1-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608055; bh=CwkzFc0BAw52XBUkuIeiaxTKz2ex/Is5zT3RzH3rLgs=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=kjN8d3XiRTrfCb5qpKtE6lnEu0hxGYsd2vKlAyKzV62nWAAb//1u5Ga1ZLR0JWQLG ym/1Ce/dsg/1bYZZYohmC4uq4IHfRoUKnAFheXA8AIl9FP5aXC5lF+d2V0IaA0dgah AztiuwGku+aZakw0EY/ZWssLfpILNZa99fVM/YI2G++v/mghOs6Cac8Q44J79yThOe Kva69FbCjKDWzQUbmp5I/DpRJ10aOcZUgDjA7rkEwYY96UKEK8mbl+JIbg8zSkGa+c EuklKJmrUpENc0tTlxZxcry+y2IrXHjpQ7fi192fPrVzIxaSdmrbIGdpQGWLb+sHyT vgm3A9Xn0bEQA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) Hi Guix, This patch series adds a bunch of Minetest mods, but first, it patches Minetest such that the mods will actually be found. An importer for Minetest mods from ContentDB (https://content.minetest.net) is included as well. Leo Prikler wrote: It is probably an accident, that "-checkout" and "-minetest" have the same string length :P Fixed. Leo Prikler wrote: > + (cond ((file-exists? "mod.conf") > + (read-mod-name "mod.conf")) > + ((file-exists? "modpack.conf") > + (read-mod-name "modpack.conf" guess)) > + (#t (guess)))) Why do we yield an error if there's no name in mod.conf instead of trying to read from modpack.conf or just guessing? IIUC, mod.conf must always have 'name' set. This requirement does not exist for "modpack.conf". I added some comments to the code in the v3. I also corrected ‘make the guess’ -> ‘make a guess’ in a comment in 'guess-mod-name'. Maxime Devos (20): gnu: minetest: Respect --without-tests. gnu: minetest: Search for mods in MINETEST_MOD_PATH. gnu: minetest: New package module. build-system: Add 'minetest-mod-build-system'. import/utils: Recognise GPL-3.0-or-later and friends. guix: Add ContentDB importer. gnu: Add minetest-mesecons. gnu: Add minetest-basic-materials. gnu: Add minetest-unifieddyes. gnu: Add minetest-pipeworks. gnu: Add minetest-coloredwood. gnu: Add minetest-ethereal. gnu: Add minetest-technic. gnu: Add minetest-throwing. gnu: Add minetest-throwing-arrows. gnu: Add minetest-unified-inventory. gnu: Add minetest-worldedit. gnu: Add minetest-mobs. gnu: Add minetest-mobs-animal. gnu: Add minetest-homedecor-modpack. Makefile.am | 5 + doc/guix.texi | 40 ++ gnu/local.mk | 2 + gnu/packages/games.scm | 15 +- gnu/packages/minetest.scm | 440 +++++++++++++++++ ...vironment-variable-MINETEST_MOD_PATH.patch | 156 ++++++ guix/build-system/minetest.scm | 99 ++++ guix/build/minetest-build-system.scm | 229 +++++++++ guix/import/minetest.scm | 456 ++++++++++++++++++ guix/import/utils.scm | 18 + guix/scripts/import.scm | 3 +- guix/scripts/import/minetest.scm | 117 +++++ po/guix/POTFILES.in | 1 + tests/minetest.scm | 355 ++++++++++++++ 14 files changed, 1930 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/minetest.scm create mode 100644 gnu/packages/patches/Add-environment-variable-MINETEST_MOD_PATH.patch create mode 100644 guix/build-system/minetest.scm create mode 100644 guix/build/minetest-build-system.scm create mode 100644 guix/import/minetest.scm create mode 100644 guix/scripts/import/minetest.scm create mode 100644 tests/minetest.scm -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:51 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:52 +0000 Received: from localhost ([127.0.0.1]:60343 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM6-0007VU-Fg for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:51 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM3-0007U8-4c for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:47 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7mkz; Tue, 10 Aug 2021 17:07:46 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 03/20] gnu: minetest: New package module. Date: Tue, 10 Aug 2021 17:07:17 +0200 Message-Id: <20210810150734.11778-4-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608066; bh=Jl9p4sbtllJUjOoAuOzoP9pDTy/zELbrliNCy05xm2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=sVFvZ7n0aEMsKqJZky0BX/er68/YsS8PWEKmMFLR4yiW+e3aiX6tFuvOXB58iBhaA 2Ta89yCzAmGrd7fa/0r0e9rRAmqY7SdECXat1snql/wv2lDn/9UmjyrMcFvVZX8J1y W2MEU+NBUGDl1djOi6qFF6Ug+fKFBqRalludtmOGVrxO8HAV0whIQGYzBux3aipTeL w+j3QwyjGJd9a/37YgqGK2hb60TPbLp69LfJjXBThMP6f3mPUXKSalrEOTvomlIzLu Vrnh0Gdt4N+6s9lbLDOFDHlRtzAfkEMRG6TeQSEEVlv3tHdmQr5LICZs19fpYtisct 7f2E8X4bog8uA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) Aside from the 'minetest-topic' procedure which will be used for the 'home-page' field of some packages, this module is currently empty. The 'contentdb' importer defined in the following patches will be used to populate this module. * gnu/packages/minetest.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/minetest.scm | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 gnu/packages/minetest.scm diff --git a/gnu/local.mk b/gnu/local.mk index d96d4e3dbc..5de08b1b09 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -383,6 +383,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/mercury.scm \ %D%/packages/mes.scm \ %D%/packages/messaging.scm \ + %D%/packages/minetest.scm \ %D%/packages/mingw.scm \ %D%/packages/microcom.scm \ %D%/packages/moe.scm \ diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm new file mode 100644 index 0000000000..f8aca3005c --- /dev/null +++ b/gnu/packages/minetest.scm @@ -0,0 +1,26 @@ +;;; Copyright © 2021 Maxime Devos +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . +(define-module (gnu packages minetest) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system minetest) + #:use-module ((guix licenses) #:prefix license:)) + +(define-public (minetest-topic topic-id) + "Return an URL (as a string) pointing to the forum topic with +numeric identifier TOPIC-ID on the official Minetest forums." + (string-append "https://forum.minetest.net/viewtopic.php?t=" + (number->string topic-id))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:52 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:52 +0000 Received: from localhost ([127.0.0.1]:60349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM7-0007Vl-Mt for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:52 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM4-0007U7-Ji for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:49 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7ol8; Tue, 10 Aug 2021 17:07:48 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 05/20] import/utils: Recognise GPL-3.0-or-later and friends. Date: Tue, 10 Aug 2021 17:07:19 +0200 Message-Id: <20210810150734.11778-6-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608068; bh=bMZ6iPVNxxlhuIZaq0PimP9jYxsdAO1X9M/rzEqKM1c=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=K2KnU9UuhRLuwQqURcZA1nUcshMW9CIFN0nQ7UgaUPAFPj2iieBAU+ftEvT75bQCh 7lHzn1re9evgVpkY0XvbpZoktIDKGlfCtFPuyEdClvXVtmXmfgK2RXfuuJ+KJtbFbq 0LrCeS8NNR89UR7n+cxPqPFjTcCFUoZI9AFcNPxReZ4OyGKJ3iiBMwz3/TKYGfnGll ecVEIWP6TFgPcKkZOrJ/sZaiEYRU2kHaLsA7sHzuSglabjyEGNnOldt+MsKlm6MNOJ dm/C/lujEzpgxMdX71r/I6ZxpkulpDZU/of3ep0Wq+zRiC6Vx6TX0A9NV7hMp0S9AH eY6sEE2pj/kgQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * guix/import/utils.scm (spdx-string->license): Recognise GPL-N-only and GPL-N-or-later. Likewise for LGPL and AGPL. --- guix/import/utils.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index d817318a91..d1b8076ddd 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -133,8 +133,14 @@ of the string VERSION is replaced by the symbol 'version." ;; Please update guix/licenses.scm when modifying ;; this list to avoid mismatches. (match str + ;; "GPL-N+" has been deprecated in favour of "GPL-N-or-later". + ;; "GPL-N" has been deprecated in favour of "GPL-N-only" + ;; or "GPL-N-or-later" as appropriate. Likewise for LGPL + ;; and AGPL ("AGPL-1.0" 'license:agpl1) ("AGPL-3.0" 'license:agpl3) + ("AGPL-3.0-only" 'license:agpl3) + ("AGPL-3.0-or-later" 'license:agpl3+) ("Apache-1.1" 'license:asl1.1) ("Apache-2.0" 'license:asl2.0) ("BSL-1.0" 'license:boost1.0) @@ -161,11 +167,17 @@ of the string VERSION is replaced by the symbol 'version." ("GFDL-1.3" 'license:fdl1.3+) ("Giftware" 'license:giftware) ("GPL-1.0" 'license:gpl1) + ("GPL-1.0-only" 'license:gpl1) ("GPL-1.0+" 'license:gpl1+) + ("GPL-1.0-or-later" 'license:gpl1+) ("GPL-2.0" 'license:gpl2) + ("GPL-2.0-only" 'license:gpl2) ("GPL-2.0+" 'license:gpl2+) + ("GPL-2.0-or-later" 'license:gpl2+) ("GPL-3.0" 'license:gpl3) + ("GPL-3.0-only" 'license:gpl3) ("GPL-3.0+" 'license:gpl3+) + ("GPL-3.0-or-later" 'license:gpl3+) ("ISC" 'license:isc) ("IJG" 'license:ijg) ("Imlib2" 'license:imlib2) @@ -173,11 +185,17 @@ of the string VERSION is replaced by the symbol 'version." ("IPL-1.0" 'license:ibmpl1.0) ("LAL-1.3" 'license:lal1.3) ("LGPL-2.0" 'license:lgpl2.0) + ("LGPL-2.0-only" 'license:lgpl2.0) ("LGPL-2.0+" 'license:lgpl2.0+) + ("LGPL-2.0-or-later" 'license:lgpl2.0+) ("LGPL-2.1" 'license:lgpl2.1) + ("LGPL-2.1-only" 'license:lgpl2.1) ("LGPL-2.1+" 'license:lgpl2.1+) + ("LGPL-2.1-or-later" 'license:lgpl2.1+) ("LGPL-3.0" 'license:lgpl3) + ("LGPL-3.0-only" 'license:lgpl3) ("LGPL-3.0+" 'license:lgpl3+) + ("LGPL-3.0-or-later" 'license:lgpl3+) ("MPL-1.0" 'license:mpl1.0) ("MPL-1.1" 'license:mpl1.1) ("MPL-2.0" 'license:mpl2.0) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:07:56 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:07:56 +0000 Received: from localhost ([127.0.0.1]:60351 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM8-0007W2-IQ for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:55 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM4-0007U9-0v for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:49 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7nl3; Tue, 10 Aug 2021 17:07:47 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 04/20] build-system: Add 'minetest-mod-build-system'. Date: Tue, 10 Aug 2021 17:07:18 +0200 Message-Id: <20210810150734.11778-5-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608067; bh=tlqzVB7TYH+aG4m7ne+1x8HAFgdBrgzZhhJDGF08StI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=EAfYlzqrN6rDRZuKy/JQ6oGaEyfeVRLJZ7Oisgvje3d7nNSNZRBue9hEKYXvcuN3z xQJXVo+kYdwxmeF9Jv9QFudTl+gxSEgmEDJfodTATv7uowOQ0m4NKWv++wXz8rs6pl Pcb6b/hT8Tb//0ESCoIpTHlAJX5VwOmZ059TN6DrG23BLv8Kd04KR6nO7tUgnwD6UF +Tsjy9dbxUP0kygLsiZl0lRX9Hz0jUC5i4U1sXw6iB9z6Inqg/lburKkgyrmEYO2iH W80OM8OxhebMgYfVyay2YC5X8E6HtxT4sMYQBLPhsmJzdkBG07yE4zuKbkqTCvu6NR FnKTXkPSwgk5A== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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 (-) * guix/build-system/minetest.scm: New module. * guix/build/minetest-build-system.scm: Likewise. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'minetest-mod-build-system'. --- Makefile.am | 2 + doc/guix.texi | 8 + guix/build-system/minetest.scm | 99 ++++++++++++ guix/build/minetest-build-system.scm | 229 +++++++++++++++++++++++++++ 4 files changed, 338 insertions(+) create mode 100644 guix/build-system/minetest.scm create mode 100644 guix/build/minetest-build-system.scm diff --git a/Makefile.am b/Makefile.am index d5ec909213..f4439ce93b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -141,6 +141,7 @@ MODULES = \ guix/build-system/go.scm \ guix/build-system/meson.scm \ guix/build-system/minify.scm \ + guix/build-system/minetest.scm \ guix/build-system/asdf.scm \ guix/build-system/copy.scm \ guix/build-system/glib-or-gtk.scm \ @@ -203,6 +204,7 @@ MODULES = \ guix/build/gnu-dist.scm \ guix/build/guile-build-system.scm \ guix/build/maven-build-system.scm \ + guix/build/minetest-build-system.scm \ guix/build/node-build-system.scm \ guix/build/perl-build-system.scm \ guix/build/python-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index b3c16e6507..d44ecc2005 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7895,6 +7895,14 @@ declaration. Its default value is @code{(default-maven-plugins)} which is also exported. @end defvr +@defvr {Scheme Variable} minetest-mod-build-system +This variable is exported by @code{(guix build-system minetest)}. It +implements a build procedure for @uref{https://www.minetest.net, Minetest} +mods, which consists of copying Lua code, images and other resources to +the location Minetest searches for mods. The build system also minimises +PNG images and verifies that Minetest can load the mod without errors. +@end defvr + @defvr {Scheme Variable} minify-build-system This variable is exported by @code{(guix build-system minify)}. It implements a minification procedure for simple JavaScript packages. diff --git a/guix/build-system/minetest.scm b/guix/build-system/minetest.scm new file mode 100644 index 0000000000..f33e97559d --- /dev/null +++ b/guix/build-system/minetest.scm @@ -0,0 +1,99 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system minetest) + #:use-module (guix build-system copy) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix utils) + #:export (minetest-mod-build-system)) + +;; +;; Build procedure for minetest mods. This is implemented as an extension +;; of ‘copy-build-system’. +;; +;; Code: + +;; Lazily resolve the bindings to avoid circular dependencies. +(define (default-optipng) + ;; Lazily resolve the binding to avoid a circular dependency. + (module-ref (resolve-interface '(gnu packages image)) 'optipng)) + +(define (default-minetest) + (module-ref (resolve-interface '(gnu packages games)) 'minetest)) + +(define (default-xvfb-run) + (module-ref (resolve-interface '(gnu packages xorg)) 'xvfb-run)) + +(define %minetest-build-system-modules + ;; Build-side modules imported by default. + `((guix build minetest-build-system) + ,@%copy-build-system-modules)) + +(define %default-modules + ;; Modules in scope in the build-side environment. + '((guix build gnu-build-system) + (guix build minetest-build-system) + (guix build utils))) + +(define (standard-minetest-packages) + "Return the list of (NAME PACKAGE OUTPUT) or (NAME PACKAGE) tuples of +standard packages used as implicit inputs of the Minetest build system." + `(("xvfb-run" ,(default-xvfb-run)) + ("optipng" ,(default-optipng)) + ("minetest" ,(default-minetest)) + ,@(filter (lambda (input) + (member (car input) + '("libc" "tar" "gzip" "bzip2" "xz" "locales"))) + (standard-packages)))) + +(define* (lower-mod name #:key (implicit-inputs? #t) #:allow-other-keys + #:rest arguments) + (define lower (build-system-lower gnu-build-system)) + (apply lower + name + (substitute-keyword-arguments arguments + ;; minetest-mod-build-system adds implicit inputs by itself, + ;; so don't let gnu-build-system add its own implicit inputs + ;; as well. + ((#:implicit-inputs? implicit-inputs? #t) + #f) + ((#:implicit-cross-inputs? implicit-cross-inputs? #t) + #f) + ((#:imported-modules imported-modules %minetest-build-system-modules) + imported-modules) + ((#:modules modules %default-modules) + modules) + ((#:phases phases '%standard-phases) + phases) + ;; Ensure nothing sneaks into the closure. + ((#:allowed-references allowed-references '()) + allowed-references) + ;; Add the implicit inputs. + ((#:native-inputs native-inputs '()) + (if implicit-inputs? + (append native-inputs (standard-minetest-packages)) + native-inputs))))) + +(define minetest-mod-build-system + (build-system + (name 'minetest-mod) + (description "The build system for minetest mods") + (lower lower-mod))) + +;;; minetest.scm ends here diff --git a/guix/build/minetest-build-system.scm b/guix/build/minetest-build-system.scm new file mode 100644 index 0000000000..477cc3d1d0 --- /dev/null +++ b/guix/build/minetest-build-system.scm @@ -0,0 +1,229 @@ +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build minetest-build-system) + #:use-module (guix build utils) + #:use-module (srfi srfi-1) + #:use-module (ice-9 format) + #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 receive) + #:use-module (ice-9 regex) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module ((guix build copy-build-system) #:prefix copy:) + #:export (%standard-phases + mod-install-plan minimise-png read-mod-name check)) + +;; (guix build copy-build-system) does not export 'install'. +(define copy:install + (assoc-ref copy:%standard-phases 'install)) + +(define (mod-install-plan mod-name) + `(("." ,(string-append "share/minetest/mods/" mod-name) + ;; Only install files that will actually be used at run time. + ;; This can save a little disk space. + ;; + ;; See + ;; for an incomple list of files that can be found in mods. + #:include ("mod.conf" "modpack.conf" "settingtypes.txt" "depends.txt" + "description.txt") + #:include-regexp (".lua$" ".png$" ".ogg$" ".obj$" ".b3d$" ".tr$" + ".mts$")))) + +(define* (guess-mod-name #:key inputs #:allow-other-keys) + "Try to determine the name of the mod or modpack that is being built. +If it is unknown, make an educated guess." + ;; Minetest doesn't care about the directory names in "share/minetest/mods" + ;; so there is no technical problem if the directory names don't match + ;; the mod names. The directory can appear in the GUI if the modpack + ;; doesn't have the 'name' set though, so try to make a guess. + (define (guess) + (let* ((source (assoc-ref inputs "source")) + ;; Don't retain a reference to the store. + (file-name (strip-store-file-name source)) + ;; The "minetest-" prefix is not informative, so strip it. + (file-name (if (string-prefix? "minetest-" file-name) + (substring file-name (string-length "minetest-")) + file-name)) + ;; Strip "-checkout" suffixes of git checkouts. + (file-name (if (string-suffix? "-checkout" file-name) + (substring file-name + 0 + (- (string-length file-name) + (string-length "-checkout"))) + file-name)) + (first-dot (string-index file-name #\.)) + ;; If the source code is in an archive (.tar.gz, .zip, ...), + ;; strip the extension. + (file-name (if first-dot + (substring file-name 0 first-dot) + file-name))) + (format (current-error-port) + "warning: the modpack ~a did not set 'name' in 'modpack.conf'~%" + file-name) + file-name)) + (cond ((file-exists? "mod.conf") + ;; Mods must have 'name' set in "mod.conf", so don't guess. + (read-mod-name "mod.conf")) + ((file-exists? "modpack.conf") + ;; While it is recommended to have 'name' set in 'modpack.conf', + ;; it is optional, so guess a name if necessary. + (read-mod-name "modpack.conf" guess)) + (#t (guess)))) + +(define* (install #:key inputs #:allow-other-keys #:rest arguments) + (apply copy:install + #:install-plan (mod-install-plan (apply guess-mod-name arguments)) + arguments)) + +(define %png-magic-bytes + ;; Magic bytes of PNG images, see ‘5.2 PNG signatures’ in + ;; ‘Portable Network Graphics (PNG) Specification (Second Edition)’ + ;; on . + #vu8(137 80 78 71 13 10 26 10)) + +(define png-file? + ((@@ (guix build utils) file-header-match) %png-magic-bytes)) + +(define* (minimise-png #:key inputs native-inputs #:allow-other-keys) + "Minimise PNG images found in the working directory." + (define optipng (which "optipng")) + (define (optimise image) + (format #t "Optimising ~a~%" image) + (make-file-writable (dirname image)) + (make-file-writable image) + (define old-size (stat:size (stat image))) + ;; The mod "technic" has a file "technic_music_player_top.png" that + ;; actually is a JPEG file, see + ;; . + (if (png-file? image) + (invoke optipng "-o4" "-quiet" image) + (format #t "warning: skipping ~a because it's not actually a PNG image~%" + image)) + (define new-size (stat:size (stat image))) + (values old-size new-size)) + (define files (find-files "." ".png$")) + (let loop ((total-old-size 0) + (total-new-size 0) + (images (find-files "." ".png$"))) + (cond ((pair? images) + (receive (old-size new-size) + (optimise (car images)) + (loop (+ total-old-size old-size) + (+ total-new-size new-size) + (cdr images)))) + ((= total-old-size 0) + (format #t "There were no PNG images to minimise.")) + (#t + (format #t "Minimisation reduced size of images by ~,2f% (~,2f MiB to ~,2f MiB)~%" + (* 100.0 (- 1 (/ total-new-size total-old-size))) + (/ total-old-size (expt 1024 2)) + (/ total-new-size (expt 1024 2))))))) + +(define name-regexp (make-regexp "^name[ ]*=(.+)$")) + +(define* (read-mod-name mod.conf #:optional not-found) + "Read the name of a mod from MOD.CONF. If MOD.CONF +does not have a name field and NOT-FOUND is #false, raise an +error. If NOT-FOUND is TRUE, call NOT-FOUND instead." + (call-with-input-file mod.conf + (lambda (port) + (let loop () + (define line (read-line port)) + (if (eof-object? line) + (if not-found + (not-found) + (error "~a does not have a 'name' field" mod.conf)) + (let ((match (regexp-exec name-regexp line))) + (if (regexp-match? match) + (string-trim-both (match:substring match 1) #\ ) + (loop)))))))) + +(define* (check #:key outputs tests? #:allow-other-keys) + "Test whether the mod loads. The mod must first be installed first." + (define (all-mod-names directories) + (append-map + (lambda (directory) + (map read-mod-name (find-files directory "mod.conf"))) + directories)) + (when tests? + (mkdir "guix_testworld") + ;; Add the mod to the mod search path, such that Minetest can find it. + (setenv "MINETEST_MOD_PATH" + (list->search-path-as-string + (cons + (string-append (assoc-ref outputs "out") "/share/minetest/mods") + (search-path-as-string->list + (or (getenv "MINETEST_MOD_PATH") ""))) + ":")) + (with-directory-excursion "guix_testworld" + (setenv "HOME" (getcwd)) + ;; Create a world in which all mods are loaded. + (call-with-output-file "world.mt" + (lambda (port) + (display + "gameid = minetest +world_name = guix_testworld +backend = sqlite3 +player_backend = sqlite3 +auth_backend = sqlite3 +" port) + (for-each + (lambda (mod) + (format port "load_mod_~a = true~%" mod)) + (all-mod-names (search-path-as-string->list + (getenv "MINETEST_MOD_PATH")))))) + (receive (port pid) + ((@@ (guix build utils) open-pipe-with-stderr) + "xvfb-run" "--" "minetest" "--info" "--world" "." "--go") + (format #t "Started Minetest with all mods loaded for testing~%") + ;; Scan the output for error messages. + ;; When the player has joined the server, stop minetest. + (define (error? line) + (and (string? line) + (string-contains line ": ERROR["))) + (define (stop? line) + (and (string? line) + (string-contains line "ACTION[Server]: singleplayer [127.0.0.1] joins game."))) + (let loop () + (match (read-line port) + ((? error? line) + (error "minetest raised an error: ~a" line)) + ((? stop?) + (kill pid SIGINT) + (close-port port) + (waitpid pid)) + ((? string? line) + (display line) + (newline) + (loop)) + ((? eof-object?) + (error "minetest didn't start")))))))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-before 'build 'minimise-png minimise-png) + (delete 'build) + (delete 'check) + (replace 'install install) + ;; The 'check' phase requires the mod to be installed, + ;; so move the 'check' phase after the 'install' phase. + (add-after 'install 'check check))) + +;;; minetest-build-system.scm ends here -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:01 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:01 +0000 Received: from localhost ([127.0.0.1]:60373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMH-0007XJ-1s for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:01 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM5-0007U7-OS for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:50 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7plU; Tue, 10 Aug 2021 17:07:49 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 07/20] gnu: Add minetest-mesecons. Date: Tue, 10 Aug 2021 17:07:21 +0200 Message-Id: <20210810150734.11778-8-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608069; bh=8vF1iigv0+QbS04vHQjkekm5JHcU5zb2NOz8tG+8KiQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=CDkQ2GCgXz5a6eM64cFkgPD5BpNzTgIhFW00mkSxUVEHe19Hs6uRgj77zDxNJnmOZ tZY0xWKYmho1QVpLA3l5YldQ7DgQwRTJCuoJ7umEIt5Ltokk5Z/y6CzaekjdsBFV5P 6AHHVFP28yEC8/3p0rWlTt8ILce8NFvRxEdcpnNM4A3MWoXUOltWfO/CjnBpi6JhNf 25wACKm9m/x3H+zDKsRR0UTs8Y+YnHwxnPk6o8wCAFVsIea+a3Y5S/pVqZGKczeL+i lkOSXfD2qLi32XG0OYqda7mWjiNw4zDtzN0ZZNPiqI0kYrpM3CNC//DWSwRhB+/LYH cV+qRPpVwQmBA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mesecons): New variable. --- gnu/packages/minetest.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index f8aca3005c..d99efa4625 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -24,3 +24,39 @@ numeric identifier TOPIC-ID on the official Minetest forums." (string-append "https://forum.minetest.net/viewtopic.php?t=" (number->string topic-id))) + +(define-public minetest-mesecons + ;; The release on ContentDB does not have its own version number. + (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") + (revision "0")) + (package + (name "minetest-mesecons") + (version (git-version "1.2.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/mesecons") + (commit commit))) + (sha256 + (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page "https://mesecons.net") + (synopsis + "Digital circuitry for Minetest, including wires, buttons and lights") + (description + "Mesecons is a mod for Minetest implementing various items related +to digital circuitry, such as wires, buttons, lights and programmable +controllers. Among other things, there are also pistons, solar panels, +pressure plates and note blocks. + +Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, +with different rules and mechanics.") + ;; LGPL for code, CC-BY-SA for textures. + ;; The README.md and COPYING.txt disagree about the "+" in license:lgpl3+. + ;; For now, assume README.md is correct. Upstream has been asked to + ;; correct the inconsistency: + ;; . + (license (list license:lgpl3+ license:cc-by-sa3.0)) + (properties `((upstream-name . "Jeija/mesecons")))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:01 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:01 +0000 Received: from localhost ([127.0.0.1]:60375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMH-0007XL-Dr for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:01 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM6-0007U9-6t for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:51 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7plY; Tue, 10 Aug 2021 17:07:49 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 08/20] gnu: Add minetest-basic-materials. Date: Tue, 10 Aug 2021 17:07:22 +0200 Message-Id: <20210810150734.11778-9-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608070; bh=e7+pD+JqL+rGOWQ7gq/O6RPcGr+GQmIwCJtkokxYNGc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=tDnxWOxc/NMgy5JO96ZHqrzqF4HQLANK9tqfT3m2w2CM2l2xJKLkxevOW31C/pnDa 3xQ10VAkUlbE1cFxX7vjZ4aRKSChSNSUm7CY66oxs6JBljVTLASFfIC6CIlFuk/8Ue vyYzIrC85g+iYPmf6B7rO8p0doQjM2b/h9SDo8F9coFDYxQTIQ26N+sOX4a5pYvznX 8Rmilg9EIVmAvdBuEd+jZqcnSLCKZB8RL64IWUJan1imAJJxSzput3I9IkG+6iYC32 xUZlG1R4Tp5VmRU4m7VmX4lE7tWsveth0yPgK3Ytsykpn2P6GOqkweNr1m1jdp6MLe /KPtMP9K1IiFA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-basic-materials): New variable. --- gnu/packages/minetest.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index d99efa4625..97d4d3c9ac 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -25,6 +25,31 @@ numeric identifier TOPIC-ID on the official Minetest forums." (string-append "https://forum.minetest.net/viewtopic.php?t=" (number->string topic-id))) +(define-public minetest-basic-materials + (package + (name "minetest-basic-materials") + ;; Upstream uses dates as version numbers. + (version "2021-01-30") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/basic_materials.git") + (commit "e72665b2ed98d7be115779a32d35e6d9ffa231bd"))) + (sha256 + (base32 "0v6l3lrjgshy4sccjhfhmfxc3gk0cdy73qb02i9wd2vw506v5asx")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 21000)) + (synopsis "Some \"basic\" materials and items for other Minetest mods to use") + (description + "The Minetest mod \"basic_materials\" provides a small selection of +\"basic\" materials and items that other mods should use when possible -- things +like steel bars and chains, wire, plastic strips and sheets, and more.") + (license + (list license:cc-by-sa4.0 license:lgpl3)) + (properties `((upstream-name . "VanessaE/basic_materials"))))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:02 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:02 +0000 Received: from localhost ([127.0.0.1]:60377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMH-0007XS-Mq for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:01 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM6-0007U7-Vq for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:51 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7qlj; Tue, 10 Aug 2021 17:07:50 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 10/20] gnu: Add minetest-pipeworks. Date: Tue, 10 Aug 2021 17:07:24 +0200 Message-Id: <20210810150734.11778-11-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608070; bh=bTLi/mHeCp7xDQkq5dPrfFW+sf7MG2Xq7hWzAr2Mo2k=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=c9oFRBLpo61EbYZHIA9wiDxOYGzq7UCxfMsYPN8DLurKXshbON0DZI5XtgzB8H5Gy 33WJE8V/kNU8GKtid3LffsLU4rx/I53MYL98FKb/aWSeY8aiqK+RCEOnQVFwhZK6aJ F0WFlpfwrBxCRdOpPHNIACDOwiFGQc7wgtb1wAf2oo8ZSqKvc9GTvspOlfKar3O7Gb LeFVKtINdV9tBDAaQhPPl69SKGPe5khUWUSHlmYB4BaGGXfNQ6qQcuDn/mW3hoTBh7 g9IZI+D4PEow3i3Pm7aLJhv43y+7RfrDlotERdeQg3VFBUb3XAv95l0D8+QfFmN+XK rnXeFrcL5XFwA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-pipeworks): New variable. --- gnu/packages/minetest.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 8b9eb30a6a..782166daef 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -86,6 +86,37 @@ with different rules and mechanics.") (license (list license:lgpl3+ license:cc-by-sa3.0)) (properties `((upstream-name . "Jeija/mesecons")))))) +(define-public minetest-pipeworks + (package + (name "minetest-pipeworks") + ;; Upstream uses dates as version numbers. + (version "2021-04-14-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/pipeworks") + (commit "db6d1bd9c109e1e543b97cc3fa8a11400da23bcd"))) + (sha256 + (base32 "1flhcnf17dn1v86kcg47a1n4cb0lybd11ncxrkxn3wmf10ibsrm0")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2155)) + (synopsis "Pipes, item-transport tubes and related devices for Minetest") + (description + "Pipeworks is a mod for Minetest implementing 3D pipes and tubes for +transporting liquids and items and some related devices. Pipes and tubes can +go horizontally or vertically. Item tubes can also be used for sorting items +and extracting items from chests or putting items in chests. Autocrafters can +automatically follow craft recipes to make new items and can be fed by item +tubes. Deployers can place items in the world as a player would. Node +breakers simulate a player punching a node.") + ;; CC-BY-SA for textures, LGPL for code + (license (list license:cc-by-sa4.0 license:lgpl3)) + (properties `((upstream-name . "VanessaE/pipeworks"))))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:02 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:02 +0000 Received: from localhost ([127.0.0.1]:60379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMI-0007Xe-0J for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:02 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:48096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM6-0007VT-SA for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:52 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7qlf; Tue, 10 Aug 2021 17:07:50 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 09/20] gnu: Add minetest-unifieddyes. Date: Tue, 10 Aug 2021 17:07:23 +0200 Message-Id: <20210810150734.11778-10-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608070; bh=RkFbnYgcTymch7cjj3bC+XwtwzxCuP2GvkDxDsxGLEk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Z9h778ri5ppEuDpzMbRQjmLb/hKWHjIyT0/B/zIkRus9/SDJRuwmJPymORTXYiXdm O/ZHgWQxY7PzWkQBKozig3lnTfQg0BMqRxXTaWzeGMlbkeFqukgp7w7m/dfMx78l+N 7Ust6P5ZxHyQ1F6MnTOoScszrvzkvti6ZMM30yre78/s4otVJKGb0Q12Cy0DGd1JLQ XbJPjpuAasYF5UqxSM8H6rW2B+OEw71pa/oIeE1FW2zojLnMtuUtwzjbh2PcPtKuxt 1YEzhsn8CCy4vtjU4GYmmu0o+v66Woo+dFBeIxDY4CxZdIHhh9mJ2khJX5vaBfeIFZ vzSi8/9BnZLWw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-unifieddyes): New variable. --- gnu/packages/minetest.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 97d4d3c9ac..8b9eb30a6a 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -85,3 +85,32 @@ with different rules and mechanics.") ;; . (license (list license:lgpl3+ license:cc-by-sa3.0)) (properties `((upstream-name . "Jeija/mesecons")))))) + +(define-public minetest-unifieddyes + (package + (name "minetest-unifieddyes") + ;; Upstream uses dates as version numbers. + (version "2021-04-20-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/unifieddyes") + (commit "ff3b2d30fa0df5c7181fdd401b989de6271c3bb3"))) + (sha256 + (base32 + "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2178)) + (synopsis + "Unified Dyes expands the standard dye set of Minetest to up to 256 colours") + (description "The purpose of this mod originally was to supply a complete +set of colours for Minetest mod authors to use for colourised nodes or +reference in recipes. Since the advent of the default dyes mod in the standard +Minetest game, this mod has become an extension of the default mod an a library +for general colour handling.") + (license license:gpl2+) + (properties `((upstream-name . "VanessaE/unifieddyes"))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:03 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:03 +0000 Received: from localhost ([127.0.0.1]:60381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMI-0007Xo-IY for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:03 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM8-0007U9-KS for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:52 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7slx; Tue, 10 Aug 2021 17:07:52 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 11/20] gnu: Add minetest-coloredwood. Date: Tue, 10 Aug 2021 17:07:25 +0200 Message-Id: <20210810150734.11778-12-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608072; bh=Pw7eG/QKU0ZJOVpKUuefdZ8WjV4mxmxri9cEXcz4MzM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=TUjpV23eZD3e6uUm9hzsoOyxiqPB+8FLCb7uFvWpZHzk7szLtu0ar+KALxTkBDLU4 suqLZmyAqT85mFtlrVyP6tNaYqlz6X78ThWyIstxSPPtfye93QFmnfy3czJoZuwcms gyCcx2e/Pl1f3d4JRBuJmQPcp/R519DXX4HSnAN4clpjZmkHaV2L1+A8fcsJ9LsCgu pjOQpi67JlmfrHwgYAI1hmu17fNMgs51wC1PZ9MqBm5O5LyndFooKx/cY7JAqa21tp o3jXE0lv+IVduyWZCsO267PcSOYW7SZH0XpuUtBjdBt+M6ohmN2Pg5s0Q/XYLnaBB4 RR3dU1TiS73Wg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-coloredwood): New variable. --- gnu/packages/minetest.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 782166daef..4c542c6061 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -50,6 +50,34 @@ like steel bars and chains, wire, plastic strips and sheets, and more.") (list license:cc-by-sa4.0 license:lgpl3)) (properties `((upstream-name . "VanessaE/basic_materials"))))) +(define-public minetest-coloredwood + (package + (name "minetest-coloredwood") + ;; Upstream uses dates as version numbers. + (version "2021-04-14-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/coloredwood") + (commit "be4df6fc889419155bed8638bbb752493e78cbd5"))) + (sha256 + (base32 "1swirfk6b4xfbiwv8adyw5yl2lyfpp8ymfipzq9ivyvmif8nl3ki")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-unifieddyes" ,minetest-unifieddyes))) + (home-page (minetest-topic 2411)) + (synopsis "Painted wood in Minetest") + (description + "This Minetest mod provides hundreds of colours of wood and fences to +Minetest, using Unified Dyes. If the \"moreblocks\" mod is active, +coloured and cut wood shapes are provided as well.") + (license + ;; LGPL for code, CC-BY-SA for textures + (list license:cc-by-sa4.0 license:lgpl3)) + (properties `((upstream-name . "VanessaE/coloredwood"))))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:07 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:07 +0000 Received: from localhost ([127.0.0.1]:60384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMJ-0007Y4-51 for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:07 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM5-0007U8-7S for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:53 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7olJ; Tue, 10 Aug 2021 17:07:48 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 06/20] guix: Add ContentDB importer. Date: Tue, 10 Aug 2021 17:07:20 +0200 Message-Id: <20210810150734.11778-7-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608069; bh=bsFArY0xssugV/RQsOYuu6ogNwxbvJF2Aa8/Ds8Dyjw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=bigEF9v6eeyrXxNhKeLIBZCv/f6Z2U9qlldXTjVf/bc9aKFyVix8aFI+rF19u21yU CLjeQt+dSDhWHrtl5nq1A6VACknGNv/Y5zJtgi5eWMs1dUB20vlunK2i9T4WIq8sca LMzeVl7ksnG5e8no9W05grE9cD/US2wxZKA46hZBDO0FdF/huPmJNGsyX571hvnEnW q4yRZacFb/DoN5IuqUbDy1h0+nrZ/dFLGvF95clxHS98wRifZYRv2SqQ40gaEEtBqT JYqBz77Eyg9P67MoD96BPemXjsQTSOdkZMs3COpqQWy+pdiamC6CRDUEvLMokLXMGV HNxEMIs2R4mZg== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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 (-) * guix/import/contentdb.scm: New file. * guix/scripts/import/contentdb.scm: New file. * tests/contentdb.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * doc/guix.texi (Invoking guix import): Document it. --- Makefile.am | 3 + doc/guix.texi | 32 +++ guix/import/minetest.scm | 456 +++++++++++++++++++++++++++++++ guix/scripts/import.scm | 3 +- guix/scripts/import/minetest.scm | 117 ++++++++ po/guix/POTFILES.in | 1 + tests/minetest.scm | 355 ++++++++++++++++++++++++ 7 files changed, 966 insertions(+), 1 deletion(-) create mode 100644 guix/import/minetest.scm create mode 100644 guix/scripts/import/minetest.scm create mode 100644 tests/minetest.scm diff --git a/Makefile.am b/Makefile.am index f4439ce93b..6243583616 100644 --- a/Makefile.am +++ b/Makefile.am @@ -262,6 +262,7 @@ MODULES = \ guix/import/json.scm \ guix/import/kde.scm \ guix/import/launchpad.scm \ + guix/import/minetest.scm \ guix/import/opam.scm \ guix/import/print.scm \ guix/import/pypi.scm \ @@ -304,6 +305,7 @@ MODULES = \ guix/scripts/import/go.scm \ guix/scripts/import/hackage.scm \ guix/scripts/import/json.scm \ + guix/scripts/import/minetest.scm \ guix/scripts/import/opam.scm \ guix/scripts/import/pypi.scm \ guix/scripts/import/stackage.scm \ @@ -470,6 +472,7 @@ SCM_TESTS = \ tests/import-utils.scm \ tests/inferior.scm \ tests/lint.scm \ + tests/minetest.scm \ tests/modules.scm \ tests/monads.scm \ tests/nar.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index d44ecc2005..854e282b38 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11314,6 +11314,38 @@ and generate package expressions for all those packages that are not yet in Guix. @end table +@item contentdb +@cindex minetest +@cindex ContentDB +Import metadata from @uref{https://content.minetest.net, ContentDB}. +Information is taken from the JSON-formatted metadata provided through +@uref{https://content.minetest.net/help/api/, ContentDB's API} and +includes most relevant information, including dependencies. There are +some caveats, however. The license information is often incomplete. +The commit hash is sometimes missing. The descriptions are in the +Markdown format, but Guix uses Texinfo instead. Texture packs and +subgames are unsupported. + +The command below imports metadata for the Mesecons mod by Jeija: + +@example +guix import minetest Jeija/mesecons +@end example + +The author name can also be left out: + +@example +guix import minetest mesecons +@end example + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @item cpan @cindex CPAN Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}. diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm new file mode 100644 index 0000000000..e1f8487b75 --- /dev/null +++ b/guix/import/minetest.scm @@ -0,0 +1,456 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix import minetest) + #:use-module (ice-9 match) + #:use-module (ice-9 receive) + #:use-module (ice-9 threads) + #:use-module (ice-9 hash-table) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-2) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) + #:use-module (guix utils) + #:use-module (guix ui) + #:use-module (guix i18n) + #:use-module (guix memoization) + #:use-module (guix serialization) + #:use-module (guix import utils) + #:use-module (guix import json) + #:use-module ((gcrypt hash) #:select (open-sha256-port port-sha256)) + #:use-module (json) + #:use-module (guix base32) + #:use-module (guix git) + #:use-module (guix store) + #:export (%default-sort-key + %contentdb-api + json->package + contentdb-fetch + elaborate-contentdb-name + minetest->guix-package + minetest-recursive-import + sort-packages)) + +;; The ContentDB API is documented at +;; . + +(define %contentdb-api + (make-parameter "https://content.minetest.net/api/")) + +(define (string-or-false x) + (and (string? x) x)) + +(define (natural-or-false x) + (and (exact-integer? x) (>= x 0) x)) + +;; Descriptions on ContentDB use carriage returns, but Guix doesn't. +(define (delete-cr text) + (string-delete #\cr text)) + + + +;;; +;;; JSON mappings +;;; + +;; Minetest package. +;; +;; API endpoint: /packages/AUTHOR/NAME/ +(define-json-mapping make-package package? + json->package + (author package-author) ; string + (creation-date package-creation-date ; string + "created_at") + (downloads package-downloads) ; integer + (forums package-forums "forums" natural-or-false) + (issue-tracker package-issue-tracker "issue_tracker") ; string + (license package-license) ; string + (long-description package-long-description "long_description") ; string + (maintainers package-maintainers ; list of strings + "maintainers" vector->list) + (media-license package-media-license "media_license") ; string + (name package-name) ; string + (provides package-provides ; list of strings + "provides" vector->list) + (release package-release) ; integer + (repository package-repository "repo" string-or-false) + (score package-score) ; flonum + (screenshots package-screenshots "screenshots" vector->list) ; list of strings + (short-description package-short-description "short_description") ; string + (state package-state) ; string + (tags package-tags "tags" vector->list) ; list of strings + (thumbnail package-thumbnail) ; string + (title package-title) ; string + (type package-type) ; string + (url package-url) ; string + (website package-website "website" string-or-false)) + +(define-json-mapping make-release release? + json->release + ;; If present, a git commit identified by its hash + (commit release-commit "commit" string-or-false) + (downloads release-downloads) ; integer + (id release-id) ; integer + (max-minetest-version release-max-minetest-version string-or-false) + (min-minetest-version release-min-minetest-version string-or-false) + (release-date release-data) ; string + (title release-title) ; string + (url release-url)) ; string + +(define-json-mapping make-dependency dependency? + json->dependency + (optional? dependency-optional? "is_optional") ; bool + (name dependency-name) ; string + (packages dependency-packages "packages" vector->list)) ; list of strings + +;; A structure returned by the /api/packages/?fmt=keys endpoint +(define-json-mapping make-package-keys package-keys? + json->package-keys + (author package-keys-author) ; string + (name package-keys-name) ; string + (type package-keys-type)) ; string + +(define (package-mod? package) + "Is the ContentDB package PACKAGE a mod?" + ;; ContentDB also has ‘games’ and ‘texture packs’. + (string=? (package-type package) "mod")) + + + +;;; +;;; Manipulating names of packages +;;; +;;; There are three kind of names: +;;; +;;; * names of guix packages, e.g. minetest-basic-materials. +;;; * names of mods on ContentDB, e.g. basic_materials +;;; * a combination of author and mod name on ContentDB, e.g. VanessaE/basic_materials +;;; + +(define (%construct-full-name author name) + (string-append author "/" name)) + +(define (package-full-name package) + "Given a object, return the corresponding AUTHOR/NAME string." + (%construct-full-name (package-author package) (package-name package))) + +(define (package-keys-full-name package) + "Given a object, return the corresponding AUTHOR/NAME string." + (%construct-full-name (package-keys-author package) + (package-keys-name package))) + +(define (contentdb->package-name author/name) + "Given the AUTHOR/NAME of a package on ContentDB, return a Guix-compliant +name for the package." + ;; The author is not included, as the names of popular mods + ;; tend to be unique. + (string-append "minetest-" (snake-case (author/name->name author/name)))) + +(define (author/name->name author/name) + "Extract NAME from the AUTHOR/NAME string, or raise an error if AUTHOR/NAME +is ill-formatted." + (match (string-split author/name #\/) + ((author name) + (when (string-null? author) + (leave + (G_ "In ~a: author names must consist of at least a single character.~%") + author/name)) + (when (string-null? name) + (leave + (G_ "In ~a: mod names must consist of at least a single character.~%") + author/name)) + name) + ((too many . components) + (leave + (G_ "In ~a: author names and mod names may not contain forward slashes.~%") + author/name)) + ((name) + (if (string-null? name) + (leave (G_ "mod names may not be empty.~%")) + (leave (G_ "The name of the author is missing in ~a.~%") + author/name))))) + +(define* (elaborate-contentdb-name name #:key (sort %default-sort-key)) + "If NAME is an AUTHOR/NAME string, return it. Otherwise, try to determine +the author and return an appropriate AUTHOR/NAME string. If that fails, +raise an exception." + (if (or (string-contains name "/") (string-null? name)) + ;; Call 'author/name->name' to verify that NAME seems reasonable + ;; and raise an appropriate exception if it isn't. + (begin + (author/name->name name) + name) + (let* ((package-keys (contentdb-query-packages name #:sort sort)) + (correctly-named + (filter (lambda (package-key) + (string=? name (package-keys-name package-key))) + package-keys))) + (match correctly-named + ((one) (package-keys-full-name one)) + ((too . many) + (warning (G_ "~a is ambigious, presuming ~a (other options include: ~a)~%") + name (package-keys-full-name too) + (map package-keys-full-name many)) + (package-keys-full-name too)) + (() + (leave (G_ "No mods with name ~a were found.~%") name)))))) + + + +;;; +;;; API endpoints +;;; + +(define contentdb-fetch + (mlambda (author/name) + "Return a record for package AUTHOR/NAME, or #f on failure." + (and=> (json-fetch + (string-append (%contentdb-api) "packages/" author/name "/")) + json->package))) + +(define (contentdb-fetch-releases author/name) + "Return a list of records for package NAME by AUTHOR, or #f +on failure." + (and=> (json-fetch (string-append (%contentdb-api) "packages/" author/name + "/releases/")) + (lambda (json) + (map json->release (vector->list json))))) + +(define (latest-release author/name) + "Return the latest source release for package NAME by AUTHOR, +or #f if this package does not exist." + (and=> (contentdb-fetch-releases author/name) + car)) + +(define (contentdb-fetch-dependencies author/name) + "Return an alist of lists of records for package NAME by AUTHOR +and possibly some other packages as well, or #f on failure." + (define url (string-append (%contentdb-api) "packages/" author/name + "/dependencies/")) + (and=> (json-fetch url) + (lambda (json) + (map (match-lambda + ((key . value) + (cons key (map json->dependency (vector->list value))))) + json)))) + +(define* (contentdb-query-packages q #:key + (type "mod") + (limit 50) + (sort %default-sort-key) + (order "desc")) + "Search ContentDB for Q (a string). Sort by SORT, in ascending order +if ORDER is \"asc\" or descending order if ORDER is \"desc\". TYPE must +be \"mod\", \"game\" or \"txp\", restricting thes search results to +respectively mods, games and texture packs. Limit to at most LIMIT +results. The return value is a list of records." + ;; XXX does Guile have something for constructing (and, when necessary, + ;; escaping) query strings? + (define url (string-append (%contentdb-api) "packages/?type=" type + "&q=" q "&fmt=keys" + "&limit=" (number->string limit) + "&order=" order + "&sort=" sort)) + (let ((json (json-fetch url))) + (if json + (map json->package-keys (vector->list json)) + (leave + (G_ "The package search API doesn't exist anymore.~%"))))) + + + +;; XXX copied from (guix import elpa) +(define* (download-git-repository url ref) + "Fetch the given REF from the Git repository at URL." + (with-store store + (latest-repository-commit store url #:ref ref))) + +;; XXX adapted from (guix scripts hash) +(define (file-hash file) + "Compute the hash of FILE." + (let-values (((port get-hash) (open-sha256-port))) + (write-file file port) + (force-output port) + (get-hash))) + +(define (make-minetest-sexp author/name version repository commit + inputs home-page synopsis + description media-license license) + "Return a S-expression for the minetest package with the given author/NAME, +VERSION, REPOSITORY, COMMIT, INPUTS, HOME-PAGE, SYNOPSIS, DESCRIPTION, +MEDIA-LICENSE and LICENSE." + `(package + (name ,(contentdb->package-name author/name)) + (version ,version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url ,repository) + (commit ,commit))) + (sha256 + (base32 + ;; The git commit is not always available. + ,(and commit + (bytevector->nix-base32-string + (file-hash + (download-git-repository repository + `(commit . ,commit))))))) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + ,@(maybe-propagated-inputs (map contentdb->package-name inputs)) + (home-page ,home-page) + (synopsis ,(delete-cr synopsis)) + (description ,(delete-cr description)) + (license ,(if (eq? media-license license) + license + `(list ,media-license ,license))) + ;; The Minetest updater (not yet in Guix; it requires not-yet-submitted + ;; patches to (guix upstream) that require some work) needs to know both + ;; the author name and mod name for efficiency. + (properties ,(list 'quasiquote `((upstream-name . ,author/name)))))) + +(define (package-home-page package) + "Guess the home page of the ContentDB package PACKAGE. + +In order of preference, try the 'website', the forum topic on the +official Minetest forum and the Git repository (if any)." + (define (topic->url-sexp topic) + ;; 'minetest-topic' is a procedure defined in (gnu packages minetest) + `(minetest-topic ,topic)) + (or (package-website package) + (and=> (package-forums package) topic->url-sexp) + (package-repository package))) + +;; If the default sort key is changed, make sure to modify 'show-help' +;; in (guix scripts import minetest) appropriately as well. +(define %default-sort-key "score") + +(define* (sort-packages packages #:key (sort %default-sort-key)) + "Sort PACKAGES by SORT, in descending order." + (define package->key + (match sort + ("score" package-score) + ("downloads" package-downloads))) + (define (greater x y) + (> (package->key x) (package->key y))) + (sort-list packages greater)) + +(define builtin-mod? + (let ((%builtin-mods + (alist->hash-table + (map (lambda (x) (cons x #t)) + '("beds" "binoculars" "boats" "bones" "bucket" "butterflies" + "carts" "creative" "default" "doors" "dungeon_loot" "dye" + "env_sounds" "farming" "fire" "fireflies" "flowers" + "game_commands" "give_initial_stuff" "map" "mtg_craftguide" + "player_api" "screwdriver" "sethome" "sfinv" "spawn" "stairs" + "tnt" "vessels" "walls" "weather" "wool" "xpanes"))))) + (lambda (mod) + "Is MOD provided by the default minetest subgame?" + (hash-ref %builtin-mods mod)))) + +(define* (important-dependencies dependencies author/name + #:key (sort %default-sort-key)) + "Return the hard dependencies of AUTHOR/NAME in the association list +DEPENDENCIES as a list of AUTHOR/NAME strings." + (define dependency-list + (assoc-ref dependencies author/name)) + (filter-map + (lambda (dependency) + (and (not (dependency-optional? dependency)) + (not (builtin-mod? (dependency-name dependency))) + ;; The dependency information contains symbolic names + ;; that can be ‘provided’ by multiple mods, so we need to choose one + ;; of the implementations. + (let* ((implementations + (par-map contentdb-fetch (dependency-packages dependency))) + ;; Fetching package information about the packages is racy: + ;; some packages might be removed from ContentDB between the + ;; construction of DEPENDENCIES and the call to + ;; 'contentdb-fetch'. So filter out #f. + ;; + ;; Filter out ‘games’ that include the requested mod -- it's + ;; the mod itself we want. + (mods (filter (lambda (p) (and=> p package-mod?)) + implementations)) + (sorted-mods (sort-packages mods #:sort sort))) + (match sorted-mods + ((package) (package-full-name package)) + ((too . many) + (warning + (G_ "The dependency ~a of ~a has multiple different implementations ~a.~%") + (dependency-name dependency) + author/name + (map package-full-name sorted-mods)) + (match sort + ("score" + (warning + (G_ "The implementation with the highest score will be choosen!~%"))) + ("downloads" + (warning + (G_ "The implementation that has been downloaded the most will be choosen!~%")))) + (package-full-name too)) + (() + (warning + (G_ "The dependency ~a of ~a does not have any implementation. It will be ignored!~%") + (dependency-name dependency) author/name) + #f))))) + dependency-list)) + +(define* (%minetest->guix-package author/name #:key (sort %default-sort-key)) + "Fetch the metadata for AUTHOR/NAME from https://content.minetest.net, and +return the 'package' S-expression corresponding to that package, or raise an +exception on failure. On success, also return the upstream dependencies as a +list of AUTHOR/NAME strings." + ;; Call 'author/name->name' to verify that AUTHOR/NAME seems reasonable. + (author/name->name author/name) + (define package (contentdb-fetch author/name)) + (unless package + (leave (G_ "no package metadata for ~a on ContentDB~%") author/name)) + (define dependencies (contentdb-fetch-dependencies author/name)) + (unless dependencies + (leave (G_ "no dependency information for ~a on ContentDB~%") author/name)) + (define release (latest-release author/name)) + (unless release + (leave (G_ "no release of ~a on ContentDB~%") author/name)) + (define important-upstream-dependencies + (important-dependencies dependencies author/name #:sort sort)) + (values (make-minetest-sexp author/name + (release-title release) ; version + (package-repository package) + (release-commit release) + important-upstream-dependencies + (package-home-page package) + (package-short-description package) + (package-long-description package) + (spdx-string->license + (package-media-license package)) + (spdx-string->license + (package-license package))) + important-upstream-dependencies)) + +(define minetest->guix-package + (memoize %minetest->guix-package)) + +(define* (minetest-recursive-import author/name #:key (sort %default-sort-key)) + (define* (minetest->guix-package* author/name #:key repo version) + (minetest->guix-package author/name #:sort sort)) + (recursive-import author/name + #:repo->guix-package minetest->guix-package* + #:guix-name contentdb->package-name)) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index f53d1ac1f4..b369a362d0 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -77,7 +77,8 @@ rather than \\n." ;;; (define importers '("gnu" "pypi" "cpan" "hackage" "stackage" "egg" "elpa" - "gem" "go" "cran" "crate" "texlive" "json" "opam")) + "gem" "go" "cran" "crate" "texlive" "json" "opam" + "minetest")) (define (resolve-importer name) (let ((module (resolve-interface diff --git a/guix/scripts/import/minetest.scm b/guix/scripts/import/minetest.scm new file mode 100644 index 0000000000..5f204d90fc --- /dev/null +++ b/guix/scripts/import/minetest.scm @@ -0,0 +1,117 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 David Thompson +;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts import minetest) + #:use-module (guix ui) + #:use-module (guix utils) + #:use-module (guix scripts) + #:use-module (guix import minetest) + #:use-module (guix import utils) + #:use-module (guix scripts import) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-37) + #:use-module (ice-9 match) + #:use-module (ice-9 format) + #:export (guix-import-minetest)) + + +;;; +;;; Command-line options. +;;; + +(define %default-options + `((sort . ,%default-sort-key))) + +(define (show-help) + (display (G_ "Usage: guix import minetest AUTHOR/NAME +Import and convert the Minetest mod NAME by AUTHOR from ContentDB.\n")) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -r, --recursive import packages recursively")) + (display (G_ " + -V, --version display version information and exit")) + (display (G_ " + --sort=KEY when choosing between multiple implementations, + choose the one with the highest value for KEY + (one of \"score\" (standard) or \"downloads\")")) + (newline) + (show-bug-report-information)) + +(define (verify-sort-order sort) + "Verify SORT can be used to sort mods by." + (unless (member sort '("score" "downloads" "reviews")) + (leave (G_ "~a: not a valid key to sort by~%") sort)) + sort) + +(define %options + ;; Specification of the command-line options. + (cons* (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix import minetest"))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) + (option '("sort") #t #f + (lambda (opt name arg result) + (alist-cons 'sort (verify-sort-order arg) result))) + %standard-import-options)) + + +;;; +;;; Entry point. +;;; + +(define (guix-import-minetest . args) + (define (parse-options) + ;; Return the alist of option values. + (args-fold* args %options + (lambda (opt name arg result) + (leave (G_ "~A: unrecognized option~%") name)) + (lambda (arg result) + (alist-cons 'argument arg result)) + %default-options)) + + (let* ((opts (parse-options)) + (args (filter-map (match-lambda + (('argument . value) + value) + (_ #f)) + (reverse opts)))) + (match args + ((name) + (with-error-handling + (let* ((sort (assoc-ref opts 'sort)) + (author/name (elaborate-contentdb-name name #:sort sort))) + (if (assoc-ref opts 'recursive) + ;; Recursive import + (filter-map package->definition + (minetest-recursive-import author/name #:sort sort)) + ;; Single import + (minetest->guix-package author/name #:sort sort))))) + (() + (leave (G_ "too few arguments~%"))) + ((many ...) + (leave (G_ "too many arguments~%")))))) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index a3bced1a8f..f25a7b4802 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -60,6 +60,7 @@ guix/scripts/git.scm guix/scripts/git/authenticate.scm guix/scripts/hash.scm guix/scripts/import.scm +guix/scripts/import/contentdb.scm guix/scripts/import/cran.scm guix/scripts/import/elpa.scm guix/scripts/pull.scm diff --git a/tests/minetest.scm b/tests/minetest.scm new file mode 100644 index 0000000000..6ae476fe5f --- /dev/null +++ b/tests/minetest.scm @@ -0,0 +1,355 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxime Devos +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-minetest) + #:use-module (guix memoization) + #:use-module (guix import minetest) + #:use-module (guix import utils) + #:use-module (guix tests) + #:use-module (json) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-64)) + + +;; Some procedures for populating a ‘fake’ ContentDB server. + +(define* (make-package-sexp #:key + (guix-name "minetest-foo") + (home-page "https://example.org/foo") + (repo "https://example.org/foo.git") + (synopsis "synopsis") + (guix-description "description") + (guix-license + '(list license:cc-by-sa4.0 license:lgpl3+)) + (inputs '()) + (upstream-name "Author/foo") + #:allow-other-keys) + `(package + (name ,guix-name) + ;; This is not a proper version number but ContentDB does not include + ;; version numbers. + (version "2021-07-25") + (source + (origin + (method git-fetch) + (uri (git-reference + (url ,(and (not (eq? repo 'null)) repo)) + (commit #f))) + (sha256 + (base32 #f)) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + ,@(maybe-propagated-inputs inputs) + (home-page ,home-page) + (synopsis ,synopsis) + (description ,guix-description) + (license ,guix-license) + (properties + ,(list 'quasiquote + `((upstream-name . ,upstream-name)))))) + +(define* (make-package-json #:key + (author "Author") + (name "foo") + (media-license "CC-BY-SA-4.0") + (license "LGPL-3.0-or-later") + (short-description "synopsis") + (long-description "description") + (repo "https://example.org/foo.git") + (website "https://example.org/foo") + (forums 321) + (score 987.654) + (downloads 123) + (type "mod") + #:allow-other-keys) + `(("author" . ,author) + ("content_warnings" . #()) + ("created_at" . "2018-05-23T19:58:07.422108") + ("downloads" . ,downloads) + ("forums" . ,forums) + ("issue_tracker" . "https://example.org/foo/issues") + ("license" . ,license) + ("long_description" . ,long-description) + ("maintainers" . #("maintainer")) + ("media_license" . ,media-license) + ("name" . ,name) + ("provides" . #("stuff")) + ("release" . 456) + ("repo" . ,repo) + ("score" . ,score) + ("screenshots" . #()) + ("short_description" . ,short-description) + ("state" . "APPROVED") + ("tags" . #("some" "tags")) + ("thumbnail" . null) + ("title" . "The name") + ("type" . ,type) + ("url" . ,(string-append "https://content.minetest.net/packages/" + author "/" name "/download/")) + ("website" . ,website))) + +(define* (make-releases-json #:key (commit #f) (title "") #:allow-other-keys) + `#((("commit" . ,commit) + ("downloads" . 469) + ("id" . 8614) + ("max_minetest_version" . null) + ("min_minetest_version" . null) + ("release_date" . "2021-07-25T01:10:23.207584") + ("title" . "2021-07-25")))) + +(define* (make-dependencies-json #:key (author "Author") + (name "foo") + (requirements '(("default" #f ()))) + #:allow-other-keys) + `((,(string-append author "/" name) + . ,(list->vector + (map (match-lambda + ((symbolic-name optional? implementations) + `(("is_optional" . ,optional?) + ("name" . ,symbolic-name) + ("packages" . ,(list->vector implementations))))) + requirements))) + ("something/else" . #()))) + +(define* (make-packages-keys-json #:key (author "Author") + (name "Name") + (type "mod")) + `(("author" . ,author) + ("name" . ,name) + ("type" . ,type))) + +(define (call-with-packages thunk . argument-lists) + ;; Don't reuse results from previous tests. + (invalidate-memoization! contentdb-fetch) + (invalidate-memoization! minetest->guix-package) + (define (scm->json-port scm) + (open-input-string (scm->json-string scm))) + (define (handle-package url requested-author requested-name . rest) + (define relevant-argument-list + (any (lambda (argument-list) + (apply (lambda* (#:key (author "Author") (name "foo") + #:allow-other-keys) + (and (equal? requested-author author) + (equal? requested-name name) + argument-list)) + argument-list)) + argument-lists)) + (when (not relevant-argument-list) + (error "the package ~a/~a should be irrelevant, but ~a is fetched" + requested-author requested-name url)) + (scm->json-port + (apply (match rest + (("") make-package-json) + (("dependencies" "") make-dependencies-json) + (("releases" "") make-releases-json) + (_ (error "TODO ~a" rest))) + relevant-argument-list))) + (define (handle-mod-search sort) + ;; Produce search results, sorted by SORT in descending order. + (define arguments->key + (match sort + ("score" (lambda* (#:key (score 987.654) #:allow-other-keys) + score)) + ("downloads" (lambda* (#:key (downloads 123) #:allow-other-keys) + downloads)))) + (define argument-list->key (cut apply arguments->key <>)) + (define (greater x y) + (> (argument-list->key x) (argument-list->key y))) + (define sorted-argument-lists (sort-list argument-lists greater)) + (define* (arguments->json #:key (author "Author") (name "Foo") (type "mod") + #:allow-other-keys) + (and (string=? type "mod") + `(("author" . ,author) + ("name" . ,name) + ("type" . ,type)))) + (define argument-list->json (cut apply arguments->json <>)) + (scm->json-port + (list->vector (filter-map argument-list->json sorted-argument-lists)))) + (mock ((guix http-client) http-fetch + (lambda* (url #:key headers) + (unless (string-prefix? "mock://api/packages/" url) + (error "the URL ~a should not be used" url)) + (define resource + (substring url (string-length "mock://api/packages/"))) + (define components (string-split resource #\/)) + (match components + ((author name . rest) + (apply handle-package url author name rest)) + (((? (cut string-prefix? "?type=mod&q=" <>) query)) + (handle-mod-search + (cond ((string-contains query "sort=score") "score") + ((string-contains query "sort=downloads") "downloads") + (#t (error "search query ~a has unknown sort key" + query))))) + (_ + (error "the URL ~a should have an author and name component" + url))))) + (parameterize ((%contentdb-api "mock://api/")) + (thunk)))) + +(define* (minetest->guix-package* #:key (author "Author") (name "foo") + (sort %default-sort-key) + #:allow-other-keys) + (minetest->guix-package (string-append author "/" name) #:sort sort)) + +(define (imported-package-sexp* primary-arguments . secondary-arguments) + "Ask the importer to import a package specified by PRIMARY-ARGUMENTS, +during a dynamic where that package and the packages specified by +SECONDARY-ARGUMENTS are available on ContentDB." + (apply call-with-packages + (lambda () + ;; The memoization cache is reset by call-with-packages + (apply minetest->guix-package* primary-arguments)) + primary-arguments + secondary-arguments)) + +(define (imported-package-sexp . extra-arguments) + "Ask the importer to import a package specified by EXTRA-ARGUMENTS, +during a dynamic extent where that package is available on ContentDB." + (imported-package-sexp* extra-arguments)) + +(define-syntax-rule (test-package test-case . extra-arguments) + (test-equal test-case + (make-package-sexp . extra-arguments) + (imported-package-sexp . extra-arguments))) + +(define-syntax-rule (test-package* test-case primary-arguments extra-arguments + ...) + (test-equal test-case + (apply make-package-sexp primary-arguments) + (imported-package-sexp* primary-arguments extra-arguments ...))) + +(test-begin "minetest") + + +;; Package names +(test-package "minetest->guix-package") +(test-package "minetest->guix-package, _ → - in package name" + #:name "foo_bar" + #:guix-name "minetest-foo-bar" + #:upstream-name "Author/foo_bar") + +(test-equal "elaborate names, unambigious" + "Jeija/mesecons" + (call-with-packages + (cut elaborate-contentdb-name "mesecons") + '(#:name "mesecons" #:author "Jeija") + '(#:name "something" #:author "else"))) + +(test-equal "elaborate name, ambigious (highest score)" + "Jeija/mesecons" + (call-with-packages + ;; #:sort "score" is the default + (cut elaborate-contentdb-name "mesecons") + '(#:name "mesecons" #:author "Jeijc" #:score 777) + '(#:name "mesecons" #:author "Jeijb" #:score 888) + '(#:name "mesecons" #:author "Jeija" #:score 999))) + + +(test-equal "elaborate name, ambigious (most downloads)" + "Jeija/mesecons" + (call-with-packages + (cut elaborate-contentdb-name "mesecons" #:sort "downloads") + '(#:name "mesecons" #:author "Jeijc" #:downloads 777) + '(#:name "mesecons" #:author "Jeijb" #:downloads 888) + '(#:name "mesecons" #:author "Jeija" #:downloads 999))) + + +;; Determining the home page +(test-package "minetest->guix-package, website is used as home page" + #:home-page "web://site" + #:website "web://site") +(test-package "minetest->guix-package, if absent, the forum is used" + #:home-page '(minetest-topic 628) + #:forums 628 + #:website 'null) +(test-package "minetest->guix-package, if absent, the git repo is used" + #:home-page "https://github.com/minetest-mods/mesecons" + #:forums 'null + #:website 'null + #:repo "https://github.com/minetest-mods/mesecons") +(test-package "minetest->guix-package, all home page information absent" + #:home-page #f + #:forums 'null + #:website 'null + #:repo 'null) + + + +;; Dependencies +(test-package* "minetest->guix-package, unambigious dependency" + (list #:requirements '(("mesecons" #f + ("Jeija/mesecons" + "some-modpack/containing-mese"))) + #:inputs '("minetest-mesecons")) + (list #:author "Jeija" #:name "mesecons") + (list #:author "some-modpack" #:name "containing-mese" #:type "modpack")) + +(test-package* "minetest->guix-package, ambigious dependency (highest score)" + (list #:name "frobnicate" + #:guix-name "minetest-frobnicate" + #:upstream-name "Author/frobnicate" + #:requirements '(("frob" #f + ("Author/foo" "Author/bar"))) + ;; #:sort "score" is the default + #:inputs '("minetest-bar")) + (list #:author "Author" #:name "foo" #:score 0) + (list #:author "Author" #:name "bar" #:score 9999)) + +(test-package* "minetest->guix-package, ambigious dependency (most downloads)" + (list #:name "frobnicate" + #:guix-name "minetest-frobnicate" + #:upstream-name "Author/frobnicate" + #:requirements '(("frob" #f + ("Author/foo" "Author/bar"))) + #:inputs '("minetest-bar") + #:sort "downloads") + (list #:author "Author" #:name "foo" #:downloads 0) + (list #:author "Author" #:name "bar" #:downloads 9999)) + +(test-package "minetest->guix-package, optional dependency" + #:requirements '(("mesecons" #t + ("Jeija/mesecons" + "some-modpack/containing-mese"))) + #:inputs '()) + + +;; License +(test-package "minetest->guix-package, identical licenses" + #:guix-license 'license:lgpl3+ + #:license "LGPL-3.0-or-later" + #:media-license "LGPL-3.0-or-later") + +;; Sorting +(let* ((make-package + (lambda arguments + (json->package (apply make-package-json arguments)))) + (x (make-package #:score 0)) + (y (make-package #:score 1)) + (z (make-package #:score 2))) + (test-equal "sort-packages, already sorted" + (list z y x) + (sort-packages (list z y x))) + (test-equal "sort-packages, reverse" + (list z y x) + (sort-packages (list x y z)))) + +(test-end "minetest") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:22 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:22 +0000 Received: from localhost ([127.0.0.1]:60393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMN-0007Z5-JP for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:22 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM9-0007U7-2f for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:53 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7sm5; Tue, 10 Aug 2021 17:07:52 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 12/20] gnu: Add minetest-ethereal. Date: Tue, 10 Aug 2021 17:07:26 +0200 Message-Id: <20210810150734.11778-13-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608072; bh=vqKXaCnEcSi8A79WLDxcHm7rDmKbBGo6JElyext47pU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=QBGxK3LIVl+a7Nm1iJM3I+px9IpbAJriGDwD+MqqgvuQXCzzs7hb552v/mimIaH39 QXawu+J5r6AMK+fDvwGv+BoCnHC5aA72ybBK2Tqv/EcCZ3EOCmn7XNNyhIAdu8d7I3 /fqVPPIY5vehSYur6scNsWANukWSLvv4dBWwq5p9MVFMfn/xtIDDKzO9pFlnuybHtf 0Pu3Ad67nXXEwsQg/wLpufCw7nutTpmMEiO941QVnLJj5aSM2Swb7qGQyV1b5SZvJS ELmn0sC+MtF+kRdZF8Y3d2gZhtN4OAiaSvzTs/Pc4JoG02PWYqzMRQCKEAaAB3G+YW vfrSDPTqBvqEw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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 (-) * gnu/packages/minetest.scm (minetest-ethereal): New variable. --- gnu/packages/minetest.scm | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 4c542c6061..a1aa90276d 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -78,6 +78,35 @@ coloured and cut wood shapes are provided as well.") (list license:cc-by-sa4.0 license:lgpl3)) (properties `((upstream-name . "VanessaE/coloredwood"))))) +(define-public minetest-ethereal + ;; ContentDB release 2021-07-28 is slightly ahead of the + ;; initial version 1.29 -- i.e., some released changes have been + ;; made to version 1.29 without a corresponding version bump. + (let ((commit "7670c1da9274901f57f6682384af2b3bae005a86") + (revision "0")) + (package + (name "minetest-ethereal") + (version (git-version "1.29" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/ethereal") + (commit commit))) + (sha256 + (base32 "1hal8bq4fydsip7s8rqz4vlaaqy9rhzxmryd0j2qnqm9286yjgkk")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 14638)) + (synopsis "The Ethereal mod adds many new biomes to Minetest") + (description + "The Ethereal Minetest mod uses the v7 map generator to add many new +biomes to the world. It adds new trees, plants, food items, tweaks and some +special items, intending to make an interesting adventure.") + ;; CC0: some textures + (license (list license:cc0 license:expat)) + (properties `((upstream-name . "TenPlus1/ethereal")))))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") @@ -157,8 +186,7 @@ breakers simulate a player punching a node.") (url "https://gitlab.com/VanessaE/unifieddyes") (commit "ff3b2d30fa0df5c7181fdd401b989de6271c3bb3"))) (sha256 - (base32 - "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) + (base32 "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv")) (file-name (git-file-name name version)))) (build-system minetest-mod-build-system) (propagated-inputs -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:23 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:23 +0000 Received: from localhost ([127.0.0.1]:60400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMc-0007aG-P8 for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:23 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:48096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM9-0007VT-Gc for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:54 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7tm9; Tue, 10 Aug 2021 17:07:53 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 13/20] gnu: Add minetest-technic. Date: Tue, 10 Aug 2021 17:07:27 +0200 Message-Id: <20210810150734.11778-14-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608073; bh=VnpgLH2cMYKby+5qLB6HsMmqNKjA8525UQvhCCxFRFY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=PIyKXAVn9ePAy65j7nxqUwsNsgdPjM9m1Hc2X64JoYA8bM+cygpo7xiR+zJzpvKAh ibXS3QdPY0CiS74xWbaxk4r0WuAKFwmHIeSs25JsPKD5J5pRmV5n9MdGhTwiOX4IWm yO9q5lk6zhoqim7HHR5T48zzJYobBBEwNGsasSmPNCTEYakGx2w7H/OsSRXW5xPGrT how4OpDNu/3LLUVwnzjCBWfr1eA03ULS4uVIm0WOTb/x542SW/8ad1jYOOONnCshoN yVrUYfSA2I3oUugpulW1xNO6Zi/e1Ztec5428FWwqwLwnutAqBNc712mFgKxabPTJv MiSwPQN0Kq8LQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-technic): New variable. --- gnu/packages/minetest.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index a1aa90276d..bb914f32b4 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -174,6 +174,41 @@ breakers simulate a player punching a node.") (license (list license:cc-by-sa4.0 license:lgpl3)) (properties `((upstream-name . "VanessaE/pipeworks"))))) +(define-public minetest-technic + (package + (name "minetest-technic") + ;; Upstream doesn't keep version numbers, so use the release + ;; date on ContentDB instead. + (version "2021-04-15") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/technic") + (commit "1c219487d3f4dd03c01ff9aa1f298c7c18c7e189"))) + (sha256 + (base32 "1k9hdgzp7jnhsk6rgrlrv1lr5xrmh8ln4wv6r25v6f0fwbyj57sf")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-pipeworks" ,minetest-pipeworks) + ("minetest-basic-materials" ,minetest-basic-materials))) + (home-page (minetest-topic 2538)) + (synopsis "Machinery and automation for Minetest") + (description + "This Minetest mod adds machinery and automation to Minetest. +It adds various ores that can be processed for constructing various +machinery, such as power generators, force field emitters, quarries +and a workshop for repairing tools. Most machines are electrically +powered.") + ;; CC BY-SA 3.0: some texture + ;; WTFPL: some textures + ;; CC BY-SA3.0: some textures + ;; CC BY-SA4.0: some sounds + (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:cc-by-sa4.0 + license:wtfpl2)) + (properties `((upstream-name . "RealBadAngel/technic"))))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:23 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:23 +0000 Received: from localhost ([127.0.0.1]:60402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMd-0007aO-3m for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:23 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTM9-0007U9-QD for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:54 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7tmG; Tue, 10 Aug 2021 17:07:53 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 14/20] gnu: Add minetest-throwing. Date: Tue, 10 Aug 2021 17:07:28 +0200 Message-Id: <20210810150734.11778-15-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608073; bh=II62XYW2kgcwDGTfdCmT+dqbjWKerYEi7bPYEk87oG8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=oZr8uZEmbzQzaCFxgOnxpyka0dKOVqMTlGf0NsT1IK0sudIZclhDI/mc02PQVaiU/ leiqK7Yx20eapY/fQX8EyUaoFM6sv5v0cIBzXP4il3P5nqbh70iDPqfGYzisDJHeVQ 6HTDZk82xGSboNqjIJ+i+R0CZ7Ki3fLD/Jt58WagVJ5tBVoxp+uG/GW59wTflkaQQm Z5LNbWiShaLo035pyYCEls3cKuzVzj2xGM2JZY5FWz7Tj12zppfMD2ZQMgOQaPmDUz dFYgmg2erMV2msFiRisCazmc7F1Cg1KDjv1GpQ5dHp6HlP1cHjlsyu5TDDxeBtpEHB bxHNUCZPi1S/A== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-throwing): New variable. --- gnu/packages/minetest.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index bb914f32b4..4566d94489 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -209,6 +209,33 @@ powered.") license:wtfpl2)) (properties `((upstream-name . "RealBadAngel/technic"))))) +(define-public minetest-throwing + ;; The latest release on ContentDB is ahead of the latet + ;; tagged commit. + (let ((commit "31f0cf5f868673dc82f24ddc432b45c9cd282d27") + (revision "0")) + (package + (name "minetest-throwing") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/throwing") + (commit commit))) + (sha256 + (base32 "1s5kkr6rxxv2dhbbjzv62gw1s617hnpjavw1v9fv11v3mgigdfjb")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 16365)) + (synopsis "API for throwing things in Minetest") + (description + "This Minetest mod provides an API for registering throwable things and +throwing things like arrows. However, this mod does not provide an actual +arrow and bow, but @code{minetest-throwing-arrows} does.") + (license license:mpl2.0) + (properties `((upstream-name . "Palige/throwing")))))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:23 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:24 +0000 Received: from localhost ([127.0.0.1]:60404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMd-0007aV-Ec for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:23 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMA-0007U8-5z for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:54 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7tmN; Tue, 10 Aug 2021 17:07:53 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 15/20] gnu: Add minetest-throwing-arrows. Date: Tue, 10 Aug 2021 17:07:29 +0200 Message-Id: <20210810150734.11778-16-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608073; bh=NCWtx/Oaq0DKvCGbuoVuxU6W+EHfJVNLDsxF0n6BQC4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=JVJM2EZbI7tvkI64EQuBYEQXg6t8+zKG2Jh8wLR8kRWt9e5i4Ryk5gmUQvK3P79Rl nSUfJDP5hp5XPqRSivlRD/Amybqf+K1qZ/aL3CtI7ytjUCZP2riudNEzuPPpJyDmaK hs6P2XkLJP79f72P2Km+6XqyJ+qkH6EeQrBrmhT6KxuZ9XEVRxxOdLXR7UGpyrNOK7 7vO+RSm9hmK3mN/5A8rAiLTUSEfwqo0ar2LVH9Amv7f7D+2n7ej9fV5n2LBpUDskQ/ T+NBY57gfxaFIMiKmT7vpHzbigABFeIuV0WRsDRp3aFOOL16dL+XNBqQGt+VtDtqbS chzTAQGdLOoUg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-throwing-arrows): New variable. --- gnu/packages/minetest.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 4566d94489..1f785098f9 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -236,6 +236,36 @@ arrow and bow, but @code{minetest-throwing-arrows} does.") (license license:mpl2.0) (properties `((upstream-name . "Palige/throwing")))))) +(define-public minetest-throwing-arrows + ;; There is only one tagged commit (version 1.1), + ;; there are no releases on ContentDB and the latest + ;; commit has a compatibility fix for Minetest 5.4.0-dev. + (let ((commit "059cc897af0aebfbd2c54ac5588f2b842f44f159") + (revision "0")) + (package + (name "minetest-throwing-arrows") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/throwing_arrows") + (commit commit))) + (sha256 + (base32 "0m2pmccpfxn878zd00pmrpga2h6gknz4f3qprck0fq94mksmwqs3")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-throwing" ,minetest-throwing))) + (home-page (minetest-topic 16365)) + (synopsis "Arrows and bows for Minetest") + (description + ;; TRANSLATORS: "throwing" is the name of a Minetest mod and should + ;; not be translated. + "This mod adds arrows and bows to Minetest. It is a compatible +replacement for the throwing mod by PilzAdam that uses the throwing API.") + (license license:mpl2.0)))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:24 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:24 +0000 Received: from localhost ([127.0.0.1]:60406 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMd-0007ac-Pn for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:24 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMA-0007U7-GE for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:54 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7umS; Tue, 10 Aug 2021 17:07:54 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 16/20] gnu: Add minetest-unified-inventory. Date: Tue, 10 Aug 2021 17:07:30 +0200 Message-Id: <20210810150734.11778-17-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608074; bh=EHQnvYNBECCcDqyqnKF7XbFlQrPAbj+RHRrdiekb26c=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=fDRuTea9Cmu5ddXmWDwfTcOHftaajzUBLN31Z+5qdqr0wsIBuTDXCcjMu5/7235Sl LoN0P4C/5oBVc9XEXwx8AHJXBDGJB0Y3W+pUwHgG1XZ46adehTomq0UwDd1dLJCfis /Vt2TExpz+FYmhr2xoSS9n4ZlKgC+X5Dgu+9l9hocTeCyJsXqIS3tt2q9t0/nBKeE9 /2YtuTQrMJ+keXmVeFm/unct+VYTjF2ETKSaDJm3vigljM2YRzd2ultXMjKFnDHt+b NkNNLWgyL/DRLGRc4ciRICb5gQT2yNOxtR8cohuA8uISBR1ndSY+OdfCmRmyjVyhyb 8nGgJcsiHArJw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-unified-inventory): New variable. --- gnu/packages/minetest.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 1f785098f9..d6ff6c9e47 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -293,3 +293,38 @@ Minetest game, this mod has become an extension of the default mod an a library for general colour handling.") (license license:gpl2+) (properties `((upstream-name . "VanessaE/unifieddyes"))))) + +(define-public minetest-unified-inventory + (package + (name "minetest-unified-inventory") + ;; Upstream doesn't keep version numbers, so use the release title + ;; on ContentDB instead. + (version "2021-03-25-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minetest-mods/unified_inventory") + (commit "c044f5e3b08f0c68ab028d757b2fa63d9a1b0370"))) + (sha256 + (base32 "198g945gzbfl0kps46gwjw0c601l3b3wvn4c7dw8manskri1jr4g")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 12767)) + (synopsis "Replace the default inventory in Minetest and add a crafting guide") + (description + "The Unified Inventory Minetest mod relaces the default survival an +creative inventory. It includes a node, item and tool browser, a crafting +guide, a trash and refill slot for creative mode, bags and waypoints for keeping +track of important locations.") + ;; CC-BY: some textures and icons + ;; CC-BY-SA: some textures and icons + ;; LGLPL2.1+: code and some textures + ;; GPL2+: some textures + ;; GPL3: bags.lua + ;; GFDL: some icons + ;; public domain, CC0: some icons + (license (list license:gpl3 license:gpl2+ license:lgpl2.1+ license:cc-by3.0 + license:cc-by4.0 license:cc-by-sa3.0 license:public-domain + license:cc0 license:fdl1.2+)) + (properties `((upstream-name . "RealBadAngel/unified_inventory"))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:32 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:32 +0000 Received: from localhost ([127.0.0.1]:60408 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMe-0007ak-5K for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:31 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:48096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMA-0007VT-RX for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:55 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7umV; Tue, 10 Aug 2021 17:07:54 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 17/20] gnu: Add minetest-worldedit. Date: Tue, 10 Aug 2021 17:07:31 +0200 Message-Id: <20210810150734.11778-18-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608074; bh=FjKR/mFakeUT7u5/uUvb3oyM96h3kUoOC+QNbpI+LrQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=ZmHLkhGet3wui4cC+ilDcohSd6wHelR26I962q0cgphO35H9U3z4bitX7ax/9zAff /uzyDnW9ii/MuqnIBIgHJnysIuvI+w9seqRMcEQ7Y47WbymSpt0ors9ZSJ2MCKwAMq z26o7M9F42tGHvIGUis6CNGY6cfS7JuUS3yAVYRpZgEYtxX1vwIHtBclc90sPFkUC5 7H6JL7Gfp74orau0OAtEunk0v/aiydvaMdjiqb79cErR8SuzKYTSOi8nvrOusXZqhh prA5Aq8A6oFRsiZqo6hl25UllPsXcdnjcLTiFnmP4DCBL2QKrsMrjqrNbnPUUsJ4c3 rDxBaLWol2K7w== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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 (-) * gnu/packages/minetest.scm (minetest-worldedit): New variable. --- gnu/packages/minetest.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index d6ff6c9e47..700a9b2872 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -266,6 +266,29 @@ arrow and bow, but @code{minetest-throwing-arrows} does.") replacement for the throwing mod by PilzAdam that uses the throwing API.") (license license:mpl2.0)))) +(define-public minetest-worldedit + (package + (name "minetest-worldedit") + (version "1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Uberi/Minetest-WorldEdit") + (commit "2f26fb76459c587868199160b9d7b5d6d7852e50"))) + (sha256 + (base32 "0lsvihkixi2na1b0vmml9vwgs0g24hqqshl73ffhkzh6jsq4cagq")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 572)) + (synopsis "In-game world editor for Minetest") + (description + "WorldEdit is a mod for Minetest. It allows for creating various +geometric shapes and copying regions. It can also export and import regions +to and from the file system.") + (license license:agpl3) + (properties `((upstream-name . "sfan5/worldedit"))))) + (define-public minetest-unifieddyes (package (name "minetest-unifieddyes") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:32 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:32 +0000 Received: from localhost ([127.0.0.1]:60410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMm-0007b2-0m for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:32 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMB-0007U9-7L for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:55 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7uma; Tue, 10 Aug 2021 17:07:54 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 18/20] gnu: Add minetest-mobs. Date: Tue, 10 Aug 2021 17:07:32 +0200 Message-Id: <20210810150734.11778-19-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608075; bh=KUukz2acSf5s9q/kJBmUP76ZLS9yDivmc1DjPU4bBUk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=jReWZqxQY+bOK/VWj+Ic6Xkmx23GvA7W3BDF+8QWAILA9vm2jjvEZYlRvgcjjPHf4 rO6taEffYyWPLbl7nKnrYVbQJhxVoWyklqjb/zOdOtkWP+xg7XuADpGGuwY6vhtN+r hyqw7X6uh/NUY6Z+FjZ9md11HmGdPxZ9Egw5MrXo5Bkh9tmRLwI+UpRbzG5hRm9XHl Pj9zpcuc98bX+JceIN9nPkgbvDJfvN6QKtJZJZxaGsCy8bN7ODvgzpb4X0djysGLZg y4ENU//qV2KZQEkhDM1It4Dhg2olh101LHOQ4KVQXbTX+6NkWCe1Y+mwnqUafqBCh7 nKUX6Lzp0Ompg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mobs): New variable. --- gnu/packages/minetest.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 700a9b2872..d36ca06ef5 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -143,6 +143,35 @@ with different rules and mechanics.") (license (list license:lgpl3+ license:cc-by-sa3.0)) (properties `((upstream-name . "Jeija/mesecons")))))) +(define-public minetest-mobs + (package + (name "minetest-mobs") + ;; Upstream does not tag release, so use the ContentDB release + ;; title instead. + (version "2021-07-22") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/mobs_redo") + (commit "9f46182bb4b1a390f9a140bc2b443f3cda702332"))) + (sha256 + (base32 "026kqjis4lipgskjivb3jh9ris3iz80vy2q1jvgxhxmfghjjzp4j")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (home-page (minetest-topic 9917)) + (synopsis "Mob library for Minetest mods, for animals, monsters etc.") + (description + "This Minetest mod provides an API for adding mods (moving entities +like animals and monsters), but does not include any mobs itself. To actually +add some mobs, a mod like e.g. @code{mobs_animal} provided by the +@code{minetest-mobs-animal} package needs to be enabled.") + ;; CC0: mob_swing.ogg + ;; CC-BY 3.0: mob_spell.ogg + ;; Expat: everything else + (license (list license:expat license:cc0 license:cc-by3.0)) + (properties `((upstream-name . "TenPlus1/mobs"))))) + (define-public minetest-pipeworks (package (name "minetest-pipeworks") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:32 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:32 +0000 Received: from localhost ([127.0.0.1]:60412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMm-0007b9-Bz for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:32 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMB-0007U8-HN for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:55 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7vmf; Tue, 10 Aug 2021 17:07:55 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 19/20] gnu: Add minetest-mobs-animal. Date: Tue, 10 Aug 2021 17:07:33 +0200 Message-Id: <20210810150734.11778-20-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608075; bh=y18YvdkUb87lpGRq9VMU+UckG15rQgUmyMFNjiL4sC0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=GDf5Bm+LmW6kwfLBPZyDDpOeee7SiAQSmtxz7WYpIqsQ2u51DrPUF+E2R0Ed8AGEC eU7P9dL/k5WndgXFaXM6KcmWl9cLZ9LfZIpTdjc2+PufRo5KO9SY1AWMr11UiMu1Jo QNCo2dXMfwfYdS2j9lJ2/jEPYv+U4kt1XNG+4JjC7hc6sdTqhCQproxoY6aIOIVERA LkTrTYHlMHGTf/AZPusWj28Chy4cmNu6J2MwjQGns76h6N7DH+bUoHcx26E/b1TBlo KcFdSQYEGedCQnAZ6jt6EKZd6kZuEVWXtWzR+AS+0iBMQ1bvy4XhaJuoaZejp8XgQt DTDlJPwNMwnZw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-mobs-animal): New variable. --- gnu/packages/minetest.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index d36ca06ef5..3cd14a6df8 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -172,6 +172,33 @@ add some mobs, a mod like e.g. @code{mobs_animal} provided by the (license (list license:expat license:cc0 license:cc-by3.0)) (properties `((upstream-name . "TenPlus1/mobs"))))) +(define-public minetest-mobs-animal + (package + (name "minetest-mobs-animal") + ;; Upstream does not use version numbers, so use the release title + ;; from ContentDB instead; + (version "2021-07-24") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/TenPlus1/mobs_animal") + (commit "c2fa3e300c79c7dd80b6fe91a8b5082bb6b3d934"))) + (sha256 + (base32 "1j719f079ia9vjxrmjrcj8s6jvaz5kgs1r4dh66z8ql6s70kx7vh")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-mobs" ,minetest-mobs))) + (home-page "https://notabug.org/TenPlus1/mobs_animal") + (synopsis "Add animals to Minetest") + (description + "This Minetest mod adds various animals to Minetest, such as bees, +bunnies, chickens, cows, kittens, rats, sheep, warthogs, penguins and pandas.") + ;; CC0: some textures and sounds + (license (list license:cc0 license:expat)) + (properties `((upstream-name . "TenPlus1/mobs_animal"))))) + (define-public minetest-pipeworks (package (name "minetest-pipeworks") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 11:08:33 2021 Received: (at 49828) by debbugs.gnu.org; 10 Aug 2021 15:08:33 +0000 Received: from localhost ([127.0.0.1]:60414 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMm-0007bG-NW for submit@debbugs.gnu.org; Tue, 10 Aug 2021 11:08:33 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:47576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDTMB-0007U7-Pf for 49828@debbugs.gnu.org; Tue, 10 Aug 2021 11:07:56 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id fr7a2500W0mfAB406r7vmk; Tue, 10 Aug 2021 17:07:55 +0200 From: Maxime Devos To: 49828@debbugs.gnu.org Subject: [PATCH v3 20/20] gnu: Add minetest-homedecor-modpack. Date: Tue, 10 Aug 2021 17:07:34 +0200 Message-Id: <20210810150734.11778-21-maximedevos@telenet.be> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810150734.11778-1-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1628608075; bh=vAdky9ZZbHd5mPCJ2x0Z9z9HhWLzp7W31/WwHX8/qGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=qSmHS6HN5UU+TbEJfu1XTvCysSQos/FhCR8ktuVH/JsYrOwgox3JE/RXmmbgwlp7t ERTmeSYPMiqnaQcgmDYdsdgFbUw8hYwQtltd01Q5XRt5oTjVuK5M4c8PJZGZijQWtU nBLkeQymaZlO47LxMW6WDpv0AJRY9eaxaUUbin8U++MW8Ea517R4kgWrVUY19gHWpx AoFAoVe2QUV9nCXnf/OqDsXZpssZIhjZHGvkkvBMsMJOAftGprrHFtqP40nx7H+P7z 4aBTSM3Oyz7g0mwIt/5pmmuMuKjtqidVcSxjTVa9pRI5Cc+9VmSe8De1FN4iJR8sjY +vurIYFSn05Lg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49828 Cc: Leo Prikler , Maxime Devos 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.7 (-) * gnu/packages/minetest.scm (minetest-homedecor-modpack): New variable. --- gnu/packages/minetest.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm index 3cd14a6df8..3bd640da45 100644 --- a/gnu/packages/minetest.scm +++ b/gnu/packages/minetest.scm @@ -107,6 +107,37 @@ special items, intending to make an interesting adventure.") (license (list license:cc0 license:expat)) (properties `((upstream-name . "TenPlus1/ethereal")))))) +(define-public minetest-homedecor-modpack + (package + (name "minetest-homedecor-modpack") + ;; Upstream doesn't tag releases, so use the release title from + ;; ContentDB as version. + (version "2021-03-27-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/VanessaE/homedecor_modpack") + (commit "9ffe2b7d691133e1a067546574fbe7364fd02f32"))) + (sha256 + (base32 "1lfajqvc2adf9hqskghky4arccqzpjw4i9a01hv4qcckvivm04ag")) + (file-name (git-file-name name version)))) + (build-system minetest-mod-build-system) + (propagated-inputs + `(("minetest-basic-materials" ,minetest-basic-materials) + ("minetest-unifieddyes" ,minetest-unifieddyes))) + (home-page (minetest-topic 2041)) + (synopsis "Home decor mod for Minetest") + (description + ;; TRANSLATORS: ‘homedecor’ is the name is the name of a Minetest mod + ;; and should not be translated. + "The homedecor Minetest mod provides a large seleection of items that +might be found inside and around homes, such as sofas, chairs, tables, fences +and a variety of other stuff.") + (license + (list license:cc-by-sa4.0 license:lgpl3)) + (properties `((upstream-name . "VanessaE/homedecor_modpack"))))) + (define-public minetest-mesecons ;; The release on ContentDB does not have its own version number. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 20 07:46:19 2021 Received: (at 49828-done) by debbugs.gnu.org; 20 Aug 2021 11:46:19 +0000 Received: from localhost ([127.0.0.1]:33073 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mH2yV-0000m4-Ek for submit@debbugs.gnu.org; Fri, 20 Aug 2021 07:46:19 -0400 Received: from mailrelay.tugraz.at ([129.27.2.202]:29048) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mH2yQ-0000lr-Ke for 49828-done@debbugs.gnu.org; Fri, 20 Aug 2021 07:46:14 -0400 Received: from [10.0.0.4] (62-47-226-13.adsl.highway.telekom.at [62.47.226.13]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 4Grfwb2jpDz3xVb; Fri, 20 Aug 2021 13:46:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1629459967; bh=fYnzCAglVTonLf045PTFhG9jc/OqQwx1+BXDql0rJDM=; h=Subject:From:To:Date:In-Reply-To:References; b=H6y9pl7lg5h0dfiZjTLpz5txZwCEsSsn+w/pSjwH7PeBwq4MscdH7XhQ6bqIG1jHJ Dj2abaK4faTrMv0ToxQd5TsddWfBhgBVgayfVajR3LEPiKUD48Xh0UaGRDHJKeLt/w hQxRCG5mkKMJjG6bP5/FIKbJAEfv9WyqHx2C/850= Message-ID: Subject: Re: [PATCH v3 02/20] gnu: minetest: Search for mods in MINETEST_MOD_PATH. From: Leo Prikler To: Maxime Devos , 49828-done@debbugs.gnu.org Date: Fri, 20 Aug 2021 13:45:41 +0200 In-Reply-To: <20210810150734.11778-3-maximedevos@telenet.be> References: <20210810150734.11778-1-maximedevos@telenet.be> <20210810150734.11778-3-maximedevos@telenet.be> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Spam-Scanner: SpamAssassin 3.003001 X-Spam-Score-relay: -1.9 X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 49828-done 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 (---) Hi Maxime, I've now pushed this patch set to master with the following adjustments: Am Dienstag, den 10.08.2021, 17:07 +0200 schrieb Maxime Devos: > * gnu/packages/patches/Add-environment-variable- > MINETEST_MOD_PATH.patch: > New file. I've renamed this patch to minetest-add-MINETEST_MOD_PATH.patch and adjusted the rest accordingly. Please note, that patches should always state which package they apply to in their name. Furthermore I've followed up with patches, that move the existing minetest packages to minetest.scm. Thanks From unknown Fri Aug 15 12:54:04 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 18 Sep 2021 11:24:05 +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