From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] mix-build-system: draft 1 Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: andrew@trop.in, cox.katherine.e+guix@gmail.com, liliana.prikler@gmail.com, guix-patches@gnu.org Resent-Date: Sat, 28 Oct 2023 20:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , Andrew Tropin , Katherine Cox-Buday , Liliana Marie Prikler X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Andrew Tropin , Katherine Cox-Buday , Liliana Marie Prikler Received: via spool by submit@debbugs.gnu.org id=B.16985244139520 (code B ref -1); Sat, 28 Oct 2023 20:21:02 +0000 Received: (at submit) by debbugs.gnu.org; 28 Oct 2023 20:20:13 +0000 Received: from localhost ([127.0.0.1]:39618 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwpn3-0002TU-Gz for submit@debbugs.gnu.org; Sat, 28 Oct 2023 16:20:13 -0400 Received: from lists.gnu.org ([2001:470:142::17]:52880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwpn1-0002TF-5C for submit@debbugs.gnu.org; Sat, 28 Oct 2023 16:20:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwpmP-0005al-0r for guix-patches@gnu.org; Sat, 28 Oct 2023 16:19:33 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qwpmJ-0000wc-Re for guix-patches@gnu.org; Sat, 28 Oct 2023 16:19:32 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-407c3adef8eso26151435e9.2 for ; Sat, 28 Oct 2023 13:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698524365; x=1699129165; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cM9NmqsxnHWBq2XRPiJdAo6gDOFNqPn5QNQpP4/R6e8=; b=sfJVgHxtXOjQhnn5EI5RKwIkXnQf1BKFJYip9IrBikeMSBWE1dztX39NrsNpW3+zoZ 5zdO3wkSqHbFrvai6VfCa0Nb994KwhTzGWzWi2hD+my1iIH2HJRTb6S9K9wAjXEzAPbm AQusNOMzAqHZROscgVtv7gcI+E4YqFSkYr5hEqpKnCR4FP1UNxiiKVr9WDxsPcfQ/EyO scAOjTRW/mPYs5opWlYqQcZ5oNO9lNRWnJGInxYWs7oFMfHZnFjmk8Gzhot86ajEUbCf AdpZToWvdjqZalPvAFIaSdSshe2KCwC2ZHUj8zeNW0fzsH4wBQT4/omiDtnZo6LAaztx MlGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698524365; x=1699129165; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cM9NmqsxnHWBq2XRPiJdAo6gDOFNqPn5QNQpP4/R6e8=; b=fM+RSJDLqWlO5G8PcbX5KRkYlEAsUABvgAzk4DCvKRusqOcgJuP1NB11lFyAaujuc3 3g8tSrjbDVfczi7gZTLCo+RqMyCVsQHuPFdGmCJ3+YOcON+w6aKZug8990Z+3geqzmc3 xWnSzC9IMNXKCevjP1MPvAxVCy6jR2OjFkJJAVdekGgkbUNS5cLXoiT3rO6ofAu3tDzr 8b6MXweJ2i9n8MtUt5RVm7Ahb+ityQsQ0OSu0xFDXcDRA4BdDkaONjrqyySoyXSugd0V LlpMaTXCtv/8c3smPdEOWUWEQbPMI1GTavNB+Rvq4DqTadBmAkH6QmskdgbXUocZb3Fa 81uQ== X-Gm-Message-State: AOJu0YxLOJfNAy75xeYslj2/SAz46iF9pZeF9RnGegELdKtRTHYxWxeA ZEI5e5aga29qBGDMAzFXeyey7X2jOZRxVX/xLFU= X-Google-Smtp-Source: AGHT+IGAayGXUH6iNr6jSx2ytURdDc8bgtgC9gzLHS3QloXt5wFs3DEMOgb+Iv+exUZl+9At89geQA== X-Received: by 2002:a05:600c:4f15:b0:3fe:687a:abb8 with SMTP id l21-20020a05600c4f1500b003fe687aabb8mr5204758wmq.7.1698524363395; Sat, 28 Oct 2023 13:19:23 -0700 (PDT) Received: from doug.home ([2a01:cb19:85a1:c200:ee66:fd17:945:f033]) by smtp.gmail.com with ESMTPSA id y9-20020a7bcd89000000b00407efbc4361sm8278509wmj.9.2023.10.28.13.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Oct 2023 13:19:22 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sat, 28 Oct 2023 22:19:10 +0200 Message-ID: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=phfrohring@deeplinks.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" This commit introduces a mix-build-system. The provided code ensures that the following code runs without errors: ./pre-inst-env guix build elixir-machete A key challenge is the lack of bit reproducibility, in part due to rebar3's lack of bit reproducibility. Future patches may address this, and I welcome feedback. Given the changes, splitting them into focused patches might be best. As a first-time contributor, I seek advice on a suitable patch sequence. I also request guidance from the Guix community for a seamless integration. Please suggest next steps for the mix-build-system integration. Thank you. --- gnu/packages/elixir-xyz.scm | 327 ++++++++++ gnu/packages/elixir.scm | 164 +++-- gnu/packages/emacs-xyz.scm | 20 + gnu/packages/erlang-xyz.scm | 650 +++++++++++++++++++ gnu/packages/erlang.scm | 996 +++++++++--------------------- guix/build-system/mix.scm | 185 ++++++ guix/build-system/rebar.scm | 320 +++++++--- guix/build/mix-build-system.scm | 373 +++++++++++ guix/build/rebar-build-system.scm | 302 +++++---- 9 files changed, 2377 insertions(+), 960 deletions(-) create mode 100644 gnu/packages/elixir-xyz.scm create mode 100644 gnu/packages/erlang-xyz.scm create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 00000000..767f9db7 --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,327 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages erlang-xyz) + #:use-module (gnu packages linux) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix build-system mix) + #:use-module (guix download)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments + (list + #:tests? #f)) + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + +(define-public elixir-telemetry-metrics + (package + (name "elixir-telemetry-metrics") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1iilk2n75kn9i95fdp8mpxvn3rcn3ghln7p77cijqws13j3y1sbv")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (propagated-inputs (list erlang-telemetry)) + (synopsis + "Provides a common interface for defining metrics based on Telemetry events") + (description + "Common interface for defining metrics based on :telemetry events. Metrics are +aggregations of Telemetry events with specific name, providing a +view of the system's behaviour over time.") + (home-page "https://hexdocs.pm/telemetry_metrics/") + (license license:asl2.0))) + +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")))) + (build-system mix-build-system) + (inputs (list inotify-tools)) + (arguments + (list + #:tests? #f ;There is no test/ in the source. + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'rm-priv + (lambda _ + ;; This directory represents source code not needed on UNIX systems. + ;; Since we aim at UNIX systems, it is deleted. + (delete-file-recursively "priv")))))) + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +[fs](https://github.com/synrc/fs).") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "256 color ANSI coloring in the terminal") + (description "256 color ANSI coloring in the terminal.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Offers a Mix task for suggestions on enhancing your inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "Up-to-date CA certificate store") + (description "Up-to-date CA certificate store.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + ;; No test/ folder. + (arguments + (list + #:tests? #f)) + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing things +like Dialyzer errors and Observer .state. NOTE: Because this code calls the +Elixir formatter, it requires Elixir 1.6+.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b4251..d1ac1d07 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018 Nikita ;;; Copyright © 2021 Oskar Köök ;;; Copyright © 2021 Cees de Groot +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,14 +25,21 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages elixir) - #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages compression) + #:use-module (gnu packages erlang) + #:use-module (gnu packages version-control) + #:use-module (gnu packages) + #:use-module (guix build utils) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) - #:use-module (gnu packages) - #:use-module (gnu packages erlang) - #:use-module (gnu packages version-control)) + #:use-module (guix search-paths) + #:use-module (guix utils)) (define-public elixir (package @@ -52,57 +60,109 @@ (define-public elixir (list #:test-target "test" #:parallel-tests? #f ;see - #:make-flags #~(list (string-append "PREFIX=" #$output)) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")))) - (add-after 'make-git-checkout-writable 'replace-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; Note: references end up obfuscated in binary BEAM files where - ;; they may be invisible to the GC and graft code: - ;; . - (substitute* '("lib/mix/lib/mix/release.ex" - "lib/mix/lib/mix/tasks/release.init.ex") - (("#!/bin/sh") - (string-append "#!" (search-input-file inputs "/bin/sh")))) - (substitute* "bin/elixir" - (("ERTS_BIN=\n") - (string-append - "ERTS_BIN=" - ;; Elixir Releases will prepend to ERTS_BIN the path of - ;; a copy of erl. We detect if a release is being generated - ;; by checking the initial ERTS_BIN value: if it's empty, we - ;; are not in release mode and can point to the actual erl - ;; binary in Guix store. - "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" - (string-drop-right (search-input-file inputs "/bin/erl") 3) - "; fi\n"))) - (substitute* "bin/mix" - (("#!/usr/bin/env elixir") - (string-append "#!" #$output "/bin/elixir"))))) - (add-before 'build 'make-current - ;; The Elixir compiler checks whether or not to compile files by - ;; inspecting their timestamps. When the timestamp is equal to the - ;; epoch no compilation will be performed. Some tests fail when - ;; files are older than Jan 1, 2000. - (lambda _ - (for-each (lambda (file) - (let ((recent 1400000000)) - (utime file recent recent 0 0))) - (find-files "." ".*")))) - (add-before 'check 'set-home - (lambda* (#:key inputs #:allow-other-keys) - ;; Some tests require access to a home directory. - (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + #:make-flags #~(list (string-append "PREFIX=" + #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable + (find-files ".")))) + (add-after 'make-git-checkout-writable 'replace-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; Note: references end up obfuscated in binary BEAM files where + ;; they may be invisible to the GC and graft code: + ;; . + (substitute* '("lib/mix/lib/mix/release.ex" + "lib/mix/lib/mix/tasks/release.init.ex") + (("#!/bin/sh") + (string-append "#!" + (search-input-file inputs "/bin/sh")))) + (substitute* "bin/elixir" + (("ERTS_BIN=\n") + (string-append "ERTS_BIN=" + ;; Elixir Releases will prepend to ERTS_BIN the path of + ;; a copy of erl. We detect if a release is being generated + ;; by checking the initial ERTS_BIN value: if it's empty, we + ;; are not in release mode and can point to the actual erl + ;; binary in Guix store. + "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" + (string-drop-right (search-input-file inputs + "/bin/erl") 3) + "; fi\n"))) + (substitute* "bin/mix" + (("#!/usr/bin/env elixir") + (string-append "#!" + #$output "/bin/elixir"))))) + (add-before 'build 'make-current + ;; The Elixir compiler checks whether or not to compile files by + ;; inspecting their timestamps. When the timestamp is equal to the + ;; epoch no compilation will be performed. Some tests fail when + ;; files are older than Jan 1, 2000. + (lambda _ + (for-each (lambda (file) + (let ((recent 1400000000)) + (utime file recent recent 0 0))) + (find-files "." ".*")))) + (add-before 'check 'set-home + (lambda* (#:key inputs #:allow-other-keys) + ;; Some tests require access to a home directory. + (setenv "HOME" "/tmp"))) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" + program) + '("ERL_LIBS" prefix + ("${GUIX_ERL_LIBS}")))) programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files (list "lib/erlang/lib" + (string-append "lib/elixir/" + (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") - (description "Elixir is a dynamic, functional language used to build + (description + "Elixir is a dynamic, functional language used to build scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public mix-hex + (package + (name "mix-hex") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri "https://builds.hex.pm/installs/1.14.0/hex-2.0.5.ez") + (sha256 + (base32 "0j4s17zsshq9hv3qxflcqrfwh4p27d2rv7xmgdmfdfxp086mfvry")))) + (build-system copy-build-system) + (native-inputs (list unzip)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + ;; A *.ez file is a kind of *.zip file. + ;; See: https://www.erlang.org/doc/man/code#loading-of-code-from-archive-files + (invoke "unzip" source)))) + #:install-plan #~'(("hex-2.0.5" "lib/")))) + (synopsis "Package manager for the Erlang VM") + (description + "This project currently provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 10c4b0a6..13f07f20 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -135,6 +135,7 @@ ;;; Copyright © 2023 Sergiu Ivanov ;;; Copyright © 2023 Camilo Q.S. (Distopico) ;;; Copyright © 2023 Thanos Apollo +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -7578,6 +7579,25 @@ (define-public emacs-org-fragtog your cursor steps onto them, and re-enabled when the cursor leaves.") (license license:gpl3+))) +(define-public emacs-erlang + (package + (name "emacs-erlang") + (version (package-version erlang)) + (source + (package-source erlang)) + (build-system emacs-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'expand-load-path 'change-working-directory + (lambda _ + (chdir "lib/tools/emacs") #t))))) + (home-page "https://www.erlang.org/") + (synopsis "Erlang major mode for Emacs") + (description + "This package provides an Emacs major mode for editing Erlang source +files.") + (license license:asl2.0))) + (define-public emacs-ob-erlang (let ((revision "1") (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd")) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm new file mode 100644 index 00000000..e1f1a77e --- /dev/null +++ b/gnu/packages/erlang-xyz.scm @@ -0,0 +1,650 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 erlang-xyz) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix hg-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (guix git-download) + #:use-module (gnu packages version-control) + #:use-module (srfi srfi-26)) + +(define-public erlang-unicode-util-compat + (package + (name "erlang-unicode-util-compat") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "08952lw8cjdw8w171lv8wqbrxc4rcmb3jhkrdb7n06gngpbfdvi5")))) + (build-system rebar-build-system) + (synopsis "Unicode compatibility library for Erlang < 20") + (description "Unicode compatibility library for Erlang < 20.") + (home-page "https://hex.pm/packages/unicode_util_compat") + (license license:asl2.0))) + +(define-public erlang-idna + (package + (name "erlang-idna") + (version "6.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1sjcjibl34sprpf1dgdmzfww24xlyy34lpj7mhcys4j4i6vnwdwj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-unicode-util-compat)) + (synopsis + "Erlang Internationalized Domain Names in Applications (IDNA) protocol") + (description + "Library to register and look up IDNs in a way + that does not require changes to the DNS itself. IDNA is only meant for +processing domain names, not free text. See: RFC 5891.") + (home-page "https://hexdocs.pm/idna/") + (license license:expat))) + +(define-public erlang-bear + (package + (name "erlang-bear") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nsri73b50n5v1a8252mm8car84j2b53bq7alq6zz16z3a86fyqm")))) + (build-system rebar-build-system) + (synopsis "Statistics functions for Erlang") + (description + "This package provides a set of statistics functions for erlang.") + (home-page "https://hex.pm/packages/bear") + (license license:asl2.0))) + +(define-public erlang-erlang-color + (package + (name "erlang-erlang-color") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0f707vxihn3f9m3zxal38ajcihnfcwms77jcax0gbzn8i7jya5vb")))) + (build-system rebar-build-system) + (synopsis "ANSI colors for your Erlang") + (description "ANSI colors for your Erlang.") + (home-page "https://hex.pm/packages/erlang_color") + (license license:expat))) + +(define-public erlang-tdiff + (package + (name "erlang-tdiff") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0xbq7p9ii2kp49ms1kylj92ih2jiwvqwimb8jy4aalljz5lf3hp0")))) + (build-system rebar-build-system) + (synopsis "Library to compute the difference between two strings") + (description + "Erlang implementation of the O(ND) differnence algorithm by EUGENE W. MYERS.") + (home-page "https://hex.pm/packages/tdiff") + (license license:lgpl2.0))) + +(define-public erlang-rebar3-ex-doc + (package + (name "erlang-rebar3-ex-doc") + (version "0.2.21") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0c720shjf03y4slj56q5nxgyhqif0926cs3pvl3zbv1i64qh8wdm")))) + (build-system rebar-build-system) + (synopsis "rebar3 plugin for generating docs with ex_doc") + (description + "rebar3_ex_doc is a rebar3 plugin for creating documentation with ex_doc. It +includes ex_doc as an escript, eliminating the need for Elixir installation or +compiling ex_doc dependencies.") + (home-page "https://hexdocs.pm/rebar3_ex_doc/") + (license license:asl2.0))) + +(define-public erlang-samovar + (package + (name "erlang-samovar") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nfw5vbzcvqzpsahwxz7zjlshg31pa9f306g3hzm1kfx5rsyvry4")))) + (build-system rebar-build-system) + (synopsis "SEMVER library for Erlang") + (description "SEMVER library for Erlang") + (home-page "https://hexdocs.pm/samovar/") + (license license:isc))) + +(define-public erlang-geas + (package + (name "erlang-geas") + (version "2.7.14") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1maxv5zg2ckrikr8xpxgg9kpfaxvahqilbkl9dl9ibchlgrbj6i4")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-samovar)) + (synopsis + "Tool to detect the runnable official Erlang release window for your project") + (description + "Geas will tell you also what are the offending functions in the beam/source +files that reduce the available window, if some beam files are compiled native +and the installed patches and recommend patches that should be installed +depending your code.") + (home-page "https://hexdocs.pm/geas/") + (license license:isc))) + +(define-public erlang-covertool + (package + (name "erlang-covertool") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) + (build-system rebar-build-system) + (home-page "https://github.com/covertool/covertool") + (synopsis "Convert code-coverage data generated by @code{cover} into +Cobertura XML reports") + (description + "This package provides a build tool and plugin to convert +exported Erlang @code{cover} data sets into Cobertura XML reports, which can +then be feed to the Jenkins Cobertura plug-in. On @emph{hex.pm}, this plugin +was previously called @code{rebar_covertool}.") + (license license:bsd-2))) + +(define-public erlang-telemetry + (package + (name "erlang-telemetry") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1mgyx9zw92g6w8fp9pblm3b0bghwxwwcbslrixq23ipzisfwxnfs")))) + (build-system rebar-build-system) + (native-inputs (list erlang-covertool)) + (synopsis "Dynamic dispatching library for metrics and instrumentations") + (description + "Telemetry is a lightweight library for dynamic dispatching of events, with a +focus on metrics and instrumentation. Any Erlang or Elixir library can use +telemetry to emit events. Application code and other libraries can then hook +into those events and run custom handlers.") + (home-page "https://hexdocs.pm/telemetry/") + (license license:asl2.0))) + +(define-public erlang-rebar3-git-vsn + (package + (name "erlang-rebar3-git-vsn") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) + (build-system rebar-build-system) + (inputs (list git-minimal/pinned)) + (arguments + `( + ;; Running the tests require binary artifact (tar-file containing + ;; samples git repos) TODO: remove these from the source + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((git (assoc-ref inputs "git-minimal"))) + (substitute* "src/rebar3_git_vsn.erl" + (("rebar_utils:sh\\(\"git " _) + (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) + (home-page "https://github.com/soranoba/rebar3_git_vsn") + (synopsis "Rebar3 plugin for generating the version from git") + (description "This plugin adds support for generating the version from +a git checkout.") + (license license:expat))) + +(define-public erlang-getopt + (package + (name "erlang-getopt") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) + (build-system rebar-build-system) + (home-page "https://github.com/jcomellas/getopt") + (synopsis "Command-line options parser for Erlang") + (description "This package provides an Erlang module to parse command line +arguments using the GNU getopt syntax.") + (license license:bsd-3))) + +(define-public erlang-edown + (package + (name "erlang-edown") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) + (build-system rebar-build-system) + (home-page "https://github.com/uwiger/edown") + (synopsis "Markdown extension for EDoc") + (description "This package provides an extension for EDoc for generating +Markdown.") + (license license:asl2.0))) + +(define-public erlang-bbmustache + (package + (name "erlang-bbmustache") + (version "1.12.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) + (build-system rebar-build-system) + (inputs (list erlang-getopt erlang-rebar3-git-vsn erlang-edown)) ;for building the docs + (arguments + `(#:tests? #f ;requires mustache specification file + #:phases (modify-phases %standard-phases + (add-before 'build 'build-more + (lambda _ + (invoke "rebar3" "as" "dev" "escriptize"))) + (add-after 'install 'install-escript + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (install-file "_build/dev/bin/bbmustache" + (string-append out "/bin")))))))) + (home-page "https://github.com/soranoba/bbmustache/") + (synopsis "Binary pattern match Based Mustache template engine for Erlang") + (description "This Erlang library provides a Binary pattern match Based +Mustache template engine") + (license license:expat))) + +(define-public erlang-certifi + (package + (name "erlang-certifi") + (version "2.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) + (build-system rebar-build-system) + (arguments + `(#:tests? #f)) ;have not been updated for latest cert bundle + (home-page "https://github.com/certifi/erlang-certifi/") + (synopsis "Erlang CA certificate bundle") + (description + "This Erlang library contains a CA bundle that you can +reference in your Erlang application. This is useful for systems that do not +have CA bundles that Erlang can find itself, or where a uniform set of CAs is +valuable. + +This an Erlang specific port of certifi. The CA bundle is derived from +Mozilla's canonical set.") + (license license:bsd-3))) + +(define-public erlang-cf + (package + (name "erlang-cf") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) + (build-system rebar-build-system) + (home-page "https://github.com/project-fifo/cf") + (synopsis "Terminal colour helper for Erlang io and io_lib") + (description "This package provides a helper library for termial colour +printing extending the io:format syntax to add colours.") + (license license:expat))) + +(define-public erlang-yamerl + (package + (name "erlang-yamerl") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; There are no tests included on Hex. + (url "https://github.com/yakaz/yamerl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) + (build-system rebar-build-system) + (synopsis "YAML and JSON parser in pure Erlang") + (description + "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as +JSON documents.") + (home-page "https://hexdocs.pm/yamerl/") + (license license:bsd-2))) + +(define-public erlang-cth-readable + (package + (name "erlang-cth-readable") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cf)) + (arguments + `(#:tests? #f)) ;no test-suite in hex-pm package + (home-page "https://github.com/ferd/cth_readable") + (synopsis "Common Test hooks for more readable logs for Erlang") + (description + "This package provides an OTP library to be used for CT log +outputs you want to be readable around all that noise they contain.") + (license license:bsd-3))) + +(define-public erlang-erlware-commons + (package + (name "erlang-erlware-commons") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cf)) + (native-inputs (list git-minimal/pinned)) ;Required for tests + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "TERM" "xterm")))))) ;enable color in logs + (home-page "https://erlware.github.io/erlware_commons/") + (synopsis "Additional standard library for Erlang") + (description "Erlware Commons is an Erlware project focused on all aspects +of reusable Erlang components.") + (license license:expat))) + +(define-public erlang-eunit-formatters + (package + (name "erlang-eunit-formatters") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) + (build-system rebar-build-system) + (home-page "https://github.com/seancribbs/eunit_formatters") + (synopsis "Better output for eunit suites") + (description "This package provides a better output for Erlang eunits.") + (license license:asl2.0))) + +(define-public erlang-hex-core + (package + (name "erlang-hex-core") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rebar3" "as" "test" "proper"))))))) + (inputs (list erlang-proper erlang-rebar3-proper)) + (home-page "https://github.com/hexpm/hex_core") + (synopsis "Reference implementation of Hex specifications") + (description "This package provides the reference implementation of Hex +specifications.") + (license license:asl2.0))) + +(define-public erlang-jsone + (package + (name "erlang-jsone") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{project_plugins, \\[covertool\\]\\}\\." _) + ""))))))) + (home-page "https://github.com/sile/jsone/") + (synopsis "Erlang JSON Library") + (description "An Erlang library for encoding and decoding JSON data.") + (license license:expat))) + +(define-public erlang-parse-trans + (package + (name "erlang-parse-trans") + (version "3.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) + (build-system rebar-build-system) + (inputs (list erlang-getopt)) + (home-page "https://github.com/uwiger/parse_trans") + (synopsis "Parse transform utilities for Erlang") + (description + "This package captures some useful patterns in parse +transformation and code generation for Erlang. + +For example generating standardized accessor functions for records or +evaluating an expression at compile-time and substitute the result as a +compile-time constant.") + (license license:asl2.0))) + +(define-public erlang-proper + (package + (name "erlang-proper") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{plugins, \\[covertool\\]\\}\\." _) + ""))))))) + (home-page "https://proper-testing.github.io/") + (synopsis "QuickCheck-inspired property-based testing tool for Erlang") + (description + "PropEr is a tool for the automated, semi-random, +property-based testing of Erlang programs. It is fully integrated with +Erlang's type language, and can also be used for the model-based random +testing of stateful systems.") + (license license:gpl3+))) + +(define-public erlang-jsx + (package + (name "erlang-jsx") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) + (build-system rebar-build-system) + (synopsis "Streaming, evented JSON parsing toolkit") + (description + "An Erlang application for consuming, producing and manipulating json.") + (home-page "https://github.com/talentdeficit/jsx") + (license license:expat))) + +(define-public erlang-providers + (package + (name "erlang-providers") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-erlware-commons erlang-getopt)) + (home-page "https://github.com/tsloughter/providers") + (synopsis "Erlang providers library") + (description "This package provides an Erlang providers library.") + (license license:asl2.0))) + +(define-public erlang-relx + (package + (name "erlang-relx") + (version "4.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-bbmustache)) + (home-page "https://erlware.github.io/relx/") + (synopsis "Release assembler for Erlang/OTP Releases") + (description + "Relx assembles releases for an Erlang/OTP release. Given a +release specification and a list of directories in which to search for OTP +applications it will generate a release output. That output depends heavily on +what plugins available and what options are defined, but usually it is simply +a well configured release directory.") + (license license:asl2.0))) + +(define-public erlang-ssl-verify-fun + (package + (name "erlang-ssl-verify-fun") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) + (build-system rebar-build-system) + (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") + (synopsis "SSL verification functions for Erlang") + (description "This package provides SSL verification functions for +Erlang.") + (license license:expat))) + +(define-public erlang-rebar3-raw-deps + (package + (name "erlang-rebar3-raw-deps") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) + (build-system rebar-build-system) + (home-page "https://github.com/soranoba/rebar3_raw_deps") + (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") + (description "This plugin provides support for handling non-OTP +applications as a dependent libraries.") + (license license:expat))) + +(define-public erlang-rebar3-proper + (package + (name "erlang-rebar3-proper") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) + (build-system rebar-build-system) + (home-page "https://github.com/ferd/rebar3_proper") + (synopsis "Rebar3 PropEr plugin") + (description "This plugin allows running PropEr test suites from within +rebar3.") + (license license:bsd-3))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c53cb72c..df17558b 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2022 jgart ;;; Copyright © 2023 wrobell ;;; Copyright © 2023 Tim Johann +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,160 +28,182 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages erlang) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix gexp) - #:use-module (guix build-system gnu) - #:use-module (guix build-system emacs) - #:use-module (guix build-system rebar) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix packages) - #:use-module (guix utils) - #:use-module (gnu packages) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages elixir) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages version-control) #:use-module (gnu packages tls) - #:use-module (gnu packages wxwidgets)) + #:use-module (gnu packages erlang-xyz) + #:use-module (gnu packages version-control) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages) + #:use-module (guix build utils) + #:use-module (guix build-system emacs) + #:use-module (guix build-system gnu) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public erlang (package (name "erlang") (version "25.3.2") - (source (origin - (method git-fetch) - ;; The tarball from http://erlang.org/download contains many - ;; pre-compiled files, so we use this snapshot of the source - ;; repository. - (uri (git-reference - (url "https://github.com/erlang/otp") - (commit (string-append "OTP-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj")) - (patches (search-patches "erlang-man-path.patch")))) + (source + (origin + (method git-fetch) + ;; The tarball from http://erlang.org/download contains many + ;; pre-compiled files, so we use this snapshot of the source + ;; repository. + (uri (git-reference + (url "https://github.com/erlang/otp") + (commit (string-append "OTP-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj")) + (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) - (native-inputs - `(("perl" ,perl) + (native-inputs `(("perl" ,perl) - ;; Erlang's documentation is distributed in a separate tarball. - ("erlang-manpages" - ,(origin - (method url-fetch) - (uri (string-append "http://erlang.org/download/otp_doc_man_" - (version-major+minor version) ".tar.gz")) - (sha256 - (base32 - "0vnpds5q17xc4jjj3sbsllpx68wyhgvx70714vkzyd68rbjmhmk7")))))) - (inputs - (list ncurses openssl wxwidgets)) - (propagated-inputs - (list fontconfig glu mesa)) + ;; Erlang's documentation is distributed in a separate tarball. + ("erlang-manpages" ,(origin + (method url-fetch) + (uri (string-append + "http://erlang.org/download/otp_doc_man_" + (version-major+minor version) + ".tar.gz")) + (sha256 (base32 + "0vnpds5q17xc4jjj3sbsllpx68wyhgvx70714vkzyd68rbjmhmk7")))))) + (inputs (list ncurses openssl wxwidgets)) + (propagated-inputs (list fontconfig glu mesa)) (arguments `(#:test-target "release_tests" - #:configure-flags - (list "--disable-saved-compile-time" - "--enable-dynamic-ssl-lib" - "--enable-native-libs" - "--enable-shared-zlib" - "--enable-smp-support" - "--enable-threads" - "--enable-wx" - (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))) - #:modules ((srfi srfi-19) ; make-time, et cetera. + #:configure-flags (list "--disable-saved-compile-time" + "--enable-dynamic-ssl-lib" + "--enable-native-libs" + "--enable-shared-zlib" + "--enable-smp-support" + "--enable-threads" + "--enable-wx" + (string-append "--with-ssl=" + (assoc-ref %build-inputs + "openssl"))) + #:modules ((srfi srfi-19) + ;make-time, et cetera. (guix build utils) (guix build gnu-build-system)) - #:phases - (modify-phases %standard-phases - (delete 'bootstrap) - ;; The are several code fragments that embed timestamps into the - ;; output. Here, we alter those fragments to use the value of - ;; SOURCE_DATE_EPOCH instead. - (add-after 'unpack 'remove-timestamps - (lambda _ - (let ((source-date-epoch - (time-utc->date - (make-time time-utc 0 (string->number - (getenv "SOURCE_DATE_EPOCH")))))) - (substitute* "lib/reltool/src/reltool_target.erl" - (("Date = date\\(\\),") - (string-append "Date = " - (date->string source-date-epoch - "'{~Y,~m,~d}',")))) - (substitute* "lib/reltool/src/reltool_target.erl" - (("Time = time\\(\\),") - (string-append "Time = " - (date->string source-date-epoch - "'{~H,~M,~S}',")))) - (substitute* '("lib/reltool/src/reltool_target.erl" - "lib/sasl/src/systools_make.erl") - (("date\\(\\), time\\(\\),") - (date->string source-date-epoch - "{~Y,~m,~d}, {~H,~M,~S},"))) - (substitute* "lib/dialyzer/test/small_SUITE_data/src/gs_make.erl" - (("tuple_to_list\\(date\\(\\)\\),tuple_to_list\\(time\\(\\)\\)") - (date->string - source-date-epoch - "tuple_to_list({~Y,~m,~d}), tuple_to_list({~H,~M,~S})"))) - (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" - (("\\{Y,Mo,D\\} = date\\(\\),") - (date->string source-date-epoch - "{Y,Mo,D} = {~Y,~m,~d},"))) - (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" - (("\\{H,Mi,S\\} = time\\(\\),") - (date->string source-date-epoch - "{H,Mi,S} = {~H,~M,~S},")))))) - (add-after 'unpack 'patch-/bin/sh - (lambda* (#:key inputs #:allow-other-keys) - (let ((sh (search-input-file inputs "/bin/sh"))) - (substitute* "erts/etc/unix/run_erl.c" - (("sh = \"/bin/sh\";") - (string-append "sh = \"" sh "\";"))) - (substitute* "erts/emulator/sys/unix/sys_drivers.c" - (("SHELL \"/bin/sh\"") - (string-append "SHELL \"" sh "\""))) - (substitute* "erts/emulator/sys/unix/erl_child_setup.c" - (("SHELL \"/bin/sh\"") - (string-append "SHELL \"" sh "\""))) - (substitute* "lib/kernel/src/os.erl" - (("/bin/sh") sh))))) - (add-after 'patch-source-shebangs 'patch-source-env - (lambda _ - (let ((escripts - (append - (find-files "." "\\.escript") - (find-files "lib/stdlib/test/escript_SUITE_data/") - '("erts/lib_src/utils/make_atomics_api" - "erts/preloaded/src/add_abstract_code" - "lib/diameter/bin/diameterc" - "lib/reltool/examples/display_args" - "lib/reltool/examples/mnesia_core_dump_viewer" - "lib/snmp/src/compile/snmpc.src" - "make/verify_runtime_dependencies" - "make/emd2exml.in")))) - (substitute* escripts - (("/usr/bin/env") (which "env")))))) - (add-before 'configure 'set-erl-top - (lambda _ - (setenv "ERL_TOP" (getcwd)))) - (add-after 'install 'patch-erl - ;; This only works after install. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/bin/erl") - (("basename") (which "basename")) - (("dirname") (which "dirname")))))) - (add-after 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (manpages (assoc-ref inputs "erlang-manpages")) - (share (string-append out "/share/"))) - (mkdir-p share) - (with-directory-excursion share - (invoke "tar" "xvf" manpages)))))))) + #:phases (modify-phases %standard-phases + (delete 'bootstrap) + ;; The are several code fragments that embed timestamps into the + ;; output. Here, we alter those fragments to use the value of + ;; SOURCE_DATE_EPOCH instead. + (add-after 'unpack 'remove-timestamps + (lambda _ + (let ((source-date-epoch (time-utc->date (make-time + time-utc 0 + (string->number + (getenv + "SOURCE_DATE_EPOCH")))))) + (substitute* "lib/reltool/src/reltool_target.erl" + (("Date = date\\(\\),") + (string-append "Date = " + (date->string source-date-epoch + "'{~Y,~m,~d}',")))) + (substitute* "lib/reltool/src/reltool_target.erl" + (("Time = time\\(\\),") + (string-append "Time = " + (date->string source-date-epoch + "'{~H,~M,~S}',")))) + (substitute* '("lib/reltool/src/reltool_target.erl" + "lib/sasl/src/systools_make.erl") + (("date\\(\\), time\\(\\),") + (date->string source-date-epoch + "{~Y,~m,~d}, {~H,~M,~S},"))) + (substitute* "lib/dialyzer/test/small_SUITE_data/src/gs_make.erl" + (("tuple_to_list\\(date\\(\\)\\),tuple_to_list\\(time\\(\\)\\)") + (date->string source-date-epoch + "tuple_to_list({~Y,~m,~d}), tuple_to_list({~H,~M,~S})"))) + (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" + (("\\{Y,Mo,D\\} = date\\(\\),") + (date->string source-date-epoch + "{Y,Mo,D} = {~Y,~m,~d},"))) + (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" + (("\\{H,Mi,S\\} = time\\(\\),") + (date->string source-date-epoch + "{H,Mi,S} = {~H,~M,~S},")))))) + (add-after 'unpack 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + (let ((sh (search-input-file inputs "/bin/sh"))) + (substitute* "erts/etc/unix/run_erl.c" + (("sh = \"/bin/sh\";") + (string-append "sh = \"" sh "\";"))) + (substitute* "erts/emulator/sys/unix/sys_drivers.c" + (("SHELL \"/bin/sh\"") + (string-append "SHELL \"" sh "\""))) + (substitute* "erts/emulator/sys/unix/erl_child_setup.c" + (("SHELL \"/bin/sh\"") + (string-append "SHELL \"" sh "\""))) + (substitute* "lib/kernel/src/os.erl" + (("/bin/sh") + sh))))) + (add-after 'patch-source-shebangs 'patch-source-env + (lambda _ + (let ((escripts (append (find-files "." "\\.escript") + (find-files + "lib/stdlib/test/escript_SUITE_data/") + '("erts/lib_src/utils/make_atomics_api" + "erts/preloaded/src/add_abstract_code" + "lib/diameter/bin/diameterc" + "lib/reltool/examples/display_args" + "lib/reltool/examples/mnesia_core_dump_viewer" + "lib/snmp/src/compile/snmpc.src" + "make/verify_runtime_dependencies" + "make/emd2exml.in")))) + (substitute* escripts + (("/usr/bin/env") + (which "env")))))) + (add-before 'configure 'set-erl-top + (lambda _ + (setenv "ERL_TOP" + (getcwd)))) + (add-after 'install 'patch-erl + ;; This only works after install. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/erl") + (("basename") + (which "basename")) + (("dirname") + (which "dirname")))))) + (add-after 'patch-erl 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("erl" "erlc" "escript"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" + program) + '("ERL_LIBS" ":" prefix + ("${GUIX_ERL_LIBS}")))) programs)))) + (add-after 'wrap-programs 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (manpages (assoc-ref inputs "erlang-manpages")) + (share (string-append out "/share/"))) + (mkdir-p share) + (with-directory-excursion share + (invoke "tar" "xvf" manpages)))))))) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files (list "lib/erlang/lib" + (string-append "lib/elixir/" + (version-major+minor (package-version + elixir)))))))) (home-page "https://www.erlang.org/") (synopsis "The Erlang programming language") (description @@ -191,414 +214,13 @@ (define-public erlang built-in support for concurrency, distribution and fault tolerance.") ;; Erlang is distributed under the Apache License 2.0, but some components ;; have other licenses. See 'system/COPYRIGHT' in the source distribution. - (license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat - license:lgpl2.0+ license:tcl/tk license:zlib)))) - -(define-public emacs-erlang - (package - (name "emacs-erlang") - (version (package-version erlang)) - (source (package-source erlang)) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'expand-load-path 'change-working-directory - (lambda _ (chdir "lib/tools/emacs") #t))))) - (home-page "https://www.erlang.org/") - (synopsis "Erlang major mode for Emacs") - (description - "This package provides an Emacs major mode for editing Erlang source -files.") - (license license:asl2.0))) - -(define-public erlang-bbmustache - (package - (name "erlang-bbmustache") - (version "1.12.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "bbmustache" version)) - (sha256 - (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt rebar3-git-vsn - erlang-edown)) ; for building the docs - (arguments - `(#:tests? #f ;; requires mustache specification file - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-more - (lambda _ - (invoke "rebar3" "as" "dev" "escriptize"))) - (add-after 'install 'install-escript - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (install-file "_build/dev/bin/bbmustache" - (string-append out "/bin")))))))) - (home-page "https://github.com/soranoba/bbmustache/") - (synopsis "Binary pattern match Based Mustache template engine for Erlang") - (description "This Erlang library provides a Binary pattern match Based -Mustache template engine") - (license license:expat))) - -(define-public erlang-certifi - (package - (name "erlang-certifi") - (version "2.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "certifi" version)) - (sha256 - (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) - (build-system rebar-build-system) - (arguments - `(#:tests? #f)) ;; have not been updated for latest cert bundle - (home-page "https://github.com/certifi/erlang-certifi/") - (synopsis "Erlang CA certificate bundle") - (description "This Erlang library contains a CA bundle that you can -reference in your Erlang application. This is useful for systems that do not -have CA bundles that Erlang can find itself, or where a uniform set of CAs is -valuable. - -This an Erlang specific port of certifi. The CA bundle is derived from -Mozilla's canonical set.") - (license license:bsd-3))) - -(define-public erlang-cf - (package - (name "erlang-cf") - (version "0.3.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "cf" version)) - (sha256 - (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) - (build-system rebar-build-system) - (home-page "https://github.com/project-fifo/cf") - (synopsis "Terminal colour helper for Erlang io and io_lib") - (description "This package provides a helper library for termial colour -printing extending the io:format syntax to add colours.") - (license license:expat))) - -(define-public erlang-yamerl - (package - (name "erlang-yamerl") - (version "0.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - ;; There are no tests included on Hex. - (url "https://github.com/yakaz/yamerl") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) - (build-system rebar-build-system) - (synopsis "YAML and JSON parser in pure Erlang") - (description - "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as -JSON documents.") - (home-page "https://hexdocs.pm/yamerl/") - (license license:bsd-2))) - -(define-public erlang-covertool - (package - (name "erlang-covertool") - (version "2.0.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "covertool" version)) - (sha256 - (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) - (build-system rebar-build-system) - (home-page "https://github.com/covertool/covertool") - (synopsis "Convert code-coverage data generated by @code{cover} into -Cobertura XML reports") - (description "This package provides a build tool and plugin to convert -exported Erlang @code{cover} data sets into Cobertura XML reports, which can -then be feed to the Jenkins Cobertura plug-in. - -On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.") - (license license:bsd-2))) - -(define-public erlang-cth-readable - (package - (name "erlang-cth-readable") - (version "1.5.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "cth_readable" version)) - (sha256 - (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (arguments - `(#:tests? #f)) ;; no test-suite in hex-pm package - (home-page "https://github.com/ferd/cth_readable") - (synopsis "Common Test hooks for more readable logs for Erlang") - (description "This package provides an OTP library to be used for CT log -outputs you want to be readable around all that noise they contain.") - (license license:bsd-3))) - -(define-public erlang-edown - (package - (name "erlang-edown") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "edown" version)) - (sha256 - (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) - (build-system rebar-build-system) - (home-page "https://github.com/uwiger/edown") - (synopsis "Markdown extension for EDoc") - (description "This package provides an extension for EDoc for generating -Markdown.") - (license license:asl2.0))) - -(define-public erlang-erlware-commons - (package - (name "erlang-erlware-commons") - (version "1.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "erlware_commons" version)) - (sha256 - (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (native-inputs - (list git-minimal/pinned)) ;; Required for tests - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'check-setup - (lambda _ - (setenv "TERM" "xterm")))))) ; enable color in logs - (home-page "https://erlware.github.io/erlware_commons/") - (synopsis "Additional standard library for Erlang") - (description "Erlware Commons is an Erlware project focused on all aspects -of reusable Erlang components.") - (license license:expat))) - -(define-public erlang-eunit-formatters - (package - (name "erlang-eunit-formatters") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "eunit_formatters" version)) - (sha256 - (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) - (build-system rebar-build-system) - (home-page "https://github.com/seancribbs/eunit_formatters") - (synopsis "Better output for eunit suites") - (description "This package provides a better output for Erlang eunits.") - (license license:asl2.0))) - -(define-public erlang-getopt - (package - (name "erlang-getopt") - (version "1.0.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "getopt" version)) - (sha256 - (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) - (build-system rebar-build-system) - (home-page "https://github.com/jcomellas/getopt") - (synopsis "Command-line options parser for Erlang") - (description "This package provides an Erlang module to parse command line -arguments using the GNU getopt syntax.") - (license license:bsd-3))) - -(define-public erlang-hex-core - (package - (name "erlang-hex-core") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "hex_core" version)) - (sha256 - (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "rebar3" "as" "test" "proper"))))))) - (inputs - (list erlang-proper rebar3-proper)) - (home-page "https://github.com/hexpm/hex_core") - (synopsis "Reference implementation of Hex specifications") - (description "This package provides the reference implementation of Hex -specifications.") - (license license:asl2.0))) - -(define-public erlang-jsone - (package - (name "erlang-jsone") - (version "1.7.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "jsone" version)) - (sha256 - (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{project_plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://github.com/sile/jsone/") - (synopsis "Erlang JSON Library") - (description "An Erlang library for encoding and decoding JSON data.") - (license license:expat))) - -(define-public erlang-parse-trans - (package - (name "erlang-parse-trans") - (version "3.4.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "parse_trans" version)) - (sha256 - (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt)) - (home-page "https://github.com/uwiger/parse_trans") - (synopsis "Parse transform utilities for Erlang") - (description "This package captures some useful patterns in parse -transformation and code generation for Erlang. - -For example generating standardized accessor functions for records or -evaluating an expression at compile-time and substitute the result as a -compile-time constant.") - (license license:asl2.0))) - -(define-public erlang-proper - (package - (name "erlang-proper") - (version "1.4.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "proper" version)) - (sha256 - (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://proper-testing.github.io/") - (synopsis "QuickCheck-inspired property-based testing tool for Erlang") - (description "PropEr is a tool for the automated, semi-random, -property-based testing of Erlang programs. It is fully integrated with -Erlang's type language, and can also be used for the model-based random -testing of stateful systems.") - (license license:gpl3+))) - -(define-public erlang-jsx - (package - (name "erlang-jsx") - (version "3.1.0") - (source (origin - (method url-fetch) - (uri (hexpm-uri "jsx" version)) - (sha256 - (base32 - "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) - (build-system rebar-build-system) - (synopsis "Streaming, evented JSON parsing toolkit") - (description - "An Erlang application for consuming, producing and manipulating json.") - (home-page "https://github.com/talentdeficit/jsx") - (license license:expat))) - -(define-public erlang-providers - (package - (name "erlang-providers") - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "providers" version)) - (sha256 - (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-erlware-commons erlang-getopt)) - (home-page "https://github.com/tsloughter/providers") - (synopsis "Erlang providers library") - (description "This package provides an Erlang providers library.") - (license license:asl2.0))) - -(define-public erlang-relx - (package - (name "erlang-relx") - (version "4.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "relx" version)) - (sha256 - (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-bbmustache)) - (home-page "https://erlware.github.io/relx/") - (synopsis "Release assembler for Erlang/OTP Releases") - (description "Relx assembles releases for an Erlang/OTP release. Given a -release specification and a list of directories in which to search for OTP -applications it will generate a release output. That output depends heavily on -what plugins available and what options are defined, but usually it is simply -a well configured release directory.") - (license license:asl2.0))) - -(define-public erlang-ssl-verify-fun - (package - (name "erlang-ssl-verify-fun") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "ssl_verify_fun" version)) - (sha256 - (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) - (build-system rebar-build-system) - (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") - (synopsis "SSL verification functions for Erlang") - (description "This package provides SSL verification functions for -Erlang.") - (license license:expat))) + (license (list license:asl2.0 + license:bsd-2 + license:bsd-3 + license:expat + license:lgpl2.0+ + license:tcl/tk + license:zlib)))) (define-public rebar3 (package @@ -616,56 +238,71 @@ (define-public rebar3 (build-system gnu-build-system) ;; TODO: remove vendored modules, install man-page, install lib(?) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'bootstrap) - (add-after 'unpack 'unpack-dependency-sources - (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (pkgname) - (let* ((src (string-append pkgname "-source")) - (input (assoc-ref inputs src)) - (checkouts-dir (string-append "_checkouts/" pkgname)) - (lib-dir (string-append "_build/default/lib/" pkgname))) - (mkdir-p checkouts-dir) - (invoke "tar" "-xf" input "-C" checkouts-dir) - (invoke "tar" "-xzf" - (pk (string-append checkouts-dir "/contents.tar.gz")) - "-C" checkouts-dir) - (mkdir-p lib-dir) - (copy-recursively checkouts-dir lib-dir))) - (list "bbmustache" "certifi" "cf" "cth_readable" - "eunit_formatters" "getopt" "hex_core" "erlware_commons" - "parse_trans" "relx" "ssl_verify_fun" "providers")))) - (delete 'configure) - (replace 'build - (lambda _ - (setenv "HOME" (getcwd)) - (invoke "./bootstrap"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (install-file "rebar3" (string-append out "/bin"))))) - (delete 'check)))) - (native-inputs - (list erlang)) - (inputs - `(("bbmustache-source" ,(package-source erlang-bbmustache)) - ("certifi-source" ,(package-source erlang-certifi)) - ("cf-source" ,(package-source erlang-cf)) - ("cth_readable-source" ,(package-source erlang-cth-readable)) - ("erlware_commons-source" ,(package-source erlang-erlware-commons)) - ("eunit_formatters-source" ,(package-source erlang-eunit-formatters)) - ("getopt-source" ,(package-source erlang-getopt)) - ("hex_core-source" ,(package-source erlang-hex-core)) - ("parse_trans-source" ,(package-source erlang-parse-trans)) - ("relx-source" ,(package-source erlang-relx)) - ("ssl_verify_fun-source" ,(package-source erlang-ssl-verify-fun)) - ("providers-source" ,(package-source erlang-providers)))) + `(#:phases (modify-phases %standard-phases + (delete 'bootstrap) + (add-after 'unpack 'unpack-dependency-sources + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (pkgname) + (let* ((src (string-append pkgname "-source")) + (input (assoc-ref inputs src)) + (checkouts-dir (string-append + "_checkouts/" pkgname)) + (lib-dir (string-append + "_build/default/lib/" + pkgname))) + (mkdir-p checkouts-dir) + (invoke "tar" "-xf" input "-C" + checkouts-dir) + (invoke "tar" "-xzf" + (pk (string-append checkouts-dir + "/contents.tar.gz")) "-C" + checkouts-dir) + (mkdir-p lib-dir) + (copy-recursively checkouts-dir lib-dir))) + (list "bbmustache" + "certifi" + "cf" + "cth_readable" + "eunit_formatters" + "getopt" + "hex_core" + "erlware_commons" + "parse_trans" + "relx" + "ssl_verify_fun" + "providers")))) + (delete 'configure) + (replace 'build + (lambda _ + (setenv "HOME" + (getcwd)) + (invoke "./bootstrap"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (install-file "rebar3" + (string-append out "/bin"))))) + (delete 'check)))) + (native-inputs (list erlang)) + (inputs `(("bbmustache-source" ,(package-source erlang-bbmustache)) + ("certifi-source" ,(package-source erlang-certifi)) + ("cf-source" ,(package-source erlang-cf)) + ("cth_readable-source" ,(package-source erlang-cth-readable)) + ("erlware_commons-source" ,(package-source + erlang-erlware-commons)) + ("eunit_formatters-source" ,(package-source + erlang-eunit-formatters)) + ("getopt-source" ,(package-source erlang-getopt)) + ("hex_core-source" ,(package-source erlang-hex-core)) + ("parse_trans-source" ,(package-source erlang-parse-trans)) + ("relx-source" ,(package-source erlang-relx)) + ("ssl_verify_fun-source" ,(package-source erlang-ssl-verify-fun)) + ("providers-source" ,(package-source erlang-providers)))) (home-page "https://rebar3.org/") (synopsis "Sophisticated build-tool for Erlang projects that follows OTP principles") - (description "@code{rebar3} is an Erlang build tool that makes it easy to + (description + "@code{rebar3} is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases. @code{rebar3} is a self-contained Erlang script, so it's easy to distribute or @@ -676,84 +313,19 @@ (define-public rebar3 of locations (git, hg, etc).") (license license:asl2.0))) -(define-public rebar3-raw-deps - (package - (name "rebar3-raw-deps") - (version "2.0.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_raw_deps" version)) - (sha256 - (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) - (build-system rebar-build-system) - (home-page "https://github.com/soranoba/rebar3_raw_deps") - (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") - (description "This plugin provides support for handling non-OTP -applications as a dependent libraries.") - (license license:expat))) - -(define-public rebar3-git-vsn - (package - (name "rebar3-git-vsn") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_git_vsn" version)) - (sha256 - (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) - (build-system rebar-build-system) - (inputs - (list git-minimal/pinned)) - (arguments - `(;; Running the tests require binary artifact (tar-file containing - ;; samples git repos) TODO: remove these from the source - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((git (assoc-ref inputs "git-minimal"))) - (substitute* "src/rebar3_git_vsn.erl" - (("rebar_utils:sh\\(\"git " _) - (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) - (home-page "https://github.com/soranoba/rebar3_git_vsn") - (synopsis "Rebar3 plugin for generating the version from git") - (description "This plugin adds support for generating the version from -a git checkout.") - (license license:expat))) - -(define-public rebar3-proper - (package - (name "rebar3-proper") - (version "0.12.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_proper" version)) - (sha256 - (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) - (build-system rebar-build-system) - (home-page "https://github.com/ferd/rebar3_proper") - (synopsis "Rebar3 PropEr plugin") - (description "This plugin allows running PropEr test suites from within -rebar3.") - (license license:bsd-3))) - (define-public erlang-lfe (package (name "erlang-lfe") (version "2.1.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lfe/lfe") - (commit "v2.1.2"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lfe/lfe") + (commit "v2.1.2"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy")))) (build-system gnu-build-system) (arguments (list @@ -761,49 +333,47 @@ (define-public erlang-lfe (srfi srfi-26) (guix build gnu-build-system) (guix build utils)) - #:make-flags #~(list (string-append "PREFIX=" #$output) "CC=gcc") - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - ;; The following is inspired by rebar-build-system.scm - (add-before 'check 'erlang-depends - (lambda* (#:key inputs #:allow-other-keys) - (define input-directories - (list #$(this-package-native-input "rebar3-proper") - #$(this-package-native-input "erlang-proper"))) - (mkdir-p "_checkouts") - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir "/lib/erlang/lib"))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((src (string-append elibdir "/" dirname)) - (dest (string-append "_checkouts/" dirname))) - (when (not (file-exists? dest)) - ;; Symlinking will not work, since rebar3 will try - ;; to overwrite the _build directory several times - ;; with the contents of _checkout, so we copy the - ;; directory tree to _checkout and make it - ;; writable. - (copy-recursively src dest #:follow-symlinks? #t) - (for-each (cut chmod <> #o777) - (find-files dest))))) - (scandir elibdir (lambda (file) - (and (not (member file '("." ".."))) - (file-is-directory? - (string-append elibdir - "/" - file))))))))) - input-directories))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (begin - (setenv "REBAR_CACHE_DIR" "/tmp") - (invoke "make" "-j" (number->string (parallel-job-count)) - "tests")))))))) - (native-inputs (list rebar3 rebar3-proper erlang-proper)) + #:make-flags #~(list (string-append "PREFIX=" + #$output) "CC=gcc") + #:phases #~(modify-phases %standard-phases + (delete 'configure) + ;; The following is inspired by rebar-build-system.scm + (add-before 'check 'erlang-depends + (lambda* (#:key inputs #:allow-other-keys) + (define input-directories + (list #$(this-package-native-input "rebar3-proper") + #$(this-package-native-input "erlang-proper"))) + (mkdir-p "_checkouts") + (for-each + (lambda (input-dir) + (let ((elibdir (string-append input-dir "/lib/erlang/lib"))) + (when (directory-exists? elibdir) + (for-each + (lambda (dirname) + (let ((src (string-append elibdir "/" dirname)) + (dest (string-append "_checkouts/" dirname))) + (when (not (file-exists? dest)) + ;; Symlinking will not work, since rebar3 will try + ;; to overwrite the _build directory several times + ;; with the contents of _checkout, so we copy the + ;; directory tree to _checkout and make it + ;; writable. + (copy-recursively src dest #:follow-symlinks? #t) + (for-each (cut chmod <> 511) (find-files dest))))) + (scandir elibdir + (lambda (file) + (and (not (member file '("." ".."))) + (file-is-directory? (string-append elibdir "/" file))))))))) + input-directories))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (begin + (setenv "REBAR_CACHE_DIR" "/tmp") + (invoke "make" "-j" + (number->string (parallel-job-count)) + "tests")))))))) + (native-inputs (list rebar3 erlang-rebar3-proper erlang-proper)) (propagated-inputs (list erlang)) (home-page "https://github.com/lfe/lfe") (synopsis "Lisp Flavoured Erlang") @@ -812,3 +382,9 @@ (define-public erlang-lfe compiler. Code produced with it is compatible with \"normal\" Erlang code. An LFE evaluator and shell is also included.") (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 00000000..8201b715 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,185 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (gnu packages base) + #:use-module (gnu packages elixir) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix search-paths) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix store) + #:use-module (guix gexp) + #:use-module (guix utils) + #:export (mix-build-system hexpm-uri)) + +;; +;; hexpm +;; + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. + +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + (string-append "https://repo.hex.pm/tarballs/" + (string-replace-substring (strip-elixir-prefix name) "-" "_") + "-" version ".tar")) + +;; +;; utils +;; + +(define utils-locales + (make-glibc-utf8-locales glibc + #:locales (list "en_US") + #:name "glibc-utf8-locales")) + +(define (utils-elixir-default) + "Return the default Elixir package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir + 'elixir))) + +(define utils-imported-modules + `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + +(define utils-modules + '((guix build mix-build-system) + (guix build utils))) + +;; +;; mix +;; + +(define* (mix-build name + inputs + #:key source + (tests? #t) + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules utils-imported-modules) + (modules utils-modules)) + "Build SOURCE using Elixir, and with INPUTS." + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:phases #$(if (pair? + phases) + (sexp->gexp + phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad + ((guile (package->derivation (or guile + (default-guile)) system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (mix-lower name + #:key source + inputs + native-inputs + outputs + system + target + (elixir (utils-elixir-default)) + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + + ;; The value associated to these keywords are used in the bag below and are + ;; not to be used in the arguments. + (define private-keywords + '(#:inputs #:native-inputs #:outputs #:system #:target #:elixir)) + + ;; All that is necessary to complete the build. + (define build-inputs + ;; If these packages are not present, then Elixir emits these errors: + ;; dirname: command not found + ;; basename: command not found + `(,@(standard-packages) + + ;; If no UTF-8 is present, then Elixir emits this warning: + ;; + ;; warning: the VM is running with native name encoding of latin1 + ;; which may cause Elixir to malfunction as it expects utf8. Please + ;; ensure your locale is set to UTF-8 (which can be verified by + ;; running "locale" in your shell) + ("glibc-utf8-locales" ,utils-locales) + + ("elixir" ,elixir) + + ;; If Hex is not present, mix cannot build packages. + ("mix-hex" ,mix-hex) + + ,@native-inputs + + ,@inputs)) + + (define host-inputs + (if target inputs + '())) + + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs host-inputs) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments)))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower mix-lower))) + +;;; mix.scm ends here diff --git a/guix/build-system/rebar.scm b/guix/build-system/rebar.scm index de1294ec..e1258a78 100644 --- a/guix/build-system/rebar.scm +++ b/guix/build-system/rebar.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,99 +22,171 @@ (define-module (guix build-system rebar) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix gexp) + #:use-module (ice-9 regex) #:use-module (guix packages) #:use-module (guix monads) #:use-module (guix search-paths) + #:use-module (ice-9 match) #:use-module (guix build-system) #:use-module (guix build-system gnu) - #:export (hexpm-uri - hexpm-package-url - %rebar-build-system-modules - rebar-build - rebar-build-system)) + #:use-module (srfi srfi-1) + #:export (hexpm-uri hexpm-package-url %rebar-build-system-modules + rebar-build rebar-build-system)) ;;; -;;; Definitions for the hex.pm repository, +;;; pkg-name ;;; -;; URL and paths from -;; https://github.com/hexpm/specifications/blob/master/endpoints.md -(define %hexpm-repo-url +(define pkg-name-prefix + "erlang-") + +;; Pattern that an Erlang Guix package is expected to match. +(define pkg-name-prefix-re + (format #f "^~a(.*)" pkg-name-prefix)) + +(define (pkg-name->match name) + "Return the match object from NAME if NAME starts with pkg-name-prefix." + (string-match pkg-name-prefix-re name)) + +(define (pkg-name? name) + "Test if NAME is the name of an Erlang Guix package. + +Example: erlang-ssl-verify-fun is the name of an Erlang Guix package." + (or (pkg-name->match name) #f)) + +(define (pkg-name->suffix name) + "Return the suffix of the name of an Erlang Guix package." + (regexp-substitute #f + (pkg-name->match name) 1)) + +(define* (pkg-name->library-directory-name name + #:key (version "")) + "Return the name of the library directory associated to NAME. + +Example: if an Erlang Guix package name is \"erlang-ssl-verify-fun\" and its +version is 1.2.3, then the associated library directory name is: +\"ssl_verify_fun-1.2.3\". + +See: + - \"Library directory\" description: https://www.erlang.org/doc/man/code#code-path +" + (string-append (string-replace-substring (pkg-name->suffix name) "-" "_") + (if (string= version "") "" + (string-append "-" version)))) + +;;; +;;; hexpm +;;; + +;; See: https://github.com/hexpm/specifications/blob/master/endpoints.md +(define hexpm (make-parameter "https://repo.hex.pm")) -(define hexpm-package-url - (string-append (%hexpm-repo-url) "/tarballs/")) +(define hexpm-tarballs + (string-append (hexpm) "/tarballs/")) -(define (hexpm-uri name version) +(define (hexpm->uri name version) "Return a URI string for the package hosted at hex.pm corresponding to NAME -and VERSION." - (string-append hexpm-package-url name "-" version ".tar")) +and VERSION. + +XXX: should a warning be emitted? +If NAME is not an Erlang Guix package name, then emit a warning. The download +will fail if it is not correct anyway." + + (define (warn-about name) + (format #t "AssertionWarning 4dcbff27 + Assertion: re matches name. + re = ~a + name = ~a +" pkg-name-prefix-re name) name) + + (define (name->archive-name name) + (if (pkg-name? name) + (string-append (pkg-name->library-directory-name name + #:version version) + ".tar") + (string-append (warn-about name) "-" version ".tar"))) + + (string-append hexpm-tarballs + (name->archive-name name))) ;; -;; Standard build procedure for Erlang packages using Rebar. +;; utils ;; -(define %rebar-build-system-modules - ;; Build-side modules imported by default. - `((guix build rebar-build-system) - ,@%gnu-build-system-modules)) - -(define (default-rebar3) - "Return the default Rebar3 package." +(define (utils-rebar-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) - (module-ref erlang-mod 'rebar3))) + (module-ref erlang-mod + 'rebar3))) -(define (default-erlang) - "Return the default Erlang package." +(define (utils-erlang-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) - (module-ref erlang-mod 'erlang))) - -(define* (lower name - #:key source inputs native-inputs outputs system target - (rebar (default-rebar3)) - (erlang (default-erlang)) - #:allow-other-keys - #:rest arguments) - "Return a bag for NAME from the given arguments." - (define private-keywords - '(#:target #:rebar #:erlang #:inputs #:native-inputs)) - - (and (not target) ;XXX: no cross-compilation - (bag - (name name) - (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs)) - (build-inputs `(("rebar" ,rebar) - ("erlang" ,erlang) ;; for escriptize - ,@native-inputs - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) - (outputs outputs) - (build rebar-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) - -(define* (rebar-build name inputs - #:key - guile source - (rebar-flags ''("skip_deps=true" "-vv")) - (tests? #t) - (test-target "eunit") - ;; TODO: install-name ; default: based on guix package name - (install-profile "default") - (phases '(@ (guix build rebar-build-system) - %standard-phases)) - (outputs '("out")) - (search-paths '()) - (native-search-paths '()) - (system (%current-system)) - (imported-modules %rebar-build-system-modules) - (modules '((guix build rebar-build-system) - (guix build utils)))) + (module-ref erlang-mod + 'erlang))) + +(define utils-imported-modules + `((guix build rebar-build-system) + ,@%gnu-build-system-modules)) + +;; +;; source +;; +;; If s is a Source, then s has the form (list ) where: +;; is a string representing the name of a library directory. +;; is an origin (see: guix/packages.scm) which represents the +;; source code associated to this library. +;; + +(define source->name + car) +(define source->origin + cadr) + +;; +;; input +;; +;; If i is an Input, then i has the form (list ) where: +;; is a string representing the name of a package. +;; is a package with the associated name. + +(define input->name + car) +(define input->package + cadr) + +(define (input->source input) + "Return a Source associated to the Input INPUT." + (match input + ((name package) + (list (pkg-name->library-directory-name name) + (package-source package))))) + +;; +;; rebar +;; + +(define* (rebar-build name + inputs + #:key guile + source + ;; XXX: these are useless. + (rebar-flags ''("skip_deps=true" "-vv")) + (tests? #t) + (test-target "eunit") + ;; TODO: install-name ; default: based on guix package name + (install-profile "default") + (phases '(@ (guix build rebar-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (system (%current-system)) + (imported-modules utils-imported-modules) + (modules '((guix build rebar-build-system) + (guix build utils))) + (sources-erlang '())) "Build SOURCE with INPUTS." (define builder @@ -122,35 +195,94 @@ (define* (rebar-build name inputs (use-modules #$@(sexp->gexp modules)) #$(with-build-variables inputs outputs + #~(rebar-build #:source #+source - #:system #$system - #:name #$name - #:rebar-flags #$rebar-flags - #:tests? #$tests? - #:test-target #$test-target - ;; TODO: #:install-name #$install-name - #:install-profile #$install-profile - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:outputs %outputs - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:inputs %build-inputs))))) - - (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) - system #:graft? #f))) + #:sources-erlang '#$sources-erlang + #:system #$system + #:name #$name + #:rebar-flags #$rebar-flags + #:tests? #$tests? + #:test-target #$test-target + ;; TODO: #:install-name #$install-name + #:install-profile #$install-profile + #:phases #$(if (pair? + phases) + (sexp->gexp + phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad + ((guile (package->derivation (or guile + (default-guile)) system + #:graft? #f))) + ;; Note: Always pass #:graft? #f. Without it, ALLOWED-REFERENCES & ;; co. would be interpreted as referring to grafted packages. - (gexp->derivation name builder + (gexp->derivation name + builder #:system system #:target #f #:graft? #f #:guile-for-build guile))) +(define* (rebar-lower name + #:key (erlang (utils-erlang-default)) + inputs + native-inputs + outputs + (rebar (utils-rebar-default)) + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME from the given arguments." + + (let* ((erlang-packages ;List of Erlang packages. + (filter (lambda (input) + (pkg-name? (input->name input))) + (append inputs native-inputs))) + + (erlang-sources (map (lambda (input) + (input->source input)) erlang-packages))) + + (define private-keywords + '(#:target #:rebar #:erlang #:inputs #:native-inputs #:sources-erlang)) + + (and (not target) ;XXX: no cross-compilation + (bag (name name) + (system system) + (host-inputs inputs) + (build-inputs `(,@(standard-packages) ("erlang" ,erlang) + ("rebar" ,rebar) + ,@inputs + ,@native-inputs)) + (outputs outputs) + (build rebar-build) + (arguments (append (list #:sources-erlang erlang-sources) + (strip-keyword-arguments private-keywords + arguments))))))) + (define rebar-build-system - (build-system - (name 'rebar) - (description "The standard Rebar build system") - (lower lower))) + (build-system (name 'rebar) + (description "The standard Rebar build system") + (lower rebar-lower))) + +;;; +;;; Exports +;;; + +(define hexpm-uri + hexpm->uri) + +(define hexpm-package-url + hexpm-tarballs) + +(define %rebar-build-system-modules + utils-imported-modules) diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 00000000..1d17ae49 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,373 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Builder-side code of the standard Mix package build procedure. +;; +;; The standard procedure is presented here: +;; https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html#project-compilation +;; +;; It boils down to: +;; 1) MIX_ENV=prod mix compile +;; 2) mix test +;; +;; Most of the code here comes from the necessity to convince mix to compile +;; without accessing the network. Here is the procedure adapted for Guix: +;; if: +;; 1) `' is an archive of a package downloaded from hex.pm. +;; See: https://github.com/hexpm/specifications/blob/main/package_tarball.md +;; 2) `' is the name of the Hex library, e.g. hex-2.0.5. +;; `' is the path in the store of Hex. +;; See: `(gnu packages elixir)' +;; +;; then the steps to build a package pkg are: +;; 1) tar +;; 2) tar contents.tar.gz +;; 3) export MIX_ENV=prod +;; 4) export MIX_HOME=.mix +;; 5) export MIX_ARCHIVES="$(MIX_HOME)"/archives +;; 6) mkdir -p "$(MIX_ARCHIVES)" +;; 7) ln -snd /lib/ "$(MIX_ARCHIVES)"// +;; 8) is either `prod' or `shared' depending on mix.exs +;; see: `build_per_environment' in mix documentation. +;; 9) For all Elixir or Erlang package p in inputs, we have the name +;; of the associated library (e.g. hex-2.0.5). We must: +;; install p under _build//lib/ +;; install p source _build//lib/ +;; 10) mix compile --no-deps-check +;; 11) mix test --no-deps-check +;; 12) install build artifacts under #$out/lib/elixir/X.Y/ +;; where X and Y are the major and minor version numbers of Elixir. +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module (guix build utils) + #:use-module ((guix build gnu-build-system) + #:prefix gnu:) + #:use-module (ice-9 regex) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:export (mix-build strip-elixir-prefix %standard-phases)) + +;; +;; version +;; + +;; XXX: copied from (guix utils) since not available from the build side. +;; XXX: There may be a way to avoid this duplicated code? +(define (version-prefix version-string num-parts) + "Truncate version-string to the first num-parts components of the version. +For example, (version-prefix \"2.1.47.4.23\" 3) returns \"2.1.47\"" + (string-join (take (string-split version-string #\.) num-parts) ".")) + +;; XXX: copied from (guix utils) since not available from the build side. +;; XXX: There may be a way to avoid this duplicated code? +(define (version-major+minor version-string) + "Return \".\", where major and minor are the major and +minor version numbers from version-string." + (version-prefix version-string 2)) + +;; +;; pkg +;; + +;; The prefix of Elixir packages as a regular expression. +(define pkg-elixir-prefix + "^elixir-") + +;; The prefix of Erlang packages as a regular expression. +(define pkg-erlang-prefix + "^erlang-") + +(define (pkg-name->library-name name) + "Return the name of the Mix project deduced from the name of the Guix package. + +For example: elixir-a-pkg-1.0.2 → a_pkg" + + (let* ((re (format #f "~a(.*)" pkg-elixir-prefix)) + (re-match (string-match re name)) + (name-version (if re-match + (regexp-substitute #f re-match 1) + (error (format #f "AssertionError d722a480 + Assertion: re matches name. + re = ~a + name = ~a" re + name))))) + + ;; A snake_case name. + (string-join (drop-right (string-split name-version #\-) 1) "_"))) + +(define (pkg->dir-install elixir-store pkg-store pkg-name) + "Return the path under the path PKG-STORE where to install the package named PKG-NAME given the path of the Elixir used to build ELIXIR-STORE. + +Example: + - if: + - elixir-store = /gnu/store/…elixir-1.14.0 + - pkg-store = /gnu/store/…kv-1.0.0 + - pkg-name = elixir-kv + - then: + - (pkg->dir-install elixir-store pkg-store pkg-name) = /gnu/store/…kv-1.0.0/lib/elixir/1.14/kv" + (let ((X.Y (path->elixir-X.Y elixir-store)) + (lib-name (pkg-name->library-name pkg-name))) + (string-append (path->elixir-lib pkg-store X.Y) "/" lib-name))) + +;; +;; mix +;; + +;; See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments +(define mix-MIX_HOME + "MIX_HOME") +(define mix-MIX_ENV + "MIX_ENV") +(define mix-MIX_ENV-prod + "prod") + +(define (mix-target-dir) + "Return the directory where build artifacts are to be installed according to +MIX_ENV in the current directory." + + (format #f "_build/~a/lib" + (getenv mix-MIX_ENV))) + +;; +;; path +;; + +(define (path->elixir-lib path X.Y) + "Return the path of the directory where libraries of an Elixir package are installed in the store." + (string-append path "/lib/elixir/" X.Y)) + +(define (path->erlang-lib path) + "Return the path of the directory where libraries of an Erlang package are installed in the store." + (string-append path "/lib/erlang/lib")) + +(define (path->elixir-X.Y elixir) + "Given a path in the store where elixir has been installed, return its +version as X.Y where X and Y are its major and minor versions." + (let ((version (last (string-split elixir #\-)))) + (version-major+minor version))) + +;; +;; phase +;; + +(define* (phase-unpack #:key source #:allow-other-keys) + "Unpack SOURCE." + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" "contents.tar.gz")) + +(define* (phase-configure-mix-env #:key (mix-env mix-MIX_ENV-prod) + #:allow-other-keys) + "Set default MIX_ENV." + + (let ((values (list mix-MIX_ENV-prod "shared"))) + (when (not (member mix-env values string=?)) + (error (format #f "AssertionError 45f9a67d + Assertion: mix-env is one of values. + values = ~a +" values))) + (setenv mix-MIX_ENV mix-env))) + +(define* (phase-install-hex #:key inputs name #:allow-other-keys) + "Install Hex." + + (let* ((hex-lib (string-append (assoc-ref inputs "mix-hex") "/lib")) + (hex-name (last (scandir hex-lib))) + (MIX_ARCHIVES "MIX_ARCHIVES") + (hex-archive-path "")) + + (setenv mix-MIX_HOME ".mix") + (setenv MIX_ARCHIVES + (string-append (getenv mix-MIX_HOME) "/archives")) + (set! hex-archive-path + (string-append (getenv MIX_ARCHIVES) "/" hex-name)) + (mkdir-p hex-archive-path) + (symlink (string-append hex-lib "/" hex-name) + (string-append hex-archive-path "/" hex-name)))) + +;; Below are definitions useful to understand the following code. +;; +;; - « p : StorePath » means that « p is a String that represents a path of a +;; package in the store ». +;; +;; - « i : Input » means that i has the form (key . path) where key : String that +;; represent the name of a package and path : StorePath. +;; +;; - « al : AList » means that « al is an Association List ». +;; +;; - « al : AList Input » means that « al is an Association List of Input ». +;; +;; - « p : Pkg » means that p has the form (type . path) where type is either +;; 'erlang or 'elixir and path : StorePath. +;; +;; - « l : Lib » means that p has the form (lib-name . lib-path) where +;; lib-name is the name of an Erlang or Elixir library and lib-path is its path. +(define* (phase-install-dependencies #:key inputs #:allow-other-keys) + "Install dependencies." + + (let ((target-dir (mix-target-dir)) + (X.Y (path->elixir-X.Y (assoc-ref inputs "elixir")))) + + ;; Where to install the dependencies. + (mkdir-p target-dir) + + (define (install-lib lib) + "Install a Lib LIB under target-dir." + ;; XXX: use match + (let ((lib-name (car lib)) + (lib-path (cdr lib))) + (let ((target (string-append target-dir "/" lib-name))) + (symlink lib-path target)))) + + (define (install-libs libraries) + "Install the set of the list of Lib LIBRARIES under target-dir." + (for-each (lambda (lib) + (install-lib lib)) libraries)) + + (define (pkg->libraries pkg) + "Return the list of Lib libraries associated to a Pkg." + ;; XXX: use match + (let* ((pkg-type (car pkg)) + (pkg-path (cdr pkg)) + (lib-folder (cond + ((eq? pkg-type + 'elixir) + (path->elixir-lib pkg-path X.Y)) + ((eq? pkg-type + 'erlang) + (path->erlang-lib pkg-path))))) + (map (lambda (lib-name) + (cons lib-name + (string-append lib-folder "/" lib-name))) + (drop (scandir lib-folder) 2)))) + + (define (install-pkg-libraries pkg) + "Install all libraries of a given Pkg PKG under target-dir." + (install-libs (pkg->libraries pkg))) + + (define (input->pkg input) + "Return a Pkg if Input INPUT is an Erlang or Elixir Input else #f." + (let ((type? (cond + ((string-match pkg-erlang-prefix + (car input)) + 'erlang) + ((string-match pkg-elixir-prefix + (car input)) + 'elixir) + (#t #f)))) + (if type? + (cons type? + (cdr input)) #f))) + + (define (inputs->pkgs inputs) + "Return the a list of Pkg, one for each Erlang or Elixir Input in INPUTS." + (filter pair? + (map input->pkg inputs))) + + (for-each (lambda (pkg) + (install-pkg-libraries pkg)) + (inputs->pkgs inputs)))) + +(define* (phase-build . args_ignored) + "Builds the Mix project according to MIX_ENV." + (invoke "mix" "compile" "--no-deps-check")) + +(define* (phase-check #:key (tests? #t) name #:allow-other-keys) + "Test the Mix project." + (if tests? + (begin + (let ((mix-env (getenv mix-MIX_ENV))) + (setenv mix-MIX_ENV "test") + (invoke "mix" "test" "--no-deps-check") + (setenv mix-MIX_ENV mix-env))) + (format #t "Tests have been skipped since test? parameter value was: ~a. +" + tests?))) + +(define* (phase-remove-mix-dirs . ignored_args) + "Remove all .mix/ directories." + (let ((mix-dirs (find-files "." + (file-name-predicate (format #f "\\~a$" + (getenv + mix-MIX_HOME))) + #:directories? #t))) + (for-each (lambda (mix-dir) + (delete-file-recursively mix-dir)) mix-dirs))) + +(define* (phase-install #:key inputs outputs name #:allow-other-keys) + "Install build artifacts in the store." + (let ((dir-build (string-append (mix-target-dir) "/" + (pkg-name->library-name name))) + (dir-install (pkg->dir-install (assoc-ref inputs "elixir") + (assoc-ref outputs "out") name))) + (mkdir-p dir-install) + (copy-recursively dir-build dir-install + #:follow-symlinks? #t))) + +(define mix-%standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'unpack + phase-unpack) + (add-after 'unpack 'condifure-mix-env + phase-configure-mix-env) + (add-after 'patch-generated-file-shebangs 'install-hex + phase-install-hex) + (add-after 'install-hex 'install-dependencies + phase-install-dependencies) + (replace 'build + phase-build) + (replace 'check + phase-check) + (add-before 'install 'remove-mix-dirs + phase-remove-mix-dirs) + (replace 'install + phase-install))) + +(define* (mix-build #:key inputs + (phases mix-%standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build + #:inputs inputs + #:phases phases + args)) + +;; +;; This section gather exports. +;; + +(define (strip-elixir-prefix name) + (let* ((re (format #f "~a(.*)" pkg-elixir-prefix)) + (re-match (string-match re name))) + + (if re-match + (regexp-substitute #f re-match 1) + (error (format #f "AssertionError d722a480 + Assertion: re matches name. + re = ~a + name = ~a" re name))))) + +(define %standard-phases + mix-%standard-phases) + +;;; mix-build-system.scm ends here diff --git a/guix/build/rebar-build-system.scm b/guix/build/rebar-build-system.scm index fb664228..80813225 100644 --- a/guix/build/rebar-build-system.scm +++ b/guix/build/rebar-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2019 Björn Höfling ;;; Copyright © 2020, 2022 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,129 +20,222 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build rebar-build-system) - #:use-module ((guix build gnu-build-system) #:prefix gnu:) - #:use-module ((guix build utils) #:hide (delete)) + #:use-module ((guix build gnu-build-system) + #:prefix gnu:) + #:use-module ((guix build utils) + #:hide (delete)) #:use-module (ice-9 match) #:use-module (ice-9 ftw) + #:use-module (ice-9 string-fun) + #:use-module (ice-9 receive) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) - #:export (rebar-build - %standard-phases)) + #:export (rebar-build %standard-phases)) ;; ;; Builder-side code of the standard build procedure for Erlang packages using ;; rebar3. ;; -;; TODO: Think about whether bindir ("ebin"), libdir ("priv") and includedir -;; "(include") need to be configurable -(define %erlang-libdir "/lib/erlang/lib") - -(define* (erlang-depends #:key inputs #:allow-other-keys) - (define input-directories - (match inputs - (((_ . dir) ...) - dir))) - (mkdir-p "_checkouts") - - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir %erlang-libdir))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((dest (string-append elibdir "/" dirname)) - (link (string-append "_checkouts/" dirname))) - (when (not (file-exists? link)) - ;; RETHINK: Maybe better copy and make writable to avoid some - ;; error messages e.g. when using with rebar3-git-vsn. - (symlink dest link)))) - (list-directories elibdir))))) - input-directories)) - -(define* (unpack #:key source #:allow-other-keys) - "Unpack SOURCE in the working directory, and change directory within the -source. When SOURCE is a directory, copy it in a sub-directory of the current -working directory." - (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) - (gnu-unpack #:source source) - ;; Packages from hex.pm typically have a contents.tar.gz containing the - ;; actual source. If this tar file exists, extract it. - (when (file-exists? "contents.tar.gz") - (invoke "tar" "xvf" "contents.tar.gz")))) - -(define* (build #:key (rebar-flags '()) #:allow-other-keys) - (apply invoke `("rebar3" "compile" ,@rebar-flags))) - -(define* (check #:key target (rebar-flags '()) (tests? (not target)) - (test-target "eunit") - #:allow-other-keys) - (if tests? - (apply invoke `("rebar3" ,test-target ,@rebar-flags)) - (format #t "test suite not run~%"))) +;; +;; utils +;; -(define (erlang-package? name) - "Check if NAME correspond to the name of an Erlang package." - (string-prefix? "erlang-" name)) - -(define (package-name-version->erlang-name name+ver) - "Convert the Guix package NAME-VER to the corresponding Erlang name-version -format. Essentially drop the prefix used in Guix and replace dashes by -underscores." - (let* ((name- (package-name->name+version name+ver))) - (string-join - (string-split - (if (erlang-package? name-) ; checks for "erlang-" prefix - (string-drop name- (string-length "erlang-")) - name-) - #\-) - "_"))) - -(define (list-directories directory) +(define (utils-list-directories directory) "Return file names of the sub-directory of DIRECTORY." (scandir directory (lambda (file) - (and (not (member file '("." ".."))) + (and (not (member file + '("." ".."))) (file-is-directory? (string-append directory "/" file)))))) -(define* (install #:key name outputs - (install-name (package-name-version->erlang-name name)) - (install-profile "default") ; build profile outputs to install - #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pkg-dir (string-append out %erlang-libdir "/" install-name))) - (let ((bin-dir (string-append "_build/" install-profile "/bin")) - (lib-dir (string-append "_build/" install-profile "/lib"))) - ;; install _build/PROFILE/bin - (when (file-exists? bin-dir) - (copy-recursively bin-dir out #:follow-symlinks? #t)) - ;; install _build/PROFILE/lib/*/{ebin,include,priv} - (for-each - (lambda (*) - (for-each - (lambda (dirname) - (let ((src-dir (string-append lib-dir "/" * "/" dirname)) - (dst-dir (string-append pkg-dir "/" dirname))) - (when (file-exists? src-dir) - (copy-recursively src-dir dst-dir #:follow-symlinks? #t)) - (false-if-exception - (delete-file (string-append dst-dir "/.gitignore"))))) - '("ebin" "include" "priv"))) - (list-directories lib-dir)) - (false-if-exception - (delete-file (string-append pkg-dir "/priv/Run-eunit-loop.expect")))))) - -(define %standard-phases +;; +;; source +;; + +(define source->name + car) +(define source->tar + cadr) + +;; +;; tar +;; + +(define* (tar-unpack tar) + (invoke "tar" "xvf" tar) + (invoke "tar" "xvf" "contents.tar.gz") + + ;; Prevent an error message at install phase. + ;; . + ;; rebar3 compile produces a symlinks like so in _build/: + ;; priv -> ../../../../priv + ;; priv -> ../../../../include + ;; + ;; The install phase copies whatever has been built to the output directory. + ;; If the priv/ directory is absent, then an error `i/o error: + ;; _build/…/priv: No such file or directory' occurs. So, we make sure that a + ;; directory exists. + (for-each (lambda (dir) + (mkdir-p dir)) + (list "priv" "include"))) + +;;; +;;; pkg-name +;;; + +(define pkg-name-prefix + "erlang-") + +(define pkg-name-prefix-re + (format #f "^~a(.*)" pkg-name-prefix)) + +(define (pkg-name? name) + (string-match (format #f "^~a" pkg-name-prefix) name)) + +(define (pkg-name->name name) + (regexp-substitute #f + (string-match pkg-name-prefix-re name) 1)) + +(define* (pkg-name->lib-name name) + "erlang-a-b-1.0.2 -> a_b-1.0.2" + + (let ((elements (string-split (pkg-name->name name) #\-))) + (string-append (string-join (drop-right elements 1) "_") "-" + (last elements)))) + +(define* (pkg-name->build-dir name + #:key (profile "default")) + (string-append (format #f "_build/~a/lib/" profile) + (car (string-split (pkg-name->lib-name name) #\-)))) + +(define (lib-name-no-version lib-name) + (car (string-split lib-name #\-))) + +;; +;; phase +;; + +(define* (phase-unpack #:key source #:allow-other-keys) + (tar-unpack source)) + +(define (phase-configure-HOME . ignored_args) + "In some cases, it is needed for the environment variable HOME to be defined +as a directory with write permission. + +Examples of errors: + - Could not write to \"/homeless-shelter/.cache/rebar3/hex\". Please ensure the path is writeable. +" + + (let ((HOME "HOME") + (tmp "/tmp")) + (setenv HOME tmp) + (format #t "~a=~a\n" HOME tmp))) + +(define* (phase-configure-dependencies #:key name + version + inputs + sources-erlang + (install-profile "default") + #:allow-other-keys) + + ;; If source in sources-erlang, then install it under _checkouts/. + ;; see: https://rebar3.org/docs/configuration/dependencies/#checkout-dependencies + (let ((_checkouts "_checkouts")) + (mkdir-p _checkouts) + (for-each (lambda (source) + (match source + ((name tar) + (let ((src (string-append _checkouts "/" name))) + (mkdir-p src) + (with-directory-excursion src + (tar-unpack tar)))) + (_ #f))) sources-erlang)) + + ;; If input in inputs is an Erlang package, then install it under _build/. + (let ((_build (format #f "_build/~a/checkouts" install-profile))) + (mkdir-p _build) + (match inputs + (((_ . dirs) ..1) + (for-each (lambda (dir) + (let ((elib (string-append dir "/lib/erlang/lib"))) + (when (directory-exists? elib) + (for-each (lambda (dirname) + (let ((src (string-append elib "/" dirname)) + (dest (string-append _build "/" + (lib-name-no-version + dirname)))) + (copy-recursively src dest + #:log #f) + (mkdir-p (string-append dest "/priv")))) + (utils-list-directories elib))))) dirs)) + (_ #f)))) + +(define* (phase-build #:key name + (rebar-flags '()) #:allow-other-keys) + (apply invoke + `("rebar3" "compile" + ,@rebar-flags))) + +(define* (phase-check #:key target + (rebar-flags '()) + (tests? (not target)) + (test-target "eunit") + #:allow-other-keys) + (if tests? + (apply invoke + `("rebar3" ,test-target + ,@rebar-flags)) + (format #t "test suite not run~%"))) + +(define* (phase-install #:key name outputs + (install-profile "default") #:allow-other-keys) + (let* ((build-dir (pkg-name->build-dir name + #:profile install-profile)) + (out-build-dir (string-append (assoc-ref outputs "out") + "/lib/erlang/lib/" + (pkg-name->lib-name name)))) + + (mkdir-p out-build-dir) + (copy-recursively build-dir out-build-dir + #:follow-symlinks? #t))) + +;; +;; rebar +;; + +(define rebar-%standard-phases (modify-phases gnu:%standard-phases - (replace 'unpack unpack) + (replace 'unpack + phase-unpack) + (add-after 'unpack 'configure-HOME + phase-configure-HOME) (delete 'bootstrap) (delete 'configure) - (add-before 'build 'erlang-depends erlang-depends) - (replace 'build build) - (replace 'check check) - (replace 'install install))) + (add-before 'build 'configure-dependencies + phase-configure-dependencies) + (replace 'build + phase-build) + (replace 'check + phase-check) + (replace 'install + phase-install))) -(define* (rebar-build #:key inputs (phases %standard-phases) +(define* (rebar-build #:key inputs + (phases rebar-%standard-phases) #:allow-other-keys #:rest args) "Build the given Erlang package, applying all of PHASES in order." - (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + (apply gnu:gnu-build + #:inputs inputs + #:phases phases + args)) + +;; +;; Exported bindings. +;; + +(define %standard-phases rebar-%standard-phases) + + +;;; rebar-build-system.scm ends here base-commit: 4dfbc536689b07e56aead3dd864b8af54613d091 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] mix-build-system: draft 1 Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Oct 2023 21:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Cc: Katherine Cox-Buday , Andrew Tropin Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169852947417902 (code B ref 66801); Sat, 28 Oct 2023 21:45:02 +0000 Received: (at 66801) by debbugs.gnu.org; 28 Oct 2023 21:44:34 +0000 Received: from localhost ([127.0.0.1]:39751 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwr6g-0004eg-2I for submit@debbugs.gnu.org; Sat, 28 Oct 2023 17:44:34 -0400 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]:53639) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwr6d-0004eS-M4 for 66801@debbugs.gnu.org; Sat, 28 Oct 2023 17:44:32 -0400 Received: by mail-ed1-x542.google.com with SMTP id 4fb4d7f45d1cf-53dd3f169d8so4873335a12.3 for <66801@debbugs.gnu.org>; Sat, 28 Oct 2023 14:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698529433; x=1699134233; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=74QdysvuwFwc5WngifzvE0hGsA/oGmwdyCcD90u9dSE=; b=TPYtvtDIO3U/sPWdZl3OFo4xjr/nZnJTOhH+7get890MrA4I9rwhyTwmlTNGACT/ek JXyoufsihDJn0fjw4so8gxrK353FZECQlPfBPTkZVi2OWDlqxV2fBridQKe7MOVey1sH t0s1Wvdy8Di5LIKSjl5Rce5nkmNPfQndJ8a5Q/JNz1tWkPPS39KdzCwyZsZSN2XmVs50 qgJ8ZwDRt90+HzM7vWNQk+/cqQe7SK1CC3yr4FVRQD7HEx78GyUYxGMeIeEOvdnTRzRg C+pnVIrWshX6L4IXi5V6BGGLdS8tDwpW8ZWUtKCdtl2HKJ0jGog+L8gUSy/y5knNfSa2 KDxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698529433; x=1699134233; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=74QdysvuwFwc5WngifzvE0hGsA/oGmwdyCcD90u9dSE=; b=T4di9GWUzKFS1EzXrJegT/+m4Cs1G6jWPzNjStutexml+2Z15+PPkWfLIWT9sH5i9f 5/fRcPHRszAnzew5S+vAImAMnRJOwnWWipLYTm1dX/+MChfV8cY1QSKTGROKQOmZzplI 7YtDJ6qrPz64H+8xjFgIvKV51fXau1zGyXaHLW/e8ebXw85bhXT5/wNTj+swRa8puRs5 XiYtYORnEgoD+j1qd2gZavfKfL4mHyLTAU5gd2vkKH9HIDACSwIMzxM04c8LnSPLkEgu ewm+GPgevX3wjEhXqCpVlNIDtACHGGf6S9zRzHYZobJKEPTYv6c23Sxd7ALjAhN7ctKE V4Wg== X-Gm-Message-State: AOJu0Yx4eTacINjwl0GJ4gNmp/WuCT7lZ0SIOARjM/zz5XhAiUkM98qW eR+kBiYEydxW8f1VHJWAiy8= X-Google-Smtp-Source: AGHT+IGXKG8ffXxfmY9xUFxR+Njbf0mHMVkIgT+iiOt1luzPvsEBFOYnR5cusP+mDJNzVeiy03adkw== X-Received: by 2002:a17:907:9620:b0:9ae:5370:81d5 with SMTP id gb32-20020a170907962000b009ae537081d5mr5565506ejc.41.1698529433241; Sat, 28 Oct 2023 14:43:53 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id f27-20020a170906085b00b009c387ff67bdsm3306203ejd.22.2023.10.28.14.43.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Oct 2023 14:43:52 -0700 (PDT) Message-ID: <65090f6d8f74d0434ed826e565571cf196e9e3ab.camel@gmail.com> From: Liliana Marie Prikler Date: Sat, 28 Oct 2023 23:43:46 +0200 In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Samstag, dem 28.10.2023 um 22:19 +0200 schrieb Pierre-Henry Fr=C3=B6hring: > This commit introduces a mix-build-system. The provided code ensures > that the following code runs without errors: >=20 > ./pre-inst-env guix build elixir-machete >=20 > A key challenge is the lack of bit reproducibility, in part due to > rebar3's lack of bit reproducibility. Future patches may address > this, and I welcome feedback. >=20 > Given the changes, splitting them into focused patches might be best. > As a first-time contributor, I seek advice on a suitable patch > sequence. >=20 > I also request guidance from the Guix community for a seamless > integration. Please suggest next steps for the mix-build-system > integration. >=20 > Thank you. > --- I'd suggest the following order: 1. Clean up your changes for rebar-build-system 2. Add all the packages that can be built with rebar-build-system 3. Add mix-build-system 4. Add all the packages that need to be built with mix-build-system Steps 2 and 4 should be further split in one patch per package with each package only requiring the previous ones to build. > +(define* (tar-unpack tar) > + [...]) > +(define* (phase-unpack #:key source #:allow-other-keys) > + (tar-unpack source)) That's a little silly, isn't it? Stick with a single procedure please. Also, we're not doing Hungarian variable names. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859045128890 (code B ref 66801); Sun, 29 Oct 2023 14:41:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:40:51 +0000 Received: from localhost ([127.0.0.1]:42971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yA-0007Vt-0c for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:40:51 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:47233) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6y4-0007VZ-BJ for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:40:48 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-32f70391608so1381069f8f.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590405; x=1699195205; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=e3X/KGKBdprnxuCcHeUoA4MLN/PTMXO40uBqWL0dc18=; b=VxBSz+fEi7OfYdY6voLu12LmNtpSdtXU+/N6FuAOyJv80unUZCg1W25fnR+0CLZsqO Y3ozFnoW7Betkan8mjKDVXKZ1qGc0HomYSppkrLp81+GezUvahMTNKO0mZdKWrmlU07E 99FuXUpFpGBLlwb6rmwPbcubL3cU0meDB7Wz5O0Vhx1VdqrodabqsAB4qC4OwheHXPav PFgqTeDowAbmJhbun3TnEakwTnLkbpYzOt+ieJy5NQkX42MtHh7MfRKUcEPcfXSpCtxS auICwR9DQIrkTjJW51VAsLlJskqzGeHPYk1/4+ZzSZQUnGR9x7Ono0Y3KeMqnJUaXEPs xNog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590405; x=1699195205; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=e3X/KGKBdprnxuCcHeUoA4MLN/PTMXO40uBqWL0dc18=; b=Us2QXThWXgHvO3o887G7xTZO/a9iEuu7z4I38CxnzULqWDk/mZZ9dI0+/XJIwFiD+g KyEWFL93lBxcuN6vFTCgPvuK7capG5k2qIPMQPf+6lQ4xG1f+h2MCo9hvU8bLEAoiBt6 hflPwsH1C/kfJKbyRE7ouEjJ18CcDvxgBGAcpAAsqUF56ai710brdJEHG/kCtTKZcE9u 5OCahhhplxEfwDmft3L+fNDjeBX1uNd6WtX6+Aj2wnM3n5ZVFphrpqXseHaU1naRv0QH 4sgmWSvOhHVVyG/UVGWT2JQdd5DXN91z8Bmp0JkPKEYyZ0o+SLuqqnZJouKDXKXueS56 uVOQ== X-Gm-Message-State: AOJu0YwfxP5n8ZfzPzLgXaxuBi/J1e4L5Ine312gQ2AynxaXW3PmezTA wPi/3SoSW9Ffleafi/kUk+vjq+vL9bBDJveb6qI= X-Google-Smtp-Source: AGHT+IHQG9LKfQvW6jV4ZFyqjJgPIkqfuyzXAPZFBGxlpTEzTgC4VFQz7yEYT5Q6cnsX8593TL983A== X-Received: by 2002:adf:e7d0:0:b0:32d:a0a9:4785 with SMTP id e16-20020adfe7d0000000b0032da0a94785mr6114282wrn.7.1698590405098; Sun, 29 Oct 2023 07:40:05 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:04 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:54 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) The builder now accepts the `#:sources-erlang` parameter, which expects a list of "Source" items. Each "Source" corresponds to the source code of a library directory, which is where Erlang looks for compiled modules. Documentation: https://www.erlang.org/doc/man/code#code-path. Each Source is installed as a "Checkout", which are local dependencies linked to directories managed by rebar. For more information, see https://rebar3.org/docs/configuration/dependencies/#checkout-dependencies. Lacking checkouts, rebar3 will not compile if there is no network access. Change-Id: Idc3aa8bb204f55d0594c1669399845cd9b9e86ab --- guix/build-system/rebar.scm | 274 +++++++++++++++++++----------- guix/build/rebar-build-system.scm | 255 +++++++++++++++++---------- 2 files changed, 339 insertions(+), 190 deletions(-) diff --git a/guix/build-system/rebar.scm b/guix/build-system/rebar.scm index de1294ec..862721ee 100644 --- a/guix/build-system/rebar.scm +++ b/guix/build-system/rebar.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,102 +19,117 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build-system rebar) - #:use-module (guix store) - #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) #:use-module (guix gexp) - #:use-module (guix packages) #:use-module (guix monads) + #:use-module (guix packages) #:use-module (guix search-paths) - #:use-module (guix build-system) - #:use-module (guix build-system gnu) - #:export (hexpm-uri - hexpm-package-url - %rebar-build-system-modules - rebar-build - rebar-build-system)) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (srfi srfi-1) + #:export (hexpm-uri hexpm-package-url %rebar-build-system-modules + rebar-build rebar-build-system)) -;;; -;;; Definitions for the hex.pm repository, -;;; +;; Source +;; A « Source » reprensents the source code to a library directory. It is +;; defined as (list ) where: is a string representing +;; the name of a library directory and is an origin as defined +;; (guix packages). + + +;; Pattern that an Erlang Guix package name is expected to match. +(define pkg-name-re "^erlang-(.*)") + +(define (pkg-name->match name) + "Return the match object from NAME if NAME starts with pkg-name-prefix." + (string-match pkg-name-re name)) + +(define (pkg-name? name) + "Test if NAME is the name of an Erlang Guix package." + (or (pkg-name->match name) #f)) -;; URL and paths from -;; https://github.com/hexpm/specifications/blob/master/endpoints.md -(define %hexpm-repo-url - (make-parameter "https://repo.hex.pm")) +(define (pkg-name->suffix name) + "Return the suffix of the name of an Erlang Guix package." + (regexp-substitute #f (pkg-name->match name) 1)) -(define hexpm-package-url - (string-append (%hexpm-repo-url) "/tarballs/")) +(define* (pkg-name->library-directory-name name #:key (version "")) + "Return the name of the library directory associated with the Erlang Guix package name NAME." + (string-append (string-replace-substring (pkg-name->suffix name) "-" "_") + (if (string= version "") "" (string-append "-" version)))) + +;; See: https://github.com/hexpm/specifications/blob/master/endpoints.md +(define hexpm (make-parameter "https://repo.hex.pm")) + +(define hexpm-tarballs (string-append (hexpm) "/tarballs/")) (define (hexpm-uri name version) "Return a URI string for the package hosted at hex.pm corresponding to NAME -and VERSION." - (string-append hexpm-package-url name "-" version ".tar")) +and VERSION. -;; -;; Standard build procedure for Erlang packages using Rebar. -;; +XXX: should a warning be emitted? +If NAME is not an Erlang Guix package name, then emit a warning. The download +will fail if it is not correct anyway." -(define %rebar-build-system-modules - ;; Build-side modules imported by default. - `((guix build rebar-build-system) - ,@%gnu-build-system-modules)) + (define (warn-about name) + (format #t "AssertionWarning 4dcbff27 + Assertion: re matches name. + re = ~a + name = ~a +" pkg-name-re name) + + name) -(define (default-rebar3) - "Return the default Rebar3 package." + (define (name->archive-name name) + (if (pkg-name? name) + (string-append (pkg-name->library-directory-name name #:version version) ".tar") + (string-append (warn-about name) "-" version ".tar"))) + + (string-append hexpm-tarballs (name->archive-name name))) + +(define (rebar-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) (module-ref erlang-mod 'rebar3))) -(define (default-erlang) - "Return the default Erlang package." +(define (erlang-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) (module-ref erlang-mod 'erlang))) -(define* (lower name - #:key source inputs native-inputs outputs system target - (rebar (default-rebar3)) - (erlang (default-erlang)) - #:allow-other-keys - #:rest arguments) - "Return a bag for NAME from the given arguments." - (define private-keywords - '(#:target #:rebar #:erlang #:inputs #:native-inputs)) - - (and (not target) ;XXX: no cross-compilation - (bag - (name name) - (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs)) - (build-inputs `(("rebar" ,rebar) - ("erlang" ,erlang) ;; for escriptize - ,@native-inputs - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) - (outputs outputs) - (build rebar-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) - -(define* (rebar-build name inputs - #:key - guile source - (rebar-flags ''("skip_deps=true" "-vv")) - (tests? #t) - (test-target "eunit") - ;; TODO: install-name ; default: based on guix package name - (install-profile "default") - (phases '(@ (guix build rebar-build-system) - %standard-phases)) - (outputs '("out")) - (search-paths '()) - (native-search-paths '()) - (system (%current-system)) - (imported-modules %rebar-build-system-modules) - (modules '((guix build rebar-build-system) - (guix build utils)))) +(define imported-modules + `((guix build rebar-build-system) + ,@%gnu-build-system-modules)) + +(define (input->source input) + "Return a Source associated to the Input INPUT." + (match input + ((name package) + (list (pkg-name->library-directory-name name) + (package-source package))))) + +(define* (rebar-build name + inputs + #:key + guile + source + (rebar-flags ''()) + (tests? #t) + (test-target "eunit") + ;; TODO: install-name ; default: based on guix package name + (install-profile "default") + (phases '(@ (guix build rebar-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (system (%current-system)) + (imported-modules imported-modules) + (modules '((guix build rebar-build-system) + (guix build utils))) + (sources-erlang '())) "Build SOURCE with INPUTS." (define builder @@ -122,35 +138,95 @@ (define* (rebar-build name inputs (use-modules #$@(sexp->gexp modules)) #$(with-build-variables inputs outputs + #~(rebar-build #:source #+source - #:system #$system - #:name #$name - #:rebar-flags #$rebar-flags - #:tests? #$tests? - #:test-target #$test-target - ;; TODO: #:install-name #$install-name - #:install-profile #$install-profile - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:outputs %outputs - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:inputs %build-inputs))))) - - (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) - system #:graft? #f))) + #:sources-erlang '#$sources-erlang + #:system #$system + #:name #$name + #:rebar-flags #$rebar-flags + #:tests? #$tests? + #:test-target #$test-target + ;; TODO: #:install-name #$install-name + #:install-profile #$install-profile + #:phases #$(if (pair? + phases) + (sexp->gexp + phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad + ((guile (package->derivation (or guile + (default-guile)) system + #:graft? #f))) + ;; Note: Always pass #:graft? #f. Without it, ALLOWED-REFERENCES & ;; co. would be interpreted as referring to grafted packages. - (gexp->derivation name builder + (gexp->derivation name + builder #:system system #:target #f #:graft? #f #:guile-for-build guile))) +(define* (lower name + #:key + (erlang (erlang-default)) + inputs + native-inputs + outputs + (rebar (rebar-default)) + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME from the given arguments." + + (let* ((erlang-packages + (filter (lambda (input) + (match input + ((name _) (pkg-name? name)))) + (append inputs native-inputs))) + + (erlang-sources (map input->source erlang-packages))) + + (define private-keywords + '(#:target #:rebar #:erlang #:inputs #:native-inputs #:sources-erlang)) + + (and (not target) ;XXX: no cross-compilation + (bag (name name) + (system system) + (host-inputs inputs) + (build-inputs `(,@(standard-packages) + ("erlang" ,erlang) + ("rebar" ,rebar) + ,@inputs + ,@native-inputs)) + (outputs outputs) + (build rebar-build) + (arguments (append (list #:sources-erlang erlang-sources) + (strip-keyword-arguments private-keywords + arguments))))))) + (define rebar-build-system - (build-system - (name 'rebar) - (description "The standard Rebar build system") - (lower lower))) + (build-system (name 'rebar) + (description "The standard Rebar build system") + (lower lower))) + + +;;; +;;; Exports +;;; + +(define hexpm-package-url hexpm-tarballs) + +(define %rebar-build-system-modules imported-modules) + + +;;; rebar.scm ends here diff --git a/guix/build/rebar-build-system.scm b/guix/build/rebar-build-system.scm index fb664228..b68348bd 100644 --- a/guix/build/rebar-build-system.scm +++ b/guix/build/rebar-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2019 Björn Höfling ;;; Copyright © 2020, 2022 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,125 +24,197 @@ (define-module (guix build rebar-build-system) #:use-module ((guix build utils) #:hide (delete)) #:use-module (ice-9 match) #:use-module (ice-9 ftw) + #:use-module (ice-9 string-fun) + #:use-module (ice-9 receive) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) - #:export (rebar-build - %standard-phases)) + #:export (rebar-build %standard-phases)) ;; ;; Builder-side code of the standard build procedure for Erlang packages using ;; rebar3. ;; -;; TODO: Think about whether bindir ("ebin"), libdir ("priv") and includedir -;; "(include") need to be configurable +;; Library directory +;; A « library directory » is a directory where Erlang searches for compiled +;; code. Its name should look like: `a_name-1.2.3' where the suffix `-1.2.3' +;; is optional. See: https://www.erlang.org/doc/man/code#code-path. +;; +;; Package name +;; A « package name » is the value of the name field of a package +;; definition. It looks like: `prefix-a-name-1.2.3'. See: +;; https://guix.gnu.org/manual/en/html_node/Package-Naming.html +;; +;; Profile +;; For Rebar3, a « profile » is a name associated to a set of configuration +;; settings overriding or complementing the regular configuration. See: +;; https://rebar3.org/docs/configuration/profiles +;; +;; Source +;; A « source » represents the source code associated to a Guix package as +;; defined by its `source' field. Here, the data sctructure used to +;; represent a source has the form `(list name path)' where `name' is a +;; library directory name and `path' is the store path where to find the +;; source code. +;; +;; Checkout +;; A « checkout » is a locally defined dependency related to a directory +;; managed by rebar. See: +;; https://rebar3.org/docs/configuration/dependencies/#checkout-dependencies -(define %erlang-libdir "/lib/erlang/lib") +(define sep "/") -(define* (erlang-depends #:key inputs #:allow-other-keys) - (define input-directories - (match inputs - (((_ . dir) ...) - dir))) - (mkdir-p "_checkouts") - - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir %erlang-libdir))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((dest (string-append elibdir "/" dirname)) - (link (string-append "_checkouts/" dirname))) - (when (not (file-exists? link)) - ;; RETHINK: Maybe better copy and make writable to avoid some - ;; error messages e.g. when using with rebar3-git-vsn. - (symlink dest link)))) - (list-directories elibdir))))) - input-directories)) +;; Where Erlang libraries are installed relative to a package path in the store. +(define lib-erlang-lib "lib/erlang/lib") + +(define (list-directories directory) + "Return file names of the sub-directory of DIRECTORY." + (scandir directory + (lambda (file) + (and (not (member file '("." ".."))) + (file-is-directory? (string-append directory sep file)))))) + +(define* (pkg-name->libdir-name name) + "Return the library name deduced from the Erlang package name NAME." + (let* ((suffix (regexp-substitute #f (string-match "^erlang-(.*)" name) 1)) + (elements (string-split suffix #\-))) + (string-append (string-join (drop-right elements 1) "_") "-" (last elements)))) + +(define (libdir-name->prefix name) + "Return the prefix of a library directory name NAME." + (car (string-split name #\-))) + +(define (rebar-build-dir profile) + "Return the path where rebar builds libraries given the profile PROFILE." + (format #f "_build/~a/lib" profile)) + +(define* (pkg-name->build-dir name #:key (profile "default")) + "Return the path of library directory where rebar3 builds code of an Erlang package named NAME given the profile PROFILE." + (string-append (rebar-build-dir profile) sep (libdir-name->prefix (pkg-name->libdir-name name)))) (define* (unpack #:key source #:allow-other-keys) - "Unpack SOURCE in the working directory, and change directory within the -source. When SOURCE is a directory, copy it in a sub-directory of the current -working directory." - (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) - (gnu-unpack #:source source) - ;; Packages from hex.pm typically have a contents.tar.gz containing the - ;; actual source. If this tar file exists, extract it. - (when (file-exists? "contents.tar.gz") - (invoke "tar" "xvf" "contents.tar.gz")))) - -(define* (build #:key (rebar-flags '()) #:allow-other-keys) + (if (file-is-directory? source) + ;; If source is a checkout: + (begin + ;; Preserve timestamps (set to the Epoch) on the copied tree so that + ;; things work deterministically. + (copy-recursively source "." #:keep-mtime? #t) + ;; Make the source checkout files writable, for convenience. + (for-each (lambda (f) + (false-if-exception (make-file-writable f))) + (find-files "."))) + + ;; If source is an hex.pm archive: + (begin + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" "contents.tar.gz") + + ;; Prevent an error message during the install phase. + ;; `rebar3 compile' produces symlinks like so in _build/: + ;; priv -> ../../../../priv + ;; include -> ../../../../include + ;; + ;; The install phase copies whatever has been built to the output directory. + ;; If the priv/ directory is absent, then an error `i/o error: + ;; _build/…/priv: No such file or directory' occurs. So, we make sure that a + ;; directory exists. + (for-each (lambda (dir) (mkdir-p dir)) (list "priv" "include"))))) + +(define (configure-HOME . ignored_args) + "In some cases, it is needed for the environment variable HOME to be defined +as a directory with write permission. Examples of errors: + +Could not write to \"/homeless-shelter/.cache/rebar3/hex\". Please ensure the path is writeable. +" + (let ((HOME "HOME") + (tmp "/tmp")) + (setenv HOME tmp) + (format #t "~a=~a\n" HOME tmp))) + +(define* (configure-dependencies #:key + (install-profile "default") + inputs + name + sources-erlang ;List of Source. + version + #:allow-other-keys) + "Rebar3 refuses to compile without network access unless its dependencies are +present as source checkouts. To prevent unnecessary compilations, we must « +pre-install » dependencies in Rebar's build directory." + + ;; If source in sources-erlang, then install it under _checkouts/. + (let ((_checkouts "_checkouts")) + (mkdir-p _checkouts) + + (define (install-source source) + "Install the Source SOURCE in _checkouts." + (match source + ((name path) + (let ((src (string-append _checkouts sep name))) + (mkdir-p src) + (with-directory-excursion src (unpack #:source path)))) + (_ #f))) + + (for-each install-source sources-erlang)) + + ;; If input in inputs is an Erlang package, then install it under _build/. + (let ((_build (format #f "_build/~a/checkouts" install-profile))) + (mkdir-p _build) + + (define (install-libdir elib name dest) + "Install the library directory named NAME from ELIB to DEST." + (let ((src (string-append elib sep name)) + (dest (string-append dest sep (libdir-name->prefix name)))) + (copy-recursively src dest) + (mkdir-p (string-append dest "/priv")))) + + (define (install-all-libdirs dir dest) + "Install in DEST all library directories in DIR." + (let ((elib (string-append dir sep lib-erlang-lib))) + (when (directory-exists? elib) + (for-each (lambda (name) (install-libdir elib name dest)) + (list-directories elib))))) + + (match inputs + (((_ . dirs) ..1) + (for-each + (lambda (dir) (install-all-libdirs dir _build)) + dirs)) + (_ #f)))) + +(define* (build #:key name (rebar-flags '()) #:allow-other-keys) (apply invoke `("rebar3" "compile" ,@rebar-flags))) -(define* (check #:key target (rebar-flags '()) (tests? (not target)) +(define* (check #:key target + (rebar-flags '()) + (tests? (not target)) (test-target "eunit") #:allow-other-keys) (if tests? (apply invoke `("rebar3" ,test-target ,@rebar-flags)) (format #t "test suite not run~%"))) -(define (erlang-package? name) - "Check if NAME correspond to the name of an Erlang package." - (string-prefix? "erlang-" name)) - -(define (package-name-version->erlang-name name+ver) - "Convert the Guix package NAME-VER to the corresponding Erlang name-version -format. Essentially drop the prefix used in Guix and replace dashes by -underscores." - (let* ((name- (package-name->name+version name+ver))) - (string-join - (string-split - (if (erlang-package? name-) ; checks for "erlang-" prefix - (string-drop name- (string-length "erlang-")) - name-) - #\-) - "_"))) - -(define (list-directories directory) - "Return file names of the sub-directory of DIRECTORY." - (scandir directory - (lambda (file) - (and (not (member file '("." ".."))) - (file-is-directory? (string-append directory "/" file)))))) - -(define* (install #:key name outputs - (install-name (package-name-version->erlang-name name)) - (install-profile "default") ; build profile outputs to install - #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pkg-dir (string-append out %erlang-libdir "/" install-name))) - (let ((bin-dir (string-append "_build/" install-profile "/bin")) - (lib-dir (string-append "_build/" install-profile "/lib"))) - ;; install _build/PROFILE/bin - (when (file-exists? bin-dir) - (copy-recursively bin-dir out #:follow-symlinks? #t)) - ;; install _build/PROFILE/lib/*/{ebin,include,priv} - (for-each - (lambda (*) - (for-each - (lambda (dirname) - (let ((src-dir (string-append lib-dir "/" * "/" dirname)) - (dst-dir (string-append pkg-dir "/" dirname))) - (when (file-exists? src-dir) - (copy-recursively src-dir dst-dir #:follow-symlinks? #t)) - (false-if-exception - (delete-file (string-append dst-dir "/.gitignore"))))) - '("ebin" "include" "priv"))) - (list-directories lib-dir)) - (false-if-exception - (delete-file (string-append pkg-dir "/priv/Run-eunit-loop.expect")))))) +(define* (install #:key name outputs (install-profile "default") #:allow-other-keys) + (let* ((src (pkg-name->build-dir name #:profile install-profile)) + (dest (string-append (assoc-ref outputs "out") + sep lib-erlang-lib sep + (pkg-name->libdir-name name)))) + (mkdir-p dest) + (copy-recursively src dest #:follow-symlinks? #t))) (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (add-after 'unpack 'configure-HOME configure-HOME) (delete 'bootstrap) (delete 'configure) - (add-before 'build 'erlang-depends erlang-depends) + (add-before 'build 'configure-dependencies configure-dependencies) (replace 'build build) (replace 'check check) (replace 'install install))) -(define* (rebar-build #:key inputs (phases %standard-phases) - #:allow-other-keys #:rest args) +(define* (rebar-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) "Build the given Erlang package, applying all of PHASES in order." (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; rebar-build-system.scm ends here base-commit: 4dfbc536689b07e56aead3dd864b8af54613d091 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 02/32] gnu: erlang updated. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859046328969 (code B ref 66801); Sun, 29 Oct 2023 14:42:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:03 +0000 Received: from localhost ([127.0.0.1]:42978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yM-0007XA-Nu for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:03 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:50386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yH-0007W1-7v for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:40:58 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-40790b0a224so26922705e9.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590418; x=1699195218; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=d8/+t1Wn3xaNr0a1Y4hypvWCjpYURJDzN9UK9/wYiss=; b=uxF8Ktogjc8/mlK3aKv2A/V4rCMgABmFZRr67D7NIzcrYxqT9h/o7lRAkwjgJf7FRT e4TeA70PQrhAYJBIvdLoEc5UIFuzNItRgMlTwmV0jARGy+uOCT6eHAnfIxma98aSUOyz O8Ks3xySVwWi1WvkSARgGN3idtJmzmtAoa6aqzRWr8vDuviJ4viw8HB0cAXbN19VxJfW gWOPcuMDJLwpNVVUUNfWqGcVDXcl0b8vMZmc12cxmIRsA0f9Mp5vqPoxlZGtr8JCzUKi UaTTY4MIRx3sSITLWO+eXH8oAnA+f6A8xsS4le9rjGwDdLfCluBT7OIPR+NH9fxlD6rK R+UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590418; x=1699195218; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d8/+t1Wn3xaNr0a1Y4hypvWCjpYURJDzN9UK9/wYiss=; b=msNOslhsFF6vmW30yF8TSHu7MpS8ELPsfV3kk98Vio+kzsrBKRcUq3sH7Eiu+ykuOK 4nPDUNpc87yHiPDpylQuZuB/cl8l0BLYDqoeFCH64UDKoE3L6gemlLhXjNcqfiMDPRyW SdLaLdTUKuSZXTak8rqm0vPW5GGfsEHoRMFMikvklUFA48GJbqC3l4d/j3vr3P/kWDOm 8gZ0zQpwJUwl+sloJiDE0of80pO3CI/iPg8y/TBUqflEwpfEPY8uz2Jr4/qgtZJfooh/ is/ncoTz75SoT4LfLW6rPxY4ZVYnkIzcMJ2UcvMBPkr+dIne9j+kZeZVB2Gr61OYF590 JJjA== X-Gm-Message-State: AOJu0YxvoqF4gNgmo++Kch736HO53uvzA9tu3jSoCrdGB7Qi9RyZTKYT CbCXHfSu9jyxorYlPkHPTv8OW9RqkpW/pz0J7sw= X-Google-Smtp-Source: AGHT+IEwzdwIUHpDLIvebCogScYeTCItttqgbKgQ8tfkAmdGkN9DqBE7e6wDDYDSmYKbcznutL6Q7w== X-Received: by 2002:a05:600c:354c:b0:408:4cf1:e9d7 with SMTP id i12-20020a05600c354c00b004084cf1e9d7mr6317728wmq.20.1698590418528; Sun, 29 Oct 2023 07:40:18 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:18 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:55 +0100 Message-ID: <6e5850df7e25c79f44d9f9038fce595cd209878a.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Wrapped Erlang programs (`erl`, `erlc`, `escript`) now prepend ERL_LIBS with GUIX_ERL_LIBS. Reference: https://www.erlang.org/doc/man/code#code-path. The `native-search-paths` field in the package specification sets GUIX_ERL_LIBS, which aggregates all compiled libraries for Erlang and Elixir, akin to the functionality of GUIX_PYTHONPATH. Change-Id: I53d0462eb366ebe66422e0b187f4db091a9fe5b5 --- gnu/packages/erlang.scm | 101 ++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 41 deletions(-) diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c53cb72c..dafc0e81 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -28,22 +28,23 @@ (define-module (gnu packages erlang) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix gexp) - #:use-module (guix build-system gnu) - #:use-module (guix build-system emacs) - #:use-module (guix build-system rebar) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix packages) - #:use-module (guix utils) - #:use-module (gnu packages) + #:use-module (gnu packages elixir) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages version-control) #:use-module (gnu packages tls) - #:use-module (gnu packages wxwidgets)) + #:use-module (gnu packages version-control) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages) + #:use-module (guix build-system emacs) + #:use-module (guix build-system gnu) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public erlang (package @@ -173,7 +174,16 @@ (define-public erlang (substitute* (string-append out "/bin/erl") (("basename") (which "basename")) (("dirname") (which "dirname")))))) - (add-after 'install 'install-doc + (add-after 'patch-erl 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("erl" "erlc" "escript"))) + (for-each + (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" ":" prefix ("${GUIX_ERL_LIBS}")))) + programs)))) + (add-after 'wrap-programs 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (manpages (assoc-ref inputs "erlang-manpages")) @@ -181,6 +191,15 @@ (define-public erlang (mkdir-p share) (with-directory-excursion share (invoke "tar" "xvf" manpages)))))))) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files + (list + "lib/erlang/lib" + (string-append + "lib/elixir/" + (version-major+minor (package-version elixir)))))))) (home-page "https://www.erlang.org/") (synopsis "The Erlang programming language") (description @@ -219,12 +238,12 @@ (define-public erlang-bbmustache (source (origin (method url-fetch) - (uri (hexpm-uri "bbmustache" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) (build-system rebar-build-system) (inputs - (list erlang-getopt rebar3-git-vsn + (list erlang-getopt erlang-rebar3-git-vsn erlang-edown)) ; for building the docs (arguments `(#:tests? #f ;; requires mustache specification file @@ -251,7 +270,7 @@ (define-public erlang-certifi (source (origin (method url-fetch) - (uri (hexpm-uri "certifi" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) (build-system rebar-build-system) @@ -275,7 +294,7 @@ (define-public erlang-cf (source (origin (method url-fetch) - (uri (hexpm-uri "cf" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) (build-system rebar-build-system) @@ -314,7 +333,7 @@ (define-public erlang-covertool (source (origin (method url-fetch) - (uri (hexpm-uri "covertool" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) (build-system rebar-build-system) @@ -335,7 +354,7 @@ (define-public erlang-cth-readable (source (origin (method url-fetch) - (uri (hexpm-uri "cth_readable" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) (build-system rebar-build-system) @@ -356,7 +375,7 @@ (define-public erlang-edown (source (origin (method url-fetch) - (uri (hexpm-uri "edown" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) (build-system rebar-build-system) @@ -373,7 +392,7 @@ (define-public erlang-erlware-commons (source (origin (method url-fetch) - (uri (hexpm-uri "erlware_commons" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) (build-system rebar-build-system) @@ -400,7 +419,7 @@ (define-public erlang-eunit-formatters (source (origin (method url-fetch) - (uri (hexpm-uri "eunit_formatters" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) (build-system rebar-build-system) @@ -416,7 +435,7 @@ (define-public erlang-getopt (source (origin (method url-fetch) - (uri (hexpm-uri "getopt" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) (build-system rebar-build-system) @@ -433,7 +452,7 @@ (define-public erlang-hex-core (source (origin (method url-fetch) - (uri (hexpm-uri "hex_core" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) (build-system rebar-build-system) @@ -445,7 +464,7 @@ (define-public erlang-hex-core (when tests? (invoke "rebar3" "as" "test" "proper"))))))) (inputs - (list erlang-proper rebar3-proper)) + (list erlang-proper erlang-rebar3-proper)) (home-page "https://github.com/hexpm/hex_core") (synopsis "Reference implementation of Hex specifications") (description "This package provides the reference implementation of Hex @@ -459,7 +478,7 @@ (define-public erlang-jsone (source (origin (method url-fetch) - (uri (hexpm-uri "jsone" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) (build-system rebar-build-system) @@ -483,7 +502,7 @@ (define-public erlang-parse-trans (source (origin (method url-fetch) - (uri (hexpm-uri "parse_trans" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) (build-system rebar-build-system) @@ -506,7 +525,7 @@ (define-public erlang-proper (source (origin (method url-fetch) - (uri (hexpm-uri "proper" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) (build-system rebar-build-system) @@ -532,7 +551,7 @@ (define-public erlang-jsx (version "3.1.0") (source (origin (method url-fetch) - (uri (hexpm-uri "jsx" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) @@ -550,7 +569,7 @@ (define-public erlang-providers (source (origin (method url-fetch) - (uri (hexpm-uri "providers" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) (build-system rebar-build-system) @@ -568,7 +587,7 @@ (define-public erlang-relx (source (origin (method url-fetch) - (uri (hexpm-uri "relx" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) (build-system rebar-build-system) @@ -590,7 +609,7 @@ (define-public erlang-ssl-verify-fun (source (origin (method url-fetch) - (uri (hexpm-uri "ssl_verify_fun" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) (build-system rebar-build-system) @@ -676,14 +695,14 @@ (define-public rebar3 of locations (git, hg, etc).") (license license:asl2.0))) -(define-public rebar3-raw-deps +(define-public erlang-rebar3-raw-deps (package - (name "rebar3-raw-deps") + (name "erlang-rebar3-raw-deps") (version "2.0.0") (source (origin (method url-fetch) - (uri (hexpm-uri "rebar3_raw_deps" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) (build-system rebar-build-system) @@ -693,14 +712,14 @@ (define-public rebar3-raw-deps applications as a dependent libraries.") (license license:expat))) -(define-public rebar3-git-vsn +(define-public erlang-rebar3-git-vsn (package - (name "rebar3-git-vsn") + (name "erlang-rebar3-git-vsn") (version "1.1.1") (source (origin (method url-fetch) - (uri (hexpm-uri "rebar3_git_vsn" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) (build-system rebar-build-system) @@ -724,14 +743,14 @@ (define-public rebar3-git-vsn a git checkout.") (license license:expat))) -(define-public rebar3-proper +(define-public erlang-rebar3-proper (package - (name "rebar3-proper") + (name "erlang-rebar3-proper") (version "0.12.1") (source (origin (method url-fetch) - (uri (hexpm-uri "rebar3_proper" version)) + (uri (hexpm-uri name version)) (sha256 (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) (build-system rebar-build-system) @@ -803,7 +822,7 @@ (define-public erlang-lfe (setenv "REBAR_CACHE_DIR" "/tmp") (invoke "make" "-j" (number->string (parallel-job-count)) "tests")))))))) - (native-inputs (list rebar3 rebar3-proper erlang-proper)) + (native-inputs (list rebar3 erlang-rebar3-proper erlang-proper)) (propagated-inputs (list erlang)) (home-page "https://github.com/lfe/lfe") (synopsis "Lisp Flavoured Erlang") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 03/32] gnu: erlang-certifi: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859046828999 (code B ref 66801); Sun, 29 Oct 2023 14:42:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:08 +0000 Received: from localhost ([127.0.0.1]:42983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yR-0007XZ-RX for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:08 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:42122) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yM-0007WL-Ow for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:04 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-32da4ffd7e5so2069224f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590424; x=1699195224; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ztm63R+AyDbSEhGZEbqmKCy+Iq55TkY73otvtyzbwx0=; b=0KgiKZGWRLnwYEUR5YEp20+BvX9hj9Tf/d3SOij4eTeFVpU0NAgzEuGwIjzyPN9a0r 9z3++oIlWGgJKRUJcDKdHx5XkvkR3yIqPejN94z//nN6N6AVmDoZUtLiIQ+aVh/U6sCv htYYPz80lxIvoM/GpwtTkYOfT9f4YMc1Dp+QY3Id20tJpWXsWlzivKNbX8MsOuaPxx/v /+DdQFvcC04WaT99l3tcPmfuFwOVQF9+ceA9xIVX2bWFpbnc6p0aLm86fCScv34EqlN6 qulXAyear7g5CKeMDcqX2xzA8d5qLzYjGoHEZAj4RIO3NCPPKoOMfBTislqa99p+4wfV jz4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590424; x=1699195224; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ztm63R+AyDbSEhGZEbqmKCy+Iq55TkY73otvtyzbwx0=; b=A+KL4JUwTVWMlpmoZInNbaugTzDUBD7EQKF1ysc3xNLKtkLt6deqPpvEZx2XSfhwRN 8Tr6SaGummK7r/DdU1AUmFOK+HYksIY+TKIOYAk3gBs0jCtTddTae4AYS0dfD2kMS+28 kIPo6pBtuaMgGI0elOaD57L3Nz1ZnOLa5N42EuNUxC1mxb4hzZjlt00mtV7K8osnqspy 9ohB443VQyZACf5EnIybvYwAYdb6UhTqy74Gq/AaIqTQ9Uwytf4see4Va0+4QU7Dixj9 GnRos5wrevOhgT0Iteu6s0A51uv9lwgJHALDja+O7c5cpVnvz6REmULLj7o4vEU2WNf3 N9wQ== X-Gm-Message-State: AOJu0YxL4I9Ei+vYrHHOKHOgGNqMB9Qu41J3ze6O8KVd/qOX1ad0vDqk Z7GQHYGgqMOPO58GDUCaFKtgSVpMVhYAzpXA2OQ= X-Google-Smtp-Source: AGHT+IGtgtRgc46vCN2u+wNAgWpjCzc8N2KoEGv0FpMrKEQmDhn86Ije8tcaGOuZ6Jmdw2mY3FbeYw== X-Received: by 2002:a5d:5850:0:b0:32f:7341:96bb with SMTP id i16-20020a5d5850000000b0032f734196bbmr7204742wrf.19.1698590424102; Sun, 29 Oct 2023 07:40:24 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:23 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:56 +0100 Message-ID: <7c58f0885d71a76a852380230a2563eaf9508002.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I7491af542af5ffb2d82b5555675f4f7dbef167af --- gnu/packages/erlang-xyz.scm | 62 +++++++++++++++++++++++++++++++++++++ gnu/packages/erlang.scm | 25 +-------------- 2 files changed, 63 insertions(+), 24 deletions(-) create mode 100644 gnu/packages/erlang-xyz.scm diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm new file mode 100644 index 00000000..444fa648 --- /dev/null +++ b/gnu/packages/erlang-xyz.scm @@ -0,0 +1,62 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 erlang-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages version-control) + #:use-module (gnu packages) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix git-download) + #:use-module (guix hg-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public erlang-certifi + (package + (name "erlang-certifi") + (version "2.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) + (build-system rebar-build-system) + (arguments `(#:tests? #f)) ;; have not been updated for latest cert bundle + (home-page "https://github.com/certifi/erlang-certifi/") + (synopsis "Erlang CA certificate bundle") + (description "This Erlang library contains a CA bundle that you can +reference in your Erlang application. This is useful for systems that do not +have CA bundles that Erlang can find itself, or where a uniform set of CAs is +valuable. + +This an Erlang specific port of certifi. The CA bundle is derived from +Mozilla's canonical set.") + (license license:bsd-3))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index dafc0e81..c729ab8a 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -29,6 +29,7 @@ (define-module (gnu packages erlang) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages elixir) + #:use-module (gnu packages erlang-xyz) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages ncurses) @@ -263,30 +264,6 @@ (define-public erlang-bbmustache Mustache template engine") (license license:expat))) -(define-public erlang-certifi - (package - (name "erlang-certifi") - (version "2.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) - (build-system rebar-build-system) - (arguments - `(#:tests? #f)) ;; have not been updated for latest cert bundle - (home-page "https://github.com/certifi/erlang-certifi/") - (synopsis "Erlang CA certificate bundle") - (description "This Erlang library contains a CA bundle that you can -reference in your Erlang application. This is useful for systems that do not -have CA bundles that Erlang can find itself, or where a uniform set of CAs is -valuable. - -This an Erlang specific port of certifi. The CA bundle is derived from -Mozilla's canonical set.") - (license license:bsd-3))) - (define-public erlang-cf (package (name "erlang-cf") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 04/32] gnu: erlang-getopt: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859046829006 (code B ref 66801); Sun, 29 Oct 2023 14:42:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:08 +0000 Received: from localhost ([127.0.0.1]:42985 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yS-0007Xg-Ek for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:08 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:57726) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yO-0007WT-Vf for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:05 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-407da05f05aso27908445e9.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590426; x=1699195226; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MYFNab7m5hyAZmMwl4kSvZ3icIc1yGhkfur55XC0fVg=; b=zVUkOK3v/8ZDeKFoGKFWZ3GT2qP7pg9f+RUU030kLWPiq+QPwKO9mxnwBAohmcAwWG QWKQQPPMHMPAVhj8ynrHIeOBpzPhe+QTbh44mNsSOVWGcvxM4riOlkYGtFsx2WE7xKxb 7x7xagiLVrI2yhOeOkvzWqB/iTofK7SYRaJ4nGo1XQTBU/7xWeMq9xjOW4xUHNwDILQo NZLy3CmbD3iPAeNmP1wxWclf2p3UwYv2Au+I4aUtvwXKwdZOJbEMwj/m8paY9nPbbcx/ UB4cRC6QdZlRlYZofSBvlqNbPk7VKAXKQ2bq3eRwtH2yfkR0fx0uiWHIlfhrGlJeGOZ7 QsaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590426; x=1699195226; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MYFNab7m5hyAZmMwl4kSvZ3icIc1yGhkfur55XC0fVg=; b=vpbDozjsPCLEUnCB4C+1J2DRC/Yjg+WoSRmZLuQE1uLqKPbogwUbpwuNz2e9ml8RrY EMUpXaNteHeljWGXSePp1OYQ1dhx5eTyVHOI2qLAj1/z0y9/Nkm54VCGxE4+7iXmO4ns WlNNvGoi0RCJJm3bDlishsOw7k8PnTYbmb/RnHKcORpw/Vn4ONCyIrJ1TujsaDgd1TCA s55/7qg3xqu4KpDKub6+ZhBY4/4jZErRj+gHDsR1ft6ERzqVEvQzTdp3h38iFVR+vE8n ueF9epsCpizcCMMkLXv+RwGM/zDRTkibDf6V1+qdzOhARIvgbBQAcEVkqJ07R+3QQjPO NOlA== X-Gm-Message-State: AOJu0YzpirJA6uQd87asl3ChETQttu+Yc1CsSPTxcsks/wEmxoNFyJHW AoIBKNBoaRc8WnAPvm0kikteed1kaclgLmgrcV0= X-Google-Smtp-Source: AGHT+IEjavUfcVORBq2epyNqA3Mu49ogeBNnB298jfysbTuBC5AC6Oi+9BymnjHP9Etbf1Lg5kC+Yw== X-Received: by 2002:a05:600c:45c8:b0:401:c338:ab94 with SMTP id s8-20020a05600c45c800b00401c338ab94mr6744217wmo.29.1698590426261; Sun, 29 Oct 2023 07:40:26 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:25 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:57 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ic7740512545c8798a4a7927b7aeee6e33f6990a2 --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 444fa648..6ca0b4ae 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -55,6 +55,23 @@ (define-public erlang-certifi Mozilla's canonical set.") (license license:bsd-3))) +(define-public erlang-getopt + (package + (name "erlang-getopt") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) + (build-system rebar-build-system) + (home-page "https://github.com/jcomellas/getopt") + (synopsis "Command-line options parser for Erlang") + (description "This package provides an Erlang module to parse command line +arguments using the GNU getopt syntax.") + (license license:bsd-3))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c729ab8a..6c3b845b 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -405,23 +405,6 @@ (define-public erlang-eunit-formatters (description "This package provides a better output for Erlang eunits.") (license license:asl2.0))) -(define-public erlang-getopt - (package - (name "erlang-getopt") - (version "1.0.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) - (build-system rebar-build-system) - (home-page "https://github.com/jcomellas/getopt") - (synopsis "Command-line options parser for Erlang") - (description "This package provides an Erlang module to parse command line -arguments using the GNU getopt syntax.") - (license license:bsd-3))) - (define-public erlang-hex-core (package (name "erlang-hex-core") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 05/32] gnu: erlang-edown: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859047829057 (code B ref 66801); Sun, 29 Oct 2023 14:42:03 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:18 +0000 Received: from localhost ([127.0.0.1]:42992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yb-0007Ya-Ri for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:18 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:48598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yR-0007Wj-4t for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:07 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-32da7ac5c4fso2308151f8f.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590428; x=1699195228; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=URXAHyN1ABTtG0peMkqgrr9V8pfUyM/6DhyKGrcusmI=; b=NyOhNOIsNGml7YI5ogRS/5Y3VzsJMor4iXEWUb+Z3NK6n9Hn7fk2BB3vrGvUapqMk6 t9StDPG1rLlHaLaLdc9VIswfqnzJTbLB2HLLMz6U3K0mhcQXZu23cE3NqXDn8gZBZg8j Oa6cD+IU8SfdUQhPiR+exccEJRzV2l9/rNs7zPNBh8HWKipuvFwGLv4uls8AC7lt/6GA XUs5HXje0xVeErokjuBuJ6g9ksHoh0aABeTuiI1qFY5Ihh2/KWspBJpKtfIZbGtp4okG t8nawxU8Q4rjVYPvAzBNfV1RlfvhZ5eiWNDRMuJgxR7+X7qK15i9OVmz5jthpTzS3lhY sEpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590428; x=1699195228; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=URXAHyN1ABTtG0peMkqgrr9V8pfUyM/6DhyKGrcusmI=; b=ZUH/MLDtsyllcc3EE7ioWC7s8Py0os5yz8WerCt/XNPhDOT/i60z1DEPWmkZHzOCrN DON2CHR1ng6E1DrINpVBjMjQKxO2efsHp9fXeZTIgdBlaOM0jSSVE6I30JC+oxRZi2BP MFG1E1gkdtjRokp13JG5kpujtJgxGKqnbgx1KVjdDqpQeJl+ZTCH6saoqSke3n/QU+SF 5tut/h4aJNdfFTytSZ1jlQIgvYXLJlnooIWRcHscelxi3z0nNpm7zkl7Crvx4L0nfRYD 206rf6O5ZuUrlUyvE03GmHbluBpIOpm2gd/F7lWotfz5J6Lmux3FU2s4Z5krbJHJjNOs 0r7g== X-Gm-Message-State: AOJu0YztR2TsUgnPRk/lX/AdFJ+6xZMujC9zsN+AGY/ktfG3NNahi5/Y KKz5t9YeqjLPL2+6by4hRjp48+ZmRl0gycX/Eqo= X-Google-Smtp-Source: AGHT+IFHSu4IqKMcv2ijCBLc68oKtKF23r60I5UYq8Q/CUJtFDmm9WbkhLz9iuetTMvVbx+UeuZK1g== X-Received: by 2002:a5d:6ad2:0:b0:329:6b3e:d87d with SMTP id u18-20020a5d6ad2000000b003296b3ed87dmr5062605wrw.42.1698590428298; Sun, 29 Oct 2023 07:40:28 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:27 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:58 +0100 Message-ID: <28fffec0ba629384ce2b9d20a630eb8dfe08654a.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Iceff5a74baf1de97f478b168f122e7ec715b24d7 --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 6ca0b4ae..5815d19f 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -72,6 +72,23 @@ (define-public erlang-getopt arguments using the GNU getopt syntax.") (license license:bsd-3))) +(define-public erlang-edown + (package + (name "erlang-edown") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) + (build-system rebar-build-system) + (home-page "https://github.com/uwiger/edown") + (synopsis "Markdown extension for EDoc") + (description "This package provides an extension for EDoc for generating +Markdown.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 6c3b845b..5148abf0 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -345,23 +345,6 @@ (define-public erlang-cth-readable outputs you want to be readable around all that noise they contain.") (license license:bsd-3))) -(define-public erlang-edown - (package - (name "erlang-edown") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) - (build-system rebar-build-system) - (home-page "https://github.com/uwiger/edown") - (synopsis "Markdown extension for EDoc") - (description "This package provides an extension for EDoc for generating -Markdown.") - (license license:asl2.0))) - (define-public erlang-erlware-commons (package (name "erlang-erlware-commons") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 06/32] gnu: erlang-rebar3-git-vsn: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859047929067 (code B ref 66801); Sun, 29 Oct 2023 14:42:03 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:19 +0000 Received: from localhost ([127.0.0.1]:42994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yc-0007Yc-F1 for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:18 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:55706) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yT-0007XH-5U for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:09 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-32deb2809daso2302925f8f.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590430; x=1699195230; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9BbKEm+HtHFmZB0xz7S6Ck5Fyhp91dbWZzSum6AkmAc=; b=vUrJ7/Z6c0yvvGWBWoSs5gnLwIn4xFDsZRIc7i4wugtNcorjaS0JcYgXY4QEnxnBJV LiBI7f2W2TDwM3/z1LpY/WoQ+2G2kTEIJnmekgVpBMG8io4iTlmGb/9jaFkhQ6Y1VgmN hOjfWXBmf3DEOSGxHRvdnUa1Bjocr0XucMgndqV1oueNm9WNH3e4U6p1IjM7v6Nw/cBd pTZHQzaqIv+NVGT8cgMkTXE795d8Jz/v/O60TcGwmC4zzaQ0SrC2wKYvSg99aX8jO5ou kER6EDjLkWOxtQvYxaIdC4XcrVwQhaJn3/ZJZNCPuHiA6SsA+HAgDkwVxzb87DmySOdl kjFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590430; x=1699195230; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9BbKEm+HtHFmZB0xz7S6Ck5Fyhp91dbWZzSum6AkmAc=; b=Ws+CtUu+Jbg5dBGemV6IPcbhpA3QC9oO7TE5G096IqoGQnwMGcp2j0eBS9WQnyc2oq V5GEhG807CWRsqHLNsQQ62XEt0UolzWUeLth3+4ORaBudZ9R/w3szZVTG8dIx/mnP3AJ mElUi0UDxkB2Tib+PURKxZN9umY8rQWKJpuOO9C4m0Q23D9DfkEXjO1nYRRpu6Br0leE YqllSfW3wAaG4a00d9q2IMLMGWQYsUNFCkwK01844jJxiI2KYs+dLmhHSYWCe0if2U3q 3iDitMUEc5E5DbSaND84VYf5zbtJxaGC0KZhTMc3I2i8P1GBE6+SnLo2vXzK4qLw/VSE loKQ== X-Gm-Message-State: AOJu0YwAejzEyVAcUU1JhBm4WFH2+pBf96H1xDaAmhm+4R9ppSE0diah ejfz5tjbeWQl3gJwUc6XRMroE8D2bSQqVAgc4Ic= X-Google-Smtp-Source: AGHT+IFNF+ablmeaqoOO/i9dQntRbKULTJEMsPeqZJwUtPazTXwkt5U7x7N+qD5PQdbNFTKIQL05pw== X-Received: by 2002:a5d:588f:0:b0:32f:7d70:529e with SMTP id n15-20020a5d588f000000b0032f7d70529emr2791802wrf.63.1698590430361; Sun, 29 Oct 2023 07:40:30 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:29 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:36:59 +0100 Message-ID: <44bec23d6d48ecc169f1bec65a465edd7c32e973.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I5a743e71b2034ba1cfe71fe6121137b3194befed --- gnu/packages/erlang-xyz.scm | 32 +++++++++++++++++++++++++++++++- gnu/packages/erlang.scm | 31 ------------------------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 5815d19f..bfc4802a 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -25,7 +25,6 @@ (define-module (gnu packages erlang-xyz) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) - #:use-module (guix git-download) #:use-module (guix hg-download) #:use-module (guix packages) #:use-module (guix utils) @@ -89,6 +88,37 @@ (define-public erlang-edown Markdown.") (license license:asl2.0))) +(define-public erlang-rebar3-git-vsn + (package + (name "erlang-rebar3-git-vsn") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) + (build-system rebar-build-system) + (inputs + (list git-minimal/pinned)) + (arguments + `(;; Running the tests require binary artifact (tar-file containing + ;; samples git repos) TODO: remove these from the source + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((git (assoc-ref inputs "git-minimal"))) + (substitute* "src/rebar3_git_vsn.erl" + (("rebar_utils:sh\\(\"git " _) + (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) + (home-page "https://github.com/soranoba/rebar3_git_vsn") + (synopsis "Rebar3 plugin for generating the version from git") + (description "This plugin adds support for generating the version from +a git checkout.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 5148abf0..6320e3d0 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -655,37 +655,6 @@ (define-public erlang-rebar3-raw-deps applications as a dependent libraries.") (license license:expat))) -(define-public erlang-rebar3-git-vsn - (package - (name "erlang-rebar3-git-vsn") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) - (build-system rebar-build-system) - (inputs - (list git-minimal/pinned)) - (arguments - `(;; Running the tests require binary artifact (tar-file containing - ;; samples git repos) TODO: remove these from the source - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((git (assoc-ref inputs "git-minimal"))) - (substitute* "src/rebar3_git_vsn.erl" - (("rebar_utils:sh\\(\"git " _) - (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) - (home-page "https://github.com/soranoba/rebar3_git_vsn") - (synopsis "Rebar3 plugin for generating the version from git") - (description "This plugin adds support for generating the version from -a git checkout.") - (license license:expat))) - (define-public erlang-rebar3-proper (package (name "erlang-rebar3-proper") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 07/32] gnu: erlang-rebar3-raw-deps: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859047929081 (code B ref 66801); Sun, 29 Oct 2023 14:42:04 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:19 +0000 Received: from localhost ([127.0.0.1]:42997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yc-0007Ym-Ul for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:19 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:58839) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yU-0007XQ-U9 for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:11 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-32dc9ff4a8fso2289591f8f.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590432; x=1699195232; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=c08friLeM3OUvaAAPK/yigseVgUnjVFxZkWjgXLiIGE=; b=FUf7y+L123q9A2E9x2X/u/7iJSNXS1wQ2kzdjOd3NZ+o1OPMTtb6dCgImwRi7iPOfH FX4b7wtBkc0b2qv9F4tXbPxUG8J3tL/dJ0eNXhAbazbV/N6rmsn+4QkF56MTmwSJkjPw RJh+RjjL55F50oE6LcJJVwkD7YNziM4gj/L6u1jfm2t7CSgAaEgN671ewrsWnxt39/mg MAv6twnFG8SLGpUVRBlFMc/Oxp13C4gK/Z6nye0TThsokyTDSv5McAJnJBKaK1QSHMc6 1E5myvaquBWbn76cOH0+X8BEwhc1v73Pd/X1XiTPAPqDu/qU7xede8KhJv+FAoNH4xfR 4OKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590432; x=1699195232; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=c08friLeM3OUvaAAPK/yigseVgUnjVFxZkWjgXLiIGE=; b=ZSDBf0NL/VCA/aj7uASxfY9HlEp5EBtE1lDhd07boTqDiADXVrqVqcFjibxoduRZYL 1BgL8S45OSlS6GEwaPlZqUd4xa0FQyOR84NbuDWPgg9XuNTa//aLexeJS1eTrDUwfwUD VUNQRNTdY/mn2peX+egui4cN3TULXeeI8NUQknWonJAKyfYEp9RZA28vsTJ6OCaK6f+6 Zi3O+/+reA/bgqfkbynotWcCpYK5Cz3+bto1wv72TMbqEUcz4VJIfgwG/vAFlSzIwTs8 0/UxjIHsxwGKDlruwmsbxR/tZb6AGLCxi3kCL3mLGVbstoiut3KJqmxTdVUZrd9UP/tY 3IYA== X-Gm-Message-State: AOJu0YyhT1ar2P67iYqFTVjjJrKFnF4xfqVdCMkr+i0dGMxWpbEhJnaG HNDyRjPk1h2H4iEFaF4bJz2inQ63kroStn+nBNk= X-Google-Smtp-Source: AGHT+IGtRxhVu+fH8OHuqNkQ9f2ih8ONEMEqTxMsvwnKZ07KX9rrVCTXWe68n5CGrTWRx6ygS0BYVQ== X-Received: by 2002:a05:6000:144c:b0:32f:7901:c462 with SMTP id v12-20020a056000144c00b0032f7901c462mr4372903wrx.3.1698590432365; Sun, 29 Oct 2023 07:40:32 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:31 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:00 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I42b34a1bba7e2eb3cce4c385f0c3d27c5bba146e --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index bfc4802a..61d7416a 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -119,6 +119,23 @@ (define-public erlang-rebar3-git-vsn a git checkout.") (license license:expat))) +(define-public erlang-rebar3-raw-deps + (package + (name "erlang-rebar3-raw-deps") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) + (build-system rebar-build-system) + (home-page "https://github.com/soranoba/rebar3_raw_deps") + (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") + (description "This plugin provides support for handling non-OTP +applications as a dependent libraries.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 6320e3d0..147b0451 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -638,23 +638,6 @@ (define-public rebar3 of locations (git, hg, etc).") (license license:asl2.0))) -(define-public erlang-rebar3-raw-deps - (package - (name "erlang-rebar3-raw-deps") - (version "2.0.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) - (build-system rebar-build-system) - (home-page "https://github.com/soranoba/rebar3_raw_deps") - (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") - (description "This plugin provides support for handling non-OTP -applications as a dependent libraries.") - (license license:expat))) - (define-public erlang-rebar3-proper (package (name "erlang-rebar3-proper") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 08/32] gnu: erlang-rebar3-proper: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859048029088 (code B ref 66801); Sun, 29 Oct 2023 14:42:04 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:20 +0000 Received: from localhost ([127.0.0.1]:42999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yd-0007Z0-Fp for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:19 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:43512) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yW-0007XX-QF for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:13 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-40907b82ab9so26925065e9.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590434; x=1699195234; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jzLJbBSxVfMFEuwRPBnkkMdIfxffwtSenzfExf3nu7k=; b=SeHZ4M4v7bH96KhAXJ2nIGp2j5S23uVtyM/T1r5KjO7fL821zPITjUB/RcqvyxgQCJ t/eJtMN3aRYT/wbJmzvog8AcjLelHDnskh3Xn74Z7aTgP7gCXC7CwymoNgrC+RG173RE K5trZ9OusdKpJWGf8bvcKy2DY3GxKN58S7Er59uW5pz+WABJ7eYqzslwLQ+f0aJ5+BdW PrOPDGeUaspEagdR0i5i/FSy1JSm8lU1XYRcWCjvvA+pw/1sBFLjNsqhInrCMjiwsgXd R8Jf5Nv7VXJTHh/7SkofqpQ5G4QxjaoKxwwM9HUO4sGXKuHOwMYejvnNeudvcpIjaAlx pOEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590434; x=1699195234; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jzLJbBSxVfMFEuwRPBnkkMdIfxffwtSenzfExf3nu7k=; b=UjVfDl78j2ipx43jG772KspztUpmrOlM+PkJQ8zORVmZ6K20e+9kDvPwEjht20fS7Y BRbEcP+g6bFOwPzNWzl2ZxsOVZo2ZHYBi4YvBwE+C/TXt930dCF7Zal8+RR8NIwPDJe9 EpMaYdhKK56N/MIYmHpy3qC05GJSnovGtengdzE00JpiIFU9tvO2ya1dEiAvOi5N3gHH CqEheIZ7cf2NQtMTJQIMhaI8UN44hquUVt1Z+awI8ENndv2QP/chaswuW0oEJz5KbGvj GFVvR4k9yXH8xDrRwuitxakdg8r5zGeMRjpYeYhj/LbAhUzlKhhXnHm6K0y9Zc/piv8g OpKQ== X-Gm-Message-State: AOJu0YwHS+rr/VD+Msg4OtdWIIy/J8ZGBeLS26oPydTnBchxoojYFSkc cNhoQw+GRufvQSzLnkKUnOneN6mlwREaSwHCSus= X-Google-Smtp-Source: AGHT+IHFvLX6q6NfgyS7O4rzDdTzmgCNzPqsP9PS6fWE/1j1pGoQxw81BIoit3ctdqQxIetMyBFXAw== X-Received: by 2002:adf:ec82:0:b0:32d:87c9:1430 with SMTP id z2-20020adfec82000000b0032d87c91430mr7508857wrn.31.1698590434219; Sun, 29 Oct 2023 07:40:34 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:33 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:01 +0100 Message-ID: <869a55bfe133cab64bb6c9e668ecc273568a0194.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ibd9df5c77fae83c3e90c4e2dc77b3cfb5e6a482b --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 61d7416a..426a5f95 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -136,6 +136,23 @@ (define-public erlang-rebar3-raw-deps applications as a dependent libraries.") (license license:expat))) +(define-public erlang-rebar3-proper + (package + (name "erlang-rebar3-proper") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) + (build-system rebar-build-system) + (home-page "https://github.com/ferd/rebar3_proper") + (synopsis "Rebar3 PropEr plugin") + (description "This plugin allows running PropEr test suites from within +rebar3.") + (license license:bsd-3))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 147b0451..8269cba1 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -638,23 +638,6 @@ (define-public rebar3 of locations (git, hg, etc).") (license license:asl2.0))) -(define-public erlang-rebar3-proper - (package - (name "erlang-rebar3-proper") - (version "0.12.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) - (build-system rebar-build-system) - (home-page "https://github.com/ferd/rebar3_proper") - (synopsis "Rebar3 PropEr plugin") - (description "This plugin allows running PropEr test suites from within -rebar3.") - (license license:bsd-3))) - (define-public erlang-lfe (package (name "erlang-lfe") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 09/32] gnu: erlang-bbmustache: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859048029095 (code B ref 66801); Sun, 29 Oct 2023 14:42:05 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:20 +0000 Received: from localhost ([127.0.0.1]:43001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yd-0007Z7-Rr for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:20 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:56422) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yY-0007Xu-PP for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:15 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-40836ea8cbaso28048605e9.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590436; x=1699195236; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SL/qvKOoEAU8KKL2glKGQueo5yva2Hqsc4zBn/6WcTI=; b=Zo6EnzGWykUm7H4+awK8P1YugRr7TObQYkFzj2prg8PscLLn6hom3rHK/dspuTx9gT AUA6DG21ckzX5qqqdr+pOqpOFwyK5VdZw7ErRuKT8lm0NCcADxjNOZFHmMUBGvqlEA49 zfx6iNR5HTMS1VU4L0PxuttFaJBcd7NHfG1tzCzMeqKBrdexDNZLkFA/YlhfSwbyXooV Dd5GDfC8873a0Dsmc/cVCCRFP/3skjPFrDu+Us/ajKpEM/HKYRkAKgrAq7mhzsUEoMXs y9Vnv3mYw+3EkAQ0pb3M+DFU04onN+uS0aJzy0QAaHWVEMlyg7dTONMqdrxOJpIaldFr WVgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590436; x=1699195236; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SL/qvKOoEAU8KKL2glKGQueo5yva2Hqsc4zBn/6WcTI=; b=D+WLk7a1Mdepc+TMDGxL5YQDMje+a99Xjp5aFOcZOjj3bCy9kKwGNjpr7kNMMEdH44 dIE/2l2hee4cx9O+qtLITEZ6TFa/J1RRN1qkH/YNYrTEeUsQOY26UzIw9AaHdz/jdYxd sbSc8w/Z47LQ0zlfVzqgespLtESblWoK1g9cDg6z3ACg9ZmP5virrzBRTzuhgOT0XbM7 Yrcy+R3488bS+OGvWvV2JzUaaOE8fkWZKDKWS3x1OWD3bGY/UsbAGgSfL7jsKUN3+sSx N55fv3VNTZXwDF8jc2gMYPzQKpwCI8pvMFBHILXU9GRanoEYRMuO0xhqjjZXaguk4p39 L4KA== X-Gm-Message-State: AOJu0YyUCdRiG/heyb56wYH0+htkyCGWhdC0G4fG/AZ5oBafUYAH3TUg HiGoOFZGDAwSStWvjpyvO0G3W8IOGNb0sV+dFBg= X-Google-Smtp-Source: AGHT+IEsClIZ4Z+Wx695ApW6SuyYu0SmcYeQUFC2C32duEFnq7FfD8kwh6f95Y5qud5HmEVSnWQJ5w== X-Received: by 2002:a5d:50cc:0:b0:32d:9a1b:5d79 with SMTP id f12-20020a5d50cc000000b0032d9a1b5d79mr5819302wrt.33.1698590436144; Sun, 29 Oct 2023 07:40:36 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:35 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:02 +0100 Message-ID: <6d932942fee25dd60756618f5685d5960f88aa0e.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ied29a387cbaef59f16613d7425417da4fc8eed0c --- gnu/packages/erlang-xyz.scm | 32 ++++++++++++++++++++++++++++++++ gnu/packages/erlang.scm | 32 -------------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 426a5f95..5a966d2a 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -153,6 +153,38 @@ (define-public erlang-rebar3-proper rebar3.") (license license:bsd-3))) +(define-public erlang-bbmustache + (package + (name "erlang-bbmustache") + (version "1.12.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) + (build-system rebar-build-system) + (inputs + (list erlang-getopt erlang-rebar3-git-vsn + erlang-edown)) ; for building the docs + (arguments + `(#:tests? #f ;; requires mustache specification file + #:phases + (modify-phases %standard-phases + (add-before 'build 'build-more + (lambda _ + (invoke "rebar3" "as" "dev" "escriptize"))) + (add-after 'install 'install-escript + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (install-file "_build/dev/bin/bbmustache" + (string-append out "/bin")))))))) + (home-page "https://github.com/soranoba/bbmustache/") + (synopsis "Binary pattern match Based Mustache template engine for Erlang") + (description "This Erlang library provides a Binary pattern match Based +Mustache template engine") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 8269cba1..c0cbf5a6 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,38 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-bbmustache - (package - (name "erlang-bbmustache") - (version "1.12.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt erlang-rebar3-git-vsn - erlang-edown)) ; for building the docs - (arguments - `(#:tests? #f ;; requires mustache specification file - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-more - (lambda _ - (invoke "rebar3" "as" "dev" "escriptize"))) - (add-after 'install 'install-escript - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (install-file "_build/dev/bin/bbmustache" - (string-append out "/bin")))))))) - (home-page "https://github.com/soranoba/bbmustache/") - (synopsis "Binary pattern match Based Mustache template engine for Erlang") - (description "This Erlang library provides a Binary pattern match Based -Mustache template engine") - (license license:expat))) - (define-public erlang-cf (package (name "erlang-cf") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 10/32] gnu: erlang-cf: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859049729208 (code B ref 66801); Sun, 29 Oct 2023 14:42:05 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:37 +0000 Received: from localhost ([127.0.0.1]:43017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yv-0007aw-Ct for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:37 -0400 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:56402) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6ya-0007Y2-Nb for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:17 -0400 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-32f8441dfb5so243163f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590438; x=1699195238; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eRnfnoteQuSnjzhekEMixJ8E9ZpBjcilXcyafQphwzg=; b=FXy0SlGanj54+qmLrKgySGVab8G+Hz6nXoocB3ms8madbOV4jp2wdu/00ptiLLI2AH Ps1GDAD0Cg2moCpaCl8evaCol1o3Y+keU8he5VvFQSSy5dKV40cgtqcUs0yWKmD54UmM Xhh95kZ+fHGiEuuA0Wul7pzj9FMqTnVkOaQtaehyiuBabyWmukpVD2VXqY8qyrVbqyVt 91ZbbUwD1c99Nfj4pu/csUGymUY820CcxY/nR49SCqFcpdghZtpvA3R7LxvIU9rQVwYc FZAZCjQBHIwXyjmhJp9FuveG05HwKwegI6fRrygJSBJww4Aa8/koM6aGFq3yfXpppW8V Kgzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590438; x=1699195238; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eRnfnoteQuSnjzhekEMixJ8E9ZpBjcilXcyafQphwzg=; b=WKgY1LZ1y0atojeETtmvKWzg2nF2NvxzHqhm/fbcBcJR5oNMgww0IOpU1QjAVgzoz2 kvj+Juw/CRHA6disiQoIqWRlCuxjJ2PLcUjx6n98gY7g62hQQWqn05wgAUTiTXmlAS0v kp/A2QYAHNKjsQpOmvFcBaAH/h7gB1zbu1R4dUSOxTQN3ELcLXaAcdl2TO1lXTNuJR0J g4ET2bLDWYDcokZ9kbOtsrTOycl3a+fcdm63VIchlnSWN4xhulEeodlaBIqAhTqoISVE sv0g1iBgAk0WC3rGlnlffH8vGdm942sZ4rst/3AzSzX8FivAwVOfe/eyT8+iFfVKFIiC UvHw== X-Gm-Message-State: AOJu0Yz/+4CMUv8+Iapdh1W6eV5PRZcKEO1i5as3uQfCBC81FYKw9eK0 yWYay1JC4JYjcFSIvnb4zlKfEi5v7RpRxhTn8sM= X-Google-Smtp-Source: AGHT+IH1xdE8R0n4Bxm53JSxB94XdpLN0VqCIK1XxSAf7ZZIY2/XSbzfbi1buGKuRerfaE9Af+W3YA== X-Received: by 2002:a05:6000:4b:b0:319:67ac:4191 with SMTP id k11-20020a056000004b00b0031967ac4191mr5706834wrx.37.1698590438033; Sun, 29 Oct 2023 07:40:38 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:37 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:03 +0100 Message-ID: <5e9792483fe15f4545729e452e25378ffa9e5761.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Idcb18977a9409268ae7258d8398772021a651c63 --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 5a966d2a..1eb7437e 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -185,6 +185,23 @@ (define-public erlang-bbmustache Mustache template engine") (license license:expat))) +(define-public erlang-cf + (package + (name "erlang-cf") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) + (build-system rebar-build-system) + (home-page "https://github.com/project-fifo/cf") + (synopsis "Terminal colour helper for Erlang io and io_lib") + (description "This package provides a helper library for termial colour +printing extending the io:format syntax to add colours.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c0cbf5a6..eeb1231e 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,23 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-cf - (package - (name "erlang-cf") - (version "0.3.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) - (build-system rebar-build-system) - (home-page "https://github.com/project-fifo/cf") - (synopsis "Terminal colour helper for Erlang io and io_lib") - (description "This package provides a helper library for termial colour -printing extending the io:format syntax to add colours.") - (license license:expat))) - (define-public erlang-yamerl (package (name "erlang-yamerl") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 11/32] gnu: erlang-yamerl: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859049829215 (code B ref 66801); Sun, 29 Oct 2023 14:42:06 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:38 +0000 Received: from localhost ([127.0.0.1]:43019 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yv-0007b3-Qs for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:38 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:45443) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yc-0007YE-GZ for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:19 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-4083dbc43cfso24428755e9.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590440; x=1699195240; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MOGNWMS2nOb3mtdW0mhY4mG7WEaFL/o/tuMiYDZJN1s=; b=C2c9qxHMvFkdkiZxTUKajwTV/PRpxt8tw6fZYGWpbgJc2CCvrrjh7rovR3NxJ8S9EG H5Jctz/UtN+O94ZC7ZZjdAH6H0Z0m5Hm8FvRrDlysRfhYJEoocEHiCz9i7MObftmvyAI INip2BcgBHJRWhoccPNWUNwVtUnFg82KgUkR8zUGzhSlUiGjgE/r2kCLwoedH8FGBAB0 ctKcY0010a73Bxe5MG9Ejq0OJJw2Myd7hbEBVwOcaBQnjn2LaUEv4oD8QXU9RoTmAdKs S1n1nsYrnISPrHNY+kdmL4EDCtptY+Z1/rkP8/5csLVJoyyJffqanFFaRie4wnbeKKah LLcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590440; x=1699195240; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MOGNWMS2nOb3mtdW0mhY4mG7WEaFL/o/tuMiYDZJN1s=; b=OgqdnpnHjT+kAEs2/AgiT/RS6J+6nqJYQ5UQ7nxio/CEFC43ZeQABvUUdh6TsF8xat Ta5IDkvpI78BqBPUdcTPqiTgYvW3DOMSO1Dlf0nF1dc0TadOXV4bZLKbN/kunxsj1Ssj oJsoPnvalLo7NVxWOPdEo8rIFTpZZ17eDVpy62rYH5CIvYuJqG4Ai2ZSbnYj05lLgSbj wJy7VuUHnJdapKNfnEsPnVnKqoKFP4s6VCdnmfdlYfdbpCD4bBxLDDgwhoFhwIP0m/5p PaD8NVF5+XfLtZnZg/RFr+yFQcv0C7/FNQvXh6vUuFNFQ76lrwTYuEDpDD5c7jFrJJ5c 1kNQ== X-Gm-Message-State: AOJu0YyJye3bOREn0OGMqkLTBihehno3vvJCH2eZJRlwg1bUK+8C9Rq1 Xvh008Tw2H/D6EXKrpTTXvkappdZ93kAmobwLS4= X-Google-Smtp-Source: AGHT+IE51WoR5BxCWYBEiyL+5Vfmq5Z699hX9gyomHwBhL3Pjhz9AIwyV5wlmpsizf91bkUD6b9cUg== X-Received: by 2002:a5d:64ce:0:b0:32d:b031:9719 with SMTP id f14-20020a5d64ce000000b0032db0319719mr6421844wri.42.1698590440045; Sun, 29 Oct 2023 07:40:40 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:39 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:04 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I1a9712519e8d243f506e60acf19d1607a705269d --- gnu/packages/erlang-xyz.scm | 22 ++++++++++++++++++++++ gnu/packages/erlang.scm | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 1eb7437e..78f829e9 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -202,6 +202,28 @@ (define-public erlang-cf printing extending the io:format syntax to add colours.") (license license:expat))) +(define-public erlang-yamerl + (package + (name "erlang-yamerl") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; There are no tests included on Hex. + (url "https://github.com/yakaz/yamerl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) + (build-system rebar-build-system) + (synopsis "YAML and JSON parser in pure Erlang") + (description + "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as +JSON documents.") + (home-page "https://hexdocs.pm/yamerl/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index eeb1231e..5ed11c28 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,28 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-yamerl - (package - (name "erlang-yamerl") - (version "0.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - ;; There are no tests included on Hex. - (url "https://github.com/yakaz/yamerl") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) - (build-system rebar-build-system) - (synopsis "YAML and JSON parser in pure Erlang") - (description - "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as -JSON documents.") - (home-page "https://hexdocs.pm/yamerl/") - (license license:bsd-2))) - (define-public erlang-covertool (package (name "erlang-covertool") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 12/32] gnu: erlang-covertool: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859049929224 (code B ref 66801); Sun, 29 Oct 2023 14:42:06 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:39 +0000 Received: from localhost ([127.0.0.1]:43021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yw-0007bF-DQ for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:38 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:58498) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6ye-0007YL-JR for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:21 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-307d58b3efbso2295587f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590442; x=1699195242; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cEeWzpUwBAUMzq4dmFMB7Ko5wUrHrP9A//VQzW9KjGc=; b=vgwTW/igWCNH+RNY9qWfI+Anw8UIQLy2i3+FfgnVn/socCM89JkBwplkRA7I9z6lv3 KVawJuSC+Ka1YhGc44t5UKlK5KeVuns4TPVlyNuMCRKHONaMUYc39eusgLOz0yob+2yg Ne1j1088q8s768f2XqOroVgjANUpusO/vJmCph0PKQ1nezn2P6qvmaf2wRORx3B8c5fq UmXB296XtWnGCNqMMWsQlk6cV54y2f4Oe9gRVL6KKrEosscV3uTC5VeYXWy25dDgdpDP dLLbzXQdVqbQTA6sXK7jJmb9f+ew1L+AtM74ZARE8IVlWiOr0z7pX1kFFUCHqA+9ouRg uQBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590442; x=1699195242; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cEeWzpUwBAUMzq4dmFMB7Ko5wUrHrP9A//VQzW9KjGc=; b=G+5++aptCKUlABsZGzJjDitPncYrxI9c5WNPa1XQh+fBvHyGq0Nf689YWXM6NYMEGi iMmN8fe52eWV+tRRdEIxQDJ458tzv0kZKivBRw78A4wpYk2SmcLcJMLnPkKtoqmM37ke rEBItgF50JIufGjs6LyxgaYclkhKyzN8BMQol6KJfWygCpdu5MfYq4O9DfHMtAIHTks1 2EJGTnRDNLvaIHc0u1dRHAp9Gr8ESyZeTS2UCtwO8yVu7TCAttjYavjxrU8VrnwjD5M3 QpyCrpUaXTxnzQ68xQHw00QykO3pfEHBqW3RhegO8ytJXr3/qFGJYGsMe534i4+jXvY7 ISRQ== X-Gm-Message-State: AOJu0Yy/Z6wfo28s1tlCXD0cuvk77qd2g4QAfsehmvQPaOoAmZqx6PZt 28OoSwF50THnj3d2b5WRVT601W2Dx/3tnH+7I4w= X-Google-Smtp-Source: AGHT+IEapeuoKx8ERgWRIawUcZk27VzfpXyPq1Jmi/5KQd7ZWcIQNfvxOT4V+uht0cuwaalnyEdX6g== X-Received: by 2002:adf:f0c8:0:b0:32d:a2a3:9533 with SMTP id x8-20020adff0c8000000b0032da2a39533mr6127995wro.59.1698590441940; Sun, 29 Oct 2023 07:40:41 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:41 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:05 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I1212ff469a12e926d4728106c15f12b181819e2c --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ gnu/packages/erlang.scm | 21 --------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 78f829e9..ae2193f5 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -224,6 +224,27 @@ (define-public erlang-yamerl (home-page "https://hexdocs.pm/yamerl/") (license license:bsd-2))) +(define-public erlang-covertool + (package + (name "erlang-covertool") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) + (build-system rebar-build-system) + (home-page "https://github.com/covertool/covertool") + (synopsis "Convert code-coverage data generated by @code{cover} into +Cobertura XML reports") + (description "This package provides a build tool and plugin to convert +exported Erlang @code{cover} data sets into Cobertura XML reports, which can +then be feed to the Jenkins Cobertura plug-in. + +On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 5ed11c28..55a6edb7 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,27 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-covertool - (package - (name "erlang-covertool") - (version "2.0.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) - (build-system rebar-build-system) - (home-page "https://github.com/covertool/covertool") - (synopsis "Convert code-coverage data generated by @code{cover} into -Cobertura XML reports") - (description "This package provides a build tool and plugin to convert -exported Erlang @code{cover} data sets into Cobertura XML reports, which can -then be feed to the Jenkins Cobertura plug-in. - -On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.") - (license license:bsd-2))) - (define-public erlang-cth-readable (package (name "erlang-cth-readable") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 13/32] gnu: erlang-cth-readable: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050029246 (code B ref 66801); Sun, 29 Oct 2023 14:42:06 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:40 +0000 Received: from localhost ([127.0.0.1]:43026 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yx-0007bS-BI for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:40 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:58508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yg-0007YT-Cw for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:23 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-40906fc54fdso28744005e9.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590444; x=1699195244; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8Gv1nldisObNLDTN8h1Amt7QE17VwmySSgAqIWmufEk=; b=vJ3UaTdKocAZlmSm+3iTYBlxEAukn6TLWh8Q45Nysom11Q6fwCh8BciSeNitU9sSi1 NJVqNiorIwxNFCjLYkgqMQMITzC6I8weKtzykC1+KpGcym/uuSoaKg8S9NCf1CtladCt L2yZIKbWygC6TS2IzqGaQGcxHkYr17RUd6WUkrzNHxJjz/mZCP7he0uSiIFdfPI5CXFt hle4r9FiO0my8maR0aZpwhiwuAgwbYHxe8zs8+xCJzYWE2gHktMnFNR1IVPJ0AmikvUg NlKOT7e6gTshjBiuJDB+sraFpsXYUUq8Z1BHKSglYSjzKitWS/ekpReCpjcfyPL/PY5s e4Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590444; x=1699195244; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8Gv1nldisObNLDTN8h1Amt7QE17VwmySSgAqIWmufEk=; b=DYvBhPu5HC7oItetZF1A+w+MONYL3e4yfSyidFSRAogAbrLdR2Vy7s/xohhnb+pQK3 MLDfBIvqk89GB6fUvsQ29xGqnkwvdDzGn3K+1iTPprgoKeBEFQEoJb4drXCnryWuEhV/ zQI6lxy6Vn4OaUD3XuLc/837hVYqbe8ltqFtr1i9FGRd0hjg/1xHVeHVwdaCCEtezps+ yB7N8NpfvVxvvbPSTldD2xIrh0CSBuFLrEBLw8kxOLopXx8X6xbVtCfm5tjB6r3h6Lg6 iqGRsVlaihFP5OThO3FQSYym9sRGsJAGZOPMuYBJS5iH0m5ZpHVRaoB8V9lCRzkIu5Wg uGJg== X-Gm-Message-State: AOJu0Yzktat+OKPnwbnCmcrEDcwh8PBfNbFDxlX4Ezj8+w7vGlHMyt1n 3rT0uHeuEbmlaBYdA++E3pzb4eWU2SdVEXDv+aI= X-Google-Smtp-Source: AGHT+IFMuY+/m87Px/tC4XdZoE0WD6I4BfNWKFX78qdh5OBLXwFfP2aEEYQ+ruhvUWPBDDGeegs6mw== X-Received: by 2002:a05:6000:1ac7:b0:32d:8e54:29f7 with SMTP id i7-20020a0560001ac700b0032d8e5429f7mr5327309wry.64.1698590443858; Sun, 29 Oct 2023 07:40:43 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:43 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:06 +0100 Message-ID: <7ac66deef86c6e6fa09cb95ac19c01b0bfa18256.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I9ce2a8a7250f3176ff149d4fd1c3a9746c95edca --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ gnu/packages/erlang.scm | 21 --------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index ae2193f5..86e50656 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -245,6 +245,27 @@ (define-public erlang-covertool On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.") (license license:bsd-2))) +(define-public erlang-cth-readable + (package + (name "erlang-cth-readable") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) + (build-system rebar-build-system) + (propagated-inputs + (list erlang-cf)) + (arguments + `(#:tests? #f)) ;; no test-suite in hex-pm package + (home-page "https://github.com/ferd/cth_readable") + (synopsis "Common Test hooks for more readable logs for Erlang") + (description "This package provides an OTP library to be used for CT log +outputs you want to be readable around all that noise they contain.") + (license license:bsd-3))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 55a6edb7..4cc530b7 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,27 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-cth-readable - (package - (name "erlang-cth-readable") - (version "1.5.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (arguments - `(#:tests? #f)) ;; no test-suite in hex-pm package - (home-page "https://github.com/ferd/cth_readable") - (synopsis "Common Test hooks for more readable logs for Erlang") - (description "This package provides an OTP library to be used for CT log -outputs you want to be readable around all that noise they contain.") - (license license:bsd-3))) - (define-public erlang-erlware-commons (package (name "erlang-erlware-commons") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 14/32] gnu: erlang-erlware-commons: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050129281 (code B ref 66801); Sun, 29 Oct 2023 14:42:07 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:41 +0000 Received: from localhost ([127.0.0.1]:43035 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yz-0007c1-5G for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:41 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:53508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yi-0007Yw-GE for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:25 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-32ddfb38c02so2613611f8f.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590446; x=1699195246; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ed7hhJtNrTcEM7gQCXnjmqf8dDcrGkD92PHounbYEsU=; b=1rp4Gu2vI2ai5oBlCsEAtXZqUrBllQ1uiXdf4EFCLmV1nGUm9JCdgLX0SG9jClVo6H TpgKey0oUmT+MP/l1Ez+Cc2xKC5+bFDwk0GLRTsT/9Z1Ou/qRAaPpHpydTwdhecTTj0o 6J0qcbndhxXRo68br6h51mc23bRzASNoxjkDoMlmqYQD6PD/x0yn+CL5oQrWSpS42vmK +t7E5H0mVMi2f/19bQMt7I4f42RreyGKwi+gUJLmV3F83FHg8fRxFNhxN4ndS8EGYiUa Io4d4QbfsLsdNJeFzkUErJoxYcJVYs93aEjr//6jCs1iLQZe//JXf9Duu7ZrEVe/UW3J Y1oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590446; x=1699195246; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ed7hhJtNrTcEM7gQCXnjmqf8dDcrGkD92PHounbYEsU=; b=fpN2jegpM1XRrTMRjQEPiT+nZoVAT+5UR+MEmmCK2auf5humh/J2YMUjW+wuy9DIXS dbNMC3nN19UAI4EvS1T74mptvygOr4WyzF6Hjn8ZO6AMtGX5hCuDQXLDr6jVFg/Xkzxf ttnKuX9Qip5EQmZoRS3hc6gBBcvGFRylta4nVbxtHiMyapAazHwfPeVcL/0sE9p4sePj 5Mz2D7J3L/C6aSKCbTXMNVmEJnVVf/Tvb8nhCgEPicCnHQ1+Hnru3cpMCZbIbm6PQB6F RvdGC188g/8k9BPPSHswhD6K2165iKPGbXjW1g1cEPP6TdPYc9fAavdFfjg9r/EdNkVa 7BxA== X-Gm-Message-State: AOJu0YzYT9qr6BsFDtudXOkscqfvUweIsf0DJjVJQ8h1IbB1oOs/JhkX +/rYgILWdOACd2TKmNG3xPK3gFZKoY77lUao8yk= X-Google-Smtp-Source: AGHT+IFuhF+GpQ92AT+9xEi6UHbI4vhPiEkSoSnVWBRAy5AqRfQ4vKUnu9Vzb55hC6tDTEDD4CuvuA== X-Received: by 2002:a5d:62cd:0:b0:32c:c35c:2eea with SMTP id o13-20020a5d62cd000000b0032cc35c2eeamr4478438wrv.6.1698590445910; Sun, 29 Oct 2023 07:40:45 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:45 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:07 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ic2cfcfbd9d3623464200d26412c9af79b861a970 --- gnu/packages/erlang-xyz.scm | 27 +++++++++++++++++++++++++++ gnu/packages/erlang.scm | 27 --------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 86e50656..66a2cd94 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -266,6 +266,33 @@ (define-public erlang-cth-readable outputs you want to be readable around all that noise they contain.") (license license:bsd-3))) +(define-public erlang-erlware-commons + (package + (name "erlang-erlware-commons") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) + (build-system rebar-build-system) + (propagated-inputs + (list erlang-cf)) + (native-inputs + (list git-minimal/pinned)) ;; Required for tests + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "TERM" "xterm")))))) ; enable color in logs + (home-page "https://erlware.github.io/erlware_commons/") + (synopsis "Additional standard library for Erlang") + (description "Erlware Commons is an Erlware project focused on all aspects +of reusable Erlang components.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 4cc530b7..941674c4 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,33 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-erlware-commons - (package - (name "erlang-erlware-commons") - (version "1.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (native-inputs - (list git-minimal/pinned)) ;; Required for tests - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'check-setup - (lambda _ - (setenv "TERM" "xterm")))))) ; enable color in logs - (home-page "https://erlware.github.io/erlware_commons/") - (synopsis "Additional standard library for Erlang") - (description "Erlware Commons is an Erlware project focused on all aspects -of reusable Erlang components.") - (license license:expat))) - (define-public erlang-eunit-formatters (package (name "erlang-eunit-formatters") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 15/32] gnu: erlang-eunit-formatters: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050229288 (code B ref 66801); Sun, 29 Oct 2023 14:42:07 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:42 +0000 Received: from localhost ([127.0.0.1]:43037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yz-0007cE-OM for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:42 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:44253) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yk-0007ZN-EY for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:26 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-32ded3eb835so2730439f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590448; x=1699195248; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hVjll2GchJQ4jxKxyCm5ajKkvsuNI7m9V+3ync/Ok7E=; b=Hb5AD67Lc2RRnq49jKN8zngOSr8CFdabGdiyB4YCWc3gduWI94MsllfPY68ia7CzEN 4duq6fpdPJ0+MxujrzRvi7sCERM1OvX7aH4/epYRh1Sq6AvqCHCSNZ9ZeuTSRdeTVAos aHO/OU7h97wk9GZlBCBH8TyUuVyFQ33x6orUC4wR4ZbDnNTRDSYhTYjY2QO7U+d9Ss1J 7r3u9WuwMTHdoYem9aYprdC1cpFGfLyOck9xOSvhrXAY0LgW8PzlCqQ4uy9tojuTVGPy WL6N+jKhtljkwqLQGyEeXcwUiUrwLHKblag8oZrI0qarn3WwrrQKdRr/tIeJLKENG2Hx L0PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590448; x=1699195248; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hVjll2GchJQ4jxKxyCm5ajKkvsuNI7m9V+3ync/Ok7E=; b=IeFxj52BcNYJXynAquATYXBn5aOMkS7obDS1rSEQnuFyKjhkpvoZg1eh9f1AaLlFCR hoEOnjUecZBZWQKsjylHj/m4C+5ucjmDYWA0BAH5u9GmM1xaIqUSQd1RhVE+I7bYH3qO yfeSq8MZJlE+6om1lLOxv+x/obaRNCXwf4PkIQdJeN6iQa9cZyed4n3WafB24Hq3vXE3 pnhNBZpax4puclw5HLrjIgLTDh9bTo55vqT/TvYOEC4iB4NabrV+wEuSoPdJmr/yQYNa QWH/XIqZ3wdpMWhuY2kszx6FkCkw848NbVhQDfUADLIdnp2iYnTuxEPiZ1HxWE+FbGOF 0lRw== X-Gm-Message-State: AOJu0Yw7EdxApYSZeBMVH708pRjXFBK9JSJ0PdVzDP7/jeSvby/0QGyO Rf+B9AUAWfCucHZnSm6UQB0kO3mjV96aEIVC/DE= X-Google-Smtp-Source: AGHT+IF4Yb9Ns/3wN43+/ngVmDlRhWjUqZj3RMlngiTecfmeWAb7wE4Q29hBfgsE7eIO3/Y6F/Kziw== X-Received: by 2002:a5d:47ac:0:b0:32f:7ebc:969b with SMTP id 12-20020a5d47ac000000b0032f7ebc969bmr2850787wrb.1.1698590447977; Sun, 29 Oct 2023 07:40:47 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:47 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:08 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I10bc54bbf240bc9db3f764408b2a80966cc1221a --- gnu/packages/erlang-xyz.scm | 16 ++++++++++++++++ gnu/packages/erlang.scm | 16 ---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 66a2cd94..47434a96 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -293,6 +293,22 @@ (define-public erlang-erlware-commons of reusable Erlang components.") (license license:expat))) +(define-public erlang-eunit-formatters + (package + (name "erlang-eunit-formatters") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) + (build-system rebar-build-system) + (home-page "https://github.com/seancribbs/eunit_formatters") + (synopsis "Better output for eunit suites") + (description "This package provides a better output for Erlang eunits.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 941674c4..ffca507e 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,22 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-eunit-formatters - (package - (name "erlang-eunit-formatters") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) - (build-system rebar-build-system) - (home-page "https://github.com/seancribbs/eunit_formatters") - (synopsis "Better output for eunit suites") - (description "This package provides a better output for Erlang eunits.") - (license license:asl2.0))) - (define-public erlang-hex-core (package (name "erlang-hex-core") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 16/32] gnu: erlang-proper: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050329297 (code B ref 66801); Sun, 29 Oct 2023 14:42:08 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:43 +0000 Received: from localhost ([127.0.0.1]:43039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z0-0007cL-4p for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:42 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:59724) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6ym-0007Zc-9t for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:28 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-32df66c691dso2288975f8f.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590449; x=1699195249; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cmgFZRBBccEddGV0NpD4cvEn1KMrp0ANMQKoktpK05E=; b=OCSGsBXHCSlDDNHhqo/vAwMMTRwizDa+tTg77a2/BCinXOH0059+gPAt8mOi61A3qN FjSAXrsoJlhpVcDpi7htpMzEETdhsdNH0Kr5cis7LKIIw22Sy6lmIqHtAF5cL3aZmyYx xnlNmRicUx8htoJa67gO3Cb142sDBt5BbY7HR97+VMVtEic3Ftsy8J0TkW+e5Sfs3D0C vaRMPeczM9+1YEMN/c538Wp+/f2LGusQ6MzXZL7GtOhDZ5ZHXGubfeaPJMfO/At6u07X PWk9uPhkFdMoyFv51nuH+12y2q5bcjDwEFV8pohRJbgarDf3Fd5KNcf/4y/aULATkCD9 BDqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590449; x=1699195249; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cmgFZRBBccEddGV0NpD4cvEn1KMrp0ANMQKoktpK05E=; b=OOQmvq0OPNr/DZx//v/ZU202+HxaUC7KXCBT1wlgfwvDvF2A+04i/VjxnEPwtFsGyp VgiDeBeAOKAVXyO0t9ncUyG6WyBhLi6P1bR1cpAZRt5UNHzkUXNbdBCQfoOSxETWKYnw vz9crxVxCcCQ0etZ16vPb+MNXETkekbJLtZ6m+oikWEqx0mNSIkmdgao4zWZUlaUeT8j ONkjCEm1emiLApOnw01hC2yppJtNUT9WgmCRDYe1pnhmoezHgVaUK7RW9rVBY6Z4FdDb 199Rg5kAenQjMk2Sy4IiX7hZkoMcFXtbsHY9FXlfITUClJUD41T3/sLDibNF2HWtQdmy OOzA== X-Gm-Message-State: AOJu0YzW6jdo+grOH46A+2zs18URi8/ap9dE5GZSknyKv4Zwp4rcflnZ YNY5QtObCtp6hPDs5hnhSUQ6W3YldvShHCp1y+w= X-Google-Smtp-Source: AGHT+IGFjGGlqXq3lCLRV7HECKYlu+jQqPwoxcxGjRJ1tV84eOAFUWjJYK60kJ500umwZUq3nF12vw== X-Received: by 2002:a05:6000:1205:b0:313:f463:9d40 with SMTP id e5-20020a056000120500b00313f4639d40mr4189332wrx.65.1698590449756; Sun, 29 Oct 2023 07:40:49 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:49 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:09 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I8a8e3d16a9b02e53615cf95b336895dc89367ce2 --- gnu/packages/erlang-xyz.scm | 27 +++++++++++++++++++++++++++ gnu/packages/erlang.scm | 27 --------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 47434a96..b83bc6c0 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -293,6 +293,33 @@ (define-public erlang-erlware-commons of reusable Erlang components.") (license license:expat))) +(define-public erlang-proper + (package + (name "erlang-proper") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) + (build-system rebar-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{plugins, \\[covertool\\]\\}\\." _) ""))))))) + (home-page "https://proper-testing.github.io/") + (synopsis "QuickCheck-inspired property-based testing tool for Erlang") + (description "PropEr is a tool for the automated, semi-random, +property-based testing of Erlang programs. It is fully integrated with +Erlang's type language, and can also be used for the model-based random +testing of stateful systems.") + (license license:gpl3+))) + (define-public erlang-eunit-formatters (package (name "erlang-eunit-formatters") diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index ffca507e..8d3b682c 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -305,33 +305,6 @@ (define-public erlang-parse-trans compile-time constant.") (license license:asl2.0))) -(define-public erlang-proper - (package - (name "erlang-proper") - (version "1.4.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://proper-testing.github.io/") - (synopsis "QuickCheck-inspired property-based testing tool for Erlang") - (description "PropEr is a tool for the automated, semi-random, -property-based testing of Erlang programs. It is fully integrated with -Erlang's type language, and can also be used for the model-based random -testing of stateful systems.") - (license license:gpl3+))) - (define-public erlang-jsx (package (name "erlang-jsx") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 17/32] gnu: erlang-hex-core: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050329310 (code B ref 66801); Sun, 29 Oct 2023 14:42:08 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:43 +0000 Received: from localhost ([127.0.0.1]:43042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z0-0007cU-PH for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:43 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:54510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yo-0007Zx-5y for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:30 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-408425c7c10so29044825e9.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590451; x=1699195251; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e/IFWYBYYZfs4KrXrf6OvJVCk1J9xYD0bdSb12Oegm8=; b=2OVPCEtKkJ1k5WnfKFv0ALihOFfh19Y/VSMNDJ65E6JHdPwb/75LgzDfXyCrsdrH5K fB8b1dCbOYnT0WISF8Ocx3yv4F3eZP1K+1nk5kk8Pe7G0/KV5b3kfE4Lf3aCQ8EkX6c1 wlOT7MAo1DAfFWOUeaVQpJTtnbHqWj5HZMW+Q2G2VoujyfuvEcvMvWNaWlF/7w/IwUS2 MT0yRke6zcVyEu2fbfQHNAJH6aRYEUzxaI+2z4GnoKtPlHUIhgN4OVmk+JCAkdPFsyey QqjcfSdTS6Oo4tpIZgxqxWEcwwvh1HadvUYxjZV0kJy99Mg39z4nFwE7vgyIsuduOdqG l9cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590451; x=1699195251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e/IFWYBYYZfs4KrXrf6OvJVCk1J9xYD0bdSb12Oegm8=; b=ZATxJKLBtAxSpyLlaSaL5YUxCfOW8NtthpuYjrNs8DFItw5vEh8i+n2RKZ5Pts9biC +oA1puaL6iMXpcvJDK0nRrNVDOFZd62TgweP6ti2FhMd2v7kazbwCzFPMcOWepWlTl8s FOFP/A+e6nU1Wzi6hpqnVuLu532wDAbWwe/IRZmc/5rQIwAFHu81Bul7TzKodreULMAo B3UdbmT7sGYDFRoTmQdegjvjxE61hNV3nUJ9Hjkl+F81svxya5Nupx59Y/i03ijz7ink LIdOpTiPjP5xlRXSMpo5i41u3giSlEPB69ua5/bS1DBGAmUBpIXeOWOZ/1HnuDW2JuoF TUEw== X-Gm-Message-State: AOJu0Yx6EnR18mv4kGXthoExPu9s35nAiM2SXVzDvIa2hCdVQxqIvf49 VKjGQr18dzlpjDM2BE8PnwDeF/PynikgWwySPfA= X-Google-Smtp-Source: AGHT+IHanz/Ag1cngUpoM3GGM9rcvUijkt4/OpJn12HwRWEBPb6Nsxm+tdHnN7r5kJ9D3sU0c12TMw== X-Received: by 2002:a05:6000:1804:b0:32d:9541:b1e3 with SMTP id m4-20020a056000180400b0032d9541b1e3mr5564177wrh.26.1698590451723; Sun, 29 Oct 2023 07:40:51 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:51 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:10 +0100 Message-ID: <14a87086ed3815e099c5bc2f641718f31b136939.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Id69281bb2ec1847723582a461b0fa87df1c3ace7 --- gnu/packages/erlang-xyz.scm | 26 ++++++++++++++++++++++++++ gnu/packages/erlang.scm | 26 -------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index b83bc6c0..2ce2e3f0 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -336,6 +336,32 @@ (define-public erlang-eunit-formatters (description "This package provides a better output for Erlang eunits.") (license license:asl2.0))) +(define-public erlang-hex-core + (package + (name "erlang-hex-core") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) + (build-system rebar-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rebar3" "as" "test" "proper"))))))) + (inputs + (list erlang-proper erlang-rebar3-proper)) + (home-page "https://github.com/hexpm/hex_core") + (synopsis "Reference implementation of Hex specifications") + (description "This package provides the reference implementation of Hex +specifications.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index 8d3b682c..c509282d 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,32 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-hex-core - (package - (name "erlang-hex-core") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "rebar3" "as" "test" "proper"))))))) - (inputs - (list erlang-proper erlang-rebar3-proper)) - (home-page "https://github.com/hexpm/hex_core") - (synopsis "Reference implementation of Hex specifications") - (description "This package provides the reference implementation of Hex -specifications.") - (license license:asl2.0))) - (define-public erlang-jsone (package (name "erlang-jsone") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 18/32] gnu: erlang-jsx: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050329316 (code B ref 66801); Sun, 29 Oct 2023 14:42:09 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:43 +0000 Received: from localhost ([127.0.0.1]:43044 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z1-0007ch-D6 for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:43 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:48278) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yq-0007aF-7d for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:32 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-32dd70c5401so2314166f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590453; x=1699195253; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eGa74kHng+PZWv0rwVxEjq/hkLDAZ/Utqhe5KscV8/E=; b=MBRcyNIOXiadWQp4rQtyuz7PxrBZ00nhfYB/Kl5CClE22V6HAlTvtgdG0vAhkg+ZyM Pzps1heLNom/BE2JESLWZyqH8ydKbkUoR5EF5MTP3eaWrDNplNg6zdHzuMAOIoIKTwzf V2fBSLeqiDBm81dU8Mf/5QJpryhvGETCqIjuqrxbqFMtHSW+o6q+zUNbK2D372vUl47z osj+NBPSW1Iui5TqTEnzNHDszGtun+oXVaEQhCr9vm0d+dd2Heq2K2qXpqsT0vLeksdg p7bGS/jgkPrB0joqKR8ICF9c+ovz7x5zXEaiLjVybNL9iHxW7WSDu8aKh26LirQJdgYx qtMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590453; x=1699195253; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eGa74kHng+PZWv0rwVxEjq/hkLDAZ/Utqhe5KscV8/E=; b=K//DI+YokfWbBVlNkP7cv+TAPYTrvLzwC4n6NDYJcTo2SukeFT0SSVYu+TmBNOIWKP KvZwJEryWVWObV86NpvWun5HaKOCdXTWPIctAuTqE2qdZ6+Oy/jODp8NY+LnVF3GJAQm CFANoMg31bfo6gLPH5LWK9NPz/4ASxnAgih+IbFUun9K0U5ZJvsQS3e7iL4Rmxtuy6zh 8q719zpRDnzhcBCr/A2LEQj1g0dubcvY/JcJUXXNhNTmHMTBt7VNz55k9MJB2jzEPstd ZXlgjRNezy7Ki5DbUEhJv6L5lUIMmNhk97+5EpEuCAM3P/X5Ade6z8hlfGk2xgHhtETq jLbQ== X-Gm-Message-State: AOJu0YztXfWJzsIN6+79CtYzm31Ork05P6kXsNEXR0oLI7qAON1uRfUo okDLa4Q+nWbXzLCYoIp8oyTwvgwbD9jVsvgxKqo= X-Google-Smtp-Source: AGHT+IHJjXArNxXay4/nHnvWnPLEY0E75QlySnb5pRgdg8J9RPJ8ru9E99QI14ne05J7VRWAAadPUQ== X-Received: by 2002:a5d:6dae:0:b0:32f:7c36:228 with SMTP id u14-20020a5d6dae000000b0032f7c360228mr2597115wrs.6.1698590453770; Sun, 29 Oct 2023 07:40:53 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:53 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:11 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I5d71483d9e00b81f61d3339bbe1195865c05171f --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ gnu/packages/erlang.scm | 17 ----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 2ce2e3f0..1d7984fb 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -362,6 +362,23 @@ (define-public erlang-hex-core specifications.") (license license:asl2.0))) +(define-public erlang-jsx + (package + (name "erlang-jsx") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 + "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) + (build-system rebar-build-system) + (synopsis "Streaming, evented JSON parsing toolkit") + (description + "An Erlang application for consuming, producing and manipulating json.") + (home-page "https://github.com/talentdeficit/jsx") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c509282d..eeaf7cf0 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -279,23 +279,6 @@ (define-public erlang-parse-trans compile-time constant.") (license license:asl2.0))) -(define-public erlang-jsx - (package - (name "erlang-jsx") - (version "3.1.0") - (source (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 - "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) - (build-system rebar-build-system) - (synopsis "Streaming, evented JSON parsing toolkit") - (description - "An Erlang application for consuming, producing and manipulating json.") - (home-page "https://github.com/talentdeficit/jsx") - (license license:expat))) - (define-public erlang-providers (package (name "erlang-providers") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 19/32] gnu: erlang-relx: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050429324 (code B ref 66801); Sun, 29 Oct 2023 14:42:09 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:44 +0000 Received: from localhost ([127.0.0.1]:43046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z1-0007ct-Uj for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:44 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:43271) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6ys-0007aN-KW for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:35 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-32dbbf3c782so2781396f8f.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590456; x=1699195256; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wr96TVliSw3S+OwgyFn8v0/bOoj0Yyd2F980MgWRMiU=; b=y9DUOJw5QjRWWXBDnBZOiwT/CoipZS9ZSSH1Wx33MKeVYgTLtU6DaX0m4AGSWRYdiv aLpaZ1EwkyiK2rCcTjUCuErpgpURIiu9o1WSIOTc/mjAl19qOXsH3bxOojS5ucmT0Irv ZQc0+XzsfhvGbUw9ODr4tvKDlxmsEJ2a7/7fr512rFlmsKwcL9j3VEixZ5h0/20EOogg r7Ps8Lzsv8NUrxCPD28IULx7fdxQHnOusBCu5bKaVgv32jaHPpbT/yx+ro6hjPLcHdJE ll23T2Xg4mMlUEHAR0XL4JaAsB0j8RFvvcRJo3EqwoLM8vL7BWsCcaMxjK9yVLFlwwKk /OAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590456; x=1699195256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Wr96TVliSw3S+OwgyFn8v0/bOoj0Yyd2F980MgWRMiU=; b=sZwqBY0hpDPZDArslIKfAXrf+Y3huYjD8+uYXmCGYDl3nyb69GzpXfnCTdtXc58PoK 10dnDCy2Q8FJMeE418+9ojM1XZ0GqbTH7nw5mUQu4vCSXQd4iFFP/8Uu4TikyXNEQLnz o4KG5u34LpdmVApztx1slaLKYxrtxxxc+oK1/25BS+OObiLuozJ8N28g47OP3Qd+Iq0K DkT3UcwTFDsHvk4R8wgzVnowP9+T8uQIrrFBjkAqQvMz4mRxptC//desFb14mZPeXuoQ z8gbM5rB/G6NYSzDzEa2QuEUH1v5CJIhWsv81+DLqArjr/2/K38bYTw2MWj/4lUcIl4u 1Zlw== X-Gm-Message-State: AOJu0YyAQz5QiAiMOJ+XlSm2xNe2WtsHieftLYYXdqpgmrwtgdsNNDxn 9zDG1NS5fzBRm0j4XHZnK/WM4Ox6IyFkkqSEXQo= X-Google-Smtp-Source: AGHT+IFymVPjMv2qSVcl4imDbEinSkQEuIqonDemrp9jHBPyQ6P1PEeB6guU+bN0XCpxel9BkBl6Qw== X-Received: by 2002:a05:6000:18a2:b0:31f:d50e:a14f with SMTP id b2-20020a05600018a200b0031fd50ea14fmr9866608wri.10.1698590456046; Sun, 29 Oct 2023 07:40:56 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:55 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:12 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ibeaa35080cf5ef271ce79faa4f1eddc5451acb14 --- gnu/packages/erlang-xyz.scm | 22 ++++++++++++++++++++++ gnu/packages/erlang.scm | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 1d7984fb..ad56b9d2 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -379,6 +379,28 @@ (define-public erlang-jsx (home-page "https://github.com/talentdeficit/jsx") (license license:expat))) +(define-public erlang-relx + (package + (name "erlang-relx") + (version "4.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) + (build-system rebar-build-system) + (propagated-inputs + (list erlang-bbmustache)) + (home-page "https://erlware.github.io/relx/") + (synopsis "Release assembler for Erlang/OTP Releases") + (description "Relx assembles releases for an Erlang/OTP release. Given a +release specification and a list of directories in which to search for OTP +applications it will generate a release output. That output depends heavily on +what plugins available and what options are defined, but usually it is simply +a well configured release directory.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index eeaf7cf0..c4e81aa2 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -297,28 +297,6 @@ (define-public erlang-providers (description "This package provides an Erlang providers library.") (license license:asl2.0))) -(define-public erlang-relx - (package - (name "erlang-relx") - (version "4.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-bbmustache)) - (home-page "https://erlware.github.io/relx/") - (synopsis "Release assembler for Erlang/OTP Releases") - (description "Relx assembles releases for an Erlang/OTP release. Given a -release specification and a list of directories in which to search for OTP -applications it will generate a release output. That output depends heavily on -what plugins available and what options are defined, but usually it is simply -a well configured release directory.") - (license license:asl2.0))) - (define-public erlang-ssl-verify-fun (package (name "erlang-ssl-verify-fun") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 20/32] gnu: erlang-providers: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:42:09 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859050529346 (code B ref 66801); Sun, 29 Oct 2023 14:42:09 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:41:45 +0000 Received: from localhost ([127.0.0.1]:43051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z3-0007dA-2x for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:45 -0400 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:47549) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yu-0007aX-Qh for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:37 -0400 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-5082a874098so3033685e87.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590458; x=1699195258; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XtsAD426IQq7XI4yWDbH0Dc4rPm/5glEG2FuHU22Jj4=; b=HPVmXOGHu35udOJ1fvzsMd8QzqV6HOGn7/qtcKKEK8qFsJgBCcVr3XLTuC6thfh+Rd qoswGdC+W+POrnwWgjJv0ZzrcOJ+nzVKzlkgop3mJUWzYuQQi/jcu2lvHo+Ugyqy8DjI ANjHlw78kzOe4cc2503WOk9O6FP8Uz0JoxGVSll6S0sTmxk5uNQYz7RG7W0ugF+uuGIO 5boZOcTnkGGEOJ/HhqL67xV50CF2syrTYIN11yKwPctlSIr3nPhFzwkQpBMKzvL+td0N OYy3B8CUy8tIBichMs4Gqo8/IRSocQ+H2HRcqm/ZYzTBAIFXBnJHq5aLpTbkUKj9r6kl MIOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590458; x=1699195258; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XtsAD426IQq7XI4yWDbH0Dc4rPm/5glEG2FuHU22Jj4=; b=GXFyGK+LFuL9mseUC/ru/i4qq0oHwr7NIqSzddfR9CkNH9Urkl1a1ivSzCQNb1B9aH E/bHUA+QgaDasrWygHgcKnqi3vNCPEdTgtH+lFRJxU/BdaDLQO8harsHRDXDBAspXVDj agHfnzEkkaovLvVzHrOo7MzwmMLOd64o74jnKG/D/lKBdjLwrg3mLOl4Jj8kjl+A6pLb jvtS0R6WfJiZLdkZXM1mXdOGoJPDR7v4eDW1yS/oGvfbU62RhtfHewxWqYjcyrOS67zK 3Jz1G2Rib7hQ5c06kr0zGmAwHp/Oej6SarGTf6GU6jAAjQ2M2hAF+bXJqVWADd6xrh3g NaBg== X-Gm-Message-State: AOJu0Yysrsc1kS2ed0ScTe+UieayTa7uwhgUfK2RzX/WeuIe0TadXeR+ Ea+Ur85Ehni03flTdNesb4Jt7WY3h1zf9u4SISI= X-Google-Smtp-Source: AGHT+IFHn2Me+jT8WpNClX+rQJJm98/aT5eSIrbE2btQiX5d/M0tKsRPBuDpst9C61OSDGRJmUu+2Q== X-Received: by 2002:a19:914a:0:b0:507:9701:2700 with SMTP id y10-20020a19914a000000b0050797012700mr5624769lfj.20.1698590457953; Sun, 29 Oct 2023 07:40:57 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:57 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:13 +0100 Message-ID: <61870c1c303646227bd75869b03c6582b0ab2f26.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ic418ef50076311c8f6f49b563710d404d5e39154 --- gnu/packages/erlang-xyz.scm | 35 +++++++++++++++++++++++++++++++++++ gnu/packages/erlang.scm | 35 ----------------------------------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index ad56b9d2..65495d68 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -401,6 +401,41 @@ (define-public erlang-relx a well configured release directory.") (license license:asl2.0))) +(define-public erlang-ssl-verify-fun + (package + (name "erlang-ssl-verify-fun") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) + (build-system rebar-build-system) + (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") + (synopsis "SSL verification functions for Erlang") + (description "This package provides SSL verification functions for +Erlang.") + (license license:expat))) + +(define-public erlang-providers + (package + (name "erlang-providers") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) + (build-system rebar-build-system) + (propagated-inputs + (list erlang-erlware-commons erlang-getopt)) + (home-page "https://github.com/tsloughter/providers") + (synopsis "Erlang providers library") + (description "This package provides an Erlang providers library.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c4e81aa2..c5426381 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -279,41 +279,6 @@ (define-public erlang-parse-trans compile-time constant.") (license license:asl2.0))) -(define-public erlang-providers - (package - (name "erlang-providers") - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-erlware-commons erlang-getopt)) - (home-page "https://github.com/tsloughter/providers") - (synopsis "Erlang providers library") - (description "This package provides an Erlang providers library.") - (license license:asl2.0))) - -(define-public erlang-ssl-verify-fun - (package - (name "erlang-ssl-verify-fun") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) - (build-system rebar-build-system) - (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") - (synopsis "SSL verification functions for Erlang") - (description "This package provides SSL verification functions for -Erlang.") - (license license:expat))) - (define-public rebar3 (package (name "rebar3") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 21/32] gnu: erlang-jsone: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859055829654 (code B ref 66801); Sun, 29 Oct 2023 14:43:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:38 +0000 Received: from localhost ([127.0.0.1]:43095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zt-0007iC-MI for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:38 -0400 Received: from mail-lf1-x130.google.com ([2a00:1450:4864:20::130]:45463) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yw-0007af-Ls for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:39 -0400 Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-509109104e2so1319386e87.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590460; x=1699195260; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FZR9nUSCY1MIjvUqGNXBws1luVJFZyleYB8hpeWB5YE=; b=Ce5kW90nv3pZMitAoExaYP8sjCpb9Nprsurqlhe5ZQCho7lDsBMVjw2JAPWW6YlrUS S/O+s9F95qLESpcTbDZpNk7IfkwCrVEbdt3xwHMr4jpxaVZsGEkKIhujxxAO8+0IkJYB k16XPb9L25PDqJf7a4aO+sYqRzaN6KznrW4rHlfNPB/tYCn6/JalGSqAnGRyF1huvoct kDi+xIO03OWi6gwbcwuwNbNi0Zm88k4DVW3QZM83eknLfv5Y3FdfvVAh1gw4Cih1enTL wafeueOkCz7SwSIlHSeUmQUH8mt+CPLg+wDg5lA08eEouLlpfIRqRTKjzlJcKOJ2GEOw amBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590460; x=1699195260; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FZR9nUSCY1MIjvUqGNXBws1luVJFZyleYB8hpeWB5YE=; b=QXp+fekz6HQH1PmD4QH4TYM30iHd0gNZb2IZ5F7oDnugUHcraxmyMu06Agcasohb0Y NvyMaNxESue/rxZxCwzCUFFNsroC6UnUky21vizfMD4v5LfZNQhhXM5bqkQgfqcYvpiC 54fktnZaE6nBALjcZqu8bdiuv+E8ek0+o6KexdEXGIkAXGVxJh9CJ+oIVgTIj83ExsCq 7Sb+mmTNh5DSqru0eGbRn8sjm95UijpPCpFgOuRb+F4OhFVjvAF/e+1b63wmA+uqvHOU Gi1DODkNEYecvwV80lrQg6iXuw/BZChzcftFltTej2v1A/zTf4Ji51DVLn+r5STL38xW iU9Q== X-Gm-Message-State: AOJu0YxUkn9IX+0muOOl1m7nGOH784GMPiDFSI8FrUN9JUYMUFuz4R9/ LOtSNGT7mAZi3GV7NjN7sE9Ke4qfCvF6SyxzaS0= X-Google-Smtp-Source: AGHT+IHj9mHqF6hYYrMkz3T2G6boKk9Ied2bCvbmaojyEM69wakYN27xMsdab5Fl25yvNV0vMzoyrA== X-Received: by 2002:ac2:53bc:0:b0:506:9c0a:17d9 with SMTP id j28-20020ac253bc000000b005069c0a17d9mr4918455lfh.40.1698590459955; Sun, 29 Oct 2023 07:40:59 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:40:59 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:14 +0100 Message-ID: <42027d7f56afbfa7189bbef25b3c1bcb258799e0.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I1828e8c85296212540fe5562c1663c18f7585d11 --- gnu/packages/erlang-xyz.scm | 24 ++++++++++++++++++++++++ gnu/packages/erlang.scm | 24 ------------------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 65495d68..ed66aaee 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -436,6 +436,30 @@ (define-public erlang-providers (description "This package provides an Erlang providers library.") (license license:asl2.0))) +(define-public erlang-jsone + (package + (name "erlang-jsone") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) + (build-system rebar-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{project_plugins, \\[covertool\\]\\}\\." _) ""))))))) + (home-page "https://github.com/sile/jsone/") + (synopsis "Erlang JSON Library") + (description "An Erlang library for encoding and decoding JSON data.") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c5426381..b9815901 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,30 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-jsone - (package - (name "erlang-jsone") - (version "1.7.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{project_plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://github.com/sile/jsone/") - (synopsis "Erlang JSON Library") - (description "An Erlang library for encoding and decoding JSON data.") - (license license:expat))) - (define-public erlang-parse-trans (package (name "erlang-parse-trans") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 22/32] gnu: erlang-parse-trans: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859055829661 (code B ref 66801); Sun, 29 Oct 2023 14:43:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:38 +0000 Received: from localhost ([127.0.0.1]:43097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zu-0007iF-62 for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:38 -0400 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]:59739) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6yy-0007ai-H2 for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:41 -0400 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-507adc3381cso5205273e87.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590462; x=1699195262; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Uf1ceH3BknKjgzPfwEUKFj3nbp263Dh2qHEGDJKnpYc=; b=uvTtsNTt5CQqEDQGdH4CuQ3YIehnFVPxu8fOpHGWsSDAeYmPk9vJ/9RjqXAcpDbROF z17nuzLMJqJTUiHy9qQX7G99ItJYDQw86VPINAR5bZPGlVkFHeAFKn4jShDXgFEZpfZy OpI+SgStrNsSaDRkeWtcUwo+qJH854VqC9LoWh46iKhwZiBLCxDw04IarYwoow7wnY3f aBHXsRXY3UyYYFPFKRgJohvn1l0w8DD4qcAaGYlA6E95OIGeId7VAJufxZdW3PYFMFRp TrC6MHAF9pjIV34+lwMen8wlH1L+bkP7j+mc0Axs1d04ufo8ZB6HmFJ+cFoNqtOG5yXd kDWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590462; x=1699195262; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Uf1ceH3BknKjgzPfwEUKFj3nbp263Dh2qHEGDJKnpYc=; b=s82kWx6YhjZ/dTJVvXVNHf5QM4g4F2NddPLtznrE03Vflq81Xst4z9tb9V/f5sSDfd QzQOc4u3EStYQYRlwvyINRtOjvH10fKSsOsmjp0VPajZl5xpUmjk1nTisriR/fj8Ouf/ b3AocEK1mToJhxG5+6ZmsU5u77MtrL74CykR0gbtnNUFW/wUOCbDZew43GtqluUolv/1 z2qNNJ7rcpvX1k6lkGPjKQKQqUcqBNdd9BE/zW7iVgP01HhEAIVVrXenDgPyUYl5ZbB8 bBkPI3vjzn393L8xh6zrogxPZEiYdXapMaItQ8GKsXGU1yemMjWbTvC18rUqrJTWi4wj LoqA== X-Gm-Message-State: AOJu0YyC1cI1qnH0qMzSlsfV1NFHvnr4/AEJ4dOw9JTHzH13EVd9JLfM ehWazbM1lbbV1lep98LBxJeJZ1Tz1wgWPeXYkN8= X-Google-Smtp-Source: AGHT+IFq6/Qavq3s6DpZpwKjSdkOQtEB53KNwk9mUKkQByHHzcxb3UysLZer81NBuwx4GiwYP3e8Sw== X-Received: by 2002:a19:505a:0:b0:509:b3f:8a7b with SMTP id z26-20020a19505a000000b005090b3f8a7bmr2933296lfj.22.1698590461823; Sun, 29 Oct 2023 07:41:01 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:01 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:15 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I11422aca794584d34ee84ddcf77217245a7ce2b0 --- gnu/packages/erlang-xyz.scm | 23 +++++++++++++++++++++++ gnu/packages/erlang.scm | 23 ----------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index ed66aaee..6947c9c2 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -460,6 +460,29 @@ (define-public erlang-jsone (description "An Erlang library for encoding and decoding JSON data.") (license license:expat))) +(define-public erlang-parse-trans + (package + (name "erlang-parse-trans") + (version "3.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) + (build-system rebar-build-system) + (inputs + (list erlang-getopt)) + (home-page "https://github.com/uwiger/parse_trans") + (synopsis "Parse transform utilities for Erlang") + (description "This package captures some useful patterns in parse +transformation and code generation for Erlang. + +For example generating standardized accessor functions for records or +evaluating an expression at compile-time and substitute the result as a +compile-time constant.") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index b9815901..d3844933 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -232,29 +232,6 @@ (define-public emacs-erlang files.") (license license:asl2.0))) -(define-public erlang-parse-trans - (package - (name "erlang-parse-trans") - (version "3.4.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri name version)) - (sha256 - (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt)) - (home-page "https://github.com/uwiger/parse_trans") - (synopsis "Parse transform utilities for Erlang") - (description "This package captures some useful patterns in parse -transformation and code generation for Erlang. - -For example generating standardized accessor functions for records or -evaluating an expression at compile-time and substitute the result as a -compile-time constant.") - (license license:asl2.0))) - (define-public rebar3 (package (name "rebar3") -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 23/32] gnu: erlang-unicode-util-compat: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859055929668 (code B ref 66801); Sun, 29 Oct 2023 14:43:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:39 +0000 Received: from localhost ([127.0.0.1]:43099 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zu-0007iM-HD for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:38 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:49327) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z0-0007av-D2 for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:42 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4084b0223ccso28625035e9.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590464; x=1699195264; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=T8wkZIdVasTC8Va/xcT8NkTvnTmtyPUY3f/YwJ3oYRg=; b=gnozzjmEN87QGdDx6DJYSMJ4ebcN9duPCbmZpdrjWb9bBzYM6Frt3fw6W4G07K/gqL sfQxZpgfHFt1V0zs6Rz4yNB/Fy6UWjPusdbgXTh25gEcei5OGuhDgguA6Nj7rF7HlfT8 y7sIL20qGC529E5jp3KlVt7oTS/PY0rjnn4tbNWmAeLRW5I7B8QFHpv8wDBfHsCJrDA/ hDx/8dRMwEjWovo7HSAPHZq49fXo5xAF74cej/U6kh2XrTrHRvydenOOXrhIJEvyGcEe xBJgsxUBM278eu7TxCwmTHEkQK3se9WMqzyD7c/CuZE8SYjp4slSU7euMyK8bv9LCWcR XKSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590464; x=1699195264; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T8wkZIdVasTC8Va/xcT8NkTvnTmtyPUY3f/YwJ3oYRg=; b=Vfpz3mzRI8/XDNoj27iZ0gtnAHAlgZEqjpxzu7Q4Hjao+lWo+wAEkQpBL59wF53Ccj Fb69mmF4AtC16m0NkihZHfeS1Mt3SeTLpRSlbMlKXpxHX0aRU3VAuKqJX6P43FbfOW7p jH6bIWTSfLeixMojHFufx7gAU4HyzEJu7MFRzC0aTzDrxW/lKC72TCW+M4b+tWooYqBN r2TBSy9eYnjQt182QgviJrQ911ZVAfivh7owrxevwQ7n/AKzCueylEhmqjbAn9BZlKvi w8VVZDTBFSy66vKoVBhO2fJhLDmXALMegtWzv28EoIms5wu4ntbKt+SXEG6XlGawBOBt hVJg== X-Gm-Message-State: AOJu0YwzCLEGSNGKnNE7sRKbXlJ9qB2TrH0nLareG5CYQLnjfAYp4VO+ sdO+xEr3mXvMeT6Az8Pn4fRDNPeNc6RDacpJ/MA= X-Google-Smtp-Source: AGHT+IFnmyBivArMMlRmLyZf9Qbe4Zd0IYrOAy1O8hRxTuH2WKdOjG86MvZKfnBpCy6JeyW0bEAddA== X-Received: by 2002:a05:600c:548d:b0:409:136:469f with SMTP id iv13-20020a05600c548d00b004090136469fmr6761899wmb.38.1698590463784; Sun, 29 Oct 2023 07:41:03 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:03 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:16 +0100 Message-ID: <3acfaf7db7ea3cb036afdeba7a73119534b6546e.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I8a946fc973f97608109a5e03809c343a1e18e97d --- gnu/packages/erlang-xyz.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 6947c9c2..f0c8521c 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -483,6 +483,22 @@ (define-public erlang-parse-trans compile-time constant.") (license license:asl2.0))) +(define-public erlang-unicode-util-compat + (package + (name "erlang-unicode-util-compat") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "08952lw8cjdw8w171lv8wqbrxc4rcmb3jhkrdb7n06gngpbfdvi5")))) + (build-system rebar-build-system) + (synopsis "Unicode compatibility library for Erlang < 20") + (description "Unicode compatibility library for Erlang < 20.") + (home-page "https://hex.pm/packages/unicode_util_compat") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 24/32] gnu: erlang-idna: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859055929676 (code B ref 66801); Sun, 29 Oct 2023 14:43:03 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:39 +0000 Received: from localhost ([127.0.0.1]:43101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zu-0007iT-TX for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:39 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:53513) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z2-0007bK-5C for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:44 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-32ddfb38c02so2613770f8f.3 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590465; x=1699195265; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eAH4380Rxy1psbKwVsaMkojGd1t9JWeAug7M6yVCw/w=; b=xYZQDH9yyODeVGIqymFHbe8Y/Hlekk8hIE7GzhcLGrRYKRM5ckKoTzpcasDWerXLRP SJkT23JYPW+qSeelyVjGUud2pE7MSdDrNSwJm/OWYJYPmIKTb6boGWdUOt1N3Htk2f8Z QZPdE9ytql6vCyFhZfRKe+bbPStwooqRoHrstt8dB/hJ6ggbgedaOj59TxAvSEswiVVl ml/p4HxeGsSLwmWJkFlR8mD1eDT6xls2+hA8iV7c0F7jBbc+vm36h03MHsBCzfX1hzJR WIRyZQAA6c6h7+6+yYl9Y8Lnuiuvs/1GoTwHkonPk30i6akucsIPxkaQ64gptvwY6ZHe sQzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590465; x=1699195265; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eAH4380Rxy1psbKwVsaMkojGd1t9JWeAug7M6yVCw/w=; b=l1map78tSDWkYySpljult4XOPt5ta+LsL/yCd+JT2plRvJsuZoWX1K06yacKHDsfQO LxSUVZYG8t9fwv8exhHEwTU9ATenMuLgO2qHH5sAlPF5fPINu89fI+L0tWDygHraYzWv T7ndobSo/qwf9+YhPppd1eFS+AzEvLLXQLDMpgbgYOkroxtE9qp1m4GeYeWS+jcuE3Nj DEy+Rmp3KNEpq6uw5tNcRjensVunqb/D7VITZPySeblPyNFvOtQR7EB3D6zqI2ocny1r RMRSpdpZE91VJllSNdIB5Go8bivnMdQXjKMEqQfvT3IJRTe7m7Yh4+4kKO0N6EzMyH1E ePHA== X-Gm-Message-State: AOJu0Ywp0wg4rPFuo2u3Wv9KChGu8oJJx+5pHXgHgc+8PrG+/M0TH8Bv jSc4CVnbYxWuWk22bop2YwR1D7vIVM+y57FVOC8= X-Google-Smtp-Source: AGHT+IF4A2zaLVMBpgWJaW067AEEI5fWDYOoIz6dGGA0Thj4U6gr2tZz3eJY/J0FRW6ZP0R/Wn1ltg== X-Received: by 2002:a5d:5348:0:b0:32d:a495:a9b7 with SMTP id t8-20020a5d5348000000b0032da495a9b7mr5232133wrv.61.1698590465595; Sun, 29 Oct 2023 07:41:05 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:05 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:17 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ifb67d5364658ee59bb8286c3f454ce4f95d0db2b --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index f0c8521c..67be758c 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -499,6 +499,27 @@ (define-public erlang-unicode-util-compat (home-page "https://hex.pm/packages/unicode_util_compat") (license license:asl2.0))) +(define-public erlang-idna + (package + (name "erlang-idna") + (version "6.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1sjcjibl34sprpf1dgdmzfww24xlyy34lpj7mhcys4j4i6vnwdwj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-unicode-util-compat)) + (synopsis + "Erlang Internationalized Domain Names in Applications (IDNA) protocol") + (description + "Library to register and look up IDNs in a way + that does not require changes to the DNS itself. IDNA is only meant for +processing domain names, not free text. See: RFC 5891.") + (home-page "https://hexdocs.pm/idna/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 25/32] gnu: erlang-bear: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859055929684 (code B ref 66801); Sun, 29 Oct 2023 14:43:03 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:39 +0000 Received: from localhost ([127.0.0.1]:43103 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zv-0007ib-9h for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:39 -0400 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:47348) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z4-0007bu-7M for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:46 -0400 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-5079f6efd64so5047363e87.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590467; x=1699195267; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+3yMK1bAka9WIqqZTVV7MrUoL+9PkFCwg7DLh92MIuI=; b=wC4pd2iaaImzPp5jhQE7dtiMLw6c4jw/mnX/16ZJ5UKxDHHMUE7sLmM81Aoz7yf2cK q3+6waVfMvHK0HTLH6RiRYjfNBujt2j7hUxn5TzW6OhChBVzkit7ds1lLMJMCHCbwWqK 0875EvQGGQpIFteoYp3krLncaFOCWnJP0sZCO/Zheciy9Tmh24PA8xwIEo60y+tvCIge aIYs2zLg8TQnTeWl7MeVMJPh3TEs4kx6nH7Id7cgFX/rIki7+ePoIn2luZhyViXPCNMj xlCbg1worWdx3xBH8DMSwiNeEhBk8DjTsuO9Hoiw2z7PBKMWpJ0wwvM/YrG+qCTtKk+q N/hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590467; x=1699195267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+3yMK1bAka9WIqqZTVV7MrUoL+9PkFCwg7DLh92MIuI=; b=vZjh7XDj47SxvnB+035EOc2KWdu8towIFOQaE+zx9sYnrpo8tBXAys7lHmEYPhQb9z XURtOAhdOG7D1Pa0IezKzMSYZu7Li4A+6DCFKv4a1w7h9IQsdpzvbv3OlGH3JnsC4YVY pASgzuN3krWqBb7NgZwElsbmVxP4O6FBO7+ZGYVBdHighhZCHv2VejVm1p5fpeFr4RcU J+L70ik1fIQZhkOvKQRLHOaIljaFlcEWjiJu1INKHeo/XLv/ET8fqL6b+yDXeeMJ77CO Rae2xkKLMbI3elOG4bvoKIf6A7nnRLRUbz/KCKQtiyoCMRxVWF3pQTj0W6Bjy2DNh09e WN9w== X-Gm-Message-State: AOJu0YwwZsyicW3RyJOukupieLSxwpS297ic51Y/xgF3tK4HDhcsQM3Y D+5AkJvgi6uDbHMFrLRDluCItqKoqgfK2xBjEqE= X-Google-Smtp-Source: AGHT+IGLji5RsHPbSg5c9/HXV8JHSA77QSXHu7xJWjQy1dQEkO3OkXzTrvGBYfFt+4l3PeF095lPdg== X-Received: by 2002:a05:6512:3995:b0:509:fbf:f235 with SMTP id j21-20020a056512399500b005090fbff235mr3026674lfu.6.1698590467439; Sun, 29 Oct 2023 07:41:07 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:07 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:18 +0100 Message-ID: <4d865f10776015de056b2bfd943b7f28cb4d17d1.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ia04e1bf291f8ca680c0d8c5c54b3c820f263e1cc --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 67be758c..ff6254ac 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -520,6 +520,23 @@ (define-public erlang-idna (home-page "https://hexdocs.pm/idna/") (license license:expat))) +(define-public erlang-bear + (package + (name "erlang-bear") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nsri73b50n5v1a8252mm8car84j2b53bq7alq6zz16z3a86fyqm")))) + (build-system rebar-build-system) + (synopsis "Statistics functions for Erlang") + (description + "This package provides a set of statistics functions for erlang.") + (home-page "https://hex.pm/packages/bear") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 26/32] gnu: erlang-erlang-color: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056029692 (code B ref 66801); Sun, 29 Oct 2023 14:43:03 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:40 +0000 Received: from localhost ([127.0.0.1]:43105 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zv-0007ii-Lo for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:39 -0400 Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]:44269) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z6-0007cT-2F for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:48 -0400 Received: by mail-lj1-x235.google.com with SMTP id 38308e7fff4ca-2c5210a1515so53517241fa.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590469; x=1699195269; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hKWnRPgZpi0ktLwi7CORSZrww92V7lB6kYNbAE9D4VY=; b=XtfgBt8O77X1Olh6Mb70rTLbLhdlybOpT7OD6dxa9QT5hdB78a33i84J2WtVHn0Xvj 3vifDMKGjhM7Xr8gheSc2AgtYwQ3UYSTi+0wIoSD+rcs5RFbWFXAg73LcVibjQTfroNR gz4FYv0tNRRVmS2T88/35P/a5ol476NBddlErd/dPowi9voeyzmcbglJ1nJntw8xhp/z zGVDLJC2u2cQMIdIJSJm6HWbSBT+H5dRlsE4QglWEW40+gtLRe0KpEs3ko9liDVoFto6 m6OQoqfVuPOP7UBoqFyzauCvFAAMx27ejMZUa/wp96UJMtP8YTQASZ+8Nh/jojbQ6BQ3 W27g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590469; x=1699195269; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hKWnRPgZpi0ktLwi7CORSZrww92V7lB6kYNbAE9D4VY=; b=e2FB/S7LsMGvhMglIkfyunKi8bylqNF/FkqhFjTeZ2WGVq7W181eTs87myM/Mza2yV caqhxrZqtnYXp50wFWYqViICez297Pexr0LwEkOYz1RhPNyHd6ZOMM7Yb/+jX7VlpO7f 6ycuX61ZLpnUDCg5ONQ4zORqMBeAc1eKLLtgnvFwsBJUIjjVIal3KW45as3lGUMsrPXR gfHB2rmR5Rf5GNo+wA9DAaDCG/7Zs4vu5GLvLYEeILbcu8HQFpEPqrqfNEKoL9eDzwmo Yctccw5d/e9CtSu6CALHgJE8SysFjSiq0C+pHxAATqrTSbjhsX/n5PxAlpq0TlzbW/9O 4CUA== X-Gm-Message-State: AOJu0Yz04UNOoHq2556Ln7vN5MKPKYsJDAjLC1eJdaUwn/r2szE68Q5n nOtfYycvFLPmYKklcmRMvmWEAmzkwp/x2p8a4oA= X-Google-Smtp-Source: AGHT+IEyJP++k0rgJAaxwTBTAYAOHR8sJaG0T/RZs+fdRlAsChgnvXwrkhK6p8f1oex/rbsfrRPC1w== X-Received: by 2002:a2e:7308:0:b0:2c5:3261:615e with SMTP id o8-20020a2e7308000000b002c53261615emr6285400ljc.35.1698590469320; Sun, 29 Oct 2023 07:41:09 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:08 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:19 +0100 Message-ID: <073f957f385cb1d7173599bdbc2579cbb9dde902.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I914c87d513dbbbe222f852144a706759023044bf --- gnu/packages/erlang-xyz.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index ff6254ac..52a30530 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -537,6 +537,22 @@ (define-public erlang-bear (home-page "https://hex.pm/packages/bear") (license license:asl2.0))) +(define-public erlang-erlang-color + (package + (name "erlang-erlang-color") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0f707vxihn3f9m3zxal38ajcihnfcwms77jcax0gbzn8i7jya5vb")))) + (build-system rebar-build-system) + (synopsis "ANSI colors for your Erlang") + (description "ANSI colors for your Erlang.") + (home-page "https://hex.pm/packages/erlang_color") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 27/32] gnu: erlang-tdiff: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056029700 (code B ref 66801); Sun, 29 Oct 2023 14:43:04 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:40 +0000 Received: from localhost ([127.0.0.1]:43107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zw-0007ir-0n for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:40 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:48271) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z7-0007d1-Mt for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:50 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-32dd70c5401so2314266f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590471; x=1699195271; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/sSvZZc+M1iso3B/PjHit2gGbc4Q3zahTKCvNKI4Wko=; b=XpnQHeisNy4UxFt7qoKE1V1AWi0gxqTPhuG5a/FvVxH/j4AGB1/U7KGtQEmA66Q+fH VhNDjGYmq3Vf8zvuFqhfb5SxWuWGrvow7m/yP1iY8yNBP+PCGUt53N6ZTOLZW4VAwBwj rMjZvgYx31cByWdSvd51IpL3bokQWdZ/vAyaleiSyaAyM0pWh6vkUfp+Lu9gGvPfC9q6 ZKQaqsVmnsqxZ9q+Wsy0aTSPxo2pNzvQNIZLzLF3k60SGeFLanIxgoaGgbmnLlMSGRAc 4fImnFn69RTmPkj3HqdFRX+8vDTJ11ZhypPgEMy4WdP1iNQPJhruMkOLqsilM5qCuxhf Nddw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590471; x=1699195271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/sSvZZc+M1iso3B/PjHit2gGbc4Q3zahTKCvNKI4Wko=; b=nJ5od1W1c+ZzoHkD1/sJT2FqTbl49mPT18fbGHQzBKb+SeZnBNly5JpChy+QpRnhMp xQDYHMJTNRyaiFVOPocPv0N7GHVosiCzwQdmmSwBBvRZpl/djt0eXfWcyR4xqJSEtu4m M8Qc+dwou1uXr6NiBdWdJ7r8GetCad0LEEAM9/e7aVhF9T3AXOB0oAzv91RuFWiK83mB wd7iH/btDbtHomFjRZfSsv7TZIfku/mzICLnPZCm+Rg89q5gkMQA1/93nfl6rAfLb99L SlWIVaFxZf8TuHhiA+e0QgcZZe28dn9qFlhRj4ta4HH3FQir0+9VbE/ukA8cCE5Ua7dv /GCA== X-Gm-Message-State: AOJu0YxrtUNiW/LV1OyRx482ru/Hwsd95TIr7C1tuuhtDpnq36Ulit8Z /oBJpccN2bLimLBllCByr+w6lUAgT1mcEQGvIwE= X-Google-Smtp-Source: AGHT+IFyMng5L7INDquc7JCvkrpdI/PJj705ITlFXmTgVnsJgqCqQfLSsPHuBmyqEoAuVehNpWm0gg== X-Received: by 2002:adf:f04d:0:b0:32d:9d66:5742 with SMTP id t13-20020adff04d000000b0032d9d665742mr5361689wro.10.1698590471131; Sun, 29 Oct 2023 07:41:11 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:10 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:20 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ia1214c866f62330a847444254ff47af01a59e760 --- gnu/packages/erlang-xyz.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 52a30530..c16ad5aa 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -553,6 +553,23 @@ (define-public erlang-erlang-color (home-page "https://hex.pm/packages/erlang_color") (license license:expat))) +(define-public erlang-tdiff + (package + (name "erlang-tdiff") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0xbq7p9ii2kp49ms1kylj92ih2jiwvqwimb8jy4aalljz5lf3hp0")))) + (build-system rebar-build-system) + (synopsis "Library to compute the difference between two strings") + (description + "Erlang implementation of the O(ND) differnence algorithm by EUGENE W. MYERS.") + (home-page "https://hex.pm/packages/tdiff") + (license license:lgpl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 28/32] gnu: erlang-rebar3-ex-doc: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056129707 (code B ref 66801); Sun, 29 Oct 2023 14:43:04 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:41 +0000 Received: from localhost ([127.0.0.1]:43109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zw-0007j0-Gz for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:40 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:58506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6z9-0007dO-Bz for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:51 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-307d58b3efbso2295761f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590473; x=1699195273; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MBxV4HGuvK7t15IGfW7t8O+CS1opf+f6pvVWk6sVKfI=; b=W+1O2In/7eGQtb1DYJi0zThh2/aBzwcLTmHiMepvRxRbLuxwlcCYzDqmX5xk8d6Bo7 hPEOBAHoX2RPKXpPTBkuXMHd5f1XRptRNrgFDvT2DubpUgvQYoSpx2mn2bTJVCpZuxMh WF4dczCNoQr2YsoJRWvLzr7zgChM4Xv3760zUb9AdkPNI4vSDlSt7poFvENJr1u0EOZa P2PQCPCjZhfcOLNMlCuTKfHTSapfKiE/1omZwevRvhsuTfdb/G7Gez+3GwEnyS2zHahj ZNcrB9e746xc5R4J6RcQYkHUhDIm6yWAiifEMlzmaX/fG2IDibDaYf1yf3YaaYqG3cp2 d+nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590473; x=1699195273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MBxV4HGuvK7t15IGfW7t8O+CS1opf+f6pvVWk6sVKfI=; b=cAnmaq7Xf74RY2NBpZB2H+gCp/lO05MEZ7a4vgJ+Ymzq9goxAy9NwbDBK5kzrs2bVV pD3vPEAW7UGQy1kFsGha6ARMtCE0Ioy26eUVEZOoRAujYpDr9nFqghguZolf9YSpYHZK g7fPRGcLEykdcCRsipcooxlz8Bgjwu2klE0TYUO6fCg+kN1RAeWg7ULZQd4JkUxkbt/6 v69sDtsBfJtzewvFaH7BonoeopNbVhisQY8lWK4sdEwN2w7ZIYT9uS6z/bWzozE40xmV umjgu44Bc/j1UakHaTqe5cdbq2vj416CBc7JM3kMgaFfEPK9dWwfyIBMAVtYM93WHxEs 9lnQ== X-Gm-Message-State: AOJu0YyatxZtMkBT5iVOJgsu3OOFuNyBya2vFlzlsnc0/EjKf9Qk/Z5Z FRiFc1FMkHwrhhe0Vjg6E5oTMlRETg4PBWUi3U0= X-Google-Smtp-Source: AGHT+IEzsIoOcpvEafTwdrkh73jXY78YSMQkDp3wEt6he6og66I8ccrkF+mwmj3POtL/zaxdWylWFw== X-Received: by 2002:a5d:444c:0:b0:32d:96e0:8048 with SMTP id x12-20020a5d444c000000b0032d96e08048mr5801794wrr.9.1698590472868; Sun, 29 Oct 2023 07:41:12 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:12 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:21 +0100 Message-ID: <7366852616997c18841d742916fbb4ea6f11a0aa.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I51d485dba18c317bf9b51cfad02809c4e991dedc --- gnu/packages/erlang-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index c16ad5aa..11b765b7 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -570,6 +570,25 @@ (define-public erlang-tdiff (home-page "https://hex.pm/packages/tdiff") (license license:lgpl2.0))) +(define-public erlang-rebar3-ex-doc + (package + (name "erlang-rebar3-ex-doc") + (version "0.2.21") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0c720shjf03y4slj56q5nxgyhqif0926cs3pvl3zbv1i64qh8wdm")))) + (build-system rebar-build-system) + (synopsis "rebar3 plugin for generating docs with ex_doc") + (description + "rebar3_ex_doc is a rebar3 plugin for creating documentation with ex_doc. It +includes ex_doc as an escript, eliminating the need for Elixir installation or +compiling ex_doc dependencies.") + (home-page "https://hexdocs.pm/rebar3_ex_doc/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 29/32] gnu: erlang-samovar: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056129714 (code B ref 66801); Sun, 29 Oct 2023 14:43:05 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:41 +0000 Received: from localhost ([127.0.0.1]:43111 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zw-0007j6-Sj for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:41 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:56422) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zG-0007dr-Pj for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:41:59 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-40836ea8cbaso28052605e9.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590480; x=1699195280; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=itIts/PXyEzIwy/p4GXB0M5Sr1kN9He2CyTe5mqdCdU=; b=3bbkGwVE0Xqv+IKaWQJt6X1AF3L/D7c9PmAg6kO2G9UDlH3l9fwCt+nJmC+0OqGnQ1 NfIn5sdduHVwq8Un6MpS2p42Y0VVnBPF3LFsPKygZftYwlgNei6QCrj6wQqWmlDQI/2i H39ayeruSb7Z+hZGEfRj5+66vZVsbO2CsehNi0UoWgm2pFC7Qdn9V22awOWNuGBBxcQS kTX/QC5oxBtsPO5yLKiYxde6NyBHNB+Lu5hx1hrUA7nfARzelzP4cSkcE32HObJD24sr AVSiS7/gIKFJ83c28Eu3kKduChVoxSS1bXCXCVScDDFK3OqT1dDZ5/yo6GuvXZWyAgDF Vnhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590480; x=1699195280; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=itIts/PXyEzIwy/p4GXB0M5Sr1kN9He2CyTe5mqdCdU=; b=BgNPJeLY30VaxVZ48j4FCTeMfk+IcsS914nTGBFIV+q5t6J4W7PaJroP8DPl6NLov8 AAQiCv8dLPrZjK30zy63Aa49tLK1FtARTAqZBUyX5UY1YeHd/RREZ4rpIzZ+7PQYZqsY RqEozf0ENLoB7LRGh7yIEG549Yahces6hQvbmQz/Y9gtfmhWHVz+VbkCpqgwOnn/DmLG tAoyRBrS+a8hUpgG6Gj6WDbKNcl5v19JF+/k9ffL8kJ967KFuIH4rnpj3mlYurGc/pPs X/4fF+pWVWt4V3MtlOrEDb6Hjjb0Vz8KgkDATBd369TZPWLLfHCE2W29/52TrxQ24Jsd 9qgQ== X-Gm-Message-State: AOJu0YwJwsY/o/nhaT5C2iIcj+CFCes3zVO4anOjhVAfkGcqJ1FxVr6x oFNa8iUfBiyQAZr+jdCsUasma9KWMA04mUdLGCQ= X-Google-Smtp-Source: AGHT+IFxIuUemJX9Otv0T0/GmbmA2nK/Lv2w7BdOyGxKPeg9SinAvbJraTMeoyQ9TlH/oOFwIZBahA== X-Received: by 2002:a05:600c:468e:b0:406:7d74:a29b with SMTP id p14-20020a05600c468e00b004067d74a29bmr6157033wmo.13.1698590480354; Sun, 29 Oct 2023 07:41:20 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:19 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:22 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ia1d6efa1eff8faa6e5e4ea181bde37fe630280b7 --- gnu/packages/erlang-xyz.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 11b765b7..bd4f78fe 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -589,6 +589,22 @@ (define-public erlang-rebar3-ex-doc (home-page "https://hexdocs.pm/rebar3_ex_doc/") (license license:asl2.0))) +(define-public erlang-samovar + (package + (name "erlang-samovar") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nfw5vbzcvqzpsahwxz7zjlshg31pa9f306g3hzm1kfx5rsyvry4")))) + (build-system rebar-build-system) + (synopsis "SEMVER library for Erlang") + (description "SEMVER library for Erlang") + (home-page "https://hexdocs.pm/samovar/") + (license license:isc))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 30/32] gnu: erlang-geas: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056129722 (code B ref 66801); Sun, 29 Oct 2023 14:43:05 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:41 +0000 Received: from localhost ([127.0.0.1]:43113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zx-0007jD-AQ for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:41 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:50437) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zI-0007dt-Jy for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:01 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-4079ed65582so26850415e9.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590482; x=1699195282; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oVwlxRmaf6apTycUHs0m06DS5JZxlChs4MDuL0iIy9Y=; b=A/wFouw6ytNsVyhSnqxBRCsMU4OB71AfBndZfkldxT9eckJZR5dAyX4GQ78dslXSAJ jAg9qYvKiphmVEcWF9eLt4VYmDcL++NSsCywPqOiwhd8fYoavgTArQTCdZCRhddXijqf USGwtnwd4LMxo6DJgMOmNQ4DxU6lqTvhCv+MV8MmNK9nhk4x9lwoBFcSqcRIpfzLYHW/ YlDtVPwj2K70rLYBm0y6pVDx3XbhKxnIOc6n7v3n6on7uUIArwF0e6aAz1+rSKcmBV4l Pzji6BIWtU7etKcBfOAvVJwkyPEmaUH9nSVUlDL6h4w3l8AluK/rvtVqkg2DvnoVrLaI bljA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590482; x=1699195282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oVwlxRmaf6apTycUHs0m06DS5JZxlChs4MDuL0iIy9Y=; b=onegzw28ExYwkfui17rITVZblIY3vr2ZbxJQwTgQoSxxQrHJ0++hN4JEWw2eZ246Vl EDKRFPRyXXSOu80KXT8ANsrr8Sl6JHUEs6EJ00RRUOaAcZPKpttvQ53xKRJ5Jh+oBvvv PSq/1v5P6Yra7Dk3geIXdqIzJSk8mBsu4zCinAIbrazGezzc0FrNT0tf+VOLS4er+C8z M8AcM0s1i8oailMwTBjgnUSw1ibl+oJTzwOUd2HMN6ZpDfkXC5INvfG9Ag83F8BsN6Fd BAGKvjMdJKERr3FKdZSpfYcohEPtp/xxrLbC7AD2T1PN7qnYF9nVKVZ+0gJtBrqJKSqs PkZA== X-Gm-Message-State: AOJu0Yzf4zRLDK0bJ4ysinXu0X6mvAHiq273xPJlv1Q/qSq6chsw3/eC BZAZRA/dqBMy5DGWRp+Tv2VEWkaDIeX3s5ULECQ= X-Google-Smtp-Source: AGHT+IEcPQu8pCyXkx3EEWxg9YyXwRFiXWe52orXHfhH8JVVHiHabPakFmF36bJrdzwEMuEQxZpFtA== X-Received: by 2002:a5d:468d:0:b0:323:37af:c7c7 with SMTP id u13-20020a5d468d000000b0032337afc7c7mr6000968wrq.69.1698590482186; Sun, 29 Oct 2023 07:41:22 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:21 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:23 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: If9d92d8da4b50d0832fb51a8e331b5a30394e81f --- gnu/packages/erlang-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index bd4f78fe..6642aeea 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -605,6 +605,28 @@ (define-public erlang-samovar (home-page "https://hexdocs.pm/samovar/") (license license:isc))) +(define-public erlang-geas + (package + (name "erlang-geas") + (version "2.7.14") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1maxv5zg2ckrikr8xpxgg9kpfaxvahqilbkl9dl9ibchlgrbj6i4")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-samovar)) + (synopsis + "Tool to detect the runnable official Erlang release window for your project") + (description + "Geas will tell you also what are the offending functions in the beam/source +files that reduce the available window, if some beam files are compiled native +and the installed patches and recommend patches that should be installed +depending your code.") + (home-page "https://hexdocs.pm/geas/") + (license license:isc))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 31/32] gnu: erlang-covertool: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056229729 (code B ref 66801); Sun, 29 Oct 2023 14:43:06 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:42 +0000 Received: from localhost ([127.0.0.1]:43115 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zx-0007jL-Oe for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:42 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]:52419) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zK-0007dw-RM for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:03 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-32f7abbb8b4so955740f8f.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590484; x=1699195284; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=m13obtynWZ1HKmm3tS72jneLlUTN4A7yJszt/cbbOTk=; b=C1c3Iy6IKHe+k0T1Q0xyMMB4dOA/e+aHW5qBonA630FXLN15SvWSO/Vk8F4F0gsg2W LB7Z09k2/7D5mGf7fHDAbAM6RRT51+CWKNmNzQtyrKuDwEduCZiB6t1id4R+D8A6oSRO gEclNcPdSWcUTz4aUZWMaJxzLAYam8lELoiGaEZsQrNTFS2iwsjf24Rze/mi+pBfyTrW 9a52q0iwAMFcjrepjASmvW1szZZxMfwg8iAUSFMAmIvSOo+4XfNENmykEPSZorkaHKtM wJXt7mTVbh8mPsWyK9phYi8iypplceRZe8JI4sxY1pYl+y7kXp9/LlFXpUY8y/aYUgRY PosA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590484; x=1699195284; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m13obtynWZ1HKmm3tS72jneLlUTN4A7yJszt/cbbOTk=; b=Nq01efkkpSbTecn/MUijDh60W5rsx03ITHohE6JQbyZ6el5D9gUb1nasBPzYSqHALS TcwQIhPPU/mgLxULT42Zxjbc9+vB9/Zcs1enw6Io5nJP+UPBbt2/GZ4EIBHtIkMRbBf2 sUVEDDt5fzhP9VYC4YhyikxpyiXIcGBFWss3aALta9PL0P5N+zQDZIbLTgYcM7nStwXu y1hDXwQut0b8KA1RxlaOCzNaOl5atmSgBP/OQSadmmObhrFLLLxQNncw6s9fvlMgFNQu oBk/tSpLpKPt9fbmJCTdB1XTcX+zL/Woj+xoljXYB3SGiJTpCknFqeWF/rI3WpN3hBYA FrLQ== X-Gm-Message-State: AOJu0Yzw/95dGNQ+aDEHPF6JHdvHEjuBujj9KTwsHmtrFs/cD1UxuMVL HOiPPJuNOyJHxqeABD9EdQH7QsnTyf8snUeH1xA= X-Google-Smtp-Source: AGHT+IF8ExGARtqHESbb5P4rlAGFqB9wHMbHCkp9kQ+/kVuSt76UV2c77xP7rRxZnAwW7SX/ulA17w== X-Received: by 2002:adf:d1e1:0:b0:32f:7fa0:558 with SMTP id g1-20020adfd1e1000000b0032f7fa00558mr3623371wrd.49.1698590484410; Sun, 29 Oct 2023 07:41:24 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:24 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:24 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ibbac6334f247f86f56386fc53ef176875a13cb2a --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 6642aeea..366c5f2c 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -627,6 +627,27 @@ (define-public erlang-geas (home-page "https://hexdocs.pm/geas/") (license license:isc))) +(define-public erlang-covertool + (package + (name "erlang-covertool") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) + (build-system rebar-build-system) + (home-page "https://github.com/covertool/covertool") + (synopsis "Convert code-coverage data generated by @code{cover} into +Cobertura XML reports") + (description + "This package provides a build tool and plugin to convert +exported Erlang @code{cover} data sets into Cobertura XML reports, which can +then be feed to the Jenkins Cobertura plug-in. On @emph{hex.pm}, this plugin +was previously called @code{rebar_covertool}.") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 32/32] gnu: erlang-telemetry: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 14:43:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169859056229736 (code B ref 66801); Sun, 29 Oct 2023 14:43:06 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 14:42:42 +0000 Received: from localhost ([127.0.0.1]:43117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zy-0007jS-6R for submit@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:42 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:54541) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx6zM-0007e5-Om for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 10:42:05 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-40859c464daso28908595e9.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 07:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698590486; x=1699195286; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MdxebaJufxbwJRFQVH/D6xiOMG6Y5XBM7gI3hJu4mXA=; b=fwzWe5K/XS7BN6m4yzwpkce//ygs5+RrZPajmEnZv3ARVvyv+YSl8HCw/RUx9FI2Mq fD4tR9EpWYDE1Xr6ypSbbVPMPesoqnvIwA/e8M6dNPEgwUwUB0PBOgzYh8WJSQ4d7H1d H6KzqPg+2f+qbHyTSqux3yNqp7jOcyWbFAFJFzjSNjbr/wJyzOdrziyWxCKPdt4+l1Tz G4U9LdYyaWfIV+k9MHBE8N3ChhbyvP0geJTqlXMDqIVM+J/xSLHOaOpuZZdpOBxAIHAs hFsumywWWE2l9BzlGzXaVd3Zvvt2u02ZB7TF+/1iomIFozS4+u1XZAS4A+nRtTok8yck iIEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698590486; x=1699195286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MdxebaJufxbwJRFQVH/D6xiOMG6Y5XBM7gI3hJu4mXA=; b=OeAfcUJ4MLHIMGrwNC63+FC9qgrpfAnhKTwYozKsAt0nvTNBcnVSxSixNYT+FHW+MW h4I5DsrEOJlBKVK54bS2Pbn6dCfa2+0o6quKiKURtERy/NAcpAR1AcApP5IfI33Qv1IV vGzgX6FPGRFQMt3c8XEEWMgnnf9ubKyZaLaLqHwM355bZMTaEwt04TyIQUgw/2JnA1tI CWpQJVUOlQXuon2tA8kEbCf2RGZw5wKsb7f4+xwEfxOAIrVlGsWkrHdF/jN57j0kvTBG pe3P5ZqC+7vvuKgiW2CDdbeaFqbMvlWO6XAO8AwjW8lMQBMqxa0GndksxeK5MiBZgtbl hFfg== X-Gm-Message-State: AOJu0YwHaS7ZvvgOBTKEhysS/l0XVYQ/R+dOo/IGxNqZQma94n3vpLxH 2gvHy4ENWwuNu676+afBktQzLZuyHr5520tNAGs= X-Google-Smtp-Source: AGHT+IG/cPntjioI0eh3wgPSsIEaehB0GzZtmrXrBu5pVw/EK0NWErlwDMnfWOH7cmJ9r8KpwuKwxg== X-Received: by 2002:a05:6000:4b:b0:32d:570b:c0a4 with SMTP id k11-20020a056000004b00b0032d570bc0a4mr5409220wrx.27.1698590486122; Sun, 29 Oct 2023 07:41:26 -0700 (PDT) Received: from doug.com ([2a01:e34:ec69:c8b0:530e:366:bd55:7769]) by smtp.gmail.com with ESMTPSA id s10-20020a5d69ca000000b00323287186aasm6059590wrw.32.2023.10.29.07.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 07:41:25 -0700 (PDT) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 15:37:25 +0100 Message-ID: <37252e07b4bdf9451b58dcd92f0eab37c3c73fa4.1698590244.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I54cfe6fb244c26c6a226d76ee62a502a72e198a7 --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 366c5f2c..b43b4403 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -648,6 +648,27 @@ (define-public erlang-covertool was previously called @code{rebar_covertool}.") (license license:bsd-2))) +(define-public erlang-telemetry + (package + (name "erlang-telemetry") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1mgyx9zw92g6w8fp9pblm3b0bghwxwwcbslrixq23ipzisfwxnfs")))) + (build-system rebar-build-system) + (native-inputs (list erlang-covertool)) + (synopsis "Dynamic dispatching library for metrics and instrumentations") + (description + "Telemetry is a lightweight library for dynamic dispatching of events, with a +focus on metrics and instrumentation. Any Erlang or Elixir library can use +telemetry to emit events. Application code and other libraries can then hook +into those events and run custom handlers.") + (home-page "https://hexdocs.pm/telemetry/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] mix-build-system: draft 1 Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 17:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org, Katherine Cox-Buday , Andrew Tropin Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986000482353 (code B ref 66801); Sun, 29 Oct 2023 17:21:01 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 17:20:48 +0000 Received: from localhost ([127.0.0.1]:43292 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx9Sy-0000bt-7L for submit@debbugs.gnu.org; Sun, 29 Oct 2023 13:20:48 -0400 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]:54381) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx9Su-0000bb-MM for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 13:20:47 -0400 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-5af6c445e9eso25492107b3.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 10:20:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698600006; x=1699204806; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=O4eCxgnu9eoiVLhGsAnZJ/rKtKre22qFkkAC1s4hsgk=; b=i0nbPSXkzgoSMvakjAbTcox64d+do/4ghYzPJ0OKb8D73BRSv457/LXyKCWYykjY6+ HN4EPE05hD/g1+tYnUg529iByzSGfPGdrDjohPvaEHDXNw4UPZ1smU0zulYE8+RYbBjS bvwIvFhuMPY6k15D+O6Yx4Fj1bp9zoPTzp1VuFdi4y4Lr0Zox3Uh4hBaqkbtIMZlvixl rEKRtlcdwWhwBeBc/6nrBi05nlPHBqJpuUMNRkhSBqak7PK9RZRTsRZBsajdEhizE2Ya 9addnBKqvdPMJol0tEbhlIMg4uhlcy6OEkF8ZDCa+pTxxxTCXWM+ZEn23bzRiq0TUG1W EeuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698600006; x=1699204806; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=O4eCxgnu9eoiVLhGsAnZJ/rKtKre22qFkkAC1s4hsgk=; b=I2eehbqTttB4szDaByWX40z5wrvF50e7JsLZLG2D9F0SMqWkQKRE75ZVEk2shOMXc4 ydsZ51CP21iPZtrX1Fu3ppUNObDVud4OFVK3DnnF3+yVjNeVK+sCZAJs99P1J4w2El8O gcj4ysrUBvIlz9X269WahcyDP06kv8RjPKkeIQaVe98Z2p0J8NUjaUHfPKxq6Amu6woN aQt8k2N7kfz6fZ4qG8sULom+7egyOzm+lQK+gDtVBk77vlKkVwm3Yk+TFWLwh8/Iems3 rDtLl9iWt4vA/ptipLB5/05cWNm3R1NwVUKZ8y3+47SUAkc3hye2wKc9oT5vf5Uzvy/x hCOA== X-Gm-Message-State: AOJu0YxvUYJNdkCOZxXch3zUS2fVkERytG9A/RhoYqOVJ16O7o8lwya0 H8D5qUvVpq3Bdq3Fh74AAiA71X6SMOfZwyZS8efaaQ== X-Google-Smtp-Source: AGHT+IGjRMX4rsZH17AbEXhTIgi6jkbrh3hbgaYC2leaAmc1d1IrzgOj3XsSEixq87m4crji0/QU5TA7DpiA1kpzBaI= X-Received: by 2002:a81:ac0d:0:b0:5a7:ba54:aef5 with SMTP id k13-20020a81ac0d000000b005a7ba54aef5mr8236934ywh.21.1698600005985; Sun, 29 Oct 2023 10:20:05 -0700 (PDT) MIME-Version: 1.0 References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> <65090f6d8f74d0434ed826e565571cf196e9e3ab.camel@gmail.com> In-Reply-To: <65090f6d8f74d0434ed826e565571cf196e9e3ab.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 18:19:54 +0100 Message-ID: Content-Type: multipart/alternative; boundary="000000000000f9003c0608de213e" X-Spam-Score: 0.0 (/) 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 (-) --000000000000f9003c0608de213e Content-Type: text/plain; charset="UTF-8" I suppose it would have been better to send each patch individually after discussion, rather than all at once. My mistake. Cheers. --000000000000f9003c0608de213e Content-Type: text/html; charset="UTF-8"
I suppose it would have been better to send each patch individually
after discussion, rather than all at once. My mistake.

Cheers.
--000000000000f9003c0608de213e-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 18:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169860424126900 (code B ref 66801); Sun, 29 Oct 2023 18:31:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 18:30:41 +0000 Received: from localhost ([127.0.0.1]:43334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxAYZ-0006xO-Qj for submit@debbugs.gnu.org; Sun, 29 Oct 2023 14:30:41 -0400 Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544]:57536) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxAYV-0006X3-34 for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 14:30:38 -0400 Received: by mail-ed1-x544.google.com with SMTP id 4fb4d7f45d1cf-53e2dc8fa02so6344215a12.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 11:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698604196; x=1699208996; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=6cfZVEaWis1avDCK8zET2rhQOrezW6SPILNNnI1u6vk=; b=V4xLii8cbAIirP80kbclQAUL20zUZnj22MxO0gjGfPxptUV/G9uGtC+jDvxUVVG9MM neJzp8aFm1d4Dad5sP5+mf1CrKBY3wdgyWKSD9cOfah2qognS0Gc2xjAYjCsuw0diVLL XR4EeFyUfYYMM7xoU69VjqhILNVuDoxTaFBN+/e8kL3awMcXoYevxHV0yP7FXGQ0hoNA 0rzzOSQRzY8HUHVVC+d7h7tVqc9v9pgCQF5Lfr8LUP+BhgGZPc5IBF4wiUUEzhxPPwLq VI/xydgelFz2E7eE9gi1NMiFe/ZkBAv4LkCzgf71QY7+MbSQHQhMSNkqR5dMsg66EQrq OXzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698604196; x=1699208996; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6cfZVEaWis1avDCK8zET2rhQOrezW6SPILNNnI1u6vk=; b=r7guuuxX1CwzJsU6p/Pq1RBQJyXfVFtG6lA80AbGv9VRS2pqdUMSbn1mQ/Zgjao/HR +En8ojqarEiSeu8UIVbnIXhnt92K4O0QKy+bvRLnJqpSlHHTiG46FdzAtDmZRyTMHXBT aD7Zqv5y+HsEtd+6ceZyDsGxn7VmPPgR+fsIsplSK0XBpTQG2nTFYY4PUrAY7l1GXmo5 /e008Cp3VeQzpbDJ5+7AwHmfQ/zB6RLjqUl8yOzgpZ9XxUhueKHz3Tkz5vVQCod+7+iV qZ02d3ktoEO8wbm2zIoqDsjYOr8s6YIPFxoRv34jy7vi1QImxsoxBlqiJpTmIw44zHVI x7bQ== X-Gm-Message-State: AOJu0YzuCLb+6ckBz5lwnnzzAYRSOyVkNOZDW6FSEW/9t4eAECPjhds4 2z/LcIYhxL+tMvaqii0sXIo= X-Google-Smtp-Source: AGHT+IFTK0pn2uHoyE2izXen+GyG/34Ptv3jspD9ZsGwjU9NBcJdtgMZqx+Wsyj/e57+nRqBzI84vA== X-Received: by 2002:a17:906:db09:b0:9ad:f7e5:67d9 with SMTP id xj9-20020a170906db0900b009adf7e567d9mr6668805ejb.4.1698604195565; Sun, 29 Oct 2023 11:29:55 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id n11-20020a170906b30b00b00989828a42e8sm4664271ejz.154.2023.10.29.11.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 11:29:54 -0700 (PDT) Message-ID: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> From: Liliana Marie Prikler Date: Sun, 29 Oct 2023 19:29:53 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) QW0gU29ubnRhZywgZGVtIDI5LjEwLjIwMjMgdW0gMTU6MzYgKzAxMDAgc2NocmllYiBQaWVycmUt SGVucnkKRnLDtmhyaW5nOgo+ICBbUEFUQ0ggdmEzZTVhZTBmLi4zNzI1MmUwNyAwMS8zMl0KVGhl IG1pZGRsZSBzaG91bGQgaW5kaWNhdGUgYSByZXZpc2lvbiBudW1iZXIgYW5kIGFuIG9wdGlvbmFs IGJyYW5jaCAoYXMKd2VsbCBhcyBvcHRpb25hbCBXSVAgYW5kIFJGQykuICBTaW5jZSB0aGlzIGdv ZXMgdG8gbWFzdGVyIChJIGFzc3VtZSksCml0IHNob3VsZCBqdXN0IGJlIHYyLCB2Mywg4oCmIHZO Cgo+IFRoZSBidWlsZGVyIG5vdyBhY2NlcHRzIHRoZSBgIzpzb3VyY2VzLWVybGFuZ2AgcGFyYW1l dGVyLCB3aGljaAo+IGV4cGVjdHMgYSBsaXN0IG9mICJTb3VyY2UiIGl0ZW1zLiBFYWNoICJTb3Vy Y2UiIGNvcnJlc3BvbmRzIHRvIHRoZQo+IHNvdXJjZSBjb2RlIG9mIGEgbGlicmFyeSBkaXJlY3Rv cnksIHdoaWNoIGlzIHdoZXJlIEVybGFuZyBsb29rcyBmb3IKPiBjb21waWxlZCBtb2R1bGVzLgo+ IERvY3VtZW50YXRpb246Cj4gaHR0cHM6Ly93d3cuZXJsYW5nLm9yZy9kb2MvbWFuL2NvZGUjY29k ZS1wYXRoLiBFYWNoIFNvdXJjZSBpcwo+IGluc3RhbGxlZCBhcyBhICJDaGVja291dCIsIHdoaWNo IGFyZSBsb2NhbCBkZXBlbmRlbmNpZXMgbGlua2VkIHRvCj4gZGlyZWN0b3JpZXMgbWFuYWdlZCBi eSByZWJhci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQo+IGh0dHBzOi8vcmViYXIzLm9yZy9k b2NzL2NvbmZpZ3VyYXRpb24vZGVwZW5kZW5jaWVzLyNjaGVja291dC1kZXBlbmRlbmNpZXMKPiAu IExhY2tpbmcgY2hlY2tvdXRzLCByZWJhcjMgd2lsbCBub3QgY29tcGlsZSBpZiB0aGVyZSBpcyBu byBuZXR3b3JrCj4gYWNjZXNzLgo+IAo+IENoYW5nZS1JZDogSWRjM2FhOGJiMjA0ZjU1ZDA1OTRj MTY2OTM5OTg0NWNkOWI5ZTg2YWIKPiAtLS0KPiDCoGd1aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNj bcKgwqDCoMKgwqDCoCB8IDI3NCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gLS0KPiDC oGd1aXgvYnVpbGQvcmViYXItYnVpbGQtc3lzdGVtLnNjbSB8IDI1NSArKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0KPiDCoDIgZmlsZXMgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKyksIDE5MCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vcmViYXIuc2Nt IGIvZ3VpeC9idWlsZC0KPiBzeXN0ZW0vcmViYXIuc2NtCj4gaW5kZXggZGUxMjk0ZWMuLjg2Mjcy MWVlIDEwMDY0NAo+IC0tLSBhL2d1aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNjbQo+ICsrKyBiL2d1 aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNjbQo+IEBAIC0xLDYgKzEsNyBAQAo+IMKgOzs7IEdOVSBH dWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCj4gwqA7OzsgQ29w eXJpZ2h0IMKpIDIwMTYgUmljYXJkbyBXdXJtdXMgPHJla2Fkb0BlbGVwaGx5Lm5ldD4KPiDCoDs7 OyBDb3B5cmlnaHQgwqkgMjAyMCBIYXJ0bXV0IEdvZWJlbCA8aC5nb2ViZWxAY3JhenktY29tcGls ZXJzLmNvbT4KPiArOzs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcK PiA8cGhmcm9ocmluZ0BkZWVwbGlua3MuY29tPgo+IMKgOzs7Cj4gwqA7OzsgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIEd1aXguCj4gwqA7OzsKPiBAQCAtMTgsMTAyICsxOSwxMTcgQEAKPiDCoDs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LsKgIElmIG5vdCwgc2VlCj4gPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+Lgo+IMKgCj4gwqAoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0g cmViYXIpCj4gLcKgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKPiAtwqAgIzp1c2UtbW9kdWxl IChndWl4IHV0aWxzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkK PiArwqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSkKPiDCoMKgICM6dXNlLW1vZHVs ZSAoZ3VpeCBnZXhwKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCj4gwqDCoCAj OnVzZS1tb2R1bGUgKGd1aXggbW9uYWRzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2Fn ZXMpCj4gwqDCoCAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQo+IC3CoCAjOnVzZS1t b2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQt c3lzdGVtIGdudSkKPiAtwqAgIzpleHBvcnQgKGhleHBtLXVyaQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGhleHBtLXBhY2thZ2UtdXJsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJXJlYmFy LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmViYXItYnVp bGQKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWJhci1idWlsZC1zeXN0ZW0pKQo+ICvCoCAj OnVzZS1tb2R1bGUgKGd1aXggc3RvcmUpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykK PiArwqAgIzp1c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChpY2Ut OSByZWdleCkKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiArwqAgIzpleHBvcnQg KGhleHBtLXVyaSBoZXhwbS1wYWNrYWdlLXVybCAlcmViYXItYnVpbGQtc3lzdGVtLW1vZHVsZXMK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlYmFyLWJ1aWxk IHJlYmFyLWJ1aWxkLXN5c3RlbSkpCj4gwqAKPiAtOzs7Cj4gLTs7OyBEZWZpbml0aW9ucyBmb3Ig dGhlIGhleC5wbSByZXBvc2l0b3J5LAo+IC07OzsKPiArOzsgU291cmNlCj4gKzs7wqDCoCBBIMKr IFNvdXJjZSDCuyByZXByZW5zZW50cyB0aGUgc291cmNlIGNvZGUgdG8gYSBsaWJyYXJ5Cj4gZGly ZWN0b3J5LiBJdCBpcwo+ICs7O8KgwqAgZGVmaW5lZCBhcyAobGlzdCA8bmFtZT4gPG9yaWdpbj4p IHdoZXJlOiA8bmFtZT4gaXMgYSBzdHJpbmcKPiByZXByZXNlbnRpbmcKPiArOzvCoMKgIHRoZSBu YW1lIG9mIGEgbGlicmFyeSBkaXJlY3RvcnkgYW5kIDxvcmlnaW4+IGlzIGFuIG9yaWdpbiBhcwo+ IGRlZmluZWQKPiArOzvCoMKgIChndWl4IHBhY2thZ2VzKS4KPiArCj4gKwo+ICs7OyBQYXR0ZXJu IHRoYXQgYW4gRXJsYW5nIEd1aXggcGFja2FnZSBuYW1lIGlzIGV4cGVjdGVkIHRvIG1hdGNoLgo+ ICsoZGVmaW5lIHBrZy1uYW1lLXJlICJeZXJsYW5nLSguKikiKQpFbWFjcywgUnVzdCwgZXRjLiBi dWlsZCBzeXN0ZW1zIGp1c3Qgc3RyaXAgb3V0IHRoZSBwcmVmaXguICBObyBuZWVkIHRvCmdvIGFs bCBmYW5jeSByZWdleHB5IDopCgo+ICsoZGVmaW5lIChwa2ctbmFtZS0+bWF0Y2ggbmFtZSkKPiAr wqAgIlJldHVybiB0aGUgbWF0Y2ggb2JqZWN0IGZyb20gTkFNRSBpZiBOQU1FIHN0YXJ0cyB3aXRo IHBrZy1uYW1lLQo+IHByZWZpeC4iCj4gK8KgIChzdHJpbmctbWF0Y2ggcGtnLW5hbWUtcmUgbmFt ZSkpCj4gKwo+ICsoZGVmaW5lIChwa2ctbmFtZT8gbmFtZSkKPiArwqAgIlRlc3QgaWYgTkFNRSBp cyB0aGUgbmFtZSBvZiBhbiBFcmxhbmcgR3VpeCBwYWNrYWdlLiIKPiArwqAgKG9yIChwa2ctbmFt ZS0+bWF0Y2ggbmFtZSkgI2YpKQo+IMKgCj4gLTs7IFVSTCBhbmQgcGF0aHMgZnJvbQo+IC07OyBo dHRwczovL2dpdGh1Yi5jb20vaGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYXN0ZXIvZW5kcG9p bnRzLm1kCj4gLShkZWZpbmUgJWhleHBtLXJlcG8tdXJsCj4gLcKgIChtYWtlLXBhcmFtZXRlciAi aHR0cHM6Ly9yZXBvLmhleC5wbSIpKQo+ICsoZGVmaW5lIChwa2ctbmFtZS0+c3VmZml4IG5hbWUp Cj4gK8KgICJSZXR1cm4gdGhlIHN1ZmZpeCBvZiB0aGUgbmFtZSBvZiBhbiBFcmxhbmcgR3VpeCBw YWNrYWdlLiIKPiArwqAgKHJlZ2V4cC1zdWJzdGl0dXRlICNmIChwa2ctbmFtZS0+bWF0Y2ggbmFt ZSkgMSkpCj4gwqAKPiAtKGRlZmluZSBoZXhwbS1wYWNrYWdlLXVybAo+IC3CoCAoc3RyaW5nLWFw cGVuZCAoJWhleHBtLXJlcG8tdXJsKSAiL3RhcmJhbGxzLyIpKQo+ICsoZGVmaW5lKiAocGtnLW5h bWUtPmxpYnJhcnktZGlyZWN0b3J5LW5hbWUgbmFtZSAjOmtleSAodmVyc2lvbiAiIikpCj4gK8Kg ICJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgZGlyZWN0b3J5IGFzc29jaWF0ZWQgd2l0 aCB0aGUKPiBFcmxhbmcgR3VpeCBwYWNrYWdlIG5hbWUgTkFNRS4iCj4gK8KgIChzdHJpbmctYXBw ZW5kIChzdHJpbmctcmVwbGFjZS1zdWJzdHJpbmcgKHBrZy1uYW1lLT5zdWZmaXggbmFtZSkKPiAi LSIgIl8iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaWYgKHN0cmluZz0g dmVyc2lvbiAiIikgIiIgKHN0cmluZy1hcHBlbmQgIi0iCj4gdmVyc2lvbikpKSkKPiArCj4gKzs7 IFNlZToKPiBodHRwczovL2dpdGh1Yi5jb20vaGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYXN0 ZXIvZW5kcG9pbnRzLm1kCj4gKyhkZWZpbmUgaGV4cG0gKG1ha2UtcGFyYW1ldGVyICJodHRwczov L3JlcG8uaGV4LnBtIikpCj4gKwo+ICsoZGVmaW5lIGhleHBtLXRhcmJhbGxzIChzdHJpbmctYXBw ZW5kIChoZXhwbSkgIi90YXJiYWxscy8iKSkKPiDCoAo+IMKgKGRlZmluZSAoaGV4cG0tdXJpIG5h bWUgdmVyc2lvbikKPiDCoMKgICJSZXR1cm4gYSBVUkkgc3RyaW5nIGZvciB0aGUgcGFja2FnZSBo b3N0ZWQgYXQgaGV4LnBtCj4gY29ycmVzcG9uZGluZyB0byBOQU1FCj4gLWFuZCBWRVJTSU9OLiIK PiAtwqAgKHN0cmluZy1hcHBlbmQgaGV4cG0tcGFja2FnZS11cmwgbmFtZSAiLSIgdmVyc2lvbiAi LnRhciIpKQo+ICthbmQgVkVSU0lPTi4KPiDCoAo+IC07Owo+IC07OyBTdGFuZGFyZCBidWlsZCBw cm9jZWR1cmUgZm9yIEVybGFuZyBwYWNrYWdlcyB1c2luZyBSZWJhci4KPiAtOzsKPiArWFhYOiBz aG91bGQgYSB3YXJuaW5nIGJlIGVtaXR0ZWQ/Cj4gK0lmIE5BTUUgaXMgbm90IGFuIEVybGFuZyBH dWl4IHBhY2thZ2UgbmFtZSwgdGhlbiBlbWl0IGEgd2FybmluZy4gVGhlCj4gZG93bmxvYWQKPiAr d2lsbCBmYWlsIGlmIGl0IGlzIG5vdCBjb3JyZWN0IGFueXdheS4iCj4gwqAKPiAtKGRlZmluZSAl cmViYXItYnVpbGQtc3lzdGVtLW1vZHVsZXMKPiAtwqAgOzsgQnVpbGQtc2lkZSBtb2R1bGVzIGlt cG9ydGVkIGJ5IGRlZmF1bHQuCj4gLcKgIGAoKGd1aXggYnVpbGQgcmViYXItYnVpbGQtc3lzdGVt KQo+IC3CoMKgwqAgLEAlZ251LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKPiArwqAgKGRlZmluZSAo d2Fybi1hYm91dCBuYW1lKQo+ICvCoMKgwqAgKGZvcm1hdCAjdCAiQXNzZXJ0aW9uV2FybmluZyA0 ZGNiZmYyNwo+ICvCoCBBc3NlcnRpb246IHJlIG1hdGNoZXMgbmFtZS4KPiArwqDCoMKgIHJlID0g fmEKPiArwqDCoMKgIG5hbWUgPSB+YQo+ICsiIHBrZy1uYW1lLXJlIG5hbWUpCj4gKwo+ICvCoMKg wqAgbmFtZSkK5L2V44Gn77yfCgo+IMKgCj4gLShkZWZpbmUgKGRlZmF1bHQtcmViYXIzKQo+IC3C oCAiUmV0dXJuIHRoZSBkZWZhdWx0IFJlYmFyMyBwYWNrYWdlLiIKPiArwqAgKGRlZmluZSAobmFt ZS0+YXJjaGl2ZS1uYW1lIG5hbWUpCj4gK8KgwqDCoCAoaWYgKHBrZy1uYW1lPyBuYW1lKQo+ICvC oMKgwqDCoMKgwqDCoCAoc3RyaW5nLWFwcGVuZCAocGtnLW5hbWUtPmxpYnJhcnktZGlyZWN0b3J5 LW5hbWUgbmFtZQo+ICM6dmVyc2lvbiB2ZXJzaW9uKSAiLnRhciIpCj4gK8KgwqDCoMKgwqDCoMKg IChzdHJpbmctYXBwZW5kICh3YXJuLWFib3V0IG5hbWUpICItIiB2ZXJzaW9uICIudGFyIikpKQo+ ICsKPiArwqAgKHN0cmluZy1hcHBlbmQgaGV4cG0tdGFyYmFsbHMgKG5hbWUtPmFyY2hpdmUtbmFt ZSBuYW1lKSkpCj4gKwo+ICsoZGVmaW5lIChyZWJhci1kZWZhdWx0KQo+IMKgwqAgOzsgTGF6aWx5 IHJlc29sdmUgdGhlIGJpbmRpbmcgdG8gYXZvaWQgYSBjaXJjdWxhciBkZXBlbmRlbmN5Lgo+IMKg wqAgKGxldCAoKGVybGFuZy1tb2QgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGVy bGFuZykpKSkKPiDCoMKgwqDCoCAobW9kdWxlLXJlZiBlcmxhbmctbW9kICdyZWJhcjMpKSkKSSBz dWdnZXN0IG5vdCB0byByZW5hbWUgdGhlc2UgcHJvY2VkdXJlcy4gIGRlZmF1bHQtWCByZWFkcyBt b3JlCm5hdHVyYWxseSB0aGFuIFgtZGVmYXVsdC4KCj4gLShkZWZpbmUgKGRlZmF1bHQtZXJsYW5n KQo+IC3CoCAiUmV0dXJuIHRoZSBkZWZhdWx0IEVybGFuZyBwYWNrYWdlLiIKPiArKGRlZmluZSAo ZXJsYW5nLWRlZmF1bHQpCj4gwqDCoCA7OyBMYXppbHkgcmVzb2x2ZSB0aGUgYmluZGluZyB0byBh dm9pZCBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuCj4gwqDCoCAobGV0ICgoZXJsYW5nLW1vZCAocmVz b2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZXJsYW5nKSkpKQo+IMKgwqDCoMKgIChtb2R1 bGUtcmVmIGVybGFuZy1tb2QgJ2VybGFuZykpKQo+IMKgCj4gLShkZWZpbmUqIChsb3dlciBuYW1l Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleSBzb3VyY2UgaW5wdXRzIG5h dGl2ZS1pbnB1dHMgb3V0cHV0cyBzeXN0ZW0KPiB0YXJnZXQKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChyZWJhciAoZGVmYXVsdC1yZWJhcjMpKQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKGVybGFuZyAoZGVmYXVsdC1lcmxhbmcpKQo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1vdGhlci1rZXlzCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOnJlc3QgYXJndW1lbnRzKQo+IC3CoCAiUmV0dXJuIGEgYmFnIGZvciBO QU1FIGZyb20gdGhlIGdpdmVuIGFyZ3VtZW50cy4iCj4gLcKgIChkZWZpbmUgcHJpdmF0ZS1rZXl3 b3Jkcwo+IC3CoMKgwqAgJygjOnRhcmdldCAjOnJlYmFyICM6ZXJsYW5nICM6aW5wdXRzICM6bmF0 aXZlLWlucHV0cykpCj4gLQo+IC3CoCAoYW5kIChub3QgdGFyZ2V0KcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7WFhYOiBubyBjcm9z cy0KPiBjb21waWxhdGlvbgo+IC3CoMKgwqDCoMKgwqAgKGJhZwo+IC3CoMKgwqDCoMKgwqDCoMKg IChuYW1lIG5hbWUpCj4gLcKgwqDCoMKgwqDCoMKgwqAgKHN5c3RlbSBzeXN0ZW0pCj4gLcKgwqDC oMKgwqDCoMKgwqAgKGhvc3QtaW5wdXRzIGAoLEAoaWYgc291cmNlCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYCgoInNvdXJjZSIg LHNvdXJjZSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJygpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICxAaW5wdXRzKSkKPiAtwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQtaW5wdXRz IGAoKCJyZWJhciIgLHJlYmFyKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKCJlcmxhbmciICxlcmxhbmcpIDs7IGZvciBlc2NyaXB0aXplCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQG5hdGl2ZS1p bnB1dHMKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDs7IEtlZXAgdGhlIHN0YW5kYXJkIGlucHV0cyBvZiAnZ251LWJ1aWxkLQo+IHN5c3RlbScuCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQChzdGFu ZGFyZC1wYWNrYWdlcykpKQo+IC3CoMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4g LcKgwqDCoMKgwqDCoMKgwqAgKGJ1aWxkIHJlYmFyLWJ1aWxkKQo+IC3CoMKgwqDCoMKgwqDCoMKg IChhcmd1bWVudHMgKHN0cmlwLWtleXdvcmQtYXJndW1lbnRzIHByaXZhdGUta2V5d29yZHMKPiBh cmd1bWVudHMpKSkpKQo+IC0KPiAtKGRlZmluZSogKHJlYmFyLWJ1aWxkIG5hbWUgaW5wdXRzCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1aWxlIHNvdXJjZQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXItZmxh Z3MgJycoInNraXBfZGVwcz10cnVlIiAiLXZ2IikpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0LXRhcmdldCAiZXVuaXQiKQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBUT0RPOiBpbnN0YWxsLW5h bWXCoCA7IGRlZmF1bHQ6IGJhc2VkIG9uCj4gZ3VpeCBwYWNrYWdlIG5hbWUKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtcHJvZmlsZSAiZGVm YXVsdCIpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChw aGFzZXMgJyhAIChndWl4IGJ1aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg JXN0YW5kYXJkLXBoYXNlcykpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChvdXRwdXRzICcoIm91dCIpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoc2VhcmNoLXBhdGhzICcoKSkKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMgJygpKQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICgl Y3VycmVudC1zeXN0ZW0pKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAoaW1wb3J0ZWQtbW9kdWxlcyAlcmViYXItYnVpbGQtc3lzdGVtLQo+IG1vZHVsZXMp Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVz ICcoKGd1aXggYnVpbGQgcmViYXItYnVpbGQtc3lzdGVtKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGd1aXggYnVp bGQgdXRpbHMpKSkpCj4gKyhkZWZpbmUgaW1wb3J0ZWQtbW9kdWxlcwo+ICvCoCBgKChndWl4IGJ1 aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiArwqDCoMKgICxAJWdudS1idWlsZC1zeXN0ZW0tbW9k dWxlcykpCj4gKwo+ICsoZGVmaW5lIChpbnB1dC0+c291cmNlIGlucHV0KQo+ICvCoCAiUmV0dXJu IGEgU291cmNlIGFzc29jaWF0ZWQgdG8gdGhlIElucHV0IElOUFVULiIKPiArwqAgKG1hdGNoIGlu cHV0Cj4gK8KgwqDCoCAoKG5hbWUgcGFja2FnZSkKPiArwqDCoMKgwqAgKGxpc3QgKHBrZy1uYW1l LT5saWJyYXJ5LWRpcmVjdG9yeS1uYW1lIG5hbWUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChw YWNrYWdlLXNvdXJjZSBwYWNrYWdlKSkpKSkKPiArCj4gKyhkZWZpbmUqIChyZWJhci1idWlsZCBu YW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1dHMK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWlsZQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNlCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXItZmxhZ3MgJycoKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodGVzdC10YXJnZXQgImV1 bml0IikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDs7IFRP RE86IGluc3RhbGwtbmFtZcKgIDsgZGVmYXVsdDogYmFzZWQgb24KPiBndWl4IHBhY2thZ2UgbmFt ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwt cHJvZmlsZSAiZGVmYXVsdCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAocGhhc2VzICcoQCAoZ3VpeCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzICcoIm91dCIpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobmF0aXZlLXNlYXJjaC1wYXRocyAnKCkp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICgl Y3VycmVudC1zeXN0ZW0pKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcykKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgcmVi YXItYnVpbGQtc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc291cmNlcy1lcmxhbmcgJygp KSkKPiDCoMKgICJCdWlsZCBTT1VSQ0Ugd2l0aCBJTlBVVFMuIgo+IMKgCj4gwqDCoCAoZGVmaW5l IGJ1aWxkZXIKPiBAQCAtMTIyLDM1ICsxMzgsOTUgQEAgKGRlZmluZSogKHJlYmFyLWJ1aWxkIG5h bWUgaW5wdXRzCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHVzZS1tb2R1bGVzICMkQChzZXhwLT5n ZXhwIG1vZHVsZXMpKQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12 YXJpYWJsZXMgaW5wdXRzIG91dHB1dHMKPiArCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjfihyZWJhci1idWlsZCAjOnNvdXJjZSAjK3NvdXJjZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gIyRzeXN0ZW0KPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6bmFtZSAjJG5hbWUKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6cmViYXItZmxhZ3MgIyRyZWJhci1m bGFncwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0 cz8gIyR0ZXN0cz8KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICM6dGVzdC10YXJnZXQgIyR0ZXN0LXRhcmdldAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgOzsgVE9ETzogIzppbnN0YWxsLW5hbWUgIyRpbnN0YWxsLW5hbWUK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5zdGFsbC1w cm9maWxlICMkaW5zdGFsbC1wcm9maWxlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFpcj8gcGhhc2VzKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNleHAtPmdleHAgcGhhc2VzKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGhhc2VzKQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRzICVvdXRw dXRzCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJj aC1wYXRocyAnIyQoc2V4cC0+Z2V4cAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWFwIHNl YXJjaC1wYXRoLQo+IHNwZWNpZmljYXRpb24tPnNleHAKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRocykpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAjOmlucHV0cyAlYnVpbGQtaW5wdXRzKSkpKSkKPiAtCj4gLcKgICht bGV0ICVzdG9yZS1tb25hZCAoKGd1aWxlIChwYWNrYWdlLT5kZXJpdmF0aW9uIChvciBndWlsZQo+ IChkZWZhdWx0LWd1aWxlKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3lzdGVtICM6Z3JhZnQ/Cj4gI2YpKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzb3VyY2VzLWVybGFuZyAnIyRzb3Vy Y2VzLWVybGFuZwpUaGlzIHJlZWtzIG9mIHRoZSBoYWNrIHRoYXQgd2UgbmVlZCBmb3IgY2FyZ28t YnVpbGQtc3lzdGVtLCBleGNlcHQgd2l0aAphIHdvcnNlIHZhcmlhYmxlIG5hbWUuICBJIHN0cm9u Z2x5IHN1Z2dlc3QgbG9va2luZyBpbnRvIHdheXMgd2UgY2FuIGRvCndpdGhvdXQgaXQuCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 c3lzdGVtICMkc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6bmFtZSAjJG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpyZWJhci1mbGFncyAjJHJlYmFy LWZsYWdzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICM6dGVzdHM/ICMkdGVzdHM/Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6dGVzdC10YXJnZXQgIyR0ZXN0LXRhcmdl dAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA7OyBUT0RPOiAjOmluc3RhbGwtbmFtZSAjJGluc3RhbGwtbmFtZQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmluc3RhbGwt cHJvZmlsZSAjJGluc3RhbGwtcHJvZmlsZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFpcj8KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChzZXhwLT5nZXhwCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 b3V0cHV0cyAlb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJjaC1wYXRocyAnIyQoc2V4cC0+Z2V4cAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRoLQo+IHNwZWNpZmljYXRpb24tPnNl eHAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRo cykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6aW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICVidWlsZC1pbnB1dHMpKSkpKQo+ICsKPiArwqAgKG1sZXQgJXN0 b3JlLW1vbmFkCj4gK8KgwqDCoMKgwqAgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAob3Ig Z3VpbGUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVmYXVsdC1ndWlsZSkpIHN5c3RlbQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6Z3JhZnQ/ICNmKSkpCj4gKwo+IMKgwqDCoMKgIDs7IE5vdGU6 IEFsd2F5cyBwYXNzICM6Z3JhZnQ/ICNmLsKgIFdpdGhvdXQgaXQsIEFMTE9XRUQtCj4gUkVGRVJF TkNFUyAmCj4gwqDCoMKgwqAgOzsgY28uIHdvdWxkIGJlIGludGVycHJldGVkIGFzIHJlZmVycmlu ZyB0byBncmFmdGVkIHBhY2thZ2VzLgo+IC3CoMKgwqAgKGdleHAtPmRlcml2YXRpb24gbmFtZSBi dWlsZGVyCj4gK8KgwqDCoCAoZ2V4cC0+ZGVyaXZhdGlvbiBuYW1lCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWlsZGVyCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gc3lzdGVtCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0YXJnZXQgI2YKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0PyAjZgo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6Z3VpbGUtZm9yLWJ1aWxkIGd1 aWxlKSkpCj4gwqAKPiArKGRlZmluZSogKGxvd2VyIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZXJsYW5nIChlcmxhbmctZGVmYXVsdCkpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1dHMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hdGl2ZS1pbnB1dHMKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dHMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChyZWJhciAocmViYXItZGVmYXVsdCkpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzb3VyY2UKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGFyZ2V0Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3VtZW50cykKPiArwqAgIlJldHVybiBhIGJhZyBmb3IgTkFNRSBmcm9tIHRoZSBnaXZlbiBh cmd1bWVudHMuIgo+ICsKPiArwqAgKGxldCogKChlcmxhbmctcGFja2FnZXMKPiArwqDCoMKgwqDC oMKgwqDCoMKgIChmaWx0ZXIgKGxhbWJkYSAoaW5wdXQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChtYXRjaCBpbnB1dAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKChuYW1lIF8pIChwa2ctbmFtZT8gbmFtZSkpKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYXBwZW5kIGlucHV0cyBuYXRpdmUtaW5w dXRzKSkpCj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgIChlcmxhbmctc291cmNlcyAobWFwIGlucHV0 LT5zb3VyY2UgZXJsYW5nLXBhY2thZ2VzKSkpCj4gKwo+ICvCoMKgwqAgKGRlZmluZSBwcml2YXRl LWtleXdvcmRzCj4gK8KgwqDCoMKgwqAgJygjOnRhcmdldCAjOnJlYmFyICM6ZXJsYW5nICM6aW5w dXRzICM6bmF0aXZlLWlucHV0cwo+ICM6c291cmNlcy1lcmxhbmcpKQo+ICsKPiArwqDCoMKgIChh bmQgKG5vdCB0YXJnZXQpIDtYWFg6IG5vIGNyb3NzLWNvbXBpbGF0aW9uCj4gK8KgwqDCoMKgwqDC oMKgwqAgKGJhZyAobmFtZSBuYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lz dGVtIHN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGhvc3QtaW5wdXRzIGlu cHV0cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGJ1aWxkLWlucHV0cyBgKCxAKHN0 YW5kYXJkLXBhY2thZ2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICgiZXJsYW5nIiAsZXJsYW5nKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgicmViYXIiICxy ZWJhcikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAsQGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICxAbmF0aXZlLWlucHV0cykpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChidWlsZCByZWJhci1idWlsZCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KGFyZ3VtZW50cyAoYXBwZW5kIChsaXN0ICM6c291cmNlcy1lcmxhbmcgZXJsYW5nLQo+IHNvdXJj ZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKHN0cmlwLWtleXdvcmQtYXJndW1lbnRzIHByaXZhdGUtCj4ga2V5d29y ZHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgCj4gYXJndW1lbnRzKSkpKSkpKQo+ICsKPiDCoChkZWZpbmUgcmViYXItYnVpbGQtc3lz dGVtCj4gLcKgIChidWlsZC1zeXN0ZW0KPiAtwqDCoMKgIChuYW1lICdyZWJhcikKPiAtwqDCoMKg IChkZXNjcmlwdGlvbiAiVGhlIHN0YW5kYXJkIFJlYmFyIGJ1aWxkIHN5c3RlbSIpCj4gLcKgwqDC oCAobG93ZXIgbG93ZXIpKSkKPiArwqAgKGJ1aWxkLXN5c3RlbSAobmFtZSAncmViYXIpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVzY3JpcHRpb24gIlRoZSBzdGFuZGFyZCBS ZWJhciBidWlsZCBzeXN0ZW0iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxv d2VyIGxvd2VyKSkpCj4gKwo+ICsKPiArOzs7Cj4gKzs7OyBFeHBvcnRzCj4gKzs7Owo+ICsKPiAr KGRlZmluZSBoZXhwbS1wYWNrYWdlLXVybCBoZXhwbS10YXJiYWxscykKPiArCj4gKyhkZWZpbmUg JXJlYmFyLWJ1aWxkLXN5c3RlbS1tb2R1bGVzIGltcG9ydGVkLW1vZHVsZXMpCj4gKwo+ICsKPiAr Ozs7IHJlYmFyLnNjbSBlbmRzIGhlcmUKPiBkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC9yZWJhci1i dWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9yZWJhci0KPiBidWlsZC1zeXN0ZW0uc2NtCj4g aW5kZXggZmI2NjQyMjguLmI2ODM0OGJkIDEwMDY0NAo+IC0tLSBhL2d1aXgvYnVpbGQvcmViYXIt YnVpbGQtc3lzdGVtLnNjbQo+ICsrKyBiL2d1aXgvYnVpbGQvcmViYXItYnVpbGQtc3lzdGVtLnNj bQo+IEBAIC0yLDYgKzIsNyBAQAo+IMKgOzs7IENvcHlyaWdodCDCqSAyMDE2LCAyMDE4IFJpY2Fy ZG8gV3VybXVzIDxyZWthZG9AZWxlcGhseS5uZXQ+Cj4gwqA7OzsgQ29weXJpZ2h0IMKpIDIwMTkg QmrDtnJuIEjDtmZsaW5nCj4gPGJqb2Vybi5ob2VmbGluZ0Biam9lcm5ob2VmbGluZy5kZT4KPiDC oDs7OyBDb3B5cmlnaHQgwqkgMjAyMCwgMjAyMiBIYXJ0bXV0IEdvZWJlbAo+IDxoLmdvZWJlbEBj cmF6eS1jb21waWxlcnMuY29tPgo+ICs7OzsgQ29weXJpZ2h0IMKpIDIwMjMgUGllcnJlLUhlbnJ5 IEZyw7ZocmluZwo+IDxwaGZyb2hyaW5nQGRlZXBsaW5rcy5jb20+Cj4gwqA7OzsKPiDCoDs7OyBU aGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KPiDCoDs7Owo+IEBAIC0yMywxMjUgKzI0LDE5 NyBAQCAoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gwqDC oCAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIHV0aWxzKSAjOmhpZGUgKGRlbGV0ZSkpCj4gwqDC oCAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQo+IMKgwqAgIzp1c2UtbW9kdWxlIChpY2UtOSBm dHcpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgc3RyaW5nLWZ1bikKPiArwqAgIzp1c2UtbW9k dWxlIChpY2UtOSByZWNlaXZlKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQo+IMKg wqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiDCoMKgICM6dXNlLW1vZHVsZSAoc3JmaSBz cmZpLTI2KQo+IC3CoCAjOmV4cG9ydCAocmViYXItYnVpbGQKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiArwqAgIzpleHBvcnQgKHJlYmFyLWJ1aWxkICVzdGFu ZGFyZC1waGFzZXMpKQo+IMKgCj4gwqA7Owo+IMKgOzsgQnVpbGRlci1zaWRlIGNvZGUgb2YgdGhl IHN0YW5kYXJkIGJ1aWxkIHByb2NlZHVyZSBmb3IgRXJsYW5nCj4gcGFja2FnZXMgdXNpbmcKPiDC oDs7IHJlYmFyMy4KPiDCoDs7Cj4gLTs7IFRPRE86IFRoaW5rIGFib3V0IHdoZXRoZXIgYmluZGly ICgiZWJpbiIpLCBsaWJkaXIgKCJwcml2IikgYW5kCj4gaW5jbHVkZWRpcgo+IC07OyAiKGluY2x1 ZGUiKSBuZWVkIHRvIGJlIGNvbmZpZ3VyYWJsZQo+ICs7OyBMaWJyYXJ5IGRpcmVjdG9yeQo+ICs7 O8KgwqAgQSDCqyBsaWJyYXJ5IGRpcmVjdG9yeSDCuyBpcyBhIGRpcmVjdG9yeSB3aGVyZSBFcmxh bmcgc2VhcmNoZXMKPiBmb3IgY29tcGlsZWQKPiArOzvCoMKgIGNvZGUuIEl0cyBuYW1lIHNob3Vs ZCBsb29rIGxpa2U6IGBhX25hbWUtMS4yLjMnIHdoZXJlIHRoZQo+IHN1ZmZpeCBgLTEuMi4zJwo+ ICs7O8KgwqAgaXMgb3B0aW9uYWwuIFNlZToKPiBodHRwczovL3d3dy5lcmxhbmcub3JnL2RvYy9t YW4vY29kZSNjb2RlLXBhdGguCj4gKzs7Cj4gKzs7IFBhY2thZ2UgbmFtZQo+ICs7O8KgwqAgQSDC qyBwYWNrYWdlIG5hbWUgwrsgaXMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIGZpZWxkIG9mIGEgcGFj a2FnZQo+ICs7O8KgwqAgZGVmaW5pdGlvbi4gSXQgbG9va3MgbGlrZTogYHByZWZpeC1hLW5hbWUt MS4yLjMnLiBTZWU6Cj4gKzs7wqDCoCBodHRwczovL2d1aXguZ251Lm9yZy9tYW51YWwvZW4vaHRt bF9ub2RlL1BhY2thZ2UtTmFtaW5nLmh0bWwKPiArOzsKPiArOzsgUHJvZmlsZQo+ICs7O8KgwqAg Rm9yIFJlYmFyMywgYSDCqyBwcm9maWxlIMK7IGlzIGEgbmFtZSBhc3NvY2lhdGVkIHRvIGEgc2V0 IG9mCj4gY29uZmlndXJhdGlvbgo+ICs7O8KgwqAgc2V0dGluZ3Mgb3ZlcnJpZGluZyBvciBjb21w bGVtZW50aW5nIHRoZSByZWd1bGFyIGNvbmZpZ3VyYXRpb24uCj4gU2VlOgo+ICs7O8KgwqAgaHR0 cHM6Ly9yZWJhcjMub3JnL2RvY3MvY29uZmlndXJhdGlvbi9wcm9maWxlcwo+ICs7Owo+ICs7OyBT b3VyY2UKPiArOzvCoMKgIEEgwqsgc291cmNlIMK7IHJlcHJlc2VudHMgdGhlIHNvdXJjZSBjb2Rl IGFzc29jaWF0ZWQgdG8gYSBHdWl4Cj4gcGFja2FnZSBhcwo+ICs7O8KgwqAgZGVmaW5lZCBieSBp dHMgYHNvdXJjZScgZmllbGQuIEhlcmUsIHRoZSBkYXRhIHNjdHJ1Y3R1cmUgdXNlZAo+IHRvCj4g Kzs7wqDCoCByZXByZXNlbnQgYSBzb3VyY2UgaGFzIHRoZSBmb3JtIGAobGlzdCBuYW1lIHBhdGgp JyB3aGVyZSBgbmFtZScKPiBpcyBhCj4gKzs7wqDCoCBsaWJyYXJ5IGRpcmVjdG9yeSBuYW1lIGFu ZCBgcGF0aCcgaXMgdGhlIHN0b3JlIHBhdGggd2hlcmUgdG8KPiBmaW5kIHRoZQo+ICs7O8KgwqAg c291cmNlIGNvZGUuCj4gKzs7Cj4gKzs7IENoZWNrb3V0Cj4gKzs7wqDCoCBBIMKrIGNoZWNrb3V0 IMK7IGlzIGEgbG9jYWxseSBkZWZpbmVkIGRlcGVuZGVuY3kgcmVsYXRlZCB0byBhCj4gZGlyZWN0 b3J5Cj4gKzs7wqDCoCBtYW5hZ2VkIGJ5IHJlYmFyLsKgIFNlZToKPiArOzvCoMKgCj4gaHR0cHM6 Ly9yZWJhcjMub3JnL2RvY3MvY29uZmlndXJhdGlvbi9kZXBlbmRlbmNpZXMvI2NoZWNrb3V0LWRl cGVuZGVuY2llcwo+IMKgCj4gLShkZWZpbmUgJWVybGFuZy1saWJkaXIgIi9saWIvZXJsYW5nL2xp YiIpCj4gKyhkZWZpbmUgc2VwICIvIikKVWhtLCBkaWQgeW91IG1lYW4gZmlsZS1uYW1lLXNlcGFy YXRvci1zdHJpbmcgZnJvbSBHdWlsZSBjb3JlPwoKPiAtKGRlZmluZSogKGVybGFuZy1kZXBlbmRz ICM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCj4gLcKgIChkZWZpbmUgaW5wdXQtZGly ZWN0b3JpZXMKPiAtwqDCoMKgIChtYXRjaCBpbnB1dHMKPiAtwqDCoMKgwqDCoCAoKChfIC4gZGly KSAuLi4pCj4gLcKgwqDCoMKgwqDCoCBkaXIpKSkKPiAtwqAgKG1rZGlyLXAgIl9jaGVja291dHMi KQo+IC0KPiAtwqAgKGZvci1lYWNoCj4gLcKgwqAgKGxhbWJkYSAoaW5wdXQtZGlyKQo+IC3CoMKg wqDCoCAobGV0ICgoZWxpYmRpciAoc3RyaW5nLWFwcGVuZCBpbnB1dC1kaXIgJWVybGFuZy1saWJk aXIpKSkKPiAtwqDCoMKgwqDCoMKgICh3aGVuIChkaXJlY3RvcnktZXhpc3RzPyBlbGliZGlyKQo+ IC3CoMKgwqDCoMKgwqDCoMKgIChmb3ItZWFjaAo+IC3CoMKgwqDCoMKgwqDCoMKgwqAgKGxhbWJk YSAoZGlybmFtZSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV0ICgoZGVzdCAoc3RyaW5n LWFwcGVuZCBlbGliZGlyICIvIiBkaXJuYW1lKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAobGluayAoc3RyaW5nLWFwcGVuZCAiX2NoZWNrb3V0cy8iIGRpcm5hbWUpKSkK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdoZW4gKG5vdCAoZmlsZS1leGlzdHM/IGxp bmspKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgUkVUSElOSzogTWF5YmUg YmV0dGVyIGNvcHkgYW5kIG1ha2Ugd3JpdGFibGUgdG8KPiBhdm9pZCBzb21lCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBlcnJvciBtZXNzYWdlcyBlLmcuIHdoZW4gdXNpbmcg d2l0aCByZWJhcjMtZ2l0LQo+IHZzbi4KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IChzeW1saW5rIGRlc3QgbGluaykpKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgIChsaXN0LWRpcmVj dG9yaWVzIGVsaWJkaXIpKSkpKQo+IC3CoMKgIGlucHV0LWRpcmVjdG9yaWVzKSkKPiArOzsgV2hl cmUgRXJsYW5nIGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkIHJlbGF0aXZlIHRvIGEgcGFja2FnZSBw YXRoCj4gaW4gdGhlIHN0b3JlLgo+ICsoZGVmaW5lIGxpYi1lcmxhbmctbGliICJsaWIvZXJsYW5n L2xpYiIpCj4gKwo+ICsoZGVmaW5lIChsaXN0LWRpcmVjdG9yaWVzIGRpcmVjdG9yeSkKPiArwqAg IlJldHVybiBmaWxlIG5hbWVzIG9mIHRoZSBzdWItZGlyZWN0b3J5IG9mIERJUkVDVE9SWS4iCj4g K8KgIChzY2FuZGlyIGRpcmVjdG9yeQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGFtYmRhIChm aWxlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFuZCAobm90IChtZW1iZXIgZmlsZSAn KCIuIiAiLi4iKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGZpbGUt aXMtZGlyZWN0b3J5PyAoc3RyaW5nLWFwcGVuZCBkaXJlY3Rvcnkgc2VwCj4gZmlsZSkpKSkpKQpX ZSBoYXZlIGZpbmQtZmlsZXM/Cj4gKwo+ICsoZGVmaW5lKiAocGtnLW5hbWUtPmxpYmRpci1uYW1l IG5hbWUpCj4gK8KgICJSZXR1cm4gdGhlIGxpYnJhcnkgbmFtZSBkZWR1Y2VkIGZyb20gdGhlIEVy bGFuZyBwYWNrYWdlIG5hbWUKPiBOQU1FLiIKPiArwqAgKGxldCogKChzdWZmaXggKHJlZ2V4cC1z dWJzdGl0dXRlICNmIChzdHJpbmctbWF0Y2ggIl5lcmxhbmctKC4qKSIKPiBuYW1lKSAxKSkKPiAr wqDCoMKgwqDCoMKgwqDCoCAoZWxlbWVudHMgKHN0cmluZy1zcGxpdCBzdWZmaXggI1wtKSkpCj4g K8KgwqDCoCAoc3RyaW5nLWFwcGVuZCAoc3RyaW5nLWpvaW4gKGRyb3AtcmlnaHQgZWxlbWVudHMg MSkgIl8iKSAiLSIKPiAobGFzdCBlbGVtZW50cykpKSkKPiArCj4gKyhkZWZpbmUgKGxpYmRpci1u YW1lLT5wcmVmaXggbmFtZSkKPiArwqAgIlJldHVybiB0aGUgcHJlZml4IG9mIGEgbGlicmFyeSBk aXJlY3RvcnkgbmFtZSBOQU1FLiIKPiArwqAgKGNhciAoc3RyaW5nLXNwbGl0IG5hbWUgI1wtKSkp Cj4gKwo+ICsoZGVmaW5lIChyZWJhci1idWlsZC1kaXIgcHJvZmlsZSkKPiArwqAgIlJldHVybiB0 aGUgcGF0aCB3aGVyZSByZWJhciBidWlsZHMgbGlicmFyaWVzIGdpdmVuIHRoZSBwcm9maWxlCj4g UFJPRklMRS4iCj4gK8KgIChmb3JtYXQgI2YgIl9idWlsZC9+YS9saWIiIHByb2ZpbGUpKQo+ICsK PiArKGRlZmluZSogKHBrZy1uYW1lLT5idWlsZC1kaXIgbmFtZSAjOmtleSAocHJvZmlsZSAiZGVm YXVsdCIpKQo+ICvCoCAiUmV0dXJuIHRoZSBwYXRoIG9mIGxpYnJhcnkgZGlyZWN0b3J5IHdoZXJl IHJlYmFyMyBidWlsZHMgY29kZSBvZgo+IGFuIEVybGFuZyBwYWNrYWdlIG5hbWVkIE5BTUUgZ2l2 ZW4gdGhlIHByb2ZpbGUgUFJPRklMRS4iCj4gK8KgIChzdHJpbmctYXBwZW5kIChyZWJhci1idWls ZC1kaXIgcHJvZmlsZSkgc2VwIChsaWJkaXItbmFtZS0+cHJlZml4Cj4gKHBrZy1uYW1lLT5saWJk aXItbmFtZSBuYW1lKSkpKQo+IMKgCj4gwqAoZGVmaW5lKiAodW5wYWNrICM6a2V5IHNvdXJjZSAj OmFsbG93LW90aGVyLWtleXMpCj4gLcKgICJVbnBhY2sgU09VUkNFIGluIHRoZSB3b3JraW5nIGRp cmVjdG9yeSwgYW5kIGNoYW5nZSBkaXJlY3RvcnkKPiB3aXRoaW4gdGhlCj4gLXNvdXJjZS7CoCBX aGVuIFNPVVJDRSBpcyBhIGRpcmVjdG9yeSwgY29weSBpdCBpbiBhIHN1Yi1kaXJlY3Rvcnkgb2YK PiB0aGUgY3VycmVudAo+IC13b3JraW5nIGRpcmVjdG9yeS4iCj4gLcKgIChsZXQgKChnbnUtdW5w YWNrIChhc3NvYy1yZWYgZ251OiVzdGFuZGFyZC1waGFzZXMgJ3VucGFjaykpKQo+IC3CoMKgwqAg KGdudS11bnBhY2sgIzpzb3VyY2Ugc291cmNlKQo+IC3CoMKgwqAgOzsgUGFja2FnZXMgZnJvbSBo ZXgucG0gdHlwaWNhbGx5IGhhdmUgYSBjb250ZW50cy50YXIuZ3oKPiBjb250YWluaW5nIHRoZQo+ IC3CoMKgwqAgOzsgYWN0dWFsIHNvdXJjZS4gSWYgdGhpcyB0YXIgZmlsZSBleGlzdHMsIGV4dHJh Y3QgaXQuCj4gLcKgwqDCoCAod2hlbiAoZmlsZS1leGlzdHM/ICJjb250ZW50cy50YXIuZ3oiKQo+ IC3CoMKgwqDCoMKgIChpbnZva2UgInRhciIgInh2ZiIgImNvbnRlbnRzLnRhci5neiIpKSkpCj4g LQo+IC0oZGVmaW5lKiAoYnVpbGQgIzprZXkgKHJlYmFyLWZsYWdzICcoKSkgIzphbGxvdy1vdGhl ci1rZXlzKQo+ICvCoCAoaWYgKGZpbGUtaXMtZGlyZWN0b3J5PyBzb3VyY2UpCj4gK8KgwqDCoMKg wqAgOzsgSWYgc291cmNlIGlzIGEgY2hlY2tvdXQ6Cj4gK8KgwqDCoMKgwqAgKGJlZ2luCj4gK8Kg wqDCoMKgwqDCoMKgIDs7IFByZXNlcnZlIHRpbWVzdGFtcHMgKHNldCB0byB0aGUgRXBvY2gpIG9u IHRoZSBjb3BpZWQgdHJlZQo+IHNvIHRoYXQKPiArwqDCoMKgwqDCoMKgwqAgOzsgdGhpbmdzIHdv cmsgZGV0ZXJtaW5pc3RpY2FsbHkuCj4gK8KgwqDCoMKgwqDCoMKgIChjb3B5LXJlY3Vyc2l2ZWx5 IHNvdXJjZSAiLiIgIzprZWVwLW10aW1lPyAjdCkKPiArwqDCoMKgwqDCoMKgwqAgOzsgTWFrZSB0 aGUgc291cmNlIGNoZWNrb3V0IGZpbGVzIHdyaXRhYmxlLCBmb3IgY29udmVuaWVuY2UuCj4gK8Kg wqDCoMKgwqDCoMKgIChmb3ItZWFjaCAobGFtYmRhIChmKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZmFsc2UtaWYtZXhjZXB0aW9uIChtYWtlLWZpbGUtd3JpdGFi bGUgZikpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmaW5kLWZpbGVz ICIuIikpKQo+ICsKPiArwqDCoMKgwqDCoCA7OyBJZiBzb3VyY2UgaXMgYW4gaGV4LnBtIGFyY2hp dmU6Cj4gK8KgwqDCoMKgwqAgKGJlZ2luCj4gK8KgwqDCoMKgwqDCoMKgIChpbnZva2UgInRhciIg Inh2ZiIgc291cmNlKQo+ICvCoMKgwqDCoMKgwqDCoCAoaW52b2tlICJ0YXIiICJ4dmYiICJjb250 ZW50cy50YXIuZ3oiKQo+ICsKPiArwqDCoMKgwqDCoMKgwqAgOzsgUHJldmVudCBhbiBlcnJvciBt ZXNzYWdlIGR1cmluZyB0aGUgaW5zdGFsbCBwaGFzZS4KPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKg IGByZWJhcjMgY29tcGlsZScgcHJvZHVjZXMgc3ltbGlua3MgbGlrZSBzbyBpbiBfYnVpbGQvOgo+ ICvCoMKgwqDCoMKgwqDCoCA7O8KgwqDCoMKgwqAgcHJpdiAtPiAuLi8uLi8uLi8uLi9wcml2Cj4g K8KgwqDCoMKgwqDCoMKgIDs7wqDCoMKgwqDCoCBpbmNsdWRlIC0+IC4uLy4uLy4uLy4uL2luY2x1 ZGUKPiArwqDCoMKgwqDCoMKgwqAgOzsKPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKgIFRoZSBpbnN0 YWxsIHBoYXNlIGNvcGllcyB3aGF0ZXZlciBoYXMgYmVlbiBidWlsdCB0byB0aGUKPiBvdXRwdXQg ZGlyZWN0b3J5Lgo+ICvCoMKgwqDCoMKgwqDCoCA7O8KgwqAgSWYgdGhlIHByaXYvIGRpcmVjdG9y eSBpcyBhYnNlbnQsIHRoZW4gYW4gZXJyb3IgYGkvbwo+IGVycm9yOgo+ICvCoMKgwqDCoMKgwqDC oCA7O8KgwqAgX2J1aWxkL+KApi9wcml2OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBvY2N1 cnMuIFNvLAo+IHdlIG1ha2Ugc3VyZSB0aGF0IGEKPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKgIGRp cmVjdG9yeSBleGlzdHMuCj4gK8KgwqDCoMKgwqDCoMKgIChmb3ItZWFjaCAobGFtYmRhIChkaXIp IChta2Rpci1wIGRpcikpIChsaXN0ICJwcml2Igo+ICJpbmNsdWRlIikpKSkpClVobSwgaG93IGFy ZSB5b3UgaW1wcm92aW5nIHRoZSBzdGF0dXMgcXVvIGhlcmU/Cgo+ICsKPiArKGRlZmluZSAoY29u ZmlndXJlLUhPTUUgLiBpZ25vcmVkX2FyZ3MpCkp1c3QgXyBpcyBmaW5lIGZvciBpZ25vcmVkIGFy Z3VtZW50cy4KPiArwqAgIkluIHNvbWUgY2FzZXMsIGl0IGlzIG5lZWRlZCBmb3IgdGhlIGVudmly b25tZW50IHZhcmlhYmxlIEhPTUUgdG8KPiBiZSBkZWZpbmVkCj4gK2FzIGEgZGlyZWN0b3J5IHdp dGggd3JpdGUgcGVybWlzc2lvbi4gRXhhbXBsZXMgb2YgZXJyb3JzOgo+ICsKPiArQ291bGQgbm90 IHdyaXRlIHRvIFwiL2hvbWVsZXNzLXNoZWx0ZXIvLmNhY2hlL3JlYmFyMy9oZXhcIi4gUGxlYXNl Cj4gZW5zdXJlIHRoZSBwYXRoIGlzIHdyaXRlYWJsZS4KPiArIgo+ICvCoCAobGV0ICgoSE9NRSAi SE9NRSIpCj4gK8KgwqDCoMKgwqDCoMKgICh0bXAgIi90bXAiKSkKPiArwqDCoMKgIChzZXRlbnYg SE9NRSB0bXApCj4gK8KgwqDCoCAoZm9ybWF0ICN0ICJ+YT1+YVxuIiBIT01FIHRtcCkpKQpUaGUg Y2Fub25pY2FsIHdheSBpcyB0byB1c2UgKGdldGN3ZCkgYXMgSE9NRS4gIFlvdSBjYW4gY291bGQg YWxzbyB0cnkKc29tZXRoaW5nIGxpa2UgKGNhbm9uaWNhbGl6ZS1wYXRoICIuLi9oZXhwbS1ob21l IikuICBBbnlob3csIHlvdSBtaWdodAp3YW50IHRvIHRyeSB1c2luZyBhIHZhcmlhYmxlIHRoYXQg aXMgbGVzcyBnbG9iYWwgdGhhbiBIT01FLgoKPiArKGRlZmluZSogKGNvbmZpZ3VyZS1kZXBlbmRl bmNpZXMgIzprZXkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5zdGFsbC1wcm9maWxlICJkZWZhdWx0IikKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNlcy1lcmxhbmcgO0xp c3Qgb2YgU291cmNlLgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZlcnNpb24KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVy LWtleXMpCj4gK8KgICJSZWJhcjMgcmVmdXNlcyB0byBjb21waWxlIHdpdGhvdXQgbmV0d29yayBh Y2Nlc3MgdW5sZXNzIGl0cwo+IGRlcGVuZGVuY2llcyBhcmUKPiArcHJlc2VudCBhcyBzb3VyY2Ug Y2hlY2tvdXRzLiBUbyBwcmV2ZW50IHVubmVjZXNzYXJ5IGNvbXBpbGF0aW9ucywgd2UKPiBtdXN0 IMKrCj4gK3ByZS1pbnN0YWxsIMK7IGRlcGVuZGVuY2llcyBpbiBSZWJhcidzIGJ1aWxkIGRpcmVj dG9yeS4iCkkgc3VnZ2VzdCBub3QgdXNpbmcgZnJlbmNoIHF1b3RlcyDigJMgdGhleSBhcmUgY29u ZnVzaW5nIGJldHdlZW4gRnJlbmNoCmFuZCBHZXJtYW4gbmF0aXZlIHNwZWFrZXJzIDopCllvdSBt aWdodCB3YW50IHRvIGxvb2sgaW50byBwb3NzaWJsZSBQQVRIIHZhcmlhYmxlcyBvciBwdXQgdGhl c2UKc291cmNlcyBpbnRvIGEgc3BlY2lhbCBmb2xkZXIgc28gdGhhdCB5b3UgY2FuIHVzZSBzZWFy Y2gtcGF0aC1hcy1saXN0LgoKQWxzbywgSUlVQyBlcmxhbmctZGVwZW5kcyBhbHJlYWR5IGRvZXMg c29tZXRoaW5nIHJhdGhlciBzaW1pbGFyLiAgSXMKdGhlcmUgYW55IHJlYXNvbiBpdCdzIGJyb2tl biBmb3IgeW91Pwo+ICsKPiArwqAgOzsgSWYgc291cmNlIGluIHNvdXJjZXMtZXJsYW5nLCB0aGVu IGluc3RhbGwgaXQgdW5kZXIgX2NoZWNrb3V0cy8uCj4gK8KgIChsZXQgKChfY2hlY2tvdXRzICJf Y2hlY2tvdXRzIikpCj4gK8KgwqDCoCAobWtkaXItcCBfY2hlY2tvdXRzKQo+ICsKPiArwqDCoMKg IChkZWZpbmUgKGluc3RhbGwtc291cmNlIHNvdXJjZSkKPiArwqDCoMKgwqDCoCAiSW5zdGFsbCB0 aGUgU291cmNlIFNPVVJDRSBpbiBfY2hlY2tvdXRzLiIKPiArwqDCoMKgwqDCoCAobWF0Y2ggc291 cmNlCj4gK8KgwqDCoMKgwqDCoMKgICgobmFtZSBwYXRoKQo+ICvCoMKgwqDCoMKgwqDCoMKgIChs ZXQgKChzcmMgKHN0cmluZy1hcHBlbmQgX2NoZWNrb3V0cyBzZXAgbmFtZSkpKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoCAobWtkaXItcCBzcmMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICh3aXRo LWRpcmVjdG9yeS1leGN1cnNpb24gc3JjICh1bnBhY2sgIzpzb3VyY2UgcGF0aCkpKSkKPiArwqDC oMKgwqDCoMKgwqAgKF8gI2YpKSkKPiArCj4gK8KgwqDCoCAoZm9yLWVhY2ggaW5zdGFsbC1zb3Vy Y2Ugc291cmNlcy1lcmxhbmcpKQo+ICsKPiArwqAgOzsgSWYgaW5wdXQgaW4gaW5wdXRzIGlzIGFu IEVybGFuZyBwYWNrYWdlLCB0aGVuIGluc3RhbGwgaXQgdW5kZXIKPiBfYnVpbGQvLgo+ICvCoCAo bGV0ICgoX2J1aWxkIChmb3JtYXQgI2YgIl9idWlsZC9+YS9jaGVja291dHMiIGluc3RhbGwtcHJv ZmlsZSkpKQo+ICvCoMKgwqAgKG1rZGlyLXAgX2J1aWxkKQo+ICsKPiArwqDCoMKgIChkZWZpbmUg KGluc3RhbGwtbGliZGlyIGVsaWIgbmFtZSBkZXN0KQo+ICvCoMKgwqDCoMKgICJJbnN0YWxsIHRo ZSBsaWJyYXJ5IGRpcmVjdG9yeSBuYW1lZCBOQU1FIGZyb20gRUxJQiB0byBERVNULiIKPiArwqDC oMKgwqDCoCAobGV0ICgoc3JjIChzdHJpbmctYXBwZW5kIGVsaWIgc2VwIG5hbWUpKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChkZXN0IChzdHJpbmctYXBwZW5kIGRlc3Qgc2VwIChsaWJkaXIt bmFtZS0+cHJlZml4Cj4gbmFtZSkpKSkKPiArwqDCoMKgwqDCoMKgwqAgKGNvcHktcmVjdXJzaXZl bHkgc3JjIGRlc3QpCj4gK8KgwqDCoMKgwqDCoMKgIChta2Rpci1wIChzdHJpbmctYXBwZW5kIGRl c3QgIi9wcml2IikpKSkKPiArCj4gK8KgwqDCoCAoZGVmaW5lIChpbnN0YWxsLWFsbC1saWJkaXJz IGRpciBkZXN0KQo+ICvCoMKgwqDCoMKgICJJbnN0YWxsIGluIERFU1QgYWxsIGxpYnJhcnkgZGly ZWN0b3JpZXMgaW4gRElSLiIKPiArwqDCoMKgwqDCoCAobGV0ICgoZWxpYiAoc3RyaW5nLWFwcGVu ZCBkaXIgc2VwIGxpYi1lcmxhbmctbGliKSkpCj4gK8KgwqDCoMKgwqDCoMKgICh3aGVuIChkaXJl Y3RvcnktZXhpc3RzPyBlbGliKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKGZvci1lYWNoIChsYW1i ZGEgKG5hbWUpIChpbnN0YWxsLWxpYmRpciBlbGliIG5hbWUgZGVzdCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsaXN0LWRpcmVjdG9yaWVzIGVsaWIpKSkpKQo+ ICsKPiArwqDCoMKgIChtYXRjaCBpbnB1dHMKPiArwqDCoMKgwqDCoCAoKChfIC4gZGlycykgLi4x KQo+ICvCoMKgwqDCoMKgwqAgKGZvci1lYWNoCj4gK8KgwqDCoMKgwqDCoMKgIChsYW1iZGEgKGRp cikgKGluc3RhbGwtYWxsLWxpYmRpcnMgZGlyIF9idWlsZCkpCj4gK8KgwqDCoMKgwqDCoMKgIGRp cnMpKQo+ICvCoMKgwqDCoMKgIChfICNmKSkpKQo+ICsKPiArKGRlZmluZSogKGJ1aWxkICM6a2V5 IG5hbWUgKHJlYmFyLWZsYWdzICcoKSkgIzphbGxvdy1vdGhlci1rZXlzKQo+IMKgwqAgKGFwcGx5 IGludm9rZSBgKCJyZWJhcjMiICJjb21waWxlIiAsQHJlYmFyLWZsYWdzKSkpCj4gwqAKPiAtKGRl ZmluZSogKGNoZWNrICM6a2V5IHRhcmdldCAocmViYXItZmxhZ3MgJygpKSAodGVzdHM/IChub3Qg dGFyZ2V0KSkKPiArKGRlZmluZSogKGNoZWNrICM6a2V5IHRhcmdldAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKHJlYmFyLWZsYWdzICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICh0ZXN0cz8gKG5vdCB0YXJnZXQpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICh0ZXN0LXRhcmdldCAiZXVuaXQiKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cykKPiDCoMKgIChpZiB0ZXN0cz8KPiDCoMKg wqDCoMKgwqAgKGFwcGx5IGludm9rZSBgKCJyZWJhcjMiICx0ZXN0LXRhcmdldCAsQHJlYmFyLWZs YWdzKSkKPiDCoMKgwqDCoMKgwqAgKGZvcm1hdCAjdCAidGVzdCBzdWl0ZSBub3QgcnVufiUiKSkp Cj4gwqAKPiAtKGRlZmluZSAoZXJsYW5nLXBhY2thZ2U/IG5hbWUpCj4gLcKgICJDaGVjayBpZiBO QU1FIGNvcnJlc3BvbmQgdG8gdGhlIG5hbWUgb2YgYW4gRXJsYW5nIHBhY2thZ2UuIgo+IC3CoCAo c3RyaW5nLXByZWZpeD8gImVybGFuZy0iIG5hbWUpKQo+IC0KPiAtKGRlZmluZSAocGFja2FnZS1u YW1lLXZlcnNpb24tPmVybGFuZy1uYW1lIG5hbWUrdmVyKQo+IC3CoCAiQ29udmVydCB0aGUgR3Vp eCBwYWNrYWdlIE5BTUUtVkVSIHRvIHRoZSBjb3JyZXNwb25kaW5nIEVybGFuZwo+IG5hbWUtdmVy c2lvbgo+IC1mb3JtYXQuwqAgRXNzZW50aWFsbHkgZHJvcCB0aGUgcHJlZml4IHVzZWQgaW4gR3Vp eCBhbmQgcmVwbGFjZSBkYXNoZXMKPiBieQo+IC11bmRlcnNjb3Jlcy4iCj4gLcKgIChsZXQqICgo bmFtZS0gKHBhY2thZ2UtbmFtZS0+bmFtZSt2ZXJzaW9uIG5hbWUrdmVyKSkpCj4gLcKgwqDCoCAo c3RyaW5nLWpvaW4KPiAtwqDCoMKgwqAgKHN0cmluZy1zcGxpdAo+IC3CoMKgwqDCoMKgIChpZiAo ZXJsYW5nLXBhY2thZ2U/IG5hbWUtKcKgIDsgY2hlY2tzIGZvciAiZXJsYW5nLSIgcHJlZml4Cj4g LcKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5nLWRyb3AgbmFtZS0gKHN0cmluZy1sZW5ndGggImVy bGFuZy0iKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgIG5hbWUtKQo+IC3CoMKgwqDCoMKgICNcLSkK PiAtwqDCoMKgwqAgIl8iKSkpCj4gLQo+IC0oZGVmaW5lIChsaXN0LWRpcmVjdG9yaWVzIGRpcmVj dG9yeSkKPiAtwqAgIlJldHVybiBmaWxlIG5hbWVzIG9mIHRoZSBzdWItZGlyZWN0b3J5IG9mIERJ UkVDVE9SWS4iCj4gLcKgIChzY2FuZGlyIGRpcmVjdG9yeQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oCAobGFtYmRhIChmaWxlKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFuZCAobm90ICht ZW1iZXIgZmlsZSAnKCIuIiAiLi4iKSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGZpbGUtaXMtZGlyZWN0b3J5PyAoc3RyaW5nLWFwcGVuZCBkaXJlY3RvcnkgIi8iCj4g ZmlsZSkpKSkpKQo+IC0KPiAtKGRlZmluZSogKGluc3RhbGwgIzprZXkgbmFtZSBvdXRwdXRzCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtbmFtZSAocGFja2Fn ZS1uYW1lLXZlcnNpb24tPmVybGFuZy1uYW1lCj4gbmFtZSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtcHJvZmlsZSAiZGVmYXVsdCIpIDsgYnVpbGQgcHJv ZmlsZQo+IG91dHB1dHMgdG8gaW5zdGFsbAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cykKPiAtwqAgKGxldCogKChvdXQgKGFzc29jLXJlZiBv dXRwdXRzICJvdXQiKSkKPiAtwqDCoMKgwqDCoMKgwqDCoCAocGtnLWRpciAoc3RyaW5nLWFwcGVu ZCBvdXQgJWVybGFuZy1saWJkaXIgIi8iIGluc3RhbGwtCj4gbmFtZSkpKQo+IC3CoMKgwqAgKGxl dCAoKGJpbi1kaXIgKHN0cmluZy1hcHBlbmQgIl9idWlsZC8iIGluc3RhbGwtcHJvZmlsZSAiL2Jp biIpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqAgKGxpYi1kaXIgKHN0cmluZy1hcHBlbmQgIl9idWls ZC8iIGluc3RhbGwtcHJvZmlsZQo+ICIvbGliIikpKQo+IC3CoMKgwqDCoMKgIDs7IGluc3RhbGwg X2J1aWxkL1BST0ZJTEUvYmluCj4gLcKgwqDCoMKgwqAgKHdoZW4gKGZpbGUtZXhpc3RzPyBiaW4t ZGlyKQo+IC3CoMKgwqDCoMKgwqDCoCAoY29weS1yZWN1cnNpdmVseSBiaW4tZGlyIG91dCAjOmZv bGxvdy1zeW1saW5rcz8gI3QpKQo+IC3CoMKgwqDCoMKgIDs7IGluc3RhbGwgX2J1aWxkL1BST0ZJ TEUvbGliLyove2ViaW4saW5jbHVkZSxwcml2fQo+IC3CoMKgwqDCoMKgIChmb3ItZWFjaAo+IC3C oMKgwqDCoMKgwqAgKGxhbWJkYSAoKikKPiAtwqDCoMKgwqDCoMKgwqDCoCAoZm9yLWVhY2gKPiAt wqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEgKGRpcm5hbWUpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGxldCAoKHNyYy1kaXIgKHN0cmluZy1hcHBlbmQgbGliLWRpciAiLyIgKiAiLyIKPiBk aXJuYW1lKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZHN0LWRpciAo c3RyaW5nLWFwcGVuZCBwa2ctZGlyICIvIiBkaXJuYW1lKSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICh3aGVuIChmaWxlLWV4aXN0cz8gc3JjLWRpcikKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChjb3B5LXJlY3Vyc2l2ZWx5IHNyYy1kaXIgZHN0LWRpciAjOmZvbGxv dy1zeW1saW5rcz8KPiAjdCkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmYWxzZS1p Zi1leGNlcHRpb24KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRlLWZpbGUg KHN0cmluZy1hcHBlbmQgZHN0LWRpcgo+ICIvLmdpdGlnbm9yZSIpKSkpKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqAgJygiZWJpbiIgImluY2x1ZGUiICJwcml2IikpKQo+IC3CoMKgwqDCoMKgwqAgKGxp c3QtZGlyZWN0b3JpZXMgbGliLWRpcikpCj4gLcKgwqDCoMKgwqAgKGZhbHNlLWlmLWV4Y2VwdGlv bgo+IC3CoMKgwqDCoMKgwqAgKGRlbGV0ZS1maWxlIChzdHJpbmctYXBwZW5kIHBrZy1kaXIgIi9w cml2L1J1bi1ldW5pdC0KPiBsb29wLmV4cGVjdCIpKSkpKSkKPiArKGRlZmluZSogKGluc3RhbGwg IzprZXkgbmFtZSBvdXRwdXRzIChpbnN0YWxsLXByb2ZpbGUgImRlZmF1bHQiKQo+ICM6YWxsb3ct b3RoZXIta2V5cykKPiArwqAgKGxldCogKChzcmMgKHBrZy1uYW1lLT5idWlsZC1kaXIgbmFtZSAj OnByb2ZpbGUgaW5zdGFsbC1wcm9maWxlKSkKPiArwqDCoMKgwqDCoMKgwqDCoCAoZGVzdCAoc3Ry aW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VwIGxpYi1lcmxhbmct bGliIHNlcAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChwa2ctbmFtZS0+bGliZGlyLW5hbWUgbmFtZSkpKSkKPiArwqDCoMKgICht a2Rpci1wIGRlc3QpCj4gK8KgwqDCoCAoY29weS1yZWN1cnNpdmVseSBzcmMgZGVzdCAjOmZvbGxv dy1zeW1saW5rcz8gI3QpKSkKPiDCoAo+IMKgKGRlZmluZSAlc3RhbmRhcmQtcGhhc2VzCj4gwqDC oCAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwo+IMKgwqDCoMKgIChyZXBsYWNl ICd1bnBhY2sgdW5wYWNrKQo+ICvCoMKgwqAgKGFkZC1hZnRlciAndW5wYWNrICdjb25maWd1cmUt SE9NRSBjb25maWd1cmUtSE9NRSkKPiDCoMKgwqDCoCAoZGVsZXRlICdib290c3RyYXApCj4gwqDC oMKgwqAgKGRlbGV0ZSAnY29uZmlndXJlKQo+IC3CoMKgwqAgKGFkZC1iZWZvcmUgJ2J1aWxkICdl cmxhbmctZGVwZW5kcyBlcmxhbmctZGVwZW5kcykKPiArwqDCoMKgIChhZGQtYmVmb3JlICdidWls ZCAnY29uZmlndXJlLWRlcGVuZGVuY2llcyBjb25maWd1cmUtCj4gZGVwZW5kZW5jaWVzKQo+IMKg wqDCoMKgIChyZXBsYWNlICdidWlsZCBidWlsZCkKPiDCoMKgwqDCoCAocmVwbGFjZSAnY2hlY2sg Y2hlY2spCj4gwqDCoMKgwqAgKHJlcGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkpKQo+IMKgCj4gLShk ZWZpbmUqIChyZWJhci1idWlsZCAjOmtleSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2Vz KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1v dGhlci1rZXlzICM6cmVzdCBhcmdzKQo+ICsoZGVmaW5lKiAocmViYXItYnVpbGQgIzprZXkgaW5w dXRzIChwaGFzZXMgJXN0YW5kYXJkLXBoYXNlcykKPiAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3MpCj4gwqDCoCAiQnVpbGQgdGhlIGdpdmVuIEVybGFuZyBwYWNrYWdlLCBhcHBseWluZyBh bGwgb2YgUEhBU0VTIGluIG9yZGVyLiIKPiDCoMKgIChhcHBseSBnbnU6Z251LWJ1aWxkICM6aW5w dXRzIGlucHV0cyAjOnBoYXNlcyBwaGFzZXMgYXJncykpCj4gKwo+ICs7OzsgcmViYXItYnVpbGQt c3lzdGVtLnNjbSBlbmRzIGhlcmUKPiAKPiBiYXNlLWNvbW1pdDogNGRmYmM1MzY2ODliMDdlNTZh ZWFkM2RkODY0YjhhZjU0NjEzZDA5MQo+IC0tCj4gMi40MS4wCkNoZWVycwo= From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 02/32] gnu: erlang updated. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 19:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986073942965 (code B ref 66801); Sun, 29 Oct 2023 19:24:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 19:23:14 +0000 Received: from localhost ([127.0.0.1]:43379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBNS-0000lk-1w for submit@debbugs.gnu.org; Sun, 29 Oct 2023 15:23:14 -0400 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]:58827) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBNO-0000lU-PV for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 15:23:12 -0400 Received: by mail-ed1-x541.google.com with SMTP id 4fb4d7f45d1cf-53f9af41444so6388386a12.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 12:22:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698607352; x=1699212152; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=JjyZlKmBgtvtvBcAtix0iu6uR2lxnWyFu7LasrWwSbg=; b=UTAz4F6Bli84E4eJ13X3LVzyL3SSllBxyzn3x177IgL34xoX9CPGoc82e+Dq86ZImV KU/6gJmFA3hVF5Sqxxu5wJR9rEI9A1bSi3Q0KdpPrDtBAt4RgkwqJO4KykIvdlRcaPH1 i0dxhdpr65tXMn/jwtkchDTY6nqmmP+Ne61TjcTom9nnF9ueSyVyS6rmDCnaRUe5eCM1 C1xrJU/i9WA2L/t0b2i5TMrqlwp8qnPH8Efto2T3IBviKbhBtu07YuJDXf+iA+36RQbM L62n0JQLpl0lFNHFdSkabu8F4gXBIDl7U7/Dhugzi3ZHUssXmOVLPJtrnEaqwC6EYlGL 8aYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698607352; x=1699212152; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JjyZlKmBgtvtvBcAtix0iu6uR2lxnWyFu7LasrWwSbg=; b=RLJH29glCWIPCJ1pGC8dhXReoD1ObBt4zVD4o7TDwA50eCht1gC0sTE3ljwrKYWUUM NHQWqz6U8BrtQHV2EOFeGddiKYQFEWYJb+ctW6vo6/GPAq9/ol9whB/9+yJVhmAudb7K fulmvtXCkl6YycRcDEoLkq91e7aam+SkcnuiBcEyagvVYp2sskRS1mhCaS3X9YF1rqbc Ne/Cg5JAZL9nmhb1x03fYAQKxuto1D3SKGCwhlyHHngh3UY0/dKL+Zbny+p+/YvLUrn6 Q3Nm1Htgh3+yG0T8KU9xLB7piyEYqzKMbQPLQKPmkNmaflxfel1e2GmL7yHRAIxAlF7P 3vdQ== X-Gm-Message-State: AOJu0Yy+Ev34JF1XBfpMnTVgrul7bCajEMn9VSba7MCgLtBG5xMyg/kt o73P63WIxLobLRA9CV4gE9o= X-Google-Smtp-Source: AGHT+IHu+J2HLe1rnOaPv0h1GfZew0TArVY++INgRWEp3d30sFukIF0zthHy7y4mqt/1BMFSo3AWmw== X-Received: by 2002:aa7:db4b:0:b0:540:2011:c3b7 with SMTP id n11-20020aa7db4b000000b005402011c3b7mr5619431edt.42.1698607351998; Sun, 29 Oct 2023 12:22:31 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id fi23-20020a056402551700b00542d3e470f9sm3230908edb.10.2023.10.29.12.22.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 12:22:31 -0700 (PDT) Message-ID: <6b3ad269ac93de275c0f2b2b2b1a52359bab602a.camel@gmail.com> From: Liliana Marie Prikler Date: Sun, 29 Oct 2023 20:22:30 +0100 In-Reply-To: <6e5850df7e25c79f44d9f9038fce595cd209878a.1698590244.git.phfrohring@deeplinks.com> References: <6e5850df7e25c79f44d9f9038fce595cd209878a.1698590244.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Sonntag, dem 29.10.2023 um 15:36 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Wrapped Erlang programs (`erl`, `erlc`, `escript`) now prepend > ERL_LIBS with > GUIX_ERL_LIBS. Reference: > https://www.erlang.org/doc/man/code#code-path. The > `native-search-paths` field in the package specification sets > GUIX_ERL_LIBS, > which aggregates all compiled libraries for Erlang and Elixir, akin > to the > functionality of GUIX_PYTHONPATH. You're missing a ChangeLog, plus this patch appears to be making two changes at once =E2=80=93 one described here, the other seemingly stylistic= . Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 03/32] gnu: erlang-certifi: moved to erlang-xyz.scm Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 19:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986075843342 (code B ref 66801); Sun, 29 Oct 2023 19:27:01 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 19:26:24 +0000 Received: from localhost ([127.0.0.1]:43391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBQV-0000rq-VA for submit@debbugs.gnu.org; Sun, 29 Oct 2023 15:26:24 -0400 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]:51397) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBQQ-0000rX-SN for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 15:26:22 -0400 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-9adca291f99so560958166b.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 12:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698607540; x=1699212340; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=uQ/6fFS08+WCSEcD9VXZi4YNSSgtOITFExL5Zuo3iJM=; b=k8vugEoLwFxRrBAoCXCgN/hTdiPI8gZ4mP9a+rHxyLGetoBwvEiJv15A23lMlFQLcX ROrj/0t/DxX70j955f9n5tKuNj9maC21QpUbe/W5BDhR7Je1GS3wdzdqqt8iFt/A9hik hJHcFUes2ACTzs6dFQvBjxe0AaW3BGFJ2OGSQQbpKuvBXjz5UhioesXprh5bpuCN1pT8 dlo9+yUH45QD+DW1EknVeudeQvO1SpG5wh86tpJZjNWv/qvAE8M5drb+J8buG4C3rxxm OHMovmHBYANrUVSf+SVlwrm0vy0hyh51ynrCDZprRXEAl0T+XFenAOgr1koDs5vlXLa/ DQrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698607540; x=1699212340; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uQ/6fFS08+WCSEcD9VXZi4YNSSgtOITFExL5Zuo3iJM=; b=Sko5eg8cJJi5EoplapHt2CfxjkB6vMRJChy98AZkvPPDlMIN7t0zDx/x/zipUlOVkQ aF26ERMvVSC5bcj8g0TYlQxKvj45aZXQSEHlEfmBb92Hv44r0kWvmEJsVhWOXFH4V9IJ GZYVYFejoSGBcI32E/h/KpUMUryXEbbAVkN0gqcsd81+9t8Fmqr88hVdC8FxY8UDumx2 eehC0n21BmViln6gPX9NqLBBv5CngIHrdBlaqPJ7dcmF8wBR3XGGgp5qpuB1Y3rD0+vC rq3T/7es1q0Ey7Ixv/adKB9Erq5SdXDLuZwh5YK5Pr7yFIWisjhjmmORPfROC3s2UQ72 5FAQ== X-Gm-Message-State: AOJu0YxgpaD/pqR1a+JKrJ6ujFuFBcxoGFiJb9kXblvmNEXuK4lEbmtA lwVucpZ3w5xKQHcFGhtvO84= X-Google-Smtp-Source: AGHT+IFKq5Nz21wT/jU3ebLXS/P2Pyh64n26Fr/KxmHLgo9eVWOZPZ7QqTEVSG+C8BwuFYAyS3UoYQ== X-Received: by 2002:a17:907:3da8:b0:9c3:bd63:4245 with SMTP id he40-20020a1709073da800b009c3bd634245mr6749226ejc.47.1698607540169; Sun, 29 Oct 2023 12:25:40 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id hb26-20020a170906b89a00b009ae3e6c342asm4802669ejb.111.2023.10.29.12.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 12:25:39 -0700 (PDT) Message-ID: <76b0596075a2d12407faf6fd3d734e0f4ca69e64.camel@gmail.com> From: Liliana Marie Prikler Date: Sun, 29 Oct 2023 20:25:38 +0100 In-Reply-To: <7c58f0885d71a76a852380230a2563eaf9508002.1698590244.git.phfrohring@deeplinks.com> References: <7c58f0885d71a76a852380230a2563eaf9508002.1698590244.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Sonntag, dem 29.10.2023 um 15:36 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Change-Id: I7491af542af5ffb2d82b5555675f4f7dbef167af Missing ChangeLog. > --- > =C2=A0gnu/packages/erlang-xyz.scm | 62 > +++++++++++++++++++++++++++++++++++++ > =C2=A0gnu/packages/erlang.scm=C2=A0=C2=A0=C2=A0=C2=A0 | 25 +-------------= - > =C2=A02 files changed, 63 insertions(+), 24 deletions(-) > =C2=A0create mode 100644 gnu/packages/erlang-xyz.scm >=20 > diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang- > xyz.scm > new file mode 100644 > index 00000000..444fa648 > --- /dev/null > +++ b/gnu/packages/erlang-xyz.scm > @@ -0,0 +1,62 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2023 Pierre-Henry Fr=C3=B6hring > > +;;; Don't forget to carry over all other relevant copyright headers.=20 Likewise for the following patches. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 06/32] gnu: erlang-rebar3-git-vsn: moved to erlang-xyz.scm Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 19:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986079274072 (code B ref 66801); Sun, 29 Oct 2023 19:33:01 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 19:32:07 +0000 Received: from localhost ([127.0.0.1]:43403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBW3-00013c-6Y for submit@debbugs.gnu.org; Sun, 29 Oct 2023 15:32:07 -0400 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]:44179) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBW1-000131-OG for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 15:32:06 -0400 Received: by mail-ej1-x641.google.com with SMTP id a640c23a62f3a-9a6190af24aso599224466b.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 12:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698607887; x=1699212687; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=RF3r5Kt3eUs2CfItehaGoKVN0lbfiPlewPyCtndSkEk=; b=Nj2wqxurHAYpppxQQ8JAUkHJNBt6PyttI/3tIUdFaWEG1psxsHDAVf0QxHg7aMt8ZE OEDw7wyFTbSsiEsn1xwu9NI7IckYAaZIKr2kYKCpqFeCe64w2V5vg71YBD84h+ao/QCb nBqtAAioZ54Q2ETe/19I1LFiJ/oIcUk9eyJ+d6Niu1d4gDPyAMBOQFN3KUKMIdo9qwG1 D03V4Fo51agap1inLpduspeI61UfqirUac+GREBdl6FCZgCyhdZBeNC8ZkjSbuZwbQiv jy2leQ3TVCbueX3B0JUxD/uilR+W8URvK4WWO/rFTfGo1Il4nr/V4IZQ4nxHObmIhvsr JttQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698607887; x=1699212687; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RF3r5Kt3eUs2CfItehaGoKVN0lbfiPlewPyCtndSkEk=; b=iku9gRSkI0Dv8yulXabvmIKy/5KGcjgHDC/+5uxB1h5oVarGXAkyzVfM/rnY5SDL3s F8fc9SqEr1dn+zPFncbviYksFNTtyMWxhrKmr0XVlzuxAI5tMjr30SBQhj4CHSuiNBFX CkWFA6nRt0yyHxg3Ti1Yta4fYmRNs1H0Sq/3brvNSU6dnBhaFW4NDUZRxkquX0GFd1kw 1lVvTl7x4lYb+Zz8qPTUAbfvap+om86XTR46vFwljbNOJy6MfT4+xiDRjWXVko6s2j0R h0AAzIzRruTTseb+bzgmAsy5Hd0I437CYmaiyocCkYbHi9pz1//ahnIapLoOkpatzdl8 JTEw== X-Gm-Message-State: AOJu0Ywg9C6DEyjFA3KsAQItdv4TmjAIwMEpjFiWsky8K93yctMzA7+5 N6MFkZ675btb8PZDhu284FCCwKe5n7RbmQ== X-Google-Smtp-Source: AGHT+IHk4h1x13o4+rnw55drtDPBK4d+8O/UQrLoSPjIvaz/ExrJg6/CynSkgKtrSeRmiVdl9WbzVg== X-Received: by 2002:a17:906:db0d:b0:9c7:58cd:b57 with SMTP id xj13-20020a170906db0d00b009c758cd0b57mr7348856ejb.37.1698607887063; Sun, 29 Oct 2023 12:31:27 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id hu11-20020a170907a08b00b009d22a1422a7sm2410351ejc.42.2023.10.29.12.31.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 12:31:26 -0700 (PDT) Message-ID: <23f237231ad267458865ebb4a077d2697bf2d7a6.camel@gmail.com> From: Liliana Marie Prikler Date: Sun, 29 Oct 2023 20:31:25 +0100 In-Reply-To: <44bec23d6d48ecc169f1bec65a465edd7c32e973.1698590244.git.phfrohring@deeplinks.com> References: <44bec23d6d48ecc169f1bec65a465edd7c32e973.1698590244.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Sonntag, dem 29.10.2023 um 15:36 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Change-Id: I5a743e71b2034ba1cfe71fe6121137b3194befed > --- Depending on how many packages you want to add, you might want to do an even stronger split, e.g. erlang-build for rebar and mix, erlang-check, erlang-WHATEVER, and then erlang-xyz for what doesn't fit into any of the other categories. Also missing ChangeLog as with the rest. I don't see mix in the mix yet. Is this going to be a two series thing? Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 06/32] gnu: erlang-rebar3-git-vsn: moved to erlang-xyz.scm Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 19:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986086175193 (code B ref 66801); Sun, 29 Oct 2023 19:44:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 19:43:37 +0000 Received: from localhost ([127.0.0.1]:43414 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBhA-0001Lg-VA for submit@debbugs.gnu.org; Sun, 29 Oct 2023 15:43:37 -0400 Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]:46092) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBh8-0001LT-DL for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 15:43:35 -0400 Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-5a7afd45199so33801487b3.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 12:43:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698608576; x=1699213376; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Uyn6jbMhugAMaPCHci58sUbMg814oaZfKDQAoX8uYxI=; b=okuuR0u0P8LfPs56hP+SheMptwZ30mOtFLJMa8FnZZNB9YNA4Z2q1idQqcAMFnNwyF D3btDohfUE1mYhU5U8cOXy44DScbmZNKb6vSP1XxAdTsM0y/UUVY4P9ZBz95/L8QbWrB uAQ4DLctn2XKtqxhTv0VDvrAnYfxZ81iyOq3qxcFf0vkTcmLWoDJfoZz0Dsrax+NVtzK j901p05S9leHHD6nHWoje/4fDDcjfIjRBlD5g8jMPPuga8w5uoH5vzbr3ZcUa6USeTij 3ZYzD0aIyNv/9oJ676aH6nZVOC6LyzhS8xeAt+fAju1B07wolBFLW0ZibtIt1dpPJVn/ xq9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698608576; x=1699213376; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Uyn6jbMhugAMaPCHci58sUbMg814oaZfKDQAoX8uYxI=; b=FqTbSB0CExcNH0WaQmEkzEHa6+TA9t5nccLHlwGO5bMrsyVGN6PqdWjGk1smpq1ZjJ n6014JR3tTyUwzgtQI+4PUR+xYd9Tn3fctiifA0gOFmWk5pLF6tAAxpMURKBRRXqhEVq WQmMPPkI1K8wRCm8Yoca3ZLxQvTEZP6HwPSI7RxZ5xMKSl27ljBvj/vJ+BZK3VTPhDJd Qba9Aol/yqrDpOJJPjivT86Hud6m2oAOQ7N5nMiMCRvB0c/4RUh7wRjmIFHD3HaSG4xz SJTPIUt0FFP9Wwys5yJ0pGBCHeoCcr/N/RVGwrhyXyt+11U4rBifeQoSOumrMEFpiRJf 9HEw== X-Gm-Message-State: AOJu0YyOvhxKFmSun0N+AG9T+pyZy8Avvl7qX9s/JuSYHbfSZIa9S+jJ xG6q2fQ6SNxFWtk52YPVwuOGHJXKuH5C3uPfI7Pc9A== X-Google-Smtp-Source: AGHT+IE9AKLHSzk9cWsaS6RcTKaGrZw8IxR7/zi1zhqvF7gVx4IjdMfF8lWEDBL6fCaJpCLhYCsO4ZZNZEKTt1WalfQ= X-Received: by 2002:a25:9805:0:b0:da0:c7e7:9a6d with SMTP id a5-20020a259805000000b00da0c7e79a6dmr7510691ybo.38.1698608575831; Sun, 29 Oct 2023 12:42:55 -0700 (PDT) MIME-Version: 1.0 References: <44bec23d6d48ecc169f1bec65a465edd7c32e973.1698590244.git.phfrohring@deeplinks.com> <23f237231ad267458865ebb4a077d2697bf2d7a6.camel@gmail.com> In-Reply-To: <23f237231ad267458865ebb4a077d2697bf2d7a6.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 20:42:44 +0100 Message-ID: Content-Type: multipart/alternative; boundary="000000000000c6778d0608e0200e" X-Spam-Score: 0.0 (/) 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 (-) --000000000000c6778d0608e0200e Content-Type: text/plain; charset="UTF-8" Thank you for being so responsive ; it's pleasantly surprising. I will address the mix-build-system in 15 additional commits, which I will send after incorporating your feedback to prevent any further errors. I plan to tackle this tomorrow. Cheers. --000000000000c6778d0608e0200e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thank you for being=C2=A0so=C2=A0responsive ; it's ple= asantly surprising.
I will address the mix-build-system in 15 additional= commits,
which I will send after incorporating your feedback to prevent= any further errors.
I plan to tackle this tomorrow.

Cheers. --000000000000c6778d0608e0200e-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 22:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169861773922575 (code B ref 66801); Sun, 29 Oct 2023 22:16:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 22:15:39 +0000 Received: from localhost ([127.0.0.1]:43976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxE4J-0005rz-2k for submit@debbugs.gnu.org; Sun, 29 Oct 2023 18:15:39 -0400 Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]:44455) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxE4H-0005ri-FH for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 18:15:38 -0400 Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-5ae143e08b1so33068457b3.1 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 15:15:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698617699; x=1699222499; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=u5DkL/+3McTPZd2TpZqyZgHizOF2x6G7lkPUcYPleXQ=; b=s+YswbjXnBAJ0iE3Y3VPJ1+doHRWf5TkgghwvIdCfGJSB2GOLtZ87JREBe/b89eFj7 F6iNoGsP9y9S1ildI5v8ik2lNEh7YxmG9wipIGB3iHNhwDKUI5B8Ks6L2YdrKxOBgZMC idv8NBlJF90pWfpFxTtZ+fOe6CzQ25IDxjKniNWtEz5WWSONVk8CjKJZRGW49nRFVd66 W3gGTY/pNwhXvG1iN3A8Y4sJlPNzjZlxMjh3dxemj/uV1ezDQwm65YHQyfVln8X8rsni 3GzJ+k3Me3Ym7rDj6TdCbwcsHEAd/nyd2Mmb22+Gu7pcPr4Qp8fF8YVmlt8eeFYdk4XC iJNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698617699; x=1699222499; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=u5DkL/+3McTPZd2TpZqyZgHizOF2x6G7lkPUcYPleXQ=; b=mwV7EY3mfQmVtEpBwJmdWMw3ShYQSJ+kva7+Lq2OBVBIoCNEIqp1+dF86XEIseb4T+ NBv9vFmlNLRnyXqF69GT7mVWstfONUfv7iOnRXW45nlb4sOYtOkvv+pUKzwrAKGefV9t XpfA8NaOiNRJGuncw7lKCBscIruC2ukEyzGdOoc4FoCwiSaaxxpCr4a8rAj6FqlxpppI kwp424ZQ+6OVdR5fdh0rCpjT8GvhBiZDIAFwz0xRJSn6YSp3WgJCgnlxsIWgT6KkKEJp nLKbgwTY4D2at7GBBsTz8OdYGE9oWclygp8Qwrp2suG46Tgro4UNzq3OH8CBSxKDOfRr bMTA== X-Gm-Message-State: AOJu0Yw7/42vNB5PfIXZ618YL8Q/Wta6uNaheDF6dtRBK5I00Qy52FZr BjCaipAr2DKeQ7H7+0TKk9IpBD55EDe+tDNqxacEdw== X-Google-Smtp-Source: AGHT+IFgTW5ebVwH67F8GAyWaB1Ds2xqkShVa7ipInBleDno6atSZKkn9lY9t5ER3w+6ROJl5bBJcbOgQTeUUNsWmsQ= X-Received: by 2002:a81:4806:0:b0:5a7:fcae:f3e2 with SMTP id v6-20020a814806000000b005a7fcaef3e2mr9357708ywa.43.1698617698758; Sun, 29 Oct 2023 15:14:58 -0700 (PDT) MIME-Version: 1.0 References: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> In-Reply-To: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 29 Oct 2023 23:14:47 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000008b584b0608e240fd" X-Spam-Score: 0.0 (/) 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 (-) --0000000000008b584b0608e240fd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > The middle should indicate a revision number and an optional branch > (as well as optional WIP and RFC). Since this goes to master (I > assume), it should just be v2, v3, =E2=80=A6 vN. DONE: Ok. If I understood correctly, it means that it should have been [PATCH v2]. So this time, it will be [PATCH v3]. > Emacs, Rust, etc., build systems just strip out the prefix. No need > to go all fancy regexpy :)=E4=BD=95=E3=81=A7=EF=BC=9F WAITING: Well, it makes the warning message completely explicit, for example: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 AssertionWarning 4dcbff27 =E2=94=82 Assertion: re matches name. =E2=94=82 re =3D ^erlang-(.*) =E2=94=82 name =3D something-else =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Is it OK if it stays like this? > I suggest not renaming these procedures. default-X reads more > naturally than X-default. DONE. > This reeks of the hack that we need for cargo-build-system, except > with a worse variable name. I strongly suggest looking into ways we > can do without it. WAITING: this idea came from a discussion with jpoiret. See: . It seems that the idea you suggest is to use `search-path-as-list' as hinted below. Is this correct? > Uhm, did you mean file-name-separator-string from Guile core? DONE: Great. That is what I was searching for; I'm not yet familiar with the standard library. > We have find-files? DONE: replaced. > Uhm, how are you improving the status quo here? WAITING: comment updated with: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 ;; If these directories exist, then no error occurs. So, we mak= e sure =E2=94=82 ;; they exist. =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Is this OK? > The canonical way is to use (getcwd) as HOME. You could also try > something like (canonicalize-path "../hexpm-home"). Anyhow, you might > want to try using a variable that is less global than HOME. DONE: HOME has been replaced by REBAR_CACHE_DIR. > I suggest not using French examples =E2=80=93 they are confusing between > French and German native speakers :) DONE: =C2=AB =E2=86=92 =E2=80=9C, =C2=BB =E2=86=92 =E2=80=9D > You might want to look into possible PATH variables or put these > sources into a special folder so that you can use search-path-as-list. WAITING: Perhaps an idea: 1) If we require all Erlang packages to have an output =E2=80=9Csrc=E2=80= =9D something like: /gnu/store/=E2=80=A6elixir-pkg-1.2.3/src/elixir/src/=E2=80=A6, 2) then (search-path-as-list '("src/elixir/src") '("/gnu/store=E2=80=A6elixir-pkg-1.2.3" =E2=80=A6)) would return '("/gnu/store=E2=80=A6elixir-pkg-1.2.3/src/elixir/src" =E2=80=A6) =E2=89= =A1 lst-src. 3) Given lst-src, it would be enough to install each source under _checkouts, i.e., _checkouts/lib-name/src. It is probably feasible to retrieve lib-name from somewhere. What do you think? > Also, IIUC, erlang-depends already does something rather similar. Is > there any reason it's broken for you? WAITING: Without that (i.e., _checkouts/lib-name/src), rebar3 will not compile things. Is this a satisfaying explaination? --0000000000008b584b0608e240fd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

> =C2=A0The middle should = indicate a revision number and an optional branch
> =C2=A0(as well as= optional WIP and RFC).=C2=A0 Since this goes to master (I
> =C2=A0as= sume), it should just be v2, v3, =E2=80=A6 vN.

DONE: Ok. If I unders= tood correctly, it means that it should have been
[PATCH v2]. So this ti= me, it will be [PATCH v3].

> Emacs, Rust, etc., build systems jus= t strip out the prefix.=C2=A0 No need
> to go all fancy regexpy :)=E4= =BD=95=E3=81=A7=EF=BC=9F

WAITING: Well, it makes the warning message= completely explicit, for
example:
=E2=94=8C=E2=94=80=E2=94=80=E2=94= =80=E2=94=80
=E2=94=82 AssertionWarning 4dcbff27
=E2=94=82 =C2=A0 Ass= ertion: re matches name.
=E2=94=82 =C2=A0 =C2=A0 re =3D ^erlang-(.*)
= =E2=94=82 =C2=A0 =C2=A0 name =3D something-else
=E2=94=94=E2=94=80=E2=94= =80=E2=94=80=E2=94=80
Is it OK if it stays like this?

> I sugg= est not renaming these procedures. =C2=A0default-X reads more
> natur= ally than X-default.

DONE.

> This reeks of the hack that w= e need for cargo-build-system, except
> with a worse variable name.= =C2=A0 I strongly suggest looking into ways we
> can do without it.
WAITING: this idea came from a discussion with jpoiret. See:
<<= a href=3D"https://logs.guix.gnu.org/guix/2023-10-24.log#180111">https://log= s.guix.gnu.org/guix/2023-10-24.log#180111>. It seems that
the ide= a you suggest is to use `search-path-as-list' as hinted below. Is
th= is correct?

> Uhm, did you mean file-name-separator-string from G= uile core?

DONE: Great. That is what I was searching for; I'm no= t yet familiar with
the standard library.

> We have find-files= ?

DONE: replaced.

> Uhm, how are you improving the status = quo here?

WAITING: comment updated with:
=E2=94=8C=E2=94=80=E2=94= =80=E2=94=80=E2=94=80
=E2=94=82 ;; =C2=A0 If these directories exist, th= en no error occurs. So, we make sure
=E2=94=82 ;; =C2=A0 they exist.
= =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80
Is this OK?

> Th= e canonical way is to use (getcwd) as HOME.=C2=A0 You could also try
>= ; something like (canonicalize-path "../hexpm-home").=C2=A0 Anyho= w, you might
> want to try using a variable that is less global than = HOME.

DONE: HOME has been replaced by REBAR_CACHE_DIR.

> I= suggest not using French examples =E2=80=93 they are confusing between
= > French and German native speakers :)

DONE: =C2=AB =E2=86=92 =E2= =80=9C, =C2=BB =E2=86=92 =E2=80=9D

> You might want to look into = possible PATH variables or put these
> sources into a special folder = so that you can use search-path-as-list.

WAITING: Perhaps an idea:1) If we require all Erlang packages to have an output =E2=80=9Csrc=E2=80= =9D something
=C2=A0 =C2=A0like: /gnu/store/=E2=80=A6elixir-pkg-1.2.3/sr= c/elixir/src/=E2=80=A6,
2) then (search-path-as-list '("src/eli= xir/src")
=C2=A0 =C2=A0'("/gnu/store=E2=80=A6elixir-pkg-1.= 2.3" =E2=80=A6)) would return
=C2=A0 =C2=A0'("/gnu/store= =E2=80=A6elixir-pkg-1.2.3/src/elixir/src" =E2=80=A6) =E2=89=A1 lst-src= .
3) Given lst-src, it would be enough to install each source under
= =C2=A0 =C2=A0_checkouts, i.e., _checkouts/lib-name/src. It is probably feas= ible to
=C2=A0 =C2=A0retrieve lib-name from somewhere.
What do you th= ink?

> Also, IIUC, erlang-depends already does something rather s= imilar.=C2=A0 Is
> there any reason it's broken for you?

W= AITING: Without that (i.e., _checkouts/lib-name/src), rebar3 will not
co= mpile things. Is this a satisfaying explaination?

--0000000000008b584b0608e240fd-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 30 Oct 2023 05:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986438212513 (code B ref 66801); Mon, 30 Oct 2023 05:31:01 +0000 Received: (at 66801) by debbugs.gnu.org; 30 Oct 2023 05:30:21 +0000 Received: from localhost ([127.0.0.1]:44161 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxKqy-0000eT-Up for submit@debbugs.gnu.org; Mon, 30 Oct 2023 01:30:21 -0400 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]:58567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxKqs-0000e8-Ru for 66801@debbugs.gnu.org; Mon, 30 Oct 2023 01:30:19 -0400 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-9c5b313b3ffso602465866b.0 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 22:29:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698643775; x=1699248575; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=XN0QBIBKO8CnMhmQGhW0DKpRcEAktCGmdaSL6JKxZao=; b=EZylvqhOP+KKO2C+JmrF/uhDBh5swP5Q0TK9JCI2SmOpaR+vdVuUW8tlhThAzJ7VsP Ged4Jrtie2z6GTyJFqbZ3ig5Ee51qCBX7K6VhWIFdkgLx3O8RB2GtXeRc5HT3k4U8C/3 323iX3upEzRRCspW+gb6+d3/2a2KFLv8ByfiFdTE94PbGL/nVH1lFUzoG3KcpAOFuqLO L/rUNdCuH6tauKUuaEC8yc4upix8HgXNKHiyWMB8PG7QwNP/K3NukmdkXEiOLit7Spl0 PxprpR/aD7iJmFI6H+WnlQMCvQ2oUAn34hXC00OmAZVxCNI4wNEUec8UYmgtcUTORvHL OGcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698643775; x=1699248575; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=XN0QBIBKO8CnMhmQGhW0DKpRcEAktCGmdaSL6JKxZao=; b=geJUig2RXDVKf85G6JGp/e1D3hEpvZA3HAWsgeHITxg9BmAPcDRv6Z/bHsrv83M1VY Nw8ITAYPCrxNmX/ax3ZY0zQ2Nd0AwPFk4IeX/XSc+Ooy/HsduKq4+FThs1y8oP13/mp0 9aZ7llJs2x9zJWLPHigX+hFJj47TniZSg/Zbc9vcz91cOnqdy6DuL+LqVEvCcYnlyDnr krXtEmvpegikPwu/k+bqed+o4C51RewAMSo/9ZVayF4OQaqX2jMRlaPjtptrgu+no5eR HQB2oH9DS5B1gOXEf10VY7RJzwmAqe+7nMboWhEcof2whDCyEyoYfWGnZ2snYcvsGlHT /8xw== X-Gm-Message-State: AOJu0YwiYHcfNEMr11FqynWSxa/YDj2bHz2nU4ytzKjkSdVU+ZETpq1b inKh7wK1rifqjUko0WiJXTE= X-Google-Smtp-Source: AGHT+IHegu8EtzxqLLe1WoOpscZWaLH+GzQK+pZsih6nFYtJyzOTLqXUYZjUOoiqFG+o/o5+nBCoow== X-Received: by 2002:a17:906:fd8b:b0:9bf:30e8:5bfd with SMTP id xa11-20020a170906fd8b00b009bf30e85bfdmr7911776ejb.48.1698643775144; Sun, 29 Oct 2023 22:29:35 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id hu11-20020a170907a08b00b009d22a1422a7sm2978521ejc.42.2023.10.29.22.29.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 22:29:34 -0700 (PDT) Message-ID: From: Liliana Marie Prikler Date: Mon, 30 Oct 2023 06:29:32 +0100 In-Reply-To: References: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Sonntag, dem 29.10.2023 um 23:14 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > n [PATCH v2]. So this time, it will be [PATCH v3]. >=20 > > Emacs, Rust, etc., build systems just strip out the prefix.=C2=A0 No > > need to go all fancy regexpy :)=E4=BD=95=E3=81=A7=EF=BC=9F >=20 > WAITING: Well, it makes the warning message completely explicit, for > example: > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 AssertionWarning 4dcbff27 > =E2=94=82 =C2=A0 Assertion: re matches name. > =E2=94=82 =C2=A0 =C2=A0 re =3D ^erlang-(.*) > =E2=94=82 =C2=A0 =C2=A0 name =3D something-else > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > Is it OK if it stays like this? You can use a shorter error and explain the problem better:=C2=A0 "~a does not start with \"erlang-\"" name >=20 > > Uhm, how are you improving the status quo here? >=20 > WAITING: comment updated with: > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 ;; =C2=A0 If these directories exist, then no error occurs. So,= we make > sure > =E2=94=82 ;; =C2=A0 they exist. > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > Is this OK? >=20 >=20 > [...] > > You might want to look into possible PATH variables or put these > > sources into a special folder so that you can use search-path-as- > > list. >=20 > WAITING: Perhaps an idea: > 1) If we require all Erlang packages to have an output =E2=80=9Csrc=E2=80= =9D > something > =C2=A0 =C2=A0like: /gnu/store/=E2=80=A6elixir-pkg-1.2.3/src/elixir/src/= =E2=80=A6, > 2) then (search-path-as-list '("src/elixir/src") > =C2=A0 =C2=A0'("/gnu/store=E2=80=A6elixir-pkg-1.2.3" =E2=80=A6)) would re= turn > =C2=A0 =C2=A0'("/gnu/store=E2=80=A6elixir-pkg-1.2.3/src/elixir/src" =E2= =80=A6) =E2=89=A1 lst-src. > 3) Given lst-src, it would be enough to install each source under > =C2=A0 =C2=A0_checkouts, i.e., _checkouts/lib-name/src. It is probably fe= asible > to > =C2=A0 =C2=A0retrieve lib-name from somewhere. > What do you think? Rather than require, you can add a phase to ensure that this is the case. I'm not sure whether we should make that an extra output, however; there might be many packages for which we don't need those sources and where we do need them, we could potentially add them as native-inputs. =20 Another alternative would be to keep the sources in=C2=A0 lib/erlang/lib/lib-name/src so that it gets symlinked by the phase we have. Though at that point we can surely go with a less surprising install directory. > > Also, IIUC, erlang-depends already does something rather similar.=C2=A0 > > Is there any reason it's broken for you? >=20 > WAITING: Without that (i.e., _checkouts/lib-name/src), rebar3 will > not compile things. Is this a satisfaying explaination? I mean, ideally we would store these things in some other directory, given that _checkouts/lib-name already contains the precompiled stuff after erlang-depends. However, if the tooling insists on storing both in the same place, you could simply amend the existing erlang-depends phase to 1. Copy instead of symlinking 2. Also copy the sources Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 30 Oct 2023 12:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16986690771352 (code B ref 66801); Mon, 30 Oct 2023 12:32:02 +0000 Received: (at 66801) by debbugs.gnu.org; 30 Oct 2023 12:31:17 +0000 Received: from localhost ([127.0.0.1]:44465 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxRQK-0000Lk-Ar for submit@debbugs.gnu.org; Mon, 30 Oct 2023 08:31:17 -0400 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]:59782) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxRQH-0000LX-To for 66801@debbugs.gnu.org; Mon, 30 Oct 2023 08:31:14 -0400 Received: by mail-yb1-xb32.google.com with SMTP id 3f1490d57ef6-da0344eb3fdso3726036276.3 for <66801@debbugs.gnu.org>; Mon, 30 Oct 2023 05:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698669035; x=1699273835; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gjT57gpXGbIfTlmFPgnDq4sD35puDUwQOKMe594bwLg=; b=stHBXofnnuXMI7sNGtbNBd8r3nYWsbxM+p/a9thc6+1ZGYiz0FP7zqrXpLJrMa1j43 vi18+kswymcOgEFCeR6BezJjb3KnPBhc1NSvyRBVKtFgO/eC2zoMDz0xnm09wZB1WLgC KMrXydxcC6t+FgnuY4P/j57ZWINEEi4vnVj+QZ0fqKJH4JiWIMWMepVpMie0CTcK/FPh sCGeUHjWiRXLvyxsi7qvHS+wKnlahucTK6oaIDDrjdvTN7CTjemMZrgW2ECnqIbG47RP UJUUcXmVDeSHxuvMN/yAm5rrYI2l9fsHmv3VTPAJjtBEsje+l8OiGtVXZYNM4Tkkid/b JxYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698669035; x=1699273835; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gjT57gpXGbIfTlmFPgnDq4sD35puDUwQOKMe594bwLg=; b=CWIURSB9Hh/UAhA4gO7vxMvOhhZQlEz3Yz5mlFHtgYyom0rt8Nihai0HCP7Tuxahgd fYQbFhBhbiG9QcDKgbLTxNOtiYrqpwwa4JmDXgE2EzLaGqPmSfVSdVGth+sZUBOne5Wx oX5zaqHp7tmYzdyBwom9xhuk+EWGU8vZkxQKKiRoRI1lU5NmfjoYTwwruiBCtG7Axb5L UEOvnHkjSFto6/nMRYz8wnn79WhQPBhHE/osUBBD3xBJ3cU9PsufYOKwxep8qqq3U4Mz 9SpqtApad2mDg4K1p7DOYvfGk9Bk7VP7EpSFLoYHoiiMuw1qwjJ3KA2u3CGSP0u6f8QJ o6mA== X-Gm-Message-State: AOJu0Yws4jjO2s/c2A/0OLnAi+vupr6aXKbjQifbZm+mbUJ0N3eFop/R Xf8IAgpCa4ZL2WJuZho/fpKhXaFpIPLrNLAzlNLwLbFt0+d+cyeZJ5M= X-Google-Smtp-Source: AGHT+IE1KIw6za6mpFBP/ttEYlcr7YZvpRCG0t46sQjqqD8MEmop7Tr/PcfLSAsXIv11bzsRsCRi2/TOPMPkMXKhm+A= X-Received: by 2002:a25:abb0:0:b0:da0:e250:15ad with SMTP id v45-20020a25abb0000000b00da0e25015admr9269103ybi.30.1698669034775; Mon, 30 Oct 2023 05:30:34 -0700 (PDT) MIME-Version: 1.0 References: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Mon, 30 Oct 2023 13:30:23 +0100 Message-ID: Content-Type: multipart/alternative; boundary="00000000000068b84b0608ee3490" X-Spam-Score: 0.0 (/) 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 (-) --00000000000068b84b0608ee3490 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I've collected your comments in an org-file so that it's easier (at least for me, but I hope it's the case for you too) to follow multiple discussions at the same time. I've only included the ones that are still open to discussion. The structure should be self-evident. The most important comment may be Comment 9. Cheers. * TODO Comment 4 ** LMP This reeks of the hack that we need for cargo-build-system, except with a worse variable name. I strongly suggest looking into ways we can do withou= t it. ** PHF This idea came from a discussion with jpoiret. See: https://logs.guix.gnu.org/guix/2023-10-24.log#180111. It seems that the ide= a you suggest is to use =3Dsearch-path-as-list=3D as hinted below (=3DComment= 9=3D). Is this correct? * TODO Comment 6 ** LMP Uhm, how are you improving the status quo here? ** PHF Comment updated with: #+begin_example ;; If these directories exist, then no error occurs. So, we make sure ;; they exist. #+end_example Is this OK? I don't see how to prevent rebar3 to do that. It's apparently an opened issue: https://github.com/erlang/rebar3/issues/1173 * TODO Comment 9 ** LMP You might want to look into possible PATH variables or put these sources into a special folder so that you can use search-path-as-list. ** PHF Perhaps an idea: 1) If we require all Erlang packages to have an output =E2=80=9Csrc=E2=80= =9D something like: /gnu/store/=E2=80=A6elixir-pkg-1.2.3/src/elixir/src/=E2=80=A6, 2) then (search-path-as-list '("src/elixir/src") '("/gnu/store=E2=80=A6elixir-pkg-1.2.3" =E2=80=A6)) would return '("/gnu/store=E2=80=A6elixir-pkg-1.2.3/src/elixir/src" =E2=80=A6) =E2=89=A1= lst-src. 3) Given lst-src, it would be enough to install each source under _checkouts, i.e., _checkouts/lib-name/src. It is probably feasible to retrieve lib-name from somewhere. What do you think? ** LMP Rather than require, you can add a phase to ensure that this is the case. I'm not sure whether we should make that an extra output, however; there might be many packages for which we don't need those sources and where we d= o need them, we could potentially add them as native-inputs. ** PHF Agreed. ** LMP Another alternative would be to keep the sources in =3Dlib/erlang/lib/lib-name/src=3D so that it gets symlinked by the phase we have. Though at that point we can surely go with a less surprising install directory. ** PHF Here is the approach taken so far: 1) The objective is to ensure that =3Dmix compile=3D does not attempt to us= e the network and, as a result, fails to compile. 2) For the above to be true, it is necessary to have =E2=80=94 at build tim= e =E2=80=94 the sources of all Erlang input packages and install them as checkouts. 3) Thus, the question becomes: How to access all the Erlang package sources at build time? 4) One idea was to have the client side of the build code send all the sources to the server through the poorly named argument =3D#:sources-erlang=3D. = This led to the current code. It relies on the fact that for a given Erlang package, it is possible to access its source in the store, for example, =3D/gnu/store/=E2=80=A6erlang-kv/erlang-kv.tar=3D. 5) Instead, you propose modifying the installation process so that sources are installed along with the built libraries. The source might be collected with =3Dsearch-path-as-list=3D. The downside seems to be that the source code is stored twice: first in the archive, then in the package. However, this could lead to a much cleaner method of passing the sources to the build-side code, that is, the source code would not be passed throug= h =3Darguments=3D. I'm sending a patch based on this latter idea. Are you OK with that? * TODO Comment 10 ** LMP Also, IIUC, erlang-depends already does something rather similar. Is there any reason it's broken for you? ** PHF Without that (i.e., _checkouts/lib-name/src), rebar3 will not compile things. Is this a satisfying explanation? ** LMP I mean, ideally we would store these things in some other directory, given that _checkouts/lib-name already contains the precompiled stuff after erlang-depends. However, if the tooling insists on storing both in the same place, you could simply amend the existing erlang-depends phase to: 1. Copy instead of symlinking 2. Also copy the sources ** PHF If I understand correctly, this should be addressed with the patch from =3DComment 9=3D section above. --00000000000068b84b0608ee3490 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I've collected your comments in an org-file so that it= 's easier (at least for me, but I hope it's the case for you too)= =C2=A0
to follow multiple discussions at the same time. I've only i= ncluded the ones that are still open to discussion.=C2=A0
The str= ucture should be self-evident. The most important comment may be Comment 9.=
Cheers.

* TODO Comment 4
** LMP
T= his reeks of the hack that we need for cargo-build-system, except with aworse variable name.=C2=A0 I strongly suggest looking into ways we can do = without
it.

** PHF
This idea came from a discussion with jpoir= et. See:
https://logs.guix.gnu.org/guix/2023-10-24.log#180111. It seems that t= he idea
you suggest is to use =3Dsearch-path-as-list=3D as hinted below = (=3DComment 9=3D). Is this
correct?

* TODO Comment 6
** LMPUhm, how are you improving the status quo here?

** PHF
Comment u= pdated with:
#+begin_example
;; =C2=A0 If these directories exist, th= en no error occurs. So, we make sure
;; =C2=A0 they exist.
#+end_exam= ple
Is this OK?

I don't see how to prevent rebar3 to do that.= It's apparently an opened issue:
https://github.com/erlang/rebar3/issues/1173
=
* TODO Comment 9
** LMP
You might want to look into possible PATH= variables or put these sources into
a special folder so that you can us= e search-path-as-list.

** PHF
Perhaps an idea:
=C2=A0 1) If we= require all Erlang packages to have an output =E2=80=9Csrc=E2=80=9D someth= ing like: /gnu/store/=E2=80=A6elixir-pkg-1.2.3/src/elixir/src/=E2=80=A6,=C2=A0 2) then (search-path-as-list '("src/elixir/src") '= ;("/gnu/store=E2=80=A6elixir-pkg-1.2.3" =E2=80=A6)) would return = '("/gnu/store=E2=80=A6elixir-pkg-1.2.3/src/elixir/src" =E2=80= =A6) =E2=89=A1 lst-src.
=C2=A0 3) Given lst-src, it would be enough to i= nstall each source under _checkouts,
=C2=A0 =C2=A0 =C2=A0i.e., _checkout= s/lib-name/src. It is probably feasible to retrieve lib-name
=C2=A0 =C2= =A0 =C2=A0from somewhere.
What do you think?

** LMP
Rather tha= n require, you can add a phase to ensure that this is the case.
I'm = not sure whether we should make that an extra output, however; there
mig= ht be many packages for which we don't need those sources and where we = do
need them, we could potentially add them as native-inputs.

** = PHF
Agreed.

** LMP
Another alternative would be to keep the so= urces in
=3Dlib/erlang/lib/lib-name/src=3D so that it gets symlinked by = the phase we have.
Though at that point we can surely go with a less sur= prising install
directory.

** PHF
Here is the approach taken s= o far:
1) The objective is to ensure that =3Dmix compile=3D does not att= empt to use the
=C2=A0 =C2=A0network and, as a result, fails to compile.=
2) For the above to be true, it is necessary to have =E2=80=94 at build= time =E2=80=94 the
=C2=A0 =C2=A0sources of all Erlang input packages an= d install them as checkouts.
3) Thus, the question becomes: How to acces= s all the Erlang package sources at
=C2=A0 =C2=A0build time?
4) One i= dea was to have the client side of the build code send all the sources
= =C2=A0 =C2=A0to the server through the poorly named argument =3D#:sources-e= rlang=3D. This led
=C2=A0 =C2=A0to the current code. It relies on the fa= ct that for a given Erlang package,
=C2=A0 =C2=A0it is possible to acces= s its source in the store, for example,
=C2=A0 =C2=A0=3D/gnu/store/=E2= =80=A6erlang-kv/erlang-kv.tar=3D.
5) Instead, you propose modifying the = installation process so that sources are
=C2=A0 =C2=A0installed along wi= th the built libraries. The source might be collected
=C2=A0 =C2=A0with = =3Dsearch-path-as-list=3D.

=C2=A0 =C2=A0The downside seems to be tha= t the source code is stored twice: first in the
=C2=A0 =C2=A0archive, th= en in the package.

=C2=A0 =C2=A0However, this could lead to a much c= leaner method of passing the sources to
=C2=A0 =C2=A0the build-side code= , that is, the source code would not be passed through
=C2=A0 =C2=A0=3Da= rguments=3D.

I'm sending a patch based on this latter idea. Are = you OK with that?

* TODO Comment 10
** LMP
Also, IIUC, erlang-= depends already does something rather similar.=C2=A0 Is there
any reason= it's broken for you?

** PHF
Without that (i.e., _checkouts/l= ib-name/src), rebar3 will not compile
things. Is this a satisfying expla= nation?

** LMP
I mean, ideally we would store these things in som= e other directory,
given that _checkouts/lib-name already contains the p= recompiled stuff
after erlang-depends.=C2=A0 However, if the tooling ins= ists on storing both
in the same place, you could simply amend the exist= ing erlang-depends
phase to:
1. Copy instead of symlinking
2. Also= copy the sources

** PHF
If I understand correctly, this should b= e addressed with the patch from
=3DComment 9=3D section above.
=
--00000000000068b84b0608ee3490-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 30 Oct 2023 20:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169869844431877 (code B ref 66801); Mon, 30 Oct 2023 20:41:02 +0000 Received: (at 66801) by debbugs.gnu.org; 30 Oct 2023 20:40:44 +0000 Received: from localhost ([127.0.0.1]:46736 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxZ40-0008I3-5O for submit@debbugs.gnu.org; Mon, 30 Oct 2023 16:40:44 -0400 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]:46154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxZ3y-0008Hp-BD for 66801@debbugs.gnu.org; Mon, 30 Oct 2023 16:40:42 -0400 Received: by mail-ej1-x641.google.com with SMTP id a640c23a62f3a-98377c5d53eso743392366b.0 for <66801@debbugs.gnu.org>; Mon, 30 Oct 2023 13:40:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698698403; x=1699303203; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=1bf/1/Re/IFGe9Gi6kHtTZXu1irnNzPVBGQxKsuEYIE=; b=BP52LRZ0Y2gBY48HkrOQiZPv+U8sDsyQkyheJ/bbG/Q9WDmxtjhp9u5mM8JBKvqQ2c LsVEYaNL+kYwFBzqwiZUz9NY0bBh+XfvV2IJkltP5DITDFf1mAOaUT/HE5a3OKjSdrM2 9xXyBkhCbx5AzBDh8Il+TWrp3Yg/0Xq/hYJaNSbLKWqMdxEidl6Hzo52cZaW0S80dFK2 wnArOg23IumiAbU4QRWFTPCwjFG+aq9wovUA/VhBGjgex8Vzp1RADpuQbwWovPHy211Y afE820bNBX8nB6cqguUuaxVqYiRibeaW6fCVN9zujG1osXEPMd0R8vM2ohSqsKUtMnfW +Lwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698698403; x=1699303203; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1bf/1/Re/IFGe9Gi6kHtTZXu1irnNzPVBGQxKsuEYIE=; b=WpPjSEp65h1d/5x7J/IElTpKtxPsBv9pB/u/yhurk0p9b/1Zme8/rydsV8e+EMO+BA q3v4d+UniY3hMygdYUK8lG1tw2scDC4/h+MHj5CzMU5jXj4qey2hX/Z7eW9ckDMSr93M 5nenNMAC0CTe+2xc1U8UMIwBaVpXaO4jDaYKeZffXxBXSLvVEYeJe3QrJsKZAPurFcgi IFkoUIpKBIYCsmtx7UmSXAb8wAYQBevZuCCe5HuhvNPb7IRxkSzCqi2DJvJJNO7GkjKN Ekno2kzpLpsqBN5kIrk5YhrSQLUFrX0X975vhn2PhjpgHVZfqP/GGAcpvNey0IR0ucaQ pAuw== X-Gm-Message-State: AOJu0Yzrgb6l91Y+LwQZgAXCW4SrGkyoeI8J+ht1TRs7qt2CaaOvRHKR QHat/DSpfG87a20oUxkwqqA= X-Google-Smtp-Source: AGHT+IFBgGad4ZD4g/h1vO1GMBuBVQb72pjLvBgQA7tot1KBvUgrKQsdzov/EfGl4M3fIsDyUftoig== X-Received: by 2002:a17:907:da0:b0:9bd:a73a:7a0d with SMTP id go32-20020a1709070da000b009bda73a7a0dmr10942089ejc.13.1698698402855; Mon, 30 Oct 2023 13:40:02 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id rp28-20020a170906d97c00b009b296ce13a3sm6609300ejb.18.2023.10.30.13.40.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 13:40:01 -0700 (PDT) Message-ID: <683bb1149e6bfd3f1ade1976463a834edc6d16a3.camel@gmail.com> From: Liliana Marie Prikler Date: Mon, 30 Oct 2023 21:40:00 +0100 In-Reply-To: References: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Montag, dem 30.10.2023 um 13:30 +0100 schrieb Pierre-Henry Fr=C3=B6hring= : > [...] > Comment updated with: > #+begin_example > ;; If these directories exist, then no error occurs. So, we make > sure > ;; they exist. > #+end_example > Is this OK? >=20 > I don't see how to prevent rebar3 to do that. It's apparently an > opened issue: > https://github.com/erlang/rebar3/issues/1173 I'd recommend sticking with the current flow, however, and either create those directories unconditionally or inside the=C2=A0 (when (file-exists? =E2=80=A6) =E2=80=A6) In general, don't mix gratuitous "styling" changes into your commits.=20 Try to keep your edits minimal and reviewable. > Here is the approach taken so far: > 1) The objective is to ensure that =3Dmix compile=3D does not attempt to > use the network and, as a result, fails to compile. > 2) For the above to be true, it is necessary to have =E2=80=94 at build t= ime > =E2=80=94 the=C2=A0sources of all Erlang input packages and install th= em as > checkouts. > 3) Thus, the question becomes: How to access all the Erlang package=C2=A0 > sources at build time? > [...] One idea both of us haven't voiced so far is to actually grab these in the (guix build-system =E2=80=A6) code rather than the (guix build =E2=80= =A6) side and make the sources available via a mapping. Think package =E2=86=92 (package= - source package). The downsides of this are quite obvious. First, to my knowledge something like that hasn't been done yet, so there's no reference point. Second, the (guix build =E2=80=A6) side would still need to identif= y what's an erlang source. Given our code for the unpack phase, I'd hazard a guess that this is non-trivial. Thus, even if there's theoretically a way to not store the same tarball twice, in practice it doesn't really matter. You could alternatively also write the sources to a special source output if and only if one such output is requested via the outputs field. Again, I'd hazard a guess that this would be a very standard output for anything that needs to go into mix-build-system and thus not worth the split after all. Alternatively=C2=B2 you could patch mix to only look for compiled stuff and not sources. That would tackle the issue at the root instead of trying to work around it, with the caveat being that we would need to maintain this patch ourselves if upstream doesn't accept it. Cheers=20 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] A minimal set of changes. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org, Liliana Marie Prikler Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943536011133 (code B ref 66801); Wed, 08 Nov 2023 09:23:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:22:40 +0000 Received: from localhost ([127.0.0.1]:43994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0elj-0002tV-JC for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:22:39 -0500 Received: from mail-yw1-x112b.google.com ([2607:f8b0:4864:20::112b]:55363) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0eli-0002tI-IJ for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:22:39 -0500 Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-5a7af52ee31so78925177b3.2 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:22:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435314; x=1700040114; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=GJq1vfY6aknEMd3eUBj6jhNmlK1yZx3l1oCBTIXezQs=; b=CS3DlQFfXS1x5DjWvlgncL5c6VHTmr4Oy8b4HbTRgl5W6rEdylH6Njyd/Kptm3iKmy 9tn/aSmtsJOrNp8AqDAdAha8C9C5zD4AzRzKADD+BkshIT4w2N9fIBGLHvpEoX/dmV8G RdIURdVz5km7HMyiU1bOmf22j0QnX4hLS/iaD1JH9ZKHgreFlb8cTJjiTG5RAu4UbDMT xXa8yTl8agPstgk3zNvmwTaqPrtxkYXTZF7Eb+NKZb7+4Zs1tIwN7QemVnGQrNcq6bFY kOlpgLUAlvMXOzVnP66i3bgLR/HiDbMD94YCLrheWwXl3WWVPmHvhlG3M8TSev9DPIiJ w9HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435314; x=1700040114; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=GJq1vfY6aknEMd3eUBj6jhNmlK1yZx3l1oCBTIXezQs=; b=wfxYV7YySJI50X1INfnYcjKly7SQ+9bvknHWL/zi4HlHSzpCqwRMazDi1M21V7+pjh dgar3VKtp8dtXoBjkOEel44B48U+IgF1yoXNts91i+LqFoA8Y88sRZhydou93CGi6zxb Ow75lnfQ3Ozbkh7auCXeDnac/Lckfnr2BYZ2dTQwnzFIp71YcJ1NxHv8Gw0T4advFted xxO+hz8RMWzeyJFPjB7NHoJJ5ZlFMlGn8D20wi2t7ekKPHoN6CuymqA38yV1Kzn7i21K CX7G3gaAdcGBYJnTQzlkkJC/6QyMxeYrjC/KJsC9BZQvfwNq/dqQVOkfRv3Z/DUlChGr NtOA== X-Gm-Message-State: AOJu0Yw2AAvlDMc9DYiUjy1JQ2+UTpvh8tdg++uWt0WRRBbGXPHovUug f9igwAJgoE8DaFpKQbgq29VEEcz6bvcoweAoUYoFQaFeI56lZp8bLxw= X-Google-Smtp-Source: AGHT+IEZWQex46V91Dk9WjWUPNLNEPqTl2rnz1FeE7bjF+C32QqxamvkSyMTWx8xEsROaIAnz8vuAFSZ3wT8nGMrnI8= X-Received: by 2002:a0d:f301:0:b0:583:b186:d817 with SMTP id c1-20020a0df301000000b00583b186d817mr1186410ywf.27.1699435314241; Wed, 08 Nov 2023 01:21:54 -0800 (PST) MIME-Version: 1.0 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:21:43 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000003978ea0609a09ed1" X-Spam-Score: 0.0 (/) 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 (-) --0000000000003978ea0609a09ed1 Content-Type: text/plain; charset="UTF-8" Dear Liliana, Learning from our previous exchanges, I would like to first thank you for your patience and propose refocusing our conversation on a more concise set of changes. I am preparing to send a cover letter as recommended in the "Sending a Patch Series" section of the Guix manual, accompanied by a couple of patches. These will contain just enough code to validate the approach taken, along with a few packages for testing purposes. If the approach is deemed satisfactory, I will make any necessary corrections based on your feedback and continue to send more patches until the Phoenix package can be successfully built. Cheers. --0000000000003978ea0609a09ed1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear=C2=A0Liliana,

Learning from our pr= evious exchanges, I would like to first thank you
for your patience and = propose refocusing our conversation on a more
concise set of changes.
I am preparing to send a cover letter as recommended in the "Send= ing a
Patch Series" section of the Guix manual, accompanied by a co= uple of
patches. These will contain just enough code to validate the app= roach
taken, along with a few packages for testing purposes.

If t= he approach is deemed satisfactory, I will make any necessary
correction= s based on your feedback and continue to send more patches
until the Pho= enix package can be successfully built.

Cheers.
--0000000000003978ea0609a09ed1-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 0/5] build Erlang packages with dependencies References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943556011460 (code B ref 66801); Wed, 08 Nov 2023 09:26:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:00 +0000 Received: from localhost ([127.0.0.1]:43998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0eox-0002yl-6k for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:25:59 -0500 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:52561) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0eou-0002yV-Vh for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:25:58 -0500 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-507bd64814fso9033298e87.1 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435512; x=1700040312; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=AGjz9VH6/p0jzkfYLyn+LDVQKvQ8Rsk41/CUa//3WcA=; b=WczWB9QCodxZanw3qmkfTtfcx0sHCNtpHTI/iBynDCWyRM9s3kgjq4oKDR7gibWz1E gqNWNd6sAqZ+IAv3cl+aYxZmgY9Hv581UwnF94gVqhaWywFXbZ8+sqJPdrkjjGjeFh4G V5tjG0tvPiicJaurg2SB+/gpHJTJhQBs9XiW4yyNlsfWV6Lyw68qkw8l2jcuscYJikEb 2ZUcj3qqUjChYEL1QDsB4uHEAYj76U9AJEwYUX4v91x0+me3WJhv8eKQd5qBbRpzxPwu NuFEsk126DSvygs+yd4Q8reCit6Cx5cCv5D7jcV1abtOKf0OT2la3v8qjW1rdahMKxxm 16+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435512; x=1700040312; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AGjz9VH6/p0jzkfYLyn+LDVQKvQ8Rsk41/CUa//3WcA=; b=MuQAh3RrrrRkNcsV1fxnEZKSKGEIGtOElF5dBCXQuiFht0JhiE4xhchZCLF/CAVHwp vFWISmkGufm/CJJqazhSCydjjf2uGj37l0Ceg5h/tIBjpYY4ZbsUlyqxhW3UhGVaeXtK qQuhbeh08CYanDXssYA528KDiaJ8ht4Po0/8ZQ8HUk3IuvMlJPC4K1ypx+eOB5Sp+5BO 4J02Mn5B/QcWzfap0xxgjLgqe4uQjvXKuPH+pD3E8rpLZ2Cz8Q2pD2rBvjccncXLXHhG sxZIOfTtL2y6S/sVpD0jP8xyE35Vsi+0NjV1AN6Fd2m8MxdvAacKZ3jk71z5bBzy4D+a VIeQ== X-Gm-Message-State: AOJu0YzVHbRfXxHEvUgGoX3nQvJqifOf18oe9O+3haF/+IfV/7V6OOem amFDGojQ4z29o3rkMEM3sF0OdUzhHsnv72CUvdo= X-Google-Smtp-Source: AGHT+IEmGkIrzSKj5Igme3wEHFhTozIUbNiCzmSFsxF52HjcCRZPgHgGqFWPMyw7vg3cnAWLEQkuSg== X-Received: by 2002:a19:5e04:0:b0:4fe:8c1d:9e81 with SMTP id s4-20020a195e04000000b004fe8c1d9e81mr531894lfb.36.1699435511316; Wed, 08 Nov 2023 01:25:11 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:10 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:34 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Introduction ════════════ • The objective is to introduce a `mix-build-system' for building Elixir packages. • It is first necessary to have `rebar-build-system' to build Erlang packages. • We start by showing a build procedure using a package named `lager' that operates without the need for network access. • We generalize the build procedure to any Erlang package by using [Checkout Dependencies]. • To align this build procedure with Guix, we ensure that for any Erlang Guix package, all its dependencies, including the transitive ones, can be identified. • We show that the source code for each dependency is retrievable from the store. • We modify `rebar.scm' and `rebar-build-system.scm' to build procedure into Guix. • The packages defined in `erlang-xyz.scm' serve as the test cases for this implementation. • The changes to the Guix source code are minimal. While the primary goal is to validate the approach, it may be necessary to resolve stylistic issues or potential bugs. [Checkout Dependencies] Bash ════ Rebar3 compiles and tests Lager without network access ────────────────────────────────────────────────────── There is a directory and an environment such that `rebar3 compile' and `rebar3 test' compile and test the [lager package] without network access. [lager package] Sources are fetched and unpacked ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ #! /usr/bin/env bash │ set -euo pipefail │ IFS=$'\n\t' │ │ tmpdir=$(mktemp -d) │ cd $tmpdir │ wget -O source.tar https://repo.hex.pm/tarballs/lager-3.9.2.tar │ tar xf source.tar │ tar xf contents.tar.gz └──── Dependencies are fetched ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ rebar3 compile │ rebar3 eunit └──── Checkouts are built ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ #+begin_src bash mkdir _checkouts mv _build/default/lib/goldrush _checkouts rm -rf _build #+end_srcè The directory is built ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ . │ ├── _checkouts │ │   └── goldrush │ │   ├── ebin │ │   │   ├── … │ │   │   └── gr_sup.beam │ │   ├── hex_metadata.config │ │   ├── LICENSE │ │   ├── priv │ │   │   └── edoc.css │ │   ├── README.org │ │   ├── rebar.config │ │   ├── rebar.lock │ │   └── src │ │   ├── … │ │   └── gr_sup.erl │ ├── CHECKSUM │ ├── contents.tar.gz │ ├── include │ │   └── lager.hrl │ ├── LICENSE │ ├── metadata.config │ ├── priv │ │   └── edoc.css │ ├── README.md │ ├── rebar.config │ ├── rebar.config.script │ ├── rebar.lock │ ├── source.tar │ ├── src │ │   ├── … │ │   └── lager_util.erl │ └── VERSION │ │ 9 directories, 73 files └──── The environment is defined ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ (specifications->manifest '("coreutils" "rebar3")) └──── Lager is compiled and tested without network access ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ guix shell -C -m manifest.scm -- rebar3 compile │ guix shell -C -m manifest.scm -- rebar3 eunit └──── Erlang can find and use the compiled module ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┌──── │ ERL_LIBS=_build/default/lib erl -noshell -eval 'io:format("~p~n", [code:which(lager)]).' -s init stop └──── ┌──── │ "_build/default/lib/lager/ebin/lager.beam" └──── Discussion ══════════ Several observations can be made, and alternative approaches can be proposed, as listed below. Meanwhile, with the implementation described above, it becomes feasible to build Erlang packages with Guix, which is an essential step towards building Elixir packages. Wasted Computations ─────────────────── This build procedure needs to re-build of all Erlang dependencies for an Erlang package, even if they have been previously built. This is due to the `rebar3' build system's refusal to operate without network access unless the dependencies are checked out. If checked out, it insists on rebuilding them from sources. Expensive computations ────────────────────── For a given Erlang dependency, it is necessary to retreive all its transitive dependencies which might be expensive to compute. See: [all-transitive-inputs]. [all-transitive-inputs] <./guix/build-system/rebar.scm::(define (all-transitive-inputs> Wasted Space ──────────── The source code for all Erlang dependencies of a specific Erlang package must be available on the build machine, whereas it might be assumed that the build artifacts alone would suffice. Alternatives ──────────── Liliana Marie Pinker has suggested several alternatives listed below. Store sources along the build artifacts ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ From [issue/66801]: keep the sources in lib/erlang/lib/lib-name/src so that it gets symlinked by the phase we have. Though at that point we can surely go with a less surprising install directory. [issue/66801] Write the sources to a special source output ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ From [issue/66801]: You could alternatively also write the sources to a special source output if and only if one such output is requested via the outputs field. Again, I'd hazard a guess that this would be a very standard output for anything that needs to go into mix-build-system and thus not worth the split after all. [issue/66801] Patch Rebar3 ╌╌╌╌╌╌╌╌╌╌╌╌ From [issue/66801]: you could patch mix to only look for compiled stuff and not sources. That would tackle the issue at the root instead of trying to work around it, with the caveat being that we would need to maintain this patch ourselves if upstream doesn't accept it. [issue/66801] Pierre-Henry Fröhring (5): guix: build-system: rebar: build Erlang packages with dependencies. gnu: Add erlang-goldrush. gnu: Add erlang-lager. gnu: Add erlang-unicode-util-compat. gnu: Add erlang-idna. gnu/packages/erlang-xyz.scm | 111 +++++++++++++++ guix/build-system/rebar.scm | 223 ++++++++++++++++++++++-------- guix/build/rebar-build-system.scm | 43 +++--- 3 files changed, 300 insertions(+), 77 deletions(-) create mode 100644 gnu/packages/erlang-xyz.scm base-commit: 4dfbc536689b07e56aead3dd864b8af54613d091 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 1/5] guix: build-system: rebar: build Erlang packages with dependencies. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943557511534 (code B ref 66801); Wed, 08 Nov 2023 09:27:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:15 +0000 Received: from localhost ([127.0.0.1]:44005 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epC-0002zx-0c for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:14 -0500 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:56769) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0ep8-0002zM-Qj for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:12 -0500 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-50970c2115eso4369496e87.1 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435526; x=1700040326; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PkYogAIm7PzarS4jP9yOj87GVmsQhgaZBG6YTTv7X4M=; b=UW87H1HbFIowitEC+CWNvSQagjrDromakR00YzB2bQm5hqIyobSjQK/fEvG/J4wctI UJpoLUzCNSkx14Bku42x+6Tb5mUxv1gVWMHp1ptzz9se7xvEpDF3nJ1P/eYC4pgtxU9J nQPXRpyh8H1XGhaS9ayw1gqcw+fmYCj2Vb4vzB3tKbtWQERfVsPHHF6Uc1/4AQXq/j+6 kADWbepktVLJm1KxqILO4p3Ca+CATYlUxkKteX1otFG+II7oTH54GVc2goEsqjrILnrT s6JFr8YwVg4XfHADkZK19F5OYojSe/A3l/lQXgiWCrmfVvob7hhb4kNTMoVfLN/0whLL ek/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435526; x=1700040326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PkYogAIm7PzarS4jP9yOj87GVmsQhgaZBG6YTTv7X4M=; b=EEmdKpdflT1/9VBrrQpKTZty//4CLMBPJXUgfyP/JFI73dCIbvtBFokCSRNE1kVuL5 rHsswfy87w2w+sP/SHFOhSRetTcxHIrvnY84ynDjDt0y8VAW1cfays1ErNSdQJFFhgph V4b4JQxJXotacBiB31WWPhpMeJoA2RwVMcrlFiSdZM/o5CGZEaT88Q7RIetOPl5WcgDU W44o3Pme9Pd7bidDzoPmwatKEgLnqZ+mO8aPLAdlyycUD8RMMUXcfwr/0uazMmHAAY5W g58wOn8hMsQArgBMNrtjpoNM1gMnR2AkKM2fdFfcy7xskFNLvcZKOGHos1HE1FoH98ES nPgQ== X-Gm-Message-State: AOJu0YxHPtq0XCyPO0qiNo4lqGnnC8/3F8GZaa2mGKKZ5CETobl9sKFM ZwJbxvSGzc7H/EjDzFwgDtqmdvwl4t8ENIg7VLk= X-Google-Smtp-Source: AGHT+IGMtYLgKdTSPN12DdUN+CUZBOXugn3peyFUj4vZz/pWx2dXo71KIEGKhighBeOvMfN5ynRWng== X-Received: by 2002:a05:6512:e98:b0:507:9ae6:6913 with SMTP id bi24-20020a0565120e9800b005079ae66913mr1021202lfb.28.1699435525906; Wed, 08 Nov 2023 01:25:25 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:25 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:35 +0100 Message-ID: <18844f77e7b742e93525ee1faa48e4808bf32b01.1699434044.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=yes Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ie221d47fd1c9a766c2e2cdf76460ddfdf65e090d --- guix/build-system/rebar.scm | 223 ++++++++++++++++++++++-------- guix/build/rebar-build-system.scm | 43 +++--- 2 files changed, 189 insertions(+), 77 deletions(-) diff --git a/guix/build-system/rebar.scm b/guix/build-system/rebar.scm index de1294ec..cdff85a6 100644 --- a/guix/build-system/rebar.scm +++ b/guix/build-system/rebar.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,20 +19,120 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build-system rebar) - #:use-module (guix store) - #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) #:use-module (guix gexp) - #:use-module (guix packages) #:use-module (guix monads) + #:use-module (guix packages) #:use-module (guix search-paths) - #:use-module (guix build-system) - #:use-module (guix build-system gnu) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:export (hexpm-uri hexpm-package-url %rebar-build-system-modules rebar-build rebar-build-system)) + +;;; +;;; Utils +;;; + +(define (flatten lst) (fold append '() lst)) + + +;;; +;;; Packages +;;; + +(define %erlang-package-prefix "erlang-") + +(define (erlang-package-name? name) + "Indicates if NAME is an Erlang package name. +If a package name starts with %erlang-package-prefix, then it is an Erlang package name. +An Erlang package name must start with %erlang-package-prefix." + (string-prefix? %erlang-package-prefix name)) + +(define (hexpm-name pkg-name) + "Given a package name PKG-NAME, returns the corresponding hex.pm package name." + (let ((suffix (string-drop pkg-name (string-length %erlang-package-prefix)))) + (string-replace-substring suffix "-" "_"))) + +(define (all-transitive-inputs pkg pred) + "Given a package PKG and a predicate PRED, return all transitive inputs of PKG +that match the predicate PRED." + (delete-duplicates + (append + (filter pred (package-transitive-inputs pkg)) + (filter pred (package-transitive-native-inputs pkg)) + (filter pred (package-transitive-propagated-inputs pkg))) + input=?)) + + +;;; +;;; Input +;;; + +(define (input-mk name package) + "Build an Input." + (list name package)) + +(define (input->name input) + "Return the name of INPUT." + (car input)) + +(define (input->package input) + "Return the package of INPUT." + (cadr input)) + +(define (input=? i1 i2) + "Test whether Inputs I1 and I2 are equal." + (string=? (input->name i1) (input->name i2))) + +(define (erlang-input? input) + "Test whether INPUT is an Erlang Input." + (erlang-package-name? (input->name input))) + +(define (input->all-inputs input pred) + "Return the list of implicit satisfying PRED Inputs associated to INPUT, including INPUT." + (cons input (all-transitive-inputs (input->package input) pred))) + +(define (inputs->all-erlang-inputs erlang-inputs) + "Return a list of implicit Erlang Inputs associated to INPUT, including INPUT." + (let ((all-inputs (flatten (map (cut input->all-inputs <> erlang-package-name?) erlang-inputs)))) + (delete-duplicates all-inputs input=?))) + + +;;; +;;; Source +;;; + +(define (source-mk name origin) + "Build a source. +NAME is an hex.pm package name. +ORIGIN is an Origin." + (list name origin)) + +(define (source->name source) + "Return the name of SOURCE." + (car source)) + +(define (source->origin source) + "Return the origin of SOURCE." + (cadr source)) + +(define (source=? s1 s2) + "Test whether Sources S1 and S2 are equal." + (string=? (source->name s1) (source->name s2))) + +(define (input->source input) + "Given an Input INPUT, return its associated Source." + (source-mk (hexpm-name (input->name input)) + (package-source (input->package input)))) + + ;;; ;;; Definitions for the hex.pm repository, ;;; @@ -44,10 +145,11 @@ (define %hexpm-repo-url (define hexpm-package-url (string-append (%hexpm-repo-url) "/tarballs/")) -(define (hexpm-uri name version) +(define (hexpm-uri pkg-name version) "Return a URI string for the package hosted at hex.pm corresponding to NAME and VERSION." - (string-append hexpm-package-url name "-" version ".tar")) + (let ((name (if (erlang-package-name? pkg-name) (hexpm-name pkg-name) pkg-name))) + (string-append hexpm-package-url name "-" version ".tar"))) ;; ;; Standard build procedure for Erlang packages using Rebar. @@ -78,42 +180,50 @@ (define* (lower name #:rest arguments) "Return a bag for NAME from the given arguments." (define private-keywords - '(#:target #:rebar #:erlang #:inputs #:native-inputs)) - - (and (not target) ;XXX: no cross-compilation - (bag - (name name) - (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs)) - (build-inputs `(("rebar" ,rebar) - ("erlang" ,erlang) ;; for escriptize - ,@native-inputs - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) - (outputs outputs) - (build rebar-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) + '(#:target #:rebar #:erlang #:inputs #:native-inputs #:erlang-sources)) + + (let* ((inputs-all (append inputs native-inputs)) + (erlang-inputs (filter erlang-input? inputs-all)) + (all-erlang-inputs (inputs->all-erlang-inputs erlang-inputs)) + (all-erlang-sources (map input->source all-erlang-inputs))) + + (and (not target) ;XXX: no cross-compilation + (bag + (name name) + (system system) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs)) + (build-inputs `(("rebar" ,rebar) + ("erlang" ,erlang) ;; for escriptize + ,@inputs + ,@native-inputs + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (outputs outputs) + (build rebar-build) + (arguments (append (list #:erlang-sources all-erlang-sources) + (strip-keyword-arguments private-keywords arguments))))))) (define* (rebar-build name inputs - #:key - guile source - (rebar-flags ''("skip_deps=true" "-vv")) - (tests? #t) - (test-target "eunit") - ;; TODO: install-name ; default: based on guix package name - (install-profile "default") - (phases '(@ (guix build rebar-build-system) - %standard-phases)) - (outputs '("out")) - (search-paths '()) - (native-search-paths '()) - (system (%current-system)) - (imported-modules %rebar-build-system-modules) - (modules '((guix build rebar-build-system) - (guix build utils)))) + #:key + guile source + (rebar-flags ''("skip_deps=true" "-vv")) + (tests? #t) + (test-target "eunit") + ;; TODO: install-name ; default: based on guix package name + (install-profile "default") + (phases '(@ (guix build rebar-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (erlang-sources '()) + (system (%current-system)) + (imported-modules %rebar-build-system-modules) + (modules '((guix build rebar-build-system) + (guix build utils)))) "Build SOURCE with INPUTS." (define builder @@ -123,21 +233,22 @@ (define* (rebar-build name inputs #$(with-build-variables inputs outputs #~(rebar-build #:source #+source - #:system #$system - #:name #$name - #:rebar-flags #$rebar-flags - #:tests? #$tests? - #:test-target #$test-target - ;; TODO: #:install-name #$install-name - #:install-profile #$install-profile - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:outputs %outputs - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:inputs %build-inputs))))) + #:system #$system + #:name #$name + #:rebar-flags #$rebar-flags + #:tests? #$tests? + #:test-target #$test-target + ;; TODO: #:install-name #$install-name + #:install-profile #$install-profile + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)) + #:inputs %build-inputs + #:erlang-sources '#$erlang-sources))))) (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) system #:graft? #f))) diff --git a/guix/build/rebar-build-system.scm b/guix/build/rebar-build-system.scm index fb664228..286e4e1a 100644 --- a/guix/build/rebar-build-system.scm +++ b/guix/build/rebar-build-system.scm @@ -28,6 +28,13 @@ (define-module (guix build rebar-build-system) #:export (rebar-build %standard-phases)) +;; +;; Utils +;; + +(define sep file-name-separator-string) + + ;; ;; Builder-side code of the standard build procedure for Erlang packages using ;; rebar3. @@ -37,27 +44,20 @@ (define-module (guix build rebar-build-system) (define %erlang-libdir "/lib/erlang/lib") -(define* (erlang-depends #:key inputs #:allow-other-keys) - (define input-directories - (match inputs - (((_ . dir) ...) - dir))) - (mkdir-p "_checkouts") - - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir %erlang-libdir))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((dest (string-append elibdir "/" dirname)) - (link (string-append "_checkouts/" dirname))) - (when (not (file-exists? link)) - ;; RETHINK: Maybe better copy and make writable to avoid some - ;; error messages e.g. when using with rebar3-git-vsn. - (symlink dest link)))) - (list-directories elibdir))))) - input-directories)) +(define (configure-environment . _) + (setenv "REBAR_CACHE_DIR" (getcwd))) + +(define* (erlang-depends #:key erlang-sources #:allow-other-keys) + (let ((checkouts "_checkouts")) + (mkdir-p checkouts) + (for-each (lambda (source) + (match source + ((name archive) + (let ((libdir (string-append checkouts sep name))) + (mkdir-p libdir) + (with-directory-excursion libdir + (unpack #:source archive)))))) + erlang-sources))) (define* (unpack #:key source #:allow-other-keys) "Unpack SOURCE in the working directory, and change directory within the @@ -134,6 +134,7 @@ (define* (install #:key name outputs (define %standard-phases (modify-phases gnu:%standard-phases (replace 'unpack unpack) + (add-after 'unpack 'configure-environment configure-environment) (delete 'bootstrap) (delete 'configure) (add-before 'build 'erlang-depends erlang-depends) -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 2/5] gnu: Add erlang-goldrush. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943557511548 (code B ref 66801); Wed, 08 Nov 2023 09:27:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:15 +0000 Received: from localhost ([127.0.0.1]:44008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epC-000301-UF for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:15 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:46135) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0ep9-0002zP-GD for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:12 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4084de32db5so56666425e9.0 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435527; x=1700040327; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=viivGlrMkmICLpCcP4SxN3ZOA8ekQmPV99GlLoDJPfs=; b=cOXI0yU67mQH/HMfluG91RN39UhzEGwQ4Q3nqJTTDYb9nBnQIV7mN/STdT8KIy1SYc kru6pH3PYDC+bVX0Q1RAKsgDAETPnfWus2suzuQjcNDFYB6Q7SFCc/XROreae38YoHlJ NOMV4MaHwG9OOMFrl6iHsnTU29yR1px4anp2rEtsYjn3EQlBSWxAEf784wNw+vC0+zZ5 bL09UH0fE+cyFpJY37/Pf519x6CJ6WzYQiH75c2YxOVnMJ0aIti8RGaGbnkuJrx0A2kP a58/mD3ud7YPht2PdtDS5DmFI+bWzNQVy8CZgSM8l8HrXouVkxTOICh+AK34jhx+33XT t5Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435527; x=1700040327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=viivGlrMkmICLpCcP4SxN3ZOA8ekQmPV99GlLoDJPfs=; b=pTY1FKjRCGHgJ318flraDPdqkDFQPBokj//YZNGH/cXtzlWX2FnHVSq7HGIcgmN1io wUC/6E8y0Ik/UcKaBs2a2Uy+Gw249Vp+9awQtKr2JHV93HHi3uryUDL4CP5MVUw40pOb cSInmczYkSAZiAODH9tkTaCjzfxeyN3d2mF++UdJCSDgfm+GWb3PtpmsMxxEO+v/vf+Z O5sPC3ro1lU2KWjFlWbsmFPwxY89MKTFD9ymDaZ3fPiHJ6bILdRNMfapK2Bnsj2WQkAg AqEPq4gCvZsRIyYeUT7isUfaOLPrloAfv6VMcdNRuw9RMaXu+zD8oYmkWvR82Qrme3xn NgKw== X-Gm-Message-State: AOJu0Yw5RS3aKKmY6OdlEwhRHVcTcYSr6IoYw4mIlbosCVLtmVtB/uj8 z1RGWzq5nETjxfYi8M+PDeOlB+uX7Hz6ej/NTCY= X-Google-Smtp-Source: AGHT+IEEEtB6BLpD2VMxTpNTRqlE0srp1Qkdjkzy893cyG3Em5voJkAqpfDeYAiHHWvVkSTPlScOKA== X-Received: by 2002:a05:600c:45cd:b0:409:325:e499 with SMTP id s13-20020a05600c45cd00b004090325e499mr1176864wmo.32.1699435527018; Wed, 08 Nov 2023 01:25:27 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:26 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:36 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=yes Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: If978f3936375c9391f1655402a4504d708cfa67d --- gnu/packages/erlang-xyz.scm | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 gnu/packages/erlang-xyz.scm diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm new file mode 100644 index 00000000..082af121 --- /dev/null +++ b/gnu/packages/erlang-xyz.scm @@ -0,0 +1,55 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 erlang-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix hg-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (guix git-download) + #:use-module (gnu packages version-control) + #:use-module (srfi srfi-26)) + +(define-public erlang-goldrush + (package + (name "erlang-goldrush") + (version "0.1.9") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1ssck5yr7rnrfwzm55pbyi1scgs1sl1xim75h5sj5czwrwl43jwr")))) + (build-system rebar-build-system) + (synopsis "Erlang event stream processor") + (description "Erlang event stream processor") + (home-page "https://hex.pm/packages/goldrush") + (license license:isc))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 3/5] gnu: Add erlang-lager. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943557611554 (code B ref 66801); Wed, 08 Nov 2023 09:27:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:16 +0000 Received: from localhost ([127.0.0.1]:44010 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epD-00030D-JO for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:15 -0500 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]:54448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epA-0002zQ-H4 for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:13 -0500 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-9dbb3d12aefso987948366b.0 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435528; x=1700040328; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wh93lj73XkJkBbjn7VxuKL8ELDNl9qzjp01s51TBgxU=; b=j91dBUpb7/2tNyB5t4vAx++a0Xybce1kHvUPP5yR/duK+HNOjZiuTzWbf9Uhpzi1Fs tZh64dWNOHRbFQJIjp+of4SJC6bIDEpW0DkiXzu6p0fQfsVPIFL5awFaatmTrD8G8UbZ MEcpYhdTewpn4YsCVPM8DkWhDclTm2AXrUe4JGoW+FNY0tC0L3FMI49Fg7EKG3fcgJIs Bt3RZOcCP0BrVwYvxX0Lhp3uu5ppwJQQGW2PCy4EGIGoIQ4EUhhB/Yj6bCk+AZq8UAk0 hqh2tRMOePBCbTuMD7QbJ5YNz7UiugyG3F8LQOmOjEpbYAY9XMw+SZC13REQySAXE+RG lfJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435528; x=1700040328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Wh93lj73XkJkBbjn7VxuKL8ELDNl9qzjp01s51TBgxU=; b=WRhtBzNgpUibsnnJ8bDOhBHQr2xSfyfoQ/w6QNjH4dkycq84tFYTe8gKSdXRj3T3EZ mdDHX8Xn7Z87hRFzbBadPKXicNxO4ZSDVRGoGMtI1yyT9Vulr7GO/f6MNWwbvkiDbPtV scQly1/F/SqwY9Z2TGbwQkN+sYnTfEaQXjr8DhkXXE9ZxWeCiTAiNCvhDcH/ab+cK0O4 Mm5a1De+GKLFYXgd73tpJIUv9RCyZBoFlinmeaxzTcH0/tA4uDxh/m8tcdvGgbXz5udx viK/T19TGk35OYtJbX5CuVscr0UjPa1OVTBVv4iG3PnIk5qpDupbpGsRbCqspxC1VVu3 47DA== X-Gm-Message-State: AOJu0Yxc1hlTcpLE11FlfrF2tutHWeuZbvjtZ1eAWTjTj1iflVIi+PXI jhycHt1QxrRAFY6ERClRH3s3gIh31YPpApGapWE= X-Google-Smtp-Source: AGHT+IGDyOs3QuYwjiTtwKSJTka0tLq+e9ymW3PtnVR4Ko42YUbMAm9Mlg/uJDbOWbnO2clAgUsGWg== X-Received: by 2002:a17:906:4fd1:b0:9c3:8242:e665 with SMTP id i17-20020a1709064fd100b009c38242e665mr1086502ejw.8.1699435527893; Wed, 08 Nov 2023 01:25:27 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:27 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:37 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Iee1182644d57b7cca08afc6078102cc2409ede18 --- gnu/packages/erlang-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 082af121..4ed8099f 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -48,6 +48,25 @@ (define-public erlang-goldrush (home-page "https://hex.pm/packages/goldrush") (license license:isc))) +(define-public erlang-lager + (package + (name "erlang-lager") + (version "3.9.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0a0c6kvc2jman62vrx2l3nx6xqn8s5l1glvf2mk7xjx8hyg4v43z")))) + (build-system rebar-build-system) + ;; XXX: tests fail. + (arguments (list #:tests? #f)) + (propagated-inputs (list erlang-goldrush)) + (synopsis "Erlang logging framework") + (description "Erlang logging framework") + (home-page "https://hexdocs.pm/lager/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 4/5] gnu: Add erlang-unicode-util-compat. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943557811566 (code B ref 66801); Wed, 08 Nov 2023 09:27:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:18 +0000 Received: from localhost ([127.0.0.1]:44012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epG-00030R-0y for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:18 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:51435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epB-0002zU-Bo for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:13 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4094301d505so49285745e9.2 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435529; x=1700040329; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4ypsHr3nKHrynpXknE/uShktTb0OsbfsjhITD2M0r/8=; b=dLpYq3xYA/BgUT9CAdtl2LYPgn07dz9dMaTKDKRZv3FD3jD1egaA1taXH9xbibcLPG IqOD/pqHYpJ4tojobQEz0rNd6dYL5D/CzD9IjMlckrcItRLf+ZV5H4pEUxBjYN+bWcWM sLEgc0slYuE63mtuIs3p6kkRUZ+6edPUQSr/EmouR3aDVxA3TCABvjKBFkcZth4J6T7/ X+spB0qunvPzJpuEjZKuVBwXtejyYCyvdij/1VRTfW4HM5swXqfP252tF2lvXouUV8Zb i3cVjk3eintOfNZWbaHvwTqk7gLQc50JsrInJos81mr0g47/zwZA0eZ186i/WU+kNCjS FLYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435529; x=1700040329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4ypsHr3nKHrynpXknE/uShktTb0OsbfsjhITD2M0r/8=; b=QWPz70DiEhqyBdTKQ3BUtnMuH7OYwYpiPb4a6jStGIgKFURRGDiiN9sHq8S3cc7m3K igdGlohHMwDe4cCN0He0J/BkqGYDKQSSPaS4PB2TS3j280BcrzDj5jtGysjUk3/7i6aL wXyXBnpsQdqDCwJJnl8kZabUS5YnCXz69a+Xpv35iSwleBqHdnqwd5EZLK3Nqd8ZzHIm LTaHfK5MsFyDypJsWl9fkFku1xP4JyR/JixdsGUp8Jo/OhoaHCzAyMe80DceB6lnwaSq O5BMgq5aqjv5c48Y2rG/B1R5givy/ioV0v3/2MOCNebD61G2gZ1o/ke+dyq7Do3XJZ4c UzOg== X-Gm-Message-State: AOJu0YyDS8SGo1Uws1owR31FL99EjiGZlLa1SaHJAUGIFSUweHz3agyA N6YtW5JNSZUJObt3InKGx7mcZStqag4SZTx9cA8= X-Google-Smtp-Source: AGHT+IGThD8KufFajqFNaxjxaEfaAFxptWxIYs+6F1U83oyWA7UvE1PqSCCogsoDIIrtSX3lzaksgw== X-Received: by 2002:a05:600c:32a7:b0:408:fe93:a2f7 with SMTP id t39-20020a05600c32a700b00408fe93a2f7mr1251287wmp.37.1699435528809; Wed, 08 Nov 2023 01:25:28 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:28 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:38 +0100 Message-ID: <88315e12fd0e624d5f41f92fb8f334f4f5332ff0.1699434044.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: I15009c5dbe10c48bcdba9a143576122c877974b4 --- gnu/packages/erlang-xyz.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 4ed8099f..0c614542 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -67,6 +67,22 @@ (define-public erlang-lager (home-page "https://hexdocs.pm/lager/") (license license:asl2.0))) +(define-public erlang-unicode-util-compat + (package + (name "erlang-unicode-util-compat") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "08952lw8cjdw8w171lv8wqbrxc4rcmb3jhkrdb7n06gngpbfdvi5")))) + (build-system rebar-build-system) + (synopsis "Unicode compatibility library for Erlang < 20") + (description "Unicode compatibility library for Erlang < 20.") + (home-page "https://hex.pm/packages/unicode_util_compat") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 5/5] gnu: Add erlang-idna. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 09:27:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169943557911574 (code B ref 66801); Wed, 08 Nov 2023 09:27:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 09:26:19 +0000 Received: from localhost ([127.0.0.1]:44014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epG-00030V-Fk for submit@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:18 -0500 Received: from mail-lj1-x232.google.com ([2a00:1450:4864:20::232]:56596) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0epC-0002zW-Bz for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 04:26:14 -0500 Received: by mail-lj1-x232.google.com with SMTP id 38308e7fff4ca-2c7369df9d6so11609671fa.1 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 01:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699435530; x=1700040330; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1z9opQWdSkA+NOZihPG5U38VAJQ4CKHGmixh0ZwD+mg=; b=t5hs+SJEiDjd8olFSPUfyOE+pt+xpZR79NkSHNz/n1WRNMsjEcoWmhOORYprCjyrby /wdpieX/YB9ysWIPrLaOPe2v20GWoc429ZCoSbIM16fggk7H+dU8fzidyh2vsxjO7RSU SeoOdXiybzNqQaqw4fCT85aRH5x+OQ30ytNHgkVneNXFMWj1HvGD/6zDvy+o9fuv8ldk A71IcPN+Hzfq6favDPlZzbvEhx8XQaoev6vItFMzVBWEFMlMKfLDNRK/6TVGxmZRHwrj 6/kM000/pba6RWYhsrl8Ss3VruwiD9qAvak+uA+f9fy/nJ9bfcGg+fCIz0e1i3YusqmU E8Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699435530; x=1700040330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1z9opQWdSkA+NOZihPG5U38VAJQ4CKHGmixh0ZwD+mg=; b=o6egN8yY3dZBExlArEui6934t5gwNqwa48xhPr5O+xQAsiQdvXuIolqOO92G6XEyDn MC/tt3V1/+EvR9mNrUaKeQFlKF/dgjsBLMukzTv+giWgmW0BU+KEYcX7ObNJkkaMFJ07 RTIt3/pZInphykllK+MPbSGKXWbxNIUqjDjY1aCM/Y1rh0gjP0noWK/PAUfnz727YZjI 6caeO/w0AQEC+BK94YFpk07jpMFlgbgNuDTATgWu4BiQx/8fp6Nh/5bSazCIwPCtqIY7 LOzETGB7WSmd6ALy6YnGIeLUuJiAITM61sJH5cW+eyGmMQyI/uKqIPxpA2bz4MkS0yuV l0OA== X-Gm-Message-State: AOJu0YwXt73VhuUEOnb0Vsy8yZuDH01JnC7oimSG6cVa8eFfNiFSt8my jLjAxaurfwlj5bjnvs71DKJNeD28b08bv/rRo/A= X-Google-Smtp-Source: AGHT+IHHFgbednE9vUt18CJYaqVuxaLiG6eINNBZZOgji6F2cUtDlrpqo8T1xt9vRdfp69NzvWsotA== X-Received: by 2002:a2e:2c15:0:b0:2c0:2583:520e with SMTP id s21-20020a2e2c15000000b002c02583520emr1167881ljs.41.1699435529702; Wed, 08 Nov 2023 01:25:29 -0800 (PST) Received: from doug.com ([185.244.73.162]) by smtp.gmail.com with ESMTPSA id o8-20020a05600c510800b00407752f5ab6sm18841789wms.6.2023.11.08.01.25.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 01:25:29 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 8 Nov 2023 10:22:39 +0100 Message-ID: <0ac400beb2e94456ae681c6e2d6e09d5513053e6.1699434044.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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 (-) Change-Id: Ie747409e9ef1f8a62ebefbc07131fef91e441a67 --- gnu/packages/erlang-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm index 0c614542..fb614505 100644 --- a/gnu/packages/erlang-xyz.scm +++ b/gnu/packages/erlang-xyz.scm @@ -83,6 +83,27 @@ (define-public erlang-unicode-util-compat (home-page "https://hex.pm/packages/unicode_util_compat") (license license:asl2.0))) +(define-public erlang-idna + (package + (name "erlang-idna") + (version "6.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1sjcjibl34sprpf1dgdmzfww24xlyy34lpj7mhcys4j4i6vnwdwj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-unicode-util-compat)) + (synopsis + "Erlang Internationalized Domain Names in Applications (IDNA) protocol") + (description + "Library to register and look up IDNs in a way + that does not require changes to the DNS itself. IDNA is only meant for +processing domain names, not free text. See: RFC 5891.") + (home-page "https://hexdocs.pm/idna/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 1/5] guix: build-system: rebar: build Erlang packages with dependencies. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Nov 2023 20:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169947611017260 (code B ref 66801); Wed, 08 Nov 2023 20:42:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Nov 2023 20:41:50 +0000 Received: from localhost ([127.0.0.1]:46351 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0pMy-0004UJ-RI for submit@debbugs.gnu.org; Wed, 08 Nov 2023 15:41:49 -0500 Received: from mail-ej1-x642.google.com ([2a00:1450:4864:20::642]:54356) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r0pMv-0004U4-5k for 66801@debbugs.gnu.org; Wed, 08 Nov 2023 15:41:47 -0500 Received: by mail-ej1-x642.google.com with SMTP id a640c23a62f3a-9dbb3d12aefso28968066b.0 for <66801@debbugs.gnu.org>; Wed, 08 Nov 2023 12:41:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699476060; x=1700080860; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=yv9pkPDdqmb0U0Ddqx2mUNQiqUwkPp37qqqwNxmp+IM=; b=IsdPHYlAWW5lLw5wZpGUbHNBfTy29reoEwj6UmgcvYOvDRHvLIf0S7T+zewa5tYrbu mT5dV8zDCyalRUyyqKGUzQ+SmEB4SqZlBlfnA2ddG3/PQMMnGjEYC0gNRT8bnrPZDh/z OLlmSEe49pUDCzkbN5qQ3FCuPqsZ2yjSps57c7McqKDB30/MQC1imPtEyx0sny1ix0ef Y0EDNOpLTmlv6rbGu9IaCUwB+raRS5AeeDKhiMrfxAUZyeIrCaCDhbLSjacdKgxLogbi O6nhzhHxr8Vwq8zl5LUBijFZ+o2L/gqs0Gq8Vwm1EZDFrbn+tq5ZYJj0WwzUrQN14y+q kuCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699476060; x=1700080860; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yv9pkPDdqmb0U0Ddqx2mUNQiqUwkPp37qqqwNxmp+IM=; b=BXCyPWJRrEroIN6JB1OaUfJ3XdTEBu0spXqj+Gb1UUsuDPoM8knvNuc1eas+CuyCux k9QPU3FzcK3QAr5FFaQqtm80lxSoIgPQ20BESceFWP1gbNyHt+EkAXawnLzAI/Yu45Zj Cfv8tRybFl73Sc/Yxl5H0c9DppLQxta6hNJIyVWRby2Ij0nBUP3wAyOtwsXC48Wd5VJH SRqNhI3yeh57MFFDdChcj5ABu2PaYeszoZfjhI/BZvNbI/nKfqmd8sJ2tpIs1L2bF4Kr HRwse3GMzgZtMBNFjJLhLmXnQHV1Wx7yujY2KVl9QFKOSgEIt+vnU85E6ScM6TO7JRGN YHfw== X-Gm-Message-State: AOJu0YwymcvEZpL+JwkGxwN9f7WDOOyTC15NgXPFDn4pau+EQSKsJbH0 WQHCDyc2jt4LuP3IMYebFrI= X-Google-Smtp-Source: AGHT+IGMv50xfuez3r2s3V3dcm3GTFZT1VzaBapDrEwNtPPIqvZ2xTRiRy66BNZGPKCPSIuOaNXBag== X-Received: by 2002:a17:907:9304:b0:9d2:e2f6:45b2 with SMTP id bu4-20020a170907930400b009d2e2f645b2mr2422993ejc.71.1699476060249; Wed, 08 Nov 2023 12:41:00 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id bh11-20020a170906a0cb00b0099bd1a78ef5sm1567675ejb.74.2023.11.08.12.40.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 12:40:58 -0800 (PST) Message-ID: <196ea16d78b1f2292b0dd7f3bfae254ae83c496f.camel@gmail.com> From: Liliana Marie Prikler Date: Wed, 08 Nov 2023 21:40:57 +0100 In-Reply-To: <18844f77e7b742e93525ee1faa48e4808bf32b01.1699434044.git.phfrohring@deeplinks.com> References: <18844f77e7b742e93525ee1faa48e4808bf32b01.1699434044.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) QW0gTWl0dHdvY2gsIGRlbSAwOC4xMS4yMDIzIHVtIDEwOjIyICswMTAwIHNjaHJpZWIgUGllcnJl LUhlbnJ5CkZyw7ZocmluZzoKPiBDaGFuZ2UtSWQ6IEllMjIxZDQ3ZmQxYzlhNzY2YzJlMmNkZjc2 NDYwZGRmZGY2NWUwOTBkCj4gLS0tCk1pc3NpbmcgdGhlIENoYW5nZUxvZyA6KQoKQWxzbywgZG9u J3QgZm9yZ2V0IHRvIGFkZCBtZSB0byBDQyBzbyB0aGF0IEkgY2FuIHNlZSB0aGUgY2hhbmdlcyBt b3JlCmVhc2lseS4KCj4gwqBndWl4L2J1aWxkLXN5c3RlbS9yZWJhci5zY23CoMKgwqDCoMKgwqAg fCAyMjMgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+IC0tCj4gwqBndWl4L2J1aWxkL3Jl YmFyLWJ1aWxkLXN5c3RlbS5zY20gfMKgIDQzICsrKy0tLQo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAx ODkgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2d1aXgv YnVpbGQtc3lzdGVtL3JlYmFyLnNjbSBiL2d1aXgvYnVpbGQtCj4gc3lzdGVtL3JlYmFyLnNjbQo+ IGluZGV4IGRlMTI5NGVjLi5jZGZmODVhNiAxMDA2NDQKPiAtLS0gYS9ndWl4L2J1aWxkLXN5c3Rl bS9yZWJhci5zY20KPiArKysgYi9ndWl4L2J1aWxkLXN5c3RlbS9yZWJhci5zY20KPiBAQCAtMSw2 ICsxLDcgQEAKPiDCoDs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1l bnQgZm9yIEdOVQo+IMKgOzs7IENvcHlyaWdodCDCqSAyMDE2IFJpY2FyZG8gV3VybXVzIDxyZWth ZG9AZWxlcGhseS5uZXQ+Cj4gwqA7OzsgQ29weXJpZ2h0IMKpIDIwMjAgSGFydG11dCBHb2ViZWwg PGguZ29lYmVsQGNyYXp5LWNvbXBpbGVycy5jb20+Cj4gKzs7OyBDb3B5cmlnaHQgwqkgMjAyMyBQ aWVycmUtSGVucnkgRnLDtmhyaW5nCj4gPHBoZnJvaHJpbmdAZGVlcGxpbmtzLmNvbT4KPiDCoDs7 Owo+IMKgOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo+IMKgOzs7Cj4gQEAgLTE4 LDIwICsxOSwxMjAgQEAKPiDCoDs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LsKgIElmIG5vdCwgc2Vl Cj4gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+IMKgCj4gwqAoZGVmaW5lLW1vZHVs ZSAoZ3VpeCBidWlsZC1zeXN0ZW0gcmViYXIpCj4gLcKgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9y ZSkKPiAtwqAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1 aXggYnVpbGQtc3lzdGVtIGdudSkKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3Rl bSkKPiDCoMKgICM6dXNlLW1vZHVsZSAoZ3VpeCBnZXhwKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1 aXggcGFja2FnZXMpCj4gwqDCoCAjOnVzZS1tb2R1bGUgKGd1aXggbW9uYWRzKQo+ICvCoCAjOnVz ZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCj4gwqDCoCAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNo LXBhdGhzKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtKQo+IC3CoCAjOnVz ZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4 IHN0b3JlKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggdXRpbHMpCj4gK8KgICM6dXNlLW1vZHVs ZSAoc3JmaSBzcmZpLTEpCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQo+IMKgwqAg IzpleHBvcnQgKGhleHBtLXVyaQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBoZXhwbS1wYWNr YWdlLXVybAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAlcmViYXItYnVpbGQtc3lzdGVtLW1v ZHVsZXMKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmViYXItYnVpbGQKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcmViYXItYnVpbGQtc3lzdGVtKSkKPiDCoAo+ICsKPiArOzs7Cj4gKzs7 OyBVdGlscwo+ICs7OzsKPiArCj4gKyhkZWZpbmUgKGZsYXR0ZW4gbHN0KSAoZm9sZCBhcHBlbmQg JygpIGxzdCkpCllvdSB1c2UgdGhpcyBwcm9jZWR1cmUgb25jZSBhbmQgeW91IGNhbiBwcm9iYWJs eSByZXBsYWNlIGl0IHdpdGgKYXBwZW5kLW1hcCBmcm9tIFNSRkktMS4KCj4gKzs7Owo+ICs7Ozsg UGFja2FnZXMKPiArOzs7Cj4gKwo+ICsoZGVmaW5lICVlcmxhbmctcGFja2FnZS1wcmVmaXggImVy bGFuZy0iKQo+ICsKPiArKGRlZmluZSAoZXJsYW5nLXBhY2thZ2UtbmFtZT8gbmFtZSkKPiArwqAg IkluZGljYXRlcyBpZiBOQU1FIGlzIGFuIEVybGFuZyBwYWNrYWdlIG5hbWUuCj4gK0lmIGEgcGFj a2FnZSBuYW1lIHN0YXJ0cyB3aXRoICVlcmxhbmctcGFja2FnZS1wcmVmaXgsIHRoZW4gaXQgaXMg YW4KPiBFcmxhbmcgcGFja2FnZSBuYW1lLgo+ICtBbiBFcmxhbmcgcGFja2FnZSBuYW1lIG11c3Qg c3RhcnQgd2l0aCAlZXJsYW5nLXBhY2thZ2UtcHJlZml4LiIKPiArwqAgKHN0cmluZy1wcmVmaXg/ ICVlcmxhbmctcGFja2FnZS1wcmVmaXggbmFtZSkpCj4gKwo+ICsoZGVmaW5lIChoZXhwbS1uYW1l IHBrZy1uYW1lKQo+ICvCoCAiR2l2ZW4gYSBwYWNrYWdlIG5hbWUgUEtHLU5BTUUsIHJldHVybnMg dGhlIGNvcnJlc3BvbmRpbmcgaGV4LnBtCj4gcGFja2FnZSBuYW1lLiIKPiArwqAgKGxldCAoKHN1 ZmZpeCAoc3RyaW5nLWRyb3AgcGtnLW5hbWUgKHN0cmluZy1sZW5ndGggJWVybGFuZy0KPiBwYWNr YWdlLXByZWZpeCkpKSkKPiArwqDCoMKgIChzdHJpbmctcmVwbGFjZS1zdWJzdHJpbmcgc3VmZml4 ICItIiAiXyIpKSkKPiArCj4gKyhkZWZpbmUgKGFsbC10cmFuc2l0aXZlLWlucHV0cyBwa2cgcHJl ZCkKPiArwqAgIkdpdmVuIGEgcGFja2FnZSBQS0cgYW5kIGEgcHJlZGljYXRlIFBSRUQsIHJldHVy biBhbGwgdHJhbnNpdGl2ZQo+IGlucHV0cyBvZiBQS0cKPiArdGhhdCBtYXRjaCB0aGUgcHJlZGlj YXRlIFBSRUQuIgo+ICvCoCAoZGVsZXRlLWR1cGxpY2F0ZXMKPiArwqDCoCAoYXBwZW5kCj4gK8Kg wqDCoCAoZmlsdGVyIHByZWQgKHBhY2thZ2UtdHJhbnNpdGl2ZS1pbnB1dHMgcGtnKSkKPiArwqDC oMKgIChmaWx0ZXIgcHJlZCAocGFja2FnZS10cmFuc2l0aXZlLW5hdGl2ZS1pbnB1dHMgcGtnKSkK PiArwqDCoMKgIChmaWx0ZXIgcHJlZCAocGFja2FnZS10cmFuc2l0aXZlLXByb3BhZ2F0ZWQtaW5w dXRzIHBrZykpKQo+ICvCoMKgIGlucHV0PT8pKQpXZSBhbHJlYWR5IGhhdmUgcGFja2FnZS1kaXJl Y3QtaW5wdXRzLiAgSW5zdGVhZCBvZiBtYXRjaGluZyBsYWJlbHMsIHlvdQptaWdodCB3YW50IHRv IG1hdGNoIHBhY2thZ2UgbmFtZXMgaW5zdGVhZCBhbnl3YXkuCgo+ICsKPiArOzs7Cj4gKzs7OyBJ bnB1dAo+ICs7OzsKPiArCj4gKyhkZWZpbmUgKGlucHV0LW1rIG5hbWUgcGFja2FnZSkKPiArwqAg IkJ1aWxkIGFuIElucHV0LiIKPiArwqAgKGxpc3QgbmFtZSBwYWNrYWdlKSkKPiArCj4gKyhkZWZp bmUgKGlucHV0LT5uYW1lIGlucHV0KQo+ICvCoCAiUmV0dXJuIHRoZSBuYW1lIG9mIElOUFVULiIK PiArwqAgKGNhciBpbnB1dCkpCj4gKwo+ICsoZGVmaW5lIChpbnB1dC0+cGFja2FnZSBpbnB1dCkK PiArwqAgIlJldHVybiB0aGUgcGFja2FnZSBvZiBJTlBVVC4iCj4gK8KgIChjYWRyIGlucHV0KSkK WW91IHNob3VsZG4ndCBkZWZpbmUgc3VjaCBkZXN0cnVjdHVyaW5nIHByb2NlZHVyZXMuICBVc2Ug KGljZS05IG1hdGNoKQp3aGVyZSBuZWVkZWQuCgo+ICsoZGVmaW5lIChpbnB1dD0/IGkxIGkyKQo+ ICvCoCAiVGVzdCB3aGV0aGVyIElucHV0cyBJMSBhbmQgSTIgYXJlIGVxdWFsLiIKPiArwqAgKHN0 cmluZz0/IChpbnB1dC0+bmFtZSBpMSkgKGlucHV0LT5uYW1lIGkyKSkpClllYWgsIGRvbid0IGNv bXBhcmUgbGFiZWxzLgoKPiArKGRlZmluZSAoZXJsYW5nLWlucHV0PyBpbnB1dCkKPiArwqAgIlRl c3Qgd2hldGhlciBJTlBVVCBpcyBhbiBFcmxhbmcgSW5wdXQuIgo+ICvCoCAoZXJsYW5nLXBhY2th Z2UtbmFtZT8gKGlucHV0LT5uYW1lIGlucHV0KSkpCj4gKwo+ICsoZGVmaW5lIChpbnB1dC0+YWxs LWlucHV0cyBpbnB1dCBwcmVkKQo+ICvCoCAiUmV0dXJuIHRoZSBsaXN0IG9mIGltcGxpY2l0IHNh dGlzZnlpbmcgUFJFRCBJbnB1dHMgYXNzb2NpYXRlZCB0bwo+IElOUFVULCBpbmNsdWRpbmcgSU5Q VVQuIgo+ICvCoCAoY29ucyBpbnB1dCAoYWxsLXRyYW5zaXRpdmUtaW5wdXRzIChpbnB1dC0+cGFj a2FnZSBpbnB1dCkgcHJlZCkpKQo+ICsKPiArKGRlZmluZSAoaW5wdXRzLT5hbGwtZXJsYW5nLWlu cHV0cyBlcmxhbmctaW5wdXRzKQo+ICvCoCAiUmV0dXJuIGEgbGlzdCBvZiBpbXBsaWNpdCBFcmxh bmcgSW5wdXRzIGFzc29jaWF0ZWQgdG8gSU5QVVQsCj4gaW5jbHVkaW5nIElOUFVULiIKPiArwqAg KGxldCAoKGFsbC1pbnB1dHMgKGZsYXR0ZW4gKG1hcCAoY3V0IGlucHV0LT5hbGwtaW5wdXRzIDw+ IGVybGFuZy0KPiBwYWNrYWdlLW5hbWU/KSBlcmxhbmctaW5wdXRzKSkpKQo+ICvCoMKgwqAgKGRl bGV0ZS1kdXBsaWNhdGVzIGFsbC1pbnB1dHMgaW5wdXQ9PykpKQpUaGUgbmFtZSwgYXJndW1lbnRz LCBhbmQgZG9jc3RyaW5nIG9mIHRoaXMgZnVuY3Rpb24gZG8gbm90IG1hdGNoIGluIGFueQp3YXku ICBDb25zaWRlciBleHByZXNzaW5nIHlvdXJzZWxmIGluIHRlcm1zIG9mIGtub3duIEd1aWxlIGZ1 bmN0aW9ucy4gIAoKICAoZGVmaW5lICh0cmFuc2l0aXZlLWVybGFuZy1pbnB1dHMgaW5wdXRzKQog ICAgKGRlZmluZSAoZXJsYW5nLWlucHV0cyBpbnB1dHMpCiAgICAgIChmaWx0ZXItbWFwCiAgICAg ICAgKG1hdGNoLWxhbWJkYSAoKG5hbWUgcGFja2FnZSAuIG91dHB1dCkKICAgICAgICAgICAgICAg ICAgICAgICAoYW5kIChlcmxhbmctcGFja2FnZS1uYW1lPynCoAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnMqIG5hbWUgcGFja2FnZSBvdXRwdXQpKSkpCiAgICAgICAgaW5wdXRzKSkK ICAgIChkZWxldGUtZHVwbGljYXRlcwogICAgICAoYXBwZW5kLW1hcCBlcmxhbmctaW5wdXRzwqAK ICAgICAgICAgICAgICAgICAgKGFwcGVuZC1tYXAKICAgICAgICAgICAgICAgICAgIHBhY2thZ2Ut dHJhbnNpdGl2ZS1pbnB1dHMKICAgICAgICAgICAgICAgICAgIChtYXAgY2FkciBpbnB1dHMpKSkp KQoKTm90ZSB0aGF0IHRoZXJlJ3MgYWxtb3N0IGNlcnRhaW5seSBhIHNtYXJ0ZXIgd2F5IHRoYW4g bmVzdGluZyB0d28KYXBwZW5kLW1hcHMsIGJ1dCBhbSBjdXJyZW50bHkgdG9vIGxhenkgdG8gbG9v ayB0aGF0IHVwLgoKPiArCj4gKzs7Owo+ICs7OzsgU291cmNlCj4gKzs7Owo+ICsKPiArKGRlZmlu ZSAoc291cmNlLW1rIG5hbWUgb3JpZ2luKQo+ICvCoCAiQnVpbGQgYSBzb3VyY2UuCj4gK05BTUUg aXMgYW4gaGV4LnBtIHBhY2thZ2UgbmFtZS4KPiArT1JJR0lOIGlzIGFuIE9yaWdpbi4iCj4gK8Kg IChsaXN0IG5hbWUgb3JpZ2luKSkKPiArCj4gKyhkZWZpbmUgKHNvdXJjZS0+bmFtZSBzb3VyY2Up Cj4gK8KgICJSZXR1cm4gdGhlIG5hbWUgb2YgU09VUkNFLiIKPiArwqAgKGNhciBzb3VyY2UpKQo+ ICsKPiArKGRlZmluZSAoc291cmNlLT5vcmlnaW4gc291cmNlKQo+ICvCoCAiUmV0dXJuIHRoZSBv cmlnaW4gb2YgU09VUkNFLiIKPiArwqAgKGNhZHIgc291cmNlKSkKPiArCj4gKyhkZWZpbmUgKHNv dXJjZT0/IHMxIHMyKQo+ICvCoCAiVGVzdCB3aGV0aGVyIFNvdXJjZXMgUzEgYW5kIFMyIGFyZSBl cXVhbC4iCj4gK8KgIChzdHJpbmc9PyAoc291cmNlLT5uYW1lIHMxKSAoc291cmNlLT5uYW1lIHMy KSkpCj4gKwo+ICsoZGVmaW5lIChpbnB1dC0+c291cmNlIGlucHV0KQo+ICvCoCAiR2l2ZW4gYW4g SW5wdXQgSU5QVVQsIHJldHVybiBpdHMgYXNzb2NpYXRlZCBTb3VyY2UuIgo+ICvCoCAoc291cmNl LW1rIChoZXhwbS1uYW1lIChpbnB1dC0+bmFtZSBpbnB1dCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAocGFja2FnZS1zb3VyY2UgKGlucHV0LT5wYWNrYWdlIGlucHV0KSkpKQpBZ2Fpbiwg dXNlIGljZS05IG1hdGNoIGluc3RlYWQgb2YgbWFudWFsbHkgZGVmaW5pbmcgYWxsIHRob3NlCmRl c3RydWN0dXJpbmcgcHJvY2VkdXJlcy4KCj4gKwo+IMKgOzs7Cj4gwqA7OzsgRGVmaW5pdGlvbnMg Zm9yIHRoZSBoZXgucG0gcmVwb3NpdG9yeSwKPiDCoDs7Owo+IEBAIC00NCwxMCArMTQ1LDExIEBA IChkZWZpbmUgJWhleHBtLXJlcG8tdXJsCj4gwqAoZGVmaW5lIGhleHBtLXBhY2thZ2UtdXJsCj4g wqDCoCAoc3RyaW5nLWFwcGVuZCAoJWhleHBtLXJlcG8tdXJsKSAiL3RhcmJhbGxzLyIpKQo+IMKg Cj4gLShkZWZpbmUgKGhleHBtLXVyaSBuYW1lIHZlcnNpb24pCj4gKyhkZWZpbmUgKGhleHBtLXVy aSBwa2ctbmFtZSB2ZXJzaW9uKQo+IMKgwqAgIlJldHVybiBhIFVSSSBzdHJpbmcgZm9yIHRoZSBw YWNrYWdlIGhvc3RlZCBhdCBoZXgucG0KPiBjb3JyZXNwb25kaW5nIHRvIE5BTUUKPiDCoGFuZCBW RVJTSU9OLiIKPiAtwqAgKHN0cmluZy1hcHBlbmQgaGV4cG0tcGFja2FnZS11cmwgbmFtZSAiLSIg dmVyc2lvbiAiLnRhciIpKQo+ICvCoCAobGV0ICgobmFtZSAoaWYgKGVybGFuZy1wYWNrYWdlLW5h bWU/IHBrZy1uYW1lKSAoaGV4cG0tbmFtZSBwa2ctCj4gbmFtZSkgcGtnLW5hbWUpKSkKPiArwqDC oMKgIChzdHJpbmctYXBwZW5kIGhleHBtLXBhY2thZ2UtdXJsIG5hbWUgIi0iIHZlcnNpb24gIi50 YXIiKSkpCj4gwqAKPiDCoDs7Cj4gwqA7OyBTdGFuZGFyZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVy bGFuZyBwYWNrYWdlcyB1c2luZyBSZWJhci4KPiBAQCAtNzgsNDIgKzE4MCw1MCBAQCAoZGVmaW5l KiAobG93ZXIgbmFtZQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6cmVzdCBh cmd1bWVudHMpCj4gwqDCoCAiUmV0dXJuIGEgYmFnIGZvciBOQU1FIGZyb20gdGhlIGdpdmVuIGFy Z3VtZW50cy4iCj4gwqDCoCAoZGVmaW5lIHByaXZhdGUta2V5d29yZHMKPiAtwqDCoMKgICcoIzp0 YXJnZXQgIzpyZWJhciAjOmVybGFuZyAjOmlucHV0cyAjOm5hdGl2ZS1pbnB1dHMpKQo+IC0KPiAt wqAgKGFuZCAobm90IHRhcmdldCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgO1hYWDogbm8gY3Jvc3MtCj4gY29tcGlsYXRpb24KPiAt wqDCoMKgwqDCoMKgIChiYWcKPiAtwqDCoMKgwqDCoMKgwqDCoCAobmFtZSBuYW1lKQo+IC3CoMKg wqDCoMKgwqDCoMKgIChzeXN0ZW0gc3lzdGVtKQo+IC3CoMKgwqDCoMKgwqDCoMKgIChob3N0LWlu cHV0cyBgKCxAKGlmIHNvdXJjZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGAoKCJzb3VyY2UiICxzb3VyY2UpKQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICcoKSkK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQGlucHV0 cykpCj4gLcKgwqDCoMKgwqDCoMKgwqAgKGJ1aWxkLWlucHV0cyBgKCgicmViYXIiICxyZWJhcikK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgiZXJs YW5nIiAsZXJsYW5nKSA7OyBmb3IgZXNjcmlwdGl6ZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLEBuYXRpdmUtaW5wdXRzCj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBLZWVwIHRoZSBzdGFuZGFy ZCBpbnB1dHMgb2YgJ2dudS1idWlsZC0KPiBzeXN0ZW0nLgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLEAoc3RhbmRhcmQtcGFja2FnZXMpKSkKPiAt wqDCoMKgwqDCoMKgwqDCoCAob3V0cHV0cyBvdXRwdXRzKQo+IC3CoMKgwqDCoMKgwqDCoMKgIChi dWlsZCByZWJhci1idWlsZCkKPiAtwqDCoMKgwqDCoMKgwqDCoCAoYXJndW1lbnRzIChzdHJpcC1r ZXl3b3JkLWFyZ3VtZW50cyBwcml2YXRlLWtleXdvcmRzCj4gYXJndW1lbnRzKSkpKSkKPiArwqDC oMKgICcoIzp0YXJnZXQgIzpyZWJhciAjOmVybGFuZyAjOmlucHV0cyAjOm5hdGl2ZS1pbnB1dHMg IzplcmxhbmctCj4gc291cmNlcykpCj4gKwo+ICvCoCAobGV0KiAoKGlucHV0cy1hbGwgKGFwcGVu ZCBpbnB1dHMgbmF0aXZlLWlucHV0cykpCj4gK8KgwqDCoMKgwqDCoMKgwqAgKGVybGFuZy1pbnB1 dHMgKGZpbHRlciBlcmxhbmctaW5wdXQ/IGlucHV0cy1hbGwpKQo+ICvCoMKgwqDCoMKgwqDCoMKg IChhbGwtZXJsYW5nLWlucHV0cyAoaW5wdXRzLT5hbGwtZXJsYW5nLWlucHV0cyBlcmxhbmctCj4g aW5wdXRzKSkKPiArwqDCoMKgwqDCoMKgwqDCoCAoYWxsLWVybGFuZy1zb3VyY2VzIChtYXAgaW5w dXQtPnNvdXJjZSBhbGwtZXJsYW5nLWlucHV0cykpKQpJbnN0ZWFkIG9mIGxldC1iaW5kaW5nIHRo ZXNlLCB5b3UgbWlnaHQgd2FudCB0byBkZWZpbmUgYSBwcm9jZWR1cmUKKGVybGFuZy1zb3VyY2Vz IGlucHV0cyBuYXRpdmUtaW5wdXRzKSBhbmQgdGhlbiB1c2UgdGhhdCBmb3IgIzplcmxhbmctCnNv dXJjZXMuCgo+ICvCoMKgwqAgKGFuZCAobm90IHRhcmdldCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgO1hYWDogbm8gY3Jvc3MtY29tcGlsYXRpb24KPiArwqDCoMKgwqDCoMKg wqDCoCAoYmFnCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChuYW1lIG5hbWUpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgIChzeXN0ZW0gc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaG9z dC1pbnB1dHMgYCgsQChpZiBzb3VyY2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYCgoInNvdXJjZSIgLHNvdXJjZSkpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLEBpbnB1dHMpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQtaW5wdXRz IGAoKCJyZWJhciIgLHJlYmFyKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICgiZXJsYW5nIiAsZXJsYW5nKSA7OyBmb3IgZXNjcmlwdGl6ZQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICxA aW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLEBuYXRpdmUtaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgS2VlcCB0aGUgc3RhbmRhcmQgaW5wdXRzIG9mICdnbnUt Cj4gYnVpbGQtc3lzdGVtJy4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAsQChzdGFuZGFyZC1wYWNrYWdlcykpKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoCAob3V0cHV0cyBvdXRwdXRzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQg cmViYXItYnVpbGQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChhcmd1bWVudHMgKGFwcGVuZCAo bGlzdCAjOmVybGFuZy1zb3VyY2VzIGFsbC1lcmxhbmctCj4gc291cmNlcykKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaXAt a2V5d29yZC1hcmd1bWVudHMgcHJpdmF0ZS0KPiBrZXl3b3JkcyBhcmd1bWVudHMpKSkpKSkpCj4g wqAKPiDCoChkZWZpbmUqIChyZWJhci1idWlsZCBuYW1lIGlucHV0cwo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWlsZSBzb3VyY2UKPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHJlYmFyLWZsYWdzICcnKCJza2lwX2Rl cHM9dHJ1ZSIgIi12diIpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAodGVzdHM/ICN0KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAodGVzdC10YXJnZXQgImV1bml0IikKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgVE9ETzogaW5zdGFsbC1uYW1lwqAgOyBkZWZhdWx0 OiBiYXNlZCBvbgo+IGd1aXggcGFja2FnZSBuYW1lCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnN0YWxsLXByb2ZpbGUgImRlZmF1bHQiKQo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocGhhc2VzICcoQCAoZ3Vp eCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICVzdGFuZGFyZC1waGFz ZXMpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAob3V0 cHV0cyAnKCJvdXQiKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChuYXRpdmUtc2VhcmNoLXBhdGhzICcoKSkKPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHN5c3RlbSAoJWN1cnJlbnQtc3lzdGVt KSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGltcG9y dGVkLW1vZHVsZXMgJXJlYmFyLWJ1aWxkLXN5c3RlbS0KPiBtb2R1bGVzKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobW9kdWxlcyAnKChndWl4IGJ1aWxk IHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpKQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzprZXkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1aWxlIHNvdXJjZQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHJlYmFyLWZsYWdzICcn KCJza2lwX2RlcHM9dHJ1ZSIgIi12diIpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKHRlc3RzPyAjdCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICh0ZXN0LXRhcmdldCAiZXVuaXQiKQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgVE9ETzogaW5zdGFsbC1uYW1lwqAgOyBkZWZh dWx0OiBiYXNlZCBvbgo+IGd1aXggcGFja2FnZSBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5zdGFsbC1wcm9maWxlICJkZWZhdWx0IikKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChwaGFzZXMgJyhAIChndWl4 IGJ1aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICVzdGFuZGFyZC1waGFzZXMp KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG91dHB1dHMg Jygib3V0IikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo c2VhcmNoLXBhdGhzICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChuYXRpdmUtc2VhcmNoLXBhdGhzICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChlcmxhbmctc291cmNlcyAnKCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICglY3VycmVudC1zeXN0ZW0p KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGltcG9ydGVk LW1vZHVsZXMgJXJlYmFyLWJ1aWxkLXN5c3RlbS1tb2R1bGVzKQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCByZWJhci1i dWlsZC1zeXN0ZW0pCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGd1aXggYnVpbGQgdXRpbHMpKSkpCj4gwqDCoCAiQnVp bGQgU09VUkNFIHdpdGggSU5QVVRTLiIKPiDCoAo+IMKgwqAgKGRlZmluZSBidWlsZGVyCj4gQEAg LTEyMywyMSArMjMzLDIyIEBAIChkZWZpbmUqIChyZWJhci1idWlsZCBuYW1lIGlucHV0cwo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12YXJpYWJsZXMgaW5wdXRzIG91 dHB1dHMKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICN+KHJlYmFyLWJ1aWxkICM6c291 cmNlICMrc291cmNlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjOnN5c3RlbSAjJHN5c3RlbQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgIzpuYW1lICMkbmFtZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIzpyZWJhci1mbGFncyAjJHJlYmFyLWZsYWdzCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRlc3RzPyAjJHRlc3RzPwo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0LXRhcmdldCAjJHRlc3Qt dGFyZ2V0Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBU T0RPOiAjOmluc3RhbGwtbmFtZSAjJGluc3RhbGwtbmFtZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzppbnN0YWxsLXByb2ZpbGUgIyRpbnN0YWxsLXByb2Zp bGUKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6cGhhc2Vz ICMkKGlmIChwYWlyPyBwaGFzZXMpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc2V4cC0+Z2V4cCBwaGFz ZXMpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOm91dHB1dHMgJW91dHB1dHMKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6c2VhcmNoLXBhdGhzICcjJChzZXhwLT5nZXhw Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtYXAgc2VhcmNoLXBhdGgtCj4gc3BlY2lmaWNh dGlvbi0+c2V4cAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VhcmNoLXBh dGhzKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5w dXRzICVidWlsZC1pbnB1dHMpKSkpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnN5c3RlbSAjJHN5c3RlbQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOm5hbWUgIyRu YW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6cmViYXItZmxhZ3MgIyRyZWJhci1mbGFncwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRlc3RzPyAjJHRlc3RzPwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjOnRlc3QtdGFyZ2V0ICMkdGVzdC10YXJnZXQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgVE9ETzogIzppbnN0YWxsLW5hbWUg IyRpbnN0YWxsLW5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIzppbnN0YWxsLXByb2ZpbGUgIyRpbnN0YWxsLXByb2ZpbGUKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzpwaGFzZXMgIyQoaWYgKHBhaXI/IHBoYXNlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNleHAtPmdleHAgcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBwaGFzZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6b3V0cHV0cyAlb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJjaC1wYXRocyAnIyQoc2V4 cC0+Z2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtYXAgc2Vh cmNoLXBhdGgtCj4gc3BlY2lmaWNhdGlvbi0+c2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aHMpKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmlucHV0cyAlYnVp bGQtaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6ZXJsYW5nLXNvdXJjZXMgJyMkZXJsYW5nLXNvdXJjZXMpKSkpKQo+IMKg Cj4gwqDCoCAobWxldCAlc3RvcmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAo b3IgZ3VpbGUKPiAoZGVmYXVsdC1ndWlsZSkpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzeXN0ZW0gIzpncmFmdD8KPiAjZikpKQo+IGRpZmYgLS1naXQgYS9n dWl4L2J1aWxkL3JlYmFyLWJ1aWxkLXN5c3RlbS5zY20gYi9ndWl4L2J1aWxkL3JlYmFyLQo+IGJ1 aWxkLXN5c3RlbS5zY20KPiBpbmRleCBmYjY2NDIyOC4uMjg2ZTRlMWEgMTAwNjQ0Cj4gLS0tIGEv Z3VpeC9idWlsZC9yZWJhci1idWlsZC1zeXN0ZW0uc2NtCj4gKysrIGIvZ3VpeC9idWlsZC9yZWJh ci1idWlsZC1zeXN0ZW0uc2NtCj4gQEAgLTI4LDYgKzI4LDEzIEBAIChkZWZpbmUtbW9kdWxlIChn dWl4IGJ1aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiDCoMKgICM6ZXhwb3J0IChyZWJhci1idWls ZAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiDCoAo+ICs7 Owo+ICs7OyBVdGlscwo+ICs7Owo+ICsKPiArKGRlZmluZSBzZXAgZmlsZS1uYW1lLXNlcGFyYXRv ci1zdHJpbmcpCkhvdyBhYm91dCBubz8KCj4gKwo+IMKgOzsKPiDCoDs7IEJ1aWxkZXItc2lkZSBj b2RlIG9mIHRoZSBzdGFuZGFyZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVybGFuZwo+IHBhY2thZ2Vz IHVzaW5nCj4gwqA7OyByZWJhcjMuCj4gQEAgLTM3LDI3ICs0NCwyMCBAQCAoZGVmaW5lLW1vZHVs ZSAoZ3VpeCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gwqAKPiDCoChkZWZpbmUgJWVybGFu Zy1saWJkaXIgIi9saWIvZXJsYW5nL2xpYiIpCj4gwqAKPiAtKGRlZmluZSogKGVybGFuZy1kZXBl bmRzICM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCj4gLcKgIChkZWZpbmUgaW5wdXQt ZGlyZWN0b3JpZXMKPiAtwqDCoMKgIChtYXRjaCBpbnB1dHMKPiAtwqDCoMKgwqDCoCAoKChfIC4g ZGlyKSAuLi4pCj4gLcKgwqDCoMKgwqDCoCBkaXIpKSkKPiAtwqAgKG1rZGlyLXAgIl9jaGVja291 dHMiKQo+IC0KPiAtwqAgKGZvci1lYWNoCj4gLcKgwqAgKGxhbWJkYSAoaW5wdXQtZGlyKQo+IC3C oMKgwqDCoCAobGV0ICgoZWxpYmRpciAoc3RyaW5nLWFwcGVuZCBpbnB1dC1kaXIgJWVybGFuZy1s aWJkaXIpKSkKPiAtwqDCoMKgwqDCoMKgICh3aGVuIChkaXJlY3RvcnktZXhpc3RzPyBlbGliZGly KQo+IC3CoMKgwqDCoMKgwqDCoMKgIChmb3ItZWFjaAo+IC3CoMKgwqDCoMKgwqDCoMKgwqAgKGxh bWJkYSAoZGlybmFtZSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV0ICgoZGVzdCAoc3Ry aW5nLWFwcGVuZCBlbGliZGlyICIvIiBkaXJuYW1lKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAobGluayAoc3RyaW5nLWFwcGVuZCAiX2NoZWNrb3V0cy8iIGRpcm5hbWUp KSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdoZW4gKG5vdCAoZmlsZS1leGlzdHM/ IGxpbmspKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgUkVUSElOSzogTWF5 YmUgYmV0dGVyIGNvcHkgYW5kIG1ha2Ugd3JpdGFibGUgdG8KPiBhdm9pZCBzb21lCj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBlcnJvciBtZXNzYWdlcyBlLmcuIHdoZW4gdXNp bmcgd2l0aCByZWJhcjMtZ2l0LQo+IHZzbi4KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChzeW1saW5rIGRlc3QgbGluaykpKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgIChsaXN0LWRp cmVjdG9yaWVzIGVsaWJkaXIpKSkpKQo+IC3CoMKgIGlucHV0LWRpcmVjdG9yaWVzKSkKPiArKGRl ZmluZSAoY29uZmlndXJlLWVudmlyb25tZW50IC4gXykKPiArwqAgKHNldGVudiAiUkVCQVJfQ0FD SEVfRElSIiAoZ2V0Y3dkKSkpCkhvdyBhYm91dCBzaW1wbHkgbmFtaW5nIHRoaXMgY29uZmlndXJl LCBzbyB0aGF0IHlvdSBjYW4gdXNlIHJlcGxhY2UKaW5zdGVhZCBvZiBhZGQtYWZ0ZXIgKyBkZWxl dGUgYmVsb3c/Cgo+ICsoZGVmaW5lKiAoZXJsYW5nLWRlcGVuZHMgIzprZXkgZXJsYW5nLXNvdXJj ZXMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAobGV0ICgoY2hlY2tvdXRzICJfY2hlY2tvdXRz IikpCj4gK8KgwqDCoCAobWtkaXItcCBjaGVja291dHMpCj4gK8KgwqDCoCAoZm9yLWVhY2ggKGxh bWJkYSAoc291cmNlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1hdGNoIHNv dXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgobmFtZSBhcmNoaXZl KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxldCAoKGxpYmRpciAo c3RyaW5nLWFwcGVuZCBjaGVja291dHMgc2VwCj4gbmFtZSkpKQpBbHRlcm5hdGl2ZWx5IGFkZCBh IHNsYXNoICgvKSB0byBjaGVja291dHMgOykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAobWtkaXItcCBsaWJkaXIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKHdpdGgtZGlyZWN0b3J5LWV4Y3Vyc2lvbiBsaWJkaXIKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHVucGFjayAjOnNvdXJj ZSBhcmNoaXZlKSkpKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVybGFuZy1zb3Vy Y2VzKSkpClRoaXMgbG9zZXMgdGhlIHByZXZpb3VzIGVybGFuZy1kZXBlbmRzIGxvZ2ljLCB3aGlj aCB1bnBhY2thZ2VkIHRoZQphbHJlYWR5IGNvbXBpbGVkIHBhY2thZ2VzLiAgSSByZWFsbHkgZG9u J3QgdGhpbmsgd2Ugc2hvdWxkIGhhdmUgZXJsYW5nCmJlIHlldCBhbm90aGVyIHJ1c3QgdGhhdCBo ZWF0cyB1cCB0aGUgcGxhbmV0IGNvbXBpbGluZyBsZWZ0cGFkIG92ZXIgYW5kCm92ZXIgYWdhaW4u ICBDYW4gd2Ugc29tZWhvdyBoYXZlIHRoYXQgY2FrZT8KCj4gwqAoZGVmaW5lKiAodW5wYWNrICM6 a2V5IHNvdXJjZSAjOmFsbG93LW90aGVyLWtleXMpCj4gwqDCoCAiVW5wYWNrIFNPVVJDRSBpbiB0 aGUgd29ya2luZyBkaXJlY3RvcnksIGFuZCBjaGFuZ2UgZGlyZWN0b3J5Cj4gd2l0aGluIHRoZQo+ IEBAIC0xMzQsNiArMTM0LDcgQEAgKGRlZmluZSogKGluc3RhbGwgIzprZXkgbmFtZSBvdXRwdXRz Cj4gwqAoZGVmaW5lICVzdGFuZGFyZC1waGFzZXMKPiDCoMKgIChtb2RpZnktcGhhc2VzIGdudTol c3RhbmRhcmQtcGhhc2VzCj4gwqDCoMKgwqAgKHJlcGxhY2UgJ3VucGFjayB1bnBhY2spCj4gK8Kg wqDCoCAoYWRkLWFmdGVyICd1bnBhY2sgJ2NvbmZpZ3VyZS1lbnZpcm9ubWVudCBjb25maWd1cmUt ZW52aXJvbm1lbnQpCj4gwqDCoMKgwqAgKGRlbGV0ZSAnYm9vdHN0cmFwKQo+IMKgwqDCoMKgIChk ZWxldGUgJ2NvbmZpZ3VyZSkKPiDCoMKgwqDCoCAoYWRkLWJlZm9yZSAnYnVpbGQgJ2VybGFuZy1k ZXBlbmRzIGVybGFuZy1kZXBlbmRzKQoKQ2hlZXJzCg== From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 1/5] guix: build-system: rebar: build Erlang packages with dependencies. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Nov 2023 19:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169990198632151 (code B ref 66801); Mon, 13 Nov 2023 19:00:02 +0000 Received: (at 66801) by debbugs.gnu.org; 13 Nov 2023 18:59:46 +0000 Received: from localhost ([127.0.0.1]:59340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2c9x-0008MV-KC for submit@debbugs.gnu.org; Mon, 13 Nov 2023 13:59:46 -0500 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]:42027) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2c9w-0008MJ-1i for 66801@debbugs.gnu.org; Mon, 13 Nov 2023 13:59:44 -0500 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-5a8628e54d4so39843787b3.0 for <66801@debbugs.gnu.org>; Mon, 13 Nov 2023 10:59:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699901937; x=1700506737; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=bdr/8XJeo800LrlzwN0TTixKwI163iGmkJYGeJmRHDA=; b=vxXZoREoCYrqbnTLGLWPe7GAviw1kOtukx6hA63wX3qcQyp9++vE8PFrO3j/C99yFB xcBCNd5r9JD/1+vLT4j5eM2tldQDU8Sx13tTjAOzg5btt93sjNXdTJHa2BrVN190pB+D JvLTY5y5uQ83M7iIgTtorLCXSHn5UIYObXAltgI1wEfPAC5oRGyUIDKL3Bi60UkEIAp4 O4ZxMF9Nxsv+XV6KVJ3nrd09sDZoQTp//n+rxQNeKZ2DiX9f6L80XGVDy0O6f6BaIi4c /pmYxWQJFVrGS1je6OOA6R0xVKsu8JZvdr+ze5fzl0Tzfa1DOnO7+ogCihUSIYFMU3xs DR1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699901937; x=1700506737; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=bdr/8XJeo800LrlzwN0TTixKwI163iGmkJYGeJmRHDA=; b=FH4OU0ZuaYeDcSy5qNagC/9MsnFQY3F2sSlN/2SjRPcJWC69QOT1knEmJH+87eplhB jkzX9778QZzj+8A2Ixh0AVMlQ4e2NtYbMI9fo6zEdNPS6fuRa/eQncCASftusj3n6lxd xG/Ke9E3u6llKX7d+OPWGkq7BI4TaLRGpwVxzBUiW/tgYxk92X9fBKlFjJ0l2WkMW7Cz TA87ImzlVnfgW9UwrW0OU8xdCPp4IjwBekPZlqfBi5EX+04y+m1vr5EHIGK4ujXgOpwN eBN31i4m4l5xkkK48ZaHI2g6xjGbPiruUPP0YQA/OG7lA1rmeTPJmkyE7hLFD2BIFtiJ 3a6A== X-Gm-Message-State: AOJu0YyWMamomwlcja7snuUNGyEj4AcnpOSeL7IY1iNKiJpM0DRuQzvy chLV4mWysWcOIrZHQmEb+Y87Eh+/3M+iLZelK+fmwA== X-Google-Smtp-Source: AGHT+IG3vVbDRfEb7kBRPDldz3eC0zIz8K1NIWWOI3A9ggYoacz/NPbQ4oxj7H636wwxEYZoDk3LBflChFQDk8jtCE8= X-Received: by 2002:a0d:e5c7:0:b0:5c1:179b:2833 with SMTP id o190-20020a0de5c7000000b005c1179b2833mr347175ywe.3.1699901936694; Mon, 13 Nov 2023 10:58:56 -0800 (PST) MIME-Version: 1.0 References: <18844f77e7b742e93525ee1faa48e4808bf32b01.1699434044.git.phfrohring@deeplinks.com> <196ea16d78b1f2292b0dd7f3bfae254ae83c496f.camel@gmail.com> In-Reply-To: <196ea16d78b1f2292b0dd7f3bfae254ae83c496f.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Mon, 13 Nov 2023 19:58:45 +0100 Message-ID: Content-Type: multipart/mixed; boundary="00000000000017cc62060a0d43a1" X-Spam-Score: 0.0 (/) 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 (-) --00000000000017cc62060a0d43a1 Content-Type: multipart/alternative; boundary="00000000000017cc5f060a0d439f" --00000000000017cc5f060a0d439f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This loses the previous erlang-depends logic, which unpackaged the already compiled packages. I really don't think we should have erlang be yet another rust that heats up the planet compiling leftpad over and over again. Can we somehow have that cake? Okay, perhaps it would have been better to start working on the Mix building system and inform you simultaneously, instead of sending patches all at once. So, let's start anew. I have taken into account all of your suggestions and have crafted this patch introducing the mix-build-system. Yes, there are ChangeLogs now. Currently, the "Machete" package is compiled and tested without repeatedly compiling leftpad =E2=80=94 i.e., considering pure Elixir packages up to transitive dependencies, it works as expected. This is new. As I'm learning how all this works, I'm not entirely sure that updating the rebar build system is absolutely necessary. I suppose we will understand more as we add an increasing number of Elixir packages, especially when incorporating Elixir packages with Erlang dependencies. So, here's what's coming up: 1. A patch that introduces the mix-build-system variable. 2. Several patches that introduce Elixir packages, up to elixir-machete, which is one of the few packages that includes tests in the tarball. I guess the next steps are as follows: 1. To determine if the approach is acceptable. Will we boil the world by compiling left-pad endlessly? 2. If the approach is deemed acceptable, the next step is to evaluate the code. Is the code riddled with delicious regexes? 3. If the first two points are verified, it might be worthwhile to continue developing this implementation until Phoenix is successfully compiled and tested as expected. For reference, I have attached a file named `mix-build-system.org'. This file contains a description of a prototype in Bash that illustrates the approach taken in this patch. Cheers. --00000000000017cc5f060a0d439f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
=C2=A0 =C2=A0 =C2=A0 This loses the previous erlang-depend= s logic, which unpackaged the
=C2=A0 =C2=A0 =C2=A0 already compiled pack= ages.=C2=A0 I really don't think we should have erlang be
=C2=A0 =C2= =A0 =C2=A0 yet another rust that heats up the planet compiling leftpad over= and over
=C2=A0 =C2=A0 =C2=A0 again.=C2=A0 Can we somehow have that cak= e?

Okay, perhaps it would have been better to start working on the M= ix building system
and inform you simultaneously, instead of sending pat= ches all at once. So, let's
start anew.

I have taken into acc= ount all of your suggestions and have crafted this patch
introducing the= mix-build-system. Yes, there are ChangeLogs now. Currently, the
"M= achete" package is compiled and tested without repeatedly compiling le= ftpad =E2=80=94 i.e.,
considering pure Elixir packages up to transitive = dependencies, it works as
expected. This is new.

As I'm learn= ing how all this works, I'm not entirely sure that updating the rebarbuild system is absolutely necessary. I suppose we will understand more a= s we add an
increasing number of Elixir packages, especially when incorp= orating Elixir packages
with Erlang dependencies.

So, here's = what's coming up:

1. A patch that introduces the mix-build-syste= m variable.
2. Several patches that introduce Elixir packages, up to eli= xir-machete, which is one
=C2=A0 =C2=A0of the few packages that includes= tests in the tarball.

I guess the next steps are as follows:
1. To determine if the approach is acceptable. Will we boil the world by c= ompiling
=C2=A0 =C2=A0left-pad endlessly?
2. If the approach is deeme= d acceptable, the next step is to evaluate the code. Is
=C2=A0 =C2=A0the= code riddled with delicious regexes?
3. If the first two points are ver= ified, it might be worthwhile to continue
=C2=A0 =C2=A0developing this i= mplementation until Phoenix is successfully compiled and tested
=C2=A0 = =C2=A0as expected.

For reference, I have attached a file named `mix-build-system.org'.
This= file contains a description of a prototype in Bash that
illustrates the= approach taken in this patch.

Cheers.
--00000000000017cc5f060a0d439f-- --00000000000017cc62060a0d43a1 Content-Type: application/octet-stream; name="mix-build-system.org" Content-Disposition: attachment; filename="mix-build-system.org" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lox9pl3o0 IyBiZWdpbl9wcm9wZXJ0aWVzCiMrUFJPUEVSVFk6IGhlYWRlci1hcmdzIDpub3dlYiB5ZXMKIyBl bmRfcHJvcGVydGllcwoKCiMrVElUTEU6IE1peCBidWlsZCBzeXN0ZW0KCgoqIEludHJvZHVjdGlv bgpUaGUgYWltIGlzIHRvIGludHJvZHVjZSBhIH5taXggYnVpbGQgc3lzdGVtfiwgYSBzdGFuZGFy ZGl6ZWQgbWV0aG9kIHRoYXQgZW5hYmxlcyBHdWl4CnRvIGNvbnN0cnVjdCBFbGl4aXIgcGFja2Fn ZXMuIEluaXRpYWxseSwgd2UgZXN0YWJsaXNoIGEgQmFzaCBwcm9jZWR1cmUgZm9yIGJ1aWxkaW5n CkVsaXhpciBwYWNrYWdlcy4gV2UgdGhlbiBleHBsb3JlIHRoZSBhZGFwdGF0aW9uIG9mIHRoaXMg cHJvY2VkdXJlIHRvIEd1aXguCgoKKiBBIHByb2NlZHVyZSB0byBidWlsZCBFbGl4aXIgcGFja2Fn ZXMKVGhlIGJ1aWxkIHByb2NlZHVyZSBpcyBkaXZpZGVkIGludG8gdHdvIHN0ZXBzOiB+YnVpbGRf ZGlyZWN0b3J5fiBhbmQKfmNvbXBpbGVfdGVzdF9pbnN0YWxsfi4gVGhlc2Ugc3RlcHMgdXNlIGFy Z3VtZW50cyB0aGF0IG1pcnJvciB0aGUgcHJvamVjdCBjb25maWd1cmF0aW9uCm9wdGlvbnMgb3V0 bGluZWQgaW4gW1todHRwczovL2hleGRvY3MucG0vbWl4LzEuMTQvTWl4LlByb2plY3QuaHRtbF1b TWl4LlByb2plY3RdXS4KIytiZWdpbl9zcmMgYmFzaApndWl4IHNoZWxsIC1EIC1mIGd1aXguc2Nt IC0tIGJhc2ggYnVpbGRfZGlyZWN0b3J5IFwKICAgICAtLWFyY2hpdmUgPGZpbGVuYW1lPiBcCiAg ICAgLS1idWlsZC1wZXItZW52aXJvbm1lbnQgPGJvb2xlYW4+IFwKICAgICAtLWxvZyA8Ym9vbGVh bj4gXAogICAgIC0tb3V0IDxwYXRoPiBcCiAgICAgLS1kZXBzLXBhdGggPHBhdGg+IFwKICAgICAt LXRlc3QgPGJvb2xlYW4+IFwKICAgICAtLXdvcmtkaXIgPHBhdGg+CgpndWl4IHNoZWxsIC1DIC1E IC1mIGd1aXguc2NtIC0tIGJhc2ggY29tcGlsZV90ZXN0X2luc3RhbGwgXAogICAgIC0tYXJjaGl2 ZSA8ZmlsZW5hbWU+IFwKICAgICAtLWJ1aWxkLXBlci1lbnZpcm9ubWVudCA8Ym9vbGVhbj4gXAog ICAgIC0tbG9nIDxib29sZWFuPiBcCiAgICAgLS1vdXQgPHBhdGg+IFwKICAgICAtLWRlcHMtcGF0 aCA8cGF0aD4gXAogICAgIC0tdGVzdCA8Ym9vbGVhbj4gXAogICAgIC0td29ya2RpciA8cGF0aD4K IytlbmRfc3JjCi0gfmFyY2hpdmV+IHJlZmVycyB0byB0aGUgbmFtZSBvZiB0aGUgdGFyYmFsbCB0 byBiZSByZXRyaWV2ZWQgZnJvbSBbW2h0dHBzOi8vaGV4LnBtL11dLCBmb3IgZXhhbXBsZSwgfnBo b2VuaXgtMS43LjEwLnRhcn4uCi0gfmJ1aWxkLXBlci1lbnZpcm9ubWVudH4gaXMgYSBzZXR0aW5n IGRldGFpbGVkIGluIFtbaHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE0L01peC5Qcm9qZWN0Lmh0 bWxdW01peC5Qcm9qZWN0XV0uCi0gfmxvZ34gaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGV4ZWN1dGlv biBzaG91bGQgYmUgbG9nZ2VkLgotIH50ZXN0fiBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gcnVuIHRl c3RzLgotIH5vdXR+IHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHBhdGggd2hlcmUgdGhlIHBhY2th Z2Ugd2lsbCBiZSBpbnN0YWxsZWQuCi0gfmRlcHN+IGlzIGEgY29uZmlndXJhdGlvbiBvcHRpb24g ZXhwbGFpbmVkIGluIFtbaHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE0L01peC5Qcm9qZWN0Lmh0 bWxdW01peC5Qcm9qZWN0XV0uCi0gfndvcmtkaXJ+IGlzIGVpdGhlciB0aGUgYWJzb2x1dGUgb3Ig cmVsYXRpdmUgcGF0aCB0byB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hlcmUgdGhlIGJ1aWxkIHBy b2Nlc3Mgd2lsbCB0YWtlIHBsYWNlLgoKCioqIEVudmlyb25tZW50CjpQUk9QRVJUSUVTOgo6SUQ6 ICAgICAgIDVmNTVlZDJkLTYzMDEtNDYwYi1iYzc4LWM0MTAwZTk1ZTI3NAo6RU5EOgoKRXhjZXB0 IGZvciB+dHJlZX4sIGFsbCBuYXRpdmUgaW5wdXRzIGFyZSBuZWNlc3NhcnkgdG8gZXhlY3V0ZSB0 aGUgYnVpbGQKcHJvY2VkdXJlLiBUaGVzZSBpbnB1dHMgYXJlIGxpc3RlZCBpbiB0aGUgfm5hdGl2 ZS1pbnB1dHN+IHByb3BlcnR5IG9mIHRoZSBwYWNrYWdlIGluCn5ndWl4LnNjbX4uCiMrY2FwdGlv bjogZ3VpeC5zY20KIytiZWdpbl9zcmMgc2NoZW1lIDp0YW5nbGUgZ3VpeC5zY20KKHVzZS1tb2R1 bGVzIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCiAgICAgICAgICAgICAoZ251IHBhY2thZ2VzKQog ICAgICAgICAgICAgKGd1aXggcGFja2FnZXMpCiAgICAgICAgICAgICAoZ251IHBhY2thZ2VzIGJh c2UpCiAgICAgICAgICAgICAoZ251IHBhY2thZ2VzIGVsaXhpcikKICAgICAgICAgICAgIChnbnUg cGFja2FnZXMgZXJsYW5nKQogICAgICAgICAgICAgKGdudSBwYWNrYWdlcyBhZG1pbikpCgooZGVm aW5lIGdsaWJjLXV0ZjgtbG9jYWxlcwogIChtYWtlLWdsaWJjLXV0ZjgtbG9jYWxlcyBnbGliYwog ICAgICAgICAgICAgICAgICAgICAgICAgICAjOmxvY2FsZXMgKGxpc3QgImVuX1VTIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzpuYW1lICJnbGliYy11dGY4LWxvY2FsZXMiKSkKCihwYWNr YWdlCiAgKG5hbWUgIiIpCiAgKHZlcnNpb24gIiIpCiAgKHNvdXJjZSAjZikKICAoYnVpbGQtc3lz dGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QKICAgICAgICAgICAg ICAgICAgZ2xpYmMtdXRmOC1sb2NhbGVzCiAgICAgICAgICAgICAgICAgIGNvcmV1dGlscwogICAg ICAgICAgICAgICAgICB3aGljaAogICAgICAgICAgICAgICAgICBlbGl4aXIKICAgICAgICAgICAg ICAgICAgZXJsYW5nCiAgICAgICAgICAgICAgICAgIHJlYmFyMwogICAgICAgICAgICAgICAgICB0 cmVlCiAgICAgICAgICAgICAgICAgICkpCiAgKHN5bm9wc2lzICIiKQogIChkZXNjcmlwdGlvbiAi IikKICAoaG9tZS1wYWdlICIiKQogIChsaWNlbnNlICNmKSkKIytlbmRfc3JjCgoqKiBUaGUgfmJ1 aWxkX2RpcmVjdG9yeX4gU3RlcApUaGUgfmJ1aWxkX2RpcmVjdG9yeX4gc3RlcCBpbnZvbHZlcyB1 c2luZyB0aGUgbmV0d29yayB0byBmZXRjaCBhbnkgZXh0ZXJuYWwgZGF0YQpyZXF1aXJlZCBmb3Ig Y29tcGlsaW5nIGFuZCB0ZXN0aW5nIHRoZSBwYWNrYWdlLiBFYWNoIHN0ZXAgb2YgdGhlIHNjcmlw dCBpcyBkZXRhaWxlZAppbiB0aGUgZm9sbG93aW5nIHN1YnNlY3Rpb25zLgojK25hbWU6IGJ1aWxk X2RpcmVjdG9yeQojK2JlZ2luX3NyYyBiYXNoIDpzaGViYW5nICIjISAvdXNyL2Jpbi9lbnYgYmFz aCIgOnRhbmdsZSBidWlsZF9kaXJlY3RvcnkgOmV4cG9ydHMgbm9uZQo8PHNjcmlwdC1jb25mPj4K Cjw8YXJndW1lbnRzPj4KCjw8ZGVidWc+PgoKPDx3b3JrZGlyPj4KCjw8ZW52Pj4KCjw8aGV4Pj4K Cjw8cmViYXIzPj4KCjw8YXJjaGl2ZT4+Cgo8PHVucGFjaz4+Cgo8PGRlcHM+PgoKPDxzaG93OjA+ PgojK2VuZF9zcmMKCgoqKiogVGhlIEJhc2ggc2NyaXB0IGlzIGNvbmZpZ3VyZWQKIytuYW1lOiBz Y3JpcHQtY29uZgojK2JlZ2luX3NyYyBiYXNoCnNldCAtZXVvIHBpcGVmYWlsCklGUz0kJ1xuXHQn CiMrZW5kX3NyYwoKCioqKiBBcmd1bWVudHMKIytuYW1lOiBhcmd1bWVudHMKIytiZWdpbl9zcmMg YmFzaApERVBTX0RJUj0iZGVwcyIKTE9HPSJmYWxzZSIKQlVJTERfUEVSX0VOVklST05NRU5UPSJ0 cnVlIgp3aGlsZSBbICIkezE6LX0iICE9ICIiIF07IGRvCiAgY2FzZSAiJDEiIGluCiAgICAtLWFy Y2hpdmUpCiAgICAgICAgc2hpZnQKICAgICAgICBBUkNISVZFPSQxCiAgICAgIDs7CiAgICAtLWxv ZykKICAgICAgICBzaGlmdAogICAgICAgIExPRz0kMQogICAgICA7OwogICAgLS1idWlsZC1wZXIt ZW52aXJvbm1lbnQpCiAgICAgICAgc2hpZnQKICAgICAgICBCVUlMRF9QRVJfRU5WSVJPTk1FTlQ9 JDEKICAgICAgOzsKICAgIC0tb3V0KQogICAgICAgIHNoaWZ0CiAgICAgICAgT1VUPSQxCiAgICAg IDs7CiAgICAtLWRlcHMtcGF0aCkKICAgICAgICBzaGlmdAogICAgICAgIERFUFNfRElSPSQxCiAg ICAgIDs7CiAgICAtLXRlc3QpCiAgICAgICAgc2hpZnQKICAgICAgICBURVNUPSQxCiAgICAgIDs7 CiAgICAtLXdvcmtkaXIpCiAgICAgICAgc2hpZnQKICAgICAgICBXT1JLRElSPSQxCiAgICAgIDs7 CiAgICAsKikKICAgICAgZWNobyAiSW52YWxpZCBhcmd1bWVudDogJDEiCiAgICAgIGV4aXQgMQog IGVzYWMKICBzaGlmdApkb25lCiMrZW5kX3NyYwoKCioqKiBEZWJ1ZyBtb2RlCiMrbmFtZTogZGVi dWcKIytiZWdpbl9zcmMgYmFzaApbWyAkTE9HID09ICJ0cnVlIiBdXSAmJiBzZXQgLXgKIytlbmRf c3JjCgoKKioqIFdvcmsgZGlyZWN0b3J5CiMrbmFtZTogd29ya2RpcgojK2JlZ2luX3NyYyBiYXNo Cm1rZGlyIC1wICRXT1JLRElSCmNkICRXT1JLRElSCiMrZW5kX3NyYwoKCioqKiBFbnZpcm9ubWVu dCB2YXJpYWJsZXMKIytuYW1lOiBlbnYKIytiZWdpbl9zcmMgYmFzaCA6ZXhwb3J0cyBub25lCjw8 ZW52OjA+PgoKPDxlbnY6MT4+Cgo8PGVudjoyPj4KCjw8ZW52OjM+PgoKPDxlbnY6ND4+Cgo8PGVu djo1Pj4KIytlbmRfc3JjCgpUaGUgY3VycmVudCBsb2NhbGUgbXVzdCBiZSBzZXQgdG8gYSB+VVRG LTh+IGNvbXBhdGlibGUgZm9ybWF0OyBvdGhlcndpc2UsIHRoZSBFcmxhbmcgVk0Kd2lsbCBlbWl0 IGEgd2FybmluZzogIldhcm5pbmc6IFRoZSBWTSBpcyBydW5uaW5nIHdpdGggdGhlIG5hdGl2ZSBu YW1lIGVuY29kaW5nIG9mCmxhdGluMSwgd2hpY2ggbWF5IGNhdXNlIEVsaXhpciB0byBtYWxmdW5j dGlvbiwgYXMgaXQgZXhwZWN0cyBVVEYtOC4gUGxlYXNlIGVuc3VyZQp5b3VyIGxvY2FsZSBpcyBz ZXQgdG8gVVRGLTggKHdoaWNoIGNhbiBiZSB2ZXJpZmllZCBieSBydW5uaW5nICdsb2NhbGUnIGlu IHlvdXIKc2hlbGwpLiIKIytuYW1lOiBlbnY6MAojK2JlZ2luX3NyYyBiYXNoCmV4cG9ydCBMQ19B TEw9ZW5fVVMuVVRGLTgKIytlbmRfc3JjCgp+bWl4fiBleHBlY3RzIHRvIGhhdmUgYWNjZXNzIHRv IGEgZmV3IGxvY2FsIGRpcmVjdG9yaWVzLgojK25hbWU6IGVudjoxCiMrYmVnaW5fc3JjIGJhc2gK ZXhwb3J0IE1JWF9IT01FPSRQV0QvbWl4LWhvbWUKZXhwb3J0IE1JWF9BUkNISVZFUz0kTUlYX0hP TUUvYXJjaGl2ZXMKbWtkaXIgLXAgIiRNSVhfQVJDSElWRVMiCiMrZW5kX3NyYwoKfm1peH4gZXhw ZWN0cyB0byBpbnN0YWxsIGRlcGVuZGVuY2llcyBzb3VyY2VzIGluIH5ERVBTX0RJUn4uCiMrbmFt ZTogZW52OjIKIytiZWdpbl9zcmMgYmFzaApta2RpciAtcCAkREVQU19ESVIKIytlbmRfc3JjCgp+ bWl4fiBpbnN0YWxscyBjb21waWxhdGlvbnMgYXJ0aWZhY3RzIHVuZGVyIHRoZSB+QlVJTERfRElS fiBkaXJlY3RvcnkuCiMrbmFtZTogZW52OjMKIytiZWdpbl9zcmMgYmFzaApleHBvcnQgQlVJTERf RElSPV9idWlsZApta2RpciAtcCAiJEJVSUxEX0RJUiIKIytlbmRfc3JjCgp+bWl4fiBleHBlY3Rz IHRvIGZldGNoIHRhcmJhbGxzIGZyb20gfkhFWF9QTX4uCiMrbmFtZTogZW52OjQKIytiZWdpbl9z cmMgYmFzaApleHBvcnQgSEVYX1BNPWh0dHBzOi8vcmVwby5oZXgucG0vdGFyYmFsbHMKIytlbmRf c3JjCgpUaGlzIHByb2NlZHVyZSBpbnN0YWxscyBjb21waWxhdGlvbiBhcnRpZmFjdHMgdW5kZXIg fkVMSVhJUl9MSUJ+LiB+MS4xNH4gaXMgdGhlIHZlcnNpb24KbnVtYmVyIG9mIHRoZSBjdXJyZW50 IEVsaXhpciB1c2VkLgojK25hbWU6IGVudjo1CiMrYmVnaW5fc3JjIGJhc2gKZXhwb3J0IEVMSVhJ Ul9MSUI9bGliL2VsaXhpci8xLjE0CiMrZW5kX3NyYwoKCioqKiBIZXggaXMgaW5zdGFsbGVkCkhl eCBtdXN0IGJlIGluc3RhbGxlZCB1bmRlciB+TUlYX0FSQ0hJVkVTfjsgb3RoZXJ3aXNlLCB+bWl4 fiB3aWxsIHJlZnVzZSB0byBjb21waWxlLgojK25hbWU6IGhleAojK2JlZ2luX3NyYyBiYXNoCm1p eCBsb2NhbC5oZXggLS1mb3JjZQpbWyAkTE9HID09ICJ0cnVlIiBdXSAmJiB0cmVlICRNSVhfSE9N RQojK2VuZF9zcmMKCgoqKiogUmViYXIzIGlzIGluc3RhbGxlZApSZWJhcjMgbXVzdCBiZSBpbnN0 YWxsZWQgdW5kZXIgfk1JWF9BUkNISVZFU347IG90aGVyd2lzZSwgfm1peH4gd2lsbCByZWZ1c2Ug dG8gY29tcGlsZSBpZgpFcmxhbmcgZGVwZW5kZW5jaWVzIGFyZSBwcmVzZW50LgojK25hbWU6IHJl YmFyMwojK2JlZ2luX3NyYyBiYXNoCm1peCBsb2NhbC5yZWJhciAtLWZvcmNlIHJlYmFyMyAkKHdo aWNoIHJlYmFyMykKW1sgJExPRyA9PSAidHJ1ZSIgXV0gJiYgdHJlZSAkTUlYX0hPTUUKIytlbmRf c3JjCgoKKioqIFRoZSBhcmNoaXZlIGlzIGZldGNoZWQKIytuYW1lOiBhcmNoaXZlCiMrYmVnaW5f c3JjIGJhc2gKaWYgW1sgLWYgIi4uLyRBUkNISVZFIiBdXTsgdGhlbgogICAgY3AgIi4uLyRBUkNI SVZFIiAuLwplbHNlCiAgICB3Z2V0ICRIRVhfUE0vJEFSQ0hJVkUgPi9kZXYvbnVsbAogICAgY3Ag IiRBUkNISVZFIiAuLi8KZmkKbHMgLWFsICIkQVJDSElWRSIKIytlbmRfc3JjCgoKKioqIFRoZSBh cmNoaXZlIGlzIHVucGFja2VkClNvdXJjZXMgYXJlIHVucGFja2VkIGluIHRoZSBjdXJyZW50IGRp cmVjdG9yeS4KIytuYW1lOiB1bnBhY2sKIytiZWdpbl9zcmMgYmFzaAp0YXIgeGYgJEFSQ0hJVkUK dGFyIHh2ZiBjb250ZW50cy50YXIuZ3oKIytlbmRfc3JjCgoKKioqIERlcGVuZGVuY2llcyBhcmUg aW5zdGFsbGVkCjpQUk9QRVJUSUVTOgo6SUQ6ICAgICAgIDk1MjZlNTEwLTkwY2YtNDU5NS1iY2Fk LTQ0MTFlYTgyMmMyMwo6RU5EOgoKIytuYW1lOiBkZXBzCiMrYmVnaW5fc3JjIGJhc2ggOmV4cG9y dHMgbm9uZQo8PGRlcHM6MD4+Cgo8PGRlcHM6MT4+Cgo8PGRlcHM6Mj4+CiMrZW5kX3NyYwoKfk1J WF9FTlZTfiByZXByZXNlbnRzIGFsbCBlbnZpcm9ubWVudHMgdGhhdCBzaG91bGQgYmUgY29uc2lk ZXJlZCBmb3IgYnVpbGRpbmcgYW5kCnRlc3RpbmcgdGhlIHBhY2thZ2UuCiMrbmFtZTogZGVwczow CiMrYmVnaW5fc3JjIGJhc2gKaWYgW1sgIiRCVUlMRF9QRVJfRU5WSVJPTk1FTlQiID09ICJ0cnVl IiBdXTsgdGhlbgogICAgTUlYX0VOVlM9KCAicHJvZCIgKQogICAgaWYgW1sgJFRFU1QgPT0gInRy dWUiIF1dOyB0aGVuCiAgICAgICAgTUlYX0VOVlMrPSggInRlc3QiICkKICAgIGZpCmVsc2UKICAg IE1JWF9FTlZTPSggInNoYXJlZCIgKQpmaQojK2VuZF9zcmMKCnRoZW4sIGZvciBlYWNoIH5NSVhf RU5Wfiwgd2UgZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIGNvbXBpbGUgdGhlbS4gRm9yIGVhY2gK ZW52aXJvbm1lbnQgfk1JWF9FTlZ+LCB0aGUgcmVzdWx0IHdpbGwgYmUgaW5zdGFsbGVkIGluIH5f YnVpbGQvJE1JWF9FTlZ+LgojK25hbWU6IGRlcHM6MQojK2JlZ2luX3NyYyBiYXNoCmZvciBwcm9m aWxlIGluICR7TUlYX0VOVlNbQF19OyBkbwogICAgZXhwb3J0IE1JWF9FTlY9JHByb2ZpbGUKCiAg ICBtaXggZGVwcy5nZXQgLS1vbmx5ICRNSVhfRU5WCiAgICBbWyAkTE9HID09ICJ0cnVlIiBdXSAm JiB0cmVlICRERVBTX0RJUgoKICAgIG1peCBkZXBzLmNvbXBpbGUKICAgIFtbICRMT0cgPT0gInRy dWUiIF1dICYmIHRyZWUgJEJVSUxEX0RJUgpkb25lCiMrZW5kX3NyYwoKdGhlbiwgd2UgcmVtb3Zl IHRoZSBzb3VyY2VzIGFzIHdlIG9ubHkgbmVlZCB0aGUgY29tcGlsZWQgZGVwZW5kZW5jaWVzLgoj K25hbWU6IGRlcHM6MgojK2JlZ2luX3NyYyBiYXNoCnJtIC1yZiAkREVQU19ESVIKIytlbmRfc3Jj CgoKKioqIFdoYXQgaGFzIGJlZW4gYnVpbHQgaXMgc2hvd24KIytuYW1lOiBzaG93OjAKIytiZWdp bl9zcmMgYmFzaAp0cmVlIC1MIDMgJHtCVUlMRF9ESVJ9CnRyZWUgLUwgMyAke01JWF9IT01FfQoj K2VuZF9zcmMKCgoqKiBUaGUgfmNvbXBpbGVfdGVzdF9pbnN0YWxsfiBzdGVwClRoZSB+Y29tcGls ZV90ZXN0X2luc3RhbGx+IHN0ZXAgY29tcGlsZXMsIHRlc3RzLCBhbmQgaW5zdGFsbHMgdGhlIHBh Y2thZ2Ugd2l0aGluIGEKY29udGFpbmVyLgojK25hbWU6IGNvbXBpbGVfdGVzdF9pbnN0YWxsCiMr YmVnaW5fc3JjIGJhc2ggOnNoZWJhbmcgIiMhIC91c3IvYmluL2VudiBiYXNoIiA6dGFuZ2xlIGNv bXBpbGVfdGVzdF9pbnN0YWxsIDpleHBvcnRzIG5vbmUKPDxzY3JpcHQtY29uZj4+Cgo8PGFyZ3Vt ZW50cz4+Cgo8PGRlYnVnPj4KCjw8d29ya2Rpcj4+Cgo8PGVudj4+Cgo8PHRlc3Q+PgoKPDxjb21w aWxlPj4KCjw8aW5zdGFsbD4+Cgo8PHNob3c6MT4+CiMrZW5kX3NyYwoKCioqKiBUaGUgcGFja2Fn ZSBpcyB0ZXN0ZWQKVGhlIGNvbXBpbGF0aW9uIGVudmlyb25tZW50IH5NSVhfRU5WfiBpcyBjb21w dXRlZCB0aGVuIHRoZSBwYWNrYWdlIGlzIGNvbXBpbGVkLAppbnN0YWxsZWQgaW4gfl9idWlsZC8k TUlYX0VOVn4gYW5kIHRlc3RlZC4KIytuYW1lOiB0ZXN0CiMrYmVnaW5fc3JjIGJhc2gKaWYgW1sg IiRURVNUIiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgIGlmIFtbICIkQlVJTERfUEVSX0VOVklST05N RU5UIiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgICAgICBleHBvcnQgTUlYX0VOVj10ZXN0CiAgICBl bHNlCiAgICAgICAgZXhwb3J0IE1JWF9FTlY9c2hhcmVkCiAgICBmaQogICAgVEVTVF9ESVI9JEJV SUxEX0RJUi8kTUlYX0VOVgogICAgbWl4IHRlc3QgLS1uby1kZXBzLWNoZWNrCiAgICBbWyAkTE9H ID09ICJ0cnVlIiBdXSAmJiB0cmVlICRURVNUX0RJUgpmaQojK2VuZF9zcmMKCgoqKiogVGhlIHBh Y2thZ2UgaXMgYnVpbHQKVGhlIGNvbXBpbGF0aW9uIGVudmlyb25tZW50IH5NSVhfRU5WfiBpcyBj b21wdXRlZCB0aGVuIHRoZSBwYWNrYWdlIGlzIGNvbXBpbGVkIGFuZAppbnN0YWxsZWQgaW4gfl9i dWlsZC8kTUlYX0VOVn4uCiMrbmFtZTogY29tcGlsZQojK2JlZ2luX3NyYyBiYXNoCmlmIFtbICIk QlVJTERfUEVSX0VOVklST05NRU5UIiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgIGV4cG9ydCBNSVhf RU5WPXByb2QKZWxzZQogICAgZXhwb3J0IE1JWF9FTlY9c2hhcmVkCmZpClBST0RfRElSPSRCVUlM RF9ESVIvJE1JWF9FTlYKbWl4IGNvbXBpbGUgLS1uby1kZXBzLWNoZWNrCltbICRMT0cgPT0gInRy dWUiIF1dICYmIHRyZWUgJFBST0RfRElSCiMrZW5kX3NyYwoKCioqKiBUaGUgcGFja2FnZSBpcyBp bnN0YWxsZWQKVGhlIEVsaXhpciB2ZXJzaW9uIG51bWJlciB+WC5ZfiBpcyBjb21wdXRlZCBhbmQg dGhlIGJ1aWx0IHBhY2thZ2UgaXMgaW5zdGFsbGVkIHVuZGVyCn4kT1VUL2xpYi9lbGl4aXIvWC5Z L34uCiMrbmFtZTogaW5zdGFsbAojK2JlZ2luX3NyYyBiYXNoCk5BTUU9IiR7QVJDSElWRSUlLSp9 IgpJTlNUQUxMX0RJUj0kT1VULyR7RUxJWElSX0xJQn0vJHtOQU1FfQpta2RpciAtcCAkSU5TVEFM TF9ESVIKIyDigKYvKiBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gY29weSBoaWRkZW4gZmlsZXMu CmNwIC12THJmICRQUk9EX0RJUi8ke0VMSVhJUl9MSUIlJS8qfS8ke05BTUV9LyogJElOU1RBTExf RElSCiMrZW5kX3NyYwoKCioqKiBXaGF0IGhhcyBiZWVuIGJ1aWx0IGlzIHNob3duCiMrbmFtZTog c2hvdzoxCiMrYmVnaW5fc3JjIGJhc2gKdHJlZSAtTCAzICRCVUlMRF9ESVIKdHJlZSAtTCA0ICRP VVQKIytlbmRfc3JjCgoKKiBBIGZldyBwYWNrYWdlcyBoYXZlIGJlZW4gYnVpbHQKKiogfm1ha2V1 cH4KIytiZWdpbl9zcmMgYmFzaApXT1JLRElSPSRQV0Qvd29ya2RpcgpJTlNUQUxMRElSPSRXT1JL RElSL2luc3RhbGwKcm0gLXJmICRXT1JLRElSICRJTlNUQUxMRElSCgpndWl4IHNoZWxsIC1EIC1m IGd1aXguc2NtIC0tIGJhc2ggYnVpbGRfZGlyZWN0b3J5IFwKICAgICAtLWFyY2hpdmUgbWFrZXVw LTEuMS4xLnRhciBcCiAgICAgLS1sb2cgdHJ1ZSBcCiAgICAgLS1vdXQgJElOU1RBTExESVIgXAog ICAgIC0tZGVwcy1wYXRoIGRlcHMgXAogICAgIC0tdGVzdCBmYWxzZSBcCiAgICAgLS13b3JrZGly ICRXT1JLRElSCgpndWl4IHNoZWxsIC1DIC1EIC1mIGd1aXguc2NtIC0tIGJhc2ggY29tcGlsZV90 ZXN0X2luc3RhbGwgXAogICAgIC0tYXJjaGl2ZSBtYWtldXAtMS4xLjEudGFyIFwKICAgICAtLWxv ZyB0cnVlIFwKICAgICAtLW91dCAkSU5TVEFMTERJUiBcCiAgICAgLS1kZXBzLXBhdGggZGVwcyBc CiAgICAgLS10ZXN0IGZhbHNlIFwKICAgICAtLXdvcmtkaXIgJFdPUktESVIKIytlbmRfc3JjCgoK Kiogfm1hY2hldGV+CiMrYmVnaW5fc3JjIGJhc2gKV09SS0RJUj0kUFdEL3dvcmtkaXIKSU5TVEFM TERJUj0kV09SS0RJUi9pbnN0YWxsCnJtIC1yZiAkV09SS0RJUiAkSU5TVEFMTERJUgoKZ3VpeCBz aGVsbCAtRCAtZiBndWl4LnNjbSAtLSBiYXNoIGJ1aWxkX2RpcmVjdG9yeSBcCiAgICAgLS1hcmNo aXZlIG1hY2hldGUtMC4yLjgudGFyIFwKICAgICAtLWxvZyB0cnVlIFwKICAgICAtLW91dCAkSU5T VEFMTERJUiBcCiAgICAgLS1kZXBzLXBhdGggZGVwcyBcCiAgICAgLS10ZXN0IHRydWUgXAogICAg IC0td29ya2RpciAkV09SS0RJUgoKZ3VpeCBzaGVsbCAtQyAtRCAtZiBndWl4LnNjbSAtLSBiYXNo IGNvbXBpbGVfdGVzdF9pbnN0YWxsIFwKICAgICAtLWFyY2hpdmUgbWFjaGV0ZS0wLjIuOC50YXIg XAogICAgIC0tbG9nIHRydWUgXAogICAgIC0tb3V0ICRJTlNUQUxMRElSIFwKICAgICAtLWRlcHMt cGF0aCBkZXBzIFwKICAgICAtLXRlc3QgdHJ1ZSBcCiAgICAgLS13b3JrZGlyICRXT1JLRElSCiMr ZW5kX3NyYwoKCioqIH5waG9lbml4fgojK2JlZ2luX3NyYyBiYXNoCldPUktESVI9JFBXRC93b3Jr ZGlyCklOU1RBTExESVI9JFdPUktESVIvaW5zdGFsbApybSAtcmYgJFdPUktESVIgJElOU1RBTExE SVIKCmd1aXggc2hlbGwgLUQgLWYgZ3VpeC5zY20gLS0gYmFzaCBidWlsZF9kaXJlY3RvcnkgXAog ICAgIC0tYXJjaGl2ZSBwaG9lbml4LTEuNy4xMC50YXIgXAogICAgIC0tbG9nIHRydWUgXAogICAg IC0tb3V0ICRJTlNUQUxMRElSIFwKICAgICAtLWRlcHMtcGF0aCBkZXBzIFwKICAgICAtLXRlc3Qg ZmFsc2UgXAogICAgIC0td29ya2RpciAkV09SS0RJUgoKZ3VpeCBzaGVsbCAtQyAtRCAtZiBndWl4 LnNjbSAtLSBiYXNoIGNvbXBpbGVfdGVzdF9pbnN0YWxsIFwKICAgICAtLWFyY2hpdmUgcGhvZW5p eC0xLjcuMTAudGFyIFwKICAgICAtLWxvZyB0cnVlIFwKICAgICAtLW91dCAkSU5TVEFMTERJUiBc CiAgICAgLS1kZXBzLXBhdGggZGVwcyBcCiAgICAgLS10ZXN0IGZhbHNlIFwKICAgICAtLXdvcmtk aXIgJFdPUktESVIKIytlbmRfc3JjCgoKKiBBZGFwdGluZyB0aGUgcHJvY2VkdXJlIHRvIEd1aXgK VGhlIGdvYWwgaXMgdG8gYW5zd2VyIHRoZSBxdWVzdGlvbjogZ2l2ZW4gdGhlIGFib3ZlIHByb2Nl ZHVyZSwgaG93IHRvIGFkYXB0IGl0IHRvCkd1aXg/IFdlIGV4YW1pbmUgZWFjaCBzdGVwIGFuZCwg d2hlbiBuZWNlc3NhcnksIG1hcCBpdCB0byBHdWl4LgoxKSBUaGUgYnVpbGQgcHJvY2VkdXJlIHNo b3VsZCBtYXRjaCB0aGUgfm1peC1idWlsZC1zeXN0ZW1+IHZhcmlhYmxlLgoyKSBGb3IgYWxsIEVs aXhpciBwYWNrYWdlLCB0aGUgfm5hdGl2ZS1pbnB1dHN+IG9mIH5ndWl4LnNjbX4gZXhjZXB0IH50 cmVlfiBzaG91bGQgYmUgaW4KICAgZGVmYXVsdCBuYXRpdmUtaW5wdXRzLgozKSBUaGUgRWxpeGly IHZlcnNpb24gbnVtYmVyIHNob3VsZCBiZSBjb21wdXRlZCBmcm9tIHRoZSBFbGl4aXIgdXNlZCB0 byBjb21waWxlLgo0KSBBcmd1bWVudHMgc2hvdWxkIGJlIHByb3ZpZGVkOiB+Izp0ZXN0cz9+LCB+ IzpkZXBzLXBhdGh+LCB+IzpidWlsZC1wZXItZW52aXJvbm1lbnR+Lgo1KSBBIHBoYXNlIHNob3Vs ZCBpbnN0YWxsIH5IZXh+Lgo2KSBBIHBoYXNlIHNob3VsZCBpbnN0YWxsIH5SZWJhcjN+Lgo3KSBU aGUgfnVucGFja34gcGhhc2Ugc2hvdWxkIGJlIGFkYXB0ZWQgdG8gdGFyYmFsbHMgYW5kIHNvdXJj ZSBjaGVja291dHMuCjgpIEFsbCBFcmxhbmcgYW5kIEVsaXhpciBwYWNrYWdlcyBzaG91bGQgYmUg ZGVkdWNlZCBmcm9tIGFsbCB0aGUgaW5wdXRzIG9mIHRoZQogICBwYWNrYWdlIGJlaW5nIGJ1aWx0 IGFuZCBpbnN0YWxsZWQgaW4gdGhlIG5lY2Vzc2FyeSBidWlsZCBkaXJlY3RvcmllcyB0byBtaW1p YyB0aGUKICAgW1tpZDo5NTI2ZTUxMC05MGNmLTQ1OTUtYmNhZC00NDExZWE4MjJjMjNdW0RlcGVu ZGVuY2llcyBhcmUgaW5zdGFsbGVkXV0uCgoKKiBDb25jbHVzaW9uCiAgQSBwcmVsaW1pbmFyeSBi dWlsZCBwcm9jZWR1cmUgZm9yIEVsaXhpciBwYWNrYWdlcywgZGVzaWduZWQgZm9yIGludGVncmF0 aW9uIGludG8KICBHdWl4LCBoYXMgYmVlbiBwcmVzZW50ZWQuIFRoZSBpc3N1ZSBvZiBiaXQgcmVw cm9kdWNpYmlsaXR5IHdpdGhpbiB0aGUgYnVpbGQgcHJvY2VzcwogIHJlcXVpcmVzIGZ1cnRoZXIg aW52ZXN0aWdhdGlvbi4gSWYgdGhlIGN1cnJlbnQgbWV0aG9kb2xvZ3kgaXMgZGVlbWVkIHNhdGlz ZmFjdG9yeSwKICB0aGUgc3Vic2VxdWVudCBzdGVwIHdpbGwgYmUgdG8gaW1wbGVtZW50IHRoaXMg cHJvY2VkdXJlIGluIHRoZSBHdWl4IGJ1aWxkIHN5c3RlbS4KCgoqIEFubmV4CioqIH5idWlsZF9k aXJlY3Rvcnl+CiMrYmVnaW5fc3JjIGJhc2gKPDxidWlsZF9kaXJlY3Rvcnk+PgojK2VuZF9zcmMK CgoqKiB+Y29tcGlsZV90ZXN0X2luc3RhbGx+CiMrYmVnaW5fc3JjIGJhc2gKPDxjb21waWxlX3Rl c3RfaW5zdGFsbD4+CiMrZW5kX3NyYwoKCiMgTG9jYWwgVmFyaWFibGVzOgojIGZpbGwtY29sdW1u OiA4NQojIEVuZDoK --00000000000017cc62060a0d43a1-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Nov 2023 20:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: liliana.prikler@gmail.com, Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.16999073259247 (code B ref 66801); Mon, 13 Nov 2023 20:29:02 +0000 Received: (at 66801) by debbugs.gnu.org; 13 Nov 2023 20:28:45 +0000 Received: from localhost ([127.0.0.1]:59398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2dY3-0002P2-Pq for submit@debbugs.gnu.org; Mon, 13 Nov 2023 15:28:45 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:45080) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2dXs-0002Of-2n for 66801@debbugs.gnu.org; Mon, 13 Nov 2023 15:28:42 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-32f7bd27c2aso3342362f8f.2 for <66801@debbugs.gnu.org>; Mon, 13 Nov 2023 12:27:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699907263; x=1700512063; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=E3yprZr7aNLp9SlO0js7RNw4h+PqkoNmILFFiQnFNSY=; b=mhQC8uHks8VfbMbvcypm3jUH7TMWzaxH5RAWeqA14OYt27SWh2pRREN2f3OqjH95Ru qb+ToLL2HSDykQO5gE3aA72PAqW++fPZnC96zbldaFLxIFW0c+jPGk9rwfyeb04EkgDh FZ7tFg0UO2p6aLeEpkUlhEfadsUjN8FRy470SDy5mmUB389a9ORKllXeSCGsMbNqhCXo etglX/jIDct+43of5k2Ba08kc0cow/OlE3sMyPTt0HqJSxgscVcv693GSgUZCEMMZiRb WSxrERvmGAtRbfZLGUM8+aV2+n4lhC+hq47JLk/s05iRtFzQx+B4S4rG1FHDa1nRO9t2 7AOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699907263; x=1700512063; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=E3yprZr7aNLp9SlO0js7RNw4h+PqkoNmILFFiQnFNSY=; b=mBSsvev7OgjfiJTPVEl/HIurs/G1V9pSDW41CKw2TyD5BcFagheAclJYuQB17bbSWY ZUt1V57nirTGKC5G+ualrd56NLCSjVrzHTWhWHS3mmIsBPfgFo45Yort0HqvztajutYe Q5kyIoLSQOc2306wCok2/FGIJspc9rMG2MHxETLOIIRWq/KghaaiVk4JQWQ2pPXyTmbo cVNK4zW/x5cOdhDuahJAZg9MPoX0V4gaiLewIB3dhHTSYEkeygfVZzpRIF4cjRHrtlp1 PFKa2GjzaHoQbPZ5tED1TZoJyjVGnhwTDUtX7voro7FY50gSRzsVTsIx4CtYnEmyhpvR IE3Q== X-Gm-Message-State: AOJu0YxeoCBivrQ6b3s1hD2/IQZz0m1pjamaPcW6m3bxR5fy0xxmQtBL JVLLWIAJWNrG/Hmnvf8zSOm4YK6IlO6M8O4pfL4= X-Google-Smtp-Source: AGHT+IEy6MaYHATWGGjmbZ2qHbHBtbWfDBrdBsY2/ySDl/rPF5teL49ig0etYTGmbiypV7v4DdF2pw== X-Received: by 2002:adf:ea07:0:b0:32f:c188:38f2 with SMTP id q7-20020adfea07000000b0032fc18838f2mr4897976wrm.37.1699907262965; Mon, 13 Nov 2023 12:27:42 -0800 (PST) Received: from doug.home ([2a01:cb19:85a1:c200:ee66:fd17:945:f033]) by smtp.gmail.com with ESMTPSA id n7-20020a5d4847000000b0032d88e370basm6122774wrs.34.2023.11.13.12.27.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Nov 2023 12:27:42 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Mon, 13 Nov 2023 21:26:09 +0100 Message-ID: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) 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/mix.scm, * guix/build/mix-build-system.scm: New modules. Change-Id: I2cbf6c963a530e73420da0eb17ffaf92827451bf --- guix/build-system/mix.scm | 237 +++++++++++++++++++++++++ guix/build/mix-build-system.scm | 303 ++++++++++++++++++++++++++++++++ 2 files changed, 540 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 00000000..ae4407c9 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,237 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (gnu packages base) + #:use-module (gnu packages elixir) + #:use-module (gnu packages elixir-xyz) + #:use-module (gnu packages erlang) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + (string-append "https://repo.hex.pm/tarballs/" + (string-replace-substring (strip-elixir-prefix name) "-" "_") + "-" version ".tar")) + +(define glibc-utf8-locales + (make-glibc-utf8-locales glibc + #:locales (list "en_US") + #:name "glibc-utf8-locales")) + +(define (default-elixir) + "Return the default Elixir package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define imported-modules + `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + +(define modules + '((guix build mix-build-system) + (guix build utils))) + +;; The prefix of Elixir packages. +(define %elixir-prefix "elixir-") + +;; The prefix of Erlang packages. +(define %erlang-prefix "erlang-") + +(define (erlang-package? package) + "Tell whether PACKAGE is an Erlang package." + (string-prefix? %erlang-prefix (package-name package))) + +(define (elixir-package? package) + "Tell whether PACKAGE is an Elixir package." + (string-prefix? %elixir-prefix (package-name package))) + +(define (erlang-or-elixir-pkg? package) + "Tell whether PACKAGE is an Elixir or an Erlang package." + (or (erlang-package? package) + (elixir-package? package))) + +(define (erlang-or-elixir-input? input) + "Tell whether INPUT is an Elixir or an Erlang input." + (match input + ((_ package) + (erlang-or-elixir-pkg? package)))) + +(define (input=? input1 input2) + "Tell whether inputs INPUT1 and INPUT2 are equal." + (define pkg1 (match input1 ((_ pkg) pkg))) + (define pkg2 (match input2 ((_ pkg) pkg))) + (string=? (package-name pkg1) (package-name pkg2))) + +;; A number of environment variables specific to the Mix build system are reflected here. +;; They are documented here: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. +;; Other parameters located in mix.exs are defined here: +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + elixir-X.Y ;The major and minor of Elixir. + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules imported-modules) + (modules modules)) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:elixir-X.Y #$elixir-X.Y + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + source + (inputs '()) + (tests? #t) + (native-inputs '()) + (propagated-inputs '()) + outputs + system + target + (elixir (default-elixir)) + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (define private-keywords + '(#:inputs #:native-inputs #:outputs #:system #:target #:elixir)) + + ;; Libraries are compiled using a given version of Elixir. This fact is + ;; encoded by the name of a sub-directory like lib/elixir/X.Y. We compute + ;; the value of X.Y here which is valid for the whole build. + (define elixir-X.Y (version-major+minor (package-version elixir))) + + ;; Elixir depends on a specific version of Erlang, this one. + (define erlang (lookup-package-input elixir "erlang")) + + ;; For mix to compile and test a package, it needs to find all inputs, + ;; native-inputs and propagated-inputs (including the transitive ones) under + ;; _build directories like _build/prod/lib. + ;; + ;; Given inputs and native-inputs of the package, we need to compute the + ;; transitive closure of all Erlang and Elixir propagated inputs and add + ;; them to the build inputs. + (define all-propagated-inputs + ((compose + (cut delete-duplicates <> input=?) + (cut filter erlang-or-elixir-input? <>) + (cut append-map package-transitive-propagated-inputs <>) + (cut map cadr <>)) + (append inputs native-inputs))) + + (define build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,erlang) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@all-propagated-inputs + ,@inputs + ,@native-inputs)) + + ;; Some inputs, such as C programs, may be architecture dependent. + (define host-inputs (if target inputs '())) + + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs host-inputs) + (outputs outputs) + (build mix-build) + (arguments (append `(#:elixir-X.Y ,elixir-X.Y) + (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 00000000..86a5db51 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,303 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build + strip-elixir-prefix + %standard-phases)) + +(define (f-join . paths) + "Return a path (a string) formed from joining each component in PATHS (list of strings). +Example: \"a\" \"b\" \"c\" → \"a/b/c\"" + (string-join paths file-name-separator-string)) + +(define (strip-prefix prefix name) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +;; All Elixir package names start with this prefix. If a package name starts +;; with this prefix, then it is an Elixir package. +(define %elixir-prefix "elixir-") + +(define (path->elixir-lib path X.Y) + "Return the path to the directory within PATH where libraries of an Elixir +package are installed. Here, X.Y represents the major and minor version +numbers of Elixir used for compilation." + (f-join path "lib" "elixir" X.Y)) + +(define (elixir-name? name) + "Determines if NAME is the name or the label associated to an Elixir +package." + (string-prefix? %elixir-prefix name)) + +(define (elixir-input? X.Y input) + "Determines if the given INPUT is an Elixir input." + (match input + ((label . path) + ;; XXX: The second condition may be enough. + (and (elixir-name? label) + (directory-exists? (path->elixir-lib path X.Y)))))) + +(define (strip-elixir-prefix name) + "Strip %elixir-prefix from NAME." + (strip-prefix %elixir-prefix name)) + +;; All Erlang package names start with this prefix. If a package name starts +;; with this prefix, then it is an Erlang package. +(define %erlang-prefix "erlang-") + +(define (path->erlang-lib path) + "Return the path of the directory where libraries of an Erlang package are +installed in the store." + (f-join path "lib" "erlang" "lib")) + +(define (erlang-name? name) + "Determines if NAME is the name or the label associated to an Erlang +package." + (string-prefix? %erlang-prefix name)) + +(define (erlang-input? input) + "Determines if the given INPUT is an Erlang input." + (match input + ((label . path) + ;; XXX: one condition may be enough. Without the first one, the erlang + ;; input is considered an input when we just want Erlang packages. + (and (erlang-name? label) + (directory-exists? (path->erlang-lib path)))))) + +(define (strip-erlang-prefix name) + "Strip %erlang-prefix from NAME." + (strip-prefix %erlang-prefix name)) + +(define (erlang-or-elixir-input? X.Y input) + "Determines if the given INPUT is an Erlang or Elixir input." + (or (erlang-input? input) + (elixir-input? X.Y input))) + +(define (snakecase-name name) + "Return a snakecase version of NAME." + (string-replace-substring (string-downcase name) "-" "_")) + +(define (label->library-name label) + "Return the library name associated to an input label LABEL." + (define stripped-label + (cond + ((erlang-name? label) + (strip-erlang-prefix label)) + ((elixir-name? label) + (strip-elixir-prefix label)) + (#t (error "Invalid label: expected an Erlang or Elixir label." 'label label)))) + (snakecase-name stripped-label)) + +(define (pkg-name->library-name name) + "Return the name of the library deduced from the name of the Guix package. +Example: elixir-a-pkg-1.0.2 → a_pkg +See: https://www.erlang.org/doc/man/code#code-path" + ((compose + label->library-name + (cut string-join <> "-") + (cut drop-right <> 1) + (cut string-split <> #\-)) + name)) + +;; We fix as many variables as possible. +;; See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables +(define MIX_HOME "MIX_HOME") + +(define MIX_ARCHIVES "MIX_ARCHIVES") +(define (%mix-archives mix-home) (f-join mix-home "archives")) +(define MIX_BUILD_ROOT "MIX_BUILD_ROOT") +(define %mix-build-root "_build") +(define MIX_DEPS_PATH "MIX_DEPS_PATH") +(define %mix-deps-path "deps") +(define MIX_PATH "MIX_PATH") +(define MIX_REBAR3 "MIX_REBAR3") +(define MIX_EXS "MIX_EXS") +(define %mix-exs "mix.exs") +;; XXX: if different architecture are needed, then use this variable. +(define MIX_TARGET "MIX_TARGET") +(define MIX_ENV "MIX_ENV") +(define %mix-env-prod "prod") +(define %mix-env-test "test") +(define %mix-env-shared "shared") + +;; The name of the directory where compiled libraries by mix are stored. +(define %mix-lib "lib") + +;; Useful because Elixir expects a UTF-8 locale. +(define LC_ALL "LC_ALL") + +(define (mix-build-dir mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory." + (f-join %mix-build-root mix-env %mix-lib)) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (let ((contents "contents.tar.gz")) + (when (file-exists? contents) + (invoke "tar" "xvf" contents))))) + +(define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables." + (setenv LC_ALL "en_US.UTF-8") + (setenv MIX_HOME (getcwd)) + (setenv MIX_ARCHIVES (%mix-archives (getenv MIX_HOME))) + (setenv MIX_BUILD_ROOT %mix-build-root) + (setenv MIX_DEPS_PATH %mix-deps-path) + (setenv MIX_PATH (or mix-path "")) + (setenv MIX_REBAR3 (f-join (assoc-ref inputs "rebar3") "bin" "rebar3")) + (setenv MIX_EXS mix-exs)) + +(define* (install-hex #:key inputs name elixir-X.Y #:allow-other-keys) + "Install Hex." + (define hex-name "hex") + (define hex-path (assoc-ref inputs "elixir-hex")) + (define hex-lib (f-join (path->elixir-lib hex-path elixir-X.Y) hex-name)) + (define hex-archive-path (f-join (getenv MIX_ARCHIVES) hex-name)) + (mkdir-p hex-archive-path) + (symlink hex-lib (f-join hex-archive-path hex-name))) + +(define* (install-dependencies #:key + name + tests? + build-per-environment + (inputs '()) + (native-inputs '()) + elixir-X.Y + mix-environments + #:allow-other-keys + #:rest rest) + "Install dependencies. +Given an environment mix-env, we define all-inputs(mix-env) as the set of all +necessary Erlang and Elixir inputs and associated propagated inputs (and +transitive propagated inputs). + +For example, all-inputs(prod) represents all the Erlang and Elixir inputs and +propagated inputs necessary to compile the Mix project for the prod +environment. + +If dep belongs to all-inputs(mix-env) and its library name is dep-name, then +it is installed under (f-join (mix-build-dir mix-env) dep-name) as a symbolic +link." + (define (all-inputs mix-env) + (define env-inputs + (cond + ((string=? mix-env %mix-env-prod) + inputs) + ((member mix-env (list %mix-env-test %mix-env-shared)) + (append inputs native-inputs)) + (#t (error "Unexpected Mix environment." 'mix-env mix-env)))) + (filter (cut erlang-or-elixir-input? elixir-X.Y <>) env-inputs)) + + (define (install-input mix-env input) + (let ((dir (mix-build-dir mix-env))) + (mkdir-p dir) + (match input + ((label . path) + (let ((lib-name (label->library-name label))) + (symlink + (f-join (path->elixir-lib path elixir-X.Y) lib-name) + (f-join dir lib-name))))))) + + (define (install-inputs mix-env) + (for-each (cut install-input mix-env <>) + (all-inputs mix-env))) + + (for-each install-inputs mix-environments)) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (define (compile mix-env) + (setenv MIX_ENV mix-env) + (invoke "mix" "compile" "--no-deps-check")) + (for-each compile mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (define mix-dirs + (find-files "." + (file-name-predicate "\\.mix$") + #:directories? #t)) + (for-each delete-file-recursively mix-dirs)) + +(define* (install #:key + inputs + outputs + name + build-per-environment + elixir-X.Y + #:allow-other-keys) + "Install build artifacts in the store." + (define lib-name (pkg-name->library-name name)) + + (define dir-build + (f-join (mix-build-dir (if build-per-environment %mix-env-prod %mix-env-shared)) + lib-name)) + + (define dir-install + (f-join (path->elixir-lib (assoc-ref outputs "out") elixir-X.Y) + lib-name)) + (mkdir-p dir-install) + + (copy-recursively dir-build dir-install + #:follow-symlinks? #t)) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (replace 'configure configure) + (replace 'unpack unpack) + (add-after 'patch-generated-file-shebangs 'install-hex install-hex) + (add-after 'install-hex 'install-dependencies install-dependencies) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: a0d337e79c87d7c38c79d0291974f490cb137a52 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Nov 2023 21:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169991062914695 (code B ref 66801); Mon, 13 Nov 2023 21:24:01 +0000 Received: (at 66801) by debbugs.gnu.org; 13 Nov 2023 21:23:49 +0000 Received: from localhost ([127.0.0.1]:59441 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2ePL-0003op-Bw for submit@debbugs.gnu.org; Mon, 13 Nov 2023 16:23:48 -0500 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]:48450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2ePH-0003oM-Jv for 66801@debbugs.gnu.org; Mon, 13 Nov 2023 16:23:46 -0500 Received: by mail-ed1-x542.google.com with SMTP id 4fb4d7f45d1cf-53e08b60febso7572865a12.1 for <66801@debbugs.gnu.org>; Mon, 13 Nov 2023 13:23:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699910576; x=1700515376; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=mkBe5/5aVbvpeYOj/jFT95dZ0X+oXH5ZlAoJf9GKgno=; b=MkLT0weHA0t2wWfWfnfT6qCJ1n+tc0daMA3SYrNjMYeC/r5leHEPiUFwxL5C+4oxrj s9lLrPeinUyJ3lxPQJd/rbGBHA87N17q9w0T7VXJljaoPKbeNx+bbLARe5KLos6yxMpu z2ZfgyBtShtPE3efq9jt+Dl2amh5r5CLBbQvrOfoLFTbKg47nMZFkjBInOjRn6eO2Its soq/jXuojsrbWwxWf380zUOKkYjnZ0n9C8O7M5yxUDJZAUDcesx6uHtr5T7oroIIaQcs /9OcL4tp6bA4wKllFuvPlj1GegLJMlhwMlRrJgwyZF1DI7tJrpTFij9EBC7LLrQ3IhkK cS8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699910576; x=1700515376; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=mkBe5/5aVbvpeYOj/jFT95dZ0X+oXH5ZlAoJf9GKgno=; b=fosfRz5u89PluZ4UdwoIEvwuu0r7uvQesDb4gg2B0JhvjDxEcuVq9swgaXJjpD1zMq joGfnEsJKngummOJNZPTv7qxBE78fKfvJ8dRp6sUwXZwb5gDL4ziEHEziNqDFn23GkjM /0wOk+v6CMK/woM9t5o/cSpT+OBYAvrxAJ3zUXmiyCP2K9+Iv1NkS7pQBH8Us8ZKeZ4P IGzFMSQsVHTT2mUrdS9Cn10lbT4b6DUANI61sciK5DihN0YL2dx2uiWJd5rPu1uD1GFA EOJu76jg5C9E98RKO2nqIMNiXvimyd+tFeEh7H52qEMSSJRatyJljvYsbG+/1U/Ofwmn nwjw== X-Gm-Message-State: AOJu0Yyk24E0pw5NFJGXfgPzyJDn2DrLBe/VhAZko/kXLTh+SbkMdkF5 lCXxs2TxS4QLn7/KqNpT4i006qw2JwslhA== X-Google-Smtp-Source: AGHT+IESOQDXA4UtU2CPFBKQdtgBC4DolQZqCNK+xBFkJEYKhfulB5qLI1o6bn6j4oATOBftbdLETw== X-Received: by 2002:a17:907:764f:b0:9e5:2c72:9409 with SMTP id kj15-20020a170907764f00b009e52c729409mr5051598ejc.43.1699910575084; Mon, 13 Nov 2023 13:22:55 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id y19-20020a170906525300b009a13fdc139fsm4554189ejm.183.2023.11.13.13.22.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Nov 2023 13:22:53 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Mon, 13 Nov 2023 22:22:52 +0100 In-Reply-To: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) QW0gTW9udGFnLCBkZW0gMTMuMTEuMjAyMyB1bSAyMToyNiArMDEwMCBzY2hyaWViIFBpZXJyZS1I ZW5yeSBGcsO2aHJpbmc6Cj4gKiBndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtLAo+ICogZ3VpeC9i dWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbTogTmV3IG1vZHVsZXMuCj4gCj4gQ2hhbmdlLUlkOiBJ MmNiZjZjOTYzYTUzMGU3MzQyMGRhMGViMTdmZmFmOTI4Mjc0NTFiZgo+IC0tLQo+IMKgZ3VpeC9i dWlsZC1zeXN0ZW0vbWl4LnNjbcKgwqDCoMKgwqDCoCB8IDIzNyArKysrKysrKysrKysrKysrKysr KysrKysrCj4gwqBndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtIHwgMzAzCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiDCoDIgZmlsZXMgY2hhbmdlZCwgNTQwIGluc2Vy dGlvbnMoKykKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkLXN5c3RlbS9taXguc2Nt Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9idWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbQo+ IAo+IGRpZmYgLS1naXQgYS9ndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtIGIvZ3VpeC9idWlsZC1z eXN0ZW0vbWl4LnNjbQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmFl NDQwN2M5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2d1aXgvYnVpbGQtc3lzdGVtL21peC5zY20K PiBAQCAtMCwwICsxLDIzNyBAQAo+ICs7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2Fn ZSBtYW5hZ2VtZW50IGZvciBHTlUKPiArOzs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5y eSBGcsO2aHJpbmcKPiA8cGhmcm9ocmluZ0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQKPiBieQo+ICs7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArOzs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7 IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBT ZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lgo+ICs7OzsKPiArOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vuc2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAg SWYgbm90LCBzZWUKPiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBD b21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBTdGFuZGFyZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVsaXhp ciBwYWNrYWdlcyB1c2luZyAnbWl4Jy7CoCBUaGlzCj4gaXMKPiArOzsgaW1wbGVtZW50ZWQgYXMg YW4gZXh0ZW5zaW9uIG9mICdnbnUtYnVpbGQtc3lzdGVtJy4KPiArOzsKPiArOzsgQ29kZToKPiAr Cj4gKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBtaXgpCj4gK8KgICM6dXNlLW1v ZHVsZSAoZ251IHBhY2thZ2VzIGJhc2UpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2Vz IGVsaXhpcikKPiArwqAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZWxpeGlyLXh5eikKPiAr wqAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZXJsYW5nKQpZb3UgcHJvYmFibHkgd2FudCB0 byByZXNvbHZlIHRob3NlIGltcG9ydHMgcmF0aGVyIHRoYW4gdXNlLW1vZHVsZXMKdGhlbS4KPiAr wqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkIG1peC1idWlsZC1zeXN0ZW0pCj4gK8KgICM6dXNl LW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXgg YnVpbGQtc3lzdGVtKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggZ2V4cCkKPiArwqAgIzp1c2Ut bW9kdWxlIChndWl4IG1vbmFkcykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQo+ ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQo+ICvCoCAjOnVzZS1tb2R1bGUg KGd1aXggc3RvcmUpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKPiArwqAgIzp1c2Ut bW9kdWxlIChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiAr wqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCj4gK8KgICM6ZXhwb3J0IChtaXgtYnVpbGQt c3lzdGVtIGhleHBtLXVyaSkpCj4gKwo+ICsoZGVmaW5lIChoZXhwbS11cmkgbmFtZSB2ZXJzaW9u KQo+ICvCoCAiUmV0dXJuIHRoZSBVUkkgd2hlcmUgdG8gZmV0Y2ggdGhlIHNvdXJjZXMgb2YgYSBI ZXggcGFja2FnZSBOQU1FCj4gYXQgVkVSU0lPTi4KPiArU2VlOiBodHRwczovL2dpdGh1Yi5jb20v aGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYWluL2VuZHBvaW50cy5tZCIKPiArwqAgKHN0cmlu Zy1hcHBlbmQgImh0dHBzOi8vcmVwby5oZXgucG0vdGFyYmFsbHMvIgo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5nLXJlcGxhY2Utc3Vic3RyaW5nIChzdHJpcC1lbGl4 aXItcHJlZml4Cj4gbmFtZSkgIi0iICJfIikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIi0iIHZlcnNpb24gIi50YXIiKSkKPiArCj4gKyhkZWZpbmUgZ2xpYmMtdXRmOC1sb2Nh bGVzCj4gK8KgIChtYWtlLWdsaWJjLXV0ZjgtbG9jYWxlcyBnbGliYwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6bG9jYWxlcyAobGlzdCAi ZW5fVVMiKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6bmFtZSAiZ2xpYmMtdXRmOC1sb2NhbGVzIikpCj4gKwo+ICsoZGVmaW5lIChkZWZh dWx0LWVsaXhpcikKPiArwqAgIlJldHVybiB0aGUgZGVmYXVsdCBFbGl4aXIgcGFja2FnZS4iCj4g K8KgIDs7IExhemlseSByZXNvbHZlIHRoZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2lyY3VsYXIgZGVw ZW5kZW5jeS4KPiArwqAgKGxldCAoKGVsaXhpciAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFj a2FnZXMgZWxpeGlyKSkpKQo+ICvCoMKgwqAgKG1vZHVsZS1yZWYgZWxpeGlyICdlbGl4aXIpKSkK PiArCj4gKyhkZWZpbmUgaW1wb3J0ZWQtbW9kdWxlcwo+ICvCoCBgKChndWl4IGJ1aWxkIG1peC1i dWlsZC1zeXN0ZW0pCj4gK8KgwqDCoCAsQCVnbnUtYnVpbGQtc3lzdGVtLW1vZHVsZXMpKQo+ICsK PiArKGRlZmluZSBtb2R1bGVzCj4gK8KgICcoKGd1aXggYnVpbGQgbWl4LWJ1aWxkLXN5c3RlbSkK PiArwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpCj4gKwo+ICs7OyBUaGUgcHJlZml4IG9mIEVs aXhpciBwYWNrYWdlcy4KPiArKGRlZmluZSAlZWxpeGlyLXByZWZpeCAiZWxpeGlyLSIpCj4gKwo+ ICs7OyBUaGUgcHJlZml4IG9mIEVybGFuZyBwYWNrYWdlcy4KPiArKGRlZmluZSAlZXJsYW5nLXBy ZWZpeCAiZXJsYW5nLSIpCj4gKwo+ICsoZGVmaW5lIChlcmxhbmctcGFja2FnZT8gcGFja2FnZSkK PiArwqAgIlRlbGwgd2hldGhlciBQQUNLQUdFIGlzIGFuIEVybGFuZyBwYWNrYWdlLiIKPiArwqAg KHN0cmluZy1wcmVmaXg/ICVlcmxhbmctcHJlZml4IChwYWNrYWdlLW5hbWUgcGFja2FnZSkpKQo+ ICsKPiArKGRlZmluZSAoZWxpeGlyLXBhY2thZ2U/IHBhY2thZ2UpCj4gK8KgICJUZWxsIHdoZXRo ZXIgUEFDS0FHRSBpcyBhbiBFbGl4aXIgcGFja2FnZS4iCj4gK8KgIChzdHJpbmctcHJlZml4PyAl ZWxpeGlyLXByZWZpeCAocGFja2FnZS1uYW1lIHBhY2thZ2UpKSkKPiArCj4gKyhkZWZpbmUgKGVy bGFuZy1vci1lbGl4aXItcGtnPyBwYWNrYWdlKQo+ICvCoCAiVGVsbCB3aGV0aGVyIFBBQ0tBR0Ug aXMgYW4gRWxpeGlyIG9yIGFuIEVybGFuZyBwYWNrYWdlLiIKPiArwqAgKG9yIChlcmxhbmctcGFj a2FnZT8gcGFja2FnZSkKPiArwqDCoMKgwqDCoCAoZWxpeGlyLXBhY2thZ2U/IHBhY2thZ2UpKSkK WW91IGNhbiBzaW1wbGlmeSB0aGVzZSBmaXZlIHZhcmlhYmxlcyBpbnRvIG9uZSB0byB0aHJlZSAo dGhyZWUgYmVpbmcKcXVpdGUgbWFueSBhbHJlYWR5IGRlcGVuZGluZyBvbiB3aGV0aGVyIHlvdSds bCBhY3R1YWxseSB1c2UgdGhlIHNtYWxsZXIKb25lcykuCgo+ICsoZGVmaW5lIChlcmxhbmctb3It ZWxpeGlyLWlucHV0PyBpbnB1dCkKPiArwqAgIlRlbGwgd2hldGhlciBJTlBVVCBpcyBhbiBFbGl4 aXIgb3IgYW4gRXJsYW5nIGlucHV0LiIKPiArwqAgKG1hdGNoIGlucHV0Cj4gK8KgwqDCoCAoKF8g cGFja2FnZSkKPiArwqDCoMKgwqAgKGVybGFuZy1vci1lbGl4aXItcGtnPyBwYWNrYWdlKSkpKQpT a2lwLgoKPiArKGRlZmluZSAoaW5wdXQ9PyBpbnB1dDEgaW5wdXQyKQo+ICvCoCAiVGVsbCB3aGV0 aGVyIGlucHV0cyBJTlBVVDEgYW5kIElOUFVUMiBhcmUgZXF1YWwuIgo+ICvCoCAoZGVmaW5lIHBr ZzEgKG1hdGNoIGlucHV0MSAoKF8gcGtnKSBwa2cpKSkKPiArwqAgKGRlZmluZSBwa2cyIChtYXRj aCBpbnB1dDIgKChfIHBrZykgcGtnKSkpCj4gK8KgIChzdHJpbmc9PyAocGFja2FnZS1uYW1lIHBr ZzEpIChwYWNrYWdlLW5hbWUgcGtnMikpKQpBZ2FpbiwgY2hlY2tpbmcgZm9yIGxhYmVsIGVxdWl2 YWxlbmNlIGlzIGEgYmFkIGlkZWEuCgo+ICs7OyBBIG51bWJlciBvZiBlbnZpcm9ubWVudCB2YXJp YWJsZXMgc3BlY2lmaWMgdG8gdGhlIE1peCBidWlsZAo+IHN5c3RlbSBhcmUgcmVmbGVjdGVkIGhl cmUuCj4gKzs7IFRoZXkgYXJlIGRvY3VtZW50ZWQgaGVyZToKPiBodHRwczovL2hleGRvY3MucG0v bWl4LzEuMTUuNy9NaXguaHRtbCNtb2R1bGUtZW52aXJvbm1lbnQtdmFyaWFibGVzLgo+ICs7OyBP dGhlciBwYXJhbWV0ZXJzIGxvY2F0ZWQgaW4gbWl4LmV4cyBhcmUgZGVmaW5lZCBoZXJlOgo+ICs7 Owo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5Qcm9qZWN0Lmh0bWwjbW9kdWxl LWNvbmZpZ3VyYXRpb24KPiArKGRlZmluZSogKG1peC1idWlsZCBuYW1lCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzb3VyY2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgZWxpeGlyLVguWSA7VGhlIG1ham9yIGFuZCBtaW5vciBvZiBFbGl4aXIuCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtaXgtcGF0aCAjZikgO1NlZSBNSVhfUEFUSC4K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1peC1leHMgIm1peC5l eHMiKSA7U2VlIE1JWF9FWFMuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChidWlsZC1wZXItZW52aXJvbm1lbnQgI3QpIDtTZWUKPiA6YnVpbGRfcGVyX2Vudmlyb25t ZW50Lgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocGhhc2VzICcl c3RhbmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAob3V0cHV0cyAnKCJvdXQiKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWlsZSAjZikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcykKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1vZHVsZXMgbW9kdWxlcykp Cj4gK8KgICJCdWlsZCBTT1VSQ0UgdXNpbmcgRWxpeGlyLCBhbmQgd2l0aCBJTlBVVFMuIgo+ICsK PiArwqAgOzsgQ2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb2YgOmJ1aWxkX3Blcl9lbnZpcm9ubWVu dCBoZXJlOgo+ICvCoCA7Owo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5Qcm9q ZWN0Lmh0bWwjbW9kdWxlLWNvbmZpZ3VyYXRpb27CoEEKPiBuZAo+ICvCoCA7OyAiRW52aXJvbm1l bnRzIiBoZXJlOgo+ICvCoCA7OyBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguaHRt bCNtb2R1bGUtZW52aXJvbm1lbnRzCj4gK8KgIChkZWZpbmUgbWl4LWVudmlyb25tZW50cwo+ICvC oMKgwqAgKGlmIGJ1aWxkLXBlci1lbnZpcm9ubWVudAo+ICvCoMKgwqDCoMKgwqDCoCBgKCJwcm9k IiAsQChpZiB0ZXN0cz8gJygidGVzdCIpICcoKSkpCj4gK8KgwqDCoMKgwqDCoMKgICcoInNoYXJl ZCIpKSkKPiArCj4gK8KgIChkZWZpbmUgYnVpbGRlcgo+ICvCoMKgwqAgKHdpdGgtaW1wb3J0ZWQt bW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCj4gK8KgwqDCoMKgwqAgI34oYmVnaW4KPiArCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoCAodXNlLW1vZHVsZXMgIyRAKHNleHAtPmdleHAgbW9kdWxlcykpCj4g Kwo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12YXJpYWJsZXMgaW5wdXRzIG91 dHB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgI34obWl4LWJ1aWxkICM6bmFtZSAj JG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAjOnNvdXJjZSAjK3NvdXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6c3lzdGVtICMkc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0cz8gIyR0ZXN0cz8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAj Om1peC1wYXRoICMkbWl4LXBhdGgKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOm1peC1leHMgIyRtaXgtZXhzCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzplbGl4aXItWC5ZICMkZWxp eGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6bWl4LWVudmlyb25tZW50cyAnIyRtaXgtZW52aXJvbm1lbnRzCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpidWlsZC1wZXIt ZW52aXJvbm1lbnQgIyRidWlsZC1wZXItCj4gZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFp cj8gcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZXhwLT5nZXhwIHBoYXNl cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRzICVvdXRwdXRz Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzpzZWFyY2gtcGF0aHMgJyMkKHNleHAtPmdleHAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2Vh cmNoLXBhdGgtCj4gc3BlY2lmaWNhdGlvbi0+c2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aHMpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJWJ1aWxkLWlucHV0cykpKSkpCj4g Kwo+ICvCoCAobWxldCAlc3RvcmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAo b3IgZ3VpbGUKPiAoZGVmYXVsdC1ndWlsZSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAjOmdyYWZ0PyAjZikpKQo+ICvCoMKgwqAgKGdleHAtPmRlcml2YXRpb24gbmFt ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVpbGRlcgo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gc3lz dGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0 PyAjZsKgwqDCoMKgwqDCoCA7Y29uc2lzdGVudCB3aXRoICdnbnUtYnVpbGQnCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRhcmdldCAjZgo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpndWlsZS1mb3ItYnVpbGQgZ3Vp bGUpKSkKPiArCj4gKyhkZWZpbmUqIChsb3dlciBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNl Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5wdXRzICcoKSkKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAobmF0aXZlLWlucHV0cyAnKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAocHJvcGFnYXRlZC1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3lz dGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0YXJnZXQKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChlbGl4aXIgKGRlZmF1bHQtZWxpeGlyKSkKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cyAjOnJlc3QgYXJndW1l bnRzKQo+ICvCoCAiUmV0dXJuIGEgYmFnIGZvciBOQU1FLiIKPiArwqAgKGRlZmluZSBwcml2YXRl LWtleXdvcmRzCj4gK8KgwqDCoCAnKCM6aW5wdXRzICM6bmF0aXZlLWlucHV0cyAjOm91dHB1dHMg IzpzeXN0ZW0gIzp0YXJnZXQKPiAjOmVsaXhpcikpCj4gKwo+ICvCoCA7OyBMaWJyYXJpZXMgYXJl IGNvbXBpbGVkIHVzaW5nIGEgZ2l2ZW4gdmVyc2lvbiBvZiBFbGl4aXIuIFRoaXMKPiBmYWN0IGlz Cj4gK8KgIDs7IGVuY29kZWQgYnkgdGhlIG5hbWUgb2YgYSBzdWItZGlyZWN0b3J5IGxpa2UgbGli L2VsaXhpci9YLlkuIFdlCj4gY29tcHV0ZQo+ICvCoCA7OyB0aGUgdmFsdWUgb2YgWC5ZIGhlcmUg d2hpY2ggaXMgdmFsaWQgZm9yIHRoZSB3aG9sZSBidWlsZC4KPiArwqAgKGRlZmluZSBlbGl4aXIt WC5ZICh2ZXJzaW9uLW1ham9yK21pbm9yIChwYWNrYWdlLXZlcnNpb24gZWxpeGlyKSkpCj4gKwo+ ICvCoCA7OyBFbGl4aXIgZGVwZW5kcyBvbiBhIHNwZWNpZmljIHZlcnNpb24gb2YgRXJsYW5nLCB0 aGlzIG9uZS4KPiArwqAgKGRlZmluZSBlcmxhbmcgKGxvb2t1cC1wYWNrYWdlLWlucHV0IGVsaXhp ciAiZXJsYW5nIikpCj4gKwo+ICvCoCA7OyBGb3IgbWl4IHRvIGNvbXBpbGUgYW5kIHRlc3QgYSBw YWNrYWdlLCBpdCBuZWVkcyB0byBmaW5kIGFsbAo+IGlucHV0cywKPiArwqAgOzsgbmF0aXZlLWlu cHV0cyBhbmQgcHJvcGFnYXRlZC1pbnB1dHMgKGluY2x1ZGluZyB0aGUgdHJhbnNpdGl2ZQo+IG9u ZXMpIHVuZGVyCj4gK8KgIDs7IF9idWlsZCBkaXJlY3RvcmllcyBsaWtlIF9idWlsZC9wcm9kL2xp Yi4KPiArwqAgOzsKPiArwqAgOzsgR2l2ZW4gaW5wdXRzIGFuZCBuYXRpdmUtaW5wdXRzIG9mIHRo ZSBwYWNrYWdlLCB3ZSBuZWVkIHRvCj4gY29tcHV0ZSB0aGUKPiArwqAgOzsgdHJhbnNpdGl2ZSBj bG9zdXJlIG9mIGFsbCBFcmxhbmcgYW5kIEVsaXhpciBwcm9wYWdhdGVkIGlucHV0cwo+IGFuZCBh ZGQKPiArwqAgOzsgdGhlbSB0byB0aGUgYnVpbGQgaW5wdXRzLgo+ICvCoCAoZGVmaW5lIGFsbC1w cm9wYWdhdGVkLWlucHV0cwo+ICvCoMKgwqAgKChjb21wb3NlCj4gK8KgwqDCoMKgwqAgKGN1dCBk ZWxldGUtZHVwbGljYXRlcyA8PiBpbnB1dD0/KQo+ICvCoMKgwqDCoMKgIChjdXQgZmlsdGVyIGVy bGFuZy1vci1lbGl4aXItaW5wdXQ/IDw+KQo+ICvCoMKgwqDCoMKgIChjdXQgYXBwZW5kLW1hcCBw YWNrYWdlLXRyYW5zaXRpdmUtcHJvcGFnYXRlZC1pbnB1dHMgPD4pCj4gK8KgwqDCoMKgwqAgKGN1 dCBtYXAgY2FkciA8PikpCj4gK8KgwqDCoMKgIChhcHBlbmQgaW5wdXRzIG5hdGl2ZS1pbnB1dHMp KSkKPiArCj4gK8KgIChkZWZpbmUgYnVpbGQtaW5wdXRzCj4gK8KgwqDCoCBgKCxAKHN0YW5kYXJk LXBhY2thZ2VzKQo+ICvCoMKgwqDCoMKgICgiZ2xpYmMtdXRmOC1sb2NhbGVzIiAsZ2xpYmMtdXRm OC1sb2NhbGVzKQo+ICvCoMKgwqDCoMKgICgiZXJsYW5nIiAsZXJsYW5nKQo+ICvCoMKgwqDCoMKg ICgicmViYXIzIiAscmViYXIzKQo+ICvCoMKgwqDCoMKgICgiZWxpeGlyIiAsZWxpeGlyKQo+ICvC oMKgwqDCoMKgICgiZWxpeGlyLWhleCIgLGVsaXhpci1oZXgpCj4gK8KgwqDCoMKgwqAgLEBhbGwt cHJvcGFnYXRlZC1pbnB1dHMKPiArwqDCoMKgwqDCoCAsQGlucHV0cwo+ICvCoMKgwqDCoMKgICxA bmF0aXZlLWlucHV0cykpCj4gKwo+ICvCoCA7OyBTb21lIGlucHV0cywgc3VjaCBhcyBDIHByb2dy YW1zLCBtYXkgYmUgYXJjaGl0ZWN0dXJlIGRlcGVuZGVudC4KPiArwqAgKGRlZmluZSBob3N0LWlu cHV0cyAoaWYgdGFyZ2V0IGlucHV0cyAnKCkpKQo+ICsKPiArwqAgKGJhZyAobmFtZSBuYW1lKQo+ ICvCoMKgwqDCoMKgwqAgKHN5c3RlbSBzeXN0ZW0pCj4gK8KgwqDCoMKgwqDCoCAoYnVpbGQtaW5w dXRzIGJ1aWxkLWlucHV0cykKPiArwqDCoMKgwqDCoMKgIChob3N0LWlucHV0cyBob3N0LWlucHV0 cykKPiArwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoCAoYnVp bGQgbWl4LWJ1aWxkKQo+ICvCoMKgwqDCoMKgwqAgKGFyZ3VtZW50cyAoYXBwZW5kIGAoIzplbGl4 aXItWC5ZICxlbGl4aXItWC5ZKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAoc3RyaXAta2V5d29yZC1hcmd1bWVudHMgcHJpdmF0ZS1rZXl3b3Jk cwo+IGFyZ3VtZW50cykpKSkpCj4gKwo+ICsoZGVmaW5lIG1peC1idWlsZC1zeXN0ZW0KPiArwqAg KGJ1aWxkLXN5c3RlbSAobmFtZSAnbWl4KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGRlc2NyaXB0aW9uICJUaGUgc3RhbmRhcmQgTWl4IGJ1aWxkIHN5c3RlbSIpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobG93ZXIgbG93ZXIpKSkKPiArCj4gKzs7OyBtaXgu c2NtIGVuZHMgaGVyZQo+IGRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0u c2NtIGIvZ3VpeC9idWlsZC9taXgtYnVpbGQtCj4gc3lzdGVtLnNjbQo+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjg2YTVkYjUxCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2d1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20KPiBAQCAtMCwwICsxLDMwMyBAQAo+ICs7 OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKPiAr Ozs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcKPiA8cGhmcm9ocmlu Z0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBH dWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKPiBieQo+ICs7Ozsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiAr Ozs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICs7OzsKPiArOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vu c2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAgSWYgbm90LCBzZWUKPiA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBDb21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBD b2RlOgo+ICsKPiArKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWl4LWJ1aWxkLXN5c3RlbSkK PiArwqAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnByZWZp eCBnbnU6KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCj4gK8KgICM6dXNl LW1vZHVsZSAoaWNlLTkgZnR3KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQo+ICvC oCAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IHN0 cmluZy1mdW4pCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCj4gK8KgICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTI2KQo+ICvCoCAjOmV4cG9ydCAobWl4LWJ1aWxkCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RyaXAtZWxpeGlyLXByZWZpeAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICVzdGFuZGFyZC1waGFzZXMpKQo+ICsKPiArKGRlZmluZSAoZi1qb2luIC4gcGF0aHMpCj4g K8KgICJSZXR1cm4gYSBwYXRoIChhIHN0cmluZykgZm9ybWVkIGZyb20gam9pbmluZyBlYWNoIGNv bXBvbmVudCBpbgo+IFBBVEhTIChsaXN0IG9mIHN0cmluZ3MpLgo+ICtFeGFtcGxlOiBcImFcIiBc ImJcIiBcImNcIiDihpIgXCJhL2IvY1wiIgo+ICvCoCAoc3RyaW5nLWpvaW4gcGF0aHMgZmlsZS1u YW1lLXNlcGFyYXRvci1zdHJpbmcpKQpJdCBpcyB3aXNlciB0byB3cml0ZSB0aGVzZSBvdXQgYXMg cmVndWxhciBzdHJpbmctYXBwZW5kcy4KCj4gKyhkZWZpbmUgKHN0cmlwLXByZWZpeCBwcmVmaXgg bmFtZSkKPiArwqAgIlJldHVybiBOQU1FIHdpdGhvdXQgdGhlIHByZWZpeCBQUkVGSVguIgo+ICvC oCAoaWYgKHN0cmluZy1wcmVmaXg/IHByZWZpeCBuYW1lKQo+ICvCoMKgwqDCoMKgIChzdHJpbmct ZHJvcCBuYW1lIChzdHJpbmctbGVuZ3RoIHByZWZpeCkpCj4gK8KgwqDCoMKgwqAgbmFtZSkpCkkn bSBwcmV0dHkgc3VyZSB3ZSBoYXZlIGEgZnVuY3Rpb24gbG9va2luZyBsaWtlIHRoaXMgc29tZXdo ZXJlLCBidXQgSQpjYW4ndCByZWNhbGwgaXRzIG5hbWUgYXRtLiAgCgo+ICs7OyBBbGwgRWxpeGly IHBhY2thZ2UgbmFtZXMgc3RhcnQgd2l0aCB0aGlzIHByZWZpeC4gSWYgYSBwYWNrYWdlCj4gbmFt ZSBzdGFydHMKPiArOzsgd2l0aCB0aGlzIHByZWZpeCwgdGhlbiBpdCBpcyBhbiBFbGl4aXIgcGFj a2FnZS4KPiArKGRlZmluZSAlZWxpeGlyLXByZWZpeCAiZWxpeGlyLSIpClVzZWxlc3MgbWFnaWMg Y29uc3RhbnQuCj4gKwo+ICsoZGVmaW5lIChwYXRoLT5lbGl4aXItbGliIHBhdGggWC5ZKQo+ICvC oCAiUmV0dXJuIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aGluIFBBVEggd2hlcmUgbGli cmFyaWVzIG9mCj4gYW4gRWxpeGlyCj4gK3BhY2thZ2UgYXJlIGluc3RhbGxlZC4gSGVyZSwgWC5Z IHJlcHJlc2VudHMgdGhlIG1ham9yIGFuZCBtaW5vcgo+IHZlcnNpb24KPiArbnVtYmVycyBvZiBF bGl4aXIgdXNlZCBmb3IgY29tcGlsYXRpb24uIgo+ICvCoCAoZi1qb2luIHBhdGggImxpYiIgImVs aXhpciIgWC5ZKSkKSXMgcGF0aCBpdHNlbGYgZXZlciB1c2VmdWwgaGVyZSBvciBkb2VzIGl0IHNp bXBseSBwb2ludCB0byB0aGUgc3RvcmU/ClRoaXMgY2FuIGxpa2VseSBiZSBzaW1wbGlmaWVkIHRv wqAKKGRlZmluZSAoZWxpeGlyLWxpYiB2ZXJzaW9uKQogIChzdHJpbmctYXBwZW5kICIvbGliL2Vs aXhpci8iIHZlcnNpb24pKQoKPiArKGRlZmluZSAoZWxpeGlyLW5hbWU/IG5hbWUpCj4gK8KgICJE ZXRlcm1pbmVzIGlmIE5BTUUgaXMgdGhlIG5hbWUgb3IgdGhlIGxhYmVsIGFzc29jaWF0ZWQgdG8g YW4KPiBFbGl4aXIKPiArcGFja2FnZS4iCj4gK8KgIChzdHJpbmctcHJlZml4PyAlZWxpeGlyLXBy ZWZpeCBuYW1lKSkKVXNlbGVzcyB1c2Ugb2YgbWFnaWMgY29uc3RhbnQuCj4gKwo+ICsoZGVmaW5l IChlbGl4aXItaW5wdXQ/IFguWSBpbnB1dCkKPiArwqAgIkRldGVybWluZXMgaWYgdGhlIGdpdmVu IElOUFVUIGlzIGFuIEVsaXhpciBpbnB1dC4iCj4gK8KgIChtYXRjaCBpbnB1dAo+ICvCoMKgwqAg KChsYWJlbCAuIHBhdGgpCj4gK8KgwqDCoMKgIDs7IFhYWDogVGhlIHNlY29uZCBjb25kaXRpb24g bWF5IGJlIGVub3VnaC4KPiArwqDCoMKgwqAgKGFuZCAoZWxpeGlyLW5hbWU/IGxhYmVsKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqAgKGRpcmVjdG9yeS1leGlzdHM/IChwYXRoLT5lbGl4aXItbGliIHBh dGggWC5ZKSkpKSkpCkFoZW0sIHNlYXJjaC1wYXRoLWFzLWxpc3QuCkFsc28sIGxlYWtpbmcgdGhl IHZlcnNpb24gaXMga2luZGEgYmFkLCBBUEktd2lzZS4KCj4gKyhkZWZpbmUgKHN0cmlwLWVsaXhp ci1wcmVmaXggbmFtZSkKPiArwqAgIlN0cmlwICVlbGl4aXItcHJlZml4IGZyb20gTkFNRS4iCj4g K8KgIChzdHJpcC1wcmVmaXggJWVsaXhpci1wcmVmaXggbmFtZSkpCj4gCj4gKzs7IEFsbCBFcmxh bmcgcGFja2FnZSBuYW1lcyBzdGFydCB3aXRoIHRoaXMgcHJlZml4LiBJZiBhIHBhY2thZ2UKPiBu YW1lIHN0YXJ0cwo+ICs7OyB3aXRoIHRoaXMgcHJlZml4LCB0aGVuIGl0IGlzIGFuIEVybGFuZyBw YWNrYWdlLgo+ICsoZGVmaW5lICVlcmxhbmctcHJlZml4ICJlcmxhbmctIikKPiArCj4gKyhkZWZp bmUgKHBhdGgtPmVybGFuZy1saWIgcGF0aCkKPiArwqAgIlJldHVybiB0aGUgcGF0aCBvZiB0aGUg ZGlyZWN0b3J5IHdoZXJlIGxpYnJhcmllcyBvZiBhbiBFcmxhbmcKPiBwYWNrYWdlIGFyZQo+ICtp bnN0YWxsZWQgaW4gdGhlIHN0b3JlLiIKPiArwqAgKGYtam9pbiBwYXRoICJsaWIiICJlcmxhbmci ICJsaWIiKSkKPiArCj4gKyhkZWZpbmUgKGVybGFuZy1uYW1lPyBuYW1lKQo+ICvCoCAiRGV0ZXJt aW5lcyBpZiBOQU1FIGlzIHRoZSBuYW1lIG9yIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHRvIGFuCj4g RXJsYW5nCj4gK3BhY2thZ2UuIgo+ICvCoCAoc3RyaW5nLXByZWZpeD8gJWVybGFuZy1wcmVmaXgg bmFtZSkpCj4gKwo+ICsoZGVmaW5lIChlcmxhbmctaW5wdXQ/IGlucHV0KQo+ICvCoCAiRGV0ZXJt aW5lcyBpZiB0aGUgZ2l2ZW4gSU5QVVQgaXMgYW4gRXJsYW5nIGlucHV0LiIKPiArwqAgKG1hdGNo IGlucHV0Cj4gK8KgwqDCoCAoKGxhYmVsIC4gcGF0aCkKPiArwqDCoMKgwqAgOzsgWFhYOiBvbmUg Y29uZGl0aW9uIG1heSBiZSBlbm91Z2guIFdpdGhvdXQgdGhlIGZpcnN0IG9uZSwgdGhlCj4gZXJs YW5nCj4gK8KgwqDCoMKgIDs7IGlucHV0IGlzIGNvbnNpZGVyZWQgYW4gaW5wdXQgd2hlbiB3ZSBq dXN0IHdhbnQgRXJsYW5nCj4gcGFja2FnZXMuCj4gK8KgwqDCoMKgIChhbmQgKGVybGFuZy1uYW1l PyBsYWJlbCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChkaXJlY3RvcnktZXhpc3RzPyAocGF0aC0+ ZXJsYW5nLWxpYiBwYXRoKSkpKSkpCj4gKwo+ICsoZGVmaW5lIChzdHJpcC1lcmxhbmctcHJlZml4 IG5hbWUpCj4gK8KgICJTdHJpcCAlZXJsYW5nLXByZWZpeCBmcm9tIE5BTUUuIgo+ICvCoCAoc3Ry aXAtcHJlZml4ICVlcmxhbmctcHJlZml4IG5hbWUpKQpEdXBsaWNhdGVkIGJvaWxlcnBsYXRlIGZv ciBuZWl0aGVyIGZ1biBub3IgcHJvZml0LgoKPiArKGRlZmluZSAoZXJsYW5nLW9yLWVsaXhpci1p bnB1dD8gWC5ZIGlucHV0KQo+ICvCoCAiRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gSU5QVVQgaXMg YW4gRXJsYW5nIG9yIEVsaXhpciBpbnB1dC4iCj4gK8KgIChvciAoZXJsYW5nLWlucHV0PyBpbnB1 dCkKPiArwqDCoMKgwqDCoCAoZWxpeGlyLWlucHV0PyBYLlkgaW5wdXQpKSkKTGVhaywgbGVhaywg bGVhay4KPiArCj4gKyhkZWZpbmUgKHNuYWtlY2FzZS1uYW1lIG5hbWUpCj4gK8KgICJSZXR1cm4g YSBzbmFrZWNhc2UgdmVyc2lvbiBvZiBOQU1FLiIKPiArwqAgKHN0cmluZy1yZXBsYWNlLXN1YnN0 cmluZyAoc3RyaW5nLWRvd25jYXNlIG5hbWUpICItIiAiXyIpKQo+ICsKPiArKGRlZmluZSAobGFi ZWwtPmxpYnJhcnktbmFtZSBsYWJlbCkKPiArwqAgIlJldHVybiB0aGUgbGlicmFyeSBuYW1lIGFz c29jaWF0ZWQgdG8gYW4gaW5wdXQgbGFiZWwgTEFCRUwuIgo+ICvCoCAoZGVmaW5lIHN0cmlwcGVk LWxhYmVsCj4gK8KgwqDCoCAoY29uZAo+ICvCoMKgwqDCoCAoKGVybGFuZy1uYW1lPyBsYWJlbCkK PiArwqDCoMKgwqDCoCAoc3RyaXAtZXJsYW5nLXByZWZpeCBsYWJlbCkpCj4gK8KgwqDCoMKgICgo ZWxpeGlyLW5hbWU/IGxhYmVsKQo+ICvCoMKgwqDCoMKgIChzdHJpcC1lbGl4aXItcHJlZml4IGxh YmVsKSkKPiArwqDCoMKgwqAgKCN0IChlcnJvciAiSW52YWxpZCBsYWJlbDogZXhwZWN0ZWQgYW4g RXJsYW5nIG9yIEVsaXhpciBsYWJlbC4iCj4gJ2xhYmVsIGxhYmVsKSkpKQo+ICvCoCAoc25ha2Vj YXNlLW5hbWUgc3RyaXBwZWQtbGFiZWwpKQpEb24ndCByZWx5IG9uIGxhYmVscy4KCj4gKyhkZWZp bmUgKHBrZy1uYW1lLT5saWJyYXJ5LW5hbWUgbmFtZSkKPiArwqAgIlJldHVybiB0aGUgbmFtZSBv ZiB0aGUgbGlicmFyeSBkZWR1Y2VkIGZyb20gdGhlIG5hbWUgb2YgdGhlIEd1aXgKPiBwYWNrYWdl Lgo+ICtFeGFtcGxlOiBlbGl4aXItYS1wa2ctMS4wLjIg4oaSIGFfcGtnCj4gK1NlZTogaHR0cHM6 Ly93d3cuZXJsYW5nLm9yZy9kb2MvbWFuL2NvZGUjY29kZS1wYXRoIgo+ICvCoCAoKGNvbXBvc2UK PiArwqDCoMKgIGxhYmVsLT5saWJyYXJ5LW5hbWUKPiArwqDCoMKgIChjdXQgc3RyaW5nLWpvaW4g PD4gIi0iKQo+ICvCoMKgwqAgKGN1dCBkcm9wLXJpZ2h0IDw+IDEpCj4gK8KgwqDCoCAoY3V0IHN0 cmluZy1zcGxpdCA8PiAjXC0pKQo+ICvCoMKgIG5hbWUpKQo+ICsKPiArOzsgV2UgZml4IGFzIG1h bnkgdmFyaWFibGVzIGFzIHBvc3NpYmxlLgo+ICs7OyBTZWU6Cj4gaHR0cHM6Ly9oZXhkb2NzLnBt L21peC8xLjE1LjcvTWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50LXZhcmlhYmxlcwo+ICsoZGVm aW5lIE1JWF9IT01FICJNSVhfSE9NRSIpCj4gKwo+ICsoZGVmaW5lIE1JWF9BUkNISVZFUyAiTUlY X0FSQ0hJVkVTIikKPiArKGRlZmluZSAoJW1peC1hcmNoaXZlcyBtaXgtaG9tZSkgKGYtam9pbiBt aXgtaG9tZSAiYXJjaGl2ZXMiKSkKPiArKGRlZmluZSBNSVhfQlVJTERfUk9PVCAiTUlYX0JVSUxE X1JPT1QiKQo+ICsoZGVmaW5lICVtaXgtYnVpbGQtcm9vdCAiX2J1aWxkIikKPiArKGRlZmluZSBN SVhfREVQU19QQVRIICJNSVhfREVQU19QQVRIIikKPiArKGRlZmluZSAlbWl4LWRlcHMtcGF0aCAi ZGVwcyIpCj4gKyhkZWZpbmUgTUlYX1BBVEggIk1JWF9QQVRIIikKPiArKGRlZmluZSBNSVhfUkVC QVIzICJNSVhfUkVCQVIzIikKPiArKGRlZmluZSBNSVhfRVhTICJNSVhfRVhTIikKPiArKGRlZmlu ZSAlbWl4LWV4cyAibWl4LmV4cyIpCj4gKzs7IFhYWDogaWYgZGlmZmVyZW50IGFyY2hpdGVjdHVy ZSBhcmUgbmVlZGVkLCB0aGVuIHVzZSB0aGlzCj4gdmFyaWFibGUuCj4gKyhkZWZpbmUgTUlYX1RB UkdFVCAiTUlYX1RBUkdFVCIpCj4gKyhkZWZpbmUgTUlYX0VOViAiTUlYX0VOViIpCj4gKyhkZWZp bmUgJW1peC1lbnYtcHJvZCAicHJvZCIpCj4gKyhkZWZpbmUgJW1peC1lbnYtdGVzdCAidGVzdCIp Cj4gKyhkZWZpbmUgJW1peC1lbnYtc2hhcmVkICJzaGFyZWQiKQpHcmF0dWl0b3VzIGRlZmluaXRp b25zIGFyZSBncmF0dWl0b3VzLgoKPiArOzsgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB3aGVy ZSBjb21waWxlZCBsaWJyYXJpZXMgYnkgbWl4IGFyZQo+IHN0b3JlZC4KPiArKGRlZmluZSAlbWl4 LWxpYiAibGliIikKPiArCj4gKzs7IFVzZWZ1bCBiZWNhdXNlIEVsaXhpciBleHBlY3RzIGEgVVRG LTggbG9jYWxlLgo+ICsoZGVmaW5lIExDX0FMTCAiTENfQUxMIikKPiArCj4gKyhkZWZpbmUgKG1p eC1idWlsZC1kaXIgbWl4LWVudikKPiArwqAgIlJldHVybiB0aGUgZGlyZWN0b3J5IHdoZXJlIGJ1 aWxkIGFydGlmYWN0cyBhcmUgdG8gYmUgaW5zdGFsbGVkCj4gYWNjb3JkaW5nIHRvCj4gK2VuIGVu dmlyb25tZW50IE1JWC1FTlYgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiIKPiArwqAgKGYtam9p biAlbWl4LWJ1aWxkLXJvb3QgbWl4LWVudiAlbWl4LWxpYikpCj4gKwo+ICsoZGVmaW5lKiAodW5w YWNrICM6a2V5IHNvdXJjZSBtaXgtcGF0aCAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgICJVbnBh Y2sgU09VUkNFIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgYW5kIGNoYW5nZSBkaXJlY3RvcnkK PiB3aXRoaW4gdGhlCj4gK3NvdXJjZS7CoCBXaGVuIFNPVVJDRSBpcyBhIGRpcmVjdG9yeSwgY29w eSBpdCBpbiBhIHN1Yi1kaXJlY3Rvcnkgb2YKPiB0aGUgY3VycmVudAo+ICt3b3JraW5nIGRpcmVj dG9yeS4iCj4gK8KgIChsZXQgKChnbnUtdW5wYWNrIChhc3NvYy1yZWYgZ251OiVzdGFuZGFyZC1w aGFzZXMgJ3VucGFjaykpKQo+ICvCoMKgwqAgKGdudS11bnBhY2sgIzpzb3VyY2Ugc291cmNlKQo+ ICvCoMKgwqAgKGxldCAoKGNvbnRlbnRzICJjb250ZW50cy50YXIuZ3oiKSkKPiArwqDCoMKgwqDC oCAod2hlbiAoZmlsZS1leGlzdHM/IGNvbnRlbnRzKQo+ICvCoMKgwqDCoMKgwqDCoCAoaW52b2tl ICJ0YXIiICJ4dmYiIGNvbnRlbnRzKSkpKSkKPiArCj4gKyhkZWZpbmUqIChjb25maWd1cmUgIzpr ZXkgaW5wdXRzIG1peC1wYXRoIG1peC1leHMgIzphbGxvdy1vdGhlci0KPiBrZXlzKQo+ICvCoCAi U2V0IGVudmlyb25tZW50IHZhcmlhYmxlcy4iCj4gK8KgIChzZXRlbnYgTENfQUxMICJlbl9VUy5V VEYtOCIpCj4gK8KgIChzZXRlbnYgTUlYX0hPTUUgKGdldGN3ZCkpCj4gK8KgIChzZXRlbnYgTUlY X0FSQ0hJVkVTICglbWl4LWFyY2hpdmVzIChnZXRlbnYgTUlYX0hPTUUpKSkKPiArwqAgKHNldGVu diBNSVhfQlVJTERfUk9PVCAlbWl4LWJ1aWxkLXJvb3QpCj4gK8KgIChzZXRlbnYgTUlYX0RFUFNf UEFUSCAlbWl4LWRlcHMtcGF0aCkKPiArwqAgKHNldGVudiBNSVhfUEFUSCAob3IgbWl4LXBhdGgg IiIpKQo+ICvCoCAoc2V0ZW52IE1JWF9SRUJBUjMgKGYtam9pbiAoYXNzb2MtcmVmIGlucHV0cyAi cmViYXIzIikgImJpbiIKPiAicmViYXIzIikpCj4gK8KgIChzZXRlbnYgTUlYX0VYUyBtaXgtZXhz KSkKPiArCj4gKyhkZWZpbmUqIChpbnN0YWxsLWhleCAjOmtleSBpbnB1dHMgbmFtZSBlbGl4aXIt WC5ZICM6YWxsb3ctb3RoZXItCj4ga2V5cykKPiArwqAgIkluc3RhbGwgSGV4LiIKPiArwqAgKGRl ZmluZSBoZXgtbmFtZSAiaGV4IikKPiArwqAgKGRlZmluZSBoZXgtcGF0aCAoYXNzb2MtcmVmIGlu cHV0cyAiZWxpeGlyLWhleCIpKQo+ICvCoCAoZGVmaW5lIGhleC1saWIgKGYtam9pbiAocGF0aC0+ ZWxpeGlyLWxpYiBoZXgtcGF0aCBlbGl4aXItWC5ZKQo+IGhleC1uYW1lKSkKPiArwqAgKGRlZmlu ZSBoZXgtYXJjaGl2ZS1wYXRoIChmLWpvaW4gKGdldGVudiBNSVhfQVJDSElWRVMpIGhleC1uYW1l KSkKPiArwqAgKG1rZGlyLXAgaGV4LWFyY2hpdmUtcGF0aCkKPiArwqAgKHN5bWxpbmsgaGV4LWxp YiAoZi1qb2luIGhleC1hcmNoaXZlLXBhdGggaGV4LW5hbWUpKSkKPiArCj4gKyhkZWZpbmUqIChp bnN0YWxsLWRlcGVuZGVuY2llcyAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFtZQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGVzdHM/Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBidWlsZC1wZXItZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5hdGl2 ZS1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxpeGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWl4LWVudmlyb25tZW50cwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIzphbGxvdy1vdGhlci1rZXlzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnJlc3QgcmVzdCkKPiArwqAgIkluc3Rh bGwgZGVwZW5kZW5jaWVzLgo+ICtHaXZlbiBhbiBlbnZpcm9ubWVudCBtaXgtZW52LCB3ZSBkZWZp bmUgYWxsLWlucHV0cyhtaXgtZW52KSBhcyB0aGUKPiBzZXQgb2YgYWxsCj4gK25lY2Vzc2FyeSBF cmxhbmcgYW5kIEVsaXhpciBpbnB1dHMgYW5kIGFzc29jaWF0ZWQgcHJvcGFnYXRlZCBpbnB1dHMK PiAoYW5kCj4gK3RyYW5zaXRpdmUgcHJvcGFnYXRlZCBpbnB1dHMpLgo+ICsKPiArRm9yIGV4YW1w bGUsIGFsbC1pbnB1dHMocHJvZCkgcmVwcmVzZW50cyBhbGwgdGhlIEVybGFuZyBhbmQgRWxpeGly Cj4gaW5wdXRzIGFuZAo+ICtwcm9wYWdhdGVkIGlucHV0cyBuZWNlc3NhcnkgdG8gY29tcGlsZSB0 aGUgTWl4IHByb2plY3QgZm9yIHRoZSBwcm9kCj4gK2Vudmlyb25tZW50Lgo+ICsKPiArSWYgZGVw IGJlbG9uZ3MgdG8gYWxsLWlucHV0cyhtaXgtZW52KSBhbmQgaXRzIGxpYnJhcnkgbmFtZSBpcyBk ZXAtCj4gbmFtZSwgdGhlbgo+ICtpdCBpcyBpbnN0YWxsZWQgdW5kZXIgKGYtam9pbiAobWl4LWJ1 aWxkLWRpciBtaXgtZW52KSBkZXAtbmFtZSkgYXMgYQo+IHN5bWJvbGljCj4gK2xpbmsuIgpUaGUg ZG9jc3RyaW5nIGRpdnVsZ2VzIGltcGxlbWVudGF0aW9uIGRldGFpbHMgd2l0aG91dCByZWFsbHkg ZXhwbGFpbmluZwp3aGF0IHRoZSBmdW5jdGlvbiBpdHNlbGYgZG9lcy4gIAo+ICvCoCAoZGVmaW5l IChhbGwtaW5wdXRzIG1peC1lbnYpCj4gK8KgwqDCoCAoZGVmaW5lIGVudi1pbnB1dHMKPiArwqDC oMKgwqDCoCAoY29uZAo+ICvCoMKgwqDCoMKgwqAgKChzdHJpbmc9PyBtaXgtZW52ICVtaXgtZW52 LXByb2QpCj4gK8KgwqDCoMKgwqDCoMKgIGlucHV0cykKPiArwqDCoMKgwqDCoMKgICgobWVtYmVy IG1peC1lbnYgKGxpc3QgJW1peC1lbnYtdGVzdCAlbWl4LWVudi1zaGFyZWQpKQo+ICvCoMKgwqDC oMKgwqDCoCAoYXBwZW5kIGlucHV0cyBuYXRpdmUtaW5wdXRzKSkKPiArwqDCoMKgwqDCoMKgICgj dCAoZXJyb3IgIlVuZXhwZWN0ZWQgTWl4IGVudmlyb25tZW50LiIgJ21peC1lbnYgbWl4LWVudikp KSkKWW91IHByb2JhYmx5IHdhbnQgYW5kIGljZS05IG1hdGNoIGhlcmUsIHdoaWNoIGhhcyBhbiBp bXBsaWNpdCBlcnJvciBvbgpmYWlsZWQgbWF0Y2hlcy4KPiArwqDCoMKgIChmaWx0ZXIgKGN1dCBl cmxhbmctb3ItZWxpeGlyLWlucHV0PyBlbGl4aXItWC5ZIDw+KSBlbnYtaW5wdXRzKSkKPiArCj4g K8KgIChkZWZpbmUgKGluc3RhbGwtaW5wdXQgbWl4LWVudiBpbnB1dCkKPiArwqDCoMKgIChsZXQg KChkaXIgKG1peC1idWlsZC1kaXIgbWl4LWVudikpKQo+ICvCoMKgwqDCoMKgIChta2Rpci1wIGRp cikKPiArwqDCoMKgwqDCoCAobWF0Y2ggaW5wdXQKPiArwqDCoMKgwqDCoMKgwqAgKChsYWJlbCAu IHBhdGgpCj4gK8KgwqDCoMKgwqDCoMKgwqAgKGxldCAoKGxpYi1uYW1lIChsYWJlbC0+bGlicmFy eS1uYW1lIGxhYmVsKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChzeW1saW5rCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGYtam9pbiAocGF0aC0+ZWxpeGlyLWxpYiBwYXRoIGVsaXhpci1Y LlkpIGxpYi1uYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmLWpvaW4gZGlyIGxpYi1u YW1lKSkpKSkpKQo+ICsKPiArwqAgKGRlZmluZSAoaW5zdGFsbC1pbnB1dHMgbWl4LWVudikKPiAr wqDCoMKgIChmb3ItZWFjaCAoY3V0IGluc3RhbGwtaW5wdXQgbWl4LWVudiA8PikKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFsbC1pbnB1dHMgbWl4LWVudikpKQo+ICsKPiArwqAgKGZv ci1lYWNoIGluc3RhbGwtaW5wdXRzIG1peC1lbnZpcm9ubWVudHMpKQo+ICsKPiArKGRlZmluZSog KGJ1aWxkICM6a2V5IG1peC1lbnZpcm9ubWVudHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAi QnVpbGRzIHRoZSBNaXggcHJvamVjdC4iCj4gK8KgIChkZWZpbmUgKGNvbXBpbGUgbWl4LWVudikK PiArwqDCoMKgIChzZXRlbnYgTUlYX0VOViBtaXgtZW52KQo+ICvCoMKgwqAgKGludm9rZSAibWl4 IiAiY29tcGlsZSIgIi0tbm8tZGVwcy1jaGVjayIpKQo+ICvCoCAoZm9yLWVhY2ggY29tcGlsZSBt aXgtZW52aXJvbm1lbnRzKSkKPiArCj4gKyhkZWZpbmUqIChjaGVjayAjOmtleSAodGVzdHM/ICN0 KSAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgICJUZXN0IHRoZSBNaXggcHJvamVjdC4iCj4gK8Kg IChpZiB0ZXN0cz8KPiArwqDCoMKgwqDCoCAoaW52b2tlICJtaXgiICJ0ZXN0IiAiLS1uby1kZXBz LWNoZWNrIikKPiArwqDCoMKgwqDCoCAoZm9ybWF0ICN0ICJ0ZXN0cz8gPSB+YX4lIiB0ZXN0cz8p KSkKPiArCj4gKyhkZWZpbmUqIChyZW1vdmUtbWl4LWRpcnMgLiBfKQo+ICvCoCAiUmVtb3ZlIGFs bCAubWl4LyBkaXJlY3Rvcmllcy4KPiArV2UgZG8gbm90IHdhbnQgdG8gY29weSB0aGVtIHRvIHRo ZSBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LiIKPiArwqAgKGRlZmluZSBtaXgtZGlycwo+ICvCoMKg wqAgKGZpbmQtZmlsZXMgIi4iCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZmls ZS1uYW1lLXByZWRpY2F0ZSAiXFwubWl4JCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAjOmRpcmVjdG9yaWVzPyAjdCkpCj4gK8KgIChmb3ItZWFjaCBkZWxldGUtZmlsZS1yZWN1 cnNpdmVseSBtaXgtZGlycykpCj4gKwo+ICsoZGVmaW5lKiAoaW5zdGFsbCAjOmtleQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVpbGQt cGVyLWVudmlyb25tZW50Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxp eGlyLVguWQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6YWxsb3ctb3Ro ZXIta2V5cykKPiArwqAgIkluc3RhbGwgYnVpbGQgYXJ0aWZhY3RzIGluIHRoZSBzdG9yZS4iCj4g K8KgIChkZWZpbmUgbGliLW5hbWUgKHBrZy1uYW1lLT5saWJyYXJ5LW5hbWUgbmFtZSkpCj4gKwo+ ICvCoCAoZGVmaW5lIGRpci1idWlsZAo+ICvCoMKgwqAgKGYtam9pbiAobWl4LWJ1aWxkLWRpciAo aWYgYnVpbGQtcGVyLWVudmlyb25tZW50ICVtaXgtZW52LXByb2QKPiAlbWl4LWVudi1zaGFyZWQp KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxpYi1uYW1lKSkKPiArCj4gK8KgIChkZWZpbmUg ZGlyLWluc3RhbGwKPiArwqDCoMKgIChmLWpvaW4gKHBhdGgtPmVsaXhpci1saWIgKGFzc29jLXJl ZiBvdXRwdXRzICJvdXQiKSBlbGl4aXItWC5ZKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxp Yi1uYW1lKSkKPiArwqAgKG1rZGlyLXAgZGlyLWluc3RhbGwpCj4gKwo+ICvCoCAoY29weS1yZWN1 cnNpdmVseSBkaXItYnVpbGQgZGlyLWluc3RhbGwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgIzpmb2xsb3ctc3ltbGlua3M/ICN0KSkKPiArCj4gKyhkZWZpbmUgJXN0 YW5kYXJkLXBoYXNlcwo+ICvCoCAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwo+ ICvCoMKgwqAgKGRlbGV0ZSAnYm9vdHN0cmFwKQo+ICvCoMKgwqAgKHJlcGxhY2UgJ2NvbmZpZ3Vy ZSBjb25maWd1cmUpCj4gK8KgwqDCoCAocmVwbGFjZSAndW5wYWNrIHVucGFjaykKPiArwqDCoMKg IChhZGQtYWZ0ZXIgJ3BhdGNoLWdlbmVyYXRlZC1maWxlLXNoZWJhbmdzICdpbnN0YWxsLWhleCBp bnN0YWxsLQo+IGhleCkKPiArwqDCoMKgIChhZGQtYWZ0ZXIgJ2luc3RhbGwtaGV4ICdpbnN0YWxs LWRlcGVuZGVuY2llcyBpbnN0YWxsLQo+IGRlcGVuZGVuY2llcykKPiArwqDCoMKgIChyZXBsYWNl ICdidWlsZCBidWlsZCkKPiArwqDCoMKgIChyZXBsYWNlICdjaGVjayBjaGVjaykKPiArwqDCoMKg IChhZGQtYmVmb3JlICdpbnN0YWxsICdyZW1vdmUtbWl4LWRpcnMgcmVtb3ZlLW1peC1kaXJzKQo+ ICvCoMKgwqAgKHJlcGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkpKQo+ICsKPiArKGRlZmluZSogKG1p eC1idWlsZCAjOmtleSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3MpCj4gK8KgICJCdWlsZCB0aGUgZ2l2ZW4gTWl4IHBhY2thZ2UsIGFwcGx5aW5nIGFsbCBv ZiBQSEFTRVMgaW4gb3JkZXIuIgo+ICvCoCAoYXBwbHkgZ251OmdudS1idWlsZCAjOmlucHV0cyBp bnB1dHMgIzpwaGFzZXMgcGhhc2VzIGFyZ3MpKQo+ICsKPiArOzs7IG1peC1idWlsZC1zeXN0ZW0u c2NtIGVuZHMgaGVyZQo+IAo+IGJhc2UtY29tbWl0OiBhMGQzMzdlNzljODdkN2MzOGM3OWQwMjkx OTc0ZjQ5MGNiMTM3YTUyCkkgcHJvYmFibHkgbWlzc2VkIHNvbWUsIGJ1dCBJIHRoaW5rIHlvdSBn ZXQgdGhlIGdpc3QuICBXaGlsZSB0aGlzIGlzbid0CmV4YWN0bHkgY29kZSBnb2xmLCB0cnkgdG8g ZXhwcmVzcyB5b3Vyc2VsZiBpbiB0ZXJtcyBvZiB0aGUgbGVhc3QKdmVyYm9zZSBwcmltaXRpdmVz IGFuZCBkb24ndCBhZGQgbWVhbmluZ2xlc3MgbGF5ZXJzIG9mIGluZGlyZWN0aW9uIOKAkyB3ZQph bHJlYWR5IGhhdmUgZW5vdWdoIGFjdHVhbCBtZWFuaW5nZnVsIG9uZXMuCgpDaGVlcnMK From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Nov 2023 10:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Liliana Marie Prikler Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169995829510836 (code B ref 66801); Tue, 14 Nov 2023 10:39:01 +0000 Received: (at 66801) by debbugs.gnu.org; 14 Nov 2023 10:38:15 +0000 Received: from localhost ([127.0.0.1]:60081 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2qoA-0002oh-EH for submit@debbugs.gnu.org; Tue, 14 Nov 2023 05:38:14 -0500 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]:55786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2qo5-0002oR-H3 for 66801@debbugs.gnu.org; Tue, 14 Nov 2023 05:38:13 -0500 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-5a7c08b7744so63364577b3.3 for <66801@debbugs.gnu.org>; Tue, 14 Nov 2023 02:37:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1699958241; x=1700563041; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Tv0Mu0o5HZWgNm5ikv8AIQD3QGSYbl+uTKhSMhVQfN0=; b=3Z2/CJZ/u8aUUIx0JbpScHZOszwFRJ4nM/3a+2BdP7+zRHraD4NeuFHS1s1T8mxl+L NLyBMPz2nR2QWB2gNI84D9JBXK0bNdYhmWQxON7KCSyUmtl6rLHKdhC5TTcLna6Dke9N xGUfwfgCbYQzy/rWOhoiJVVe5bwBOhDp5nOqkhl/B7zxfS6QiW7zPa9HCLl6EiA7EUqV QcnnRXCEEp4Gz4ciycD9UwlTzSBnlYZji5HnX9Na8KPKiy2VcOgWbHmQJxJl9wyn8p8o 9C4ZGpN1XmIZ2xNJ7qRA2el8i+EVS/km3yWqZuPnLIqzacIDHDEtnHL4LvMpx0qo2wL7 /GpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699958241; x=1700563041; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Tv0Mu0o5HZWgNm5ikv8AIQD3QGSYbl+uTKhSMhVQfN0=; b=foFFuf5wBu77OMSZLVuba+Hm+eOYiEGsQexHfbulCNtcLjSKkVx3kZ77pVypQxpFTR cVLKX1dIrKO1T5cX805qWU4TcLUdw4cWiBGBhudGdtHvh9T/KbdoUazmo1Hz0Al/dxxO DyqSC2RpABkGB1ao6d7fgkKlJXXrGMNkt2Fz+yXNH/ee2zBbtK8ujIocaS2CAimSkyND 9AvoNdXWmS+CJrAPKCHCAV1dhg7lu/WegM2NMkGe0fSh4dqozGDQSbEkiuZ2ePDULA90 eGsRg4BCXExvddNNpCGXfcwmSYZsZtK9go6kjj/zE5P+70d7zI6xIUyIsuicm09Old6M whJw== X-Gm-Message-State: AOJu0Yxcl8j0W4UW9o86HT18AZRdTXEkI2fgEZ7yEG0J2jy34Zc+kRLF Xv22vOT811TZ5KPp6Cz6g1oC8rMcL11G4dDJiiIuz7t5pEr7ehi9+GA= X-Google-Smtp-Source: AGHT+IGucm4lWPtwc+FJ5KQuQA1H+DITBCWPx2eBCykDwofxBCcAcEJaJ33rMljBzX3IwIAe3GFQ0o6cqyRbagXOQ/s= X-Received: by 2002:a81:a504:0:b0:5a8:204c:5c9b with SMTP id u4-20020a81a504000000b005a8204c5c9bmr9598656ywg.18.1699958241588; Tue, 14 Nov 2023 02:37:21 -0800 (PST) MIME-Version: 1.0 References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Tue, 14 Nov 2023 11:37:10 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000001f869b060a1a5f4f" X-Spam-Score: 0.0 (/) 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 (-) --0000000000001f869b060a1a5f4f Content-Type: text/plain; charset="UTF-8" > > +(define-module (guix build-system mix) > > + #:use-module (gnu packages base) > > + #:use-module (gnu packages elixir) > > + #:use-module (gnu packages elixir-xyz) > > + #:use-module (gnu packages erlang) > You probably want to resolve those imports rather than use-modules > them. You mean something like this? #+begin_src scheme (define-module (guix build-system mix) #:use-module ((gnu packages base) #:select (glibc make-glibc-utf8-locales)) #:use-module ((gnu packages elixir) #:select (elixir elixir-hex)) #:use-module ((gnu packages erlang) #:select (rebar3)) #+end_src I have moved `elixir-hex' to elixir.scm to avoid a circular dependency. > > +(define (input=? input1 input2) > > + "Tell whether inputs INPUT1 and INPUT2 are equal." > > + (define pkg1 (match input1 ((_ pkg) pkg))) > > + (define pkg2 (match input2 ((_ pkg) pkg))) > > + (string=? (package-name pkg1) (package-name pkg2))) > Again, checking for label equivalence is a bad idea. OK, after reading a bit more about Guile, I understand that `equal?' is what should be used here, right? The intent is to remove duplicated inputs in the code below: #+begin_src scheme (define all-propagated-inputs ((compose (cut delete-duplicates <> equal?) ;<-- Here (cut filter erlang-or-elixir-input? <>) (cut append-map package-transitive-propagated-inputs <>) (cut map cadr <>)) (append inputs native-inputs))) #+end_src > > +(define (elixir-input? X.Y input) > > + "Determines if the given INPUT is an Elixir input." > > + (match input > > + ((label . path) > > + ;; XXX: The second condition may be enough. > > + (and (elixir-name? label) > > + (directory-exists? (path->elixir-lib path X.Y)))))) > Ahem, search-path-as-list. > Also, leaking the version is kinda bad, API-wise. Does this mean that build artifacts should be installed under `$out/lib/elixir/$libname` instead of `$out/lib/elixir/X.Y/$libname`? Cheers --0000000000001f869b060a1a5f4f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
> > +(define-module (guix build-system mix)
> = > + =C2=A0#:use-module (gnu packages base)
> > + =C2=A0#:use-mo= dule (gnu packages elixir)
> > + =C2=A0#:use-module (gnu packages = elixir-xyz)
> > + =C2=A0#:use-module (gnu packages erlang)
>= You probably want to resolve those imports rather than use-modules
>= them.

You mean something like this?
#+begin_src scheme
(defin= e-module (guix build-system mix)
=C2=A0 #:use-module ((gnu packages base= ) #:select (glibc make-glibc-utf8-locales))
=C2=A0 #:use-module ((gnu pa= ckages elixir) #:select (elixir elixir-hex))
=C2=A0 #:use-module ((gnu p= ackages erlang) #:select (rebar3))
#+end_src

I have m= oved `elixir-hex' to elixir.scm to avoid a circular dependency.

=
> > +(define (input=3D? input1 input2)
> > + =C2=A0"= ;Tell whether inputs INPUT1 and INPUT2 are equal."
> > + =C2= =A0(define pkg1 (match input1 ((_ pkg) pkg)))
> > + =C2=A0(define = pkg2 (match input2 ((_ pkg) pkg)))
> > + =C2=A0(string=3D? (packag= e-name pkg1) (package-name pkg2)))
> Again, checking for label equiva= lence is a bad idea.

OK, after reading a bit more about Guile, I und= erstand that `equal?'
is what should be used here, right? The intent= is to remove duplicated
inputs in the code below:

#+begin_src sc= heme
(define all-propagated-inputs
=C2=A0 =C2=A0 ((compose
=C2=A0 = =C2=A0 =C2=A0 (cut delete-duplicates <> equal?) ;<-- Here
=C2= =A0 =C2=A0 =C2=A0 (cut filter erlang-or-elixir-input? <>)
=C2=A0 = =C2=A0 =C2=A0 (cut append-map package-transitive-propagated-inputs <>= )
=C2=A0 =C2=A0 =C2=A0 (cut map cadr <>))
=C2=A0 =C2=A0 =C2=A0(= append inputs native-inputs)))
#+end_src


> > +(define (= elixir-input? X.Y input)
> > + =C2=A0"Determines if the given= INPUT is an Elixir input."
> > + =C2=A0(match input
> = > + =C2=A0 =C2=A0((label . path)
> > + =C2=A0 =C2=A0 ;; XXX: Th= e second condition may be enough.
> > + =C2=A0 =C2=A0 (and (elixir= -name? label)
> > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(directory-e= xists? (path->elixir-lib path X.Y))))))
> Ahem, search-path-as-lis= t.
> Also, leaking the version is kinda bad, API-wise.

Does th= is mean that build artifacts should be installed under
`$out/lib/elixir/= $libname` instead of `$out/lib/elixir/X.Y/$libname`?


Cheers
--0000000000001f869b060a1a5f4f-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Nov 2023 17:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169998445512731 (code B ref 66801); Tue, 14 Nov 2023 17:55:02 +0000 Received: (at 66801) by debbugs.gnu.org; 14 Nov 2023 17:54:15 +0000 Received: from localhost ([127.0.0.1]:34143 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2xc6-0003JH-TH for submit@debbugs.gnu.org; Tue, 14 Nov 2023 12:54:15 -0500 Received: from mail-ed1-x541.google.com ([2a00:1450:4864:20::541]:50508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r2xc5-0003J3-6H for 66801@debbugs.gnu.org; Tue, 14 Nov 2023 12:54:13 -0500 Received: by mail-ed1-x541.google.com with SMTP id 4fb4d7f45d1cf-5435336ab0bso9213302a12.1 for <66801@debbugs.gnu.org>; Tue, 14 Nov 2023 09:53:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699984405; x=1700589205; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=GITUEuvGJS7vJ9BpurNBLvcJSIRM/h+hHyB7xN8moj4=; b=R1aK92qobO/I5QqHU70R/hwdb+5ocCm546Nvuh9E5RxiBcmgjjRJtOa56FC9B6dBP/ wvfvfEA4XPhtu6GjdLDB/nZuTZlIc84JKK2qh7BAI380UbmAbWaBZd5WDP4F+v4OfxJ7 BSOCLCN0n9/pLhRbshjP2GI9PaFtZF1MZmTC0Xn4pqkA8xXJqJEPQVBDAHazkz0/10oQ E1atTAu5b2RpG0Rb53rkFnH9YH8T6KMXjX9x+S3tXpdYxHgmtEEHDAmjT/IxT7ayFegN k9EzhMbe5/ZgVmYfX7ubwwmn2Q+2cvGBa3SMziA0E8D6fCnhHLhRtg6RAqCaz51a43zd ChLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699984405; x=1700589205; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GITUEuvGJS7vJ9BpurNBLvcJSIRM/h+hHyB7xN8moj4=; b=fZFXNOwG0mrzGPwaszDItQ7p91BStU8DmdDCrN8AqLkIyIoc5i3ByywRq8rF/fdYYV JEyZ9kLjA99Qkdk+v48umvwoQXSlZa8fYcnU1oCP8dlWND/AKjTSL/LSBwq1JAYBIbVl MqR7cxME3SQMYTLr+AFImWnUTuaR4bkOmkdVqNgfTJVgGOsukcrKs6EMIQrZ+Af2PoG2 gRdAHD2Gx/xpVSPW8DHJQEM0K7fjkSTbwe9GYS9gGksxF2J2cn7lFZXSiR2m4LS1pVev x6eVFbZjFGQYdM8PKy37YQFM6GTDrMBV57KyBMg3pl9cyo1RFqG9880Lfj7tkGB/J/IK wE3w== X-Gm-Message-State: AOJu0Yw1zLvjg5ZfQ2q/nhe81NoNjKxMU2+6YSsXzYa/t5H9kI3jklRM VlemMk7lrVR0jXBMVqZXMEs= X-Google-Smtp-Source: AGHT+IGlwSH8WwUJCmjqvAPUlw6pOIzTosQg04DokIaEOXJDBeHtWRr28xgrFRE8MzWlV+dsQPIHWQ== X-Received: by 2002:a17:906:34cc:b0:9e0:2319:16f2 with SMTP id h12-20020a17090634cc00b009e0231916f2mr7672000ejb.43.1699984404812; Tue, 14 Nov 2023 09:53:24 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id y10-20020a1709064b0a00b009dd7bc622fbsm5845954eju.113.2023.11.14.09.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Nov 2023 09:53:23 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Tue, 14 Nov 2023 18:53:22 +0100 In-Reply-To: References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Dienstag, dem 14.11.2023 um 11:37 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > > > +(define-module (guix build-system mix) > > > + =C2=A0#:use-module (gnu packages base) > > > + =C2=A0#:use-module (gnu packages elixir) > > > + =C2=A0#:use-module (gnu packages elixir-xyz) > > > + =C2=A0#:use-module (gnu packages erlang) > > You probably want to resolve those imports rather than use-modules > > them. >=20 > You mean something like this? > #+begin_src scheme > (define-module (guix build-system mix) > =C2=A0 #:use-module ((gnu packages base) #:select (glibc make-glibc-utf8- > locales)) > =C2=A0 #:use-module ((gnu packages elixir) #:select (elixir elixir-hex)) > =C2=A0 #:use-module ((gnu packages erlang) #:select (rebar3)) > #+end_src >=20 > I have moved `elixir-hex' to elixir.scm to avoid a circular > dependency. No. Look at all the other build systems. None of them use submodules of (gnu packages), for a good reason. > > > +(define (input=3D? input1 input2) > > > + =C2=A0"Tell whether inputs INPUT1 and INPUT2 are equal." > > > + =C2=A0(define pkg1 (match input1 ((_ pkg) pkg))) > > > + =C2=A0(define pkg2 (match input2 ((_ pkg) pkg))) > > > + =C2=A0(string=3D? (package-name pkg1) (package-name pkg2))) > > Again, checking for label equivalence is a bad idea. >=20 > OK, after reading a bit more about Guile, I understand that `equal?' > is what should be used here, right? The intent is to remove > duplicated inputs in the code below: >=20 > #+begin_src scheme > (define all-propagated-inputs > =C2=A0 =C2=A0 ((compose > =C2=A0 =C2=A0 =C2=A0 (cut delete-duplicates <> equal?) ;<-- Here > =C2=A0 =C2=A0 =C2=A0 (cut filter erlang-or-elixir-input? <>) > =C2=A0 =C2=A0 =C2=A0 (cut append-map package-transitive-propagated-inputs= <>) > =C2=A0 =C2=A0 =C2=A0 (cut map cadr <>)) > =C2=A0 =C2=A0 =C2=A0(append inputs native-inputs))) > #+end_src Yep, that would work. Note that delete-duplicates is O(n^2), though.=20 We have a little bit of code where it's done in (I assume) O(n*log(n)) with vhashes. >=20 > > > +(define (elixir-input? X.Y input) > > > + =C2=A0"Determines if the given INPUT is an Elixir input." > > > + =C2=A0(match input > > > + =C2=A0 =C2=A0((label . path) > > > + =C2=A0 =C2=A0 ;; XXX: The second condition may be enough. > > > + =C2=A0 =C2=A0 (and (elixir-name? label) > > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(directory-exists? (path->elixir-= lib path X.Y)))))) > > Ahem, search-path-as-list. > > Also, leaking the version is kinda bad, API-wise. >=20 > Does this mean that build artifacts should be installed under > `$out/lib/elixir/$libname` instead of `$out/lib/elixir/X.Y/$libname`? Not necessarily, but you want a different way of building $out/lib/elixir/X.Y/ that doesn't leak through the function signature. Btw. I think that you're resolving transitive inputs twice; once on the build system code and once by fattening the outputs. You probably only need either of those, not both. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] Fwd: ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 15:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17000634583727 (code B ref 66801); Wed, 15 Nov 2023 15:51:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 15:50:58 +0000 Received: from localhost ([127.0.0.1]:52949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3IAL-0000y2-Ca for submit@debbugs.gnu.org; Wed, 15 Nov 2023 10:50:57 -0500 Received: from mail-yb1-xb34.google.com ([2607:f8b0:4864:20::b34]:50236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3IAH-0000xm-OK for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 10:50:55 -0500 Received: by mail-yb1-xb34.google.com with SMTP id 3f1490d57ef6-daf2eda7efaso5447201276.0 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 07:50:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700063448; x=1700668248; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=OwyFVX9dClUci6pPwslrVgZSlz1DvnH/falfg/kJoT8=; b=wSY+nfEB3ys2c1REj6IcrCDnjAygSebWO0fifafGgtwUr0uZRjUuKj8rZxAfbZxGcX +uF4fAKfBKzBv4Ky76CBRJkWugmspW5Cfhfk3fWPtkrEgK2/g3gVaVAPIbXldLSICA/W Al6Q9x7ozVGBLaTl4XdSYJ2e59avReTMhdqYDHYJWWSmGFWMeB9dDsbekt2DW230J9DK BLJWS4llu4i0WKUwpTI3MkfFQNYW7AHQwMyrXBCbz84DHKUm0nn6GvAjlb64UPG4p4o8 nPBx2ISz3bzC9sD+Wit9UM467KJoYq8n818TyC8GXDGyKlFQqgVASkdIEXTIxXSrT60P w3fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700063448; x=1700668248; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OwyFVX9dClUci6pPwslrVgZSlz1DvnH/falfg/kJoT8=; b=H3LV9wrNVYpyvbraCGAnj8aNwAea3K6sJQZFgEkynG1BKOTYrK93rjJQaAExXWtfex aPpLUJ3z6YKpeervQaXKaDVUWaim2+Jx5GF+1zH1Otp4foPLU/E/2lQJcyoZaUPhlDCS HjKk5Yya73rwkrV0n+7U3LCGw2b/CtKgRQC5holR50O+nAmmuBzBadXe/VRC3JfkhCyw R19valxJA6xgAWDkOSrRi9FSkERl1XZU1WwebXHClxMIMvbBcrO8509K+Ofl63R4xL+G Q1R1ViPUNOZvi1oAf9Qz2z4NAcRR+f3xAe8bXXUTykzF7/HZjE+nUpSra+VKI8LGtHTv Sn8w== X-Gm-Message-State: AOJu0YwlmGtrlYJ15SqAdz59hWPeYciHqf4yLnSdMgCemtP+1jQrj0RQ TsoOeuItvcKTV3c99E3oMUQ0IWTaTcI4krIQ9zxS4iILOOs5V9YM X-Google-Smtp-Source: AGHT+IE6iHciMOm8hBm/mMapoSRSd0B9dxNpiQlvRkFLM+AqznQb+2xS2JCF805lLNieIMGrbX22Rk7r17MtSv6ikKU= X-Received: by 2002:a25:ac26:0:b0:d9b:f737:2d2f with SMTP id w38-20020a25ac26000000b00d9bf7372d2fmr13269898ybi.45.1700052063005; Wed, 15 Nov 2023 04:41:03 -0800 (PST) MIME-Version: 1.0 References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 15 Nov 2023 13:40:51 +0100 Message-ID: Content-Type: multipart/alternative; boundary="00000000000050c427060a3037f9" X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > No. Look at all the other build systems. None of them use submodules of (gnu > packages), for a good reason. Ok, I see. It would introduce circular dependencies. By "resolve, " you mean something like: ~(resolve-interface '(gnu packages yyy))~. So, in our case it means: #+begin_src scheme (define (default-gli [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.1 DATE_IN_PAST_03_06 Date: is 3 to 6 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:b34 listed in] [list.dnswl.org] 0.0 HTML_MESSAGE BODY: HTML included in message -0.0 T_SCC_BODY_TEXT_LINE No description available. 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.1 (/) --00000000000050c427060a3037f9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > No. Look at all the other build systems. None of them use submodules of (gnu > packages), for a good reason. Ok, I see. It would introduce circular dependencies. By "resolve," you mean something like: ~(resolve-interface '(gnu packages yyy))~. So, in our case it means: #+begin_src scheme (define (default-glibc-utf8-locales) (let* ((base (resolve-interface '(gnu packages base))) (glibc (module-ref base 'glibc)) (make-glibc-utf8-locales (module-ref base 'make-glibc-utf8-locales))) (make-glibc-utf8-locales glibc #:locales (list "en_US")))) (define (default-elixir-hex) (let ((elixir (resolve-interface '(gnu packages elixir)))) (module-ref elixir 'elixir-hex))) (define (default-rebar3) (let ((erlang (resolve-interface '(gnu packages erlang)))) (module-ref erlang 'rebar3))) #+end_src Then: #+begin_src scheme (define* (lower name #:key (elixir (default-elixir)) (elixir-hex (default-elixir-hex)) (glibc-utf8-locales (default-glibc-utf8-locales)) (rebar3 (default-rebar3)) =E2=80=A6 #:allow-other-keys #:rest arguments) =E2=80=A6) #+end_src Is this correct? > Not necessarily, but you want a different way of building $out/lib/elixir/X.Y/ > that doesn't leak through the function signature. Following ~python-build-system.scm~, it means something like: #+begin_src scheme (define (elixir-version elixir) (let* ((version (last (string-split elixir #\-))) (components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor "."))) (define (install-dir inputs outputs) "Return the path of the current output's Elixir library." (let ((out (assoc-ref outputs "out")) (elixir (assoc-ref inputs "elixir"))) (string-append out "/lib/elixir/" (elixir-version elixir)))) #+end_src Is this correct? > Btw. I think that you're resolving transitive inputs twice; once on the build > system code and once by fattening the outputs. You probably only need either > of those, not both. Ah. Propagated inputs are propagated. Who would have thought? So, this is not necessary: #+begin_src scheme (define* (lower =E2=80=A6) =E2=80=A6 (define all-propagated-inputs ((compose (cut delete-duplicates <> equal?) (cut filter erlang-or-elixir-input? <>) (cut append-map package-transitive-propagated-inputs <>) (cut map cadr <>)) (append inputs native-inputs))) (define build-inputs `(=E2=80=A6 ,@all-propagated-inputs ,@inputs ,@native-inputs)) (bag =E2=80=A6 (build-inputs build-inputs) =E2=80=A6)) #+end_src I've just removed ~all-propagated-inputs~ and all packages build just fine. Is this what you meant? > Yep, that would work. Note that delete-duplicates is O(n^2), though. We have > a little bit of code where it's done in (I assume) O(n*log(n)) with vhashes. If ~all-propagated-inputs~ is removed, then the discussion of this comment is closed. --00000000000050c427060a3037f9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
> No.=C2=A0= Look at all the other build systems.=C2=A0 None of them use submodules of = (gnu
> packages), for a good reason.

Ok, I see. It would intro= duce circular dependencies. By "resolve," you
mean something l= ike: ~(resolve-interface '(gnu packages yyy))~. So, in
our case it m= eans:
#+begin_src scheme
(define (default-gl= ibc-utf8-locales)
=C2=A0 (let* ((base (resolve-interface '(gnu packa= ges base)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(glibc (module-ref base &#= 39;glibc))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(make-glibc-utf8-locales (m= odule-ref base 'make-glibc-utf8-locales)))
=C2=A0 =C2=A0 (make-glibc= -utf8-locales glibc #:locales (list "en_US"))))

(define (d= efault-elixir-hex)
=C2=A0 (let ((elixir (resolve-interface '(gnu pac= kages elixir))))
=C2=A0 =C2=A0 (module-ref elixir 'elixir-hex)))
=
(define (default-rebar3)
=C2=A0 (let ((erlang (resolve-interface = 9;(gnu packages erlang))))
=C2=A0 =C2=A0 (module-ref erlang 'rebar3)= ))

#+end_src

Then:
#+begin_src scheme
(define* (lower name
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 #:key
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 (elixir (default-elixir))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 (elixir-hex (default-elixir-hex))
=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (glibc-utf8-locales (default-glibc-utf8= -locales))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (reba= r3 (default-rebar3))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =E2=80=A6
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= #:allow-other-keys #:rest arguments)
=C2=A0 =E2=80=A6)

#+end_= src

Is this correct?


> Not necessarily, but you want a= different way of building $out/lib/elixir/X.Y/
> that doesn't le= ak through the function signature.

Following ~python-build-system.sc= m~, it means something like:
#+begin_src scheme=
(define (elixir-version elixir)
=C2=A0 (let* ((version =C2=A0 =C2=A0= (last (string-split elixir #\-)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(co= mponents =C2=A0(string-split version #\.))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(major+minor (take components 2)))
=C2=A0 =C2=A0 (string-join majo= r+minor ".")))

(define (install-dir inputs outputs)
=C2= =A0 "Return the path of the current output's Elixir library."=
=C2=A0 (let ((out (assoc-ref outputs "out"))
=C2=A0 =C2=A0= =C2=A0 =C2=A0 (elixir (assoc-ref inputs "elixir")))
=C2=A0 = =C2=A0 (string-append out "/lib/elixir/" (elixir-version elixir))= ))

#+end_src

Is this correct?


> Btw. I think= that you're resolving transitive inputs twice; once on the build
&g= t; system code and once by fattening the outputs.=C2=A0 You probably only n= eed either
> of those, not both.

Ah. Propagated inputs are pro= pagated. Who would have thought? So, this is not necessary:
#+begin_src = scheme
(define* (lower =E2=80=A6)
=C2=A0 =E2= =80=A6
=C2=A0 (define all-propagated-inputs
=C2=A0 =C2=A0 ((compose=C2=A0 =C2=A0 =C2=A0 (cut delete-duplicates <> equal?)
=C2=A0 = =C2=A0 =C2=A0 (cut filter erlang-or-elixir-input? <>)
=C2=A0 =C2= =A0 =C2=A0 (cut append-map package-transitive-propagated-inputs <>)=C2=A0 =C2=A0 =C2=A0 (cut map cadr <>))
=C2=A0 =C2=A0 =C2=A0(app= end inputs native-inputs)))

=C2=A0 (define build-inputs
=C2=A0 = =C2=A0 `(=E2=80=A6
=C2=A0 =C2=A0 =C2=A0 ,@all-propagated-inputs
=C2= =A0 =C2=A0 =C2=A0 ,@inputs
=C2=A0 =C2=A0 =C2=A0 ,@native-inputs))
=C2=A0 (bag =E2=80=A6
=C2=A0 =C2=A0 =C2=A0 =C2=A0(build-inputs build-in= puts)
=C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A6))

#+end_src
I= 9;ve just removed ~all-propagated-inputs~ and all packages build just fine.=

Is this what you meant?


> Yep, that would work.=C2=A0= Note that delete-duplicates is O(n^2), though.=C2=A0 We have
> a lit= tle bit of code where it's done in (I assume) O(n*log(n)) with vhashes.=

If ~all-propagated-inputs~ is removed, then the discussion of this = comment is
closed.

--00000000000050c427060a3037f9-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 16:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17000651206989 (code B ref 66801); Wed, 15 Nov 2023 16:19:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 16:18:40 +0000 Received: from localhost ([127.0.0.1]:53088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Ib9-0001of-Mp for submit@debbugs.gnu.org; Wed, 15 Nov 2023 11:18:40 -0500 Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]:42347) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Ib6-0001oP-U1 for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 11:18:37 -0500 Received: by mail-ua1-x930.google.com with SMTP id a1e0cc1a2514c-7baea76391dso600971241.1 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 08:18:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700065112; x=1700669912; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Lt4sH3Dq+7XE0YNkJx3cPMQBjqWa08gkZR74382CzTk=; b=cGldhspuDbzNJ6LrImXkdbJOZ9Gd+Zed15UAMyuLjZcJ4szgJWzARmm2Jr6zEhu54a pWM0ymD1Xfi96yvqI9sL/qs+pA6ZU6O4WvJwTt8xpty8bISFwC2HO0/dNkfw2xM7ll6w eLQIaS7yDsul+xRLBtMAuCiPU5ZVSHodJbfLll0V/1ygbb83MBlLFk07TWw2lk0wkLEw LA/w+aKbguDhjBX/7ryuphrKF76ksGL47rS1JzK+jIOD68d3nKSKWPR31mkOhGS/pwNU cOG+3PGk2K3MaDRxtbJdjtYrq3RreLem91wWJ8rhWXeUSClu/Q3QRPT3hpd5lOKl4sLh m0iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700065112; x=1700669912; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Lt4sH3Dq+7XE0YNkJx3cPMQBjqWa08gkZR74382CzTk=; b=hX9sDa5aaRhyGuT8yjiAeiFDb10jpO40MR9I7vCWITrFEwl7aCViOHfNnwdL90/9k9 rxx7F4HvxrLIIuH7gOdIXbhL+zfc1rUStqU0toDgAQbqmVDGdXXjHj1RVVDsAc60qmSh 78jzghu1f6AMV2RbhP9DH9myWp5IyDRhyr9ypi19JSHFZuGXCHEo9EKykRCsYzTFz5CP FSwTqJH49jCKJHJakivtlIeapflCUA9oWrZLifB5l1Z31wZ8zLT1LM4/MNB1ozPhFGvV nfd0SBmR5OlpcYo8u/083skEt9XfSod2P9V1idoH+h0HsBwkXERY9Uyq0dMbRsKc/en4 rwpw== X-Gm-Message-State: AOJu0YyOXxpz6Av8CTqVQCtu0xsQ3AiJLqVWMKnsRbe6lDcm+X3TKgv7 zUsql8rP3++WhCh6Mn2FE0c3xaGpGAeUomuc4sfNlNb4SGkd9AK2YdM= X-Google-Smtp-Source: AGHT+IFqibUujvga9R3hvyhIjnOSKk/RXQ1edKNfuSojZDEsozsC5CRa68T0c2FGCtapMk6jUKz3iSNSDnUw+OxfTng= X-Received: by 2002:a0d:d7d1:0:b0:5a1:d216:8d3 with SMTP id z200-20020a0dd7d1000000b005a1d21608d3mr3931095ywd.5.1700042266774; Wed, 15 Nov 2023 01:57:46 -0800 (PST) MIME-Version: 1.0 References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 15 Nov 2023 10:57:35 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000006a1f75060a2defc1" X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > No. Look at all the other build systems. None of them use submodules of (gnu > packages), for a good reason. Ok, I see. It would introduce circular dependencies. By "resolve, " you mean something like: ~(resolve-interface '(gnu packages yyy))~. So, in our case it means: #+begin_src scheme (define (default-gli [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:930 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record 0.0 HTML_MESSAGE BODY: HTML included in message -0.0 T_SCC_BODY_TEXT_LINE No description available. 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.1 (/) --0000000000006a1f75060a2defc1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > No. Look at all the other build systems. None of them use submodules of (gnu > packages), for a good reason. Ok, I see. It would introduce circular dependencies. By "resolve," you mean something like: ~(resolve-interface '(gnu packages yyy))~. So, in our case it means: #+begin_src scheme (define (default-glibc-utf8-locales) (let* ((base (resolve-interface '(gnu packages base))) (glibc (module-ref base 'glibc)) (make-glibc-utf8-locales (module-ref base 'make-glibc-utf8-locales))) (make-glibc-utf8-locales glibc #:locales (list "en_US")))) (define (default-elixir-hex) (let ((elixir (resolve-interface '(gnu packages elixir)))) (module-ref elixir 'elixir-hex))) (define (default-rebar3) (let ((erlang (resolve-interface '(gnu packages erlang)))) (module-ref erlang 'rebar3))) #+end_src Then: #+begin_src scheme (define* (lower name #:key (elixir (default-elixir)) (elixir-hex (default-elixir-hex)) (glibc-utf8-locales (default-glibc-utf8-locales)) (rebar3 (default-rebar3)) =E2=80=A6 #:allow-other-keys #:rest arguments) =E2=80=A6) #+end_src Is this correct? > Not necessarily, but you want a different way of building $out/lib/elixir/X.Y/ > that doesn't leak through the function signature. Following ~python-build-system.scm~, it means something like: #+begin_src scheme (define (elixir-version elixir) (let* ((version (last (string-split elixir #\-))) (components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor "."))) (define (install-dir inputs outputs) "Return the path of the current output's Elixir library." (let ((out (assoc-ref outputs "out")) (elixir (assoc-ref inputs "elixir"))) (string-append out "/lib/elixir/" (elixir-version elixir) "/site-packages"))) #+end_src Is this correct? > Btw. I think that you're resolving transitive inputs twice; once on the build > system code and once by fattening the outputs. You probably only need either > of those, not both. Ah. Propagated inputs are propagated. Who would have thought? So, this is not necessary: #+begin_src scheme (define* (lower =E2=80=A6) =E2=80=A6 (define all-propagated-inputs ((compose (cut delete-duplicates <> equal?) (cut filter erlang-or-elixir-input? <>) (cut append-map package-transitive-propagated-inputs <>) (cut map cadr <>)) (append inputs native-inputs))) (define build-inputs `(=E2=80=A6 ,@all-propagated-inputs ,@inputs ,@native-inputs)) (bag =E2=80=A6 (build-inputs build-inputs) =E2=80=A6)) #+end_src I've just removed ~all-propagated-inputs~ and all packages build just fine. Is this what you meant? > Yep, that would work. Note that delete-duplicates is O(n^2), though. We have > a little bit of code where it's done in (I assume) O(n*log(n)) with vhashes. If ~all-propagated-inputs~ is removed, then the discussion of this comment is closed. --0000000000006a1f75060a2defc1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
> No.=C2=A0 Look at all the other build systems.=C2=A0 = None of them use submodules of (gnu
> packages), for a good reason.
Ok, I see. It would introduce circular dependencies. By "resolve= ," you
mean something like: ~(resolve-interface '(gnu packages = yyy))~. So, in
our case it means:
#+begin_src scheme
(define (default-glibc-utf8-locales)
=C2=A0 (let* ((base (re= solve-interface '(gnu packages base)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(glibc (module-ref base 'glibc))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(make-glibc-utf8-locales (module-ref base 'make-glibc-utf8-locale= s)))
=C2=A0 =C2=A0 (make-glibc-utf8-locales glibc #:locales (list "= en_US"))))

(define (default-elixir-hex)
=C2=A0 (let ((elixir= (resolve-interface '(gnu packages elixir))))
=C2=A0 =C2=A0 (module-= ref elixir 'elixir-hex)))

(define (default-rebar3)
=C2=A0 (le= t ((erlang (resolve-interface '(gnu packages erlang))))
=C2=A0 =C2= =A0 (module-ref erlang 'rebar3)))

#+end_src

Then:
#= +begin_src scheme
(define* (lower name
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #:key
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir (default-elixir))
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir-hex (default-e= lixir-hex))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (gli= bc-utf8-locales (default-glibc-utf8-locales))
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (rebar3 (default-rebar3))
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=80=A6
=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #:allow-other-keys #:rest arguments)=C2=A0 =E2=80=A6)

#+end_src

Is this correct?


&= gt; Not necessarily, but you want a different way of building $out/lib/elix= ir/X.Y/
> that doesn't leak through the function signature.
Following ~python-build-system.scm~, it means something like:
#+begin_= src scheme
(define (elixir-version elixir)
= =C2=A0 (let* ((version =C2=A0 =C2=A0 (last (string-split elixir #\-)))
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(components =C2=A0(string-split version #= \.))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(major+minor (take components 2))= )
=C2=A0 =C2=A0 (string-join major+minor ".")))

(define= (install-dir inputs outputs)
=C2=A0 "Return the path of the curren= t output's Elixir library."
=C2=A0 (let ((out (assoc-ref output= s "out"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir (assoc-ref input= s "elixir")))
=C2=A0 =C2=A0 (string-append out "/lib/elix= ir/" (elixir-version elixir) "/site-packages")))

#= +end_src

Is this correct?


> Btw. I think that you'= re resolving transitive inputs twice; once on the build
> system code= and once by fattening the outputs.=C2=A0 You probably only need either
= > of those, not both.

Ah. Propagated inputs are propagated. Who w= ould have thought? So, this is not necessary:
#+begin_src scheme
(define* (lower =E2=80=A6)
=C2=A0 =E2=80=A6
=C2= =A0 (define all-propagated-inputs
=C2=A0 =C2=A0 ((compose
=C2=A0 =C2= =A0 =C2=A0 (cut delete-duplicates <> equal?)
=C2=A0 =C2=A0 =C2=A0 = (cut filter erlang-or-elixir-input? <>)
=C2=A0 =C2=A0 =C2=A0 (cut = append-map package-transitive-propagated-inputs <>)
=C2=A0 =C2=A0 = =C2=A0 (cut map cadr <>))
=C2=A0 =C2=A0 =C2=A0(append inputs nativ= e-inputs)))

=C2=A0 (define build-inputs
=C2=A0 =C2=A0 `(=E2=80=A6=
=C2=A0 =C2=A0 =C2=A0 ,@all-propagated-inputs
=C2=A0 =C2=A0 =C2=A0 ,@= inputs
=C2=A0 =C2=A0 =C2=A0 ,@native-inputs))

=C2=A0 (bag =E2=80= =A6
=C2=A0 =C2=A0 =C2=A0 =C2=A0(build-inputs build-inputs)
=C2=A0 =C2= =A0 =C2=A0 =C2=A0=E2=80=A6))

#+end_src
I've just removed ~= all-propagated-inputs~ and all packages build just fine.

Is this wha= t you meant?


> Yep, that would work.=C2=A0 Note that delete-d= uplicates is O(n^2), though.=C2=A0 We have
> a little bit of code whe= re it's done in (I assume) O(n*log(n)) with vhashes.

If ~all-pro= pagated-inputs~ is removed, then the discussion of this comment is
close= d.

--0000000000006a1f75060a2defc1-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 16:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17000660319140 (code B ref 66801); Wed, 15 Nov 2023 16:34:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 16:33:51 +0000 Received: from localhost ([127.0.0.1]:53180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Ipq-0002NL-OG for submit@debbugs.gnu.org; Wed, 15 Nov 2023 11:33:51 -0500 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]:51366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Ipo-0002N5-Nl for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 11:33:49 -0500 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-41f155c862bso43758211cf.2 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 08:33:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700066024; x=1700670824; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ZkPyCf9fUTIsU70v3c/wtUSThRqeqMe5Q4TLMEO2xKA=; b=FsA6/WEuC7ppuNCwyNYIu93J+i5VJWUVgfPkPLp+2+EJq0lOmI3cNsD6lXhUMTJqXN ITywaLqmE5+b04AJPaxEMEm78GxXiGWKnN6KZp9bdOPSXj93YKzPlMXXBKAmeDPKl76d sTKL/4h8r7AmeJqlg6VX2pFE+JgDcowtUN0fhd8JGUxHUL1TYcz3Ew08lNOuZ04OxDPJ ZzyzW5UumEFJ5iP/O4sYy4IOcYuwUKksBIgH88e0eaKPCIDZsdseI64GePfpvuk4CwlY OYqCXr/2tl6rH/48H04kBjLRdfMctSCT6Orc0jI6082g4ua3R8pIEl40IZnFis45xq6f JvcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700066024; x=1700670824; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZkPyCf9fUTIsU70v3c/wtUSThRqeqMe5Q4TLMEO2xKA=; b=PmCauhCiov/7sXwDwZIeM19P8XSQSrxT/klo0A992NGFbOgV470vJgluiX1o7CJddk Xbw2XaJabRIAsy3MMihD5bdDj6WSt0WpGXVirbG0EZkB1ntgZl37EuotrhqHinrgdnzM dGRbs++DSRIyJtvWHSXC6fCIYw3o2wzGqd5byGjSNPM+UVWZ1BI42w9YGuElFRL1L2k/ dRw+CULqtd942zNu1xah9+pGBKjE8tCjuBwo07bBENmEa5zDn4hk2SLrQjMdxzl+h0Ws EGm2oGEUXyBaUfTbX3Et1JVL8TDX7wU6399m36AyWXDqhpoUfpFkZyYV12gPaNHZCRxq iq5Q== X-Gm-Message-State: AOJu0YymKo0hEgq7bawrTixIq2vaeAmYjnTJAtbdM8UfF+EdmPiXMwY9 hvyMEXzjImtEXLmbU/bcDueZHYLzUQPcYfloDLanegHuDDL4aZULn1E= X-Google-Smtp-Source: AGHT+IGP8Rh6a9DBfah+4rIWDPYDw/75x6G/Dz6G95L7LxUEogOXXNC+zuvsd4QWGQpBBulr16VOZ7gFoV42DIu+JTY= X-Received: by 2002:a81:9103:0:b0:583:307d:41bc with SMTP id i3-20020a819103000000b00583307d41bcmr13042972ywg.27.1700042385856; Wed, 15 Nov 2023 01:59:45 -0800 (PST) MIME-Version: 1.0 References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 15 Nov 2023 10:59:35 +0100 Message-ID: Content-Type: multipart/alternative; boundary="000000000000832e49060a2df6e1" X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Correction: (string-append out "/lib/elixir/" (elixir-version elixir) "/site-packages") -> (string-append out "/lib/elixir/" (elixir-version elixir)) Correction: (string-append out "/lib/elixir/" (elixir-version elixir) "/site-packages") -> (string-append out "/lib/elixir/" (elixir-version elixir)) Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record 0.0 HTML_MESSAGE BODY: HTML included in message -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:82d listed in] [list.dnswl.org] -0.0 T_SCC_BODY_TEXT_LINE No description available. 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.1 (/) --000000000000832e49060a2df6e1 Content-Type: text/plain; charset="UTF-8" Correction: (string-append out "/lib/elixir/" (elixir-version elixir) "/site-packages") -> (string-append out "/lib/elixir/" (elixir-version elixir)) --000000000000832e49060a2df6e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Correction:=C2=A0(st= ring-append out "/lib/elixir/" (elixir-version elixir) "/sit= e-packages") ->=C2=A0(= string-append out "/lib/elixir/" (elixir-version elixir))<= /div> --000000000000832e49060a2df6e1-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 18:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170007338421650 (code B ref 66801); Wed, 15 Nov 2023 18:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 18:36:24 +0000 Received: from localhost ([127.0.0.1]:53781 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3KkS-0005d8-E2 for submit@debbugs.gnu.org; Wed, 15 Nov 2023 13:36:24 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:47330) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3KkP-0005ct-3l for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 13:36:22 -0500 Received: by mail-wm1-x344.google.com with SMTP id 5b1f17b1804b1-407c3adef8eso61070055e9.2 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 10:36:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700073376; x=1700678176; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=dMylZFY5B7hGDZLRzOaMtkBJxom9qeLm/RFMCJ7YlMw=; b=EF+z5bn8O9C5dh5EewqkppryxIdg43Kst4ohlUDj7SwuPpcT0MmfO0IYi45/J+DsKw ORn7RUqwvo0I2WtAlGl7CzFhL2/wb0LUc3CYNG+wUAaAEnonHG/xnvdhp7hp0YLmDBsr FNJX6D4Fct85kzKMCMD2cHJ8N+qOUb2jKwZOjD9JYHw1mxVlr8Yz8ZB694Utg5pqONKh Qq04yhIo4dK5+uRkNY0HFBitAh1187OIua5BFpnCxl/y391/rh7PwmBtf/fTIzVluEWi gyMy4fIZDknHsWdamWguTssutLLHNwbRW7g5yakPPOu7XvdoScJk0OHZlWVQv1GykJp4 rS6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700073376; x=1700678176; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=dMylZFY5B7hGDZLRzOaMtkBJxom9qeLm/RFMCJ7YlMw=; b=oAN22wDXgHC+A6ulmB2bx59mZWDlWUyxfL/Wm09sIphxMsxTr0TwucTwPuBzvVTI4D wSp/pCN1hbCtlAWOdosrRdU9ktX0G6Xm7yp9qN9NWWNXcgKobEWLyhSvzRz68lCs8Uef AQG3wy7ZEp+NLoQyi5+1+rS9hyw6p3LTXTHszINVSTGxb8eIrakouOP0ZgHiZbFnppHn oa45yCFzponGKVJcM+6cvol/BbMWEO876N4Kl96EetQxn0S2elT6lxMVzJBhy+0pBLg0 Bpv942A70RoeCsHNzbPx/iHusvRlw9byt7WlccU/31XnAQ8xGKPkHZwpT8zIS2cvshe6 iAfA== X-Gm-Message-State: AOJu0Yx6ef1C/cwv5QVF0Fvd3HJ7ZP62wzaR70aZcgR+jh4MZJ/pwX69 SR+6/Z72EI10JgPQqaYjW9dnRS7Two6+Ng== X-Google-Smtp-Source: AGHT+IH3AqKyu/yBqGngoxnjrpQopoxfWSk/y23+dbvryELZZFb7rZY4bd9NGFaZBjq/uSLRSqavjg== X-Received: by 2002:a05:600c:4e0d:b0:409:101e:234d with SMTP id b13-20020a05600c4e0d00b00409101e234dmr11412288wmq.12.1700073375594; Wed, 15 Nov 2023 10:36:15 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id q2-20020a056000136200b003313a1e0ba1sm11178423wrz.89.2023.11.15.10.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 10:36:13 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Wed, 15 Nov 2023 19:36:12 +0100 In-Reply-To: References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Mittwoch, dem 15.11.2023 um 10:57 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > > No.=C2=A0 Look at all the other build systems.=C2=A0 None of them use > > submodules of (gnu > > packages), for a good reason. >=20 > Ok, I see. It would introduce circular dependencies. By "resolve," > you > mean something like: ~(resolve-interface '(gnu packages yyy))~. So, > in > our case it means: > #+begin_src scheme > (define (default-glibc-utf8-locales) > =C2=A0 (let* ((base (resolve-interface '(gnu packages base))) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(glibc (module-ref base 'glibc)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(make-glibc-utf8-locales (module-ref ba= se 'make-glibc-utf8- > locales))) > =C2=A0 =C2=A0 (make-glibc-utf8-locales glibc #:locales (list "en_US")))) >=20 > (define (default-elixir-hex) > =C2=A0 (let ((elixir (resolve-interface '(gnu packages elixir)))) > =C2=A0 =C2=A0 (module-ref elixir 'elixir-hex))) >=20 > (define (default-rebar3) > =C2=A0 (let ((erlang (resolve-interface '(gnu packages erlang)))) > =C2=A0 =C2=A0 (module-ref erlang 'rebar3))) > #+end_src >=20 > Then: > #+begin_src scheme > (define* (lower name > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #:key > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir (default-= elixir)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir-hex (defa= ult-elixir-hex)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (glibc-utf8-local= es (default-glibc-utf8-locales)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (rebar3 (default-= rebar3)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =E2=80=A6 > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 #:allow-other-key= s #:rest arguments) > =C2=A0 =E2=80=A6) > #+end_src >=20 > Is this correct? You shouldn't need to provide glibc-utf8-locales this way (there's already a variable for it IIRC), but yeah. > > Not necessarily, but you want a different way of building > > $out/lib/elixir/X.Y/ > > that doesn't leak through the function signature. >=20 > Following ~python-build-system.scm~, it means something like: > #+begin_src scheme > (define (elixir-version elixir) > =C2=A0 (let* ((version =C2=A0 =C2=A0 (last (string-split elixir #\-))) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(components =C2=A0(string-split version= #\.)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(major+minor (take components 2))) > =C2=A0 =C2=A0 (string-join major+minor "."))) >=20 > (define (install-dir inputs outputs) > =C2=A0 "Return the path of the current output's Elixir library." > =C2=A0 (let ((out (assoc-ref outputs "out")) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 (elixir (assoc-ref inputs "elixir"))) > =C2=A0 =C2=A0 (string-append out "/lib/elixir/" (elixir-version elixir) "= /site- > packages"))) > #+end_src >=20 > Is this correct? LGTM. > > Btw. I think that you're resolving transitive inputs twice; once on > > the build system code and once by fattening the outputs.=C2=A0 You > > probably only need either of those, not both. >=20 > Ah. Propagated inputs are propagated. Who would have thought? So, > this is not necessary: > #+begin_src scheme > (define* (lower =E2=80=A6) > =C2=A0 =E2=80=A6 > =C2=A0 (define all-propagated-inputs > =C2=A0 =C2=A0 ((compose > =C2=A0 =C2=A0 =C2=A0 (cut delete-duplicates <> equal?) > =C2=A0 =C2=A0 =C2=A0 (cut filter erlang-or-elixir-input? <>) > =C2=A0 =C2=A0 =C2=A0 (cut append-map package-transitive-propagated-inputs= <>) > =C2=A0 =C2=A0 =C2=A0 (cut map cadr <>)) > =C2=A0 =C2=A0 =C2=A0(append inputs native-inputs))) >=20 > =C2=A0 (define build-inputs > =C2=A0 =C2=A0 `(=E2=80=A6 > =C2=A0 =C2=A0 =C2=A0 ,@all-propagated-inputs > =C2=A0 =C2=A0 =C2=A0 ,@inputs > =C2=A0 =C2=A0 =C2=A0 ,@native-inputs)) >=20 > =C2=A0 (bag =E2=80=A6 > =C2=A0 =C2=A0 =C2=A0 =C2=A0(build-inputs build-inputs) > =C2=A0 =C2=A0 =C2=A0 =C2=A0=E2=80=A6)) > #+end_src > I've just removed ~all-propagated-inputs~ and all packages build just > fine. >=20 > Is this what you meant? Yep. I assume this makes your packages way lighter. Note that propagated inputs have become a (not great) default for interpreted languages such as Python or Emacs Lisp. > > Yep, that would work.=C2=A0 Note that delete-duplicates is O(n^2), > > though.=C2=A0 We have a little bit of code where it's done in (I assume= ) > > O(n*log(n)) with vhashes. >=20 > If ~all-propagated-inputs~ is removed, then the discussion of this > comment is closed. Sure. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] ['PATCH v2' 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 22:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Liliana Marie Prikler Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17000885625064 (code B ref 66801); Wed, 15 Nov 2023 22:50:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 22:49:22 +0000 Received: from localhost ([127.0.0.1]:54108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3OhF-0001Jb-SG for submit@debbugs.gnu.org; Wed, 15 Nov 2023 17:49:22 -0500 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]:59553) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3OhE-0001JG-8S for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 17:49:21 -0500 Received: by mail-yb1-xb32.google.com with SMTP id 3f1490d57ef6-daef74513e1so127420276.2 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 14:49:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700088555; x=1700693355; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5lJTBIHJkn4sHidJR3DYNxWOX/6UZr7aCyiqYdg5OYk=; b=0XwBXlGESJY2ofnN1qK6k0wOuufgjBMdXt5Lke1RmOlOlirSFhOUrE3fC2nJT2S9mh GnPasQqmPdSdgqvvoV63kPVwSUQRp4MwS6UJY2x6feEEo/MxlJwtrm6m/p1NF9k8gawQ slAwOjarIVeIQH4cF5Bgv84jN8f3PavKqAIYZZYxF+/g6KeEoDYjLospXveSVDFhz5XD BSBQdYnnWNE1Lgl88L8vOkEJi9ZFitZbSIyXNa1eRDYuxWeMx+dGlbBcl0aTk/8uwAqC Vbpp84B5gmxtGUMi3ZIz4hzYcJspy7BZqPrHBjxW+VEJUaQ3LPj2nv1Dhv2sVQcpNuJp oD3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700088555; x=1700693355; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5lJTBIHJkn4sHidJR3DYNxWOX/6UZr7aCyiqYdg5OYk=; b=aeMIbEMp7kJiTArtmyWm6UJwCOUat1p6Tadulol0ZSzR71s86z9HVQa6KmdXWrvxnn tIoHEOPYxrq1kU6c4dwFXS452C8QIA/SNf0oEpmUogiTDs6TsNMky0DXDNLVV/LLW0SA JN/G8YFVaBROtWW/2Ea5TDwdwx9nEb+nQvEbPI1RAhXGlBwozmJvVfsRqulGCsn+dQN3 7vIagJeCMNxaXSwjof7KL0334yrFtIo5oPFTys/nJF5EzaaTh+BRdipOAyy/poRTWpka 4if/VI7fR/9eJDGpn4Q16HYsSpOaH28PYbmMgEfZHfHGf1mQVg0CMl4PZGft5M5EWuIi RWeg== X-Gm-Message-State: AOJu0Yy9ywQoX1pwU4d4mnnqYKijSdCAoivgimCirJPKnrev/6gdyl6v az0GgV+2FKP+poSzMLL5UflOpqJ4BDmPE+VhCiFGb8TkCpGQfsEklV4= X-Google-Smtp-Source: AGHT+IE36FfHNV5iAR/vRGH+yy/KGs3y7UzfKoqW2EhBcRCgrULZn/1E/7HJ5g3S/C+TxBb+ULcl3Q1iuCrv6PuFxNo= X-Received: by 2002:a25:23d1:0:b0:da0:3792:55a0 with SMTP id j200-20020a2523d1000000b00da0379255a0mr13425366ybj.18.1700088554985; Wed, 15 Nov 2023 14:49:14 -0800 (PST) MIME-Version: 1.0 References: <26ef9c0f4bf2ff942ba2b42e1fadeb6174bbaa6a.1699906775.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 15 Nov 2023 23:49:03 +0100 Message-ID: Content-Type: multipart/mixed; boundary="00000000000068721c060a38b658" X-Spam-Score: -0.0 (/) 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 (-) --00000000000068721c060a38b658 Content-Type: multipart/alternative; boundary="000000000000687218060a38b656" --000000000000687218060a38b656 Content-Type: text/plain; charset="UTF-8" So, the attached file `review.org' contains all the discussions so far on the first patch 01/14. The following email is the patch itself. Thanks. Cheers. --000000000000687218060a38b656 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
So, the attached file `revie= w.org' contains all the discussions so far on the first patch=C2=A0= 01/14.
The following email is the patch itself.
Thanks.
=
Cheers.
--000000000000687218060a38b656-- --00000000000068721c060a38b658 Content-Type: application/octet-stream; name="review.org" Content-Disposition: attachment; filename="review.org" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lp0ct0pg0 KiBET05FIENvbW1lbnQKKiogbGlseXAKPiArCj4gKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxk LXN5c3RlbSBtaXgpCj4gKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYmFzZSkKPiArICAj OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBlbGl4aXIpCj4gKyAgIzp1c2UtbW9kdWxlIChnbnUg cGFja2FnZXMgZWxpeGlyLXh5eikKPiArICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBlcmxh bmcpCllvdSBwcm9iYWJseSB3YW50IHRvIHJlc29sdmUgdGhvc2UgaW1wb3J0cyByYXRoZXIgdGhh biB1c2UtbW9kdWxlcwp0aGVtLgpZb3UgY2FuIHNpbXBsaWZ5IHRoZXNlIGZpdmUgdmFyaWFibGVz IGludG8gb25lIHRvIHRocmVlICh0aHJlZSBiZWluZwpxdWl0ZSBtYW55IGFscmVhZHkgZGVwZW5k aW5nIG9uIHdoZXRoZXIgeW91J2xsIGFjdHVhbGx5IHVzZSB0aGUgc21hbGxlcgpvbmVzKS4KCgoq KiBwaGYKWW91IG1lYW4gc29tZXRoaW5nIGxpa2UgdGhpcz8KIytiZWdpbl9zcmMgc2NoZW1lCihk ZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBtaXgpCiAgIzp1c2UtbW9kdWxlICgoZ251 IHBhY2thZ2VzIGJhc2UpICM6c2VsZWN0IChnbGliYyBtYWtlLWdsaWJjLXV0ZjgtbG9jYWxlcykp CiAgIzp1c2UtbW9kdWxlICgoZ251IHBhY2thZ2VzIGVsaXhpcikgIzpzZWxlY3QgKGVsaXhpciBl bGl4aXItaGV4KSkKICAjOnVzZS1tb2R1bGUgKChnbnUgcGFja2FnZXMgZXJsYW5nKSAjOnNlbGVj dCAocmViYXIzKSkKIytlbmRfc3JjCgpJIGhhdmUgbW92ZWQgYGVsaXhpci1oZXgnIHRvIGVsaXhp ci5zY20gdG8gYXZvaWQgYSBjaXJjdWxhciBkZXBlbmRlbmN5LgoKCioqIGxpbHlwCk5vLiAgTG9v ayBhdCBhbGwgdGhlIG90aGVyIGJ1aWxkIHN5c3RlbXMuICBOb25lIG9mIHRoZW0gdXNlIHN1Ym1v ZHVsZXMgb2YgKGdudQpwYWNrYWdlcyksIGZvciBhIGdvb2QgcmVhc29uLgoKCioqIHBoZgpPaywg SSBzZWUuIEl0IHdvdWxkIGludHJvZHVjZSBjaXJjdWxhciBkZXBlbmRlbmNpZXMuIEJ5ICJyZXNv bHZlIiB5b3UgbWVhbgpzb21ldGhpbmcgbGlrZTogfihyZXNvbHZlLWludGVyZmFjZSAnKGdudSBw YWNrYWdlcyB5eXkpKX4uIFNvLCBpbiBvdXIgY2FzZSBpdAptZWFuczoKIytiZWdpbl9zcmMgc2No ZW1lCihkZWZpbmUgKGRlZmF1bHQtZ2xpYmMtdXRmOC1sb2NhbGVzKQogIChsZXQqICgoYmFzZSAo cmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgYmFzZSkpKQogICAgICAgICAoZ2xpYmMg KG1vZHVsZS1yZWYgYmFzZSAnZ2xpYmMpKQogICAgICAgICAobWFrZS1nbGliYy11dGY4LWxvY2Fs ZXMgKG1vZHVsZS1yZWYgYmFzZSAnbWFrZS1nbGliYy11dGY4LWxvY2FsZXMpKSkKICAgIChtYWtl LWdsaWJjLXV0ZjgtbG9jYWxlcyBnbGliYyAjOmxvY2FsZXMgKGxpc3QgImVuX1VTIikpKSkKCihk ZWZpbmUgKGRlZmF1bHQtZWxpeGlyLWhleCkKICAobGV0ICgoZWxpeGlyIChyZXNvbHZlLWludGVy ZmFjZSAnKGdudSBwYWNrYWdlcyBlbGl4aXIpKSkpCiAgICAobW9kdWxlLXJlZiBlbGl4aXIgJ2Vs aXhpci1oZXgpKSkKCihkZWZpbmUgKGRlZmF1bHQtcmViYXIzKQogIChsZXQgKChlcmxhbmcgKHJl c29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGVybGFuZykpKSkKICAgIChtb2R1bGUtcmVm IGVybGFuZyAncmViYXIzKSkpCiMrZW5kX3NyYwoKVGhlbjoKIytiZWdpbl9zcmMgc2NoZW1lCihk ZWZpbmUqIChsb3dlciBuYW1lCiAgICAgICAgICAgICAgICAjOmtleQogICAgICAgICAgICAgICAg KGVsaXhpciAoZGVmYXVsdC1lbGl4aXIpKQogICAgICAgICAgICAgICAgKGVsaXhpci1oZXggKGRl ZmF1bHQtZWxpeGlyLWhleCkpCiAgICAgICAgICAgICAgICAoZ2xpYmMtdXRmOC1sb2NhbGVzIChk ZWZhdWx0LWdsaWJjLXV0ZjgtbG9jYWxlcykpCiAgICAgICAgICAgICAgICAocmViYXIzIChkZWZh dWx0LXJlYmFyMykpCiAgICAgICAgICAgICAgICDigKYKICAgICAgICAgICAgICAgICM6YWxsb3ct b3RoZXIta2V5cyAjOnJlc3QgYXJndW1lbnRzKQogIOKApikKIytlbmRfc3JjCgpJcyB0aGlzIGNv cnJlY3Q/CgoKKiogbGlseXAKWW91IHNob3VsZG4ndCBuZWVkIHRvIHByb3ZpZGUgZ2xpYmMtdXRm OC1sb2NhbGVzIHRoaXMgd2F5ICh0aGVyZSdzIGFscmVhZHkgYQp2YXJpYWJsZSBmb3IgaXQgSUlS QyksIGJ1dCB5ZWFoLgoKCioqIHBoZgpZZXMhIEl0IGlzIGEgImhpZGVuIHBhY2thZ2UiIGluIH4o Z251IHBhY2thZ2VzIGJhc2Upfi4gSSd2ZSByZXBsYWNlZCBpdC4KCgoqIERPTkUgQ29tbWVudAo6 UFJPUEVSVElFUzoKOklEOiAgICAgICA0OTgxM2NlMy0zYzdjLTQ3ZTUtYmI5NS1jYTg0OWFhYWM1 NTgKOkVORDoKCioqIGxpbHlwCj4gKyhkZWZpbmUgKGVsaXhpci1uYW1lPyBuYW1lKQo+ICsgICJE ZXRlcm1pbmVzIGlmIE5BTUUgaXMgdGhlIG5hbWUgb3IgdGhlIGxhYmVsIGFzc29jaWF0ZWQgdG8g YW4KPiBFbGl4aXIKPiArcGFja2FnZS4iCj4gKyAgKHN0cmluZy1wcmVmaXg/ICVlbGl4aXItcHJl Zml4IG5hbWUpKQpVc2VsZXNzIHVzZSBvZiBtYWdpYyBjb25zdGFudC4KPiArCj4gKyhkZWZpbmUg KGVsaXhpci1pbnB1dD8gWC5ZIGlucHV0KQo+ICsgICJEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBJ TlBVVCBpcyBhbiBFbGl4aXIgaW5wdXQuIgo+ICsgIChtYXRjaCBpbnB1dAo+ICsgICAgKChsYWJl bCAuIHBhdGgpCj4gKyAgICAgOzsgWFhYOiBUaGUgc2Vjb25kIGNvbmRpdGlvbiBtYXkgYmUgZW5v dWdoLgo+ICsgICAgIChhbmQgKGVsaXhpci1uYW1lPyBsYWJlbCkKPiArICAgICAgICAgIChkaXJl Y3RvcnktZXhpc3RzPyAocGF0aC0+ZWxpeGlyLWxpYiBwYXRoIFguWSkpKSkpKQpBbHNvLCBsZWFr aW5nIHRoZSB2ZXJzaW9uIGlzIGtpbmRhIGJhZCwgQVBJLXdpc2UuCgoKKiogcGhmCkRvZXMgdGhp cyBtZWFuIHRoYXQgYnVpbGQgYXJ0aWZhY3RzIHNob3VsZCBiZSBpbnN0YWxsZWQgdW5kZXIKYCRv dXQvbGliL2VsaXhpci8kbGlibmFtZWAgaW5zdGVhZCBvZiBgJG91dC9saWIvZWxpeGlyL1guWS8k bGlibmFtZWA/CgoKKiogbGlseXAKTm90IG5lY2Vzc2FyaWx5LCBidXQgeW91IHdhbnQgYSBkaWZm ZXJlbnQgd2F5IG9mIGJ1aWxkaW5nICRvdXQvbGliL2VsaXhpci9YLlkvCnRoYXQgZG9lc24ndCBs ZWFrIHRocm91Z2ggdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZS4KCgoqKiBwaGYKRm9sbG93aW5nIH5w eXRob24tYnVpbGQtc3lzdGVtLnNjbX4sIGl0IG1lYW5zIHNvbWV0aGluZyBsaWtlOgojK2JlZ2lu X3NyYyBzY2hlbWUKKGRlZmluZSAoZWxpeGlyLXZlcnNpb24gZWxpeGlyKQogIChsZXQqICgodmVy c2lvbiAgICAgKGxhc3QgKHN0cmluZy1zcGxpdCBlbGl4aXIgI1wtKSkpCiAgICAgICAgIChjb21w b25lbnRzICAoc3RyaW5nLXNwbGl0IHZlcnNpb24gI1wuKSkKICAgICAgICAgKG1ham9yK21pbm9y ICh0YWtlIGNvbXBvbmVudHMgMikpKQogICAgKHN0cmluZy1qb2luIG1ham9yK21pbm9yICIuIikp KQoKKGRlZmluZSAoaW5zdGFsbC1kaXIgaW5wdXRzIG91dHB1dHMpCiAgIlJldHVybiB0aGUgcGF0 aCBvZiB0aGUgY3VycmVudCBvdXRwdXQncyBFbGl4aXIgbGlicmFyeS4iCiAgKGxldCAoKG91dCAo YXNzb2MtcmVmIG91dHB1dHMgIm91dCIpKQogICAgICAgIChlbGl4aXIgKGFzc29jLXJlZiBpbnB1 dHMgImVsaXhpciIpKSkKICAgIChzdHJpbmctYXBwZW5kIG91dCAiL2xpYi9lbGl4aXIvIiAoZWxp eGlyLXZlcnNpb24gZWxpeGlyKSkpKQojK2VuZF9zcmMKCklzIHRoaXMgY29ycmVjdD8KCgoqKiBs aWx5cApMR1RNLgoKCiogRE9ORSBDb21tZW50CioqIGxpbHlwCkJ0dy4gSSB0aGluayB0aGF0IHlv dSdyZSByZXNvbHZpbmcgdHJhbnNpdGl2ZSBpbnB1dHMgdHdpY2U7IG9uY2Ugb24gdGhlIGJ1aWxk CnN5c3RlbSBjb2RlIGFuZCBvbmNlIGJ5IGZhdHRlbmluZyB0aGUgb3V0cHV0cy4gIFlvdSBwcm9i YWJseSBvbmx5IG5lZWQgZWl0aGVyCm9mIHRob3NlLCBub3QgYm90aC4KCgoqKiBwaGYKQWguIFBy b3BhZ2F0ZWQgaW5wdXRzIGFyZSBwcm9wYWdhdGVkLiBXaG8gd291bGQgaGF2ZSB0aG91Z2h0PyBT bywgdGhpcyBpcyBub3QgbmVjZXNzYXJ5OgojK2JlZ2luX3NyYyBzY2hlbWUKKGRlZmluZSogKGxv d2VyIOKApikKICDigKYKICAoZGVmaW5lIGFsbC1wcm9wYWdhdGVkLWlucHV0cwogICAgKChjb21w b3NlCiAgICAgIChjdXQgZGVsZXRlLWR1cGxpY2F0ZXMgPD4gZXF1YWw/KQogICAgICAoY3V0IGZp bHRlciBlcmxhbmctb3ItZWxpeGlyLWlucHV0PyA8PikKICAgICAgKGN1dCBhcHBlbmQtbWFwIHBh Y2thZ2UtdHJhbnNpdGl2ZS1wcm9wYWdhdGVkLWlucHV0cyA8PikKICAgICAgKGN1dCBtYXAgY2Fk ciA8PikpCiAgICAgKGFwcGVuZCBpbnB1dHMgbmF0aXZlLWlucHV0cykpKQoKICAoZGVmaW5lIGJ1 aWxkLWlucHV0cwogICAgYCjigKYKICAgICAgLEBhbGwtcHJvcGFnYXRlZC1pbnB1dHMKICAgICAg LEBpbnB1dHMKICAgICAgLEBuYXRpdmUtaW5wdXRzKSkKCiAgKGJhZyDigKYKICAgICAgIChidWls ZC1pbnB1dHMgYnVpbGQtaW5wdXRzKQogICAgICAg4oCmKSkKIytlbmRfc3JjCkkndmUganVzdCBy ZW1vdmVkIH5hbGwtcHJvcGFnYXRlZC1pbnB1dHN+IGFuZCBhbGwgcGFja2FnZXMgYnVpbGQganVz dCBmaW5lLgoKSXMgdGhpcyB3aGF0IHlvdSBtZWFudD8KCgoqKiBsaWx5cApZZXAuICBJIGFzc3Vt ZSB0aGlzIG1ha2VzIHlvdXIgcGFja2FnZXMgd2F5IGxpZ2h0ZXIuCgpOb3RlIHRoYXQgcHJvcGFn YXRlZCBpbnB1dHMgaGF2ZSBiZWNvbWUgYSAobm90IGdyZWF0KSBkZWZhdWx0IGZvciBpbnRlcnBy ZXRlZApsYW5ndWFnZXMgc3VjaCBhcyBQeXRob24gb3IgRW1hY3MgTGlzcC4KCgoqIERPTkUgQ29t bWVudAoqKiBsaWx5cAo+ICsoZGVmaW5lIChpbnB1dD0/IGlucHV0MSBpbnB1dDIpCj4gKyAgIlRl bGwgd2hldGhlciBpbnB1dHMgSU5QVVQxIGFuZCBJTlBVVDIgYXJlIGVxdWFsLiIKPiArICAoZGVm aW5lIHBrZzEgKG1hdGNoIGlucHV0MSAoKF8gcGtnKSBwa2cpKSkKPiArICAoZGVmaW5lIHBrZzIg KG1hdGNoIGlucHV0MiAoKF8gcGtnKSBwa2cpKSkKPiArICAoc3RyaW5nPT8gKHBhY2thZ2UtbmFt ZSBwa2cxKSAocGFja2FnZS1uYW1lIHBrZzIpKSkKQWdhaW4sIGNoZWNraW5nIGZvciBsYWJlbCBl cXVpdmFsZW5jZSBpcyBhIGJhZCBpZGVhLgoKCioqIHBoZgpPSywgYWZ0ZXIgcmVhZGluZyBhIGJp dCBtb3JlIGFib3V0IEd1aWxlLCBJIHVuZGVyc3RhbmQgdGhhdCBgZXF1YWw/JyAgaXMgd2hhdApz aG91bGQgYmUgdXNlZCBoZXJlLCByaWdodD8gVGhlIGludGVudCBpcyB0byByZW1vdmUgZHVwbGlj YXRlZCBpbnB1dHMgaW4gdGhlCmNvZGUgYmVsb3c6CiMrYmVnaW5fc3JjIHNjaGVtZQooZGVmaW5l IGFsbC1wcm9wYWdhdGVkLWlucHV0cwogICAgKChjb21wb3NlCiAgICAgIChjdXQgZGVsZXRlLWR1 cGxpY2F0ZXMgPD4gZXF1YWw/KSA7PC0tIEhlcmUKICAgICAgKGN1dCBmaWx0ZXIgZXJsYW5nLW9y LWVsaXhpci1pbnB1dD8gPD4pCiAgICAgIChjdXQgYXBwZW5kLW1hcCBwYWNrYWdlLXRyYW5zaXRp dmUtcHJvcGFnYXRlZC1pbnB1dHMgPD4pCiAgICAgIChjdXQgbWFwIGNhZHIgPD4pKQogICAgIChh cHBlbmQgaW5wdXRzIG5hdGl2ZS1pbnB1dHMpKSkKIytlbmRfc3JjCgoKKiogbGlseXAKWWVwLCB0 aGF0IHdvdWxkIHdvcmsuICBOb3RlIHRoYXQgZGVsZXRlLWR1cGxpY2F0ZXMgaXMgTyhuXjIpLCB0 aG91Z2guICBXZSBoYXZlCmEgbGl0dGxlIGJpdCBvZiBjb2RlIHdoZXJlIGl0J3MgZG9uZSBpbiAo SSBhc3N1bWUpIE8obipsb2cobikpIHdpdGggdmhhc2hlcy4KCgoqKiBwaGYKSWYgfmFsbC1wcm9w YWdhdGVkLWlucHV0c34gaXMgcmVtb3ZlZCwgdGhlbiB0aGUgZGlzY3Vzc2lvbiBvZiB0aGlzIGNv bW1lbnQgaXMKY2xvc2VkLgoKCioqIGxpbHlwClN1cmUuCgoKKiBET05FIENvbW1lbnQKKiogbGls eXAKPiArKGRlZmluZSAoZWxpeGlyLW5hbWU/IG5hbWUpCj4gKyAgIkRldGVybWluZXMgaWYgTkFN RSBpcyB0aGUgbmFtZSBvciB0aGUgbGFiZWwgYXNzb2NpYXRlZCB0byBhbgo+IEVsaXhpcgo+ICtw YWNrYWdlLiIKPiArICAoc3RyaW5nLXByZWZpeD8gJWVsaXhpci1wcmVmaXggbmFtZSkpClVzZWxl c3MgdXNlIG9mIG1hZ2ljIGNvbnN0YW50LgoKCioqIHBoZgpJJ3ZlIHJlbW92ZWQgYWxsIG9jY3Vy cmFuY2VzIG9mIH4lZWxpeGlyLXByZWZpeH4gYW5kIH4lZXJsYW5nLXByZWZpeH4uCgoKKiBET05F IENvbW1lbnQKOkxPR0JPT0s6Ci0gU3RhdGUgIkRPTkUiICAgICAgIGZyb20gIlRPRE8iICAgICAg IFsyMDIzLTExLTE1IFdlZCAxNjoyNV0KOkVORDoKKiogbGlseXAKPiArKGRlZmluZSAoZWxpeGly LWlucHV0PyBYLlkgaW5wdXQpCj4gKyAgIkRldGVybWluZXMgaWYgdGhlIGdpdmVuIElOUFVUIGlz IGFuIEVsaXhpciBpbnB1dC4iCj4gKyAgKG1hdGNoIGlucHV0Cj4gKyAgICAoKGxhYmVsIC4gcGF0 aCkKPiArICAgICA7OyBYWFg6IFRoZSBzZWNvbmQgY29uZGl0aW9uIG1heSBiZSBlbm91Z2guCj4g KyAgICAgKGFuZCAoZWxpeGlyLW5hbWU/IGxhYmVsKQo+ICsgICAgICAgICAgKGRpcmVjdG9yeS1l eGlzdHM/IChwYXRoLT5lbGl4aXItbGliIHBhdGggWC5ZKSkpKSkpCkFoZW0sIHNlYXJjaC1wYXRo LWFzLWxpc3QuCgoKKiogcGhmCn5lbGl4aXItaW5wdXQ/fiBoYXMgYmVlbiByZW1vdmVkLgoKCiog RE9ORSBDb21tZW50CioqIGxpbHlwCj4gKyhkZWZpbmUgKGVsaXhpci1pbnB1dD8gWC5ZIGlucHV0 KQo+ICsgICJEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBJTlBVVCBpcyBhbiBFbGl4aXIgaW5wdXQu Igo+ICsgIChtYXRjaCBpbnB1dAo+ICsgICAgKChsYWJlbCAuIHBhdGgpCj4gKyAgICAgOzsgWFhY OiBUaGUgc2Vjb25kIGNvbmRpdGlvbiBtYXkgYmUgZW5vdWdoLgo+ICsgICAgIChhbmQgKGVsaXhp ci1uYW1lPyBsYWJlbCkKPiArICAgICAgICAgIChkaXJlY3RvcnktZXhpc3RzPyAocGF0aC0+ZWxp eGlyLWxpYiBwYXRoIFguWSkpKSkpKQpEdXBsaWNhdGVkIGJvaWxlcnBsYXRlIGZvciBuZWl0aGVy IGZ1biBub3IgcHJvZml0LgoKCioqIHBoZgp+ZWxpeGlyLWlucHV0P34gaGFzIGJlZW4gcmVtb3Zl ZC4KCgoqIERPTkUgQ29tbWVudAoqKiBsaWx5cAo+ICsoZGVmaW5lIChlcmxhbmctb3ItZWxpeGly LWlucHV0PyBpbnB1dCkKPiArICAiVGVsbCB3aGV0aGVyIElOUFVUIGlzIGFuIEVsaXhpciBvciBh biBFcmxhbmcgaW5wdXQuIgo+ICsgIChtYXRjaCBpbnB1dAo+ICsgICAgKChfIHBhY2thZ2UpCj4g KyAgICAgKGVybGFuZy1vci1lbGl4aXItcGtnPyBwYWNrYWdlKSkpKQpTa2lwLgoKCioqIHBoZgp+ ZXJsYW5nLW9yLWVsaXhpci1pbnB1dH4gaGFzIGJlZW4gcmVtb3ZlZC4KCgoqIERPTkUgQ29tbWVu dAoqKiBsaWx5cApJdCBpcyB3aXNlciB0byB3cml0ZSB0aGVzZSBvdXQgYXMgcmVndWxhciBzdHJp bmctYXBwZW5kcy4KCgoqKiBwaGYKUmVwbGFjZWQgfmYtam9pbn4gYnkgfnN0cmluZy1hcHBlbmR+ LgoKCiogRE9ORSBDb21tZW50CioqIGxpbHlwCj4gKyhkZWZpbmUgKHN0cmlwLXByZWZpeCBwcmVm aXggbmFtZSkKPiArICAiUmV0dXJuIE5BTUUgd2l0aG91dCB0aGUgcHJlZml4IFBSRUZJWC4iCj4g KyAgKGlmIChzdHJpbmctcHJlZml4PyBwcmVmaXggbmFtZSkKPiArICAgICAgKHN0cmluZy1kcm9w IG5hbWUgKHN0cmluZy1sZW5ndGggcHJlZml4KSkKPiArICAgICAgbmFtZSkpCkknbSBwcmV0dHkg c3VyZSB3ZSBoYXZlIGEgZnVuY3Rpb24gbG9va2luZyBsaWtlIHRoaXMgc29tZXdoZXJlLCBidXQg SQpjYW4ndCByZWNhbGwgaXRzIG5hbWUgYXRtLgoKCioqIHBoZgotIEkndmUgbWFudWFseSBzZWFy Y2ggZm9yIHNvbWV0aGluZyBzaW1pbGFyIGluIHRoZSBpbnRlcmZhY2VzIG9mIG1vZHVsZXMgfihn dWl4CiAgdXRpbHMpfiBhbmQgfihndWl4IGJ1aWxkIHV0aWxzKX4gd2l0aG91dCBzdWNjZXNzLgot IEkndmUgc2VhcmNoIGZyb20gfnN0cmlwLipwcmVmaXh+IGluIHRoZSB3aG9sZSBjb2RlIGJhc2Ug d2l0aG91dCBzdWNjZXNzLgoKCiogRE9ORSBDb21tZW50CioqIGxpbHlwCj4gKyhkZWZpbmUgKHBh dGgtPmVsaXhpci1saWIgcGF0aCBYLlkpCj4gKyAgIlJldHVybiB0aGUgcGF0aCB0byB0aGUgZGly ZWN0b3J5IHdpdGhpbiBQQVRIIHdoZXJlIGxpYnJhcmllcyBvZgo+IGFuIEVsaXhpcgo+ICtwYWNr YWdlIGFyZSBpbnN0YWxsZWQuIEhlcmUsIFguWSByZXByZXNlbnRzIHRoZSBtYWpvciBhbmQgbWlu b3IKPiB2ZXJzaW9uCj4gK251bWJlcnMgb2YgRWxpeGlyIHVzZWQgZm9yIGNvbXBpbGF0aW9uLiIK PiArICAoZi1qb2luIHBhdGggImxpYiIgImVsaXhpciIgWC5ZKSkKSXMgcGF0aCBpdHNlbGYgZXZl ciB1c2VmdWwgaGVyZSBvciBkb2VzIGl0IHNpbXBseSBwb2ludCB0byB0aGUgc3RvcmU/ClRoaXMg Y2FuIGxpa2VseSBiZSBzaW1wbGlmaWVkIHRvCihkZWZpbmUgKGVsaXhpci1saWIgdmVyc2lvbikK ICAoc3RyaW5nLWFwcGVuZCAiL2xpYi9lbGl4aXIvIiB2ZXJzaW9uKSkKCgoqKiBwaGYKVGhpcyBj b21tZW50IGlzIGFkZHJlc3NlZCBpbiBhbiBvdGhlciBbW2lkOjQ5ODEzY2UzLTNjN2MtNDdlNS1i Yjk1LWNhODQ5YWFhYzU1OF1bY29tbWVudF1dLiBFc3NlbnRpYWxseSwgfmluc3RhbGwtZGlyfgpm dW5jdGlvbiBpcyBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBpbnN0ZWFkLgoKCiogRE9ORSBDb21tZW50 CioqIGxpbHlwCj4gKyhkZWZpbmUgKGVybGFuZy1vci1lbGl4aXItaW5wdXQ/IFguWSBpbnB1dCkK PiArICAiRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gSU5QVVQgaXMgYW4gRXJsYW5nIG9yIEVsaXhp ciBpbnB1dC4iCj4gKyAgKG9yIChlcmxhbmctaW5wdXQ/IGlucHV0KQo+ICsgICAgICAoZWxpeGly LWlucHV0PyBYLlkgaW5wdXQpKSkKTGVhaywgbGVhaywgbGVhay4KCgoqKiBwaGYKVGhpcyBjb21t ZW50IGlzIGFkZHJlc3NlZCBpbiBhbiBvdGhlciBbW2lkOjQ5ODEzY2UzLTNjN2MtNDdlNS1iYjk1 LWNhODQ5YWFhYzU1OF1bY29tbWVudF1dLgoKCiogRE9ORSBDb21tZW50CioqIGxpbHlwCj4gKyhk ZWZpbmUgKHNuYWtlY2FzZS1uYW1lIG5hbWUpCj4gKyAgIlJldHVybiBhIHNuYWtlY2FzZSB2ZXJz aW9uIG9mIE5BTUUuIgo+ICsgIChzdHJpbmctcmVwbGFjZS1zdWJzdHJpbmcgKHN0cmluZy1kb3du Y2FzZSBuYW1lKSAiLSIgIl8iKSkKPiArCj4gKyhkZWZpbmUgKGxhYmVsLT5saWJyYXJ5LW5hbWUg bGFiZWwpCj4gKyAgIlJldHVybiB0aGUgbGlicmFyeSBuYW1lIGFzc29jaWF0ZWQgdG8gYW4gaW5w dXQgbGFiZWwgTEFCRUwuIgo+ICsgIChkZWZpbmUgc3RyaXBwZWQtbGFiZWwKPiArICAgIChjb25k Cj4gKyAgICAgKChlcmxhbmctbmFtZT8gbGFiZWwpCj4gKyAgICAgIChzdHJpcC1lcmxhbmctcHJl Zml4IGxhYmVsKSkKPiArICAgICAoKGVsaXhpci1uYW1lPyBsYWJlbCkKPiArICAgICAgKHN0cmlw LWVsaXhpci1wcmVmaXggbGFiZWwpKQo+ICsgICAgICgjdCAoZXJyb3IgIkludmFsaWQgbGFiZWw6 IGV4cGVjdGVkIGFuIEVybGFuZyBvciBFbGl4aXIgbGFiZWwuIgo+ICdsYWJlbCBsYWJlbCkpKSkK PiArICAoc25ha2VjYXNlLW5hbWUgc3RyaXBwZWQtbGFiZWwpKQpEb24ndCByZWx5IG9uIGxhYmVs cy4KR3JhdHVpdG91cyBkZWZpbml0aW9ucyBhcmUgZ3JhdHVpdG91cy4KVGhlIGRvY3N0cmluZyBk aXZ1bGdlcyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHdpdGhvdXQgcmVhbGx5IGV4cGxhaW5pbmcK d2hhdCB0aGUgZnVuY3Rpb24gaXRzZWxmIGRvZXMuCgoKKiogcGhmCk11Y2ggb2YgdGhlIGNvZGUg aGFzIGJlZW4gZGVsZXRlZCBhbmQgcmVwbGFjZWQgYnkgc29tZXRoaW5nIHNtYWxsZXIuCgoKKiBE T05FIENvbW1lbnQKKiogbGlseXAKPiArICAoZGVmaW5lIChhbGwtaW5wdXRzIG1peC1lbnYpCj4g KyAgICAoZGVmaW5lIGVudi1pbnB1dHMKPiArICAgICAgKGNvbmQKPiArICAgICAgICgoc3RyaW5n PT8gbWl4LWVudiAlbWl4LWVudi1wcm9kKQo+ICsgICAgICAgIGlucHV0cykKPiArICAgICAgICgo bWVtYmVyIG1peC1lbnYgKGxpc3QgJW1peC1lbnYtdGVzdCAlbWl4LWVudi1zaGFyZWQpKQo+ICsg ICAgICAgIChhcHBlbmQgaW5wdXRzIG5hdGl2ZS1pbnB1dHMpKQo+ICsgICAgICAgKCN0IChlcnJv ciAiVW5leHBlY3RlZCBNaXggZW52aXJvbm1lbnQuIiAnbWl4LWVudiBtaXgtZW52KSkpKQpZb3Ug cHJvYmFibHkgd2FudCBhbmQgaWNlLTkgbWF0Y2ggaGVyZSwgd2hpY2ggaGFzIGFuIGltcGxpY2l0 IGVycm9yIG9uCmZhaWxlZCBtYXRjaGVzLgoKCioqIHBoZgpUaGlzIGNvZGUgaGFzIGJlZW4gZGVs ZXRlZC4KCgoqIERPTkUgQ29tbWVudAoqKiBsaWx5cAo+ICsgICAgICAgICAgICAgICAgICAgICM6 YWxsb3ctb3RoZXIta2V5cyAjOnJlc3QgYXJncykKPiArICAiQnVpbGQgdGhlIGdpdmVuIE1peCBw YWNrYWdlLCBhcHBseWluZyBhbGwgb2YgUEhBU0VTIGluIG9yZGVyLiIKPiArICAoYXBwbHkgZ251 OmdudS1idWlsZCAjOmlucHV0cyBpbnB1dHMgIzpwaGFzZXMgcGhhc2VzIGFyZ3MpKQo+ICsKPiAr Ozs7IG1peC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVyZQo+Cj4gYmFzZS1jb21taXQ6IGEwZDMz N2U3OWM4N2Q3YzM4Yzc5ZDAyOTE5NzRmNDkwY2IxMzdhNTIKSSBwcm9iYWJseSBtaXNzZWQgc29t ZSwgYnV0IEkgdGhpbmsgeW91IGdldCB0aGUgZ2lzdC4gIFdoaWxlIHRoaXMgaXNuJ3QKZXhhY3Rs eSBjb2RlIGdvbGYsIHRyeSB0byBleHByZXNzIHlvdXJzZWxmIGluIHRlcm1zIG9mIHRoZSBsZWFz dAp2ZXJib3NlIHByaW1pdGl2ZXMgYW5kIGRvbid0IGFkZCBtZWFuaW5nbGVzcyBsYXllcnMgb2Yg aW5kaXJlY3Rpb24g4oCTIHdlCmFscmVhZHkgaGF2ZSBlbm91Z2ggYWN0dWFsIG1lYW5pbmdmdWwg b25lcy4KCgoqKiBwaGYKVGhlIGNvZGUgaGFzIGJlZW4gcmV2aWV3ZWQgaW4gdGhpcyByZWdhcmQu Cg== --00000000000068721c060a38b658-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 15 Nov 2023 22:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: liliana.prikler@gmail.com, Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17000887275350 (code B ref 66801); Wed, 15 Nov 2023 22:53:02 +0000 Received: (at 66801) by debbugs.gnu.org; 15 Nov 2023 22:52:07 +0000 Received: from localhost ([127.0.0.1]:54114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Oju-0001OD-Dm for submit@debbugs.gnu.org; Wed, 15 Nov 2023 17:52:07 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:46323) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3Ojs-0001Nf-7e for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 17:52:05 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4084de32db5so1381585e9.0 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 14:52:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700088717; x=1700693517; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=CDH9gPIzZbcKxks4yOFmBuyPfSFHX7ZYwWY738AVA50=; b=1bSVXYNLBq4929h+MMRp7RfPqc7nWwTqRgdt0bOJ7IY5JnxlFnfJ90o6mPc4woiSlX Lhs0Os9LSZKxt23ldfGSN7l3AoWc7C2mzbwzigbGuRmELWuphcwnB3njvFEzBX/4G82b rXiyRMC4tLMDtUwN60TeylnXPmdidyh0jpD7Da69MMlnZcO6LIATMRS4T1Ti9FefPB5P VPogpxulvI25JHGRuZrNMyBtbBXXPyCYIgF+A6ZM2RVLCMx+kVyXrFiMtb6xkFaA85cV euzAPuAuvfEjm1eVWKKPs5F+55k19+C730zFw9YHPOlr/jN4Cx4/lORc+zQTNEMh0C5S BkUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700088717; x=1700693517; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CDH9gPIzZbcKxks4yOFmBuyPfSFHX7ZYwWY738AVA50=; b=VoP/TdNeMqbopbpTSiY+vOQ7aeUoQbWilIhl1jsymD38Dvx7SeIi7Gzco3wffz1h0u bIVkNFs4+HdcondXXiTtrYUpRFrhqNkoWmK4pakMRMsiyYOS7g18NCEHOTTROuvlLhQu Xe5bQ9Y0NtbObBy/JK+Ctf6t3RXjW1z88pq+L1AbfHVj8zT7lRMfoOeYKyhEl3iNCRrA lzW9MABfSMLdZOInqaFnwAofFOYg4J2sJ/33l4HDHEKFdj5CJfF57XnlZQqUpi4ME2ku i6b1h+bSA5OMIoWzLjW4TZGS99H0TqunaPwuBfwLLHFdovzASe0/Og6PTDV6pRz44F2f vPeg== X-Gm-Message-State: AOJu0YzPgjvSoe2guPb0S55alo6+3kb7HnUc8GSW0VmF99MnRDLSXJyK +TGzYVKQzT7785HcSQmU0CZKY33rMZr2mLOSyuc= X-Google-Smtp-Source: AGHT+IHlZ358PJx6oC7dvnyB6kPrNGRRMRYWSLt5XnCYu2tpBe35FNQUl+s/dd8Ky4UjgvVaXgVNkA== X-Received: by 2002:a05:600c:548e:b0:403:cc64:2dbf with SMTP id iv14-20020a05600c548e00b00403cc642dbfmr11335145wmb.27.1700088716768; Wed, 15 Nov 2023 14:51:56 -0800 (PST) Received: from doug.home ([2a01:cb19:85a1:c200:ee66:fd17:945:f033]) by smtp.gmail.com with ESMTPSA id m21-20020a05600c3b1500b004094c5d929asm1159910wms.10.2023.11.15.14.51.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 14:51:56 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Wed, 15 Nov 2023 23:51:12 +0100 Message-ID: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) 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/mix.scm, * guix/build/mix-build-system.scm: New modules. Change-Id: I2cbf6c963a530e73420da0eb17ffaf92827451bf --- guix/build-system/mix.scm | 181 ++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 205 ++++++++++++++++++++++++++++++++ 2 files changed, 386 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 00000000..ae80679b --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,181 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve the bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + "Return the default Elixir package." + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cut string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cut string-replace-substring <> "-" "_") + strip-elixir-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 00000000..0a1fcb5c --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,205 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build + strip-elixir-prefix + %standard-phases)) + +(define (elixir-version elixir) + "Return an X.Y string where X and Y are respectively the major and minor version number of ELIXIR. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cut string-join <> ".") + (cut take <> 2) + (cut string-split <> #\.) + last) + (string-split elixir #\-))) + +(define (elixir-libdir elixir path) + "Return the path where all libraries for a specified ELIXIR version are installed." + (string-append path "/lib/elixir/" (elixir-version elixir))) + +(define (erlang-libdir path) + "Return the path of the directory where libraries of an Erlang package are +installed in the store." + (string-append path "/lib/erlang/lib")) + +(define (install-dir inputs outputs) + "Return the path of the current output's Elixir library. +Example: /gnu/store/…/lib/elixir/1.14" + (elixir-libdir (assoc-ref inputs "elixir") + (assoc-ref outputs "out"))) + +(define (strip-prefix prefix name) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (strip-elixir-prefix name) + "Strip elixir- from NAME." + (strip-prefix "elixir-" name)) + +(define (mix-build-dir mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory." + (string-append "_build/" mix-env "/lib")) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cut string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "LC_ALL" "en_US.UTF-8") + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3")) + (setenv "MIX_EXS" mix-exs)) + +(define* (install-hex #:key name inputs outputs #:allow-other-keys) + "Install Hex." + (let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES") "/hex"))) + (mkdir-p hex-archive-path) + (symlink (car (list-directories (elixir-libdir (assoc-ref inputs "elixir") + (assoc-ref inputs "elixir-hex")))) + (string-append hex-archive-path "/hex")))) + +(define* (install-dependencies #:key + name + inputs + outputs + tests? + build-per-environment + (native-inputs '()) + mix-environments + #:allow-other-keys + #:rest rest) + "Install dependencies." + (define (install-lib lib dir) + (let ((lib-name (last (string-split lib #\/)))) + (symlink lib (string-append dir "/" lib-name)))) + + (define (install-input mix-env input) + (let ((dir (mix-build-dir mix-env))) + (mkdir-p dir) + (match input + ((_ . path) + ((compose + (cut for-each (cut install-lib <> dir) <>) + (cut append-map list-directories <>) + (cut filter directory-exists? <>)) + (list (elixir-libdir (assoc-ref inputs "elixir") path) + (erlang-libdir path))))))) + + (define (install-inputs mix-env) + (for-each (cut install-input mix-env <>) + (append inputs native-inputs))) + + (for-each install-inputs mix-environments)) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (library-name pkg-name) + "Return the library name deduced from PKG-NAME. +A package should be named: elixir-lib-name-X.Y.Z from which the library name +lib_name is deduced." + ((compose + (cut string-join <> "_") + (cut drop-right <> 1) + (cut string-split <> #\-)) + (strip-elixir-prefix pkg-name))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (library-name name)) + (lib-dir (string-append (install-dir inputs outputs) "/" lib-name))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir (if build-per-environment "prod" "shared")) "/" lib-name) + lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (replace 'configure configure) + (replace 'unpack unpack) + (add-after 'patch-generated-file-shebangs 'install-hex install-hex) + (add-after 'install-hex 'install-dependencies install-dependencies) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: a0d337e79c87d7c38c79d0291974f490cb137a52 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Nov 2023 02:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17001003454983 (code B ref 66801); Thu, 16 Nov 2023 02:06:02 +0000 Received: (at 66801) by debbugs.gnu.org; 16 Nov 2023 02:05:45 +0000 Received: from localhost ([127.0.0.1]:54250 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3RlH-0001IH-Px for submit@debbugs.gnu.org; Wed, 15 Nov 2023 21:05:44 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:51350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3RlB-0001Hz-Pl for 66801@debbugs.gnu.org; Wed, 15 Nov 2023 21:05:41 -0500 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-4094301d505so1947015e9.2 for <66801@debbugs.gnu.org>; Wed, 15 Nov 2023 18:05:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700100332; x=1700705132; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=+RssVhF8ciixtEVryPH7f6SIRiccUcIbgXqZqJukB0g=; b=dZI2irNRky5Q50aXdWNSL6nYixDx2Gx9LIqq3/kdMRzbWBQrM0NTYwlrjmVXQaCaqZ XfXpwLgGBTucBW9BMpn45RIB4eBSlT/PIKzhKxjuPw3mfAdhbRY4MoGHu8aLOQohBrhz UiXMhnviYBdXmoGnH+axePLd+Bxp9UmoasTD5Hb4QxYT2BazVFcE/ss8YsgiCNYTu2Yv mvcf+zY/XFPlO032qbcTNtwQrjqWRHtyRkdVLHpwttOBJ3cfj56mqIrjIpI0reh9PVJt htTj2KH+LD5WMpxjnargrjtp01mMhV3flV7X4Th/yNtiL2W+M0zJC02C7Vbi3jtJhL25 bS9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700100332; x=1700705132; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+RssVhF8ciixtEVryPH7f6SIRiccUcIbgXqZqJukB0g=; b=rJ9+rxoidg0xOqMRzRjIaNBLopO6pGUIOaip5R4ZELwMBzmuiwtUwkCs18DX7D4weo lVVP+GYd1uW7nC2leQjGdV3e+9HjSzjxdS49CzIM7qVCxuV+7Pl8F0ZF2j1BfcposAgj Ha4YggbuVN/RDI5RLHT33Gb7R9zpAwC9NcYyki+6n1ykm14CLNwhK/5iOib0uQ3L2BNO +WzK7UwChsyxu2ZyXr4KDLzGtCMJGDAcfuALnDkj3UpKE+iZnKwncNILBCUXb72Annb1 4raGeEbS+M60p2Lch8jpQw0NWYunh2KW3I6ZK7DC3/3f/rmFh3wZdnBSmo9BCsmfQ1jp yt4g== X-Gm-Message-State: AOJu0Yxf5hvs5ITXKJ+B9Up2Q5JLeMIj9uyydGqKYStPYJqEOJxM7tet aqfraFucgG83nEBoCE9ZHQE= X-Google-Smtp-Source: AGHT+IGaFI26ibuXdjT82srKBanFkIDDQ/cmxWrv+AgIQYwXIaareeYzcX3i5OBKV5WRkEE27SuK0w== X-Received: by 2002:a05:600c:4443:b0:3fe:dcd0:2e32 with SMTP id v3-20020a05600c444300b003fedcd02e32mr12102425wmn.19.1700100331748; Wed, 15 Nov 2023 18:05:31 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id bg39-20020a05600c3ca700b0040a487758dcsm1574531wmb.6.2023.11.15.18.05.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 18:05:30 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Thu, 16 Nov 2023 03:05:29 +0100 In-Reply-To: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) QW0gTWl0dHdvY2gsIGRlbSAxNS4xMS4yMDIzIHVtIDIzOjUxICswMTAwIHNjaHJpZWIgUGllcnJl LUhlbnJ5CkZyw7ZocmluZzoKPiAqIGd1aXgvYnVpbGQtc3lzdGVtL21peC5zY20sCj4gKiBndWl4 L2J1aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtOiBOZXcgbW9kdWxlcy4KPiAKPiBDaGFuZ2UtSWQ6 IEkyY2JmNmM5NjNhNTMwZTczNDIwZGEwZWIxN2ZmYWY5MjgyNzQ1MWJmCj4gLS0tCj4gwqBndWl4 L2J1aWxkLXN5c3RlbS9taXguc2NtwqDCoMKgwqDCoMKgIHwgMTgxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiDCoGd1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20gfCAyMDUKPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IMKgMiBmaWxlcyBjaGFuZ2VkLCAzODYg aW5zZXJ0aW9ucygrKQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgvYnVpbGQtc3lzdGVtL21p eC5zY20KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0u c2NtCj4gCj4gZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQtc3lzdGVtL21peC5zY20gYi9ndWl4L2J1 aWxkLXN5c3RlbS9taXguc2NtCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAw MC4uYWU4MDY3OWIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZ3VpeC9idWlsZC1zeXN0ZW0vbWl4 LnNjbQo+IEBAIC0wLDAgKzEsMTgxIEBACj4gKzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBw YWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQo+ICs7OzsgQ29weXJpZ2h0IMKpIDIwMjMgUGllcnJl LUhlbnJ5IEZyw7ZocmluZwo+IDxwaGZyb2hyaW5nQGRlZXBsaW5rcy5jb20+Cj4gKzs7Owo+ICs7 OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCj4gKzs7Owo+ICs7OzsgR05VIEd1aXgg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ IGl0Cj4gKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZAo+IGJ5Cj4gKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLAo+IG9yIChhdAo+ICs7OzsgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAo+ICs7OzsgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ ICs7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LsKgIFNlZSB0aGUKPiArOzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCj4gKzs7Owo+ICs7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljCj4gTGljZW5zZQo+ICs7OzsgYWxvbmcgd2l0aCBHTlUgR3Vp eC7CoCBJZiBub3QsIHNlZQo+IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KPiArCj4g Kzs7IENvbW1lbnRhcnk6Cj4gKzs7Cj4gKzs7IFN0YW5kYXJkIGJ1aWxkIHByb2NlZHVyZSBmb3Ig RWxpeGlyIHBhY2thZ2VzIHVzaW5nICdtaXgnLsKgIFRoaXMKPiBpcwo+ICs7OyBpbXBsZW1lbnRl ZCBhcyBhbiBleHRlbnNpb24gb2YgJ2dudS1idWlsZC1zeXN0ZW0nLgo+ICs7Owo+ICs7OyBDb2Rl Ogo+ICsKPiArKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIG1peCkKPiArwqAgIzp1 c2UtbW9kdWxlIChndWl4IGJ1aWxkIG1peC1idWlsZC1zeXN0ZW0pCj4gK8KgICM6dXNlLW1vZHVs ZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQt c3lzdGVtKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggZ2V4cCkKPiArwqAgIzp1c2UtbW9kdWxl IChndWl4IG1vbmFkcykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQo+ICvCoCAj OnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXgg c3RvcmUpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKPiArwqAgIzp1c2UtbW9kdWxl IChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiArwqAgIzp1 c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCj4gK8KgICM6ZXhwb3J0IChtaXgtYnVpbGQtc3lzdGVt IGhleHBtLXVyaSkpCj4gKwo+ICs7OyBMYXppbHkgcmVzb2x2ZSB0aGUgYmluZGluZ3MgdG8gYXZv aWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLgo+ICsoZGVmaW5lIChkZWZhdWx0LWdsaWJjLXV0Zjgt bG9jYWxlcykKPiArwqAgKGxldCogKChiYXNlIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNr YWdlcyBiYXNlKSkpKQo+ICvCoMKgwqAgKG1vZHVsZS1yZWYgYmFzZSAnZ2xpYmMtdXRmOC1sb2Nh bGVzKSkpCj4gKwo+ICsoZGVmaW5lIChkZWZhdWx0LWVsaXhpci1oZXgpCj4gK8KgIChsZXQgKChl bGl4aXIgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGVsaXhpcikpKSkKPiArwqDC oMKgIChtb2R1bGUtcmVmIGVsaXhpciAnZWxpeGlyLWhleCkpKQo+ICsKPiArKGRlZmluZSAoZGVm YXVsdC1yZWJhcjMpCj4gK8KgIChsZXQgKChlcmxhbmcgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251 IHBhY2thZ2VzIGVybGFuZykpKSkKPiArwqDCoMKgIChtb2R1bGUtcmVmIGVybGFuZyAncmViYXIz KSkpCj4gKwo+ICsoZGVmaW5lIChkZWZhdWx0LWVsaXhpcikKPiArwqAgIlJldHVybiB0aGUgZGVm YXVsdCBFbGl4aXIgcGFja2FnZS4iCj4gK8KgIChsZXQgKChlbGl4aXIgKHJlc29sdmUtaW50ZXJm YWNlICcoZ251IHBhY2thZ2VzIGVsaXhpcikpKSkKPiArwqDCoMKgIChtb2R1bGUtcmVmIGVsaXhp ciAnZWxpeGlyKSkpCj4gKwo+ICsoZGVmaW5lIChoZXhwbS11cmkgbmFtZSB2ZXJzaW9uKQo+ICvC oCAiUmV0dXJuIHRoZSBVUkkgd2hlcmUgdG8gZmV0Y2ggdGhlIHNvdXJjZXMgb2YgYSBIZXggcGFj a2FnZSBOQU1FCj4gYXQgVkVSU0lPTi4KPiArTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgcGFja2Fn ZSB3aGljaCBzaG91bGQgbG9vayBsaWtlOiBlbGl4aXItcGtnLQo+IG5hbWUtWC5ZLloKPiArU2Vl OiBodHRwczovL2dpdGh1Yi5jb20vaGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYWluL2VuZHBv aW50cy5tZCIKPiArwqAgKChjb21wb3NlCj4gK8KgwqDCoCAoY3V0IHN0cmluZy1hcHBlbmQgImh0 dHBzOi8vcmVwby5oZXgucG0vdGFyYmFsbHMvIiA8PiAiLSIKPiB2ZXJzaW9uICIudGFyIikKPiAr wqDCoMKgIChjdXQgc3RyaW5nLXJlcGxhY2Utc3Vic3RyaW5nIDw+ICItIiAiXyIpCj4gK8KgwqDC oCBzdHJpcC1lbGl4aXItcHJlZml4KQo+ICvCoMKgIG5hbWUpKQo+ICsKPiArOzsgQSBudW1iZXIg b2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIHNwZWNpZmljIHRvIHRoZSBNaXggYnVpbGQKPiBzeXN0 ZW0gYXJlCj4gKzs7IHJlZmxlY3RlZCBoZXJlLsKgIFRoZXkgYXJlIGRvY3VtZW50ZWQgYXQKPiAr OzsKPiBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguaHRtbCNtb2R1bGUtZW52aXJv bm1lbnQtdmFyaWFibGVzLsKgCj4gT3RoZXIKPiArOzsgcGFyYW1ldGVycyBsb2NhdGVkIGluIG1p eC5leHMgYXJlIGRlZmluZWQgYXQKPiArOzsKPiBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUu Ny9NaXguUHJvamVjdC5odG1sI21vZHVsZS1jb25maWd1cmF0aW9uCj4gKyhkZWZpbmUqIChtaXgt YnVpbGQgbmFtZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1 dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzprZXkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNlCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtaXgtcGF0aCAjZikgO1NlZSBNSVhfUEFUSC4KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1peC1leHMgIm1peC5leHMi KSA7U2VlIE1JWF9FWFMuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IChidWlsZC1wZXItZW52aXJvbm1lbnQgI3QpIDtTZWUKPiA6YnVpbGRfcGVyX2Vudmlyb25tZW50 Lgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocGhhc2VzICclc3Rh bmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo b3V0cHV0cyAnKCJvdXQiKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChndWlsZSAjZikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKGltcG9ydGVkLW1vZHVsZXMgYCgoZ3VpeCBidWlsZCBtaXgtYnVpbGQt Cj4gc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLEAlZ251LWJ1aWxkLXN5c3RlbS0K PiBtb2R1bGVzKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1v ZHVsZXMgJygoZ3VpeCBidWlsZCBtaXgtYnVpbGQtc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGd1aXggYnVpbGQg dXRpbHMpKSkpCj4gK8KgICJCdWlsZCBTT1VSQ0UgdXNpbmcgRWxpeGlyLCBhbmQgd2l0aCBJTlBV VFMuIgo+ICsKPiArwqAgOzsgQ2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb2YgOmJ1aWxkX3Blcl9l bnZpcm9ubWVudCBoZXJlOgo+ICvCoCA7Owo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43 L01peC5Qcm9qZWN0Lmh0bWwjbW9kdWxlLWNvbmZpZ3VyYXRpb27CoEEKPiBuZAo+ICvCoCA7OyAi RW52aXJvbm1lbnRzIiBoZXJlOgo+ICvCoCA7OyBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUu Ny9NaXguaHRtbCNtb2R1bGUtZW52aXJvbm1lbnRzCj4gK8KgIChkZWZpbmUgbWl4LWVudmlyb25t ZW50cwo+ICvCoMKgwqAgKGlmIGJ1aWxkLXBlci1lbnZpcm9ubWVudAo+ICvCoMKgwqDCoMKgwqDC oCBgKCJwcm9kIiAsQChpZiB0ZXN0cz8gJygidGVzdCIpICcoKSkpCj4gK8KgwqDCoMKgwqDCoMKg ICcoInNoYXJlZCIpKSkKPiArCj4gK8KgIChkZWZpbmUgYnVpbGRlcgo+ICvCoMKgwqAgKHdpdGgt aW1wb3J0ZWQtbW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCj4gK8KgwqDCoMKgwqAgI34oYmVnaW4K PiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCAodXNlLW1vZHVsZXMgIyRAKHNleHAtPmdleHAgbW9k dWxlcykpCj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12YXJpYWJsZXMg aW5wdXRzIG91dHB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgI34obWl4LWJ1aWxk ICM6bmFtZSAjJG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOnNvdXJjZSAjK3NvdXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6c3lzdGVtICMkc3lzdGVtCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0cz8g IyR0ZXN0cz8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAjOm1peC1wYXRoICMkbWl4LXBhdGgKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOm1peC1leHMgIyRtaXgtZXhzCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzptaXgtZW52 aXJvbm1lbnRzICcjJG1peC1lbnZpcm9ubWVudHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmJ1aWxkLXBlci1lbnZpcm9ubWVudCAjJGJ1 aWxkLXBlci0KPiBlbnZpcm9ubWVudAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6cGhhc2VzICMkKGlmIChwYWlyPyBwaGFzZXMpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNleHAtPmdleHAgcGhhc2VzKQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHBoYXNlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOm91dHB1dHMgJW91dHB1dHMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJjaC1wYXRocyAn IyQoc2V4cC0+Z2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG1hcAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aC0KPiBzcGVj aWZpY2F0aW9uLT5zZXhwCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNl YXJjaC1wYXRocykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIzppbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAlYnVpbGQtaW5wdXRzKSkpKSkKPiArCj4gK8KgIChtbGV0ICVz dG9yZS1tb25hZCAoKGd1aWxlIChwYWNrYWdlLT5kZXJpdmF0aW9uIChvciBndWlsZQo+IChkZWZh dWx0LWd1aWxlKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6Z3Jh ZnQ/ICNmKSkpCj4gK8KgwqDCoCAoZ2V4cC0+ZGVyaXZhdGlvbiBuYW1lCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWlsZGVyCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnN5c3RlbSBzeXN0ZW0KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6Z3JhZnQ/ICNmwqDCoMKgwqDCoMKg IDtjb25zaXN0ZW50IHdpdGggJ2dudS1idWlsZCcKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6dGFyZ2V0ICNmCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOmd1aWxlLWZvci1idWlsZCBndWlsZSkpKQo+ICsKPiArKGRl ZmluZSogKGxvd2VyIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZWxpeGlyIChkZWZhdWx0LWVsaXhp cikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZWxpeGlyLWhleCAoZGVmYXVs dC1lbGl4aXItaGV4KSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChnbGliYy11 dGY4LWxvY2FsZXMgKGRlZmF1bHQtZ2xpYmMtdXRmOC1sb2NhbGVzKSkKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChpbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKG5hdGl2ZS1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHByb3BhZ2F0ZWQtaW5wdXRzICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChyZWJhcjMgKGRlZmF1bHQtcmViYXIzKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBv dXRwdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzb3VyY2UKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdGFyZ2V0Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93 LW90aGVyLWtleXMgIzpyZXN0IGFyZ3VtZW50cykKPiArwqAgIlJldHVybiBhIGJhZyBmb3IgTkFN RS4iCj4gK8KgIChsZXQgKChwcml2YXRlLWtleXdvcmRzCj4gK8KgwqDCoMKgwqDCoMKgwqAgJygj OmlucHV0cyAjOm5hdGl2ZS1pbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRz ICM6c3lzdGVtICM6dGFyZ2V0Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICM6ZWxpeGlyICM6ZWxp eGlyLWhleCAjOmdsaWJjLXV0ZjgtbG9jYWxlcwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnJl YmFyMyAjOmVybGFuZykpCj4gK8KgwqDCoMKgwqDCoMKgIChidWlsZC1pbnB1dHMKPiArwqDCoMKg wqDCoMKgwqDCoCBgKCxAKHN0YW5kYXJkLXBhY2thZ2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oCAoImdsaWJjLXV0ZjgtbG9jYWxlcyIgLGdsaWJjLXV0ZjgtbG9jYWxlcykKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqAgKCJlcmxhbmciICwobG9va3VwLXBhY2thZ2UtaW5wdXQgZWxpeGlyICJlcmxh bmciKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCJyZWJhcjMiICxyZWJhcjMpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgICgiZWxpeGlyIiAsZWxpeGlyKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oCAoImVsaXhpci1oZXgiICxlbGl4aXItaGV4KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQGlu cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQG5hdGl2ZS1pbnB1dHMpKSkKPiArwqAgKGJh ZyAobmFtZSBuYW1lKQo+ICvCoMKgwqDCoMKgwqAgKHN5c3RlbSBzeXN0ZW0pCj4gK8KgwqDCoMKg wqDCoCAoYnVpbGQtaW5wdXRzIGJ1aWxkLWlucHV0cykKPiArwqDCoMKgwqDCoMKgIChob3N0LWlu cHV0cyAoaWYgdGFyZ2V0IGlucHV0cyAnKCkpKQo+ICvCoMKgwqDCoMKgwqAgKG91dHB1dHMgb3V0 cHV0cykKPiArwqDCoMKgwqDCoMKgIChidWlsZCBtaXgtYnVpbGQpCj4gK8KgwqDCoMKgwqDCoCAo YXJndW1lbnRzIChzdHJpcC1rZXl3b3JkLWFyZ3VtZW50cyBwcml2YXRlLWtleXdvcmRzCj4gYXJn dW1lbnRzKSkpKSkKPiArCj4gKyhkZWZpbmUgbWl4LWJ1aWxkLXN5c3RlbQo+ICvCoCAoYnVpbGQt c3lzdGVtIChuYW1lICdtaXgpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVz Y3JpcHRpb24gIlRoZSBzdGFuZGFyZCBNaXggYnVpbGQgc3lzdGVtIikKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChsb3dlciBsb3dlcikpKQo+ICsKPiArOzs7IG1peC5zY20gZW5k cyBoZXJlCj4gZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20gYi9n dWl4L2J1aWxkL21peC1idWlsZC0KPiBzeXN0ZW0uc2NtCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMC4uMGExZmNiNWMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZ3VpeC9i dWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbQo+IEBAIC0wLDAgKzEsMjA1IEBACj4gKzs7OyBHTlUg R3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQo+ICs7OzsgQ29w eXJpZ2h0IMKpIDIwMjMgUGllcnJlLUhlbnJ5IEZyw7ZocmluZwo+IDxwaGZyb2hyaW5nQGRlZXBs aW5rcy5jb20+Cj4gKzs7Owo+ICs7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCj4g Kzs7Owo+ICs7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQo+IGl0Cj4gKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAo+IGJ5Cj4gKzs7OyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLAo+ IG9yIChhdAo+ICs7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICs7OzsKPiAr Ozs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dAo+ICs7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgo+ICs7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLsKgIFNlZSB0aGUKPiArOzs7IEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gKzs7Owo+ICs7OzsgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCj4gTGljZW5zZQo+ICs7 OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC7CoCBJZiBub3QsIHNlZQo+IDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KPiArCj4gKzs7IENvbW1lbnRhcnk6Cj4gKzs7Cj4gKzs7IENvZGU6Cj4g Kwo+ICsoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZCBtaXgtYnVpbGQtc3lzdGVtKQo+ICvCoCAj OnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIGdudS1idWlsZC1zeXN0ZW0pICM6cHJlZml4IGdudTop Cj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZCB1dGlscykKPiArwqAgIzp1c2UtbW9kdWxl IChpY2UtOSBmdHcpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCj4gK8KgICM6dXNl LW1vZHVsZSAoaWNlLTkgcmVnZXgpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgc3RyaW5nLWZ1 bikKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiArwqAgIzp1c2UtbW9kdWxlIChz cmZpIHNyZmktMjYpCj4gK8KgICM6ZXhwb3J0IChtaXgtYnVpbGQKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzdHJpcC1lbGl4aXItcHJlZml4Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJXN0 YW5kYXJkLXBoYXNlcykpCj4gKwo+ICsoZGVmaW5lIChlbGl4aXItdmVyc2lvbiBlbGl4aXIpCj4g K8KgICJSZXR1cm4gYW4gWC5ZIHN0cmluZyB3aGVyZSBYIGFuZCBZIGFyZSByZXNwZWN0aXZlbHkg dGhlIG1ham9yIGFuZAo+IG1pbm9yIHZlcnNpb24gbnVtYmVyIG9mIEVMSVhJUi4KPiArRXhhbXBs ZTogL2dudS9zdG9yZS/igKYtZWxpeGlyLTEuMTQuMCDihpIgMS4xNCIKPiArwqAgKChjb21wb3Nl Cj4gK8KgwqDCoCAoY3V0IHN0cmluZy1qb2luIDw+ICIuIikKPiArwqDCoMKgIChjdXQgdGFrZSA8 PiAyKQo+ICvCoMKgwqAgKGN1dCBzdHJpbmctc3BsaXQgPD4gI1wuKQo+ICvCoMKgwqAgbGFzdCkK PiArwqDCoCAoc3RyaW5nLXNwbGl0IGVsaXhpciAjXC0pKSkKSSBkb24ndCB0aGluayB3ZSBuZWVk IHRvIGJlIG92ZXJseSBjdXRlIGhlcmUuICBUaGUgbGV0LWJpbmRpbmcgdmVyc2lvbgpmcm9tIHB5 dGhvbi1idWlsZC1zeXN0ZW0gaXMgbGVzcyBzdXJwcmlzaW5nIHRvIHRoZSB1bmluaXRpYXRlZCBy ZWFkZXIuCgpTZWUgYWxzbyBzdHJpcC1zdG9yZS1maWxlLW5hbWUgYW5kIHBhY2thZ2UtbmFtZS0+ bmFtZSt2ZXJzaW9uLgoKPiArKGRlZmluZSAoZWxpeGlyLWxpYmRpciBlbGl4aXIgcGF0aCkKPiAr wqAgIlJldHVybiB0aGUgcGF0aCB3aGVyZSBhbGwgbGlicmFyaWVzIGZvciBhIHNwZWNpZmllZCBF TElYSVIKPiB2ZXJzaW9uIGFyZSBpbnN0YWxsZWQuIgo+ICvCoCAoc3RyaW5nLWFwcGVuZCBwYXRo ICIvbGliL2VsaXhpci8iIChlbGl4aXItdmVyc2lvbiBlbGl4aXIpKSkKWW91IHByb2JhYmx5IHdh bnQgdG8gc3dhcCBwYXRoIGFuZCBlbGl4aXIgYW5kIHBlcmhhcHMgYWxzbyBmaW5kIGEgd2F5CnRv IGltcGxpY2l0bHkgcGFyYW1ldGVyaXplIHRoZSBsYXR0ZXIgc28gYXMgdG8gbWFrZSBpdCBvcHRp b25hbC4gCj4gKwo+ICsoZGVmaW5lIChlcmxhbmctbGliZGlyIHBhdGgpCj4gK8KgICJSZXR1cm4g dGhlIHBhdGggb2YgdGhlIGRpcmVjdG9yeSB3aGVyZSBsaWJyYXJpZXMgb2YgYW4gRXJsYW5nCj4g cGFja2FnZSBhcmUKPiAraW5zdGFsbGVkIGluIHRoZSBzdG9yZS4iCj4gK8KgIChzdHJpbmctYXBw ZW5kIHBhdGggIi9saWIvZXJsYW5nL2xpYiIpKQo+ICsKPiArKGRlZmluZSAoaW5zdGFsbC1kaXIg aW5wdXRzIG91dHB1dHMpCj4gK8KgICJSZXR1cm4gdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgb3V0 cHV0J3MgRWxpeGlyIGxpYnJhcnkuCj4gK0V4YW1wbGU6IC9nbnUvc3RvcmUv4oCmL2xpYi9lbGl4 aXIvMS4xNCIKPiArwqAgKGVsaXhpci1saWJkaXIgKGFzc29jLXJlZiBpbnB1dHMgImVsaXhpciIp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChhc3NvYy1yZWYgb3V0cHV0cyAi b3V0IikpKQo+ICsKPiArKGRlZmluZSAoc3RyaXAtcHJlZml4IHByZWZpeCBuYW1lKQo+ICvCoCAi UmV0dXJuIE5BTUUgd2l0aG91dCB0aGUgcHJlZml4IFBSRUZJWC4iCj4gK8KgIChpZiAoc3RyaW5n LXByZWZpeD8gcHJlZml4IG5hbWUpCj4gK8KgwqDCoMKgwqAgKHN0cmluZy1kcm9wIG5hbWUgKHN0 cmluZy1sZW5ndGggcHJlZml4KSkKPiArwqDCoMKgwqDCoCBuYW1lKSkKWW91IG1pZ2h0IHdhbnQg dG8gY29uc2lkZXLCoAogIChkZWZpbmUqIChzdHJpcC1wcmVmaXggbmFtZSAjOm9wdGlvbmFsIChw cmVmaXggImVsaXhpci0iKQogICAgIOKApikKCj4gKyhkZWZpbmUgKG1peC1idWlsZC1kaXIgbWl4 LWVudikKPiArwqAgIlJldHVybiB0aGUgZGlyZWN0b3J5IHdoZXJlIGJ1aWxkIGFydGlmYWN0cyBh cmUgdG8gYmUgaW5zdGFsbGVkCj4gYWNjb3JkaW5nIHRvCj4gK2VuIGVudmlyb25tZW50IE1JWC1F TlYgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiIKPiArwqAgKHN0cmluZy1hcHBlbmQgIl9idWls ZC8iIG1peC1lbnYgIi9saWIiKSkKPiArCj4gKyhkZWZpbmUqICh1bnBhY2sgIzprZXkgc291cmNl IG1peC1wYXRoICM6YWxsb3ctb3RoZXIta2V5cykKPiArwqAgIlVucGFjayBTT1VSQ0UgaW4gdGhl IHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgY2hhbmdlIGRpcmVjdG9yeQo+IHdpdGhpbiB0aGUKPiAr c291cmNlLsKgIFdoZW4gU09VUkNFIGlzIGEgZGlyZWN0b3J5LCBjb3B5IGl0IGluIGEgc3ViLWRp cmVjdG9yeSBvZgo+IHRoZSBjdXJyZW50Cj4gK3dvcmtpbmcgZGlyZWN0b3J5LiIKPiArwqAgKGxl dCAoKGdudS11bnBhY2sgKGFzc29jLXJlZiBnbnU6JXN0YW5kYXJkLXBoYXNlcyAndW5wYWNrKSkp Cj4gK8KgwqDCoCAoZ251LXVucGFjayAjOnNvdXJjZSBzb3VyY2UpCj4gK8KgwqDCoCAod2hlbiAo ZmlsZS1leGlzdHM/ICJjb250ZW50cy50YXIuZ3oiKQo+ICvCoMKgwqDCoMKgIChpbnZva2UgInRh ciIgInh2ZiIgImNvbnRlbnRzLnRhci5neiIpKSkpCj4gKwo+ICsoZGVmaW5lIChsaXN0LWRpcmVj dG9yaWVzIGRpcikKPiArwqAgIkxpc3QgYWJzb2x1dGUgcGF0aHMgb2YgZGlyZWN0b3JpZXMgZGly ZWN0bHkgdW5kZXIgdGhlIGRpcmVjdG9yeQo+IERJUi4iCj4gK8KgIChtYXAgKGN1dCBzdHJpbmct YXBwZW5kIGRpciAiLyIgPD4pCj4gK8KgwqDCoMKgwqDCoCAoc2NhbmRpciBkaXIgKGxhbWJkYSAo ZmlsZW5hbWUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo YW5kIChub3QgKG1lbWJlciBmaWxlbmFtZSAnKCIuIiAiLi4iKSkpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGRpcmVjdG9yeS1leGlzdHM/ IChzdHJpbmctYXBwZW5kIGRpciAiLyIKPiBmaWxlbmFtZSkpKSkpKSkKPiArCj4gKyhkZWZpbmUq IChjb25maWd1cmUgIzprZXkgaW5wdXRzIG1peC1wYXRoIG1peC1leHMgIzphbGxvdy1vdGhlci0K PiBrZXlzKQo+ICvCoCAiU2V0IGVudmlyb25tZW50IHZhcmlhYmxlcy4KPiArU2VlOgo+IGh0dHBz Oi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5odG1sI21vZHVsZS1lbnZpcm9ubWVudC12YXJp YWJsZXMiCj4gK8KgIChzZXRlbnYgIkxDX0FMTCIgImVuX1VTLlVURi04IikKPiArwqAgKHNldGVu diAiTUlYX0hPTUUiIChnZXRjd2QpKQo+ICvCoCAoc2V0ZW52ICJNSVhfQVJDSElWRVMiICJhcmNo aXZlcyIpCj4gK8KgIChzZXRlbnYgIk1JWF9CVUlMRF9ST09UIiAiX2J1aWxkIikKPiArwqAgKHNl dGVudiAiTUlYX0RFUFNfUEFUSCIgImRlcHMiKQo+ICvCoCAoc2V0ZW52ICJNSVhfUEFUSCIgKG9y IG1peC1wYXRoICIiKSkKPiArwqAgKHNldGVudiAiTUlYX1JFQkFSMyIgKHN0cmluZy1hcHBlbmQg KGFzc29jLXJlZiBpbnB1dHMgInJlYmFyMyIpCj4gIi9iaW4vcmViYXIzIikpCj4gK8KgIChzZXRl bnYgIk1JWF9FWFMiIG1peC1leHMpKQpUaGlzIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIGNvbmZp Z3VyZSBwaGFzZSBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UKb2YgdGhlIHdvcmRpbmcuICBJbnN0 ZWFkLCBpdCBzaG91bGQgYmUgYSBwb3N0ICdzZXQtcGF0aHMnICdzZXQtbWl4LWVudicKaW1oby4K Cj4gKyhkZWZpbmUqIChpbnN0YWxsLWhleCAjOmtleSBuYW1lIGlucHV0cyBvdXRwdXRzICM6YWxs b3ctb3RoZXIta2V5cykKPiArwqAgIkluc3RhbGwgSGV4LiIKPiArwqAgKGxldCAoKGhleC1hcmNo aXZlLXBhdGggKHN0cmluZy1hcHBlbmQgKGdldGVudiAiTUlYX0FSQ0hJVkVTIikKPiAiL2hleCIp KSkKPiArwqDCoMKgIChta2Rpci1wIGhleC1hcmNoaXZlLXBhdGgpCj4gK8KgwqDCoCAoc3ltbGlu ayAoY2FyIChsaXN0LWRpcmVjdG9yaWVzIChlbGl4aXItbGliZGlyIChhc3NvYy1yZWYgaW5wdXRz Cj4gImVsaXhpciIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGFzc29jLXJlZiBpbnB1dHMKPiAiZWxpeGlyLWhleCIpKSkpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAoc3RyaW5nLWFwcGVuZCBoZXgtYXJjaGl2ZS1wYXRoICIvaGV4IikpKSkKV2h5 IGRvIHdlIG5lZWQgdGhpcz8gIEl0IGxvb2tzIGxpa2Ugd2UnbGwgYmUgcGFzdGluZyB0aGUgc2Ft ZSAobmF0aXZlPykKaW5wdXQgYWxsIG92ZXIgdGhlIHN0b3JlLCB3aGljaCBpbWhvIHdvdWxkIGJl IGJhZC4KCj4gKyhkZWZpbmUqIChpbnN0YWxsLWRlcGVuZGVuY2llcyAjOmtleQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmFt ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvdXRwdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0ZXN0cz8KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1aWxk LXBlci1lbnZpcm9ubWVudAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5hdGl2ZS1pbnB1dHMgJygpKQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWl4LWVu dmlyb25tZW50cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1vdGhlci1rZXlzCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnJlc3QgcmVzdCkK PiArwqAgIkluc3RhbGwgZGVwZW5kZW5jaWVzLiIKPiArwqAgKGRlZmluZSAoaW5zdGFsbC1saWIg bGliIGRpcikKPiArwqDCoMKgIChsZXQgKChsaWItbmFtZSAobGFzdCAoc3RyaW5nLXNwbGl0IGxp YiAjXC8pKSkpCj4gK8KgwqDCoMKgwqAgKHN5bWxpbmsgbGliIChzdHJpbmctYXBwZW5kIGRpciAi LyIgbGliLW5hbWUpKSkpCj4gKwo+ICvCoCAoZGVmaW5lIChpbnN0YWxsLWlucHV0IG1peC1lbnYg aW5wdXQpCj4gK8KgwqDCoCAobGV0ICgoZGlyIChtaXgtYnVpbGQtZGlyIG1peC1lbnYpKSkKPiAr wqDCoMKgwqDCoCAobWtkaXItcCBkaXIpCj4gK8KgwqDCoMKgwqAgKG1hdGNoIGlucHV0Cj4gK8Kg wqDCoMKgwqDCoMKgICgoXyAuIHBhdGgpCj4gK8KgwqDCoMKgwqDCoMKgwqAgKChjb21wb3NlCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgIChjdXQgZm9yLWVhY2ggKGN1dCBpbnN0YWxsLWxpYiA8PiBk aXIpIDw+KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoY3V0IGFwcGVuZC1tYXAgbGlzdC1kaXJl Y3RvcmllcyA8PikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGN1dCBmaWx0ZXIgZGlyZWN0b3J5 LWV4aXN0cz8gPD4pKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKGxpc3QgKGVsaXhpci1saWJkaXIg KGFzc29jLXJlZiBpbnB1dHMgImVsaXhpciIpIHBhdGgpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAoZXJsYW5nLWxpYmRpciBwYXRoKSkpKSkpKQpJIHRoaW5rIHlvdSdyZSBhdCB0 aGUgd3JvbmcgbGF5ZXIgb2YgYWJzdHJhY3Rpb24gaGVyZS4KCiAgKG1hdGNoIGlucHV0wqAKICAg ICgoXyAuIHByZWZpeCkKICAgICAoYmVnaW4gCiAgICAgIChpbnN0YWxsLXN1YmRpcmVjdG9yaWVz IChlbGl4aXItbGliZGlyIHBhdGgpKQogICAgICAoaW5zdGFsbC1zdWJkaXJlY3RvcmllcyAoZXJs YW5nLWxpYmRpciBwYXRoKSkpKSkKCndoZXJlIChpbnN0YWxsLXN1YmRpcmVjdG9yaWVzIFBBVEgp IGlzIGJhc2ljYWxseQogICh3aGVuIChkaXJlY3RvcnktZXhpc3RzPyBQQVRIKQogICAgKGZvci1l YWNoIChjdXRlIGluc3RhbGwtbGliIDw+IChtaXgtYnVpbGQtZGlyIG1peC1lbnYpKQogICAgICAg ICAgICAgIChsaXN0LWRpcmVjdG9yaWVzIFBBVEgpKSkKCj4gK8KgIChkZWZpbmUgKGluc3RhbGwt aW5wdXRzIG1peC1lbnYpCj4gK8KgwqDCoCAoZm9yLWVhY2ggKGN1dCBpbnN0YWxsLWlucHV0IG1p eC1lbnYgPD4pCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChhcHBlbmQgaW5wdXRzIG5h dGl2ZS1pbnB1dHMpKSkKSW5zdGFsbGluZyBuYXRpdmUgaW5wdXRzOiBwcm9iYWJseSBhIGJhZCBp ZGVhIChpbmhpYml0cyBjcm9zcy0KY29tcGlsYXRpb24pLgoKPiArwqAgKGZvci1lYWNoIGluc3Rh bGwtaW5wdXRzIG1peC1lbnZpcm9ubWVudHMpKQo+ICsKPiArKGRlZmluZSogKGJ1aWxkICM6a2V5 IG1peC1lbnZpcm9ubWVudHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAiQnVpbGRzIHRoZSBN aXggcHJvamVjdC4iCj4gK8KgIChmb3ItZWFjaCAobGFtYmRhIChtaXgtZW52KQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoc2V0ZW52ICJNSVhfRU5WIiBtaXgtZW52KQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoaW52b2tlICJtaXgiICJjb21waWxlIiAiLS1uby1kZXBzLWNo ZWNrIikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWl4LWVudmlyb25tZW50cykpCj4gKwo+ ICsoZGVmaW5lKiAoY2hlY2sgIzprZXkgKHRlc3RzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlzKQo+ ICvCoCAiVGVzdCB0aGUgTWl4IHByb2plY3QuIgo+ICvCoCAoaWYgdGVzdHM/Cj4gK8KgwqDCoMKg wqAgKGludm9rZSAibWl4IiAidGVzdCIgIi0tbm8tZGVwcy1jaGVjayIpCj4gK8KgwqDCoMKgwqAg KGZvcm1hdCAjdCAidGVzdHM/ID0gfmF+JSIgdGVzdHM/KSkpCj4gKwo+ICsoZGVmaW5lKiAocmVt b3ZlLW1peC1kaXJzIC4gXykKPiArwqAgIlJlbW92ZSBhbGwgLm1peC8gZGlyZWN0b3JpZXMuCj4g K1dlIGRvIG5vdCB3YW50IHRvIGNvcHkgdGhlbSB0byB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9y eS4iCj4gK8KgIChmb3ItZWFjaCBkZWxldGUtZmlsZS1yZWN1cnNpdmVseQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChmaW5kLWZpbGVzICIuIiAoZmlsZS1uYW1lLXByZWRpY2F0ZSAiXFwubWl4 JCIpCj4gIzpkaXJlY3Rvcmllcz8gI3QpKSkKPiArCj4gKyhkZWZpbmUgKGxpYnJhcnktbmFtZSBw a2ctbmFtZSkKPiArwqAgIlJldHVybiB0aGUgbGlicmFyeSBuYW1lIGRlZHVjZWQgZnJvbSBQS0ct TkFNRS4KPiArQSBwYWNrYWdlIHNob3VsZCBiZSBuYW1lZDogZWxpeGlyLWxpYi1uYW1lLVguWS5a IGZyb20gd2hpY2ggdGhlCj4gbGlicmFyeSBuYW1lCj4gK2xpYl9uYW1lIGlzIGRlZHVjZWQuIgo+ ICvCoCAoKGNvbXBvc2UKPiArwqDCoMKgIChjdXQgc3RyaW5nLWpvaW4gPD4gIl8iKQo+ICvCoMKg wqAgKGN1dCBkcm9wLXJpZ2h0IDw+IDEpCj4gK8KgwqDCoCAoY3V0IHN0cmluZy1zcGxpdCA8PiAj XC0pKQo+ICvCoMKgIChzdHJpcC1lbGl4aXItcHJlZml4IHBrZy1uYW1lKSkpCkNvbnNpZGVyIGRl ZmluaW5nIChwYWNrYWdlLW5hbWUtdmVyc2lvbi0+ZWxpeGlyLW5hbWUpIGFuYWxvZ291cyB0bwoo cGFja2FnZS1uYW1lLXZlcnNpb24tPmVybGFuZy1uYW1lKSBpbiByZWJhci1idWlsZC1zeXN0ZW0u ICBBbHNvIGFsbG93Cm92ZXJyaWRpbmcgaXQgdGhyb3VnaCBhIGJ1aWxkIHN5c3RlbSBhcmd1bWVu dC4gIFRoZSB0aGluZyB5b3UgY3VycmVudGx5CmhhdmUgd2lsbCBibG93IHVwIHdpdGggZ2l0LXZl cnNpb24uCgpDaGVlcnMK From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Nov 2023 13:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Liliana Marie Prikler Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170013971710220 (code B ref 66801); Thu, 16 Nov 2023 13:02:01 +0000 Received: (at 66801) by debbugs.gnu.org; 16 Nov 2023 13:01:57 +0000 Received: from localhost ([127.0.0.1]:54717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3c0K-0002ek-7H for submit@debbugs.gnu.org; Thu, 16 Nov 2023 08:01:57 -0500 Received: from mail-oi1-x22e.google.com ([2607:f8b0:4864:20::22e]:52465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3c0H-0002eS-GS for 66801@debbugs.gnu.org; Thu, 16 Nov 2023 08:01:54 -0500 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-3b566ee5f1dso440308b6e.0 for <66801@debbugs.gnu.org>; Thu, 16 Nov 2023 05:01:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700139708; x=1700744508; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=clWaBmZLWcwgjEAQJk4y/0v7JscOtdL0nSn+8vqfbt4=; b=vaFW2ylUASvbeEWtBtAfwXRf0clVPQXaT0lhMPrBZcjBXidyRy9lM6+8iB18E/qWdm MGnQOcz3ykfNxxBqlHppSStopzFki8laEwJQY7+uCOSyb6pYR3/BxOAVERqxcUp1m7Lz Vrex2Ivg6XRusj+lyZZxNb5jqmFxQV9wklqwJ3A9FLhm7TRmJkknLCB5keVTau9SttWb 88igWXh3zzztTN6pTodWJtuvhqA9g6PilqgpGRw3jGjwTE230NnF8XgkC2HTn7NhfUCA xD4Iri2neVjCfgh1Fz7MTn+ilCZ9/z1Inbvt5YKh/lqNEAIV9ybGinmxEVSaJ90VRIJH bFfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700139708; x=1700744508; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=clWaBmZLWcwgjEAQJk4y/0v7JscOtdL0nSn+8vqfbt4=; b=RSaCppKVS0nfpL9i00pwmqe+6Kjzz+Khdm5aQ67dNdrclDlbKHcu4Z6P13viiWeeyR zOW1pEG8nZG7uVbd2MPw9T7zfcag1wbg5NaMvOXS0izHmF9ydseIXqmrlVSvydhQmCXv 4k6i4+DKdsdV/3f5hFwMvWX0I2qq2MKQyBed6/jkmjp+B5cgXP66qLrpnUSxsA7uU5d0 vVvMuhDP51X+SWiF+9bPNj/fB7Icfq2NIRTHEJ4GsKCGYW69LicmwK4bpSKJCbRZjLdA 8mX7Mv3chwBK/uD/32/Lw1MaMlrIAr6O4KVPJctgTeLnCAlI7h3QGR9WVFJkXMXwR2Nm TkGQ== X-Gm-Message-State: AOJu0Yxc30QudsrPtNYmgVxBEyk42SpxWM3eQ3gAZqXKNd2Ol6KfQiQX oFl/RAmmjpDvK2CQQL1GNIg32ZnEPaD6YII2/CPCYLtAiGLePl7MRCY= X-Google-Smtp-Source: AGHT+IG+hKG4NwZnE+TBShd2euLNj8u7vGSXMH2zY2RglZj0B72TROiv7ayx2sfBiwKKrOfmOZNE3dH0fK85q320kIg= X-Received: by 2002:a05:6808:208:b0:398:5d57:3d08 with SMTP id l8-20020a056808020800b003985d573d08mr16158865oie.37.1700139707781; Thu, 16 Nov 2023 05:01:47 -0800 (PST) MIME-Version: 1.0 References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Thu, 16 Nov 2023 14:01:36 +0100 Message-ID: Content-Type: multipart/alternative; boundary="00000000000059e84d060a449fdf" X-Spam-Score: -0.0 (/) 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 (-) --00000000000059e84d060a449fdf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Do you mind if I paste the conversation using the following org format? * Comment ** lilyp > +(define (elixir-version elixir) > + "Return an X.Y string where X and Y are respectively the major and > minor version number of ELIXIR. > +Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" > + ((compose > + (cut string-join <> ".") > + (cut take <> 2) > + (cut string-split <> #\.) > + last) > + (string-split elixir #\-))) I don't think we need to be overly cute here. The let-binding version from python-build-system is less surprising to the uninitiated reader. See also strip-store-file-name and package-name->name+version. ** phf Maybe: #+begin_src scheme (define (elixir-version elixir) "Return an X.Y string where X and Y are respectively the major and minor version number of ELIXIR. Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" (receive (_ version) (package-name->name+version (strip-store-file-name elixir)) (let* ((components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor ".")))) #+end_src or: #+begin_src scheme (define (elixir-version elixir) "Return an X.Y string where X and Y are respectively the major and minor version number of ELIXIR. Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" (let* ((version (last (string-split elixir #\-))) (components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor "."))) #+end_src or: just inline the code as it is used just once. See [[id:76abe0e4-a0e2-4176-bdc0-9ff241e8ba42][next comment]]. * Comment :PROPERTIES: :ID: 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42 :END: ** lilyp > +(define (elixir-libdir elixir path) > + "Return the path where all libraries for a specified ELIXIR > version are installed." > + (string-append path "/lib/elixir/" (elixir-version elixir))) You probably want to swap path and elixir and perhaps also find a way to implicitly parameterize the latter so as to make it optional. ** phf Is this what you mean? #+begin_src scheme ;; The Elixir version is constant as soon as it is computable from the current ;; execution. It is a X.Y string where X and Y are respectively the major and ;; minor version number of the Elixir used in the build. (define elixir-version (make-parameter "X.Y")) (define* (elixir-libdir path #:optional (version (elixir-version))) "Return the path where all libraries for a specified ELIXIR version are installed." (string-append path "/lib/elixir/" version)) (define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) =E2=80=A6 (elixir-version (receive (_ version) (package-name->name+version (strip-store-file-name (assoc-ref inputs "elixir"))) (let* ((components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor "."))))) #+end_src * Comment ** lilyp > +(define* (configure #:key inputs mix-path mix-exs #:allow-other- > keys) > + "Set environment variables. > +See: > https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" > + (setenv "LC_ALL" "en_US.UTF-8") > + (setenv "MIX_HOME" (getcwd)) > + (setenv "MIX_ARCHIVES" "archives") > + (setenv "MIX_BUILD_ROOT" "_build") > + (setenv "MIX_DEPS_PATH" "deps") > + (setenv "MIX_PATH" (or mix-path "")) > + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") > "/bin/rebar3")) > + (setenv "MIX_EXS" mix-exs)) This does not appear to be a configure phase in the traditional sense of the wording. Instead, it should be a post 'set-paths' 'set-mix-env' imho. ** phf After ~install-locale~ since ~(setenv "LC_ALL" "en_US.UTF-8")~ is called in this phase. #+begin_src scheme (define %standard-phases (modify-phases gnu:%standard-phases =E2=80=A6 (delete 'configure) (add-after 'install-locale 'set-mix-env set-mix-env) (replace 'unpack unpack) =E2=80=A6)) #+end_src * Comment ** lilyp > +(define* (install-hex #:key name inputs outputs #:allow-other-keys) > + "Install Hex." > + (let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES") > "/hex"))) > + (mkdir-p hex-archive-path) > + (symlink (car (list-directories (elixir-libdir (assoc-ref inputs > "elixir") > + (assoc-ref inputs > "elixir-hex")))) > + (string-append hex-archive-path "/hex")))) Why do we need this? It looks like we'll be pasting the same (native?) input all over the store, which imho would be bad. ** phf Without ~Hex~, you get this error: #+begin_example starting phase `build' Could not find Hex, which is needed to build dependency :ex_doc Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] #+end_example This message is called from ~handle_rebar_not_found~ in ~lib/mix/lib/mix/tasks/deps.compile.ex~ ; which is called from ~rebar_cmd~ because a ~manager~ (~Hex~) could not be found. Hex must be present =3D> install-he= x must be executed. I thought that this should not be a problem since Hex is needed at build time, and just symlinked. Maybe should it be copied instead? * Comment ** lilyp > + (define (install-input mix-env input) > + (let ((dir (mix-build-dir mix-env))) > + (mkdir-p dir) > + (match input > + ((_ . path) > + ((compose > + (cut for-each (cut install-lib <> dir) <>) > + (cut append-map list-directories <>) > + (cut filter directory-exists? <>)) > + (list (elixir-libdir (assoc-ref inputs "elixir") path) > + (erlang-libdir path))))))) I think you're at the wrong layer of abstraction here. (match input ((_ . prefix) (begin (install-subdirectories (elixir-libdir path)) (install-subdirectories (erlang-libdir path))))) where (install-subdirectories PATH) is basically (when (directory-exists? PATH) (for-each (cute install-lib <> (mix-build-dir mix-env)) (list-directories PATH))) ** phf Does this work? #+begin_src scheme (define (install-lib lib dir) (let ((lib-name (last (string-split lib #\/)))) (symlink lib (string-append dir "/" lib-name)))) (define (install-subdirectories mix-env path) (let ((build-dir (mix-build-dir mix-env))) (mkdir-p build-dir) (when (directory-exists? path) (for-each (cute install-lib <> build-dir) (list-directories path))))) (define (install-input mix-env input) (match input ((_ . path) (begin (install-subdirectories mix-env (elixir-libdir path)) (install-subdirectories mix-env (erlang-libdir path)))))) #+end_src * Comment ** lilyp > + (define (install-inputs mix-env) > + (for-each (cut install-input mix-env <>) > + (append inputs native-inputs))) Installing native inputs: probably a bad idea (inhibits cross- compilation). ** phf A slight variant that does not link things when it should not: #+begin_src scheme (define (install-inputs mix-env) (for-each (cut install-input mix-env <>) (cond ((string=3D? mix-env "prod") inputs) ((member mix-env '("shared" "test")) (append inputs native-inputs)) (else (error (format #f "Unexpected Mix env: ~a~%" mix-env)))))) #+end_src I did not consider cross-compilation yet. The following might be wrong be here we go. I far as I understand, Erlang applications are largely platform independent. Once the code is compiled to BEAM bytecode, it can run on any platform that has the Erlang VM installed. If an Erlang library uses native extensions, then cross-compilation might be required. For a build to succee= d in a given environment (one of "prod", "test", "shared"), the BEAM files of all dependencies should be present on the build machine. So, all dependencies must be installed * Comment ** lilyp > +(define (library-name pkg-name) > + "Return the library name deduced from PKG-NAME. > +A package should be named: elixir-lib-name-X.Y.Z from which the > library name > +lib_name is deduced." > + ((compose > + (cut string-join <> "_") > + (cut drop-right <> 1) > + (cut string-split <> #\-)) > + (strip-elixir-prefix pkg-name))) Consider defining (package-name-version->elixir-name) analogous to (package-name-version->erlang-name) in rebar-build-system. Also allow overriding it through a build system argument. The thing you currently have will blow up with git-version. ** phf Faily close to the ~rebar-build-system~ version. #+begin_src scheme (define (package-name-version->elixir-name name+ver) "Convert the Guix package NAME-VER to the corresponding Elixir name-version format. Essentially drop the prefix used in Guix and replace dashes by underscores." (let* ((name- (package-name->name+version name+ver))) (string-join (string-split (if (string-prefix? "elixir-" name-) (string-drop name- (string-length "elixir-")) name-) #\-) "_"))) #+end_src --00000000000059e84d060a449fdf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Do you mind if I paste the conversation using the followin= g org format?

* Comment
** lilyp
> +(define (el= ixir-version elixir)
> + =C2=A0"Return an X.Y string where X and= Y are respectively the major and
> minor version number of ELIXIR.> +Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14"> + =C2=A0((compose
> + =C2=A0 =C2=A0(cut string-join <> &q= uot;.")
> + =C2=A0 =C2=A0(cut take <> 2)
> + =C2=A0 = =C2=A0(cut string-split <> #\.)
> + =C2=A0 =C2=A0last)
> = + =C2=A0 (string-split elixir #\-)))

I don't think we need to be= overly cute here.=C2=A0 The let-binding version
from python-build-syste= m is less surprising to the uninitiated reader.

See also strip-store= -file-name and package-name->name+version.


** phf
Maybe:#+begin_src scheme
(define (elixir-version elixir)
=C2=A0 "Ret= urn an X.Y string where X and Y are respectively the major and minor versio= n number of ELIXIR.
Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86= =92 1.14"
=C2=A0 (receive (_ version) (package-name->name+versio= n (strip-store-file-name elixir))
=C2=A0 =C2=A0 (let* ((components =C2= =A0(string-split version #\.))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= (major+minor (take components 2)))
=C2=A0 =C2=A0 =C2=A0 (string-join maj= or+minor "."))))
#+end_src

or:
#+begin_src scheme(define (elixir-version elixir)
=C2=A0 "Return an X.Y string where= X and Y are respectively the major and minor version number of ELIXIR.
= Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14"
=C2=A0 = (let* ((version =C2=A0 =C2=A0 (last (string-split elixir #\-)))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(components =C2=A0(string-split version #\.))=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(major+minor (take components 2)))
= =C2=A0 =C2=A0 (string-join major+minor ".")))
#+end_src
or: just inline the code as it is used just once. See [[id:76abe0e4-a0e2-4= 176-bdc0-9ff241e8ba42][next comment]].


* Comment
:PROPERTIES:=
:ID: =C2=A0 =C2=A0 =C2=A0 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42
:END:=

** lilyp
> +(define (elixir-libdir elixir path)
> + =C2= =A0"Return the path where all libraries for a specified ELIXIR
>= version are installed."
> + =C2=A0(string-append path "/li= b/elixir/" (elixir-version elixir)))

You probably want to swap = path and elixir and perhaps also find a way
to implicitly parameterize t= he latter so as to make it optional.


** phf
Is this what you = mean?
#+begin_src scheme
;; The Elixir version is constant as soon as= it is computable from the current
;; execution. It is a X.Y string wher= e X and Y are respectively the major and
;; minor version number of the = Elixir used in the build.
(define elixir-version (make-parameter "X= .Y"))

(define* (elixir-libdir path #:optional (version (elixir-= version)))
=C2=A0 "Return the path where all libraries for a specif= ied ELIXIR version are installed."
=C2=A0 (string-append path "= ;/lib/elixir/" version))

(define* (configure #:key inputs mix-p= ath mix-exs #:allow-other-keys)
=C2=A0 =E2=80=A6
=C2=A0 (elixir-versi= on
=C2=A0 =C2=A0(receive (_ version) (package-name->name+version (str= ip-store-file-name (assoc-ref inputs "elixir")))
=C2=A0 =C2=A0= =C2=A0(let* ((components =C2=A0(string-split version #\.))
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (major+minor (take components 2)))
=C2= =A0 =C2=A0 =C2=A0 =C2=A0(string-join major+minor ".")))))
#+en= d_src


* Comment
** lilyp
> +(define* (configure #:key i= nputs mix-path mix-exs #:allow-other-
> keys)
> + =C2=A0"S= et environment variables.
> +See:
> https://hexdocs.pm/mix= /1.15.7/Mix.html#module-environment-variables"
> + =C2=A0(se= tenv "LC_ALL" "en_US.UTF-8")
> + =C2=A0(setenv &q= uot;MIX_HOME" (getcwd))
> + =C2=A0(setenv "MIX_ARCHIVES&quo= t; "archives")
> + =C2=A0(setenv "MIX_BUILD_ROOT"= "_build")
> + =C2=A0(setenv "MIX_DEPS_PATH" &quo= t;deps")
> + =C2=A0(setenv "MIX_PATH" (or mix-path &qu= ot;"))
> + =C2=A0(setenv "MIX_REBAR3" (string-append (= assoc-ref inputs "rebar3")
> "/bin/rebar3"))
&= gt; + =C2=A0(setenv "MIX_EXS" mix-exs))

This does not appe= ar to be a configure phase in the traditional sense
of the wording.=C2= =A0 Instead, it should be a post 'set-paths' 'set-mix-env'<= br>imho.


** phf
After ~install-locale~ since ~(setenv "L= C_ALL" "en_US.UTF-8")~ is called in this
phase.
#+begi= n_src scheme
(define %standard-phases
=C2=A0 (modify-phases gnu:%stan= dard-phases
=C2=A0 =C2=A0 =E2=80=A6
=C2=A0 =C2=A0 (delete 'config= ure)
=C2=A0 =C2=A0 (add-after 'install-locale 'set-mix-env set-m= ix-env)
=C2=A0 =C2=A0 (replace 'unpack unpack)
=C2=A0 =C2=A0 =E2= =80=A6))
#+end_src


* Comment
** lilyp
> +(define* (i= nstall-hex #:key name inputs outputs #:allow-other-keys)
> + =C2=A0&q= uot;Install Hex."
> + =C2=A0(let ((hex-archive-path (string-appe= nd (getenv "MIX_ARCHIVES")
> "/hex")))
> + = =C2=A0 =C2=A0(mkdir-p hex-archive-path)
> + =C2=A0 =C2=A0(symlink (ca= r (list-directories (elixir-libdir (assoc-ref inputs
> "elixir&q= uot;)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (assoc-ref inputs
> "e= lixir-hex"))))
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (st= ring-append hex-archive-path "/hex"))))

Why do we need thi= s?=C2=A0 It looks like we'll be pasting the same (native?)
input all= over the store, which imho would be bad.


** phf
Without ~Hex= ~, you get this error:
#+begin_example
starting phase `build'
= Could not find Hex, which is needed to build dependency :ex_doc
Shall I = install Hex? (if running non-interactively, use "mix local.hex --force= ") [Yn]
#+end_example
This message is called from ~handle_rebar_= not_found~ in
~lib/mix/lib/mix/tasks/deps.compile.ex~ ; which is called = from ~rebar_cmd~ because
a ~manager~ (~Hex~) could not be found. Hex mus= t be present =3D> install-hex must be
executed.

I thought that= this should not be a problem since Hex is needed at build time,
and jus= t symlinked. Maybe should it be copied instead?


* Comment
** = lilyp
> + =C2=A0(define (install-input mix-env input)
> + =C2= =A0 =C2=A0(let ((dir (mix-build-dir mix-env)))
> + =C2=A0 =C2=A0 =C2= =A0(mkdir-p dir)
> + =C2=A0 =C2=A0 =C2=A0(match input
> + =C2= =A0 =C2=A0 =C2=A0 =C2=A0((_ . path)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 (= (compose
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cut for-each (cut in= stall-lib <> dir) <>)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (cut append-map list-directories <>)
> + =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 (cut filter directory-exists? <>))
> + =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0(list (elixir-libdir (assoc-ref inputs "el= ixir") path)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(erlang-libdir path)))))))

I think you're at the wrong= layer of abstraction here.

=C2=A0 (match input
=C2=A0 =C2=A0 ((_= . prefix)
=C2=A0 =C2=A0 =C2=A0(begin
=C2=A0 =C2=A0 =C2=A0 (install-s= ubdirectories (elixir-libdir path))
=C2=A0 =C2=A0 =C2=A0 (install-subdir= ectories (erlang-libdir path)))))

where (install-subdirectories PATH= ) is basically
=C2=A0 (when (directory-exists? PATH)
=C2=A0 =C2=A0 (f= or-each (cute install-lib <> (mix-build-dir mix-env))
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (list-directories PATH)))

** phf
Does this work?
#+begin_src scheme
(define (install-lib li= b dir)
=C2=A0 =C2=A0 (let ((lib-name (last (string-split lib #\/))))
= =C2=A0 =C2=A0 =C2=A0 (symlink lib (string-append dir "/" lib-name= ))))

=C2=A0 (define (install-subdirectories mix-env path)
=C2=A0 = =C2=A0 (let ((build-dir (mix-build-dir mix-env)))
=C2=A0 =C2=A0 =C2=A0 (= mkdir-p build-dir)
=C2=A0 =C2=A0 =C2=A0 (when (directory-exists? path)=C2=A0 =C2=A0 =C2=A0 =C2=A0 (for-each (cute install-lib <> build-di= r)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (list-= directories path)))))

=C2=A0 (define (install-input mix-env input)=C2=A0 =C2=A0 (match input
=C2=A0 =C2=A0 =C2=A0 ((_ . path)
=C2=A0 = =C2=A0 =C2=A0 =C2=A0(begin
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-su= bdirectories mix-env (elixir-libdir path))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(install-subdirectories mix-env (erlang-libdir path))))))
#+end_sr= c


* Comment
** lilyp
> + =C2=A0(define (install-inputs = mix-env)
> + =C2=A0 =C2=A0(for-each (cut install-input mix-env <&g= t;)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(append input= s native-inputs)))

Installing native inputs: probably a bad idea (in= hibits cross-
compilation).


** phf
A slight variant that d= oes not link things when it should not:
#+begin_src scheme
(define (i= nstall-inputs mix-env)
=C2=A0 =C2=A0 (for-each (cut install-input mix-en= v <>)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cond
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((string=3D? mix-en= v "prod") inputs)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 ((member mix-env '("shared" "test")) = (append inputs native-inputs))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 (else (error (format #f "Unexpected Mix env: ~a~%"= mix-env))))))
#+end_src

I did not consider cross-compilation yet= . The following might be wrong be here
we go. I far as I understand, Erl= ang applications are largely platform
independent. Once the code is comp= iled to BEAM bytecode, it can run on any
platform that has the Erlang VM= installed. If an Erlang library uses native
extensions, then cross-comp= ilation might be required. For a build to succeed
in a given environment= (one of "prod", "test", "shared"), the BEAM = files of
all dependencies should be present on the build machine. So, al= l dependencies
must be installed


* Comment
** lilyp
>= ; +(define (library-name pkg-name)
> + =C2=A0"Return the library= name deduced from PKG-NAME.
> +A package should be named: elixir-lib= -name-X.Y.Z from which the
> library name
> +lib_name is deduce= d."
> + =C2=A0((compose
> + =C2=A0 =C2=A0(cut string-join = <> "_")
> + =C2=A0 =C2=A0(cut drop-right <> 1)<= br>> + =C2=A0 =C2=A0(cut string-split <> #\-))
> + =C2=A0 (s= trip-elixir-prefix pkg-name)))

Consider defining (package-name-versi= on->elixir-name) analogous to
(package-name-version->erlang-name) = in rebar-build-system.=C2=A0 Also allow
overriding it through a build sy= stem argument.=C2=A0 The thing you currently
have will blow up with git-= version.


** phf
Faily close to the ~rebar-build-system~ versi= on.
#+begin_src scheme
(define (package-name-version->elixir-name = name+ver)
=C2=A0 "Convert the Guix package NAME-VER to the correspo= nding Elixir name-version
format.=C2=A0 Essentially drop the prefix used= in Guix and replace dashes by
underscores."
=C2=A0 (let* ((name= - (package-name->name+version name+ver)))
=C2=A0 =C2=A0 (string-join<= br>=C2=A0 =C2=A0 =C2=A0(string-split
=C2=A0 =C2=A0 =C2=A0 (if (string-pr= efix? "elixir-" name-)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (str= ing-drop name- (string-length "elixir-"))
=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 name-)
=C2=A0 =C2=A0 =C2=A0 #\-)
=C2=A0 =C2=A0 =C2=A0&= quot;_")))
#+end_src
--00000000000059e84d060a449fdf-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Nov 2023 15:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170014752428023 (code B ref 66801); Thu, 16 Nov 2023 15:13:01 +0000 Received: (at 66801) by debbugs.gnu.org; 16 Nov 2023 15:12:04 +0000 Received: from localhost ([127.0.0.1]:57410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3e2F-0007Hu-3T for submit@debbugs.gnu.org; Thu, 16 Nov 2023 10:12:03 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:54446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3e2C-0007HO-6g for 66801@debbugs.gnu.org; Thu, 16 Nov 2023 10:12:01 -0500 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-408425c7c10so7451985e9.0 for <66801@debbugs.gnu.org>; Thu, 16 Nov 2023 07:12:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700147514; x=1700752314; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=6R+KW8AMtdUppRNo/ha1SEIdFXsJ1U2NOdlNYhRz+uw=; b=Hcr4Du7QbIHjpy5gcWxuVz6/JlCjjTBgnoxWqypf0ufiuL/FlHcSS8JR9e886gowX3 xyaqufEpxZY60Buxdo9H1bWby7e/el1xJUBOXrtMF5DX2eAqq5ZD7A5cpZDHW7CkhEW4 jJXPKXatdkkg4PZsc2mA03GTHaLPlk6FmzS4WH1IYhBx6m4/OkxiS/t2eIUqmTnPXwXN 6DyV/NwWETUqXtcKwXQSRNyEQY5PW+UkWkivr58CnoSWUdT22wpuDI22smFP746W46TS dh4/K65sk3dyLNWxIDuM2dgjS7w/T7nx/9332fv6NCgbKjJlvQ3P3cwvYS0shdk5RqMP xMSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700147514; x=1700752314; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6R+KW8AMtdUppRNo/ha1SEIdFXsJ1U2NOdlNYhRz+uw=; b=XL/J51recFd2ZWJqEP1WtyDthXWzka4luDCCVKqfC4dcTKgm0XISw8JvxTv87EHP+T 8el34HXCSnEHwzHLBL8+H4iB/wPIHohOUDErBPePO7kVvs5MXazIakzgqmt9/gZ2vUIZ 7o+By7Wx08HWF8tb8b/IDeLVspF4t4nMfDphLUtk85Wr75xa4AM1rgaKMDnwvyVcNrX9 IpedtFppz0/PP8vseS4Eu59tewBpkECA1ZNI0kvKFB77cDBxE6kVJEGe/XNIDNNPI4Tm 5htuX/CyczT/K2+KIxQI0Al3FmOdIqqRzU0I7Odcac8+OBdAxGm8IxK1bhaP3AIL4xf1 QPWQ== X-Gm-Message-State: AOJu0YyQsor+pZ+ueIV3RcOZ4YAJE37isnv3M1M7dq4xamNNAqXIo/Iz r4HUEhrYyrmRlIgvrgZU9zM= X-Google-Smtp-Source: AGHT+IGmHtSr2Eb8XRYZTFOadQmon8FM55SwHqUcj6CqrsXSbPH3l2u+Pwgd7y433YSX7lfpssYWMA== X-Received: by 2002:a05:600c:3d13:b0:3fe:ba7:f200 with SMTP id bh19-20020a05600c3d1300b003fe0ba7f200mr12767716wmb.20.1700147513322; Thu, 16 Nov 2023 07:11:53 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id n13-20020a05600c500d00b004083996dad8sm4025508wmr.18.2023.11.16.07.11.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Nov 2023 07:11:52 -0800 (PST) Message-ID: <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> From: Liliana Marie Prikler Date: Thu, 16 Nov 2023 16:11:50 +0100 In-Reply-To: References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Donnerstag, dem 16.11.2023 um 14:01 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Do you mind if I paste the conversation using the following org > format? I do mind you pasting it in HTML format :P > * Comment > ** lilyp > > +(define (elixir-version elixir) > > + =C2=A0"Return an X.Y string where X and Y are respectively the major > > and > > minor version number of ELIXIR. > > +Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" > > + =C2=A0((compose > > + =C2=A0 =C2=A0(cut string-join <> ".") > > + =C2=A0 =C2=A0(cut take <> 2) > > + =C2=A0 =C2=A0(cut string-split <> #\.) > > + =C2=A0 =C2=A0last) > > + =C2=A0 (string-split elixir #\-))) >=20 > I don't think we need to be overly cute here.=C2=A0 The let-binding > version from python-build-system is less surprising to the > uninitiated reader. >=20 > See also strip-store-file-name and package-name->name+version. >=20 >=20 > ** phf > Maybe: > #+begin_src scheme > (define (elixir-version elixir) > =C2=A0 "Return an X.Y string where X and Y are respectively the major and > minor version number of ELIXIR. > Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" > =C2=A0 (receive (_ version) (package-name->name+version (strip-store-file= - > name elixir)) > =C2=A0 =C2=A0 (let* ((components =C2=A0(string-split version #\.)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(major+minor (take components 2)= )) > =C2=A0 =C2=A0 =C2=A0 (string-join major+minor ".")))) > #+end_src >=20 > or: > #+begin_src scheme > (define (elixir-version elixir) > =C2=A0 "Return an X.Y string where X and Y are respectively the major and > minor version number of ELIXIR. > Example: /gnu/store/=E2=80=A6-elixir-1.14.0 =E2=86=92 1.14" > =C2=A0 (let* ((version =C2=A0 =C2=A0 (last (string-split elixir #\-))) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(components =C2=A0(string-split version= #\.)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(major+minor (take components 2))) > =C2=A0 =C2=A0 (string-join major+minor "."))) > #+end_src >=20 > or: just inline the code as it is used just once. See [[id:76abe0e4- > a0e2-4176-bdc0-9ff241e8ba42][next comment]]. Note that you can use SRFI-71 let and let* to bind multiple values at once. So you can write the first one without receive. >=20 > * Comment > :PROPERTIES: > :ID: =C2=A0 =C2=A0 =C2=A0 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42 > :END: >=20 > ** lilyp > > +(define (elixir-libdir elixir path) > > + =C2=A0"Return the path where all libraries for a specified ELIXIR > > version are installed." > > + =C2=A0(string-append path "/lib/elixir/" (elixir-version elixir))) >=20 > You probably want to swap path and elixir and perhaps also find a way > to implicitly parameterize the latter so as to make it optional. >=20 >=20 > ** phf > Is this what you mean? > #+begin_src scheme > ;; The Elixir version is constant as soon as it is computable from > the current > ;; execution. It is a X.Y string where X and Y are respectively the > major and > ;; minor version number of the Elixir used in the build. > (define elixir-version (make-parameter "X.Y")) >=20 > (define* (elixir-libdir path #:optional (version (elixir-version))) > =C2=A0 "Return the path where all libraries for a specified ELIXIR versio= n > are installed." > =C2=A0 (string-append path "/lib/elixir/" version)) >=20 > (define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) > =C2=A0 =E2=80=A6 > =C2=A0 (elixir-version > =C2=A0 =C2=A0(receive (_ version) (package-name->name+version (strip-stor= e- > file-name (assoc-ref inputs "elixir"))) > =C2=A0 =C2=A0 =C2=A0(let* ((components =C2=A0(string-split version #\.)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (major+minor (take components 2= ))) > =C2=A0 =C2=A0 =C2=A0 =C2=A0(string-join major+minor "."))))) > #+end_src I'd use %elixir-version and perhaps make it a fluent rather than a parameter (not quite sure whether parameters get reset when a function goes out of scope). > * Comment > ** lilyp > > +(define* (configure #:key inputs mix-path mix-exs #:allow-other- > > keys) > > + =C2=A0"Set environment variables. > > +See: > > https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables > > " > > + =C2=A0(setenv "LC_ALL" "en_US.UTF-8") > > + =C2=A0(setenv "MIX_HOME" (getcwd)) > > + =C2=A0(setenv "MIX_ARCHIVES" "archives") > > + =C2=A0(setenv "MIX_BUILD_ROOT" "_build") > > + =C2=A0(setenv "MIX_DEPS_PATH" "deps") > > + =C2=A0(setenv "MIX_PATH" (or mix-path "")) > > + =C2=A0(setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") > > "/bin/rebar3")) > > + =C2=A0(setenv "MIX_EXS" mix-exs)) >=20 > This does not appear to be a configure phase in the traditional sense > of the wording.=C2=A0 Instead, it should be a post 'set-paths' 'set-mix- > env' imho. >=20 >=20 > ** phf > After ~install-locale~ since ~(setenv "LC_ALL" "en_US.UTF-8")~ is > called in this phase. > #+begin_src scheme > (define %standard-phases > =C2=A0 (modify-phases gnu:%standard-phases > =C2=A0 =C2=A0 =E2=80=A6 > =C2=A0 =C2=A0 (delete 'configure) > =C2=A0 =C2=A0 (add-after 'install-locale 'set-mix-env set-mix-env) > =C2=A0 =C2=A0 (replace 'unpack unpack) > =C2=A0 =C2=A0 =E2=80=A6)) > #+end_src Good point: you shouldn't be setting LC_ALL anyway, that's already done by install-locale. > * Comment > ** lilyp > > +(define* (install-hex #:key name inputs outputs #:allow-other- > > keys) > > + =C2=A0"Install Hex." > > + =C2=A0(let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES") > > "/hex"))) > > + =C2=A0 =C2=A0(mkdir-p hex-archive-path) > > + =C2=A0 =C2=A0(symlink (car (list-directories (elixir-libdir (assoc-re= f > > inputs > > "elixir") > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (assoc-ref > > inputs > > "elixir-hex")))) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (string-append hex-archive-= path "/hex")))) >=20 > Why do we need this?=C2=A0 It looks like we'll be pasting the same > (native?) input all over the store, which imho would be bad. >=20 >=20 > ** phf > Without ~Hex~, you get this error: > #+begin_example > starting phase `build' > Could not find Hex, which is needed to build dependency :ex_doc > Shall I install Hex? (if running non-interactively, use "mix > local.hex --force") [Yn] > #+end_example > This message is called from ~handle_rebar_not_found~ in > ~lib/mix/lib/mix/tasks/deps.compile.ex~ ; which is called from > ~rebar_cmd~ because > a ~manager~ (~Hex~) could not be found. Hex must be present =3D> > install-hex must be executed. >=20 > I thought that this should not be a problem since Hex is needed at > build time, and just symlinked. Maybe should it be copied instead? Is hex not an (implicit) native-input in your build system? Anything that keeps it from functioning is a packaging bug imho. > * Comment > ** lilyp > > + =C2=A0(define (install-input mix-env input) > > + =C2=A0 =C2=A0(let ((dir (mix-build-dir mix-env))) > > + =C2=A0 =C2=A0 =C2=A0(mkdir-p dir) > > + =C2=A0 =C2=A0 =C2=A0(match input > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0((_ . path) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((compose > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cut for-each (cut install-lib <> = dir) <>) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cut append-map list-directories <= >) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cut filter directory-exists? <>)) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(list (elixir-libdir (assoc-ref inp= uts "elixir") path) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(erlang-libdir= path))))))) >=20 > I think you're at the wrong layer of abstraction here. >=20 > =C2=A0 (match input > =C2=A0 =C2=A0 ((_ . prefix) > =C2=A0 =C2=A0 =C2=A0(begin > =C2=A0 =C2=A0 =C2=A0 (install-subdirectories (elixir-libdir path)) > =C2=A0 =C2=A0 =C2=A0 (install-subdirectories (erlang-libdir path))))) >=20 > where (install-subdirectories PATH) is basically > =C2=A0 (when (directory-exists? PATH) > =C2=A0 =C2=A0 (for-each (cute install-lib <> (mix-build-dir mix-env)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (list-directories PATH))= ) >=20 >=20 > ** phf > Does this work? > #+begin_src scheme > (define (install-lib lib dir) > =C2=A0 =C2=A0 (let ((lib-name (last (string-split lib #\/)))) > =C2=A0 =C2=A0 =C2=A0 (symlink lib (string-append dir "/" lib-name)))) >=20 > =C2=A0 (define (install-subdirectories mix-env path) > =C2=A0 =C2=A0 (let ((build-dir (mix-build-dir mix-env))) > =C2=A0 =C2=A0 =C2=A0 (mkdir-p build-dir) > =C2=A0 =C2=A0 =C2=A0 (when (directory-exists? path) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 (for-each (cute install-lib <> build-dir) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (list-dire= ctories path))))) Maybe move the mkdir-p into the when or at the start of install-lib. > =C2=A0 (define (install-input mix-env input) > =C2=A0 =C2=A0 (match input > =C2=A0 =C2=A0 =C2=A0 ((_ . path) > =C2=A0 =C2=A0 =C2=A0 =C2=A0(begin > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-subdirectories mix-env (elixir= -libdir path)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(install-subdirectories mix-env (erlang= -libdir path)))))) > #+end_src >=20 >=20 > * Comment > ** lilyp > > + =C2=A0(define (install-inputs mix-env) > > + =C2=A0 =C2=A0(for-each (cut install-input mix-env <>) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(append inputs native= -inputs))) >=20 > Installing native inputs: probably a bad idea (inhibits cross- > compilation). >=20 >=20 > ** phf > A slight variant that does not link things when it should not: > #+begin_src scheme > (define (install-inputs mix-env) > =C2=A0 =C2=A0 (for-each (cut install-input mix-env <>) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cond > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((string=3D? mix-= env "prod") inputs) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((member mix-env = '("shared" "test")) (append inputs > native-inputs)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (else (error (for= mat #f "Unexpected Mix env: ~a~%" > mix-env)))))) > #+end_src >=20 > I did not consider cross-compilation yet. The following might be > wrong be here we go. I far as I understand, Erlang applications are > largely platform independent. Once the code is compiled to BEAM > bytecode, it can run on any platform that has the Erlang VM > installed. If an Erlang library uses native extensions, then cross- > compilation might be required. For a build to succeed > in a given environment (one of "prod", "test", "shared"), the BEAM > files of all dependencies should be present on the build machine. So, > all dependencies must be installed Not an expert on elixir, but that sounds borked. You might get around this with propagated-inputs maybe? That being said, native-inputs shouldn't blow up a build if missing. > * Comment > ** lilyp > > +(define (library-name pkg-name) > > + =C2=A0"Return the library name deduced from PKG-NAME. > > +A package should be named: elixir-lib-name-X.Y.Z from which the > > library name > > +lib_name is deduced." > > + =C2=A0((compose > > + =C2=A0 =C2=A0(cut string-join <> "_") > > + =C2=A0 =C2=A0(cut drop-right <> 1) > > + =C2=A0 =C2=A0(cut string-split <> #\-)) > > + =C2=A0 (strip-elixir-prefix pkg-name))) >=20 > Consider defining (package-name-version->elixir-name) analogous to > (package-name-version->erlang-name) in rebar-build-system.=C2=A0 Also > allow overriding it through a build system argument.=C2=A0 The thing you > currently have will blow up with git-version. >=20 >=20 > ** phf > Faily close to the ~rebar-build-system~ version. > #+begin_src scheme > (define (package-name-version->elixir-name name+ver) > =C2=A0 "Convert the Guix package NAME-VER to the corresponding Elixir > name-version format.=C2=A0 Essentially drop the prefix used in Guix and > replace dashes by underscores." > =C2=A0 (let* ((name- (package-name->name+version name+ver))) > =C2=A0 =C2=A0 (string-join > =C2=A0 =C2=A0 =C2=A0(string-split > =C2=A0 =C2=A0 =C2=A0 (if (string-prefix? "elixir-" name-) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (string-drop name- (string-length "eli= xir-")) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name-) > =C2=A0 =C2=A0 =C2=A0 #\-) > =C2=A0 =C2=A0 =C2=A0"_"))) > #+end_src Looks okay. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Nov 2023 18:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Liliana Marie Prikler Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17001583446564 (code B ref 66801); Thu, 16 Nov 2023 18:13:02 +0000 Received: (at 66801) by debbugs.gnu.org; 16 Nov 2023 18:12:24 +0000 Received: from localhost ([127.0.0.1]:44472 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3gql-0001ho-9D for submit@debbugs.gnu.org; Thu, 16 Nov 2023 13:12:23 -0500 Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]:57443) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3gqi-0001hX-S5 for 66801@debbugs.gnu.org; Thu, 16 Nov 2023 13:12:21 -0500 Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-d852b28ec3bso1137480276.2 for <66801@debbugs.gnu.org>; Thu, 16 Nov 2023 10:12:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700158335; x=1700763135; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=latFGSEXK/UMkxwgkEsNnhns4EKLhmr2m1YHMW17g6I=; b=nYS6I0wWUI/4MQ/U7BYraFMcbhtt1D2/2MeIgqfHctfC2n8CNGLL9PD/L1VpeexDTO Imeq6PNsCreyfqrsEHRlrBym/RgtzhuaIfikWJkZ0pMfL9uP4h9YYgECVWBP6m35W8T3 kXUa88+4GPRrt09jKS5arkGzDAFerhzxRh8AYkvCr7EuhBxJl3r+dLdXgXrangS6hJHr NKmDl4h2FOanr654L4bBloQ3h6IAO9pSYhBTGCVQE91jGfOUwbRQJX57s1BBpS2nt/Io ApjEPG8/HLCMLh1HFzQcuw0hlEcqstrWuLdrhqrlTG/V2zO1Q+2xkE1Z2GkFnCh39gKq y/og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700158335; x=1700763135; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=latFGSEXK/UMkxwgkEsNnhns4EKLhmr2m1YHMW17g6I=; b=c5y2egP22plMXnHnXW7YkvZ8ng8/8H1zC0jIsC5mcBkGWB9gLpvZfuhzd/CWZ9LExs uQ4QTqbunR9avj30N+9muT4BXr+26/XtB8w9MQ8PgFSQ3/q3C25H7oDOf708B+4eqJfr PEx7yUVgXaU200+B2reMu1VGp7NzJZ/uEc9UOi13TwlY7SBPFRC9BfxI6wVyyNYDwHkr gehNjGf6BGujhiS0Oo2tL2jDn4IgQFTOtVP1cYu1N9BxXGIJstZz/jSaYY3uY93g/pR0 LwVVA5VVLj1QuQlNn9cmNWpPEL9d2UG4B3xY7Gmiz/5m9qRT7ytn6mAPmjhmNdanv4Nk 7B/Q== X-Gm-Message-State: AOJu0YzwPvGVYRIcnO22HOQ58n3naKpjkO/+wh3Gfsg/eL7s+EyP4Crt y4VOi3NUOJLYrV7MfdO/riaSavuXtopBTtGH2oZEMzci83cmBSlJMss= X-Google-Smtp-Source: AGHT+IHtVaLV5B1vX68+yQMEcapTfGP8H/9LX8GKjTE/V6A7X0Gk2vqmCgYYq4axWFW5Wx+4NW6KbT2SkHdeZz+/IJs= X-Received: by 2002:a25:1ed5:0:b0:dae:e7d8:26f0 with SMTP id e204-20020a251ed5000000b00daee7d826f0mr14933652ybe.54.1700158334831; Thu, 16 Nov 2023 10:12:14 -0800 (PST) MIME-Version: 1.0 References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> In-Reply-To: <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Thu, 16 Nov 2023 19:12:04 +0100 Message-ID: Content-Type: multipart/alternative; boundary="0000000000009c2372060a48f586" X-Spam-Score: -0.0 (/) 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 (-) --0000000000009c2372060a48f586 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I should really configure mu4e or something like that. I'm curious to know if you have a pointer to an efficient setup for working through emails like this. Below the last three comments: * WAITING Comment :PROPERTIES: :ID: 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42 :END: ** lilyp > +(define (elixir-libdir elixir path) > + "Return the path where all libraries for a specified ELIXIR > version are installed." > + (string-append path "/lib/elixir/" (elixir-version elixir))) You probably want to swap path and elixir and perhaps also find a way to implicitly parameterize the latter so as to make it optional. ** phf Is this what you mean? #+begin_src scheme ;; The Elixir version is constant as soon as it is computable from the current ;; execution. It is a X.Y string where X and Y are respectively the major and ;; minor version number of the Elixir used in the build. (define elixir-version (make-parameter "X.Y")) (define* (elixir-libdir path #:optional (version (elixir-version))) "Return the path where all libraries for a specified ELIXIR version are installed." (string-append path "/lib/elixir/" version)) (define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) =E2=80=A6 (elixir-version (receive (_ version) (package-name->name+version (strip-store-file-name (assoc-ref inputs "elixir"))) (let* ((components (string-split version #\.)) (major+minor (take components 2))) (string-join major+minor "."))))) #+end_src ** lilyp I'd use %elixir-version and perhaps make it a fluent rather than a paramete= r (not quite sure whether parameters get reset when a function goes out of scope). ** phf Parameters do not get reset when a function goes out of scope: #+begin_src scheme (define x (make-parameter 1)) (define (set-x-to-2) (x 2)) (format #t "~a~%" (x)) (set-x-to-2) (format #t "~a~%" (x)) #+end_src #+begin_example 1 2 #+end_example The [[ https://www.gnu.org/software/guile/manual/html_node/Parameters.html][docume= ntation]] seems to indicate that it's an appropriate replacement for a global variable. * WAITING Comment ** lilyp Is hex not an (implicit) native-input in your build system? Anything that keeps it from functioning is a packaging bug imho. ** phf If ~mix~ finds ~Hex~ under ~$MIX_ARCHIVES/hex/hex~, then ~mix compile~ does not emit the message above. I'm not sure how could this be changed. I've tried to se= t ~MIX_PATH~ to ~/gnu/store/=E2=80=A6-elixir-hex-2.0.5/lib/elixir/1.14~ witho= ut success. So, this is the reason why ~install-hex~ phase installs Hex like it does. * WAITING Comment ** lilyp > + (define (install-inputs mix-env) > + (for-each (cut install-input mix-env <>) > + (append inputs native-inputs))) Installing native inputs: probably a bad idea (inhibits cross- compilation). ** phf A slight variant that does not link things when it should not: #+begin_src scheme (define (install-inputs mix-env) (for-each (cut install-input mix-env <>) (cond ((string=3D? mix-env "prod") inputs) ((member mix-env '("shared" "test")) (append inputs native-inputs)) (else (error (format #f "Unexpected Mix env: ~a~%" mix-env)))))) #+end_src I did not consider cross-compilation yet. The following might be wrong be here we go. I far as I understand, Erlang applications are largely platform independent. Once the code is compiled to BEAM bytecode, it can run on any platform that has the Erlang VM installed. If an Erlang library uses native extensions, then cross-compilation might be required. For a build to succee= d in a given environment (one of "prod", "test", "shared"), the BEAM files of all dependencies should be present on the build machine. So, all dependencies must be installed ** lilyp Not an expert on elixir, but that sounds borked. ** phf Yes. Did not have time to look into it as of now. ** lilyp You might get around this with propagated-inputs maybe? That being said, native-inputs shouldn't blow up a build if missing. ** phf If ~native-inputs~ are missing, it's fine. But wait, maybe there is a misunderstanding here. Please, check the reasoning: in a cross-compilation context, we have two machines A and B, and: - native-inputs: dependencies that must be built on A for A ; - inputs: dependencies that must be built on A for B ; - propagated-inputs: like inputs but installed in the profile. If installing Elixir (like Python) gathers all libraries in the profile with a variable like ~GUIX_ERL_LIBS~, then, it would be enough to list dependencies (in packages) in ~propagated-inputs~ instead of ~inputs~ and make them available to Elixir through ~ERL_LIBS~ (like ~GUIX_PYTHONPATH~ and ~PYTHONPATH~). As a consequence, the ~install-dependencies~ phase would be reduced to ~ERL_LIBS=3D$GUIX_ERL_LIBS~. Is this an answer to: "You might get around this with propagated-inputs maybe?" --0000000000009c2372060a48f586 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I should really configure mu4e or something like that.
= I'm curious to know if you have a pointer to an efficient setup for wor= king through emails like this.
Below the last three comments:

* W= AITING Comment
:PR= OPERTIES:
:ID: =C2=A0 =C2=A0 =C2=A0 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42=
:END:

** lilyp
> +(define (elixir-libdir elixir path)
&= gt; + =C2=A0"Return the path where all libraries for a specified ELIXI= R
> version are installed."
> + =C2=A0(string-append path = "/lib/elixir/" (elixir-version elixir)))

You probably want= to swap path and elixir and perhaps also find a way
to implicitly param= eterize the latter so as to make it optional.


** phf
Is this = what you mean?
#+begin_src scheme
;; The Elixir version is constant a= s soon as it is computable from the current
;; execution. It is a X.Y st= ring where X and Y are respectively the major and
;; minor version numbe= r of the Elixir used in the build.
(define elixir-version (make-paramete= r "X.Y"))

(define* (elixir-libdir path #:optional (version= (elixir-version)))
=C2=A0 "Return the path where all libraries for= a specified ELIXIR version are installed."
=C2=A0 (string-append p= ath "/lib/elixir/" version))

(define* (configure #:key inp= uts mix-path mix-exs #:allow-other-keys)
=C2=A0 =E2=80=A6
=C2=A0 (eli= xir-version
=C2=A0 =C2=A0(receive (_ version) (package-name->n= ame+version (strip-store-file-name (assoc-ref inputs "elixir")))<= span class=3D"gmail-im" style=3D"color:rgb(80,0,80)">
=C2=A0 =C2=A0 =C2= =A0(let* ((components =C2=A0(string-split version #\.))
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 (major+minor (take components 2)))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0(string-join major+minor ".")))))
#+end_sr= c


** lilyp
I'd use %elixir-version and perhaps make it a fluent rather = than a parameter
(not quite sure whether parameters get reset when a fun= ction goes out of
scope).


** phf
Parameters do not = get reset when a function goes out of scope:
#+begin_src scheme
(defi= ne x (make-parameter 1))
(define (set-x-to-2) (x 2))
(format #t "= ;~a~%" (x))
(set-x-to-2)
(format #t "~a~%" (x))
#+e= nd_src

#+begin_example
1
2
#+end_example

The [[https://www.gnu.org/software/guile/man= ual/html_node/Parameters.html][documentation]] seems to indicate that i= t's an appropriate replacement for a
global variable.


* W= AITING Comment
** lilyp
Is hex not an (impli= cit) native-input in your build system?=C2=A0 Anything that
keeps it fro= m functioning is a packaging bug imho.


** phf
If ~mix~= finds ~Hex~ under ~$MIX_ARCHIVES/hex/hex~, then ~mix compile~ does not emi= t
the message above. I'm not sure how could this be changed. I'v= e tried to set
~MIX_PATH~ to ~/gnu/store/=E2=80=A6-elixir-hex-2.0.5/lib/= elixir/1.14~ without success. So,
this is the reason why ~install-hex~ p= hase installs Hex like it does.


* WAITING Comment
** lilyp
> + =C2=A0(define= (install-inputs mix-env)
> + =C2=A0 =C2=A0(for-each (cut install-inp= ut mix-env <>)
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(append inputs native-inputs)))

Installing native inputs: prob= ably a bad idea (inhibits cross-
compilation).


** phf
A sl= ight variant that does not link things when it should not:
#+begin_src s= cheme
(define (install-inputs mix-env)
=C2=A0 =C2=A0 (for-each (cut i= nstall-input mix-env <>)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 (cond
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((= string=3D? mix-env "prod") inputs)
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((member mix-env '("shared" &quo= t;test")) (append inputs native-inputs))
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (else (error (format #f "Unexpected Mi= x env: ~a~%" mix-env))))))
#+end_src

I did not consider cros= s-compilation yet. The following might be wrong be here
we go. I far as = I understand, Erlang applications are largely platform
independent. Once= the code is compiled to BEAM bytecode, it can run on any
platform that = has the Erlang VM installed. If an Erlang library uses native
ext= ensions, then cross-compilation might be required. For a build to succeed
in a given environm= ent (one of "prod", "test", "shared"), the BE= AM files of
all dependencies should be present on the build machine. So,= all dependencies
must be installed


** lilyp
Not an expert on elixir, bu= t that sounds borked.


** phf
Yes. Did not have time to= look into it as of now.


** lilyp
You might get around this with propagated-input= s maybe?=C2=A0 That being said,
native-inputs shouldn't blow up a bu= ild if missing.


** phf
If ~native-inputs~ are missing,= it's fine. But wait, maybe there is a
misunderstanding here. Please= , check the reasoning: in a cross-compilation
context, we have two machi= nes A and B, and:
- native-inputs: dependencies that must be built on A = for A ;
- inputs: dependencies that must be built on A for B ;
- prop= agated-inputs: like inputs but installed in the profile.


If inst= alling Elixir (like Python) gathers all libraries in the profile with a
= variable like ~GUIX_ERL_LIBS~, then, it would be enough to list dependencie= s (in
packages) in ~propagated-inputs~ instead of ~inputs~ and make them= available to
Elixir through ~ERL_LIBS~ (like ~GUIX_PYTHONPATH~ and ~PYT= HONPATH~). As a
consequence, the ~install-dependencies~ phase would be r= educed to
~ERL_LIBS=3D$GUIX_ERL_LIBS~.


Is this an answer to: = "You might get around this with propagated-inputs
maybe?"

<= /div> --0000000000009c2372060a48f586-- From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 16 Nov 2023 19:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170016329416423 (code B ref 66801); Thu, 16 Nov 2023 19:35:02 +0000 Received: (at 66801) by debbugs.gnu.org; 16 Nov 2023 19:34:54 +0000 Received: from localhost ([127.0.0.1]:44644 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3i8b-0004Gm-H3 for submit@debbugs.gnu.org; Thu, 16 Nov 2023 14:34:54 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:51701) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3i8Y-0004GU-4O for 66801@debbugs.gnu.org; Thu, 16 Nov 2023 14:34:52 -0500 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-40839652b97so9288975e9.3 for <66801@debbugs.gnu.org>; Thu, 16 Nov 2023 11:34:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700163284; x=1700768084; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=R59lWSHDbtSToe6qVPqABYPIKCNjZsZ69nfF0KWomBg=; b=YCUSr9FQHWK8EIqGTHgUoZ5htEZZJGJf4Z/YJR1sMG4wdagQ60hdCM7vPjrDgtEW1i BA5+JnJholuKjB9lOfkIPAOhDBYXzX0LIsJroJfknR0NlXR9mXc44IuI1yfwc2ayjZFl D93uZvRmgq27QpFyyNB/4lZ2GMnTbKPIu/eI5wISAc+nD78o9D6slEcAM6+h1uAVVmT3 jCTNe4e4D19rjIBE+7SEzDCCIzNwWuymP1wYWH9yn5KOdklyOHZPzTWodPxV4nfMk7+z YNl5jcgyG5BnB2hb8Lm39GTIOYV07FuoH+DoyiWEy7X627klseuuBiETfhvgjSktEd4O pKkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700163284; x=1700768084; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=R59lWSHDbtSToe6qVPqABYPIKCNjZsZ69nfF0KWomBg=; b=tsTNu2RS1G6OOIqcPqcvAHZx8fX46ZVXRzPhX6b/8ZJglMImygF6KAIQCD9L5k2keH 9zZxY7Tjw0ekGVVpWyirqNfrcOsLAwixg3UcT/3PrYdNIHnWaHVBNddZvF/U3eG6fuGC +0T6hSYFoFhyTLobuGPhzZH/gW0Voiyl/ke3oBmq3g4oVeVL+A43BeHf/fn+ZRiEvRII H4rF+eJNwCZjPoUndlXGgT4UUvJ1ctp+dPYjGUj6aJF4nX6r2m3ADEpkEwkvJhuR4Vse XeiOh5OiTmCyVyEY8GAgH84RqvPv1DjiTk8xilNdrK/ZtGehpT9rAvqygl3bgR4A80q3 un3g== X-Gm-Message-State: AOJu0YzU5BAxACugzT4OAUPlp7vwqa58SlPAM9li4DLut940+92zpKyf cknpHTeIjC0PHaDm3NY8wnY5rGB2sIwyBw== X-Google-Smtp-Source: AGHT+IFEYWCoSJIorfvZEFlyj7XVvYCDQac5/dtNcYMchwBEZCNPNnz9+Iu/hRzq6f4qonJPqheJog== X-Received: by 2002:a05:600c:354f:b0:407:8f23:cf3 with SMTP id i15-20020a05600c354f00b004078f230cf3mr13888140wmq.26.1700163283631; Thu, 16 Nov 2023 11:34:43 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id k21-20020a7bc415000000b004042dbb8925sm4605510wmi.38.2023.11.16.11.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Nov 2023 11:34:42 -0800 (PST) Message-ID: <6aca9ebb2099f6d8ee3bbe39199bc42c364c40f0.camel@gmail.com> From: Liliana Marie Prikler Date: Thu, 16 Nov 2023 20:34:40 +0100 In-Reply-To: References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Donnerstag, dem 16.11.2023 um 19:12 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > I should really configure mu4e or something like that. > I'm curious to know if you have a pointer to an efficient setup for > working through emails like this. > Below the last three comments: >=20 > * WAITING Comment > :PROPERTIES: > :ID: =C2=A0 =C2=A0 =C2=A0 76abe0e4-a0e2-4176-bdc0-9ff241e8ba42 > :END: >=20 > ** lilyp > > +(define (elixir-libdir elixir path) > > + =C2=A0"Return the path where all libraries for a specified ELIXIR > > version are installed." > > + =C2=A0(string-append path "/lib/elixir/" (elixir-version elixir))) >=20 > You probably want to swap path and elixir and perhaps also find a way > to implicitly parameterize the latter so as to make it optional. >=20 >=20 > ** phf > Is this what you mean? > #+begin_src scheme > ;; The Elixir version is constant as soon as it is computable from > the current > ;; execution. It is a X.Y string where X and Y are respectively the > major and > ;; minor version number of the Elixir used in the build. > (define elixir-version (make-parameter "X.Y")) >=20 > (define* (elixir-libdir path #:optional (version (elixir-version))) > =C2=A0 "Return the path where all libraries for a specified ELIXIR versio= n > are installed." > =C2=A0 (string-append path "/lib/elixir/" version)) >=20 > (define* (configure #:key inputs mix-path mix-exs #:allow-other-keys) > =C2=A0 =E2=80=A6 > =C2=A0 (elixir-version > =C2=A0 =C2=A0(receive (_ version) (package-name->name+version (strip-stor= e- > file-name (assoc-ref inputs "elixir"))) > =C2=A0 =C2=A0 =C2=A0(let* ((components =C2=A0(string-split version #\.)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (major+minor (take components 2= ))) > =C2=A0 =C2=A0 =C2=A0 =C2=A0(string-join major+minor "."))))) > #+end_src >=20 >=20 > ** lilyp > I'd use %elixir-version. >=20 >=20 > ** phf > Parameters do not get reset when a function goes out of scope: > #+begin_src scheme > (define x (make-parameter 1)) > (define (set-x-to-2) (x 2)) > (format #t "~a~%" (x)) > (set-x-to-2) > (format #t "~a~%" (x)) > #+end_src >=20 > #+begin_example > 1 > 2 > #+end_example >=20 > The documentation seems to indicate that it's an appropriate > replacement for a global variable. It also uses the special parameterize thing to scope values. That being said, if parameters work for you, then parameters are fine. >=20 > * WAITING Comment** lilyp > Is hex not an (implicit) native-input in your build system?=C2=A0 Anythin= g > that keeps it from functioning is a packaging bug imho. >=20 >=20 > ** phf > If ~mix~ finds ~Hex~ under ~$MIX_ARCHIVES/hex/hex~, then ~mix > compile~ does not emit the message above. I'm not sure how could this > be changed. I've tried to set ~MIX_PATH~ to ~/gnu/store/=E2=80=A6-elixir-= hex- > 2.0.5/lib/elixir/1.14~ without > success. So, this is the reason why ~install-hex~ phase installs Hex > like it does. Look into mix and how it invokes hex. There's hardcoding potential, I'm sure of it. > * WAITING Comment > ** lilyp > > + =C2=A0(define (install-inputs mix-env) > > + =C2=A0 =C2=A0(for-each (cut install-input mix-env <>) > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(append inputs native= -inputs))) >=20 > Installing native inputs: probably a bad idea (inhibits cross- > compilation). >=20 >=20 > ** phf > A slight variant that does not link things when it should not: > #+begin_src scheme > (define (install-inputs mix-env) > =C2=A0 =C2=A0 (for-each (cut install-input mix-env <>) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cond > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((string=3D? mix-= env "prod") inputs) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((member mix-env = '("shared" "test")) (append inputs > native-inputs)) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (else (error (for= mat #f "Unexpected Mix env: ~a~%" > mix-env)))))) > #+end_src >=20 > I did not consider cross-compilation yet. The following might be > wrong be here we go. I far as I understand, Erlang applications are > largely platform independent. Once the code is compiled to BEAM > bytecode, it can run on any platform that has the Erlang VM > installed. If an Erlang library uses native extensions, then cross- > compilation might be required. For a build to succeed > in a given environment (one of "prod", "test", "shared"), the BEAM > files of all dependencies should be present on the build machine. So, > all dependencies must be installed >=20 >=20 > ** lilyp > Not an expert on elixir, but that sounds borked. >=20 >=20 > ** phf > Yes. Did not have time to look into it as of now. >=20 >=20 > ** lilyp > You might get around this with propagated-inputs maybe?=C2=A0 That being > said, native-inputs shouldn't blow up a build if missing. >=20 >=20 > ** phf > If ~native-inputs~ are missing, it's fine. But wait, maybe there is a > misunderstanding here. Please, check the reasoning: in a cross- > compilation context, we have two machines A and B, and: > - native-inputs: dependencies that must be built on A for A ; > - inputs: dependencies that must be built on A for B ; > - propagated-inputs: like inputs but installed in the profile. >=20 >=20 > If installing Elixir (like Python) gathers all libraries in the > profile with a variable like ~GUIX_ERL_LIBS~, then, it would be > enough to list dependencies (in packages) in ~propagated-inputs~ > instead of ~inputs~ and make them available to Elixir through > ~ERL_LIBS~ (like ~GUIX_PYTHONPATH~ and ~PYTHONPATH~). > As a consequence, the ~install-dependencies~ phase would be reduced > to ~ERL_LIBS=3D$GUIX_ERL_LIBS~. >=20 > Is this an answer to: "You might get around this with propagated- > inputs maybe?" If environment variables work, that is clearly to be preferred over any other magic we've considered so far. My hunch is that rebar-build- system was written this way because environment variables didn't work, however. Same with Rust and Node, which are kinda yucky in this regard. Other than that, yes, (ab)using propagated-inputs like that is the way to go when there's no smarter alternative available. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Nov 2023 07:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17002066077746 (code B ref 66801); Fri, 17 Nov 2023 07:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 17 Nov 2023 07:36:47 +0000 Received: from localhost ([127.0.0.1]:45021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3tPC-00020r-By for submit@debbugs.gnu.org; Fri, 17 Nov 2023 02:36:46 -0500 Received: from mail-yb1-xb35.google.com ([2607:f8b0:4864:20::b35]:61625) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3tP6-00020U-4J for 66801@debbugs.gnu.org; Fri, 17 Nov 2023 02:36:44 -0500 Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-d9fe0a598d8so1620418276.2 for <66801@debbugs.gnu.org>; Thu, 16 Nov 2023 23:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700206594; x=1700811394; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=uvpQq7eJrJgNpMlv5/+XtlTwIPy+bN4liSzhhJZrVpI=; b=t91aLzHib0AxOkeMPhISIJ9GKcnbo72HNHPT+oWXtFcl/GT0opey283Kv+LY0Xjygk kkRbAmyLdUp3w9hQrJARyWkgdidWyiLKrGAbBR8aaw5BcghTmhy6M63i+5aT2fMvjUr1 GXSiEYM2vvZdPFGW9mM4JPfxTd9OvXl+wh2huQX83BJZIHOEfgzL1K+qzgJH7rPndyGw Pc7HUuG5JFndYXeAm77oU7tmQyqusgRm6cdjNb34am8+ziqKiULjB9tOia0rLUul1X4j E2d+nklw3rTM7zBFYce0KmKa9IRn+M2ouVil0LxElREku7f0CfniaG4NxFGp1OxPfIMg nO5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700206594; x=1700811394; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uvpQq7eJrJgNpMlv5/+XtlTwIPy+bN4liSzhhJZrVpI=; b=Od6RpT77w5oZ8DFAc41A97yJuwh8Ps+j+EiF30yZkYXIwyk+wbP+m+mOJB7Xdf+2kF O0+2MKpnpIgblPMPsjnS5USzGX6bDGCp22N32VYnfrcSwktabTX213QcJxaj6E7w4cv3 eVuMzVGmLy1mql4Xr+O+wytjOJxiKxsy6AkNgSodMcMws1IE05VTSWjb3snutR8Og1de er2pEIYrXElCC3vPSXvskB4x9OMzi7LRHGWN3EedR36gMO7hWdeKpYxN2Mj1abnmnkDB R0kxt9GJHR2jSLTPRiTStEYvEwDNRA7/OmWt9YxV11NCGB+yg89x7K9I28GCUfnY2asN ix1A== X-Gm-Message-State: AOJu0YzC3EitMZ0DNos1Jzc+nqiTdf6GQhf7yIikPgp5jYfJy5oZbXmb 9Fv5VqBUQyKAXetp9D7Y6WMQCQO6WmUDzwmzRAcO/w== X-Google-Smtp-Source: AGHT+IHCl8wIeK2v4IL4ao7uQD8KTyFYmSnJfsWcUFKPTgK959t4oRdZnU0x8tn11j86q1KxOXF/CL/szp8CwP0expk= X-Received: by 2002:a25:6983:0:b0:d9a:ea20:7eb6 with SMTP id e125-20020a256983000000b00d9aea207eb6mr19672933ybc.38.1700206594212; Thu, 16 Nov 2023 23:36:34 -0800 (PST) MIME-Version: 1.0 References: <67c324d191a9698aed8d9887260cb0ef2bc031df.1700088189.git.phfrohring@deeplinks.com> <66cf8aa37e2c9696af3a8895059b9293669f485c.camel@gmail.com> <6aca9ebb2099f6d8ee3bbe39199bc42c364c40f0.camel@gmail.com> In-Reply-To: <6aca9ebb2099f6d8ee3bbe39199bc42c364c40f0.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 17 Nov 2023 08:36:22 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) 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 (-) * WAITING Comment ** lilyp > +(define* (install-hex #:key name inputs outputs #:allow-other-keys) > + "Install Hex." > + (let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES") > "/hex"))) > + (mkdir-p hex-archive-path) > + (symlink (car (list-directories (elixir-libdir (assoc-ref inputs > "elixir") > + (assoc-ref inputs > "elixir-hex")))) > + (string-append hex-archive-path "/hex")))) Why do we need this? It looks like we'll be pasting the same (native?) input all over the store, which imho would be bad. ** phf Without ~Hex~, you get this error: #+begin_example starting phase `build' Could not find Hex, which is needed to build dependency :ex_doc Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] #+end_example This message is called from ~handle_rebar_not_found~ in ~lib/mix/lib/mix/tasks/deps.compile.ex~ ; which is called from ~rebar_cmd~ because a ~manager~ (~Hex~) could not be found. Hex must be present =3D> install-hex must be executed. I thought that this should not be a problem since Hex is needed at build ti= me, and just symlinked. Maybe should it be copied instead? ** lilyp Is hex not an (implicit) native-input in your build system? Anything that keeps it from functioning is a packaging bug imho. ** phf If ~mix~ finds ~Hex~ under ~$MIX_ARCHIVES/hex/hex~, then ~mix compile~ does not emit the message above. I'm not sure how could this be changed. I've tried to se= t ~MIX_PATH~ to ~/gnu/store/=E2=80=A6-elixir-hex-2.0.5/lib/elixir/1.14~ witho= ut success. So, this is the reason why ~install-hex~ phase installs Hex like it does. ** lilyp Look into mix and how it invokes hex. There's hardcoding potential, I'm su= re of it. ** phf :PROPERTIES: :ID: d9ffbbfa-3cd3-4a44-9acb-04a0627b90d7 :END: - Observation: ~mix compile~ =E2=87=92 "Could not find Hex, which is needed= to build dependency :ex_doc". - We have the source - guix build --source - We found from where this message is emitted. - lib/mix/lib/mix/hex.ex - We now why the message was emitted. - Code.ensure_loaded?(Hex) failed. - https://hexdocs.pm/elixir/1.14.0/Code.html#ensure_loaded/1 Well, adding the store path of Hex to ~ERL_LIBS~ solves the problem. The ~install-hex~ phase can be deleted in favor of manipulating ~ERL_LIBS~ as suggested with propagated inputs [[id:d7cd6e3d-9802-499f-a157-7698aca942d4][below]]. * WAITING Comment :PROPERTIES: :ID: d7cd6e3d-9802-499f-a157-7698aca942d4 :END: ** lilyp > + (define (install-inputs mix-env) > + (for-each (cut install-input mix-env <>) > + (append inputs native-inputs))) Installing native inputs: probably a bad idea (inhibits cross- compilation). ** phf A slight variant that does not link things when it should not: #+begin_src scheme (define (install-inputs mix-env) (for-each (cut install-input mix-env <>) (cond ((string=3D? mix-env "prod") inputs) ((member mix-env '("shared" "test")) (append inputs native-inputs)) (else (error (format #f "Unexpected Mix env: ~a~%" mix-env)= ))))) #+end_src I did not consider cross-compilation yet. The following might be wrong be h= ere we go. As far as I understand, Erlang applications are largely platform independent. Once the code is compiled to BEAM bytecode, it can run on any platform that has the Erlang VM installed. If an Erlang library uses native extensions, then cross-compilation might be required. For a build to succee= d in a given environment (one of "prod", "test", "shared"), the BEAM files of all dependencies should be present on the build machine. So, all dependenci= es must be installed ** lilyp Not an expert on elixir, but that sounds borked. ** phf Yes. Did not have time to look into it as of now. ** lilyp You might get around this with propagated-inputs maybe? That being said, native-inputs shouldn't blow up a build if missing. ** phf If ~native-inputs~ are missing, it's fine. But wait, maybe there is a misunderstanding here. Please, check the reasoning: in a cross-compilation context, we have two machines A and B, and: - native-inputs: dependencies that must be built on A for A ; - inputs: dependencies that must be built on A for B ; - propagated-inputs: like inputs but installed in the profile. If installing Elixir (like Python) gathers all libraries in the profile wit= h a variable like ~GUIX_ERL_LIBS~, then, it would be enough to list dependencie= s (in packages) in ~propagated-inputs~ instead of ~inputs~ and make them availabl= e to Elixir through ~ERL_LIBS~ (like ~GUIX_PYTHONPATH~ and ~PYTHONPATH~). As a consequence, the ~install-dependencies~ phase would be reduced to ~ERL_LIBS=3D$GUIX_ERL_LIBS~. Is this an answer to: "You might get around this with propagated-inputs maybe?" ** lilyp If environment variables work, that is clearly to be preferred over any oth= er magic we've considered so far. My hunch is that rebar-build- system was written this way because environment variables didn't work, however. Same with Rust and Node, which are kinda yucky in this regard. Other than that, yes, (ab)using propagated-inputs like that is the way to g= o when there's no smarter alternative available. ** phf As hinted [[id:d9ffbbfa-3cd3-4a44-9acb-04a0627b90d7][above]], abusing propagated inputs works up to the ~elixir-machete~ package. Essentially, it is enough to add the code below to the ~elixir~ package: #+begin_src scheme (native-search-paths (list (search-path-specification (variable "GUIX_ERL_LIBS") (files (list "lib/erlang/lib" (string-append "lib/elixir/" (version-major+minor version))))))) #+end_src ~install-dependencies~ has been deleted altogether for a single line added = to ~set-mix-env~. #+begin_src scheme (setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS")) #+end_src So, if Erlang and Elixir dependencies are added to propagated inputs, then = it seems to work as expected. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Nov 2023 08:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: liliana.prikler@gmail.com, Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170020822011962 (code B ref 66801); Fri, 17 Nov 2023 08:04:02 +0000 Received: (at 66801) by debbugs.gnu.org; 17 Nov 2023 08:03:40 +0000 Received: from localhost ([127.0.0.1]:45050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3tpD-00036p-4B for submit@debbugs.gnu.org; Fri, 17 Nov 2023 03:03:40 -0500 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:50569) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r3tp9-00036S-Qc for 66801@debbugs.gnu.org; Fri, 17 Nov 2023 03:03:38 -0500 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-507975d34e8so2406584e87.1 for <66801@debbugs.gnu.org>; Fri, 17 Nov 2023 00:03:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700208209; x=1700813009; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4aLw3q3ZCh8axtjDwxTXNqvqmuCklgc3f1NzngsLUvc=; b=jExZLsiAsAFmNyMeSoKDk32aTo1JxP6MH3KWT71LZc1HLMCTAmbHdMKRxCgftYLJ7y Vb4A/5qCnQ7YF0HNOnnoog8D8hztw4Y+xYPP2354wXlf9ZseCJRTPVqyyMxordlLUyWm WkR41hIPNX2BGsJ8aussoSZ4Zij3+/YYY7KBSl1vHo6ZLDj59H4Lur1/DsVtNayPiFbf kbvdLHq+0lMniyQxonUbIIob8PiBMPI/QMVHY1ugK8S68Q0r+B+2ApaJP4t1P9hmKf0a 2xr5XibR0B1FKD9VBtWZH2yoTwwkp5x3KXvtXhfR3JHvEdM76PvE8Nnjt/6bWJjPj4E7 A5YQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700208209; x=1700813009; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4aLw3q3ZCh8axtjDwxTXNqvqmuCklgc3f1NzngsLUvc=; b=KTnDM/JNfKVg+h4MFv6lAkRpLgqyL8gF8bv+8/aWZLzuS8k1X/Q6FMElfb5YDmqKV8 j5QM1rirdoNBU77ult9SV/vNh7S1T31uRytcexub9A30E0GrQOjpwmNCJzBm7FkFaCgX U5kmWS//LSUQ2aYdvean6KnlordIgR63BqjAsfC/pToHKyMQgBhRzfAjGkYrl+hOgYA2 aEv/PLAq2wJyw8SmTZJ6i/W7Sy+0HTwMTbzOuXiZg0d5RSXS/7DK0lnF1ySXAruip/wu 7tDF43STcm0TrRrMWqhvKXfvYlKMecCd0U1SMlbXlXUgkW4OY/ag7j1SaK6LDRygOzkr SdOQ== X-Gm-Message-State: AOJu0YyF4wrso27im4Z4rjqxaIXSeFZjPq5Ayb4F7s08OXK8Kf4gwUrW o+uicaOQVTP7RKIAgCCQgI4ZoRxkbBNbRvaW/GQ= X-Google-Smtp-Source: AGHT+IE4ZYlyNg3E5k/k/EeRougVQFGcpkaVIgoYHWBa0jPSzuvu+bCMaEzTBwAp9cY6QZV+odF1wA== X-Received: by 2002:ac2:4e0a:0:b0:502:d743:9fc4 with SMTP id e10-20020ac24e0a000000b00502d7439fc4mr16356618lfr.37.1700208208449; Fri, 17 Nov 2023 00:03:28 -0800 (PST) Received: from doug.home ([2a01:cb19:85a1:c200:ee66:fd17:945:f033]) by smtp.gmail.com with ESMTPSA id t16-20020adff610000000b0032da4c98ab2sm1540832wrp.35.2023.11.17.00.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 00:03:27 -0800 (PST) From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 17 Nov 2023 09:03:08 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) 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/mix.scm, * guix/build/mix-build-system.scm: New modules. Change-Id: I2cbf6c963a530e73420da0eb17ffaf92827451bf --- gnu/packages/elixir.scm | 62 ++++++++++- guix/build-system/mix.scm | 187 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 171 +++++++++++++++++++++++++++++ 3 files changed, 417 insertions(+), 3 deletions(-) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b4251..6f779afb 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -27,6 +27,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -96,9 +97,21 @@ (define-public elixir (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" prefix ("${GUIX_ERL_LIBS}")))) + programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files (list "lib/erlang/lib" + (string-append "lib/elixir/" (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") (description "Elixir is a dynamic, functional language used to build @@ -106,3 +119,46 @@ (define-public elixir for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public elixir-hex + (package + (name "elixir-hex") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexpm/hex.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj")))) + ;; The mix-build-system assumes that Hex exists. + ;; We build Hex using the gnu-build-system. + ;; Other Elixir packages use the mix-build-system. + (build-system gnu-build-system) + (inputs (list elixir)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "MIX_ENV" "prod") + (invoke "mix" "compile"))) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define X.Y #$(version-major+minor (package-version elixir))) + (define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex")) + (mkdir-p out) + (copy-recursively "_build/prod/lib/hex" out)))))) + (synopsis "Package manager for the Erlang VM") + (description + "This project provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 00000000..7ddedea9 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,187 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve the bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + "Return the default Elixir package." + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cut string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cut string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 00000000..ca649582 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,171 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries for a specified ELIXIR version are installed." + (string-append path "/lib/elixir/" version)) + +(define (erlang-libdir path) + "Return the path of the directory where libraries of an Erlang package are +installed in the store." + (string-append path "/lib/erlang/lib")) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory." + (string-append "_build/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of ELIXIR. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + (let* ((_ version (package-name->name+version + (strip-store-file-name (assoc-ref inputs "elixir")))) + (components (string-split version #\.)) + (major+minor (take components 2))) + (string-join major+minor "."))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cut string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3")) + (setenv "MIX_EXS" mix-exs) + (%elixir-version (elixir-version inputs))) + +(define* (install-hex #:key name inputs outputs #:allow-other-keys) + "Install Hex." + (let ((hex-archive-path (string-append (getenv "MIX_ARCHIVES") "/hex"))) + (mkdir-p hex-archive-path) + (symlink (car (list-directories (elixir-libdir (assoc-ref inputs "elixir-hex")))) + (string-append hex-archive-path "/hex")))) + +(define* (install-dependencies . _) + "Install dependencies." + (setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS"))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name-version->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Essentially drop the prefix used in Guix and replace dashes by +underscores." + (let* ((name- (package-name->name+version name+ver))) + (string-join + (string-split + (if (string-prefix? "elixir-" name-) + (string-drop name- (string-length "elixir-")) + name-) + #\-) + "_"))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name-version->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir (if build-per-environment "prod" "shared")) "/" lib-name) + lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: a0d337e79c87d7c38c79d0291974f490cb137a52 -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 17 Nov 2023 19:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17002490828795 (code B ref 66801); Fri, 17 Nov 2023 19:25:02 +0000 Received: (at 66801) by debbugs.gnu.org; 17 Nov 2023 19:24:42 +0000 Received: from localhost ([127.0.0.1]:47163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r44SG-0002Hm-8z for submit@debbugs.gnu.org; Fri, 17 Nov 2023 14:24:41 -0500 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:45396) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r44SB-0002HW-7x for 66801@debbugs.gnu.org; Fri, 17 Nov 2023 14:24:37 -0500 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-50a93c5647cso3267420e87.3 for <66801@debbugs.gnu.org>; Fri, 17 Nov 2023 11:24:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700249069; x=1700853869; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=0kJhul18sgaSJAT6ZSP4u8DX19nHJ8nyEAjlrw+SiZs=; b=kz7YzW3lIz4kUGSMneq5whRr2QCIN0x/0RgmkpMawk3ThOO82yHODO2T9y7x2n3gyv 4lBqqcImNcp9IF2oOWv0keADBAzCxpu/5C3xKCqJUt4jrjxY7VFenjmdpevcsIvtOQh5 smR7UOrD83M6UCFUi/nJy40/qJoKCFlPKOPVZSzHZWefBJ8lu1GZKdac6YZUwPZ5prCv F18xvrkhcHDjXV3A8UAYC/fcuA0EIGhF9FMPXiNbDCA7Was9c/5e12KqM3TitoPg4q/c tjYMlqUaYcUVb2kbGmWnLQmPgq0JGCarn9/L4xvb961OFjbfWndtJI/+Qdnt7Tbv/Qp/ hxjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700249069; x=1700853869; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0kJhul18sgaSJAT6ZSP4u8DX19nHJ8nyEAjlrw+SiZs=; b=ucqthuWBWwu2w48wMqvz6I9tH6Xc4mJ0dklLwfZWonI2Vo0/FvHrRwYOd0N5+vQm2N q/o1gUX0g0xlDLFmXD6r1EEgdBwes7DfGKiG9k4brx5GYFzQoezG0l+NkqqMOReBaVu7 eeOSomVkkNZGQBR3keIMRoVM54oOudG02lE86a/Zj6+jQBSZuRE9YPTZ0wJenyrGbxB6 cOY0MMQ6obvHq993V5LnlO3hpbXrjT+elVQOdcqS+jjFidhMswKSxhSIHjbbJs2zC5lY JNkCVSPuP6P0V5NLk2kfa478yQwbCTL5qUt6ZVY/bMe0Kl/ObaKWAZVhXOtw5i7BG5Uj oMZw== X-Gm-Message-State: AOJu0YxpuD2Wi+czFpbTmqpwVpXq9/VdKXY9CWMEFKkerDJU8T04TeDE rTqIBZ53d0xfuYn9lFNajLA= X-Google-Smtp-Source: AGHT+IHF4ilT3G8G7RkHfTex2TyLEQEVrio9/AKhzP+m9/m+hl6bFeiFGLGHtd7N83bHCSFkCtbfng== X-Received: by 2002:ac2:59c9:0:b0:509:f45c:fae6 with SMTP id x9-20020ac259c9000000b00509f45cfae6mr412665lfn.10.1700249068258; Fri, 17 Nov 2023 11:24:28 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id d18-20020a056402079200b005438ce5bf80sm981623edy.20.2023.11.17.11.24.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 11:24:27 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 17 Nov 2023 20:24:25 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) QW0gRnJlaXRhZywgZGVtIDE3LjExLjIwMjMgdW0gMDk6MDMgKzAxMDAgc2NocmllYiBQaWVycmUt SGVucnkKRnLDtmhyaW5nOgo+ICogZ3VpeC9idWlsZC1zeXN0ZW0vbWl4LnNjbSwKPiAqIGd1aXgv YnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY206IE5ldyBtb2R1bGVzLgpBdm9pZCBzcGFubmluZyBh IGNoYW5nZSBhY3Jvc3MgbXVsdGlwbGUgZmlsZXMuICBVc2UgCmZpbGU6IENoYW5nZS4KZmlsZTI6 IExpa2V3aXNlLgoKPiBDaGFuZ2UtSWQ6IEkyY2JmNmM5NjNhNTMwZTczNDIwZGEwZWIxN2ZmYWY5 MjgyNzQ1MWJmCj4gLS0tCj4gwqBnbnUvcGFja2FnZXMvZWxpeGlyLnNjbcKgwqDCoMKgwqDCoMKg wqAgfMKgIDYyICsrKysrKysrKystCj4gwqBndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtwqDCoMKg wqDCoMKgIHwgMTg3Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiDCoGd1aXgv YnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20gfCAxNzEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKWW91IGNvbW1pdHRlZCB0d28gY2hhbmdlcyBhdCBvbmNlIGhlcmUuICBTcGxpdCB0aGVt LgoKPiDCoDMgZmlsZXMgY2hhbmdlZCwgNDE3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p Cj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9idWlsZC1zeXN0ZW0vbWl4LnNjbQo+IMKgY3Jl YXRlIG1vZGUgMTAwNjQ0IGd1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20KPiAKPiBkaWZm IC0tZ2l0IGEvZ251L3BhY2thZ2VzL2VsaXhpci5zY20gYi9nbnUvcGFja2FnZXMvZWxpeGlyLnNj bQo+IGluZGV4IDcyNGI0MjUxLi42Zjc3OWFmYiAxMDA2NDQKPiAtLS0gYS9nbnUvcGFja2FnZXMv ZWxpeGlyLnNjbQo+ICsrKyBiL2dudS9wYWNrYWdlcy9lbGl4aXIuc2NtCj4gQEAgLTI3LDYgKzI3 LDcgQEAgKGRlZmluZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBlbGl4aXIpCj4gwqDCoCAjOnVzZS1t b2R1bGUgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNlOikKPiDCoMKgICM6dXNlLW1v ZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQo+IMKgwqAgIzp1c2UtbW9kdWxlIChndWl4IGdl eHApCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKPiDCoMKgICM6dXNlLW1vZHVsZSAo Z3VpeCBnaXQtZG93bmxvYWQpCj4gwqDCoCAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCj4g wqDCoCAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcykKPiBAQCAtOTYsOSArOTcsMjEgQEAgKGRl ZmluZS1wdWJsaWMgZWxpeGlyCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEqICgj OmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgOzsgU29tZSB0ZXN0cyByZXF1aXJlIGFjY2VzcyB0byBhIGhvbWUgZGlyZWN0b3J5Lgo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNldGVudiAiSE9NRSIgIi90bXAiKSkpCj4g LcKgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRlICdjb25maWd1cmUpKSkpCj4gLcKgwqDCoCAoaW5w dXRzCj4gLcKgwqDCoMKgIChsaXN0IGVybGFuZyBnaXQpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqAg KGRlbGV0ZSAnY29uZmlndXJlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKGFkZC1hZnRlciAnaW5z dGFsbCAnd3JhcC1wcm9ncmFtcwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEqICgj OmtleSBpbnB1dHMgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChsZXQqICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHByb2dyYW1zICcoImVsaXhp ciIgImVsaXhpcmMiICJpZXgiICJtaXgiKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAoZm9yLWVhY2ggKGxhbWJkYSAocHJvZ3JhbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh3cmFwLXByb2dyYW0gKHN0cmluZy1h cHBlbmQgb3V0ICIvYmluLyIKPiBwcm9ncmFtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICcoIkVSTF9MSUJTIiBwcmVmaXgKPiAo IiR7R1VJWF9FUkxfTElCU30iKSkpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBwcm9ncmFtcykpKSkpKSkKPiArwqDCoMKgIChpbnB1dHMgKGxp c3QgZXJsYW5nIGdpdCkpCj4gK8KgwqDCoCAobmF0aXZlLXNlYXJjaC1wYXRocwo+ICvCoMKgwqDC oCAobGlzdCAoc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICh2YXJpYWJsZSAiR1VJWF9FUkxfTElCUyIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KGZpbGVzIChsaXN0ICJsaWIvZXJsYW5nL2xpYiIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzdHJpbmctYXBwZW5kICJsaWIvZWxpeGlyLyIgKHZl cnNpb24tCj4gbWFqb3IrbWlub3IgdmVyc2lvbikpKSkpKSkKSSBzdXBwb3NlIEVSTCBpcyBmb3Ig ZXJsYW5nPyAgV2hhdCBkbyB3ZSB1c2UgZm9yIGVsaXhpciB0aGVuPwo+IMKgwqDCoMKgIChob21l LXBhZ2UgImh0dHBzOi8vZWxpeGlyLWxhbmcub3JnLyIpCj4gwqDCoMKgwqAgKHN5bm9wc2lzICJF bGl4aXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UiKQo+IMKgwqDCoMKgIChkZXNjcmlwdGlvbiAiRWxp eGlyIGlzIGEgZHluYW1pYywgZnVuY3Rpb25hbCBsYW5ndWFnZSB1c2VkIHRvCj4gYnVpbGQKPiBA QCAtMTA2LDMgKzExOSw0NiBAQCAoZGVmaW5lLXB1YmxpYyBlbGl4aXIKPiDCoGZvciBydW5uaW5n IGxvdy1sYXRlbmN5LCBkaXN0cmlidXRlZCBhbmQgZmF1bHQtdG9sZXJhbnQgc3lzdGVtcywKPiB3 aGlsZSBhbHNvCj4gwqBiZWluZyBzdWNjZXNzZnVsbHkgdXNlZCBpbiB3ZWIgZGV2ZWxvcG1lbnQg YW5kIHRoZSBlbWJlZGRlZCBzb2Z0d2FyZQo+IGRvbWFpbi4iKQo+IMKgwqDCoMKgIChsaWNlbnNl IGxpY2Vuc2U6YXNsMi4wKSkpCj4gKwo+ICsoZGVmaW5lLXB1YmxpYyBlbGl4aXItaGV4Cj4gK8Kg IChwYWNrYWdlCj4gK8KgwqDCoCAobmFtZSAiZWxpeGlyLWhleCIpCj4gK8KgwqDCoCAodmVyc2lv biAiMi4wLjUiKQo+ICvCoMKgwqAgKHNvdXJjZQo+ICvCoMKgwqDCoCAob3JpZ2luCj4gK8KgwqDC oMKgwqDCoCAobWV0aG9kIGdpdC1mZXRjaCkKPiArwqDCoMKgwqDCoMKgICh1cmkgKGdpdC1yZWZl cmVuY2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNv bS9oZXhwbS9oZXguZ2l0IikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChjb21taXQgKHN0 cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCj4gK8KgwqDCoMKgwqDCoCAoZmlsZS1uYW1lIChn aXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCj4gK8KgwqDCoMKgwqDCoCAoc2hhMjU2Cj4gK8Kg wqDCoMKgwqDCoMKgIChiYXNlMzIKPiArwqDCoMKgwqDCoMKgwqDCoCAiMWt2Y3p3dmlqNThrZ2to YWs2ODAwNGFwODFwbDI2NjAwYmN6ZzIxbXlteTJzeXBrZ3htaiIpKSkpCj4gK8KgwqDCoCA7OyBU aGUgbWl4LWJ1aWxkLXN5c3RlbSBhc3N1bWVzIHRoYXQgSGV4IGV4aXN0cy4KPiArwqDCoMKgIDs7 IFdlIGJ1aWxkIEhleCB1c2luZyB0aGUgZ251LWJ1aWxkLXN5c3RlbS4KPiArwqDCoMKgIDs7IE90 aGVyIEVsaXhpciBwYWNrYWdlcyB1c2UgdGhlIG1peC1idWlsZC1zeXN0ZW0uCj4gK8KgwqDCoCAo YnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCj4gK8KgwqDCoCAoaW5wdXRzIChsaXN0IGVs aXhpcikpCj4gK8KgwqDCoCAoYXJndW1lbnRzCj4gK8KgwqDCoMKgIChsaXN0Cj4gK8KgwqDCoMKg wqAgIzpwaGFzZXMKPiArwqDCoMKgwqDCoCAjfihtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFz ZXMKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChkZWxldGUgJ2Jvb3RzdHJhcCkKPiArwqDCoMKgwqDC oMKgwqDCoMKgIChkZWxldGUgJ2NvbmZpZ3VyZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChyZXBs YWNlICdidWlsZAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEqICgjOmtleSBpbnB1 dHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc2V0 ZW52ICJNSVhfRU5WIiAicHJvZCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnZv a2UgIm1peCIgImNvbXBpbGUiKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRlICdjaGVj aykKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChyZXBsYWNlICdpbnN0YWxsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyBvdXRwdXRzICM6YWxsb3ctb3RoZXIt a2V5cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGRlZmluZSBYLlkgIyQodmVyc2lv bi1tYWpvcittaW5vciAocGFja2FnZS12ZXJzaW9uCj4gZWxpeGlyKSkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChkZWZpbmUgb3V0IChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgb3V0 cHV0cyAib3V0IikKPiAiL2xpYi9lbGl4aXIvIiBYLlkgIi9oZXgiKSkKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKG1rZGlyLXAgb3V0KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoY29weS1yZWN1cnNpdmVseSAiX2J1aWxkL3Byb2QvbGliL2hleCIgb3V0KSkpKSkpCj4gK8Kg wqDCoCAoc3lub3BzaXMgIlBhY2thZ2UgbWFuYWdlciBmb3IgdGhlIEVybGFuZyBWTSIpCj4gK8Kg wqDCoCAoZGVzY3JpcHRpb24KPiArwqDCoMKgwqAgIlRoaXMgcHJvamVjdCBwcm92aWRlcyB0YXNr cyB0aGF0IGludGVncmF0ZSB3aXRoIE1peCwgRWxpeGlyJ3MKPiBidWlsZAo+ICt0b29sLiIpCj4g K8KgwqDCoCAoaG9tZS1wYWdlICJodHRwczovL2hleGRvY3MucG0vbWFrZXVwX2VsaXhpci8iKQo+ ICvCoMKgwqAgKGxpY2Vuc2UgbGljZW5zZTpic2QtMikpKQo+IGRpZmYgLS1naXQgYS9ndWl4L2J1 aWxkLXN5c3RlbS9taXguc2NtIGIvZ3VpeC9idWlsZC1zeXN0ZW0vbWl4LnNjbQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjdkZGVkZWE5Cj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2d1aXgvYnVpbGQtc3lzdGVtL21peC5zY20KPiBAQCAtMCwwICsxLDE4NyBAQAo+ICs7 OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKPiAr Ozs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcKPiA8cGhmcm9ocmlu Z0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBH dWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKPiBieQo+ICs7Ozsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiAr Ozs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICs7OzsKPiArOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vu c2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAgSWYgbm90LCBzZWUKPiA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBDb21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBT dGFuZGFyZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVsaXhpciBwYWNrYWdlcyB1c2luZyAnbWl4Jy7C oCBUaGlzCj4gaXMKPiArOzsgaW1wbGVtZW50ZWQgYXMgYW4gZXh0ZW5zaW9uIG9mICdnbnUtYnVp bGQtc3lzdGVtJy4KPiArOzsKPiArOzsgQ29kZToKPiArCj4gKyhkZWZpbmUtbW9kdWxlIChndWl4 IGJ1aWxkLXN5c3RlbSBtaXgpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZCBtaXgtYnVp bGQtc3lzdGVtKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkKPiAr wqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSkKPiArwqAgIzp1c2UtbW9kdWxlIChn dWl4IGdleHApCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCBtb25hZHMpCj4gK8KgICM6dXNlLW1v ZHVsZSAoZ3VpeCBwYWNrYWdlcykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHNlYXJjaC1wYXRo cykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHN0b3JlKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1 aXggdXRpbHMpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCj4gK8KgICM6dXNlLW1v ZHVsZSAoc3JmaSBzcmZpLTEpCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQo+ICvC oCAjOmV4cG9ydCAobWl4LWJ1aWxkLXN5c3RlbSBoZXhwbS11cmkpKQo+ICsKPiArOzsgTGF6aWx5 IHJlc29sdmUgdGhlIGJpbmRpbmdzIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcy4KPiAr KGRlZmluZSAoZGVmYXVsdC1nbGliYy11dGY4LWxvY2FsZXMpCj4gK8KgIChsZXQqICgoYmFzZSAo cmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgYmFzZSkpKSkKPiArwqDCoMKgIChtb2R1 bGUtcmVmIGJhc2UgJ2dsaWJjLXV0ZjgtbG9jYWxlcykpKQo+ICsKPiArKGRlZmluZSAoZGVmYXVs dC1lbGl4aXItaGV4KQo+ICvCoCAobGV0ICgoZWxpeGlyIChyZXNvbHZlLWludGVyZmFjZSAnKGdu dSBwYWNrYWdlcyBlbGl4aXIpKSkpCj4gK8KgwqDCoCAobW9kdWxlLXJlZiBlbGl4aXIgJ2VsaXhp ci1oZXgpKSkKPiArCj4gKyhkZWZpbmUgKGRlZmF1bHQtcmViYXIzKQo+ICvCoCAobGV0ICgoZXJs YW5nIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNrYWdlcyBlcmxhbmcpKSkpCj4gK8KgwqDC oCAobW9kdWxlLXJlZiBlcmxhbmcgJ3JlYmFyMykpKQo+ICsKPiArKGRlZmluZSAoZGVmYXVsdC1l bGl4aXIpCj4gK8KgICJSZXR1cm4gdGhlIGRlZmF1bHQgRWxpeGlyIHBhY2thZ2UuIgo+ICvCoCAo bGV0ICgoZWxpeGlyIChyZXNvbHZlLWludGVyZmFjZSAnKGdudSBwYWNrYWdlcyBlbGl4aXIpKSkp Cj4gK8KgwqDCoCAobW9kdWxlLXJlZiBlbGl4aXIgJ2VsaXhpcikpKQo+ICsKPiArKGRlZmluZSog KHN0cmlwLXByZWZpeCBuYW1lICM6b3B0aW9uYWwgKHByZWZpeCAiZWxpeGlyLSIpKQo+ICvCoCAi UmV0dXJuIE5BTUUgd2l0aG91dCB0aGUgcHJlZml4IFBSRUZJWC4iCj4gK8KgIChpZiAoc3RyaW5n LXByZWZpeD8gcHJlZml4IG5hbWUpCj4gK8KgwqDCoMKgwqAgKHN0cmluZy1kcm9wIG5hbWUgKHN0 cmluZy1sZW5ndGggcHJlZml4KSkKPiArwqDCoMKgwqDCoCBuYW1lKSkKPiArCj4gKyhkZWZpbmUg KGhleHBtLXVyaSBuYW1lIHZlcnNpb24pCj4gK8KgICJSZXR1cm4gdGhlIFVSSSB3aGVyZSB0byBm ZXRjaCB0aGUgc291cmNlcyBvZiBhIEhleCBwYWNrYWdlIE5BTUUKPiBhdCBWRVJTSU9OLgo+ICtO QU1FIGlzIHRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIHdoaWNoIHNob3VsZCBsb29rIGxpa2U6IGVs aXhpci1wa2ctCj4gbmFtZS1YLlkuWgo+ICtTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oZXhwbS9z cGVjaWZpY2F0aW9ucy9ibG9iL21haW4vZW5kcG9pbnRzLm1kIgo+ICvCoCAoKGNvbXBvc2UKPiAr wqDCoMKgIChjdXQgc3RyaW5nLWFwcGVuZCAiaHR0cHM6Ly9yZXBvLmhleC5wbS90YXJiYWxscy8i IDw+ICItIgo+IHZlcnNpb24gIi50YXIiKQo+ICvCoMKgwqAgKGN1dCBzdHJpbmctcmVwbGFjZS1z dWJzdHJpbmcgPD4gIi0iICJfIikKPiArwqDCoMKgIHN0cmlwLXByZWZpeCkKPiArwqDCoCBuYW1l KSkKPiArCj4gKzs7IEEgbnVtYmVyIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyBzcGVjaWZpYyB0 byB0aGUgTWl4IGJ1aWxkCj4gc3lzdGVtIGFyZQo+ICs7OyByZWZsZWN0ZWQgaGVyZS7CoCBUaGV5 IGFyZSBkb2N1bWVudGVkIGF0Cj4gKzs7Cj4gaHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE1Ljcv TWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50LXZhcmlhYmxlcy7CoAo+IE90aGVyCj4gKzs7IHBh cmFtZXRlcnMgbG9jYXRlZCBpbiBtaXguZXhzIGFyZSBkZWZpbmVkIGF0Cj4gKzs7Cj4gaHR0cHM6 Ly9oZXhkb2NzLnBtL21peC8xLjE1LjcvTWl4LlByb2plY3QuaHRtbCNtb2R1bGUtY29uZmlndXJh dGlvbgo+ICsoZGVmaW5lKiAobWl4LWJ1aWxkIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICM6a2V5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNvdXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodGVzdHM/ ICN0KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWl4LXBhdGgg I2YpIDtTZWUgTUlYX1BBVEguCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIChtaXgtZXhzICJtaXguZXhzIikgO1NlZSBNSVhfRVhTLgo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQtcGVyLWVudmlyb25tZW50ICN0KSA7U2VlCj4g OmJ1aWxkX3Blcl9lbnZpcm9ubWVudC4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKG91dHB1dHMgJygib3V0IikpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZWFyY2gtcGF0aHMgJygpKQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICglY3VycmVudC1zeXN0ZW0pKQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZ3VpbGUgI2YpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbXBvcnRlZC1tb2R1bGVzIGAo KGd1aXggYnVpbGQgbWl4LWJ1aWxkLQo+IHN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICxAJWdudS1idWlsZC1zeXN0ZW0tCj4gbW9kdWxlcykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgbWl4LWJ1aWxkLXN5c3Rl bSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpKQo+ICvCoCAiQnVpbGQgU09VUkNFIHVzaW5n IEVsaXhpciwgYW5kIHdpdGggSU5QVVRTLiIKPiArCj4gK8KgIDs7IENoZWNrIHRoZSBkb2N1bWVu dGF0aW9uIG9mIDpidWlsZF9wZXJfZW52aXJvbm1lbnQgaGVyZToKPiArwqAgOzsKPiBodHRwczov L2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguUHJvamVjdC5odG1sI21vZHVsZS1jb25maWd1cmF0 aW9uwqBBCj4gbmQKPiArwqAgOzsgIkVudmlyb25tZW50cyIgaGVyZToKPiArwqAgOzsgaHR0cHM6 Ly9oZXhkb2NzLnBtL21peC8xLjE1LjcvTWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50cwo+ICvC oCAoZGVmaW5lIG1peC1lbnZpcm9ubWVudHMKPiArwqDCoMKgIChpZiBidWlsZC1wZXItZW52aXJv bm1lbnQKPiArwqDCoMKgwqDCoMKgwqAgYCgicHJvZCIgLEAoaWYgdGVzdHM/ICcoInRlc3QiKSAn KCkpKQo+ICvCoMKgwqDCoMKgwqDCoCAnKCJzaGFyZWQiKSkpCj4gKwo+ICvCoCAoZGVmaW5lIGJ1 aWxkZXIKPiArwqDCoMKgICh3aXRoLWltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcwo+ ICvCoMKgwqDCoMKgICN+KGJlZ2luCj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKHVzZS1tb2R1 bGVzICMkQChzZXhwLT5nZXhwIG1vZHVsZXMpKQo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgICMk KHdpdGgtYnVpbGQtdmFyaWFibGVzIGlucHV0cyBvdXRwdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICN+KG1peC1idWlsZCAjOm5hbWUgIyRuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzb3VyY2UgIytzb3VyY2UKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnN5 c3RlbSAjJHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6dGVzdHM/ICMkdGVzdHM/Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzptaXgtcGF0aCAjJG1peC1wYXRoCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzptaXgt ZXhzICMkbWl4LWV4cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6bWl4LWVudmlyb25tZW50cyAnIyRtaXgtZW52aXJvbm1lbnRzCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpidWls ZC1wZXItZW52aXJvbm1lbnQgIyRidWlsZC1wZXItCj4gZW52aXJvbm1lbnQKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChp ZiAocGFpcj8gcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZXhwLT5nZXhw IHBoYXNlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRzICVv dXRwdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIzpzZWFyY2gtcGF0aHMgJyMkKHNleHAtPmdleHAKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2VhcmNoLXBhdGgtCj4gc3BlY2lmaWNhdGlvbi0+c2V4cAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aHMpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5wdXRzCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJWJ1aWxkLWlucHV0cykp KSkpCj4gKwo+ICvCoCAobWxldCAlc3RvcmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ZGVyaXZh dGlvbiAob3IgZ3VpbGUKPiAoZGVmYXVsdC1ndWlsZSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0PyAjZikpKQo+ICvCoMKgwqAgKGdleHAtPmRlcml2YXRp b24gbmFtZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVp bGRlcgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0 ZW0gc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAj OmdyYWZ0PyAjZsKgwqDCoMKgwqDCoCA7Y29uc2lzdGVudCB3aXRoICdnbnUtYnVpbGQnCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRhcmdldCAjZgo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpndWlsZS1mb3ItYnVp bGQgZ3VpbGUpKSkKPiArCj4gKyhkZWZpbmUqIChsb3dlciBuYW1lCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KGVsaXhpciAoZGVmYXVsdC1lbGl4aXIpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGVsaXhpci1oZXggKGRlZmF1bHQtZWxpeGlyLWhleCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAoZ2xpYmMtdXRmOC1sb2NhbGVzIChkZWZhdWx0LWdsaWJjLXV0ZjgtbG9j YWxlcykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5wdXRzICcoKSkKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChuYXRpdmUtaW5wdXRzICcoKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChwcm9wYWdhdGVkLWlucHV0cyAnKCkpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXIzIChkZWZhdWx0LXJlYmFyMykpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodGVzdHM/ICN0KQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc291cmNlCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzeXN0ZW0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRhcmdldAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgIzphbGxvdy1vdGhlci1rZXlzICM6cmVzdCBhcmd1bWVudHMpCj4gK8Kg ICJSZXR1cm4gYSBiYWcgZm9yIE5BTUUuIgo+ICvCoCAobGV0ICgocHJpdmF0ZS1rZXl3b3Jkcwo+ ICvCoMKgwqDCoMKgwqDCoMKgICcoIzppbnB1dHMgIzpuYXRpdmUtaW5wdXRzCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgICM6b3V0cHV0cyAjOnN5c3RlbSAjOnRhcmdldAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoCAjOmVsaXhpciAjOmVsaXhpci1oZXggIzpnbGliYy11dGY4LWxvY2FsZXMKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqAgIzpyZWJhcjMgIzplcmxhbmcpKQo+ICvCoMKgwqDCoMKgwqDCoCAo YnVpbGQtaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqAgYCgsQChzdGFuZGFyZC1wYWNrYWdlcykK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCJnbGliYy11dGY4LWxvY2FsZXMiICxnbGliYy11dGY4 LWxvY2FsZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICgiZXJsYW5nIiAsKGxvb2t1cC1wYWNr YWdlLWlucHV0IGVsaXhpciAiZXJsYW5nIikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICgicmVi YXIzIiAscmViYXIzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoImVsaXhpciIgLGVsaXhpcikK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCJlbGl4aXItaGV4IiAsZWxpeGlyLWhleCkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqAgLEBpbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgLEBuYXRp dmUtaW5wdXRzKSkpCj4gK8KgIChiYWcgKG5hbWUgbmFtZSkKPiArwqDCoMKgwqDCoMKgIChzeXN0 ZW0gc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqAgKGJ1aWxkLWlucHV0cyBidWlsZC1pbnB1dHMpCj4g K8KgwqDCoMKgwqDCoCAoaG9zdC1pbnB1dHMgKGlmIHRhcmdldCBpbnB1dHMgJygpKSkKPiArwqDC oMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoCAoYnVpbGQgbWl4LWJ1 aWxkKQo+ICvCoMKgwqDCoMKgwqAgKGFyZ3VtZW50cyAoc3RyaXAta2V5d29yZC1hcmd1bWVudHMg cHJpdmF0ZS1rZXl3b3Jkcwo+IGFyZ3VtZW50cykpKSkpCj4gKwo+ICsoZGVmaW5lIG1peC1idWls ZC1zeXN0ZW0KPiArwqAgKGJ1aWxkLXN5c3RlbSAobmFtZSAnbWl4KQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGRlc2NyaXB0aW9uICJUaGUgc3RhbmRhcmQgTWl4IGJ1aWxkIHN5 c3RlbSIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobG93ZXIgbG93ZXIpKSkK PiArCj4gKzs7OyBtaXguc2NtIGVuZHMgaGVyZQo+IGRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL21p eC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9taXgtYnVpbGQtCj4gc3lzdGVtLnNjbQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmNhNjQ5NTgyCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL2d1aXgvYnVpbGQvbWl4LWJ1aWxkLXN5c3RlbS5zY20KPiBAQCAtMCww ICsxLDE3MSBAQAo+ICs7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2Vt ZW50IGZvciBHTlUKPiArOzs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJp bmcKPiA8cGhmcm9ocmluZ0BkZWVwbGlua3MuY29tPgo+ICs7OzsKPiArOzs7IFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBHdWl4Lgo+ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ICs7OzsgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQKPiBieQo+ICs7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwKPiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KPiArOzs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7IE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4g Kzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICs7OzsK PiArOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYwo+IExpY2Vuc2UKPiArOzs7IGFsb25nIHdpdGggR05VIEd1aXguwqAgSWYgbm90LCBz ZWUKPiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBDb21tZW50YXJ5 Ogo+ICs7Owo+ICs7OyBDb2RlOgo+ICsKPiArKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgbWl4 LWJ1aWxkLXN5c3RlbSkKPiArwqAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUtYnVpbGQt c3lzdGVtKSAjOnByZWZpeCBnbnU6KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRp bHMpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgZnR3KQo+ICvCoCAjOnVzZS1tb2R1bGUgKGlj ZS05IG1hdGNoKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQo+ICvCoCAjOnVzZS1t b2R1bGUgKGljZS05IHN0cmluZy1mdW4pCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEp Cj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQo+ICvCoCAjOnVzZS1tb2R1bGUgKHNy Zmkgc3JmaS03MSkKPiArwqAgIzpleHBvcnQgKG1peC1idWlsZAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICVzdGFuZGFyZC1waGFzZXMpKQo+ICsKPiArOzsgVGhlIEVsaXhpciB2ZXJzaW9uIGlz IGNvbnN0YW50IGFzIHNvb24gYXMgaXQgaXMgY29tcHV0YWJsZSBmcm9tCj4gdGhlIGN1cnJlbnQK PiArOzsgZXhlY3V0aW9uLiBJdCBpcyBhIFguWSBzdHJpbmcgd2hlcmUgWCBhbmQgWSBhcmUgcmVz cGVjdGl2ZWx5IHRoZQo+IG1ham9yIGFuZAo+ICs7OyBtaW5vciB2ZXJzaW9uIG51bWJlciBvZiB0 aGUgRWxpeGlyIHVzZWQgaW4gdGhlIGJ1aWxkLgo+ICsoZGVmaW5lICVlbGl4aXItdmVyc2lvbiAo bWFrZS1wYXJhbWV0ZXIgIlguWSIpKQo+ICsKPiArKGRlZmluZSogKGVsaXhpci1saWJkaXIgcGF0 aCAjOm9wdGlvbmFsICh2ZXJzaW9uICglZWxpeGlyLXZlcnNpb24pKSkKPiArwqAgIlJldHVybiB0 aGUgcGF0aCB3aGVyZSBhbGwgbGlicmFyaWVzIGZvciBhIHNwZWNpZmllZCBFTElYSVIKPiB2ZXJz aW9uIGFyZSBpbnN0YWxsZWQuIgo+ICvCoCAoc3RyaW5nLWFwcGVuZCBwYXRoICIvbGliL2VsaXhp ci8iIHZlcnNpb24pKQo+ICsKPiArKGRlZmluZSAoZXJsYW5nLWxpYmRpciBwYXRoKQo+ICvCoCAi UmV0dXJuIHRoZSBwYXRoIG9mIHRoZSBkaXJlY3Rvcnkgd2hlcmUgbGlicmFyaWVzIG9mIGFuIEVy bGFuZwo+IHBhY2thZ2UgYXJlCj4gK2luc3RhbGxlZCBpbiB0aGUgc3RvcmUuIgo+ICvCoCAoc3Ry aW5nLWFwcGVuZCBwYXRoICIvbGliL2VybGFuZy9saWIiKSkKPiArCj4gKyhkZWZpbmUqIChzdHJp cC1wcmVmaXggbmFtZSAjOm9wdGlvbmFsIChwcmVmaXggImVsaXhpci0iKSkKPiArwqAgIlJldHVy biBOQU1FIHdpdGhvdXQgdGhlIHByZWZpeCBQUkVGSVguIgo+ICvCoCAoaWYgKHN0cmluZy1wcmVm aXg/IHByZWZpeCBuYW1lKQo+ICvCoMKgwqDCoMKgIChzdHJpbmctZHJvcCBuYW1lIChzdHJpbmct bGVuZ3RoIHByZWZpeCkpCj4gK8KgwqDCoMKgwqAgbmFtZSkpCj4gKwo+ICsoZGVmaW5lIChtaXgt YnVpbGQtZGlyIG1peC1lbnYpCj4gK8KgICJSZXR1cm4gdGhlIGRpcmVjdG9yeSB3aGVyZSBidWls ZCBhcnRpZmFjdHMgYXJlIHRvIGJlIGluc3RhbGxlZAo+IGFjY29yZGluZyB0bwo+ICtlbiBlbnZp cm9ubWVudCBNSVgtRU5WIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4iCj4gK8KgIChzdHJpbmct YXBwZW5kICJfYnVpbGQvIiBtaXgtZW52ICIvbGliIikpCj4gKwo+ICsoZGVmaW5lIChlbGl4aXIt dmVyc2lvbiBpbnB1dHMpCj4gK8KgICJSZXR1cm4gYW4gWC5ZIHN0cmluZyB3aGVyZSBYIGFuZCBZ IGFyZSByZXNwZWN0aXZlbHkgdGhlIG1ham9yIGFuZAo+IG1pbm9yIHZlcnNpb24gbnVtYmVyIG9m IEVMSVhJUi4KPiArRXhhbXBsZTogL2dudS9zdG9yZS/igKYtZWxpeGlyLTEuMTQuMCDihpIgMS4x NCIKPiArwqAgKGxldCogKChfIHZlcnNpb24gKHBhY2thZ2UtbmFtZS0+bmFtZSt2ZXJzaW9uCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHN0cmlwLXN0b3JlLWZp bGUtbmFtZSAoYXNzb2MtcmVmIGlucHV0cwo+ICJlbGl4aXIiKSkpKQo+ICvCoMKgwqDCoMKgwqDC oMKgIChjb21wb25lbnRzwqAgKHN0cmluZy1zcGxpdCB2ZXJzaW9uICNcLikpCj4gK8KgwqDCoMKg wqDCoMKgwqAgKG1ham9yK21pbm9yICh0YWtlIGNvbXBvbmVudHMgMikpKQo+ICvCoMKgwqAgKHN0 cmluZy1qb2luIG1ham9yK21pbm9yICIuIikpKQo+ICsKPiArKGRlZmluZSogKHVucGFjayAjOmtl eSBzb3VyY2UgbWl4LXBhdGggIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAiVW5wYWNrIFNPVVJD RSBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnksIGFuZCBjaGFuZ2UgZGlyZWN0b3J5Cj4gd2l0aGlu IHRoZQo+ICtzb3VyY2UuwqAgV2hlbiBTT1VSQ0UgaXMgYSBkaXJlY3RvcnksIGNvcHkgaXQgaW4g YSBzdWItZGlyZWN0b3J5IG9mCj4gdGhlIGN1cnJlbnQKPiArd29ya2luZyBkaXJlY3RvcnkuIgo+ ICvCoCAobGV0ICgoZ251LXVucGFjayAoYXNzb2MtcmVmIGdudTolc3RhbmRhcmQtcGhhc2VzICd1 bnBhY2spKSkKPiArwqDCoMKgIChnbnUtdW5wYWNrICM6c291cmNlIHNvdXJjZSkKPiArwqDCoMKg ICh3aGVuIChmaWxlLWV4aXN0cz8gImNvbnRlbnRzLnRhci5neiIpCj4gK8KgwqDCoMKgwqAgKGlu dm9rZSAidGFyIiAieHZmIiAiY29udGVudHMudGFyLmd6IikpKSkKPiArCj4gKyhkZWZpbmUgKGxp c3QtZGlyZWN0b3JpZXMgZGlyKQo+ICvCoCAiTGlzdCBhYnNvbHV0ZSBwYXRocyBvZiBkaXJlY3Rv cmllcyBkaXJlY3RseSB1bmRlciB0aGUgZGlyZWN0b3J5Cj4gRElSLiIKPiArwqAgKG1hcCAoY3V0 IHN0cmluZy1hcHBlbmQgZGlyICIvIiA8PikKPiArwqDCoMKgwqDCoMKgIChzY2FuZGlyIGRpciAo bGFtYmRhIChmaWxlbmFtZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChhbmQgKG5vdCAobWVtYmVyIGZpbGVuYW1lICcoIi4iICIuLiIpKSkKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGlyZWN0b3J5 LWV4aXN0cz8gKHN0cmluZy1hcHBlbmQgZGlyICIvIgo+IGZpbGVuYW1lKSkpKSkpKQo+ICsKPiAr KGRlZmluZSogKHNldC1taXgtZW52ICM6a2V5IGlucHV0cyBtaXgtcGF0aCBtaXgtZXhzICM6YWxs b3ctb3RoZXItCj4ga2V5cykKPiArwqAgIlNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCj4gK1Nl ZToKPiBodHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguaHRtbCNtb2R1bGUtZW52aXJv bm1lbnQtdmFyaWFibGVzIgo+ICvCoCAoc2V0ZW52ICJNSVhfSE9NRSIgKGdldGN3ZCkpCj4gK8Kg IChzZXRlbnYgIk1JWF9BUkNISVZFUyIgImFyY2hpdmVzIikKPiArwqAgKHNldGVudiAiTUlYX0JV SUxEX1JPT1QiICJfYnVpbGQiKQo+ICvCoCAoc2V0ZW52ICJNSVhfREVQU19QQVRIIiAiZGVwcyIp Cj4gK8KgIChzZXRlbnYgIk1JWF9QQVRIIiAob3IgbWl4LXBhdGggIiIpKQo+ICvCoCAoc2V0ZW52 ICJNSVhfUkVCQVIzIiAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIGlucHV0cyAicmViYXIzIikK PiAiL2Jpbi9yZWJhcjMiKSkKPiArwqAgKHNldGVudiAiTUlYX0VYUyIgbWl4LWV4cykKPiArwqAg KCVlbGl4aXItdmVyc2lvbiAoZWxpeGlyLXZlcnNpb24gaW5wdXRzKSkpCiVlbGl4aXItdmVyc2lv biBpcyBub3QgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuICBZb3Ugc2hvdWxkIHNldCB0aGlzIHVw CnNlcGFyYXRlbHkgb3IgYXQgdGhlIHZlcnkgbGVhc3QgYWRkIGEgYmlnIGZhdCBjb21tZW50IGV4 cGxhaW5pbmcgd2hhdAp5b3UncmUgZG9pbmcgaGVyZSA6KQo+ICsKPiArKGRlZmluZSogKGluc3Rh bGwtaGV4ICM6a2V5IG5hbWUgaW5wdXRzIG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvC oCAiSW5zdGFsbCBIZXguIgo+ICvCoCAobGV0ICgoaGV4LWFyY2hpdmUtcGF0aCAoc3RyaW5nLWFw cGVuZCAoZ2V0ZW52ICJNSVhfQVJDSElWRVMiKQo+ICIvaGV4IikpKQo+ICvCoMKgwqAgKG1rZGly LXAgaGV4LWFyY2hpdmUtcGF0aCkKPiArwqDCoMKgIChzeW1saW5rIChjYXIgKGxpc3QtZGlyZWN0 b3JpZXMgKGVsaXhpci1saWJkaXIgKGFzc29jLXJlZiBpbnB1dHMKPiAiZWxpeGlyLWhleCIpKSkp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5nLWFwcGVuZCBoZXgtYXJjaGl2ZS1w YXRoICIvaGV4IikpKSkKSXMgdGhpcyBzdGlsbCBuZWVkZWQ/Cgo+ICsoZGVmaW5lKiAoaW5zdGFs bC1kZXBlbmRlbmNpZXMgLiBfKQo+ICvCoCAiSW5zdGFsbCBkZXBlbmRlbmNpZXMuIgo+ICvCoCAo c2V0ZW52ICJFUkxfTElCUyIgKGdldGVudiAiR1VJWF9FUkxfTElCUyIpKSkKV2h5IG5vdCBkbyB0 aGlzIGFzIHBhcnQgb2Ygc2V0dGluZyB1cCBtaXgtZW52PwoKPiArKGRlZmluZSogKGJ1aWxkICM6 a2V5IG1peC1lbnZpcm9ubWVudHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoCAiQnVpbGRzIHRo ZSBNaXggcHJvamVjdC4iCj4gK8KgIChmb3ItZWFjaCAobGFtYmRhIChtaXgtZW52KQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc2V0ZW52ICJNSVhfRU5WIiBtaXgtZW52KQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW52b2tlICJtaXgiICJjb21waWxlIiAiLS1uby1kZXBz LWNoZWNrIikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWl4LWVudmlyb25tZW50cykpCj4g Kwo+ICsoZGVmaW5lKiAoY2hlY2sgIzprZXkgKHRlc3RzPyAjdCkgIzphbGxvdy1vdGhlci1rZXlz KQo+ICvCoCAiVGVzdCB0aGUgTWl4IHByb2plY3QuIgo+ICvCoCAoaWYgdGVzdHM/Cj4gK8KgwqDC oMKgwqAgKGludm9rZSAibWl4IiAidGVzdCIgIi0tbm8tZGVwcy1jaGVjayIpCj4gK8KgwqDCoMKg wqAgKGZvcm1hdCAjdCAidGVzdHM/ID0gfmF+JSIgdGVzdHM/KSkpCj4gKwo+ICsoZGVmaW5lKiAo cmVtb3ZlLW1peC1kaXJzIC4gXykKPiArwqAgIlJlbW92ZSBhbGwgLm1peC8gZGlyZWN0b3JpZXMu Cj4gK1dlIGRvIG5vdCB3YW50IHRvIGNvcHkgdGhlbSB0byB0aGUgaW5zdGFsbGF0aW9uIGRpcmVj dG9yeS4iCj4gK8KgIChmb3ItZWFjaCBkZWxldGUtZmlsZS1yZWN1cnNpdmVseQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChmaW5kLWZpbGVzICIuIiAoZmlsZS1uYW1lLXByZWRpY2F0ZSAiXFwu bWl4JCIpCj4gIzpkaXJlY3Rvcmllcz8gI3QpKSkKPiArCj4gKyhkZWZpbmUgKHBhY2thZ2UtbmFt ZS12ZXJzaW9uLT5lbGl4aXItbmFtZSBuYW1lK3ZlcikKPiArwqAgIkNvbnZlcnQgdGhlIEd1aXgg cGFja2FnZSBOQU1FLVZFUiB0byB0aGUgY29ycmVzcG9uZGluZyBFbGl4aXIKPiBuYW1lLXZlcnNp b24KPiArZm9ybWF0LsKgIEVzc2VudGlhbGx5IGRyb3AgdGhlIHByZWZpeCB1c2VkIGluIEd1aXgg YW5kIHJlcGxhY2UgZGFzaGVzCj4gYnkKPiArdW5kZXJzY29yZXMuIgo+ICvCoCAobGV0KiAoKG5h bWUtIChwYWNrYWdlLW5hbWUtPm5hbWUrdmVyc2lvbiBuYW1lK3ZlcikpKQo+ICvCoMKgwqAgKHN0 cmluZy1qb2luCj4gK8KgwqDCoMKgIChzdHJpbmctc3BsaXQKPiArwqDCoMKgwqDCoCAoaWYgKHN0 cmluZy1wcmVmaXg/ICJlbGl4aXItIiBuYW1lLSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChzdHJp bmctZHJvcCBuYW1lLSAoc3RyaW5nLWxlbmd0aCAiZWxpeGlyLSIpKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqAgbmFtZS0pCj4gK8KgwqDCoMKgwqAgI1wtKQo+ICvCoMKgwqDCoCAiXyIpKSkKPiArCj4g KyhkZWZpbmUqIChpbnN0YWxsICM6a2V5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0 cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hbWUKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWlsZC1wZXItZW52aXJvbm1lbnQKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgICJJ bnN0YWxsIGJ1aWxkIGFydGlmYWN0cyBpbiB0aGUgc3RvcmUuIgo+ICvCoCAobGV0KiAoKGxpYi1u YW1lIChwYWNrYWdlLW5hbWUtdmVyc2lvbi0+ZWxpeGlyLW5hbWUgbmFtZSkpCj4gK8KgwqDCoMKg wqDCoMKgwqAgKGxpYi1kaXIgKHN0cmluZy1hcHBlbmQgKGVsaXhpci1saWJkaXIgKGFzc29jLXJl ZiBvdXRwdXRzCj4gIm91dCIpKSAiLyIgbGliLW5hbWUpKSkKPiArwqDCoMKgIChta2Rpci1wIGxp Yi1kaXIpCj4gK8KgwqDCoCAoY29weS1yZWN1cnNpdmVseSAoc3RyaW5nLWFwcGVuZCAobWl4LWJ1 aWxkLWRpciAoaWYgYnVpbGQtcGVyLQo+IGVudmlyb25tZW50ICJwcm9kIiAic2hhcmVkIikpICIv IiBsaWItbmFtZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGxpYi1kaXIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 Zm9sbG93LXN5bWxpbmtzPyAjdCkpKQo+ICsKPiArKGRlZmluZSAlc3RhbmRhcmQtcGhhc2VzCj4g K8KgIChtb2RpZnktcGhhc2VzIGdudTolc3RhbmRhcmQtcGhhc2VzCj4gK8KgwqDCoCAoZGVsZXRl ICdib290c3RyYXApCj4gK8KgwqDCoCAoZGVsZXRlICdjb25maWd1cmUpCj4gK8KgwqDCoCAoYWRk LWFmdGVyICdpbnN0YWxsLWxvY2FsZSAnc2V0LW1peC1lbnYgc2V0LW1peC1lbnYpCj4gK8KgwqDC oCAocmVwbGFjZSAndW5wYWNrIHVucGFjaykKPiArwqDCoMKgIChyZXBsYWNlICdidWlsZCBidWls ZCkKPiArwqDCoMKgIChyZXBsYWNlICdjaGVjayBjaGVjaykKPiArwqDCoMKgIChhZGQtYmVmb3Jl ICdpbnN0YWxsICdyZW1vdmUtbWl4LWRpcnMgcmVtb3ZlLW1peC1kaXJzKQo+ICvCoMKgwqAgKHJl cGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkpKQo+ICsKPiArKGRlZmluZSogKG1peC1idWlsZCAjOmtl eSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0IGFyZ3MpCj4gK8Kg ICJCdWlsZCB0aGUgZ2l2ZW4gTWl4IHBhY2thZ2UsIGFwcGx5aW5nIGFsbCBvZiBQSEFTRVMgaW4g b3JkZXIuIgo+ICvCoCAoYXBwbHkgZ251OmdudS1idWlsZCAjOmlucHV0cyBpbnB1dHMgIzpwaGFz ZXMgcGhhc2VzIGFyZ3MpKQo+ICsKPiArOzs7IG1peC1idWlsZC1zeXN0ZW0uc2NtIGVuZHMgaGVy ZQo+IAo+IGJhc2UtY29tbWl0OiBhMGQzMzdlNzljODdkN2MzOGM3OWQwMjkxOTc0ZjQ5MGNiMTM3 YTUyCkNoZWVycwo= From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Nov 2023 04:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.1700282695608 (code B ref 66801); Sat, 18 Nov 2023 04:45:02 +0000 Received: (at 66801) by debbugs.gnu.org; 18 Nov 2023 04:44:55 +0000 Received: from localhost ([127.0.0.1]:47376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4DCQ-00009k-GK for submit@debbugs.gnu.org; Fri, 17 Nov 2023 23:44:54 -0500 Received: from mail-yw1-x112b.google.com ([2607:f8b0:4864:20::112b]:45194) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4DCK-00009T-Sb for 66801@debbugs.gnu.org; Fri, 17 Nov 2023 23:44:52 -0500 Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-5c90be2ea21so3124417b3.2 for <66801@debbugs.gnu.org>; Fri, 17 Nov 2023 20:44:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700282682; x=1700887482; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5GBvaFBNtGwgkm38AqBwbA9gFkJ1I51OcmdPWd4D06w=; b=EBiLjOEA7tzs7HB83INdJFZeJjklLAD7uCILGKv78dEMBQFoHNSnRw8WCpCtAU55eD KEk7FBJcVonfork6ZUhSxh+Qv+oCZKXh2CHWZ4tvrfhn1Xp2EF8RvwIkkDgM7lNVxYMH wm37W68CtYq8wPUJIPQCtnzMGtSuH7iDNNI+FLPe18zvW0Cw+78HTBXWYMrhRw536yBo qNKUFssBoIp0mP3LPqLVP08cnWQRLWqXhKmijKWPVHOeTL4REKJynO9KC5QYnLEXrHD9 rpGZejbCqD5WYpaMXq+g/Z29zldLXkWsPMItAZD4KKmB7aJGK9k6wTub9aji8ZUQ6K4Y aqqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700282682; x=1700887482; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5GBvaFBNtGwgkm38AqBwbA9gFkJ1I51OcmdPWd4D06w=; b=NC9yjjCVcrfDRcuBDNlMeZVTiDWz61Ow138q/O5kzSTH0jZp5lQov8d87VKD8Lp/Pu OUdgWC+tsou97DfK2elJEssgXUy8CVGGV5bVtlnW70vtA3yvrYerCz7DMQ6dOPl4ceED QatyjOqvA6I4goU2qiA5RiLv8VgaDzEK2GuDMp0OdfJE1yHDtaZuJu1ivhofQF8lg5EW FTRTq6sv7qhJN443IqWkQ5DeT45cLstHRm7crZU32A4R22kebzyAxpukRJDC/YTkhfV8 WR9ory5MQx8hLmXba5IegN/65iM13WBcIOl+ZgVTU1oWoxZdYkLawlDrJbGPkSmFvdbQ PMGQ== X-Gm-Message-State: AOJu0YzQvIefzx7NAZ5BGKqc3QfoczDxHTCzOz448I0lJNrlJoPg+5YI MAD7a/lv8zx37OlAp/RFL9ZwyznEzmcfLVIXDEp3gLGj1ikj8+J7ia0= X-Google-Smtp-Source: AGHT+IGKoCCmN4el0DxuI6MdNuPElcBvaHOkb1f4KCPQ41VIKh+aeUuX18taAeWbSApNK7f1ONzc2dVEKSJYmdm4Ma8= X-Received: by 2002:a81:9141:0:b0:5b3:60c2:5781 with SMTP id i62-20020a819141000000b005b360c25781mr1552310ywg.32.1700282682217; Fri, 17 Nov 2023 20:44:42 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sat, 18 Nov 2023 05:44:31 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) 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 (-) * WAITING Comment ** lilyp > * guix/build-system/mix.scm, > * guix/build/mix-build-system.scm: New modules. Avoid spanning a change across multiple files. Use file: Change. file2: Likewise. > gnu/packages/elixir.scm | 62 ++++++++++- > guix/build-system/mix.scm | 187 > ++++++++++++++++++++++++++++++++ > guix/build/mix-build-system.scm | 171 +++++++++++++++++++++++++++++ You committed two changes at once here. Split them. ** phf How are changes counted? I've counted one because all of these changes are needed to introduce the ~mix-build-system~. Should it be: #+begin_example ,* gnu/packages/elixir.scm (elixir): Search path GUIX_ELIXIR_LIBS added. ,* gnu/packages/elixir.scm (elixir): Wrap programs with ERL_LIBS=${GUIX_ELIXIR_LIBS}. ,* guix/build-system/mix.scm: New modules. ,* guix/build/mix-build-system.scm: New modules. #+end_example or something else? * WAITING Comment ** lilyp > +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other- > keys) > + "Set environment variables. > +See: > https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" > + (setenv "MIX_HOME" (getcwd)) > + (setenv "MIX_ARCHIVES" "archives") > + (setenv "MIX_BUILD_ROOT" "_build") > + (setenv "MIX_DEPS_PATH" "deps") > + (setenv "MIX_PATH" (or mix-path "")) > + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") > "/bin/rebar3")) > + (setenv "MIX_EXS" mix-exs) > + (%elixir-version (elixir-version inputs))) %elixir-version is not an environment variable. You should set this up separately or at the very least add a big fat comment explaining what you're doing here :) ** phf What about both? #+begin_src scheme (define* (set-elixir-version #:key inputs #:allow-other-keys) "Set Elixir version. Compiled libraries are specific to each Elixir version. If a library is intended to be used with multiple Elixir versions, it needs to be compiled separately for each version. The parameter %elixir-version, set for the current build, is used to differentiate between the compiled versions of libraries corresponding to different Elixir versions." (%elixir-version (elixir-version inputs)) (format #t "Elixir version: ~a~%" (%elixir-version))) #+end_src * WAITING Comment ** lilyp > + (list (search-path-specification > + (variable "GUIX_ERL_LIBS") > + (files (list "lib/erlang/lib" > + (string-append "lib/elixir/" (version- > major+minor version))))))) I suppose ERL is for erlang? What do we use for elixir then? ** phf Changed for ~GUIX_ELIXIR_LIBS~. Is that OK? * WAITING Comment ** lilyp > +(define* (install-dependencies . _) > + "Install dependencies." > + (setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS"))) Why not do this as part of setting up mix-env? ** phf If we have this phase in the ~elixir~ package: #+begin_src scheme (add-after 'install 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (programs '("elixir" "elixirc" "iex" "mix"))) (for-each (lambda (program) (wrap-program (string-append out "/bin/" program) '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}")))) programs)))) #+end_src and this native search path: #+begin_src scheme (search-path-specification (variable "GUIX_ELIXIR_LIBS") (files (list "lib/erlang/lib" (string-append "lib/elixir/" (version-major+minor version))))) #+end_src then, ~(setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS"))~ is not needed anymore. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Nov 2023 07:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170029155116678 (code B ref 66801); Sat, 18 Nov 2023 07:13:02 +0000 Received: (at 66801) by debbugs.gnu.org; 18 Nov 2023 07:12:31 +0000 Received: from localhost ([127.0.0.1]:47699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4FVG-0004Kv-HS for submit@debbugs.gnu.org; Sat, 18 Nov 2023 02:12:30 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:59754) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4FVA-0004Ke-Qd for 66801@debbugs.gnu.org; Sat, 18 Nov 2023 02:12:28 -0500 Received: by mail-wm1-x341.google.com with SMTP id 5b1f17b1804b1-4083cd3917eso1760945e9.3 for <66801@debbugs.gnu.org>; Fri, 17 Nov 2023 23:12:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700291538; x=1700896338; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=vq5/Jn0/1d8Eeche24b6h7OWEKYT7fRFieG8DGkqK9U=; b=GytNKU+OLMKYU+5ACAnfqqOVmITP8CXfhr/fqPv8vCwolGjpunuIAPo1afKgk2tYgi 2TBr3PxMtmn03pQCXZmfZlAFiHndCUeBQH/7nXN3pDScGbOi0mLqWLVbFSUBeq+b3Vrc 2q7k1idPtO5CDGudGIh9ooLrYlxLhfYwPuA3H6tGMJJ7LTIoQFmkOOiSNDDb67gcL4eH q9ft51Ad+thUfUwIo1pO8/nrJWGRO8d8PHJsruIJr9ss07PMR2s8Dto19LKVXfIU2+4R cuU2L0fVjU91bJ86YPWaS5J6sX3E5t+DY/L8vMOl46LrTRXgCynUC64aUvTcuZohi3zE VNOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700291538; x=1700896338; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vq5/Jn0/1d8Eeche24b6h7OWEKYT7fRFieG8DGkqK9U=; b=D0qR9PLvJ1BW36aYywJInKPJRr0Q78q+vn5ZncevZ1hUfJYNKINH6jwryvRwapp4Bz kmKIrmqgBSU0RqozjlzmHJycgL360VKsKsWPkAEEetk8okTCuseHlS5MlpScXsrYlgqc P7buI82sG/RMPQV72leBTX5kUppI5qcjL/dDyrA70aD8mF99uocINi7mDhIkWIiT6qPb Q6yRNssJoRzoRIjBmx4KE9g3S2uvlG4YE8w5NDMYPo9d2br+D7EptHkxSLHj7gJfm6QX oCuuL6NmVHmmyxfja1b13kpb4XNkLcjS+P6S07je3v1tE+JS/WYQKAko/K9m7uhxepRY AQvg== X-Gm-Message-State: AOJu0Yy+RgOsWLaIB+DXsgT7xz9Cs6bMKzZy4fMRt6jLFAkzNGVd3jCL 9ZRETk83HcHkxNyv3EHzvqo6bzVnc8J8pw== X-Google-Smtp-Source: AGHT+IFrM4GSI7e979gjPHwTpFI1iAwv+cMWF40CKhM7Xfx8l0Co8TEmu0leyfpFRvsQ0s39Wp+MsA== X-Received: by 2002:a05:600c:4f94:b0:409:2c5:b2cd with SMTP id n20-20020a05600c4f9400b0040902c5b2cdmr1105357wmq.14.1700291537587; Fri, 17 Nov 2023 23:12:17 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id j33-20020a05600c1c2100b0040772934b12sm9927250wms.7.2023.11.17.23.12.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Nov 2023 23:12:16 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Sat, 18 Nov 2023 08:12:14 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) 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 (-) Am Samstag, dem 18.11.2023 um 05:44 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > * WAITING Comment > ** lilyp > > * guix/build-system/mix.scm, > > * guix/build/mix-build-system.scm: New modules. > Avoid spanning a change across multiple files.=C2=A0 Use > file: Change. > file2: Likewise. >=20 > > =C2=A0gnu/packages/elixir.scm=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 |=C2=A0 62 ++++++++++- > > =C2=A0guix/build-system/mix.scm=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 1= 87 > > ++++++++++++++++++++++++++++++++ > > =C2=A0guix/build/mix-build-system.scm | 171 > > +++++++++++++++++++++++++++++ > You committed two changes at once here.=C2=A0 Split them. >=20 >=20 > ** phf > How are changes counted? I've counted one because all of these > changes > are needed > to introduce the ~mix-build-system~. Should it be: > #+begin_example > ,* gnu/packages/elixir.scm (elixir): Search path GUIX_ELIXIR_LIBS > added. > ,* gnu/packages/elixir.scm (elixir): Wrap programs with > ERL_LIBS=3D${GUIX_ELIXIR_LIBS}. > ,* guix/build-system/mix.scm: New modules. > ,* guix/build/mix-build-system.scm: New modules. > #+end_example > or something else? You can add the two build-system files in one go. The changes to elixir and the new elixir-hex package are one patch each. > * WAITING Comment > ** lilyp > > +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other- > > keys) > > +=C2=A0 "Set environment variables. > > +See: > > https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables > > " > > +=C2=A0 (setenv "MIX_HOME" (getcwd)) > > +=C2=A0 (setenv "MIX_ARCHIVES" "archives") > > +=C2=A0 (setenv "MIX_BUILD_ROOT" "_build") > > +=C2=A0 (setenv "MIX_DEPS_PATH" "deps") > > +=C2=A0 (setenv "MIX_PATH" (or mix-path "")) > > +=C2=A0 (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") > > "/bin/rebar3")) > > +=C2=A0 (setenv "MIX_EXS" mix-exs) > > +=C2=A0 (%elixir-version (elixir-version inputs))) > %elixir-version is not an environment variable.=C2=A0 You should set this > up > separately or at the very least add a big fat comment explaining what > you're doing here :) >=20 >=20 > ** phf > What about both? > #+begin_src scheme > (define* (set-elixir-version #:key inputs #:allow-other-keys) > =C2=A0 "Set Elixir version. > Compiled libraries are specific to each Elixir version. If a library > is intended > to be used with multiple Elixir versions, it needs to be compiled > separately for > each version. The parameter %elixir-version, set for the current > build, is used > to differentiate between the compiled versions of libraries > corresponding to > different Elixir versions." > =C2=A0 (%elixir-version (elixir-version inputs)) > =C2=A0 (format #t "Elixir version: ~a~%" (%elixir-version))) > #+end_src I just noticed that, but do prefer to spaces after sentence ending periods. For the docstring, I think you should make clear what is going on from the beginning, e.g.=C2=A0 "Store the version number of the elixir input in a parameter."=20 > * WAITING Comment > ** lilyp > > +=C2=A0=C2=A0=C2=A0=C2=A0 (list (search-path-specification > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (va= riable "GUIX_ERL_LIBS") > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (fi= les (list "lib/erlang/lib" > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= (string-append "lib/elixir/" (version- > > major+minor version))))))) > I suppose ERL is for erlang?=C2=A0 What do we use for elixir then? >=20 >=20 > ** phf > Changed for ~GUIX_ELIXIR_LIBS~. Is that OK? No, because it's still ERL on the other side. A quick web search reveals that this belongs to erlang.=20 >=20 > * WAITING Comment > ** lilyp > > +(define* (install-dependencies . _) > > +=C2=A0 "Install dependencies." > > +=C2=A0 (setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS"))) > Why not do this as part of setting up mix-env? >=20 >=20 > ** phf > If we have this phase in the ~elixir~ package: > #+begin_src scheme > (add-after 'install 'wrap-programs > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (lambd= a* (#:key inputs outputs #:allow-other-keys) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 (let* ((out (assoc-ref outputs "out")) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (programs '("elixir" "elix= irc" "iex" "mix"))) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 (for-each (lambda (program) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 (wrap-program (string-append out "/bin/" > program) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 '("ERL_LIBS" prefix > ("${GUIX_ELIXIR_LIBS}")))) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 programs)))) > #+end_src >=20 > and this native search path: > #+begin_src scheme > (search-path-specification > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (varia= ble "GUIX_ELIXIR_LIBS") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (files= (list "lib/erlang/lib" > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (s= tring-append "lib/elixir/" > (version-major+minor version))))) > #+end_src >=20 > then, ~(setenv "ERL_LIBS" (getenv "GUIX_ERL_LIBS"))~ is not needed > anymore. True, but it's still given in the source files. :) So you can delete it of course (if it's already done by the native- search-path and package as you claim), or you can make it part of the environment setup (if it's not). Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Nov 2023 10:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17003028212312 (code B ref 66801); Sat, 18 Nov 2023 10:21:02 +0000 Received: (at 66801) by debbugs.gnu.org; 18 Nov 2023 10:20:21 +0000 Received: from localhost ([127.0.0.1]:47859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4IR3-0000bD-Fl for submit@debbugs.gnu.org; Sat, 18 Nov 2023 05:20:21 -0500 Received: from mail-yb1-xb35.google.com ([2607:f8b0:4864:20::b35]:47430) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4IQz-0000aw-JY for 66801@debbugs.gnu.org; Sat, 18 Nov 2023 05:20:20 -0500 Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-da41acaea52so2682447276.3 for <66801@debbugs.gnu.org>; Sat, 18 Nov 2023 02:20:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700302811; x=1700907611; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=w97agUbKhBHGkn5CW2u90W99ckyyRraxWkYKpa+x+rg=; b=GNRdpjcLUJqiDEsXQ5CpWRT5EL2cQ2K5vmtsKUmki/N9jiFXPWLkiHWwniYbTw+nTN s6XNsHSgjgv7N9emIQrENS3uc6AgMCUMeZQsssTDBVJI9MOhm5S3cgDDo1ityny55in8 4oo+eVg3K0nsIxfRmE7SSP6ONnrs2tIQlQVoVI1yglJoFYpgbRfYm2qBrEH0b59MyrCT X4WO5IBrgP69PSuCwr7hAmNZzv1S/+F26/Z7ow5gx2QCzbpDtkzSNNM+y+tbThc3cVqc 3SCuYMs5rPFajvyUTi/PjnQywPCM3bOW2XyjT1FNyhsWIWu6I69KebH7Q1MkImOE5ry/ +Ntw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700302811; x=1700907611; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=w97agUbKhBHGkn5CW2u90W99ckyyRraxWkYKpa+x+rg=; b=G7a8mbwCoizSkWaqhAYXIO2wuJwKbMKJOo0XqhBVNA7REoS4XH1FHFIjg0mKN3JZ9h EXbYEczfXneiHGH0CMamnWb4hoA1K+qCZMSHiGdwHyYPWInFtL3D11Yi/h++Wu9IYMwc fza+6aWQ8Bo5dyqNyvOL28h56hjaG1+16BxPh3sNn4RwiCZJOOCR9vdbPXcM1Ugw7LWx ianTWm7Sa5/yY1l7Q8OnCm0AgwAuaF6S8LLKtqrHuPBhES7zwb+F0Gvd3sK7eOFZxcSA E4DJ9njKjd9HzBY/gvJLYDI3Q6Rg673peM/RgEThGXrqHlrZsnTgsEYAtUjfmmT4BK2n Dqxw== X-Gm-Message-State: AOJu0YxppMieXFIYaKniTRoWJaQ6icAjzirxL+GwsI6YkudhBGimw5w5 cISkJlp/C0WrVXC+3NRd8KA/nZkzwqrpAKyUBqgElw== X-Google-Smtp-Source: AGHT+IE9ic1I9BmtiF9HMFC/jeJ26+8TAFpB5wu2tnLyYN0EoK2qhQ3kIxRrDU7MCNm87ebf65JFXlfrWRTbptV/PKQ= X-Received: by 2002:a25:a162:0:b0:db3:61c9:2d49 with SMTP id z89-20020a25a162000000b00db361c92d49mr1945937ybh.23.1700302811021; Sat, 18 Nov 2023 02:20:11 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sat, 18 Nov 2023 11:19:59 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) 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 (-) > > Changed for ~GUIX_ELIXIR_LIBS~. Is that OK? > No, because it's still ERL on the other side. A quick web search > reveals that this belongs to erlang. Yes, ERL_LIBS is valid for both Erlang and Elixir. So, GUIX_ERL_LIBS for both, right? From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Nov 2023 11:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17003059027353 (code B ref 66801); Sat, 18 Nov 2023 11:12:02 +0000 Received: (at 66801) by debbugs.gnu.org; 18 Nov 2023 11:11:42 +0000 Received: from localhost ([127.0.0.1]:47898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4JEk-0001uX-7p for submit@debbugs.gnu.org; Sat, 18 Nov 2023 06:11:42 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:54381) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4JEi-0001uJ-DD for 66801@debbugs.gnu.org; Sat, 18 Nov 2023 06:11:41 -0500 Received: by mail-wm1-x341.google.com with SMTP id 5b1f17b1804b1-408425c7c10so2955875e9.0 for <66801@debbugs.gnu.org>; Sat, 18 Nov 2023 03:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700305894; x=1700910694; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=mchRGftSfGYTqogsQTj0R9EtaRHjLz7ukSjunPsdvJ0=; b=kwBWJGHf1gTkpvI2e2sculZVKfXhOTm2e1pDs+H4dKfkOYf3xZeRvIXO48L1+RjUkl Ff1BvDsx0yYiCjVQCFwf5OlISWELUrRrIZjxbW4zph7qG/XYooSMdUkSpTH6Fpy1vGAc bYhR6RaLDqeO6n/tC8zIYtZ5CR9qDFW+2gjoane5POFpCv1+58+uJBRFdtbvG64mhBSn pzYBBNHf/oJjRdtmblGr+fVhbRxAf3bb1MFetaJln3cbG2U+6lzFBTDTQA1U0kIWLdA0 JDq5Yx8nTfD3aX2mzx87suzfoQQ4M9wBwPgcFy4Fjf6DpOx8csZOjnBH6TaK9PLDUasN g+Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700305894; x=1700910694; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=mchRGftSfGYTqogsQTj0R9EtaRHjLz7ukSjunPsdvJ0=; b=aByC6I6BsmdBgANeejioD6oIfy1eLxJRy0yen1/noT3SkufXxgZR+hjOREmp2A9jFt NpQmlExAhND+oP7ieX/9ypwhfbDo/N1bzBQ+7GyQWjOmqA8esacWT/LL/cHgtvaBXRQa 5Su+65yt9lybKeFVPGHRhbKiJI7iJhxmq5FWX32LZLaqUezr5hFfgHh2fNmMX06l2tan 194RC6z1IvqgxfZ0X2YyaGc15QdL77o7a9DiTuGkISpPrbVxuMF3x7SV8Ei4vaQJwYE+ k8syp6hm6K5L6PVmfDpQ2z1o/8uSu+GKrIN6GIvgKhU8MsS1xlssOS3cWQdcXdBqy7s9 T8ZA== X-Gm-Message-State: AOJu0YyeREkKJQSlzlrnKBebyK+hrDBct6jDPJfRPK5tCKWiJe3YA/MX 4sg7tKlDbgmFg+fXiTkHAwo= X-Google-Smtp-Source: AGHT+IGpzwLe/1yiOdw07U6C9pjlrQ/PqsXXKdyTwXkdByYce1mUPOilV/80E/86Fz7kv8hwVZ6WaA== X-Received: by 2002:a05:600c:c4:b0:405:3d04:5f52 with SMTP id u4-20020a05600c00c400b004053d045f52mr1529244wmm.24.1700305893511; Sat, 18 Nov 2023 03:11:33 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id x13-20020a05600c2a8d00b0040a507f546fsm10284895wmd.8.2023.11.18.03.11.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Nov 2023 03:11:32 -0800 (PST) Message-ID: <2c000a904dd5960752a4cc6a5855c048466f142a.camel@gmail.com> From: Liliana Marie Prikler Date: Sat, 18 Nov 2023 12:11:31 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Samstag, dem 18.11.2023 um 11:19 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > > > Changed for ~GUIX_ELIXIR_LIBS~. Is that OK? > > No, because it's still ERL on the other side.=C2=A0 A quick web search > > reveals that this belongs to erlang. > Yes, ERL_LIBS is valid for both Erlang and Elixir. > So, GUIX_ERL_LIBS for both, right? I'm not sure whether we really need the GUIX_ prefix here; you'd have to check whether the justification for GUIX_PYTHONPATH also holds for erlang and elixir. Anyhow, assuming that elixir and erlang code can be used interchangedly by each once compiled, you should use a single (GUIX_)?ERL_LIBS in both packages. You might also see whether we could use a single path instead of needing the lib/erlang and lib/elixir split, but I leave that up to you. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/14] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Nov 2023 12:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170030895513095 (code B ref 66801); Sat, 18 Nov 2023 12:03:02 +0000 Received: (at 66801) by debbugs.gnu.org; 18 Nov 2023 12:02:35 +0000 Received: from localhost ([127.0.0.1]:47927 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4K1y-0003P8-Fr for submit@debbugs.gnu.org; Sat, 18 Nov 2023 07:02:34 -0500 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]:46309) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4K1w-0003Op-2m for 66801@debbugs.gnu.org; Sat, 18 Nov 2023 07:02:33 -0500 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-5c8c8f731aaso10393937b3.0 for <66801@debbugs.gnu.org>; Sat, 18 Nov 2023 04:02:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1700308945; x=1700913745; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wD3GTSz8hfAZHlQjdr5sC8ixV5pw/anA1BYQWWRhRjE=; b=hEtI7hInoptcqpFO4h6dmikxeDgoCThixz30agOXKnhvCWStij75VZICVajeickkYk G/LY8s67NL11D1ZLdrauZmHNMXDrIjHkl6t5iHCpZAGR2k7QAOI49cYQuT70ov/YSafU w+U6otyxst1+oXBrZ9YGmk6RH55LihEDiLH7bS306s11slqBq89naB0liwGoznbuBl60 ZFPIa48o4mpP8U85URy4uMAgmLrcBiGjQU+ScpD0wNmB1fB7+rFf/J66/wn6X22PGtrk VCp8815wTgesXrV3aBVc0cHYw0nzn3yVPx0Z8Z9+l8cBcGX7Rgdty2ozMmbGOm2CFuO/ KTkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700308945; x=1700913745; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wD3GTSz8hfAZHlQjdr5sC8ixV5pw/anA1BYQWWRhRjE=; b=Jg+EF/La7V6q+6rL8EjUV9gsZ7v50t67GKKomWOkvpJnXZsYiJkdD8bqiXvd5F9ZI2 MPIw4uFpXaSXSnZebvlZ7giEfO2NwQfcXMQkglLnk7X/GDM9WJwLbYAlSWK8Jtk20Xi0 Km8b0ne2VCv9clOv/GrTlU74oRvvSNZVgjxbJ7nncMyKUlTfXZIL76l20hZYPFtVDuv2 N4UgJh3Ut4WyjEH7li/bXnqfL1gNTCAYEIdInFVgZY35r3YIHM6CPJT3T8p7fxP7CsH/ 7TTGX06paxuOXDUKMmxjufGINQPFG0SMNp9ohCZx68FpV7a0BWCsYNTyRNpWsMOcONYl +k2A== X-Gm-Message-State: AOJu0YyYddZt0zwKH+yL8/SsrnQGxM4+OiVERHAEudrHoKWpsEI+YrDp RVCbDqKMSfWnlGq/gFJw5xp8+eZyGtg3Q5iySeKYBg== X-Google-Smtp-Source: AGHT+IFQJ3i9IgwP0HbIUCZdPIYjTwiXW5CSl657ejcD9aOD1wMITUILykdTylbNIPhodWautwFapEky5tAPLgICadQ= X-Received: by 2002:a81:48d6:0:b0:5c5:a04b:91bc with SMTP id v205-20020a8148d6000000b005c5a04b91bcmr2169170ywa.31.1700308945504; Sat, 18 Nov 2023 04:02:25 -0800 (PST) MIME-Version: 1.0 References: <2c000a904dd5960752a4cc6a5855c048466f142a.camel@gmail.com> In-Reply-To: <2c000a904dd5960752a4cc6a5855c048466f142a.camel@gmail.com> From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sat, 18 Nov 2023 13:02:14 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) 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 (-) ** lilyp I'm not sure whether we really need the GUIX_ prefix here; you'd have to ch= eck whether the justification for GUIX_PYTHONPATH also holds for erlang and elixir. *** phf Replacing "Python" by "Elixir" in https://guix.gnu.org/manual/en/html_node/Build-Systems.html, we have: #+begin_quote For packages that install stand-alone Elixir programs under bin/, it takes care of wrapping these programs so that their GUIX_ERL_LIBS environment variable points to all the compiled Elixir and Erlang libraries they depend on. #+end_quote This seems reasonable for Elixir stand-alone programs. #+begin_quote Which Elixir package is used to perform the build can be specified with the #:elixir parameter. This is a useful way to force a package to be built for= a specific version of the Elixir interpreter, which might be necessary if the package is only compatible with a single interpreter version. #+end_quote Reading: https://hexdocs.pm/elixir/1.15.7/compatibility-and-deprecations.ht= ml, this seems reasonable too. This seems to point to GUIX_ERL_LIBS rather than ERL_LIBS. ** lilyp Anyhow, assuming that elixir and erlang code can be used interchangeably by each once compiled, you should use a single (GUIX_)?ERL_LIBS in both packag= es. You might also see whether we could use a single path instead of needing th= e lib/erlang and lib/elixir split, but I leave that up to you. *** phf "elixir and erlang code can be used interchangeably by each once compiled" = is true because: "Elixir compiles into BEAM byte code (via Erlang Abstract Format). This means that Elixir code can be called from Erlang and vice ver= sa, without the need to write any bindings." See: https://elixir-lang.org/crash-course.html#adding-elixir-to-existing-erlang-= programs Ha=E2=80=A6 finally, we see that things should change on the Erlang side to= o. According to https://hexdocs.pm/elixir/1.15.7/compatibility-and-deprecations.html, to a version of Elixir are associated with a few versions of compatible Erlang/OTP. Since the Elixir package mentions a particular version of Erlan= g, then it means that we have X.Y version of Elixir and U.V version for Erlang= . If we have a single path like lib/beam/A.B, then A.B is rather ambiguous. = If instead we have lib/erlang/U.V and lib/elixir/X.Y, then no ambiguities. This seems to point to lib/erlang/U.V and lib/elixir/X.Y. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 07 Dec 2023 22:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66801@debbugs.gnu.org Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , liliana.prikler@gmail.com Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170198848722979 (code B ref 66801); Thu, 07 Dec 2023 22:35:02 +0000 Received: (at 66801) by debbugs.gnu.org; 7 Dec 2023 22:34:47 +0000 Received: from localhost ([127.0.0.1]:43315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBMxC-0005yY-7A for submit@debbugs.gnu.org; Thu, 07 Dec 2023 17:34:47 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:32843) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBMx8-0005yE-9C for 66801@debbugs.gnu.org; Thu, 07 Dec 2023 17:34:44 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 30AC1E0002; Thu, 7 Dec 2023 22:34:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1701988461; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KX2+2QJTAciHuWmi8PFIdJoEPxR7UIYvlpOvpKWojT4=; b=MCe3pl/VNQjGuSmaYgHsFZoWl4wCOuBiHU3JGvD8DYkx7DNUW33rJIiSrM6EOVKDqCbWfa c3QzjawYk6xwIt7MWps+uHNgqMYz5h7/A4kl/UrzF9GUx9Lzyi/o39UqKlXtD4Ir1/wtQL 9ERhSdi3iQvpD2xv1IXI36RiZkal6CtfI8x6SxVjQbaKnYk+L9pKF4Er8IfRCJ+1quaVaY jnxqbcsBua1vYTdevoSWdW/DdLGtbDD//Kt5zDtYjPE2UXQeKNhEHKvaYvBLDzH1jpEwo4 Ul9+1URmshiBl9AY14ROUerFwwmT5uNuK/3NwTQIh1G9BQ//Q2jF4kbPLO15VQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Thu, 7 Dec 2023 23:34:06 +0100 Message-ID: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 --- guix/build-system/mix.scm | 186 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 161 +++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 000000000..1b04053d7 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,186 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cute string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 000000000..fe2e36d18 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries under PATH for a specified Elixir +VERSION are installed." + (string-append path "/lib/elixir/" version)) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-build-root mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the +package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables" + (string-append mix-build-root "/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cute string-join <> ".") + (cute take <> 2) + (cute string-split <> #\.) + strip-prefix + strip-store-file-name) + (assoc-ref inputs "elixir"))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cute string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_EXS" mix-exs) + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3"))) + +(define* (set-elixir-version #:key inputs #:allow-other-keys) + "Store the version number of the Elixir input in a parameter." + (%elixir-version (elixir-version inputs)) + (format #t "Elixir version: ~a~%" (%elixir-version))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Example: elixir-a-pkg-1.2.3 -> a_pkg" + ((compose + (cute string-join <> "_") + (cute drop-right <> 1) + (cute string-split <> #\-)) + (strip-prefix name+ver))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name)) + (root (getenv "MIX_BUILD_ROOT")) + (env (if build-per-environment "prod" "shared"))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (add-after 'set-mix-env 'set-elixir-version set-elixir-version) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 07:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020203384907 (code B ref 66801); Fri, 08 Dec 2023 07:26:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 07:25:38 +0000 Received: from localhost ([127.0.0.1]:43698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBVEv-0001H1-8v for submit@debbugs.gnu.org; Fri, 08 Dec 2023 02:25:38 -0500 Received: from mail-lj1-x242.google.com ([2a00:1450:4864:20::242]:47540) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBVEq-0001GV-4U for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 02:25:35 -0500 Received: by mail-lj1-x242.google.com with SMTP id 38308e7fff4ca-2c9f7fe6623so20844751fa.3 for <66801@debbugs.gnu.org>; Thu, 07 Dec 2023 23:25:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702020313; x=1702625113; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=Z7GYD0pAtl8qERbUNsHVzaEpFT/HwZcBghZbkdwK7cI=; b=EFJqi7osLO6sGLg446jMDud6Y7Ll3GCh5ew6QbGXt9pcDFn1dBYdXeuRgZS5+mFoQa 8Z4F+DP+b1XwLs39ZweP4l5qGj+NJy49ti8RPxw9HjesCvbcogfDpXULsoPNMt+hB1XT svQ+hUM6orIg7Z586zozLrfn9VYUTEdVUmH4T5VifKiH/eSpQzZIfkZCWc2jFFRSYH4d XKmh+G8FTHngahc02czRH251rIQpBHYpVeV0BYmSeIQbpFS8R9cjyB26o5gxDDYyFQE0 39JyPjESut4cytO6Ekh/tMJeuSEzlZgci6pSJlBLhYpneScU8iMHBvY8wZ4dNibIYEi6 7u5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702020313; x=1702625113; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Z7GYD0pAtl8qERbUNsHVzaEpFT/HwZcBghZbkdwK7cI=; b=ASqdea67X8j4B8l7I32JEAPSvPJCNWki3JQuXyq2P3Y5D/k4fvpxgDeeLJDWcnSVKn MGTJxzbZwNepUDpY5wGGLyggB6r3nNAuff1LS3Qg98tXzKSsjJCmjpl2TP/qdGD35akR wUWQmCIjTzzFPhbzHduRSQPueYiuOOnk9nIS8JiBwtFvpcu8lasqgclVsxTQSx1fotVQ hS8zPqN+jJ/Le41IzNW5bCMYPvAJQv5jxAPpPjOLJPj8Ta4tx3dNuK2vBnrTlPZPinfF VbNhuN/LQaT8Xu/Ok0zVYeITaptj5Uqf+xXnx8FblBJDgDpKmPPE5MfFUavQLkaeich0 ZhrA== X-Gm-Message-State: AOJu0Yx1zBMgvJomBjnNNv37xFwX+Ib6N/ptrNMzGYxmK5k34Q7+8G3d eGzxar7Rp2e9eOrUrVg69P8= X-Google-Smtp-Source: AGHT+IHOOl/ytWIf0CadOfhnAzg13QRcVRM3doiSc5pd5o/cqyKgqR2z/J3/GYrGSOLshsQX3IG07g== X-Received: by 2002:a19:6715:0:b0:50b:eb40:441a with SMTP id b21-20020a196715000000b0050beb40441amr1360226lfc.127.1702020312433; Thu, 07 Dec 2023 23:25:12 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id r25-20020a50d699000000b0054b50b024b1sm572909edi.89.2023.12.07.23.25.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 23:25:11 -0800 (PST) Message-ID: <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 08:25:10 +0100 In-Reply-To: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) QW0gRG9ubmVyc3RhZywgZGVtIDA3LjEyLjIwMjMgdW0gMjM6MzQgKzAxMDAgc2NocmllYiBQaWVy cmUtSGVucnkKRnLDtmhyaW5nOgo+ICogZ3VpeC9idWlsZC1zeXN0ZW0vbWl4LnNjbTogTmV3IGZp bGUuCj4gKiBndWl4L2J1aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtOiBOZXcgZmlsZS4KPiAKPiBD aGFuZ2UtSWQ6IEk4MDY2ZDAwZjdhZGE0YTM4NDYyMWJmNTQxZTY3OWJjNTEyZTkzNDM1Cj4gLS0t ClByZXR0eSBzdXJlIHlvdSBmb3Jnb3QgdGhlIHJlcm9sbC1jb3VudCBpbiB0aGUgaGVhZGVyLiAg UGxlYXNlIGRvbid0IDopCgo+IMKgZ3VpeC9idWlsZC1zeXN0ZW0vbWl4LnNjbcKgwqDCoMKgwqDC oCB8IDE4Ngo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gwqBndWl4L2J1aWxk L21peC1idWlsZC1zeXN0ZW0uc2NtIHwgMTYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ IMKgMiBmaWxlcyBjaGFuZ2VkLCAzNDcgaW5zZXJ0aW9ucygrKQo+IMKgY3JlYXRlIG1vZGUgMTAw NjQ0IGd1aXgvYnVpbGQtc3lzdGVtL21peC5zY20KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4 L2J1aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtCj4gCj4gZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQt c3lzdGVtL21peC5zY20gYi9ndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAuLjFiMDQwNTNkNwo+IC0tLSAvZGV2L251bGwKPiAr KysgYi9ndWl4L2J1aWxkLXN5c3RlbS9taXguc2NtCj4gQEAgLTAsMCArMSwxODYgQEAKPiArOzs7 IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCj4gKzs7 OyBDb3B5cmlnaHQgwqkgMjAyMyBQaWVycmUtSGVucnkgRnLDtmhyaW5nIDxjb250YWN0QHBoZnJv aHJpbmcuY29tPgo+ICs7OzsKPiArOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo+ ICs7OzsKPiArOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKPiBpdAo+ICs7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKPiBieQo+ICs7OzsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwK PiBvciAoYXQKPiArOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArOzs7Cj4g Kzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKPiArOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKPiArOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4gKzs7OyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+ICs7OzsKPiArOzs7IFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+IExpY2Vuc2UKPiAr Ozs7IGFsb25nIHdpdGggR05VIEd1aXguwqAgSWYgbm90LCBzZWUKPiA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCj4gKwo+ICs7OyBDb21tZW50YXJ5Ogo+ICs7Owo+ICs7OyBTdGFuZGFy ZCBidWlsZCBwcm9jZWR1cmUgZm9yIEVsaXhpciBwYWNrYWdlcyB1c2luZyAnbWl4Jy7CoCBUaGlz Cj4gaXMKPiArOzsgaW1wbGVtZW50ZWQgYXMgYW4gZXh0ZW5zaW9uIG9mICdnbnUtYnVpbGQtc3lz dGVtJy4KPiArOzsKPiArOzsgQ29kZToKPiArCj4gKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxk LXN5c3RlbSBtaXgpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZCBtaXgtYnVpbGQtc3lz dGVtKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkKPiArwqAgIzp1 c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSkKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IGdl eHApCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCBtb25hZHMpCj4gK8KgICM6dXNlLW1vZHVsZSAo Z3VpeCBwYWNrYWdlcykKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IHNlYXJjaC1wYXRocykKPiAr wqAgIzp1c2UtbW9kdWxlIChndWl4IHN0b3JlKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggdXRp bHMpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCj4gK8KgICM6dXNlLW1vZHVsZSAo c3JmaSBzcmZpLTEpCj4gK8KgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQo+ICvCoCAjOmV4 cG9ydCAobWl4LWJ1aWxkLXN5c3RlbSBoZXhwbS11cmkpKQo+ICsKPiArOzsgTGF6aWx5IHJlc29s dmUgYmluZGluZ3MgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLgo+ICsoZGVmaW5lIChk ZWZhdWx0LWdsaWJjLXV0ZjgtbG9jYWxlcykKPiArwqAgKGxldCogKChiYXNlIChyZXNvbHZlLWlu dGVyZmFjZSAnKGdudSBwYWNrYWdlcyBiYXNlKSkpKQo+ICvCoMKgwqAgKG1vZHVsZS1yZWYgYmFz ZSAnZ2xpYmMtdXRmOC1sb2NhbGVzKSkpCj4gKwo+ICsoZGVmaW5lIChkZWZhdWx0LWVsaXhpci1o ZXgpCj4gK8KgIChsZXQgKChlbGl4aXIgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2Vz IGVsaXhpcikpKSkKPiArwqDCoMKgIChtb2R1bGUtcmVmIGVsaXhpciAnZWxpeGlyLWhleCkpKQo+ ICsKPiArKGRlZmluZSAoZGVmYXVsdC1yZWJhcjMpCj4gK8KgIChsZXQgKChlcmxhbmcgKHJlc29s dmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGVybGFuZykpKSkKPiArwqDCoMKgIChtb2R1bGUt cmVmIGVybGFuZyAncmViYXIzKSkpCj4gKwo+ICsoZGVmaW5lIChkZWZhdWx0LWVsaXhpcikKPiAr wqAgKGxldCAoKGVsaXhpciAocmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZWxpeGly KSkpKQo+ICvCoMKgwqAgKG1vZHVsZS1yZWYgZWxpeGlyICdlbGl4aXIpKSkKPiArCj4gKyhkZWZp bmUqIChzdHJpcC1wcmVmaXggbmFtZSAjOm9wdGlvbmFsIChwcmVmaXggImVsaXhpci0iKSkKPiAr wqAgIlJldHVybiBOQU1FIHdpdGhvdXQgdGhlIHByZWZpeCBQUkVGSVguIgo+ICvCoCAoaWYgKHN0 cmluZy1wcmVmaXg/IHByZWZpeCBuYW1lKQo+ICvCoMKgwqDCoMKgIChzdHJpbmctZHJvcCBuYW1l IChzdHJpbmctbGVuZ3RoIHByZWZpeCkpCj4gK8KgwqDCoMKgwqAgbmFtZSkpCj4gKwo+ICsoZGVm aW5lIChoZXhwbS11cmkgbmFtZSB2ZXJzaW9uKQo+ICvCoCAiUmV0dXJuIHRoZSBVUkkgd2hlcmUg dG8gZmV0Y2ggdGhlIHNvdXJjZXMgb2YgYSBIZXggcGFja2FnZSBOQU1FCj4gYXQgVkVSU0lPTi4K PiArTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB3aGljaCBzaG91bGQgbG9vayBsaWtl OiBlbGl4aXItcGtnLQo+IG5hbWUtWC5ZLloKPiArU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaGV4 cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYWluL2VuZHBvaW50cy5tZCIKPiArwqAgKChjb21wb3Nl Cj4gK8KgwqDCoCAoY3V0ZSBzdHJpbmctYXBwZW5kICJodHRwczovL3JlcG8uaGV4LnBtL3RhcmJh bGxzLyIgPD4gIi0iCj4gdmVyc2lvbiAiLnRhciIpCj4gK8KgwqDCoCAoY3V0ZSBzdHJpbmctcmVw bGFjZS1zdWJzdHJpbmcgPD4gIi0iICJfIikKPiArwqDCoMKgIHN0cmlwLXByZWZpeCkKPiArwqDC oCBuYW1lKSkKPiArCj4gKzs7IEEgbnVtYmVyIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyBzcGVj aWZpYyB0byB0aGUgTWl4IGJ1aWxkCj4gc3lzdGVtIGFyZQo+ICs7OyByZWZsZWN0ZWQgaGVyZS7C oCBUaGV5IGFyZSBkb2N1bWVudGVkIGF0Cj4gKzs7Cj4gaHR0cHM6Ly9oZXhkb2NzLnBtL21peC8x LjE1LjcvTWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50LXZhcmlhYmxlcy7CoAo+IE90aGVyCj4g Kzs7IHBhcmFtZXRlcnMgbG9jYXRlZCBpbiBtaXguZXhzIGFyZSBkZWZpbmVkIGF0Cj4gKzs7Cj4g aHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE1LjcvTWl4LlByb2plY3QuaHRtbCNtb2R1bGUtY29u ZmlndXJhdGlvbgo+ICsoZGVmaW5lKiAobWl4LWJ1aWxkIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHNvdXJjZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo dGVzdHM/ICN0KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWl4 LXBhdGggI2YpIDtTZWUgTUlYX1BBVEguCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChtaXgtZXhzICJtaXguZXhzIikgO1NlZSBNSVhfRVhTLgo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQtcGVyLWVudmlyb25tZW50ICN0KSA7 U2VlCj4gOmJ1aWxkX3Blcl9lbnZpcm9ubWVudC4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKHBoYXNlcyAnJXN0YW5kYXJkLXBoYXNlcykKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG91dHB1dHMgJygib3V0IikpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZWFyY2gtcGF0aHMgJygpKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICglY3VycmVudC1zeXN0 ZW0pKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZ3VpbGUgI2Yp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbXBvcnRlZC1tb2R1 bGVzIGAoKGd1aXggYnVpbGQgbWl4LWJ1aWxkLQo+IHN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICxAJWdudS1idWlsZC1zeXN0ZW0tCj4gbW9kdWxlcykpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgbWl4LWJ1aWxk LXN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpKQo+ICvCoCAiQnVpbGQgU09VUkNF IHVzaW5nIEVsaXhpciwgYW5kIHdpdGggSU5QVVRTLiIKPiArCj4gK8KgIDs7IENoZWNrIHRoZSBk b2N1bWVudGF0aW9uIG9mIDpidWlsZF9wZXJfZW52aXJvbm1lbnQgaGVyZToKPiArwqAgOzsKPiBo dHRwczovL2hleGRvY3MucG0vbWl4LzEuMTUuNy9NaXguUHJvamVjdC5odG1sI21vZHVsZS1jb25m aWd1cmF0aW9uwqBBCj4gbmQKPiArwqAgOzsgIkVudmlyb25tZW50cyIgaGVyZToKPiArwqAgOzsg aHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE1LjcvTWl4Lmh0bWwjbW9kdWxlLWVudmlyb25tZW50 cwo+ICvCoCAoZGVmaW5lIG1peC1lbnZpcm9ubWVudHMKPiArwqDCoMKgIChpZiBidWlsZC1wZXIt ZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqAgYCgicHJvZCIgLEAoaWYgdGVzdHM/ICcoInRl c3QiKSAnKCkpKQo+ICvCoMKgwqDCoMKgwqDCoCAnKCJzaGFyZWQiKSkpCj4gKwo+ICvCoCAoZGVm aW5lIGJ1aWxkZXIKPiArwqDCoMKgICh3aXRoLWltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9k dWxlcwo+ICvCoMKgwqDCoMKgICN+KGJlZ2luCj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKHVz ZS1tb2R1bGVzICMkQChzZXhwLT5nZXhwIG1vZHVsZXMpKQo+ICsKPiArwqDCoMKgwqDCoMKgwqDC oMKgICMkKHdpdGgtYnVpbGQtdmFyaWFibGVzIGlucHV0cyBvdXRwdXRzCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICN+KG1peC1idWlsZCAjOm5hbWUgIyRuYW1lCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzb3VyY2UgIytzb3Vy Y2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjOnN5c3RlbSAjJHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6dGVzdHM/ICMkdGVzdHM/Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzptaXgtcGF0aCAjJG1peC1wYXRo Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzptaXgtZXhzICMkbWl4LWV4cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6bWl4LWVudmlyb25tZW50cyAnIyRtaXgtZW52aXJvbm1lbnRz Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzpidWlsZC1wZXItZW52aXJvbm1lbnQgIyRidWlsZC1wZXItCj4gZW52aXJvbm1lbnQKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNl cyAjJChpZiAocGFpcj8gcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzZXhw LT5nZXhwIHBoYXNlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRw dXRzICVvdXRwdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIzpzZWFyY2gtcGF0aHMgJyMkKHNleHAtPmdleHAKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc2VhcmNoLXBhdGgtCj4gc3BlY2lmaWNhdGlvbi0+c2V4cAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWFyY2gtcGF0aHMpKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5wdXRzCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJWJ1aWxkLWlu cHV0cykpKSkpCj4gKwo+ICvCoCAobWxldCAlc3RvcmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ ZGVyaXZhdGlvbiAob3IgZ3VpbGUKPiAoZGVmYXVsdC1ndWlsZSkpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0PyAjZikpKQo+ICvCoMKgwqAgKGdleHAtPmRl cml2YXRpb24gbmFtZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgYnVpbGRlcgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IzpzeXN0ZW0gc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAjOmdyYWZ0PyAjZsKgwqDCoMKgwqDCoCA7Y29uc2lzdGVudCB3aXRoICdnbnUtYnVpbGQn Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnRhcmdldCAj Zgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpndWlsZS1m b3ItYnVpbGQgZ3VpbGUpKSkKPiArCj4gKyhkZWZpbmUqIChsb3dlciBuYW1lCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGVsaXhpciAoZGVmYXVsdC1lbGl4aXIpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKGVsaXhpci1oZXggKGRlZmF1bHQtZWxpeGlyLWhleCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZ2xpYmMtdXRmOC1sb2NhbGVzIChkZWZhdWx0LWdsaWJjLXV0 ZjgtbG9jYWxlcykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5wdXRzICco KSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChuYXRpdmUtaW5wdXRzICcoKSkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChwcm9wYWdhdGVkLWlucHV0cyAnKCkp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXIzIChkZWZhdWx0LXJlYmFy MykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodGVzdHM/ICN0KQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc291cmNlCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzeXN0 ZW0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRhcmdldAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1vdGhlci1rZXlzICM6cmVzdCBhcmd1bWVudHMp Cj4gK8KgICJSZXR1cm4gYSBiYWcgZm9yIE5BTUUuIgo+ICvCoCAobGV0ICgocHJpdmF0ZS1rZXl3 b3Jkcwo+ICvCoMKgwqDCoMKgwqDCoMKgICcoIzppbnB1dHMgIzpuYXRpdmUtaW5wdXRzCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgICM6b3V0cHV0cyAjOnN5c3RlbSAjOnRhcmdldAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOmVsaXhpciAjOmVsaXhpci1oZXggIzpnbGliYy11dGY4LWxvY2FsZXMK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpyZWJhcjMgIzplcmxhbmcpKQo+ICvCoMKgwqDCoMKg wqDCoCAoYnVpbGQtaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqAgYCgsQChzdGFuZGFyZC1wYWNr YWdlcykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCJnbGliYy11dGY4LWxvY2FsZXMiICxnbGli Yy11dGY4LWxvY2FsZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICgiZXJsYW5nIiAsKGxvb2t1 cC1wYWNrYWdlLWlucHV0IGVsaXhpciAiZXJsYW5nIikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg ICgicmViYXIzIiAscmViYXIzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAoImVsaXhpciIgLGVs aXhpcikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCJlbGl4aXItaGV4IiAsZWxpeGlyLWhleCkK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgLEBpbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAg LEBuYXRpdmUtaW5wdXRzKSkpCj4gK8KgIChiYWcgKG5hbWUgbmFtZSkKPiArwqDCoMKgwqDCoMKg IChzeXN0ZW0gc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqAgKGJ1aWxkLWlucHV0cyBidWlsZC1pbnB1 dHMpCj4gK8KgwqDCoMKgwqDCoCAoaG9zdC1pbnB1dHMgKGlmIHRhcmdldCBpbnB1dHMgJygpKSkK PiArwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoCAoYnVpbGQg bWl4LWJ1aWxkKQo+ICvCoMKgwqDCoMKgwqAgKGFyZ3VtZW50cyAoc3RyaXAta2V5d29yZC1hcmd1 bWVudHMgcHJpdmF0ZS1rZXl3b3Jkcwo+IGFyZ3VtZW50cykpKSkpCj4gKwo+ICsoZGVmaW5lIG1p eC1idWlsZC1zeXN0ZW0KPiArwqAgKGJ1aWxkLXN5c3RlbSAobmFtZSAnbWl4KQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGRlc2NyaXB0aW9uICJUaGUgc3RhbmRhcmQgTWl4IGJ1 aWxkIHN5c3RlbSIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobG93ZXIgbG93 ZXIpKSkKPiArCj4gKzs7OyBtaXguc2NtIGVuZHMgaGVyZQo+IGRpZmYgLS1naXQgYS9ndWl4L2J1 aWxkL21peC1idWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9taXgtYnVpbGQtCj4gc3lzdGVt LnNjbQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwLi5mZTJlMzZkMTgK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZ3VpeC9idWlsZC9taXgtYnVpbGQtc3lzdGVtLnNjbQo+ IEBAIC0wLDAgKzEsMTYxIEBACj4gKzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdl IG1hbmFnZW1lbnQgZm9yIEdOVQo+ICs7OzsgQ29weXJpZ2h0IMKpIDIwMjMgUGllcnJlLUhlbnJ5 IEZyw7ZocmluZyA8Y29udGFjdEBwaGZyb2hyaW5nLmNvbT4KPiArOzs7Cj4gKzs7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KPiArOzs7Cj4gKzs7OyBHTlUgR3VpeCBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gaXQKPiArOzs7 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkCj4gYnkKPiArOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsCj4gb3IgKGF0Cj4gKzs7OyB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCj4gKzs7Owo+ICs7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cj4gKzs7OyBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKzs7OyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqAgU2VlIHRo ZQo+ICs7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiAr Ozs7Cj4gKzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMKPiBMaWNlbnNlCj4gKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LsKgIElmIG5v dCwgc2VlCj4gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+ICsKPiArOzsgQ29tbWVu dGFyeToKPiArOzsKPiArOzsgQ29kZToKPiArCj4gKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1aWxk IG1peC1idWlsZC1zeXN0ZW0pCj4gK8KgICM6dXNlLW1vZHVsZSAoKGd1aXggYnVpbGQgZ251LWJ1 aWxkLXN5c3RlbSkgIzpwcmVmaXggZ251OikKPiArwqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxk IHV0aWxzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IGZ0dykKPiArwqAgIzp1c2UtbW9kdWxl IChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChpY2UtOSByZWdleCkKPiArwqAgIzp1 c2UtbW9kdWxlIChpY2UtOSBzdHJpbmctZnVuKQo+ICvCoCAjOnVzZS1tb2R1bGUgKHNyZmkgc3Jm aS0xKQo+ICvCoCAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0yNikKPiArwqAgIzp1c2UtbW9kdWxl IChzcmZpIHNyZmktNzEpCj4gK8KgICM6ZXhwb3J0IChtaXgtYnVpbGQKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiArCj4gKzs7IFRoZSBFbGl4aXIgdmVyc2lv biBpcyBjb25zdGFudCBhcyBzb29uIGFzIGl0IGlzIGNvbXB1dGFibGUgZnJvbQo+IHRoZSBjdXJy ZW50Cj4gKzs7IGV4ZWN1dGlvbi7CoCBJdCBpcyBhIFguWSBzdHJpbmcgd2hlcmUgWCBhbmQgWSBh cmUgcmVzcGVjdGl2ZWx5IHRoZQo+IG1ham9yIGFuZAo+ICs7OyBtaW5vciB2ZXJzaW9uIG51bWJl ciBvZiB0aGUgRWxpeGlyIHVzZWQgaW4gdGhlIGJ1aWxkLgo+ICsoZGVmaW5lICVlbGl4aXItdmVy c2lvbiAobWFrZS1wYXJhbWV0ZXIgIlguWSIpKQo+ICsKPiArKGRlZmluZSogKGVsaXhpci1saWJk aXIgcGF0aCAjOm9wdGlvbmFsICh2ZXJzaW9uICglZWxpeGlyLXZlcnNpb24pKSkKPiArwqAgIlJl dHVybiB0aGUgcGF0aCB3aGVyZSBhbGwgbGlicmFyaWVzIHVuZGVyIFBBVEggZm9yIGEgc3BlY2lm aWVkCj4gRWxpeGlyCj4gK1ZFUlNJT04gYXJlIGluc3RhbGxlZC4iCj4gK8KgIChzdHJpbmctYXBw ZW5kIHBhdGggIi9saWIvZWxpeGlyLyIgdmVyc2lvbikpCj4gKwo+ICsoZGVmaW5lKiAoc3RyaXAt cHJlZml4IG5hbWUgIzpvcHRpb25hbCAocHJlZml4ICJlbGl4aXItIikpCj4gK8KgICJSZXR1cm4g TkFNRSB3aXRob3V0IHRoZSBwcmVmaXggUFJFRklYLiIKPiArwqAgKGlmIChzdHJpbmctcHJlZml4 PyBwcmVmaXggbmFtZSkKPiArwqDCoMKgwqDCoCAoc3RyaW5nLWRyb3AgbmFtZSAoc3RyaW5nLWxl bmd0aCBwcmVmaXgpKQo+ICvCoMKgwqDCoMKgIG5hbWUpKQo+ICsKPiArKGRlZmluZSAobWl4LWJ1 aWxkLWRpciBtaXgtYnVpbGQtcm9vdCBtaXgtZW52KQo+ICvCoCAiUmV0dXJuIHRoZSBkaXJlY3Rv cnkgd2hlcmUgYnVpbGQgYXJ0aWZhY3RzIGFyZSB0byBiZSBpbnN0YWxsZWQKPiBhY2NvcmRpbmcg dG8KPiArZW4gZW52aXJvbm1lbnQgTUlYLUVOViBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuwqAg TUlYLUJVSUxELVJPT1QKPiBkZXBlbmRzIG9uIHRoZQo+ICtwYWNrYWdlIGFyZ3VtZW50cy7CoCBT ZWU6Cj4gaHR0cHM6Ly9oZXhkb2NzLnBtL21peC8xLjE1L01peC5odG1sI21vZHVsZS1lbnZpcm9u bWVudC12YXJpYWJsZXMiCj4gK8KgIChzdHJpbmctYXBwZW5kIG1peC1idWlsZC1yb290ICIvIiBt aXgtZW52ICIvbGliIikpCj4gKwo+ICsoZGVmaW5lIChlbGl4aXItdmVyc2lvbiBpbnB1dHMpCj4g K8KgICJSZXR1cm4gYW4gWC5ZIHN0cmluZyB3aGVyZSBYIGFuZCBZIGFyZSByZXNwZWN0aXZlbHkg dGhlIG1ham9yIGFuZAo+IG1pbm9yIHZlcnNpb24gbnVtYmVyIG9mIFBBQ0tBR0UuCj4gK0V4YW1w bGU6IC9nbnUvc3RvcmUv4oCmLWVsaXhpci0xLjE0LjAg4oaSIDEuMTQiCj4gK8KgICgoY29tcG9z ZQo+ICvCoMKgwqAgKGN1dGUgc3RyaW5nLWpvaW4gPD4gIi4iKQo+ICvCoMKgwqAgKGN1dGUgdGFr ZSA8PiAyKQo+ICvCoMKgwqAgKGN1dGUgc3RyaW5nLXNwbGl0IDw+ICNcLikKPiArwqDCoMKgIHN0 cmlwLXByZWZpeAo+ICvCoMKgwqAgc3RyaXAtc3RvcmUtZmlsZS1uYW1lKQo+ICvCoMKgIChhc3Nv Yy1yZWYgaW5wdXRzICJlbGl4aXIiKSkpCk5vdGUgdGhhdCB3aGVuIGNyb3NzLWNvbXBpbGluZywg ZWxpeGlyIHdvdWxkIGxpa2VseSBiZSBhIG5hdGl2ZS1pbnB1dApyYXRoZXIgdGhhbiBhbiBpbnB1 dC4gIE5laXRoZXIgdGhpcyBwcm9jZWR1cmUgbm9yIGl0cyBjYWxsZXJzIGFwcGVhciB0bwpiZSBh d2FyZSBvZiB0aGF0LgoKWW91IGNhbiBrZWVwIHRoZSBjb21wb3NlIGludGFjdCBpZiB5b3UgZG8K ICAoYW5kPT4gKGFzc29jLXJlZiBpbnB1dHMgImVsaXhpciIpCiAgICAgICAgIChjb21wb3NlIC4u LikpClRoZW4geW91IGNhbiBjYWxsIGl0IGFzwqAKICAob3IgKGVsaXhpci12ZXJzaW9uIG5hdGl2 ZS1pbnB1dHMpIChlbGl4aXItdmVyc2lvbiBpbnB1dHMpKQoKCj4gKyhkZWZpbmUqICh1bnBhY2sg IzprZXkgc291cmNlIG1peC1wYXRoICM6YWxsb3ctb3RoZXIta2V5cykKPiArwqAgIlVucGFjayBT T1VSQ0UgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgY2hhbmdlIGRpcmVjdG9yeQo+IHdp dGhpbiB0aGUKPiArc291cmNlLsKgIFdoZW4gU09VUkNFIGlzIGEgZGlyZWN0b3J5LCBjb3B5IGl0 IGluIGEgc3ViLWRpcmVjdG9yeSBvZgo+IHRoZSBjdXJyZW50Cj4gK3dvcmtpbmcgZGlyZWN0b3J5 LiIKPiArwqAgKGxldCAoKGdudS11bnBhY2sgKGFzc29jLXJlZiBnbnU6JXN0YW5kYXJkLXBoYXNl cyAndW5wYWNrKSkpCj4gK8KgwqDCoCAoZ251LXVucGFjayAjOnNvdXJjZSBzb3VyY2UpCj4gK8Kg wqDCoCAod2hlbiAoZmlsZS1leGlzdHM/ICJjb250ZW50cy50YXIuZ3oiKQo+ICvCoMKgwqDCoMKg IChpbnZva2UgInRhciIgInh2ZiIgImNvbnRlbnRzLnRhci5neiIpKSkpCj4gKwo+ICsoZGVmaW5l IChsaXN0LWRpcmVjdG9yaWVzIGRpcikKPiArwqAgIkxpc3QgYWJzb2x1dGUgcGF0aHMgb2YgZGly ZWN0b3JpZXMgZGlyZWN0bHkgdW5kZXIgdGhlIGRpcmVjdG9yeQo+IERJUi4iCj4gK8KgIChtYXAg KGN1dGUgc3RyaW5nLWFwcGVuZCBkaXIgIi8iIDw+KQo+ICvCoMKgwqDCoMKgwqAgKHNjYW5kaXIg ZGlyIChsYW1iZGEgKGZpbGVuYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKGFuZCAobm90IChtZW1iZXIgZmlsZW5hbWUgJygiLiIgIi4uIikpKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChkaXJl Y3RvcnktZXhpc3RzPyAoc3RyaW5nLWFwcGVuZCBkaXIgIi8iCj4gZmlsZW5hbWUpKSkpKSkpCj4g Kwo+ICsoZGVmaW5lKiAoc2V0LW1peC1lbnYgIzprZXkgaW5wdXRzIG1peC1wYXRoIG1peC1leHMg IzphbGxvdy1vdGhlci0KPiBrZXlzKQo+ICvCoCAiU2V0IGVudmlyb25tZW50IHZhcmlhYmxlcy4K PiArU2VlOgo+IGh0dHBzOi8vaGV4ZG9jcy5wbS9taXgvMS4xNS43L01peC5odG1sI21vZHVsZS1l bnZpcm9ubWVudC12YXJpYWJsZXMiCj4gK8KgIChzZXRlbnYgIk1JWF9BUkNISVZFUyIgImFyY2hp dmVzIikKPiArwqAgKHNldGVudiAiTUlYX0JVSUxEX1JPT1QiICJfYnVpbGQiKQo+ICvCoCAoc2V0 ZW52ICJNSVhfREVQU19QQVRIIiAiZGVwcyIpCj4gK8KgIChzZXRlbnYgIk1JWF9FWFMiIG1peC1l eHMpCj4gK8KgIChzZXRlbnYgIk1JWF9IT01FIiAoZ2V0Y3dkKSkKPiArwqAgKHNldGVudiAiTUlY X1BBVEgiIChvciBtaXgtcGF0aCAiIikpCj4gK8KgIChzZXRlbnYgIk1JWF9SRUJBUjMiIChzdHJp bmctYXBwZW5kIChhc3NvYy1yZWYgaW5wdXRzICJyZWJhcjMiKQo+ICIvYmluL3JlYmFyMyIpKSkK PiArCj4gKyhkZWZpbmUqIChzZXQtZWxpeGlyLXZlcnNpb24gIzprZXkgaW5wdXRzICM6YWxsb3ct b3RoZXIta2V5cykKPiArwqAgIlN0b3JlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgRWxpeGly IGlucHV0IGluIGEgcGFyYW1ldGVyLiIKPiArwqAgKCVlbGl4aXItdmVyc2lvbiAoZWxpeGlyLXZl cnNpb24gaW5wdXRzKSkKPiArwqAgKGZvcm1hdCAjdCAiRWxpeGlyIHZlcnNpb246IH5hfiUiICgl ZWxpeGlyLXZlcnNpb24pKSkKPiArCj4gKyhkZWZpbmUqIChidWlsZCAjOmtleSBtaXgtZW52aXJv bm1lbnRzICM6YWxsb3ctb3RoZXIta2V5cykKPiArwqAgIkJ1aWxkcyB0aGUgTWl4IHByb2plY3Qu Igo+ICvCoCAoZm9yLWVhY2ggKGxhbWJkYSAobWl4LWVudikKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKHNldGVudiAiTUlYX0VOViIgbWl4LWVudikKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKGludm9rZSAibWl4IiAiY29tcGlsZSIgIi0tbm8tZGVwcy1jaGVjayIpKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1peC1lbnZpcm9ubWVudHMpKQo+ICsKPiArKGRlZmluZSog KGNoZWNrICM6a2V5ICh0ZXN0cz8gI3QpICM6YWxsb3ctb3RoZXIta2V5cykKPiArwqAgIlRlc3Qg dGhlIE1peCBwcm9qZWN0LiIKPiArwqAgKGlmIHRlc3RzPwo+ICvCoMKgwqDCoMKgIChpbnZva2Ug Im1peCIgInRlc3QiICItLW5vLWRlcHMtY2hlY2siKQo+ICvCoMKgwqDCoMKgIChmb3JtYXQgI3Qg InRlc3RzPyA9IH5hfiUiIHRlc3RzPykpKQo+ICsKPiArKGRlZmluZSogKHJlbW92ZS1taXgtZGly cyAuIF8pCj4gK8KgICJSZW1vdmUgYWxsIC5taXgvIGRpcmVjdG9yaWVzLgo+ICtXZSBkbyBub3Qg d2FudCB0byBjb3B5IHRoZW0gdG8gdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkuIgo+ICvCoCAo Zm9yLWVhY2ggZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoZmluZC1maWxlcyAiLiIgKGZpbGUtbmFtZS1wcmVkaWNhdGUgIlxcLm1peCQiKQo+ICM6ZGly ZWN0b3JpZXM/ICN0KSkpCj4gKwo+ICsoZGVmaW5lIChwYWNrYWdlLW5hbWUtPmVsaXhpci1uYW1l IG5hbWUrdmVyKQo+ICvCoCAiQ29udmVydCB0aGUgR3VpeCBwYWNrYWdlIE5BTUUtVkVSIHRvIHRo ZSBjb3JyZXNwb25kaW5nIEVsaXhpcgo+IG5hbWUtdmVyc2lvbgo+ICtmb3JtYXQuwqAgRXhhbXBs ZTogZWxpeGlyLWEtcGtnLTEuMi4zIC0+IGFfcGtnIgo+ICvCoCAoKGNvbXBvc2UKPiArwqDCoMKg IChjdXRlIHN0cmluZy1qb2luIDw+ICJfIikKPiArwqDCoMKgIChjdXRlIGRyb3AtcmlnaHQgPD4g MSkKPiArwqDCoMKgIChjdXRlIHN0cmluZy1zcGxpdCA8PiAjXC0pKQo+ICvCoMKgIChzdHJpcC1w cmVmaXggbmFtZSt2ZXIpKSkKPiArCj4gKyhkZWZpbmUqIChpbnN0YWxsICM6a2V5Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWlsZC1w ZXItZW52aXJvbm1lbnQKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFs bG93LW90aGVyLWtleXMpCj4gK8KgICJJbnN0YWxsIGJ1aWxkIGFydGlmYWN0cyBpbiB0aGUgc3Rv cmUuIgo+ICvCoCAobGV0KiAoKGxpYi1uYW1lIChwYWNrYWdlLW5hbWUtPmVsaXhpci1uYW1lIG5h bWUpKQo+ICvCoMKgwqDCoMKgwqDCoMKgIChsaWItZGlyIChzdHJpbmctYXBwZW5kIChlbGl4aXIt bGliZGlyIChhc3NvYy1yZWYgb3V0cHV0cwo+ICJvdXQiKSkgIi8iIGxpYi1uYW1lKSkKPiArwqDC oMKgwqDCoMKgwqDCoCAocm9vdCAoZ2V0ZW52ICJNSVhfQlVJTERfUk9PVCIpKQo+ICvCoMKgwqDC oMKgwqDCoMKgIChlbnYgKGlmIGJ1aWxkLXBlci1lbnZpcm9ubWVudCAicHJvZCIgInNoYXJlZCIp KSkKPiArwqDCoMKgIChta2Rpci1wIGxpYi1kaXIpCj4gK8KgwqDCoCAoY29weS1yZWN1cnNpdmVs eSAoc3RyaW5nLWFwcGVuZCAobWl4LWJ1aWxkLWRpciByb290IGVudikgIi8iCj4gbGliLW5hbWUp IGxpYi1kaXIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 Zm9sbG93LXN5bWxpbmtzPyAjdCkpKQo+ICsKPiArKGRlZmluZSAlc3RhbmRhcmQtcGhhc2VzCj4g K8KgIChtb2RpZnktcGhhc2VzIGdudTolc3RhbmRhcmQtcGhhc2VzCj4gK8KgwqDCoCAoZGVsZXRl ICdib290c3RyYXApCj4gK8KgwqDCoCAoZGVsZXRlICdjb25maWd1cmUpCj4gK8KgwqDCoCAoYWRk LWFmdGVyICdpbnN0YWxsLWxvY2FsZSAnc2V0LW1peC1lbnYgc2V0LW1peC1lbnYpCj4gK8KgwqDC oCAoYWRkLWFmdGVyICdzZXQtbWl4LWVudiAnc2V0LWVsaXhpci12ZXJzaW9uIHNldC1lbGl4aXIt dmVyc2lvbikKPiArwqDCoMKgIChyZXBsYWNlICd1bnBhY2sgdW5wYWNrKQo+ICvCoMKgwqAgKHJl cGxhY2UgJ2J1aWxkIGJ1aWxkKQo+ICvCoMKgwqAgKHJlcGxhY2UgJ2NoZWNrIGNoZWNrKQo+ICvC oMKgwqAgKGFkZC1iZWZvcmUgJ2luc3RhbGwgJ3JlbW92ZS1taXgtZGlycyByZW1vdmUtbWl4LWRp cnMpCj4gK8KgwqDCoCAocmVwbGFjZSAnaW5zdGFsbCBpbnN0YWxsKSkpCj4gKwo+ICsoZGVmaW5l KiAobWl4LWJ1aWxkICM6a2V5IGlucHV0cyAocGhhc2VzICVzdGFuZGFyZC1waGFzZXMpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cyAj OnJlc3QgYXJncykKPiArwqAgIkJ1aWxkIHRoZSBnaXZlbiBNaXggcGFja2FnZSwgYXBwbHlpbmcg YWxsIG9mIFBIQVNFUyBpbiBvcmRlci4iCj4gK8KgIChhcHBseSBnbnU6Z251LWJ1aWxkICM6aW5w dXRzIGlucHV0cyAjOnBoYXNlcyBwaGFzZXMgYXJncykpCj4gKwo+ICs7OzsgbWl4LWJ1aWxkLXN5 c3RlbS5zY20gZW5kcyBoZXJlCj4gCj4gYmFzZS1jb21taXQ6IDA2ZjI1YTlhODViZTFiYmU3YTcw OWU1OGNlNDFjMWE4MzRlNWYxYWUKV291bGQgeW91IGJlIHNvIG5pY2UgYXMgdG8gc2VuZCBhIGNv bXBsZXRlIHNlcmllcyBhcyBhIHJldmlzaW9uPyAgV2UKaGF2ZSBmb2N1c2VkIHF1aXRlIGEgbG90 IG9uIHRoZSBpbnRyaWNhY2llcyBvZiByZWJhci1idWlsZC1zeXN0ZW0gYW5kCm1peC1idWlsZC1z eXN0ZW0gaW4gdGhlIHBhc3QgcmV2aWV3LCBidXQgZm9yIHRlc3RpbmcgcHVycG9zZXMsIGl0IHdv dWxkCmJlIG5pY2UgdG8gaGF2ZSBzb21lIChtaW5pbWFsIHNldCBvZikgcGFja2FnZXMgdGhhdCB3 ZSBjYW4gYnVpbGQgd2l0aAp0aG9zZSBpbXByb3ZlbWVudHMuCgpDaGVlcnMK From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 08:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170202546018515 (code B ref 66801); Fri, 08 Dec 2023 08:51:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 08:51:00 +0000 Received: from localhost ([127.0.0.1]:43769 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBWZY-0004oZ-1f for submit@debbugs.gnu.org; Fri, 08 Dec 2023 03:51:00 -0500 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:50075) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBWZV-0004oA-GY for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 03:50:59 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 090EDC0002; Fri, 8 Dec 2023 08:50:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702025438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NjCXIb5K/l9qyczeQYGiq5KlF6acwJNcjrndo9JE4TU=; b=lUzuPLnss7QGS6ZBMnrI5SbWzS5O57Ym7iEZOtLN1LYQZoT/LOWu9q/uIMVmPXnPVoyffh p4oIJN4T7zlLtY+lNesAOcIatfiiRihxnxisW3kh0NgZY533AMvNGrF/+XZsd9DyXrxW/H 95qmjYSUXd5K9B//wsmeytih9/v035bNaCDsAitkdWVyF5Ekdcw6dHccI10zKmc5v4GDxq ok2bVzBWj7vqmFZDj4kpTLEjlc+JLg94dVJHt9F9+uKwcX2zBVjWix2beVNJsb3dhPaOzw E9gWKTFELX4FLws0qOVtCjqnViNpEi/oaLEXXKOgxi/elo0eHVmDWIEoB+4rWw== References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 08 Dec 2023 09:01:06 +0100 In-reply-to: <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> Message-ID: <87y1e5t6w3.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) Hello lilyp, Would you be so nice as to send a complete series as a revision? We have focused quite a lot on the intricacies of rebar-build-system and mix-build-system in the past review, but for testing purposes, it wou= ld be nice to have some (minimal set of) packages that we can build with those improvements. All of them will be sent. I cannot send you all the patches at once =E2=80= =94 /i.e./ those linked to Erlang and Elixir =E2=80=94 as it has proved to be too time-consu= ming given my inexperience in the Guix code base among other things. Thanks to your patient feedback, I hope to be able to send all the patches = =E2=80=94 more that 70 of them =E2=80=94 but let us agree on the sequence before end as I = do not want to bother you with contingent errors. Please, tell me if these sequences of patches work with you: 1. Send patches linked to Elixir, independently of Erlang. 2. Send patches linked to Erlang, independently of Elixir. 3. Send remaining patches where Elixir packages rely on Erlang packages. For completeness, the case where Erlang packages rely on Elixir packages sh= ould be addressed too, but I do not have code testing that case so far. We will pr= obably take care of this case afterward. The first sequence of commits allows to build the elixir-machete package wh= ich is one of the few packages that have tests. This sequence of commits does not nee= d any modification to the rebar build system or the Erlang package. These commit= s are on a local branch at the moment: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 f50ed258f * gnu: Add elixir-machete. =E2=94=82 8b1cd4584 * gnu: Add elixir-dialyxir. =E2=94=82 04f1a0488 * gnu: Add elixir-erlex. =E2=94=82 51f3ea964 * gnu: Add elixir-credo. =E2=94=82 c635210a2 * gnu: Add elixir-excoveralls. =E2=94=82 2ed400127 * gnu: Add elixir-castore. =E2=94=82 fa45db5f6 * gnu: Add elixir-inch-ex. =E2=94=82 780e57c56 * gnu: Add elixir-bunt. =E2=94=82 52c57d6a7 * gnu: Add elixir-file-system. =E2=94=82 6b1f61851 * gnu: Add elixir-jason. =E2=94=82 283d647cf * gnu: Add elixir-makeup. =E2=94=82 a2dd3114c * gnu: Add elixir-nimble-parsec. =E2=94=82 0e6d80e9d * gnu: Add elixir-hex. =E2=94=82 9e842f9c9 * gnu: elixir: Wrap binaries. =E2=94=82 5b40ab6fd * build-system: Add mix-build-system. =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 So, is it OK if we manage this sequence of patches above before proceeding = further? If it is the case, then I will send them one by one so that your suggestion= s on one patch will help me fix the next before sending it. Cheers. P.S. My last message that you received yesterday does not appear in this thread . From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 09:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170202920528821 (code B ref 66801); Fri, 08 Dec 2023 09:54:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 09:53:25 +0000 Received: from localhost ([127.0.0.1]:43877 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBXXx-0007Un-A9 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 04:53:25 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:59478) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBXXt-0007UM-4N for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 04:53:23 -0500 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-40c2a444311so17395615e9.2 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 01:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702029181; x=1702633981; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=SyssQ+qiiXhhiI8mwfSaJyZHmsGinfjRAbOBUKchpn4=; b=Dl4TdKgF+KVe1XSdIBu6CW20aLORnTjnm5HJO35nPHaQsBDByIYy72HuBi9rrRNMt6 nf6y6coJ5+4bjRyMr/T/proZHZQyFqoSa8XOoRPRCd2/Wft9SvSi1/Yg/3eKOBMGjz6P 3DsPmdUhZxdhcuaqkLvppZgv6cTW1tVbuqx3VNwJPYyovqVolHvYhpTP2R6dW+ASvYfm Aq9fOiKczLQahh+nSbkXzMEtre/KRbZIh2BnBTbDGfYFSWR7dtPHo2TH4gGrGr1bTBPQ 3hlFvXK+r+r50zy6bMn44bTmNtyuJOU9SirRtDUXYcJoJ19hJqIFTids7Lw6UlSWlMMg YouQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702029181; x=1702633981; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SyssQ+qiiXhhiI8mwfSaJyZHmsGinfjRAbOBUKchpn4=; b=Ql5isFprPYfGbIVl3u6V9pDJ8r/6ryplpICuvNnNmGHy65wiSKdKF9mGbsZFlNiYSm 7d0JxCz4Ch0nhwStTVPUeUEphUg6+R2mrlsv92TFb+CWyjB32Un8KvpM9zcQOnVuMAxU sqWrDD25EQnXMQm8AptRGNJsX5jerYA6OIz2R5NoPDjG7AwR7R6Kgg2w6J6WgV+8BZoi gKZFXv6ODAf3abO+btTfDcNJ9JhR5moWYCXk/y01EOpiIzt3aa8RC5DW+uwA+JTRu1zf QBWcQ+xMi42/huUNA/S9uG3Fl1at/DhU0hRy9J9fKHEifLtbYCrRZh9kdr7e3GRZJxdK 3uSw== X-Gm-Message-State: AOJu0YxAapHV/QQqntCYMRoVFSgVtEFQV4t2mzYI6EPkOKI7SjGzXobD tCfu7rT2dmMzsPB0y3ruqDlgZ9gGQ2RWMQ== X-Google-Smtp-Source: AGHT+IF63p7O6evEOhUCND+JL+lI9lKKsWxX7EqcPO9wZCj2R0nZXxCEibWxXRACUdmzXXKo2LpKqA== X-Received: by 2002:a05:600c:3ba8:b0:40c:343b:5e41 with SMTP id n40-20020a05600c3ba800b0040c343b5e41mr132122wms.59.1702029180513; Fri, 08 Dec 2023 01:53:00 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id l15-20020a05600c1d0f00b003feae747ff2sm4639018wms.35.2023.12.08.01.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 01:53:00 -0800 (PST) Message-ID: <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 10:52:59 +0100 In-Reply-To: <87y1e5t6w3.fsf@phfrohring.com> References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> <87y1e5t6w3.fsf@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 09:01 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Please, tell me if these sequences of patches work with you: > 1. Send patches linked to Elixir, independently of Erlang. > 2. Send patches linked to Erlang, independently of Elixir. > 3. Send remaining patches where Elixir packages rely on Erlang > packages. If this series works for you, it ought to work for us as well. The important thing is that immediate results can be verified to build. > For completeness, the case where Erlang packages rely on Elixir > packages should be addressed too, but I do not have code testing that > case so far.=C2=A0 We will probably take care of this case afterward. Yeah, that sounds like a premature optimization otherwise. > The first sequence of commits allows to build the elixir-machete > package which is one of the few packages that have tests.=C2=A0 This > sequence of commits does not need any modification to the rebar build > system or the Erlang package.=C2=A0 These commits are on a local branch a= t > the moment: >=20 > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 f50ed258f * gnu: Add elixir-machete. > =E2=94=82 8b1cd4584 * gnu: Add elixir-dialyxir. > =E2=94=82 04f1a0488 * gnu: Add elixir-erlex. > =E2=94=82 51f3ea964 * gnu: Add elixir-credo. > =E2=94=82 c635210a2 * gnu: Add elixir-excoveralls. > =E2=94=82 2ed400127 * gnu: Add elixir-castore. > =E2=94=82 fa45db5f6 * gnu: Add elixir-inch-ex. > =E2=94=82 780e57c56 * gnu: Add elixir-bunt. > =E2=94=82 52c57d6a7 * gnu: Add elixir-file-system. > =E2=94=82 6b1f61851 * gnu: Add elixir-jason. > =E2=94=82 283d647cf * gnu: Add elixir-makeup. > =E2=94=82 a2dd3114c * gnu: Add elixir-nimble-parsec. > =E2=94=82 0e6d80e9d * gnu: Add elixir-hex. > =E2=94=82 9e842f9c9 * gnu: elixir: Wrap binaries. > =E2=94=82 5b40ab6fd * build-system: Add mix-build-system. > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 LGTM, but I prefer the order that's given in the cover-letter produced by format-patch, with the first patch applied being first :) > So, is it OK if we manage this sequence of patches above before > proceeding further? > If it is the case, then I will send them one by one so that your > suggestions on one patch will help me fix the next before sending it. SGTM. If you're unfamiliar with git send-email, at least use git format-patch and an appropriate reroll-count (IIRC, we're at 3, but I could be misremembering), then send each of the resulting mboxes individually or bundle them up as attachments. > P.S. My last message that you received yesterday does not appear in > this thread . Yeah, mumi is currently slow on the uptake =E2=80=93 dunno what's wrong the= re. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 11:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020332767426 (code B ref 66801); Fri, 08 Dec 2023 11:02:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 11:01:16 +0000 Received: from localhost ([127.0.0.1]:43914 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYbY-0001vc-Jd for submit@debbugs.gnu.org; Fri, 08 Dec 2023 06:01:16 -0500 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:60367) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYbS-0001uW-JM for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 06:01:10 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 938CEC0004; Fri, 8 Dec 2023 11:00:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702033246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uLh/SkftC5LGtgiYZMfeaxcm2qY6OFdpPZm8o39hU/E=; b=SXGNcIXMctT6Q+dvm3hH07UuG3mAzpWagOtiLCMCIvuqlJ4RSYytDiaQphnFPZxxjS0k4M /jh+QIlGtOIb3clpK6LZ6KleWCJMnyoM4JTnt2Qm071ubMUQjRNqRC5N8VFFh4Dkztal+0 uBzxdvbq3xDkc4KQVEK8le/fbOHW6oFFM+WpS3ENtkvleL5w27p4EIqgwiKqZ2EJZhUyI0 3TwsnuHcEneA0gVqx6AnKkp+7kd7B70z5bHuW1rzkYRHfVuus1vB60koXf8PbcFSDNRIVN Z3o8otvFISPJSRyJJm7ICnqGK+VfbWoXyuhxecdIl7CtapQBLtxbJFqFOOYcsA== References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> <87y1e5t6w3.fsf@phfrohring.com> <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 08 Dec 2023 11:17:23 +0100 In-reply-to: <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> Message-ID: <87ttott0v5.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) If this series works for you, it ought to work for us as well. The i= mportant thing is that immediate results can be verified to build. Great. So here comes the series of patches. The list of all patches is: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 0001-build-system-Add-mix-build-system.patch =E2=94=82 0002-gnu-elixir-Wrap-binaries.patch =E2=94=82 0003-gnu-Add-elixir-hex.patch =E2=94=82 0004-gnu-Add-elixir-nimble-parsec.patch =E2=94=82 0005-gnu-Add-elixir-makeup.patch =E2=94=82 0006-gnu-Add-elixir-jason.patch =E2=94=82 0007-gnu-Add-elixir-file-system.patch =E2=94=82 0008-gnu-Add-elixir-bunt.patch =E2=94=82 0009-gnu-Add-elixir-inch-ex.patch =E2=94=82 0010-gnu-Add-elixir-castore.patch =E2=94=82 0011-gnu-Add-elixir-excoveralls.patch =E2=94=82 0012-gnu-Add-elixir-credo.patch =E2=94=82 0013-gnu-Add-elixir-erlex.patch =E2=94=82 0014-gnu-Add-elixir-dialyxir.patch =E2=94=82 0015-gnu-Add-elixir-machete.patch =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 I will start with the first 3. To test them, I have issued the following co= mmand: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 ./pre-inst-env guix build elixir-hex =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 which result was: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 =E2=80=A6 =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35-el= ixir-hex-2.0.5.drv =E2=94=82 /gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex-2.0.5 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 If everything is correct, I will send the other ones. Cheers. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 01/15] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 11:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020339769163 (code B ref 66801); Fri, 08 Dec 2023 11:13:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 11:12:56 +0000 Received: from localhost ([127.0.0.1]:43923 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYmt-0002Nh-TD for submit@debbugs.gnu.org; Fri, 08 Dec 2023 06:12:56 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:47237) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYmq-0002NI-AQ for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 06:12:54 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 0667C60003; Fri, 8 Dec 2023 11:12:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702033952; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KX2+2QJTAciHuWmi8PFIdJoEPxR7UIYvlpOvpKWojT4=; b=a7CTyHrN3Me08yMdmvYSsC7LW//KFJDEjATpyHttl1LjCUJaM+Tt/MNxVBLKxqZVynaSk4 Fm6EHXz84oTW7ptDzGndneu4dF6wXSiuQrzIVqcqOlWOfduwQ/xYmTLkHGwwSHC+91KnFf B/CGDRvsmc4etZWPhTPLCgwB1wwkFooSmJAlYmF14qz03yaCNLQuKTsxWBh3yUllv4hAJ3 H0gy6lLfUfsWJJy9FYuFnVZmBu4BrhWvzZQSoLMNclB9heaENsMG+40vzQ7KSsEhvQDqYF Cw4ysQHzW7TON5znEKP4noxTa03HClECUwunpvVO+YpedKcMUJEzPiJzBFSFJw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 12:10:36 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 --- guix/build-system/mix.scm | 186 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 161 +++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 000000000..1b04053d7 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,186 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cute string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 000000000..fe2e36d18 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries under PATH for a specified Elixir +VERSION are installed." + (string-append path "/lib/elixir/" version)) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-build-root mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the +package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables" + (string-append mix-build-root "/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cute string-join <> ".") + (cute take <> 2) + (cute string-split <> #\.) + strip-prefix + strip-store-file-name) + (assoc-ref inputs "elixir"))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cute string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_EXS" mix-exs) + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3"))) + +(define* (set-elixir-version #:key inputs #:allow-other-keys) + "Store the version number of the Elixir input in a parameter." + (%elixir-version (elixir-version inputs)) + (format #t "Elixir version: ~a~%" (%elixir-version))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Example: elixir-a-pkg-1.2.3 -> a_pkg" + ((compose + (cute string-join <> "_") + (cute drop-right <> 1) + (cute string-split <> #\-)) + (strip-prefix name+ver))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name)) + (root (getenv "MIX_BUILD_ROOT")) + (env (if build-per-environment "prod" "shared"))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (add-after 'set-mix-env 'set-elixir-version set-elixir-version) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 02/15] gnu: elixir: Wrap binaries. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 11:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020340039261 (code B ref 66801); Fri, 08 Dec 2023 11:14:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 11:13:23 +0000 Received: from localhost ([127.0.0.1]:43928 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYnK-0002PJ-U1 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 06:13:23 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:35111) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYnI-0002Os-Mt for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 06:13:21 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id E0DC460003; Fri, 8 Dec 2023 11:13:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702033982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Too275ATH3DnZfaDLq2YMsLOUjiqHUrIkhEfxt+fPRM=; b=DPsNMwu/1iDSrxoN4AZfCDzQuXU9tGTFM2mSC7pv1tEYDMV6ZpOMjKlDl5Ka+ZyDngrzoW O1Wac4/IBfT0cid75yfSL9wg5KHBeEOKqSGbwZtBVrO/2wUiJynPAIZQEZQDeHx03Q8sJB DJT9a+GSesc7KoQmoMknyLbkcQoCZZ73SE820mAFPZywAPEpJ/Z8m/NL/izILMq46HW83Q QRqh6braEiPGs4JYSPjWUP64Pfoybs+0kaRRw0JpP1Y4oxaCdxVDJfCBvoSOM6rT2A+G+5 QCxfcAvidG1fYneKp77NZjN2DqKFNVMvFqNaUEWxGL37fNI4N3CijWC4oVAgow== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 12:10:38 +0100 Message-ID: <890f17a9c0c5ea79addb025bec17f08d054cfb5b.1702033823.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/elixir.scm (elixir)[arguments]: Phase `wrap-programs' added. * gnu/packages/elixir.scm (elixir)[native-search-paths]: Variable `GUIX_ELIXIR_LIBS' added. Change-Id: I75bdde3aeedc1d495ea5fc2c5fc3fcdc5dc3fad2 --- gnu/packages/elixir.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b42512..15cbdbdfc 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -27,6 +27,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -96,9 +97,20 @@ (define-public elixir (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}")))) + programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ELIXIR_LIBS") + (files (list (string-append "lib/elixir/" (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") (description "Elixir is a dynamic, functional language used to build -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH 03/15] gnu: Add elixir-hex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 11:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org, Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020340239326 (code B ref 66801); Fri, 08 Dec 2023 11:14:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 11:13:43 +0000 Received: from localhost ([127.0.0.1]:43932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYnf-0002QM-9k for submit@debbugs.gnu.org; Fri, 08 Dec 2023 06:13:43 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:40957) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBYnd-0002Pu-SA for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 06:13:42 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9826960007; Fri, 8 Dec 2023 11:13:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702034003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fe9NDYIp2SSz/ryveYzpX0Xmhprq5TLVAGhBfX9/cGM=; b=gqX3ZVuAUE2Z8P5zUE32YZv1HZRO3GTzVdD67vbJScGOSOnd6dkXe1UekNUBSXmLo/aFDi KbizkhyKBZuK8XvlqhuHzdsqyjLh1gJIWK9eGab1Uv2AH8lGbPNwcLePZ7/nUUpYL11mA2 22OI0M63rcJTz/vY7cYD0g1ZylQ28AZdJ6MTlWCZeykTNGuyXKS5bipZhel0BYlktYDfZ+ 3Yn6EpwJ2jPhMqaRP4hlrPyIVKj34JCgT2Kwg00YvdVpMMRaQWKYpxbtAKpVamGRoKd50H UHeNZLXodIqQTVDSov6kccyUYLPkie+eJevZK2bxS3pL6RepZmqDLlXTSMYeBg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 12:10:41 +0100 Message-ID: <937fdf197914163a125e2e8a12497fb9ebbde81b.1702033823.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir.scm (elixir-hex): New variable. Change-Id: I957688ae4e078afd79acd439880c38083fdab83a --- gnu/packages/elixir.scm | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 15cbdbdfc..cb9074526 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -118,3 +118,46 @@ (define-public elixir for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public elixir-hex + (package + (name "elixir-hex") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexpm/hex.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj")))) + ;; The mix-build-system assumes that Hex exists. + ;; We build Hex using the gnu-build-system. + ;; Other Elixir packages use the mix-build-system. + (build-system gnu-build-system) + (inputs (list elixir)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "MIX_ENV" "prod") + (invoke "mix" "compile"))) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define X.Y #$(version-major+minor (package-version elixir))) + (define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex")) + (mkdir-p out) + (copy-recursively "_build/prod/lib/hex" out)))))) + (synopsis "Package manager for the Erlang VM") + (description + "This project provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 11:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170203627216742 (code B ref 66801); Fri, 08 Dec 2023 11:52:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 11:51:12 +0000 Received: from localhost ([127.0.0.1]:44001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBZNw-0004Ly-4F for submit@debbugs.gnu.org; Fri, 08 Dec 2023 06:51:12 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:50639) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBZNu-0004LX-E2 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 06:51:11 -0500 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-40c2308faedso20619265e9.1 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 03:50:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702036251; x=1702641051; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=hodctYElAkH1gHcObdEp1OQZERwi19EMaDtc65VeUxU=; b=ew+al3FUiOm0fajGaCdmD4fBrL3njolFsNbTdRoFlfqUBs663Cy5Rzz4PcWQdUcyj8 QwttLsgQ78uvPkT5cz2GEN7WYxOvLCxoX51ZAixBOXErPtH9ewg2yYd8JhlybH1/768W asyPk89jzs+4MjKXbXq+gGOo7wDr8G+xt6AZLBBl1Ba4abRkEJk1XIeB2m+AOdz4IriT nSHq7sUlf2U307jblptstfIZRen+3L8SoEqSBzizO9IF2fHr1l5P2qw00ATOdx+2ynLX cq5GlQaWjlIUH1OfQ6YBVcWw/JB2K/8A73xsjjHo7bj35d6WMn+t3v5votQrolgCkLEB TZcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702036251; x=1702641051; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hodctYElAkH1gHcObdEp1OQZERwi19EMaDtc65VeUxU=; b=XAsyQY/xj31du07Ld55zzPfMTuzsLk7jOgJu4aX9+7rHgRkkzhZYr5OfVoEEV2Do0I cwuYFbAy+b6B74p22vJG2Mc0p3gMaVDJJDkBjYxKEmmJvp11YAxrEafmkW21CFNWW9Bu OCD//scYlTgr+UA9vH34nqEqHa+YV9LVmA+Xi9B12y4HIj42QEGB52uxa5P3EXeuwQgn r/wyXYhXUVD/x0C7n14bTgc3qvwplX65plkPcjFcRf5ojBYWkdCwUaCEYHoj2xesP0+6 kZNYZuFYbaA5tX5XwbsmrFIyRwntSL4nSHZG+hO4iTOrJChuq4aGbkUo18/o2jB2nKAc onLg== X-Gm-Message-State: AOJu0Yyt8mHtM4pvylGD3ABfJmDb+QY2Pjl/PScjSS89upY5uNq9b/wz PXYqBEIKzyqh5+tUJEQd2PU= X-Google-Smtp-Source: AGHT+IHpNFpuWImk0o/InSgqs37ghmnwexH+JixAxPC77WLF8xnAd6LwH8MEORxWHaKm3ir4LJb0Ow== X-Received: by 2002:a1c:7c19:0:b0:40c:2c36:2a23 with SMTP id x25-20020a1c7c19000000b0040c2c362a23mr1206335wmc.180.1702036250887; Fri, 08 Dec 2023 03:50:50 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id v12-20020a05600c470c00b0040b37f107c4sm1521348wmo.16.2023.12.08.03.50.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 03:50:50 -0800 (PST) Message-ID: <0e808fbe13d6ecd61f67ad3aaf1184c4955d51f2.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 12:50:48 +0100 In-Reply-To: <87ttott0v5.fsf@phfrohring.com> References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> <87y1e5t6w3.fsf@phfrohring.com> <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> <87ttott0v5.fsf@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 11:17 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > I will start with the first 3. To test them, I have issued the > following command: > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 ./pre-inst-env guix build elixir-hex > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >=20 > which result was: > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 =E2=80=A6 > =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35- > elixir-hex-2.0.5.drv > =E2=94=82 /gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex-2.0.5 > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >=20 > If everything is correct, I will send the other ones. For the record, I get these hashes on current master: grafting=C2=A0'/gnu/store/dapdrihxaxfxfcky51sr4607a79msgp6-elixir-hex-2.0.5= ' -> '/gnu/store/blg85m7a4jd9cdyc6q9m96lnxf9d97h0-elixir-hex-2.0.5' And you still forgot the reroll-count. Don't forget the reroll-count. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 14:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204532918308 (code B ref 66801); Fri, 08 Dec 2023 14:23:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 14:22:09 +0000 Received: from localhost ([127.0.0.1]:44213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbk1-0004lE-0B for submit@debbugs.gnu.org; Fri, 08 Dec 2023 09:22:09 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:34743) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbjy-0004kV-QU for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 09:22:07 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 77AB1E000B; Fri, 8 Dec 2023 14:21:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702045305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mpd3np0ZJPdyAr/WllYkKeubrrSFXJ8ciBPiofijYNY=; b=RcYi+eLO6euW/84A10PGL2GmLXEqMWyCO8t0aeysUeAD4I/tUnqrIP6S6eKe1t6ve9dzs8 mcQnemWExiQUMC8MN1Fv5C1Kbcve/9AMoVK4usJtUO9+dy328e/bTg/Zww7wO7iYE9Pqxl rQfzCHILhTdm6TYKyeYpxoxQES7jhLLW76XvkhPmZ+y/RVXpoAS4suTfw895SazLydUUx/ pjYfFLqlV35ug0z1aljSP7XpMMN8Z2RcXnk3idHQEW7gk/n5n8zkpC0SEuYMYPjXUql0RK F/nNViMEOpXrWWlCUZtO0Cf4282WqKk8xaMbkt0WEzJ0ptE+vpqloSrZpRmDeA== References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> <87y1e5t6w3.fsf@phfrohring.com> <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> <87ttott0v5.fsf@phfrohring.com> <0e808fbe13d6ecd61f67ad3aaf1184c4955d51f2.camel@gmail.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 08 Dec 2023 15:20:40 +0100 In-reply-to: <0e808fbe13d6ecd61f67ad3aaf1184c4955d51f2.camel@gmail.com> Message-ID: <874jgs93lz.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) For the record, I get these hashes on current master: grafting=C2=A0'/gnu/store/dapdrihxaxfxfcky51sr4607a79msgp6-elixir-hex= -2.0.5' -> '/gnu/store/blg85m7a4jd9cdyc6q9m96lnxf9d97h0-elixir-hex-2.0.= 5' I do not know exactly how to hash is computed. The previous build of elixi= r-hex has been done after rebasing the commits on top of the commit `06f25a9a8' of ma= ster. For the record: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 git show --oneline -s =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 0fcd231da (HEAD -> master) gnu: Add elixir-machete. =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 ./pre-inst-env guix build --check elixir-hex =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 The following graft will be made: =E2=94=82 /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35-elixir-hex-2.0.5.d= rv =E2=94=82 applying 1 graft for elixir-hex-2.0.5 ... =E2=94=82 grafting '/gnu/store/dapdrihxaxfxfcky51sr4607a79msgp6-elixir-hex-= 2.0.5' -> '/gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex-2.0.5'... =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35-el= ixir-hex-2.0.5.drv =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35-el= ixir-hex-2.0.5.drv =E2=94=82 /gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex-2.0.5 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 And you still forgot the reroll-count. Don't forget the reroll-count. Well, what I assumed the "reroll-count" was was wrong. You mean the `v'= in `[PATCH v]' in the subject of the patches? In my next email, I will send the sam= e patches except that I will use the `--reroll-count=3D3' option to build them. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 02/15] gnu: elixir: Wrap binaries. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 14:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204568619191 (code B ref 66801); Fri, 08 Dec 2023 14:29:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 14:28:06 +0000 Received: from localhost ([127.0.0.1]:44227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpl-0004zK-6z for submit@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:06 -0500 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:39555) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpi-0004yp-S3 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:04 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 961071BF211; Fri, 8 Dec 2023 14:27:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702045663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Too275ATH3DnZfaDLq2YMsLOUjiqHUrIkhEfxt+fPRM=; b=AqtPtpq9QyK258XPMC+YP7cEFyY21ptppEfig40HugmYKxUvV0HZKSmhOGbDHuXSUAKGha YW+bh5I5XY8D4eV8pwQnOzbybMPMuJhX3Ed3GcYa0gWGV72ZawITGVmnOLj6NzYps5Oj84 9QKKkkdawuwUd97KE76bDvcZfOSKnCS0dt1R4bzbfIcXaBtNmN4IDPaO4qWbcvwXK3Mk3z GVfDoEq/gWGr51pydJ27OySTsqfy5O0/aPTXwS5lpeksTa4a3FYm2mpVuJnH/yaJXvudhr dFhg9khct3gUEUPTfKQ1sHVpnxtFL6J/RZj7OFJKy8qQuXoSSSvBB9+Fg75q2A== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 15:27:24 +0100 Message-ID: <890f17a9c0c5ea79addb025bec17f08d054cfb5b.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/elixir.scm (elixir)[arguments]: Phase `wrap-programs' added. * gnu/packages/elixir.scm (elixir)[native-search-paths]: Variable `GUIX_ELIXIR_LIBS' added. Change-Id: I75bdde3aeedc1d495ea5fc2c5fc3fcdc5dc3fad2 --- gnu/packages/elixir.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b42512..15cbdbdfc 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -27,6 +27,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -96,9 +97,20 @@ (define-public elixir (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}")))) + programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ELIXIR_LIBS") + (files (list (string-append "lib/elixir/" (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") (description "Elixir is a dynamic, functional language used to build -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 01/15] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 14:29:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204568919208 (code B ref 66801); Fri, 08 Dec 2023 14:29:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 14:28:09 +0000 Received: from localhost ([127.0.0.1]:44229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpo-0004zi-6E for submit@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:09 -0500 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:44389) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpi-0004yo-Uh for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:04 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 04CC51BF20A; Fri, 8 Dec 2023 14:27:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702045663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KX2+2QJTAciHuWmi8PFIdJoEPxR7UIYvlpOvpKWojT4=; b=ndgkExAjOIL5YqcEJhIO96Z2KIiqk5NoroQKC0rl3NxUn0HyFnmcLluIQyK19azA4DCbdm qugzHJGKbj1125bpfxVuXzkbcv8Zv84J26W1RaOgG2OHQwQr1ZU61rCUOEW9y0wFyF4UIB i7X/X7g6sD9Kn4g8yfHsDGcwICKqR+XwCqlZSgTFkg+HXh40vQGEOUsbewCE+bc/izORaL up9N9TFXeUtO9Rkczr0m78MFxqoD0F2hP7sI/PF3dzN8J2hTX9DIDoZyEL0oFd8DZfXJeB 9mObvJsdOcJuPhNDGU6r/Oy+zzqJ0sy52fqKaaFxWH821FZssCH/XFlTZmnV0Q== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 15:27:23 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 --- guix/build-system/mix.scm | 186 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 161 +++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 000000000..1b04053d7 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,186 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cute string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 000000000..fe2e36d18 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries under PATH for a specified Elixir +VERSION are installed." + (string-append path "/lib/elixir/" version)) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-build-root mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the +package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables" + (string-append mix-build-root "/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cute string-join <> ".") + (cute take <> 2) + (cute string-split <> #\.) + strip-prefix + strip-store-file-name) + (assoc-ref inputs "elixir"))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cute string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_EXS" mix-exs) + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3"))) + +(define* (set-elixir-version #:key inputs #:allow-other-keys) + "Store the version number of the Elixir input in a parameter." + (%elixir-version (elixir-version inputs)) + (format #t "Elixir version: ~a~%" (%elixir-version))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Example: elixir-a-pkg-1.2.3 -> a_pkg" + ((compose + (cute string-join <> "_") + (cute drop-right <> 1) + (cute string-split <> #\-)) + (strip-prefix name+ver))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name)) + (root (getenv "MIX_BUILD_ROOT")) + (env (if build-per-environment "prod" "shared"))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (add-after 'set-mix-env 'set-elixir-version set-elixir-version) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 03/15] gnu: Add elixir-hex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 14:29:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204569019215 (code B ref 66801); Fri, 08 Dec 2023 14:29:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 14:28:10 +0000 Received: from localhost ([127.0.0.1]:44231 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpp-0004zl-KC for submit@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:10 -0500 Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]:56581) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBbpk-0004yr-GZ for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 09:28:05 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 387541BF212; Fri, 8 Dec 2023 14:27:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702045664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fe9NDYIp2SSz/ryveYzpX0Xmhprq5TLVAGhBfX9/cGM=; b=XnqpEKQmyiiUibm2s1Xcv/xV4xUTCqFzEehkCpjOhH3QbBekA7Bkf0cAL9xIrOeQUPlubH BHYMJk3dKzTb6cQU+TjO6C/nsfEfoCsejMwUlzvwggU9jPd11qsVouD83HpUg8fTjS9g58 U+ZDd211x7yLXE4SochU36AFYD2Kk+4JtvoGL5xnWp4KedusVzb7ANsfcZMNE1N12NXexV AImeh5zSaCGlcPycZKvpPpTQQnFAQ2fFzAycUyj9HEoP+6ox0Y32jGDYBOMEKJhbM1SzOb yG8LB3MKH8OVTnPiLuMtMfH3CQUtbkZI18sJUy/ggTRO2HVdN98DITnNZ6GS5w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 15:27:25 +0100 Message-ID: <937fdf197914163a125e2e8a12497fb9ebbde81b.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir.scm (elixir-hex): New variable. Change-Id: I957688ae4e078afd79acd439880c38083fdab83a --- gnu/packages/elixir.scm | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 15cbdbdfc..cb9074526 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -118,3 +118,46 @@ (define-public elixir for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public elixir-hex + (package + (name "elixir-hex") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexpm/hex.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj")))) + ;; The mix-build-system assumes that Hex exists. + ;; We build Hex using the gnu-build-system. + ;; Other Elixir packages use the mix-build-system. + (build-system gnu-build-system) + (inputs (list elixir)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "MIX_ENV" "prod") + (invoke "mix" "compile"))) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define X.Y #$(version-major+minor (package-version elixir))) + (define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex")) + (mkdir-p out) + (copy-recursively "_build/prod/lib/hex" out)))))) + (synopsis "Package manager for the Erlang VM") + (description + "This project provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 14:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020473522740 (code B ref 66801); Fri, 08 Dec 2023 14:56:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 14:55:52 +0000 Received: from localhost ([127.0.0.1]:45428 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcGe-0000i6-0m for submit@debbugs.gnu.org; Fri, 08 Dec 2023 09:55:52 -0500 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:60876) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcGc-0000dy-B9 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 09:55:51 -0500 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-50bf4f97752so2644717e87.1 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 06:55:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702047331; x=1702652131; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=YKVfCBw5DtX2ZGn8/v/inqeqaten0V8MQ1E5JYNYeDQ=; b=WD46neH/U1BG/Uo3Nh5/DTC5KX8wCsw5UWnHQC2o6BDR/KbvE0+DGRlhEaUPfvIA3y W+4Ho4mNny3LOX8X8iOXTUvkOFv6e5KQDH7wAb1MBpkWYtFN9fddC3wpkmX1yUsB+FjA cEO2kyvqPfBsQquyufRkHzZWFYxSw0eD0hVhhUzNLPNYI5XwwSn26JlQ+q/VHIfSvrzu buaW+/v3Ys5arI+66zGEmUDP0viGRXiFdp8UEPvnpaB45RZ5l8mgIYMs/n7+el9XnTxg 4eB2uB7mKa4YIKhsXmVzitSU3oarT1Y939hI5dhzwdLupyZpkiVo3EocEalOasGZxijj cD9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702047331; x=1702652131; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=YKVfCBw5DtX2ZGn8/v/inqeqaten0V8MQ1E5JYNYeDQ=; b=hXKM+LOryJjeOJd5PEi460OIhZRC43mCAqz9KQTb9Z32XMzk1QZYQbZjnAGqDqwllJ 6DzWWGslJ/7fPwLMP8UDKjrwf7mAcCMVE9Muh+7N1Bnk6aWJSRiExQ8ZaQuCpCVAcbj7 pJ714KTtK/bqHy6iF0NqcwRUklJP01HnlVUriGFBfU/AR9+5mZKvgg22kOPWoHN4N2Hz w6S4Ls8idhj9uL29bkaBJwcpOENvaCPxfE7FeQK9DWkhUFdvbMYN7/5Mc4w8ZHZ6op9U 0QZYgjnPxEnIdiLQLNJhshQMwcSWG5rCmKs1HYa60PyC/Kw8mhNSv5dMGh+OW423kEFO ps0Q== X-Gm-Message-State: AOJu0YyimHoPR/CvQO2nTUxxcadbGCluHN7+5fOADjiFZtOXy2j2lmwu iymTkxT3wNB538zIVfwCDs/nBCjsjJ4= X-Google-Smtp-Source: AGHT+IHgRlFgTdZBGR/nAANJelWOgk7W4cUtFKHs8OnHwz4usj93KQtFM0FiPzcVJZ6T9Gldpqw+6g== X-Received: by 2002:a19:8c05:0:b0:50b:f836:9027 with SMTP id o5-20020a198c05000000b0050bf8369027mr16491lfd.93.1702047330593; Fri, 08 Dec 2023 06:55:30 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id di5-20020a056402318500b0054cea9f91e9sm854591edb.20.2023.12.08.06.55.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 06:55:30 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 15:55:28 +0100 In-Reply-To: <874jgs93lz.fsf@phfrohring.com> References: <1b3bc0974f5c26e61c95e10a376c7b28f43d2e06.1701988060.git.contact@phfrohring.com> <444e529266b85742d32e4ca2102d83fac010352b.camel@gmail.com> <87y1e5t6w3.fsf@phfrohring.com> <9ce4cc7b52e6e3665e2b86af4f970552de8b8e95.camel@gmail.com> <87ttott0v5.fsf@phfrohring.com> <0e808fbe13d6ecd61f67ad3aaf1184c4955d51f2.camel@gmail.com> <874jgs93lz.fsf@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 15:20 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 For the record, I get these hashes on curr= ent master: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 grafting=C2=A0'/gnu/store/dapdrihxaxfxfcky= 51sr4607a79msgp6-elixir- > hex-2.0.5' > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 -> '/g= nu/store/blg85m7a4jd9cdyc6q9m96lnxf9d97h0-elixir- > hex-2.0.5' >=20 > I do not know exactly how to hash is computed.=C2=A0 The previous build o= f > elixir-hex has been done after rebasing the commits on top of the > commit `06f25a9a8' of master.=C2=A0 For the record: > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 git show --oneline -s > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >=20 > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 0fcd231da (HEAD -> master) gnu: Add elixir-machete. > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >=20 > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 ./pre-inst-env guix build --check elixir-hex > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 >=20 > =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 > =E2=94=82 The following graft will be made: > =E2=94=82=C2=A0=C2=A0=C2=A0 /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35-e= lixir-hex-2.0.5.drv > =E2=94=82 applying 1 graft for elixir-hex-2.0.5 ... > =E2=94=82 grafting '/gnu/store/dapdrihxaxfxfcky51sr4607a79msgp6-elixir-he= x- > 2.0.5' -> '/gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex- > 2.0.5'... > =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35- > elixir-hex-2.0.5.drv > =E2=94=82 successfully built /gnu/store/1732zx2s5afv1da5vhik0gr923frvg35- > elixir-hex-2.0.5.drv > =E2=94=82 /gnu/store/hak603f9adwad1vrlqkqn6ywgissfb13-elixir-hex-2.0.5 > =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 I don't get the same hashes, but at least locally, --check succeeds. > Well, what I assumed the "reroll-count" was was wrong.=C2=A0 You mean the > `v' in `[PATCH v]' in the subject of the patches? In my next > email, I will send the same patches except that I will use the `-- > reroll-count=3D3' option to build them. Yep, that's what I meant. Feel free to also send 04..15. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 05/15] gnu: Add elixir-makeup. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478544485 (code B ref 66801); Fri, 08 Dec 2023 15:05:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:14 +0000 Received: from localhost ([127.0.0.1]:45614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOi-00019r-A8 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:13 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:55975) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOg-000195-9L for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id ABB6F1C0005; Fri, 8 Dec 2023 15:03:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ecL3OuZbHZWJzsYeMQOUPXZsmI/+gKesusvygm7mwxE=; b=DJfpp0mP1+5s2lYCjxEPJaC0c3oKEcGCR5/F4enrVGfGIg07fLRxwju3oz2kM2AdRGlLvZ mEjz/+wWwM/YVnFzkTUAOHlRAtYyJhEdoFTwvL9bzL7xPMLGLErGuG0SJtq9BhC14FhC2h Pdt3Cn5ZwOkOPNHECHwxsDGgUK9e2CIj+agxplO/4b8g7sUxaUsFEZjSpEsZ723sWE9K6r TIwwYYASvudVVYggTiQk2WY2hAu6Pa+6hk4MIuXN6/nwV2e13pKFqPBjYQHjFPiC2emnlg 052FcarN2/SncBKJHawVmyJWKTLUJkA5DDxQ0MAFyuYVad+2bB4J5vqxxiejAA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:20 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 352360fae..afc8b0db0 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -52,6 +52,28 @@ (define-public elixir-nimble-parsec (home-page "https://hexdocs.pm/nimble_parsec/") (license license:asl2.0))) +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments + (list + #:tests? #f)) + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 04/15] gnu: Add elixir-nimble-parsec. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478584527 (code B ref 66801); Fri, 08 Dec 2023 15:05:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:18 +0000 Received: from localhost ([127.0.0.1]:45628 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOn-0001Av-Qg for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:18 -0500 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:38121) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOf-000192-Mb for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id E65E21C000C; Fri, 8 Dec 2023 15:03:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KafPcZmmD7nUkzyyob5Vsv10NWI1i384WwC2/EjxbY4=; b=LOW3SZAjS2vIUyQFiUmHBX8fEXeBCHwsM+jPqieENl1cC7dy5PAJfaBbi3bZ1FXIpEiF94 EjFMDP20g3p2ZxyfhGMQxxXFjNxIm85HJon5BId7Xg8qkS3D6eWOWSNGyj/PQBS5ARTOtP RTlUhBzIKlkxzcopk5OA499Inb/fXDC9S9eZC8Tz1RM3BDbGir2OVqMeK9blqZNPwaaM+5 R10ugoDMT70a61N834/qbcn3iF1Gixfyh5EHOkIwKjNQ8P1Ng3ViTA5/p4BtBYrYL2aajz N9V9q7a/SJ7KSwXGjS6uc0FX8sCytxr6TEtGZxy/z7O7pg7LPHyJns8X3lG+5Q== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:19 +0100 Message-ID: <844f76d247df4d3a60e4f7923a476db61c53fd3b.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 --- gnu/packages/elixir-xyz.scm | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 gnu/packages/elixir-xyz.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 000000000..352360fae --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages elixir) + #:use-module (gnu packages linux) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mix) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 07/15] gnu: Add elixir-file-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478584534 (code B ref 66801); Fri, 08 Dec 2023 15:05:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:18 +0000 Received: from localhost ([127.0.0.1]:45630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOo-0001Ay-9x for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:18 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:53833) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOg-000198-M9 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id D989D1C000F; Fri, 8 Dec 2023 15:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047832; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jLyCSuhCUSqsGS9yhp3x1iNTaVMjIDVrTg9H6jP/TTM=; b=mcx3Ho+2V1bYFxu9/gPjav8vTeDreeWP60RPea8j9wAon2ha2wputs8tMYK5cszwmK6gPz G54nx/GF2fEn8Pk4Abx9zjRLboPp1pJGb1z60NDAY9xthQ81U4Yseg2pXDPcO3pwwHGDO0 +m3XaZcbSpTt1rJOU/SpzUM1lh1rKkqNiSkXLex/0rop3KZk1Nhb+r32qGvlVath5aOI4w QcLz7RBgWDoWlr5lSRNCGIB9thMTGWdePbWduc1hvJ6ORACbykS9eg5s7fIDHQUW4pDF2x y0QwTMTG2fZrE6lveWlXZe2Dvb3Pq7qNTR0Ggcd/vHONDaLlb2mAR9rjH0vl4g== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:22 +0100 Message-ID: <3e47d3141e2e4b0dc0189ed755308aaf9932b867.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-file-system): New variable. Change-Id: I54e9c9069ddf150bb0c882775b0b2c9d5e59abd6 --- gnu/packages/elixir-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 544a414b4..bed84e9f2 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -98,6 +98,33 @@ (define-public elixir-jason (home-page "https://hexdocs.pm/jason/") (license license:asl2.0))) +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")))) + (build-system mix-build-system) + (propagated-inputs (list inotify-tools)) + (arguments + (list + #:tests? #f ;There is no test/ in the source. + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'rm-priv + (lambda _ + ;; This directory represents source code not needed on UNIX systems. + ;; Since we aim at UNIX systems, it is deleted. + (delete-file-recursively "priv")))))) + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +[fs](https://github.com/synrc/fs).") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 08/15] gnu: Add elixir-bunt. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478594542 (code B ref 66801); Fri, 08 Dec 2023 15:05:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:19 +0000 Received: from localhost ([127.0.0.1]:45632 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOo-0001B5-Mg for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:19 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:42067) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOh-00019A-9L for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 7A70D1C0010; Fri, 8 Dec 2023 15:03:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047832; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Lo/+lkXD4AQjtk7cUt5hpA2PXrTypA9KVVTwKRFC1II=; b=fbNb6BQOyfFzWv2u0vTFULipTHStjTDgyvnWfPwvtiXOk63qSypr5Wn9NyuzoMo0kNWa4X 775c6OKSBJNvL3guJBUqyJ+ujdyaRs8u5ACCS3GDolHIUPeUp06QD/dI1LLh/q5acQGlaZ Nyo2aDfVqlTnQ0WLQwbBQic39B4YNwKLaqbLQRggvoKprpzj0pFKm6YkUQWyEoODFrMb4f IyDgw9ngkICBtlEZ3Ms3xJJgdYyD3VtjHetyk6El9aPUvYzhOzFd3Ml1q5N3N/wodkZ7Gv joZzVnXUwPQlmSKR5Ad3QaauqWZHjTQQgy97IcPDLg2eITBeKNmLAbLBkpLgBw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:23 +0100 Message-ID: <2a3a2f8361fd4d27d9832fd9a95023ad57bbc14f.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index bed84e9f2..984649de4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -125,6 +125,25 @@ (define-public elixir-file-system (home-page "https://hexdocs.pm/file_system/") (license license:wtfpl2))) +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "256 color ANSI coloring in the terminal") + (description "256 color ANSI coloring in the terminal.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 09/15] gnu: Add elixir-inch-ex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478594549 (code B ref 66801); Fri, 08 Dec 2023 15:05:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:19 +0000 Received: from localhost ([127.0.0.1]:45634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOp-0001BD-2N for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:19 -0500 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:41119) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOh-00019D-Rr for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:13 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 109641C0002; Fri, 8 Dec 2023 15:03:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=070IuWjPTLjAIIoD/jUvdSb2V/0ogwDiIou6CkFIuy0=; b=ozXMIxYi18H4e0SwkNdTTiZeSqni+HzaOIXQ1bvXd01NbFVGbU9si/xkDMymSnIsG3SEBx vHufqzJTYPGtwdCPcwx4LPhMSzyxdnV7z6eI9m0XW6Jh2wJMgA9ztBx06vRC08QTn2WA+q A5pbj4hrhdEGC9xZA29hOiCy0ynDLDbs5I5/OZo9aa0+EJfbb8lZIuSMvtgu0D7wAKjuAE KjMoGhpNDxfvPPVDbTi5ihRZsMGFANHRQkKae5xTIbxX+NnIKGPTZ11DfVXOxt0q0kZSGO epRY0Bv83QiuKcLme+z3I4aOiCeW6P0ZFkFIczCQmbi9IJJYUhev2NtI+TY0Sw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:24 +0100 Message-ID: <3764f1dd233ecdaa464d8ff594be84dac171ed60.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a --- gnu/packages/elixir-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 984649de4..12aee0d78 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -144,6 +144,29 @@ (define-public elixir-bunt (home-page "https://hexdocs.pm/bunt/") (license license:expat))) +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Offers a Mix task for suggestions on enhancing your inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 06/15] gnu: Add elixir-jason. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478604556 (code B ref 66801); Fri, 08 Dec 2023 15:05:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:20 +0000 Received: from localhost ([127.0.0.1]:45636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOp-0001BK-JI for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:19 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:41827) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOh-000197-L9 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:13 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 49C9A1C0006; Fri, 8 Dec 2023 15:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/algMoBuHPR8IJqnlpog7IfOMtnZdC4yOe8JvCPH2yQ=; b=RvT5T84RRpUc6wAemb+mKE7rFhWlIPIqMiJRsGi6FGWKk/3VdzCvNx7To2ucXIqYFk412n sR4oha9fhr8KgeNFHYQ4Rusj0mTJkAuB8xRraQ3lw29gEXSD6bYeY79K4m8lXK1nChGAID xkEhtMkGj7GIrcnZ4k/gITD/U3XIHlgvVpgKRHMaMKxFddH6Qi8XxREq7rOmADY58q4L3G eaeC6YsydPFDumZ8qnMq+eC6+va6fERbjo4pzLmfkJR3yafP8ALl4K9K1/fvOyxbUu+wxV sl6VrBOvBYy0ky8CHiw4N/hhyvPCH1KA8HMBGnETiBeGyNqkcOz5E8sEgQ7q4A== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:21 +0100 Message-ID: <30b84fca7342449cde69ed948be7bcdfcc1127d1.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index afc8b0db0..544a414b4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -74,6 +74,30 @@ (define-public elixir-makeup (home-page "https://hexdocs.pm/makeup/") (license license:bsd-2))) +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 10/15] gnu: Add elixir-castore. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478604564 (code B ref 66801); Fri, 08 Dec 2023 15:05:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:20 +0000 Received: from localhost ([127.0.0.1]:45638 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOp-0001BR-W3 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:20 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:48589) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOi-00019G-Dl for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:14 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 999901C0009; Fri, 8 Dec 2023 15:03:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qP3CE/sStGqGFb0+GgfQ3NO7n8cik88IyOa87ATRmo4=; b=cvG0tQ4eyH8Xp/fsmNafJfMYArRdaza2hd8ttcjKy0hD3/cORC41fQQH/c/B63eBslGEUv BupHTgaEgTJXfFeml/StKVjCj/QB6eTB5LNDfWnaIEvXb/OhIQNjZGEOOLDvGlYGhdaOcF 0XIyehYEx9uXf6aZmykKwKj7FSK9uJ8XH0O5yGUyAuaTjloMc0+nCWgqef7jiJK1ei3Nxg bmmgbuNxcZZbGXFQivr1YyVgBdgorcJ0UcCPK2vYHwb/0oZa7f9bmJ4TVlwZRrYJsYTP+h ybQBM+MzMBepBqJtb/V3hRU/3vsbbkvsqh0qwyR/pmSk5Mc0gGkZIIMHlEPDlQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:25 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 12aee0d78..f50c8f018 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -167,6 +167,26 @@ (define-public elixir-inch-ex (home-page "https://hex.pm/packages/inch_ex") (license license:expat))) +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "Up-to-date CA certificate store") + (description "Up-to-date CA certificate store.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 12/15] gnu: Add elixir-credo. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478604571 (code B ref 66801); Fri, 08 Dec 2023 15:05:05 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:20 +0000 Received: from localhost ([127.0.0.1]:45640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOq-0001BZ-CN for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:20 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:54387) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOj-00019K-GZ for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:14 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id B1B2F1C0015; Fri, 8 Dec 2023 15:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=U4AN4FHlcMaRthtY8AQtfnL7hkLdq2KP/js/SU1hoEI=; b=DllkCIpdk4fYCMuUpqq4v0xJ8M3H6r6ZQy9iRXvAjQtV0ZPo73YWoV7kP08+gD3fS7XXeO AhKSXQevc/bSE0jp5I5vobNQxQPfV9rBzzBEpdWVZmog6T4vWYJU75G+mstG/ZxsMplmir liq/jHF4umjjmHC3Fvm2GP2wCGwJUUIImyVYqvp1mhx0wRRQ0g5lwhAZKMk0pWHhZOdeNZ rg+88OWWNl5/j05iqRQQ0mV7Og/XItKhYfvhw7ecxUaIbVjXXMhZJvESZmBEFvsHOfy2/T f+CoWtX3xaY8i+C90MhUoxBSZZpWbzcKJ8JtPvMgsnTMlhf6NxArFT2OYvhszw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:27 +0100 Message-ID: <670c3550e3741978c2c307e8e08a1c49eace8fb5.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index f6be8e88f..afacbd872 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -212,6 +212,30 @@ (define-public elixir-excoveralls (home-page "https://hexdocs.pm/excoveralls/") (license license:expat))) +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 11/15] gnu: Add elixir-excoveralls. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478614579 (code B ref 66801); Fri, 08 Dec 2023 15:05:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:21 +0000 Received: from localhost ([127.0.0.1]:45642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOq-0001Bg-Py for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:21 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:32851) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOi-00019I-Us for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:14 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 2D40C1C0012; Fri, 8 Dec 2023 15:03:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dUUkWXiL23ysyHz8wg2DgET0KkgTo+NpkHVhTXFrC6w=; b=OeKSO/yj1/k7FySSbK6hFCf0FDtKyUZk7AAy3fdWMWNo7LntdkBaGAmGuqTJ+c7EAneo3e pbts++IcncpCAoEzm0/yta9lw/s3GDpiD+E3vqk2BvMFrWLuCJsawNCcXnWXJVHOROafHL NqPLZ5qs/sOrgwR6T3AFDZblvQDMDoOuuvJYZGuMq+aLwK7q4vd0rJ/1DatC0CjOPyCwWN LPfa61QXKsTyPNkcoM8pWiDMYrHfh8+vbTP15WA40xrTMqo7FOgrPG6ffazoqNc8j/BpuO Jecg1VM8FbENb5TICqU0RmTDKe0oKIZ2qts71Yuy5bORkcm3UQjSNOaCxJf5zA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:26 +0100 Message-ID: <3beb1d8ba84e59c927164aa1315429c70f6b1634.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 --- gnu/packages/elixir-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index f50c8f018..f6be8e88f 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -187,6 +187,31 @@ (define-public elixir-castore (home-page "https://hexdocs.pm/castore/") (license license:asl2.0))) +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + ;; No test/ folder. + (arguments + (list + #:tests? #f)) + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 13/15] gnu: Add elixir-erlex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478614589 (code B ref 66801); Fri, 08 Dec 2023 15:05:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:21 +0000 Received: from localhost ([127.0.0.1]:45644 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOr-0001Bn-82 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:21 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:46695) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOk-00019L-2G for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:15 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 46B3F1C0011; Fri, 8 Dec 2023 15:03:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PXsmiE7wCcOf1Kj5Z7oh9QqsixMy+SO1zWKcrOZxN6I=; b=kMzQRioClgk+HzGXMEeHT/+bPmXPW4iSZSXuOmytrUvXDZH6VK3i5ac+pAdxLV8ryfiHIh Xck/Rd84pZuOBlNy3MV450BD6mRqfeZpZsQKWhd7cdhK9jybnteHQc/x9aZ/JhG/gbb4qH 3UXSiNJXr8UST2Sx8CEUZAlg+l3yuKkiZJeRlCsR7LcIIZi/zK+miouw3gkWQduzmhvIWG apAT9orMAqEUrAYLWB0A7U8ILALT9fDOvkWdf8qiR2n1zPV0edd6wX31rifxIOhgC45rqF K6wdEY9ogjNZasum6KD0TwzRYLaEZAfmnhpkrTaDRaxy8mlJ6+vlxjl2VFScPg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:28 +0100 Message-ID: <9565a3613f72aec9d954d771a374579352c4a126.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 --- gnu/packages/elixir-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index afacbd872..08107934a 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -236,6 +236,29 @@ (define-public elixir-credo (home-page "https://hexdocs.pm/credo/") (license license:expat))) +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing things +like Dialyzer errors and Observer .state. NOTE: Because this code calls the +Elixir formatter, it requires Elixir 1.6+.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 14/15] gnu: Add elixir-dialyxir. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478624601 (code B ref 66801); Fri, 08 Dec 2023 15:05:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:22 +0000 Received: from localhost ([127.0.0.1]:45646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOr-0001By-Mk for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:22 -0500 Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:45027) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOm-00019f-Rr for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:17 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id D1BF31C0018; Fri, 8 Dec 2023 15:03:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EUKWZznz7kX5q1Mm3/s6XgIN47G1sLkfg3o8plo0my0=; b=fxALCFqAaQuHjIGsSEnFpyAUtXNyEeiwxrsBOX7laOmODtvXTTrf29kW/WkY0xfsTJgz8x crdlnXZwkmvZjgjsBwxBCBWCqZvMHW0NZif8DL9dhjjQi+q4AtmIg6gqzbpZDnVnXjAlNf lGiSxk0fmdjERygV9qWKrSk0NcVkvFeoLCxMPWuKd/HXzVUdCBmY2haXMV5UsG7axHb20Y qDA56bmhQxT2WbIBqdFsgGJk9cSjHzkV5bIEOlc4yp+XuwXTnSbKBVUaT1oZ1vhGjYxPeS axjIVjWnnBGNRCKXsnGtJJiIZ4rYeN1n+KdMZp6nvr7go3WgdGMDEPc6ZNHDiw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:29 +0100 Message-ID: <5f7e1b432effa595c78a3eb1daeb1764d79b2a6c.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-dialyxir): New variable. Change-Id: I387062e0aaaded448022aa7534b95859b5979a06 --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 08107934a..70b752bc3 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -259,6 +259,27 @@ (define-public elixir-erlex (home-page "https://hexdocs.pm/erlex/") (license license:asl2.0))) +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:05:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020478634607 (code B ref 66801); Fri, 08 Dec 2023 15:05:07 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:04:23 +0000 Received: from localhost ([127.0.0.1]:45648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOs-0001CA-Hj for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:22 -0500 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:48675) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcOm-00019g-Rx for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:04:17 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 655BF1C001D; Fri, 8 Dec 2023 15:03:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702047836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tpYU2jyFL+F0ed/B8WVXEWBhvTMYL6z46i+AoieuNcg=; b=jpI6D1uHDimeXHJMwRBE/vcy/By+iaN687cRNFB8AdKwNm7frbAGWrI1/xshWIbV9BxlRX R3subtoqCAt89IglO5/JFlFzY5cDljl+mJXc4+ZyKlHuU5xOk6aWB7fo4hs169CARy3bob xeizilnAk/gjSSNAq47BWow5htzaWP6dK8Y9bFshZ33VUuBsy6xf5ZVZy8jfDerlYVzN7y hHgmM4qH2hfVgcNP9pw0IJfEpoK52WW205nGyd8opfF/j7u6LZH5v72UeLOLErzv1e4McB AoZGDT7QDR70pDaiXldNeEYHpciqNDV9cVhF+gZEcfJSA+KvPoN2U2DzxWZ38w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 16:03:30 +0100 Message-ID: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 70b752bc3..a1a29dfa0 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -280,6 +280,26 @@ (define-public elixir-dialyxir (home-page "https://hexdocs.pm/dialyxir/") (license license:asl2.0))) +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 03/15] gnu: Add elixir-hex. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020494179311 (code B ref 66801); Fri, 08 Dec 2023 15:31:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:30:17 +0000 Received: from localhost ([127.0.0.1]:45746 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcnw-0002Q7-K5 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:30:17 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:48279) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcnu-0002PY-C9 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:30:15 -0500 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-40c29f7b068so19833805e9.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:30:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049395; x=1702654195; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=Pfpk2m06aEhjIOULR2GWI5n61qWw/CbiFAWS0Hg/NmM=; b=LGUZt2vstFZZBWeG1kSglneh/pAVkkZeHSt3yb+lEe5ma5cCepWJTh5XP7doDJ++py yrZK2VTB/1tS/KpLECIk+6MxLH0TDTr2iy61gZmGJhOiJfVWi4WeOcVZ5stNV0uF/0iC Mt4lFFCwDkbpQAgCQwNxu9XptAIcRA69PfzLK97trZkc81/uPRiULv7QAT4meLSRtl3B Zuy3i1haf5bTqSHo5Ii7YOo2T9pk4LMF/zczSZL4zwzoZ47ldpb5YjQKXZ8/mioGL/vd nx/tsha6AyG3S7VC/7NiNNSMCWDtC5bvPt7avIBt1cd+uf7/9pC5HX4a2LhDCTqiPQdJ KJCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049395; x=1702654195; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Pfpk2m06aEhjIOULR2GWI5n61qWw/CbiFAWS0Hg/NmM=; b=ZecyP/tb5fnqdzGbr8XkYo98WR8P6xf4xm/cgKmcj+AICHzdWcTHKgtzx5XnjtloaL EHI6pA7YJCQtJfp+8Iiw5fHJNplPm642vIWju5YxLI4+4sjOdCK/vsm0HliVLL5LBxAw TLaRrcqUawiEqn2BfL5aIg24vOJhpalnCLzBV8foDE5dlj6PX5DYo/pzd7frZG5G0Hni NXP+dlOyPMnVUXzS/VfjhRBEY72loyJHkc7rPrRbWdr5IA/uC5vBXKAr+5KX5N/0DWiW 3UHsq4315X4Flu/eIZSaclxHWDtLVjZ5KagJwub3moZYOzPEpY4wFv2ndiAE04cLs/bl c2fQ== X-Gm-Message-State: AOJu0YzBoGNKXdY2q2yfw+wp4pjjmoiAQgVX5OELJ4pdk2x5AF5iB1mX VKOnlRgUuTQbst13iILKm1A= X-Google-Smtp-Source: AGHT+IHCu3vIJgxUnm4vt4fCVMVJqMdNJKVdiK6AGMImIj5X+2Wc3KSTOnyNwxROdpua/Qv+Qb6rOw== X-Received: by 2002:a05:600c:2190:b0:40c:3158:af22 with SMTP id e16-20020a05600c219000b0040c3158af22mr75629wme.154.1702049395053; Fri, 08 Dec 2023 07:29:55 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id g11-20020a05600c310b00b004090798d29csm3168375wmo.15.2023.12.08.07.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:29:54 -0800 (PST) Message-ID: <7cef907ed3b2a339655b667087d5bb6c29b657e8.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:29:52 +0100 In-Reply-To: <937fdf197914163a125e2e8a12497fb9ebbde81b.1702044562.git.contact@phfrohring.com> References: <937fdf197914163a125e2e8a12497fb9ebbde81b.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) QW0gRnJlaXRhZywgZGVtIDA4LjEyLjIwMjMgdW0gMTU6MjcgKzAxMDAgc2NocmllYiBQaWVycmUt SGVucnkKRnLDtmhyaW5nOgo+IEZyb206IFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcgPHBoZnJvaHJp bmdAZGVlcGxpbmtzLmNvbT4KPiAKPiAqIGdudS9wYWNrYWdlcy9lbGl4aXIuc2NtIChlbGl4aXIt aGV4KTogTmV3IHZhcmlhYmxlLgo+IAo+IENoYW5nZS1JZDogSTk1NzY4OGFlNGUwNzhhZmQ3OWFj ZDQzOTg4MGMzODA4M2ZkYWI4M2EKPiAtLS0KPiDCoGdudS9wYWNrYWdlcy9lbGl4aXIuc2NtIHwg NDMKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IMKgMSBmaWxl IGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2Vz L2VsaXhpci5zY20gYi9nbnUvcGFja2FnZXMvZWxpeGlyLnNjbQo+IGluZGV4IDE1Y2JkYmRmYy4u Y2I5MDc0NTI2IDEwMDY0NAo+IC0tLSBhL2dudS9wYWNrYWdlcy9lbGl4aXIuc2NtCj4gKysrIGIv Z251L3BhY2thZ2VzL2VsaXhpci5zY20KPiBAQCAtMTE4LDMgKzExOCw0NiBAQCAoZGVmaW5lLXB1 YmxpYyBlbGl4aXIKPiDCoGZvciBydW5uaW5nIGxvdy1sYXRlbmN5LCBkaXN0cmlidXRlZCBhbmQg ZmF1bHQtdG9sZXJhbnQgc3lzdGVtcywKPiB3aGlsZSBhbHNvCj4gwqBiZWluZyBzdWNjZXNzZnVs bHkgdXNlZCBpbiB3ZWIgZGV2ZWxvcG1lbnQgYW5kIHRoZSBlbWJlZGRlZCBzb2Z0d2FyZQo+IGRv bWFpbi4iKQo+IMKgwqDCoMKgIChsaWNlbnNlIGxpY2Vuc2U6YXNsMi4wKSkpCj4gKwo+ICsoZGVm aW5lLXB1YmxpYyBlbGl4aXItaGV4Cj4gK8KgIChwYWNrYWdlCj4gK8KgwqDCoCAobmFtZSAiZWxp eGlyLWhleCIpCj4gK8KgwqDCoCAodmVyc2lvbiAiMi4wLjUiKQo+ICvCoMKgwqAgKHNvdXJjZQo+ ICvCoMKgwqDCoCAob3JpZ2luCj4gK8KgwqDCoMKgwqDCoCAobWV0aG9kIGdpdC1mZXRjaCkKPiAr wqDCoMKgwqDCoMKgICh1cmkgKGdpdC1yZWZlcmVuY2UKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9oZXhwbS9oZXguZ2l0IikKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCj4g K8KgwqDCoMKgwqDCoCAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCj4g K8KgwqDCoMKgwqDCoCAoc2hhMjU2Cj4gK8KgwqDCoMKgwqDCoMKgIChiYXNlMzIKPiArwqDCoMKg wqDCoMKgwqDCoCAiMWt2Y3p3dmlqNThrZ2toYWs2ODAwNGFwODFwbDI2NjAwYmN6ZzIxbXlteTJz eXBrZ3htaiIpKSkpCj4gK8KgwqDCoCA7OyBUaGUgbWl4LWJ1aWxkLXN5c3RlbSBhc3N1bWVzIHRo YXQgSGV4IGV4aXN0cy4KPiArwqDCoMKgIDs7IFdlIGJ1aWxkIEhleCB1c2luZyB0aGUgZ251LWJ1 aWxkLXN5c3RlbS4KPiArwqDCoMKgIDs7IE90aGVyIEVsaXhpciBwYWNrYWdlcyB1c2UgdGhlIG1p eC1idWlsZC1zeXN0ZW0uCj4gK8KgwqDCoCAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0p Cj4gK8KgwqDCoCAoaW5wdXRzIChsaXN0IGVsaXhpcikpCj4gK8KgwqDCoCAoYXJndW1lbnRzCj4g K8KgwqDCoMKgIChsaXN0Cj4gK8KgwqDCoMKgwqAgIzpwaGFzZXMKPiArwqDCoMKgwqDCoCAjfiht b2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChkZWxl dGUgJ2Jvb3RzdHJhcCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgIChkZWxldGUgJ2NvbmZpZ3VyZSkK PiArwqDCoMKgwqDCoMKgwqDCoMKgIChyZXBsYWNlICdidWlsZAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc2V0ZW52ICJNSVhfRU5WIiAicHJvZCIpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChpbnZva2UgIm1peCIgImNvbXBpbGUiKSkpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoCAoZGVsZXRlICdjaGVjaykKSW5zdGVhZCBvZiAoZGVsZXRlICdjaGVjayks IHVzZSAjOnRlc3RzPyAjZiB3aXRoIGFuIGFwcHJvcHJpYXRlCmNvbW1lbnQuCj4gK8KgwqDCoMKg wqDCoMKgwqDCoCAocmVwbGFjZSAnaW5zdGFsbAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChs YW1iZGEqICgjOmtleSBpbnB1dHMgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIChkZWZpbmUgWC5ZICMkKHZlcnNpb24tbWFqb3IrbWlub3Ig KHBhY2thZ2UtdmVyc2lvbgo+IGVsaXhpcikpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoZGVmaW5lIG91dCAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpCj4g Ii9saWIvZWxpeGlyLyIgWC5ZICIvaGV4IikpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IChta2Rpci1wIG91dCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGNvcHktcmVjdXJz aXZlbHkgIl9idWlsZC9wcm9kL2xpYi9oZXgiIG91dCkpKSkpKQo+ICvCoMKgwqAgKHN5bm9wc2lz ICJQYWNrYWdlIG1hbmFnZXIgZm9yIHRoZSBFcmxhbmcgVk0iKQo+ICvCoMKgwqAgKGRlc2NyaXB0 aW9uCj4gK8KgwqDCoMKgICJUaGlzIHByb2plY3QgcHJvdmlkZXMgdGFza3MgdGhhdCBpbnRlZ3Jh dGUgd2l0aCBNaXgsIEVsaXhpcidzCj4gYnVpbGQKPiArdG9vbC4iKQo+ICvCoMKgwqAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9oZXhkb2NzLnBtL21ha2V1cF9lbGl4aXIvIikKPiArwqDCoMKgIChsaWNl bnNlIGxpY2Vuc2U6YnNkLTIpKSkKCkNoZWVycwo= From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 04/15] gnu: Add elixir-nimble-parsec. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020494349363 (code B ref 66801); Fri, 08 Dec 2023 15:31:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:30:34 +0000 Received: from localhost ([127.0.0.1]:45749 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcoD-0002Qt-AP for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:30:33 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:42190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcoB-0002Qg-NW for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:30:32 -0500 Received: by mail-wm1-x343.google.com with SMTP id 5b1f17b1804b1-40c38e292c8so1060165e9.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:30:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049413; x=1702654213; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=N/FHtBT3kDavidsF+ejzw7QLEFCfbMnBW1fbvVVRNPQ=; b=NtoVA/0/wUOp6yovyJSViD10ppogt7UCmNu4y6BD0l3JfECfgn8i0O/CkdkEGTe9Qz FjAlJHEGJW4J5QDXJjhQRJ3e/Ksj8P6Mv/K9oQtYThxixnw04K7bEC/x3C/Zc+miS8I+ P+AqHZ2HP9pUYWmk6CGapfoUnJt7dTLu/eXPNjgtDEsxv5jEGVkvt3xr4fAS4PUADiF6 XZrNwbcpZXa2q2BRlZSIIKArwTQkXzt4PV19QLpiXw98ZGQfy10Mcdl8XwiBqotO5vK3 KlNV0bAqWoLtv0JbrGV4rSL88dvfItgSlE/rlYFaD8Re7p37IOWDZfAofx6vYlZt8Kg0 a7DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049413; x=1702654213; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=N/FHtBT3kDavidsF+ejzw7QLEFCfbMnBW1fbvVVRNPQ=; b=pv/bu0vPTRytZg8c2mkdE3RN/MWlIBGGPTISh2TLLXu1rR7I6wcm41c4biV+J247K0 vrzvcREcrjYW4kPA8F7yvcqQSM5s8n1IuEWIpdFm5dbLszQgW5+siHzB6bVsOBJZjbvw bttEdMtzpStxwDAsNibg3KEvJ/ph6rjTzok+dpS1uFS+J4E/XAXwTseHQTgKiRjDil8C LAccoIpng5Tg6yqHyleJn2mgQop5n2KsfgGyvIBSxDTkUeLM5Zyzdw4JhXj1QTO/VunE VBsjxD0D2lbgZ56zPDcesqVjHS/m/Wvbj20vtx0FN2NgZUhSHy2d0ExjqwnZNAG7lgYm DvJQ== X-Gm-Message-State: AOJu0Yxnx/kuR95bc9OP3gaYkNLLIjGwU/n6Kcaoq39zckPOTnx36rAw a6ger/wfpS1pJX8Pfj3mHko= X-Google-Smtp-Source: AGHT+IELdIB2NMYlhgrynWRb4PE7Nm9Wk53i2USydOIhTXUyY+XASZniydIVg+XfDK+YABSLxNv0MA== X-Received: by 2002:a05:600c:3547:b0:40c:2b7b:65d1 with SMTP id i7-20020a05600c354700b0040c2b7b65d1mr596557wmq.16.1702049412554; Fri, 08 Dec 2023 07:30:12 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id s18-20020a5d5112000000b0033330ace23asm2254694wrt.73.2023.12.08.07.30.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:30:12 -0800 (PST) Message-ID: <4831664f39554a17ad2ae3d6c4d6bddb01ecb8a7.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:30:10 +0100 In-Reply-To: <844f76d247df4d3a60e4f7923a476db61c53fd3b.1702044562.git.contact@phfrohring.com> References: <844f76d247df4d3a60e4f7923a476db61c53fd3b.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. >=20 > Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 59 > +++++++++++++++++++++++++++++++++++++ > =C2=A01 file changed, 59 insertions(+) > =C2=A0create mode 100644 gnu/packages/elixir-xyz.scm >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > new file mode 100644 > index 000000000..352360fae > --- /dev/null > +++ b/gnu/packages/elixir-xyz.scm > @@ -0,0 +1,59 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright =C2=A9 2023 Pierre-Henry Fr=C3=B6hring > > +;;; > +;;; 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.=C2=A0 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.=C2=A0 If not, see > . > + > +(define-module (gnu packages elixir-xyz) > +=C2=A0 #:use-module ((guix licenses) #:prefix license:) > +=C2=A0 #:use-module (gnu packages elixir) > +=C2=A0 #:use-module (gnu packages linux) > +=C2=A0 #:use-module (gnu packages) > +=C2=A0 #:use-module (guix build-system gnu) > +=C2=A0 #:use-module (guix build-system mix) > +=C2=A0 #:use-module (guix download) > +=C2=A0 #:use-module (guix git-download) > +=C2=A0 #:use-module (guix gexp) > +=C2=A0 #:use-module (guix utils) > +=C2=A0 #:use-module (guix packages) > +=C2=A0 #:use-module (srfi srfi-1) > +=C2=A0 #:use-module (srfi srfi-26)) > + > +(define-public elixir-nimble-parsec > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-nimble-parsec") > +=C2=A0=C2=A0=C2=A0 (version "1.3.1") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) Why? > +=C2=A0=C2=A0=C2=A0 (synopsis "Text-based parser combinators") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "This library provides primitives for efficient= parser > combinators, allowing > +for higher-level combinators through composition.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/nimble_parsec/") > +=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 05/15] gnu: Add elixir-makeup. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020494649481 (code B ref 66801); Fri, 08 Dec 2023 15:32:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:31:04 +0000 Received: from localhost ([127.0.0.1]:45754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcoh-0002Sq-Vq for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:31:04 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:47524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcoX-0002Rk-8k for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:31:02 -0500 Received: by mail-wr1-x441.google.com with SMTP id ffacd0b85a97d-33340c50af9so2247002f8f.3 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:30:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049434; x=1702654234; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=QzYKA/bmHFFVpsxrd+t3fgQ8q4s1PN2ZzqeC+WTCLt0=; b=JOpG67crgS/LavUYXaYAyTMoVA449AvglsEfSxlqjKOAgNsN6mCf244i0lNyLxmcXl AjVTMwabQktRYevKJfUA94XhVbgjen6VFA1jLKtxkAbmZIUm4+Qv1R3VajephEXeK21B 31VV35buOZ6DubCmq40L6G07zHU8AhqSoCPW6XGDRXhO+GzT86rY5ytxoZLv6BpvO3bT R8y72CI1J8OT71mZG3Nq/QyPaj4dTTQmADmWcq6OP6wjJyKBYUXhJToYFw4jh1sbm6gB iQxFeKMLQ+C/sGJepTjCWRZ4S7ecRzYM4YojWMpfLhdDC4cwVPXso0LD6LL1hbwMH8Co cMjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049434; x=1702654234; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=QzYKA/bmHFFVpsxrd+t3fgQ8q4s1PN2ZzqeC+WTCLt0=; b=Idn13z7/T2PMWcwQzKoo8bx5E0AR/IKpO8k5S0ELE3SI31A+wIk4FxJVcbwT1tXPzG BpZCYdLAZCQ+JJtPx9oUFbCJE+MyAr7Wt1sy8+/V5YBTmv/9ow39tKrMhu3VgkFVJx0T hQQf38Q9rHCKHejrVb7ifwnLaEIjy4QvSwbIfinauDWp4IvZbgz7seoeYpGQ11xCiils pvoSv5bt8OinVAQTtyUwh5kDQD6vTc3aiqC6EDHmt/pWvG2y+08YqcoC3Ces53/4A8Lz tVftmhLlZm8w3A+ZjaEHGABuuhAynD/L0UFUHgPmLK4u9XTxsGr/ng0cv8aiSXZP/sya iSnw== X-Gm-Message-State: AOJu0YxwVSAS8w3viBND9A1aUCAJLBzU13ufmMNYDJzRylpgLV5LNv7u qTcT7XChLT+w/LkU8g7BhhM= X-Google-Smtp-Source: AGHT+IGQw7I9W8SRpOEnVx8P9z784L262a+xrWAOEHV++j4ksekJbZcUAfqu/zHEDK9d4VsAk8Rbqg== X-Received: by 2002:a05:6000:d:b0:333:4af2:83e3 with SMTP id h13-20020a056000000d00b003334af283e3mr78835wrx.101.1702049434458; Fri, 08 Dec 2023 07:30:34 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id z10-20020a056000110a00b0033343804ec9sm2235073wrw.85.2023.12.08.07.30.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:30:34 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:30:33 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. >=20 > Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ > =C2=A01 file changed, 22 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index 352360fae..afc8b0db0 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -52,6 +52,28 @@ (define-public elixir-nimble-parsec > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/nimble_parsec/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > =C2=A0 > +(define-public elixir-makeup > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-makeup") > +=C2=A0=C2=A0=C2=A0 (version "1.1.0") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (propagated-inputs (list elixir-nimble-parsec)) > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) Why? > +=C2=A0=C2=A0=C2=A0 (synopsis "Syntax highlighter for source code") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Makeup is a generic syntax highlighter in the = style of > Pygments suitable for use in code hosting, > +forums, wikis or other applications that need to prettify source > code.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/makeup/") > +=C2=A0=C2=A0=C2=A0 (license license:bsd-2))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 06/15] gnu: Add elixir-jason. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020495319697 (code B ref 66801); Fri, 08 Dec 2023 15:33:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:32:11 +0000 Received: from localhost ([127.0.0.1]:45764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcpm-0002WK-EH for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:32:10 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:56675) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcpk-0002Vp-2x for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:32:08 -0500 Received: by mail-wm1-x344.google.com with SMTP id 5b1f17b1804b1-40c039e9719so25155845e9.1 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:31:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049509; x=1702654309; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=xtX5w+VZdoCfkrDwdw+1CcyrwTreIW38wBuKtpQgQGk=; b=l0SKDFQVn0xju58CntujdaY17fxYMMVMJqU4d3zX8dM6b6/kEm45SHwUSVnuLQA3nM 5Ati2kSVYow06T7hRJpZuYSUrd6bWptGFbyGyPZXkHzNjCptF4sffwzUiL4OB6PcgJZ/ ZON87kyQfVivo3/uq/+mu9C5Uaa516FjlowxSecpJbhTfPC92C4YumWClf6vQtUDcVkf A3hGHF8E6eNENAkgyohVQ1ZI2PrdprqtEs3Jirx1TQ06klQGDqdhpaIZx+KoO/Kh40Z9 AZm4uE1u+xOUnjah/LaJsPWoVkEtF7DJ6LmIyjYRjmkAI+3LfJ+A1PKIbSxT65g10LeW Vzbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049509; x=1702654309; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=xtX5w+VZdoCfkrDwdw+1CcyrwTreIW38wBuKtpQgQGk=; b=tJyAg7VOT0JdfSxbdUBx/oeX0w50Iu9wyLozZpIVb4D/mwymKFoEdapwBv0iC8eOiZ m29qJMUzNIsQKWyeOfIX/m4VS4O91jD6IEHJjP8nJm36joH6H40P6dETrLH+dGqwA+zH Q+FKfomCiPifLrZT0AT/Tue4Fox+GO5A+WeW0umXJAWuv1yyvWF2Px0c9rz0ED5hu8PQ bPoIREg8VkBVJwCCsFbxbRTsmLjcDA2vqiJKwHi8S8jX1jDw70wIRA/FZ4Kd90Ujj3Y6 KCoOmkjpiCcSfy/DzRaWpzPmDjEyLBlEWTssZ0OlLb4+AoV67gabo9JeAsSyIfpCc0lo lg1w== X-Gm-Message-State: AOJu0Yy/tHRSTsoJhnra6ZDTkBbpidnPWFHjQCc9Frsk7FGDuM8rF3AL GrYXprgVr25QoiFT/MFotYeKE2cjvQguWQ== X-Google-Smtp-Source: AGHT+IFcuSjowEd/UoYxgUZei8RGgnEEGRAza5BkcTt045yFliQYDs5bX/I6fHwGgWaC+RzmsU5BwA== X-Received: by 2002:a05:600c:248:b0:40c:2710:f64 with SMTP id 8-20020a05600c024800b0040c27100f64mr78447wmj.156.1702049509207; Fri, 08 Dec 2023 07:31:49 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id k15-20020adfb34f000000b003334a1e92dasm2280982wrd.70.2023.12.08.07.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:31:48 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:31:47 +0100 In-Reply-To: <30b84fca7342449cde69ed948be7bcdfcc1127d1.1702044562.git.contact@phfrohring.com> References: <30b84fca7342449cde69ed948be7bcdfcc1127d1.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. >=20 > Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c > --- > =C2=A0gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ > =C2=A01 file changed, 24 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index afc8b0db0..544a414b4 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -74,6 +74,30 @@ (define-public elixir-makeup > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/makeup/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:bsd-2))) > =C2=A0 > +(define-public elixir-jason > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-jason") > +=C2=A0=C2=A0=C2=A0 (version "1.4.1") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 ;; There is no test/ in the source. > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) I'll move that comment closer to the cause. Btw. you don't need to split those lines if everything fits into one. > +=C2=A0=C2=A0=C2=A0 (synopsis "JSON parser and generator") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Parser and generator are written in pure Elixi= r and optimized > for speed. They > +are at least twice as fast as other Elixir/Erlang libraries (e.g. > +Poison). The performance is comparable to jiffy, which is > implemented in C as > +a NIF.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/jason/") > +=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > + Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 07/15] gnu: Add elixir-file-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.17020496179956 (code B ref 66801); Fri, 08 Dec 2023 15:34:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:33:37 +0000 Received: from localhost ([127.0.0.1]:45768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcrA-0002aV-Sc for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:33:37 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:46454) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcr6-0002Zw-Sj for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:33:34 -0500 Received: by mail-wm1-x344.google.com with SMTP id 5b1f17b1804b1-40c09d62b70so25766345e9.1 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:33:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049594; x=1702654394; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=NqVBNMXZYxyOe4erx2NAkS+I96fMCmjHqyENpObbgBg=; b=F2R64f7fvxmHnLOXSYZosT/2qru/YFUU6Up3rCKaY7AFJT4+FOkvEeNhAgJKWffwNO EFKNaCJSxbcNP3+2SOlFi/envX1xSxkeuIt9bN4zY4yLFLYEJ8nBS0ofQm3cbp93mX83 QkCyWiSKs/1C6Hf+6xxZYb3qlgW0SPdA7eeRhKgSMi3MbAX/Y9uX0+rfF1D4wy7qErVW tVzIt1KtxsTmGLy6bdLFPNpXf7mVVn/LxozRgrKjnuSQd67R/KuMMS6cwQVBP2NbcIY5 lLHaoJhT0ydCAhA81IMmcPL8hfgMbirYy1EufTPgTZ31n79vT9zgEKs3t3FmIjLNgbb0 t7Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049594; x=1702654394; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NqVBNMXZYxyOe4erx2NAkS+I96fMCmjHqyENpObbgBg=; b=UFAlKdd7q5DxI1bW4q4nUYknYtrND+NDT3OkOR07yl1Uw0cMhA/ANheBtQsrPWb59+ dg3NtJp4sZJC78L4sSpr4a+iu4okO1R+PHwxkYTCzJgRMJJBkaYiizPsDNQAXnDBtPft 6WG0pcz4JXSqwO0BI9OzRcLhxmXl6ywKv5nd/vdde0fc2Gp0iEwK4PMzqkxwiTxtz+pJ DsEL6qaDEY5Tn8QnB6sea23uWtf4LX7obLVB2wlhIPTBgHgQ7KMdOVZthGMErBr3RMAo pilIuPA8P87rZX2G14FfoA1MHlEUIiVxKN4tceeDLfQGdzdWnP7wEqnC1Yel74XzHpCz uCfA== X-Gm-Message-State: AOJu0YzEGkUsinYn1SutFFldIpnupndDhgZyo5torSsz0PEECyU8aNgc gH+jcU0s4VFd28tOxT1wQKI= X-Google-Smtp-Source: AGHT+IGPE6+gmGma2lRxKYCRBzD9fH8Q66PiEX98ENErg+MbAoIDZmt/N035iYTiM+RZmeNRgrqPEA== X-Received: by 2002:a05:600c:1d12:b0:40c:295f:119c with SMTP id l18-20020a05600c1d1200b0040c295f119cmr64738wms.31.1702049594080; Fri, 08 Dec 2023 07:33:14 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id az27-20020a05600c601b00b0040c34e763ecsm1863052wmb.44.2023.12.08.07.33.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:33:13 -0800 (PST) Message-ID: <152b992354c1768d2c202d2cf370cc4790dba975.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:33:12 +0100 In-Reply-To: <3e47d3141e2e4b0dc0189ed755308aaf9932b867.1702044562.git.contact@phfrohring.com> References: <3e47d3141e2e4b0dc0189ed755308aaf9932b867.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) QW0gRnJlaXRhZywgZGVtIDA4LjEyLjIwMjMgdW0gMTY6MDMgKzAxMDAgc2NocmllYiBQaWVycmUt SGVucnkKRnLDtmhyaW5nOgo+IEZyb206IFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcgPHBoZnJvaHJp bmdAZGVlcGxpbmtzLmNvbT4KPiAKPiAqIGdudS9wYWNrYWdlcy9lbGl4aXIteHl6LnNjbSAoZWxp eGlyLWZpbGUtc3lzdGVtKTogTmV3IHZhcmlhYmxlLgo+IAo+IENoYW5nZS1JZDogSTU0ZTljOTA2 OWRkZjE1MGJiMGM4ODI3NzViMGIyYzlkNWU1OWFiZDYKPiAtLS0KPiDCoGdudS9wYWNrYWdlcy9l bGl4aXIteHl6LnNjbSB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwo+IMKgMSBmaWxl IGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2Vz L2VsaXhpci14eXouc2NtIGIvZ251L3BhY2thZ2VzL2VsaXhpci0KPiB4eXouc2NtCj4gaW5kZXgg NTQ0YTQxNGI0Li5iZWQ4NGU5ZjIgMTAwNjQ0Cj4gLS0tIGEvZ251L3BhY2thZ2VzL2VsaXhpci14 eXouc2NtCj4gKysrIGIvZ251L3BhY2thZ2VzL2VsaXhpci14eXouc2NtCj4gQEAgLTk4LDYgKzk4 LDMzIEBAIChkZWZpbmUtcHVibGljIGVsaXhpci1qYXNvbgo+IMKgwqDCoMKgIChob21lLXBhZ2Ug Imh0dHBzOi8vaGV4ZG9jcy5wbS9qYXNvbi8iKQo+IMKgwqDCoMKgIChsaWNlbnNlIGxpY2Vuc2U6 YXNsMi4wKSkpCj4gwqAKPiArKGRlZmluZS1wdWJsaWMgZWxpeGlyLWZpbGUtc3lzdGVtCj4gK8Kg IChwYWNrYWdlCj4gK8KgwqDCoCAobmFtZSAiZWxpeGlyLWZpbGUtc3lzdGVtIikKPiArwqDCoMKg ICh2ZXJzaW9uICIwLjIuMTAiKQo+ICvCoMKgwqAgKHNvdXJjZQo+ICvCoMKgwqDCoCAob3JpZ2lu Cj4gK8KgwqDCoMKgwqDCoCAobWV0aG9kIHVybC1mZXRjaCkKPiArwqDCoMKgwqDCoMKgICh1cmkg KGhleHBtLXVyaSBuYW1lIHZlcnNpb24pKQo+ICvCoMKgwqDCoMKgwqAgKHNoYTI1Ngo+ICvCoMKg wqDCoMKgwqDCoCAoYmFzZTMyCj4gIjFwMG15eG1uampkczhiYmc2OWRkNmZ2aGs4cTNuN2xiNzh6 ZDRxdm1qYWpuemdkbXc2YTEiKSkpKQo+ICvCoMKgwqAgKGJ1aWxkLXN5c3RlbSBtaXgtYnVpbGQt c3lzdGVtKQo+ICvCoMKgwqAgKHByb3BhZ2F0ZWQtaW5wdXRzIChsaXN0IGlub3RpZnktdG9vbHMp KQpCeSBjb252ZW50aW9uLCBhcmd1bWVudHMgZm9sbG93IGJ1aWxkLXN5c3RlbSwgb25seSB0aGVy ZWFmdGVyIGNvbWUKaW5wdXRzLgo+ICvCoMKgwqAgKGFyZ3VtZW50cwo+ICvCoMKgwqDCoCAobGlz dAo+ICvCoMKgwqDCoMKgICM6dGVzdHM/ICNmIDtUaGVyZSBpcyBubyB0ZXN0LyBpbiB0aGUgc291 cmNlLgo+ICvCoMKgwqDCoMKgICM6cGhhc2VzICN+KG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBo YXNlcwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFkZC1hZnRlciAn dW5wYWNrICdybS1wcml2Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGxhbWJkYSBfCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDs7IFRoaXMgZGlyZWN0b3J5IHJlcHJlc2VudHMgc291cmNlIGNvZGUgbm90Cj4gbmVlZGVk IG9uIFVOSVggc3lzdGVtcy4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgOzsgU2luY2Ugd2UgYWltIGF0IFVOSVggc3lzdGVtcywgaXQgaXMKPiBkZWxldGVk Lgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRl LWZpbGUtcmVjdXJzaXZlbHkgInByaXYiKSkpKSkpCklzIHRoaXMgYnVuZGxlZCBvciBub24tZnJl ZSBzb3VyY2U/ICBJZiBzbywgZGVsZXRlIGl0IGluIGEgc25pcHBldC4KPiArwqDCoMKgIChzeW5v cHNpcyAiRmlsZSBzeXN0ZW0gY2hhbmdlIHdhdGNoZXIiKQo+ICvCoMKgwqAgKGRlc2NyaXB0aW9u ICJQcm92aWRlcyBhIGZpbGUgc3lzdGVtIGNoYW5nZSB3YXRjaGVyIHdyYXBwZXIKPiBiYXNlZCBv bgo+ICtbZnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zeW5yYy9mcykuIikKPiArwqDCoMKgIChob21l LXBhZ2UgImh0dHBzOi8vaGV4ZG9jcy5wbS9maWxlX3N5c3RlbS8iKQo+ICvCoMKgwqAgKGxpY2Vu c2UgbGljZW5zZTp3dGZwbDIpKSkKPiArCkNoZWVycwo= From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 08/15] gnu: Add elixir-bunt. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204965210087 (code B ref 66801); Fri, 08 Dec 2023 15:35:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:34:12 +0000 Received: from localhost ([127.0.0.1]:45772 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcrk-0002cc-Ar for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:34:12 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:44245) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcri-0002cI-QP for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:34:11 -0500 Received: by mail-wr1-x444.google.com with SMTP id ffacd0b85a97d-33334480eb4so2674632f8f.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:33:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049632; x=1702654432; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=q5ozva3xfrc8CR0G/DCPV94VjTLucL3sweGIrvbXs1U=; b=FrepKgaDo3ouc+7LFeG6vKh6gTKS0xxpYe9CMZnOeYAX5wti2CIDtHZ1FEzrAfdF2T w1oHAxUcwJNUhfNTLH1URXiE59ZNIvwJpEzWiCJcAO6Al0q1LdqcH6G2zdjbmU+vout5 AS0hT+Iz/s6KIke5Ww9SfZvVRgOm+Hq5RPX0dch69x/jhtIeoZ4HLncr+OT7nxL1Fjr8 NhAe8QqaDwAmU/SYhz+dBas5hp8B8QDSLJfRnmoN4HNo0EZ8pdfygA4lpPmSwUxFlhDw OugJDJ7U4GclYeASNkIetucOlJPjK/LKm7ISJXuUURg7nOTdnNMQt99bu0U+JIzlPTTX 8+IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049632; x=1702654432; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=q5ozva3xfrc8CR0G/DCPV94VjTLucL3sweGIrvbXs1U=; b=DwvA+8SS6XN3MZCTW/ou6zESYeoh1ICdfoVvR6U5vj6jeVvVZZ779eTw3K05TqoTXr 4BJ73fTJRZdqKBv+b9/iNQ7g1Tplr/y5qxfrIvRVB5NxC4C+yB5nbo5e5epK03foF7Z5 iZk1cvbZY5JTHa0MQUXpvSThg5Qw6wQx1AGCwguXfz+wdgU/SKCh+3+Db8qigDCjCye9 7xlwWZrDGEHtSSPReMnjiBRY9urg3aLmW/2FypIqdAWIuWz91pbR29CKN5lEevKG7ilu bU+Oy7PhlALWL5F9fwLYqnoQnUVaDB4oFki6liq8NwKc8YqnqRV3i+vpQKfodkZBpm8z U8Bw== X-Gm-Message-State: AOJu0Ywb9dS52yLtfoZfed/ZhSCqIuNrHHSrH8IPwyx+52at+lJABJf1 C6SVM3/v7aREv6Dz0upGzpOCQiq44jHglQ== X-Google-Smtp-Source: AGHT+IEbGILhlwidki8N0R8Wp4ElsKV5dBoObJpPy1kq/SQOD2QKIzPbyetCOI9Wa7ACa1CuX2mrwQ== X-Received: by 2002:adf:e053:0:b0:333:2fd2:2f08 with SMTP id w19-20020adfe053000000b003332fd22f08mr78579wrh.129.1702049631612; Fri, 08 Dec 2023 07:33:51 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id t5-20020a5d6905000000b00333f99ea54asm2245367wru.105.2023.12.08.07.33.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:33:51 -0800 (PST) Message-ID: <544acff3320067d79b166440ca844ca1c54dac45.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:33:50 +0100 In-Reply-To: <2a3a2f8361fd4d27d9832fd9a95023ad57bbc14f.1702044562.git.contact@phfrohring.com> References: <2a3a2f8361fd4d27d9832fd9a95023ad57bbc14f.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. >=20 > Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b > --- > =C2=A0gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ > =C2=A01 file changed, 19 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index bed84e9f2..984649de4 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -125,6 +125,25 @@ (define-public elixir-file-system > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/file_system/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:wtfpl2))) > =C2=A0 > +(define-public elixir-bunt > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-bunt") > +=C2=A0=C2=A0=C2=A0 (version "0.2.1") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) Why? > +=C2=A0=C2=A0=C2=A0 (synopsis "256 color ANSI coloring in the terminal") > +=C2=A0=C2=A0=C2=A0 (description "256 color ANSI coloring in the terminal= .") The description should be a full sentence. > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/bunt/") > +=C2=A0=C2=A0=C2=A0 (license license:expat))) > + Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 09/15] gnu: Add elixir-inch-ex. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204974010336 (code B ref 66801); Fri, 08 Dec 2023 15:36:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:35:40 +0000 Received: from localhost ([127.0.0.1]:45776 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBct9-0002ge-QL for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:35:40 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:54489) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBct7-0002gJ-CR for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:35:38 -0500 Received: by mail-wr1-x441.google.com with SMTP id ffacd0b85a97d-334b2ffaa3eso2143493f8f.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:35:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049718; x=1702654518; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=OKDCI02YtnsZTW3RtKVv5fdz9VGmTu+w9v9AQaJsDjo=; b=P5oQ5gGZDx5ZwZrKpOv+HVHG+62F4hXuOo9RYS4ND5dqgGcmlm26BvHjwrzIOfz2wA eHw2CVfeTgEZH01xanBXD0q9ZYGVm5TUzosiICj7uv5tiIrKKAfCgMfsH3Yt3J0X/hN5 UW6Uf9gTxl9/GFu/wbCwfpj3ds4MfPqqt2VOkH2uNi3qUxUZBkr0vQTIvZQLY4UP0CaD zMEUpZLleDVhqKDuwEL5bwiko9emxrOSxYXuPyY5mNU4ilcNZbSbJsVSxCSKuESs5ZVm BoqyTWQ0IAXNkctQNax9m4gWHpKZjblGpQ/12HYcAmWFxpwYRz4SJ55+j9+/rlyDXeKs tBxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049718; x=1702654518; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OKDCI02YtnsZTW3RtKVv5fdz9VGmTu+w9v9AQaJsDjo=; b=uH/kg5sqySw7iC4Snk0NcCW3EXJztvhf7kxbHnLBomoGnaJcLHYfVBbbbjHsw8YV1w bl2Rk3oRkIel7FV4ATZ6YOT97z7ZJZSRajKIwT24rZD0nrHFtDLY5LUaN5CXHyviybzt c9svREzLa1Ob9Mb17c0817u/rvlcixvntLSH5NBFajeiw2pNc892kh4sygpRuTSJrCcW a9A3BxFXuWJg5JGG/680PPNyrUjnOb3X0ndX4lQRzeuaJNXbu132L6uO7g7DgJwiQS+a gmwqFbXgaPHz37oYWjfa8atd9pyyMSwEwHc1Yx9XPbciy9GmSf9wLHIb+N7TUIuYfe54 Ef2A== X-Gm-Message-State: AOJu0Ywwor8eph2oPzr3aBYabjcHYdqpcDazmvv1pFHmN2ir8y7Fy6z7 CO4sJ6ilABW9SjtOgnYzPNbd3WWpGvudYQ== X-Google-Smtp-Source: AGHT+IHQmRWuPZMwNXfg9/0hwvAIEeClghNzpHFla8mlh6LTkknBdd42hykYGrgxp6tWCSFT4eiYwQ== X-Received: by 2002:adf:cc90:0:b0:333:2fd2:68c1 with SMTP id p16-20020adfcc90000000b003332fd268c1mr131030wrj.84.1702049718297; Fri, 08 Dec 2023 07:35:18 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id o4-20020a5d58c4000000b0033333bee379sm2256177wrf.107.2023.12.08.07.35.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:35:17 -0800 (PST) Message-ID: <2178955b9e81f61c8f6011fe920d3bdcf60bc4a1.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:35:16 +0100 In-Reply-To: <3764f1dd233ecdaa464d8ff594be84dac171ed60.1702044562.git.contact@phfrohring.com> References: <3764f1dd233ecdaa464d8ff594be84dac171ed60.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. >=20 > Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a > --- > =C2=A0gnu/packages/elixir-xyz.scm | 23 +++++++++++++++++++++++ > =C2=A01 file changed, 23 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index 984649de4..12aee0d78 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -144,6 +144,29 @@ (define-public elixir-bunt > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/bunt/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:expat))) > =C2=A0 > +(define-public elixir-inch-ex > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-inch-ex") > +=C2=A0=C2=A0=C2=A0 (version "2.0.0") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) > +=C2=A0=C2=A0=C2=A0 (propagated-inputs (list elixir-bunt elixir-jason)) > +=C2=A0=C2=A0=C2=A0 (synopsis > +=C2=A0=C2=A0=C2=A0=C2=A0 "Offers a Mix task for suggestions on enhancing= your inline > documentation") Perhaps shorten to "Suggest enhancements for inline documentation". > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "This package provides a Mix task that gives yo= u hints where to > improve your > +inline docs.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hex.pm/packages/inch_ex") > +=C2=A0=C2=A0=C2=A0 (license license:expat))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar I see this line quite often now. Perhaps you should at least sort your new packages alphabetically so that it doesn't *always* show up? From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 10/15] gnu: Add elixir-castore. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204980310529 (code B ref 66801); Fri, 08 Dec 2023 15:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:36:43 +0000 Received: from localhost ([127.0.0.1]:45780 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcuA-0002jk-CW for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:36:42 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:54663) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBctu-0002ir-FX for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:36:41 -0500 Received: by mail-wr1-x442.google.com with SMTP id ffacd0b85a97d-3333224c7b9so2135039f8f.1 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:36:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049767; x=1702654567; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=oM976uaVV2TbVLFLj+nLvVfRDxTWjkM08GgkLf4wi1I=; b=YKsaf6EqyWWHA1pk2XeOndFDbmP5oNaCEqyRPVoRZxZ4KN5dQeyERLwAlKPjpoKRh2 kRQjKRaLQ1Pt2gDZRRNMSWQ4Z/IdvMAVpPjmWKBsahjLI/P8Ce0YiYqOysKDe3zkgUWW pG2N7x1YmPOzUjGUcbEovizZ2Wo7MsJolfsCp99iIwMEUujKGe30JU4T2RzsVMRcCBAf 1Lh0C9WWi5FJIEe1DfiK7Wl4QVlL6ULPbp3ri5N9g77RqQd8KTDLZLB8pAh69PZzE2Dx ZDtbW/CrQkF7T6oHZ6hvO8+cH2rJ+AW5COe8BgIwelaF3DUnZp6dgl5KxZb7oDNouIWq 7V1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049767; x=1702654567; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=oM976uaVV2TbVLFLj+nLvVfRDxTWjkM08GgkLf4wi1I=; b=dTd8ygMWjn54LHhZgW32uf90Ch5NBP3ZiscMZtlO22gSvYJ07jxR0fG6GNMvthF+z6 OgU46fVP98H9oxvHHsGtmI8Hs3srGzXsa3Ly1tlaZ5lCKEmpF/bJHKqMBJmmrHPAX0dh 1M1n1Vjio1QsAa6n59JrQEdJ43YTLbTEmkxRqgwguc/H/W7adr02oYpwmSAvnvWgezA8 hL+kUG5ndC1z7xDZvzJGwWgBCWv6UeB7uEVgq+lDHEcNYAeQxAenrtXcsRHLRjtBPTN9 DpvhPommsittbBlFeJyamGLEJ4z/0BJPq3B6Cu7/BU+oOf6r8q9s6c0J0tWbkpVSM8J8 EC+Q== X-Gm-Message-State: AOJu0YzqqWZYFC/orm7Fc221rBr12G/PgZLEj+h6SzSOdfmp8Mtd3gPP 74yq0e4liAMh4kbkQFCx6cf5rGe20meZtg== X-Google-Smtp-Source: AGHT+IHSxSQ54Np8PoItMgvCAo3kJhyfxjUyrz7GFpN75t+9CnM/gsdd6JLGUh2jGOyjrH626Gzvew== X-Received: by 2002:a5d:4bc6:0:b0:333:3bc1:1fb3 with SMTP id l6-20020a5d4bc6000000b003333bc11fb3mr136435wrt.66.1702049767620; Fri, 08 Dec 2023 07:36:07 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id q9-20020a05600000c900b0033330846e76sm2254862wrx.86.2023.12.08.07.36.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:36:07 -0800 (PST) Message-ID: <747d45bb703591cb333755327794dd660ab68ff6.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:36:06 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. >=20 > Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ > =C2=A01 file changed, 20 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index 12aee0d78..f50c8f018 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -167,6 +167,26 @@ (define-public elixir-inch-ex > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hex.pm/packages/inch_ex") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:expat))) > =C2=A0 > +(define-public elixir-castore > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-castore") > +=C2=A0=C2=A0=C2=A0 (version "1.0.4") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 ;; There is no test/ in the source. > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) Move the comment closer to the cause. > +=C2=A0=C2=A0=C2=A0 (synopsis "Up-to-date CA certificate store") > +=C2=A0=C2=A0=C2=A0 (description "Up-to-date CA certificate store.") Make the description a full sentence. > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/castore/") > +=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar Find ways to avoid this :) From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 11/15] gnu: Add elixir-excoveralls. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204990710855 (code B ref 66801); Fri, 08 Dec 2023 15:39:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:38:27 +0000 Received: from localhost ([127.0.0.1]:45788 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcvq-0002ow-Dj for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:38:26 -0500 Received: from mail-ej1-x642.google.com ([2a00:1450:4864:20::642]:51577) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcvo-0002oj-7c for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:38:24 -0500 Received: by mail-ej1-x642.google.com with SMTP id a640c23a62f3a-a1da1017a09so267458266b.3 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:38:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049885; x=1702654685; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=iy4QxtpGoxmnqWPMMD+QjuzBEocpF44n7qIRwXoxViE=; b=WYH+Ni5so7OdwdolDhp5gJ3cIzLxiUJ/TfMfJ+NLipRO8+iWcP8lDKh33kyn2atBAn onQGqzxHKUV5rdCppIaUymDuDw2AMnUbRSL8poPXD2DRIrDL9EV85bsGbwOjPYEMxhyl 0hATncn+Ym0kD3sUwLsi6XX1Ujia6rjsDcDkUXrUZG2j1Z+AtP4PE7bB7l1ND+ZtvWYo KIkjQ0Z/TcFNGOsEz+FoISc7xoETSBqrjIsQGZgCNW0ksI/N42Pol0klO3gGeWaWPc3x YmruHxOd5nJ+txH4WgKuOpDE5cLcEA+E6DMa8WrZrx4m8Yf/UnEC81W3lgjT5SXSWEC4 +X7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049885; x=1702654685; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=iy4QxtpGoxmnqWPMMD+QjuzBEocpF44n7qIRwXoxViE=; b=RpVyAHtydaNeWKrpHFohE8J+b2qEYXKf7bdOigLcvQBINAulk5RTkHszt97t+wPocB jK6Hv/+ER3Ys7uQHakbu5AJe5O4LnxycuTR5mxJO/7A5TMZh2fH6spNyM7VBW/cSJeld u4akzPhuQDHazdL1QbQrL/lE4fvUlYJGavF9cEpsFfgjWTAeEpnP1L9IkeHXdmRJnBva B3YAK26CYbHcK8XEvCwzndA6d6CrxCb+Ex1HLfJc2P1GksXUYsbLyDN8jjkV+WC14iuW XJU6EZ6pjGCwpB3I5xZZDH8MrHcVk/zhL2T2vh8kgAiiO5ScTDYsqSXODo43YXdylhOu mqkQ== X-Gm-Message-State: AOJu0YxBoNRAgJJjlh57PNxh0jxu1dhRkBHRMIhiBGt2sPZtK332bvNb KoARlqCDA9d61kTARJO1ubM= X-Google-Smtp-Source: AGHT+IGJFZqW8t5FUHmD2tL6LRN7LqEpTieRNwqTqTVwc8yaN1sktog2IKS8P+2IvA/gwX6dA2Vpzg== X-Received: by 2002:a17:907:7ba0:b0:9e7:de43:af91 with SMTP id ne32-20020a1709077ba000b009e7de43af91mr138474ejc.41.1702049885205; Fri, 08 Dec 2023 07:38:05 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id vg14-20020a170907d30e00b00a1dcfd8f95csm1120309ejc.37.2023.12.08.07.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:38:04 -0800 (PST) Message-ID: <6ec044e5a498a5754f1d24d4545cc2aeaaeb1be0.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:38:03 +0100 In-Reply-To: <3beb1d8ba84e59c927164aa1315429c70f6b1634.1702044562.git.contact@phfrohring.com> References: <3beb1d8ba84e59c927164aa1315429c70f6b1634.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. >=20 > Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 25 +++++++++++++++++++++++++ > =C2=A01 file changed, 25 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index f50c8f018..f6be8e88f 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -187,6 +187,31 @@ (define-public elixir-castore > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/castore/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > =C2=A0 > +(define-public elixir-excoveralls > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-excoveralls") > +=C2=A0=C2=A0=C2=A0 (version "0.18.0") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (propagated-inputs (list elixir-castore elixir-jason)= ) > +=C2=A0=C2=A0=C2=A0 ;; No test/ folder. > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) Collapse and move, same as before :) > +=C2=A0=C2=A0=C2=A0 (synopsis "Coverage report tool with coveralls.io int= egration") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Library that reports test coverage statistics,= with the option > to > +post to coveralls.io service. Make this a complete sentence. > It uses Erlang's cover to generate coverage > +information, and posts the test coverage results to coveralls.io > through the > +JSON API.") Fair enough. > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/excoveralls/") > +=C2=A0=C2=A0=C2=A0 (license license:expat))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 12/15] gnu: Add elixir-credo. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170204996811030 (code B ref 66801); Fri, 08 Dec 2023 15:40:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:39:28 +0000 Received: from localhost ([127.0.0.1]:45792 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcwq-0002rq-4b for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:39:28 -0500 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]:43244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcwo-0002rM-8R for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:39:26 -0500 Received: by mail-ej1-x641.google.com with SMTP id a640c23a62f3a-a1ca24776c3so682315666b.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:39:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049947; x=1702654747; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=Y8L82dX9uj3bNAy3AxBgnvhuGXhVkuHG8it8l8wtCuo=; b=nhDlwZbtBuqXDb+ZW+bqsJwUhUj9ZUPRHXCbbqebrcGOTW5B3VqrYNwybXy1cQ4qF4 NNBDQIgO9q2HK7mGv0Vz6GaovFCh1tBP3H94V/SiSIbnsS6nQ0pglL45zr3x4iarMsRn DxCE5LYrdvVeHeo35VYLcKwY4qsq4Px3HvaUx9tt+mNVJMcPk/EtW0iAJ9dAedj6vnYV 1JTFjRPkzyrN1QtptcPh+8H5bnQtwIe8Vz8FYlvSZGsZPcp5rX7fTZJdmxmX9UfoHlge nnYfuO5rmQMWHHAN72+3vwwLTCcl7b84VqMzLeEiXtd5yAV239otZNr3X0eB89bv4xnh 0sgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049947; x=1702654747; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Y8L82dX9uj3bNAy3AxBgnvhuGXhVkuHG8it8l8wtCuo=; b=fkvNheMocOo464SjkPobfoJdi9DmByNvN4e3qmPriTePQeO20k7mCkPKSJUeZEYa8x ajgj/2I2zQEysyC+TLDGMFOpJpRxw/duB2YcZNIgtBehtfCMhv7rMySNdlxYqiD85rgT GP+HbZNR+dmR+CwU5ZHDTUHf+DiDdw2rfqL67ysqAjtYwe/J+x1/F5Ub5oMYVB9XjOJy cEFw0dlGZlGkBLM7ZvEhXE+HHbFya6b4B2MuhzXRZbYYhqzlDnTCrhiKoxMyJblPTOIO fhS3l8GILhL6gip6LpOYEu8TgoAHPWByFYphncqd+4h7VHrInx1oTcVKa7w/eqFi0Uqk 83uA== X-Gm-Message-State: AOJu0YzKJ3CQ7xxoCs515Dhosts/KQnt/7LaRHYAr7hqMko7GmIANPiB uZAXZN3y6a1IFiQvwkF97N4= X-Google-Smtp-Source: AGHT+IEF2XkZHqPnaAk3EOaExmKHOT0ihHtskoM+mUST7dh6wTaaJGMaCrs+nhCoVXmxmPUu/ohxTA== X-Received: by 2002:a17:906:6a27:b0:a1f:6551:6405 with SMTP id qw39-20020a1709066a2700b00a1f65516405mr434759ejc.37.1702049947271; Fri, 08 Dec 2023 07:39:07 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id cx7-20020a170907168700b009fc576e26e6sm1118614ejd.80.2023.12.08.07.39.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:39:06 -0800 (PST) Message-ID: <78d9cd270f6c036884faa022672f192c47695ea9.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:39:05 +0100 In-Reply-To: <670c3550e3741978c2c307e8e08a1c49eace8fb5.1702044562.git.contact@phfrohring.com> References: <670c3550e3741978c2c307e8e08a1c49eace8fb5.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. >=20 > Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ > =C2=A01 file changed, 24 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index f6be8e88f..afacbd872 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -212,6 +212,30 @@ (define-public elixir-excoveralls > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/excoveralls/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:expat))) > =C2=A0 > +(define-public elixir-credo > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-credo") > +=C2=A0=C2=A0=C2=A0 (version "1.7.1") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (arguments (list #:tests? #f)) Good, it's collapsed, but you're still missing the comment explaining why :) > +=C2=A0=C2=A0=C2=A0 (propagated-inputs (list elixir-bunt elixir-file-syst= em elixir- > jason)) > +=C2=A0=C2=A0=C2=A0 (native-inputs (list elixir-excoveralls elixir-inch-e= x)) > +=C2=A0=C2=A0=C2=A0 (synopsis "Static code analysis tool") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Credo is a static code analysis tool for the E= lixir language > with a focus on > +teaching and code consistency. Credo can show you refactoring > opportunities in > +your code, complex code fragments, warn you about common mistakes, > show > +inconsistencies in your naming scheme and - if needed - help you > enforce a > +desired coding style.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/credo/") > +=C2=A0=C2=A0=C2=A0 (license license:expat))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar Otherwise LGTM modulo placement. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 13/15] gnu: Add elixir-erlex. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205001911210 (code B ref 66801); Fri, 08 Dec 2023 15:41:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:40:19 +0000 Received: from localhost ([127.0.0.1]:45796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcxe-0002uf-M6 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:40:19 -0500 Received: from mail-ej1-x642.google.com ([2a00:1450:4864:20::642]:55732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcxc-0002uE-QT for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:40:17 -0500 Received: by mail-ej1-x642.google.com with SMTP id a640c23a62f3a-9e1021dbd28so292689666b.3 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:40:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702049998; x=1702654798; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=oQJ6PY8EhxUerLgOikyVVrnxDQmq+sOPOaweBKDKwCE=; b=DQESHbJdIbXpiVJHbelnF21T0jdLv574hLfZtk61mQH/Xj9FKEB9MzkiTMPl01GUdc gJK3HbSX+2I3Jn2/Nw1BYiyoPRWP9ZM/rXSS2E6xY+M6Uuzwk50zdmRboOAXSKbvxKJ0 0dFCe79uM/fLcwG+YXt5X3nvPQY4xUVod6On+CuytsRfGQsPouc3ms5Hq+zYhryON8Rx vgarTOqiOt0IAZqBV6oFlm8TFQlVeiXdpPTRfHIOOavBYfopL2w26PPnBSI8NYx5PBUP kC65PbFdVUiMpYlvqEJl3hjQTv773M1913SUyl2cnKNlB2BbuBRgESJJfrz1vxQRnl3b bWXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702049998; x=1702654798; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=oQJ6PY8EhxUerLgOikyVVrnxDQmq+sOPOaweBKDKwCE=; b=KaN3Q7Pcm+N7thLHxvKwcnciibpclGIr/ZS608+4SOiW1C4K98j4ZfTKeYDSqS6KdX f3W3ns3ezBAnOaT6Hm6Ey7pEsB34TeXRGcQgt/45j6pl/d8bEHWvsdueC8CjVUa4BCvx tLTtj42ZZ/THcQfG14PC0vNnvY7pPCn+7CYgbwh0zUbt00IQqUavwVP4AjWbYyUWTbwK RMt+/j6NF5qTTOaxb6woX2BVyowAfjEjws+ic8XotSoyovsqz2ltXWrrM6YFbB91uw0V 67VxRoglxwXnqe9qr6WEYVQ1lOxVHs0sEPvMxWjBlzU7i30pxpVIkMHXTdZxQP861zlT k+MQ== X-Gm-Message-State: AOJu0YyJ+I64A7K5vFKvHSgr5Xnq3XuMR0E7Luq04JPNlg7Xdch2gkf1 BoynzsvX8maG+Ptj7wQpBa2oC7UJwAoMiw== X-Google-Smtp-Source: AGHT+IENrmfY56JiRAg8hZtVCO33zu7UbXMMSXYCyzZT1if8ra9kmQij9Ao8rwN7BSk8H2/oYSv70Q== X-Received: by 2002:a17:906:d009:b0:a19:65da:f18b with SMTP id z9-20020a170906d00900b00a1965daf18bmr84944ejy.38.1702049997923; Fri, 08 Dec 2023 07:39:57 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id cw15-20020a170907160f00b00a1937153bddsm1130468ejd.20.2023.12.08.07.39.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:39:57 -0800 (PST) Message-ID: <0d3cec96faed4cba10b123584094b12f50b9715a.camel@gmail.com> From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:39:56 +0100 In-Reply-To: <9565a3613f72aec9d954d771a374579352c4a126.1702044562.git.contact@phfrohring.com> References: <9565a3613f72aec9d954d771a374579352c4a126.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. >=20 > Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 23 +++++++++++++++++++++++ > =C2=A01 file changed, 23 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index afacbd872..08107934a 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -236,6 +236,29 @@ (define-public elixir-credo > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/credo/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:expat))) > =C2=A0 > +(define-public elixir-erlex > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-erlex") > +=C2=A0=C2=A0=C2=A0 (version "0.2.6") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (arguments > +=C2=A0=C2=A0=C2=A0=C2=A0 (list > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #:tests? #f)) > +=C2=A0=C2=A0=C2=A0 (synopsis > +=C2=A0=C2=A0=C2=A0=C2=A0 "Convert Erlang style structs and error message= s to equivalent > Elixir") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Converted structs and error messages are usefu= l for pretty > printing things > +like Dialyzer errors and Observer .state. Should this dot be there? > NOTE: Because this code calls the > +Elixir formatter, it requires Elixir 1.6+.") Pretty sure that's useless information because we package the right Elixir, right? > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/erlex/") > +=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 15:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205006911378 (code B ref 66801); Fri, 08 Dec 2023 15:42:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 15:41:09 +0000 Received: from localhost ([127.0.0.1]:45800 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcyS-0002xS-H3 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 10:41:08 -0500 Received: from mail-ej1-x641.google.com ([2a00:1450:4864:20::641]:52375) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBcyQ-0002wa-Ij for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 10:41:07 -0500 Received: by mail-ej1-x641.google.com with SMTP id a640c23a62f3a-a1ec87a7631so197289566b.0 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 07:40:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702050048; x=1702654848; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=osaFVxZy0mvlUQWrNI2shpwtDxGBFuWjh3/OJCuQlfY=; b=m3yRRLLPD3Krp3GmQq+m9SufCbWFnhJPGGVgivnmbLfI923CGG5yYH8elisUEVTAXM kSBIiqR1rKGpBLU4yLP8H2Vc2SItzArUy9f+85dJ2YXWiqXZZ6Thy4Fxb1PB9loZmusm 2BjvCcevaU7g3CVd1qj7cea032IZDJ/rcFvfIsKEImu6UfpvChocaMLuau+tMuD3UouS zmGpMQemzC/NYth0L3l6dgdQFEbWHXAThhS9GnJ1SvNp+6JoLeV7tX4i/0PoZbz2Kuq2 5gpBqhhLj5GRma79y+lpQ6rz5CyZyWFcvPExs6Uo3Vraa+mWBH3B4oiE/il7UzOgWSpx UoPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702050048; x=1702654848; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=osaFVxZy0mvlUQWrNI2shpwtDxGBFuWjh3/OJCuQlfY=; b=Tpb5dR+fyMPD3zx+OPoNMZoc6Z3ODkPGEUd+57MvEnS8XyDLIT5wRsJ8SLw2hIu0Yx cZcp/MpeeKDWyHQr7IdMpm82nmL0vRiSZUqnQ0mdmnU/hk1LsLVp3R+IMyY7TYzelZ2P vNDYoex75ujJ2gpeGtJKkeRUyHUuyeNRDA6IGbQL7rtNsKXrWKo2LgxtK5qmJnMJ9Uqp 0UdSbcnCFCo1+TxIRfDpcNvbs/7GpCcqn7xpte6eQVnJVKMeGvwsyRHqlYJn7InVC9PF a2fBKXH4Q9OUnWSqxpBfFY6qILRoSe6f3GV1xZAAvTEIuhHPmJihmj4U2fCr9JHWFsoz gkvg== X-Gm-Message-State: AOJu0Yxx1yHJ1f9uFOgRpbHKfNgFuC94Nav2gimd1xoNmRdrOYuQgYpR RlFXPt0nYfMcEuUmhr035xA4JmyYwYzk5Q== X-Google-Smtp-Source: AGHT+IF9Hi47HjLasYbVrCYc0+YLsDw0plmTr0vpC3hc+7WSc6Fau6nOSZNTOIIF7gB+taepBvrFHw== X-Received: by 2002:a17:906:fc0f:b0:a1f:616d:973b with SMTP id ov15-20020a170906fc0f00b00a1f616d973bmr95816ejb.68.1702050047490; Fri, 08 Dec 2023 07:40:47 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id sf5-20020a1709078a8500b00a1d696ff53fsm1120776ejc.124.2023.12.08.07.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 07:40:47 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 16:40:44 +0100 In-Reply-To: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> References: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 16:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > From: Pierre-Henry Fr=C3=B6hring >=20 > * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. >=20 > Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 > --- > =C2=A0gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ > =C2=A01 file changed, 20 insertions(+) >=20 > diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir- > xyz.scm > index 70b752bc3..a1a29dfa0 100644 > --- a/gnu/packages/elixir-xyz.scm > +++ b/gnu/packages/elixir-xyz.scm > @@ -280,6 +280,26 @@ (define-public elixir-dialyxir > =C2=A0=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/dialyxir/") > =C2=A0=C2=A0=C2=A0=C2=A0 (license license:asl2.0))) > =C2=A0 > +(define-public elixir-machete > +=C2=A0 (package > +=C2=A0=C2=A0=C2=A0 (name "elixir-machete") > +=C2=A0=C2=A0=C2=A0 (version "0.2.8") > +=C2=A0=C2=A0=C2=A0 (source > +=C2=A0=C2=A0=C2=A0=C2=A0 (origin > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (method url-fetch) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (uri (hexpm-uri name version)) > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (sha256 > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (base32 > "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) > +=C2=A0=C2=A0=C2=A0 (build-system mix-build-system) > +=C2=A0=C2=A0=C2=A0 (native-inputs (list elixir-credo elixir-dialyxir)) > +=C2=A0=C2=A0=C2=A0 (synopsis "Literate test matchers for ExUnit") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Machete provides ergonomic match operators tha= t act as > building blocks to let > +you define test expectations that can match data against any > combination of > +literals, variables, or parametrically defined matchers.") > +=C2=A0=C2=A0=C2=A0 (home-page "https://hexdocs.pm/machete/") > +=C2=A0=C2=A0=C2=A0 (license license:expat))) > + > =C2=A0;;; > =C2=A0;;; Avoid adding new packages to the end of this file. To reduce th= e > chances > =C2=A0;;; of a merge conflict, place them above by existing packages with > similar LGTM modulo placement. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205671832334 (code B ref 66801); Fri, 08 Dec 2023 17:32:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:31:58 +0000 Received: from localhost ([127.0.0.1]:45940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBehh-0008PS-W6 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:31:58 -0500 Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]:39377) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBehf-0008Ow-Oi for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:31:56 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 545251BF204; Fri, 8 Dec 2023 17:31:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056694; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6VWM+2mhPkroDundSpvc4ZgQWpm4SHt9l6kVVNA2PPg=; b=lCmjqq6hj0w36g3Wr2b+dzHfb5nGqwPDrjd+1lJmkf25J8qdfep9XHJTqjQuzcPhw1JUk4 x3puDY4ectqcglOv/8vb5f+YwJ1kTrKDVAEVC/kN2EEXFTSItHu065U7iSBPOJtNdjTV5u 0vAhokYwKHrpbOevpcozN+wHfR6ZASqWZJehmLSiAsOa6xvgEawfJihgvCYWQGOR/9UdSR B47sALAsYJiKXpp3OkbFNSWXV1O65PfDv1GHCnnhQBZlEQkfDCIo1w2TiR1d3zTPZ8EvnZ edrsGYfyxMJv27x9aXa9ec7ehxPgOreRMtdXUp8bGZzY5qjPHlMMZDbe2dIK0g== References: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 08 Dec 2023 18:30:56 +0100 In-reply-to: Message-ID: <87a5qkd2iy.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) Ok, the patches 4..15 have been corrected and will follow. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 06/15] gnu: Add elixir-jason. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205676532527 (code B ref 66801); Fri, 08 Dec 2023 17:33:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:45 +0000 Received: from localhost ([127.0.0.1]:45957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiS-0008SY-BO for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:44 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:45943) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiQ-0008Re-7x for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:43 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id B7D9DE0002; Fri, 8 Dec 2023 17:32:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6lp7ELQTybxImwrLYgG0WjijNJAD/jUwLShzjet+6Is=; b=p5t/QpuTGyzWITlZNC+GGUDZZl7MMV87+w5jX9/e3S7ZnMe4C6QZnqonh38EksoQct6Q+I m6Hzy0GBWEzToMrf9wha1Y//G4GjKR5CHXU5KJhSi1910k989sKNPCKzzc0fe1tR/9l8/7 UBiQiUmdSxa4tmEq0Xao38CwnZ6toX6yVj4ms2iUkiVLzd2mO/tLOiNKp8I2IgONJgEccm YVzCPszqSY97eumyKbd8c0Awhy4Ri/Prj8G5ZkMUF8wiD3tIUN/EroRgG2o/4Q6TlxrhWl XQKYGLC5L/6mvT4gPgkUBQ05ZZ3HEtG1Ld9kWGiUa98bTfo4Ht9auu4gmCagqA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:33 +0100 Message-ID: <387c54009029c5d04137d231bbc855eaa59f75b6.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 46565c168..dc20a69b4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -70,6 +70,27 @@ (define-public elixir-makeup (home-page "https://hexdocs.pm/makeup/") (license license:bsd-2))) +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;There is no test/ in the source. + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 04/15] gnu: Add elixir-nimble-parsec. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205676732559 (code B ref 66801); Fri, 08 Dec 2023 17:33:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:47 +0000 Received: from localhost ([127.0.0.1]:45961 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiT-0008Sa-0i for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:46 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:44339) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiP-0008RY-Mr for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:43 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 409BFE0007; Fri, 8 Dec 2023 17:32:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056741; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k9qxbnejkdYKnv9MNkT2q/Fj/PnPkQtgdEgIYkTtz58=; b=ROc0NKNXp9CC7SbDR4lYCHZOYbdojFWcqiWVZw9vjkk2H4hmSynYGBmdcG2rWsuO4ONVBn sSvt/1pOuUbG9L1ST9g/MLfYsKgoR9AO6VCqF8h+iCff2hEfsFnWSILja/XO5d6ddGeYKf zhtgh0IsPeU+9weqYS4TsiKJXmaPEGgLZlce8euFHbc7tW0l3PRYqFO4fUPV7Q8aaN5WFr QyiwK6yB+5/GYc31xGahdUjCMy7rRDLZlPCUqVKwnISxXi2GN5q3FNSXkCEFVDDOo+Licc kG5uPCuDs9l33ubq9IKDbBM0dBaiO9qq8Qtl8Fe+UyR4RHhOJGHIMe+JrDqa7w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:31 +0100 Message-ID: <146690108c971900a4bdfecfa342660791d8a49c.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 --- gnu/packages/elixir-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gnu/packages/elixir-xyz.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 000000000..c2ff4d7bb --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages elixir) + #:use-module (gnu packages linux) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mix) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;No test/ directory in the source tarball. + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 07/15] gnu: Add elixir-file-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677132594 (code B ref 66801); Fri, 08 Dec 2023 17:33:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:51 +0000 Received: from localhost ([127.0.0.1]:45971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiY-0008Tc-JE for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:50 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:50385) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiQ-0008Rk-83 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:43 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4EC1AE0008; Fri, 8 Dec 2023 17:32:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rr29s3qm8Y5iMQc7qbd2l6vvzpl7asRebzBLqmhOAOk=; b=cbeTYWK2F+uHFMvZmmbZMzs0KZZBdo/36uAj3ryV0Q1WK5ZDGsJiur+8Jv7iEHo5ksieQy bsNn4syoK4T+Hg7kZ1intP8XQar7jd74VK6blqjFlVKh2ltdmSKkwse1HvtgrhupfT5Ld+ qRnnemsP6dqmvr7fJ2wi47+VksuwXejUGIHuRNf4gWGCaEuuFNmzHfMl7t+2DXluxNMoJr 40/TwM5gcw2guzgU34a3vNPWObzteSTrY/QQ1w18PxPkpN/Ff2mtaO3NuXzjJWZGVH9qO8 8gOzV42Q+sSHqEw6CQke3PHmdydP29wmSGENgk5uIsjfeItAjMX/FTKxhsO/Xg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:34 +0100 Message-ID: <9639fb57b77e11e456a96a7e3fdfc6cbaf039a4c.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-file-system): New variable. Change-Id: I54e9c9069ddf150bb0c882775b0b2c9d5e59abd6 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index dc20a69b4..348cba49a 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -91,6 +91,28 @@ (define-public elixir-jason (home-page "https://hexdocs.pm/jason/") (license license:asl2.0))) +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")) + ;; This directory represents source code not needed on UNIX systems. + ;; Since we aim at UNIX systems, it is deleted. + (snippet '(delete-file-recursively "priv")))) + (build-system mix-build-system) + (propagated-inputs (list inotify-tools)) + (arguments (list #:tests? #f)) ;There is no test/ in the source. + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +[fs](https://github.com/synrc/fs).") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 08/15] gnu: Add elixir-bunt. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677132601 (code B ref 66801); Fri, 08 Dec 2023 17:33:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:51 +0000 Received: from localhost ([127.0.0.1]:45973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiZ-0008Tf-15 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:51 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:47491) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiQ-0008Rm-SJ for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:44 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id DCFBFE000C; Fri, 8 Dec 2023 17:32:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056744; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=81k0pDdslj8BKdsvo2nhuJsxD+f0OXnSxghd0Nre9Js=; b=Jo7hjv8ATiuXAm3P6F3hY3jU/xYHtX3KW1bdk+VPp8E/ccd8rex4wl1nYtM1GF8dZdUIRL XE3QllH2HLtY+gVc/VhpSXTHk8E2NxvZNHVIUMIz2Z7m1EIoMODwWyFYc+NqaFLeNv5ypA t+nL9n2cnM6fMajJHD7IAcxlySGDj6v3obbZPYbk2BkhbKEFF3IeHbhRXtr+5agVcsI/VI K+NLPtSdNnXBr0ZMgSJSZwGdI6bkfwL4hhMXIuIL0iYDIDLGbMW6t4TzHTDP4TgjNiChpm JW5vYdsOF1tAZWk4D5xscrnfGBPJVMjIBz0O0x+rZIJ3d2+0bWwUjeSK2AM5rA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:35 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 348cba49a..2c042f11f 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -113,6 +113,25 @@ (define-public elixir-file-system (home-page "https://hexdocs.pm/file_system/") (license license:wtfpl2))) +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;There is no test/ in the source. + (synopsis "256 color ANSI coloring in the terminal") + (description "Bunt is an Elixir package that enables 256 color ANSI +coloring in the terminal and allows users to alias colors to more semantic and +application-specific names1.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 05/15] gnu: Add elixir-makeup. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677132608 (code B ref 66801); Fri, 08 Dec 2023 17:33:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:51 +0000 Received: from localhost ([127.0.0.1]:45975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiZ-0008Tm-DO for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:51 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:36243) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiR-0008RZ-1S for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:44 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 2D42FE0009; Fri, 8 Dec 2023 17:32:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AlndjOgAlzkb6oZlVw6oJGkUasQEG510f/BzO5eyigM=; b=NOkWrflxtgJIpk+Qw1E2Jk9QzINGq5BUB2htf70VXBTize8bEMV2VImrso7fPlo49d8enT MyolZvu3cm3h2psJRXVTEfpZh2/bCVIEbzScpypebH0aCxBBNn0T6WemD9hyNQsoif7Zp2 W5AhhjX/pgXKCg9uDSLZHc5vP8jVa+L1EPAskepQmcwGefd1DD5FkEt7wNvSrNTXR3JiIC mEh1SE5tQcRpoe452N9j2I1FcOVn62F3wtoNM08stJMrLD0bUFXr8QNgCvlRrJdRmu0OqD X+c1dwF4aO3yWf/zcQhOYZde7I2R6a5ixtodj5NsTvd2Juueg9dQ6o+tdfreOQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:32 +0100 Message-ID: <39dc11c378ab42b704fa4cbf0e851fa6f97b76f1.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index c2ff4d7bb..46565c168 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -50,6 +50,26 @@ (define-public elixir-nimble-parsec (home-page "https://hexdocs.pm/nimble_parsec/") (license license:asl2.0))) +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments (list #:tests? #f)) ;No test/ directory in the source tarball. + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 09/15] gnu: Add elixir-inch-ex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677232616 (code B ref 66801); Fri, 08 Dec 2023 17:33:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:52 +0000 Received: from localhost ([127.0.0.1]:45977 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiZ-0008Tt-P1 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:52 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:58727) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiR-0008Rn-C0 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:44 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 7A65DE000D; Fri, 8 Dec 2023 17:32:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056744; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UbKHefnhlgtqEP1oHBVKWjUgoJ1UBYwWycM1qYd1Wos=; b=p2wdNI6jrKt8Km2ZUhrJytLvwIxpLMUJqw3JjU4S8I2Hhxqr13HsnKqbipEi95pept3IRO f3Sa6SAsqRAM8MrWpFZjl938Wrex3ZQoQ6kY5NHkCy2+3U6WG8tbJUH9qyc3CfoGP4s4EM 0tG288x61lFiO0VyCp/ToIecT9F1kd19oP1KSf1UmarCzdya25+TnUrh2J6U0YhEVlaFx8 YLWEFovSw9kemayTFMECUkvw81CBV2AJANqj+NnwhB50kfhOfoLMPQXYdwQnYbVPNs+wQH 4R4S3gpvyV5764kIjhzj1M+s31fZjo936+yHhYVu3HFY00RUd5hZkxWDUm/uQw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:36 +0100 Message-ID: <3a6f72dfbc0fe8423fb9e9b2e95769184f998e06.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 2c042f11f..29d6857f4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -132,6 +132,27 @@ (define-public elixir-bunt (home-page "https://hexdocs.pm/bunt/") (license license:expat))) +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;No test/ in the sources. + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Suggest enhancements for inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 10/15] gnu: Add elixir-castore. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677232623 (code B ref 66801); Fri, 08 Dec 2023 17:33:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:52 +0000 Received: from localhost ([127.0.0.1]:45979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeia-0008U1-6A for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:52 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:45739) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiR-0008Rp-TD for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:45 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 1073AE0003; Fri, 8 Dec 2023 17:32:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056745; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HceKvHUFKreJ0W79m1T+AMa/Yd4F4ECchb1HXZCU+2M=; b=XRDm42NkG8+XzmuUxfjfC1zcBnTwH6QU0TWYIm5y5JdeHO/fTYHecltMmPoJcefgAH4ipt iEJtrSqT2G3FC0ehS86E2Pvf9AWRx/bg2GXXjzBos2pFxPlU5FrYfiHKG3sM9oz6dLEfJw GoCIhWyrAHqpWPMRxniiCyXCYEgssdgAKFYLuCP23ZW1w7six3VVEPiUKEyFHm1bGBGtHF gHyzItz7rlLfoER7MJeEZHvpwZYe6V6X0IDLDQZ1wOTCi8fkxTYI81ECqqNVFzEL/PFdFR vtBVFghPwr58LzZe40dB+WI1v6n5GCTIxFhvdeB42hAxcwDF7tZ8Pz55T08eSw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:37 +0100 Message-ID: <496a070ad225c6429fa361bdda212b24fe29a35a.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 --- gnu/packages/elixir-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 29d6857f4..bf6a214d9 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -153,6 +153,24 @@ (define-public elixir-inch-ex (home-page "https://hex.pm/packages/inch_ex") (license license:expat))) +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;There is no test/ in the source. + (synopsis "Up-to-date CA certificate store") + (description "The Elixir castore package is a micro-library that provides +an up-to-date CA certificate store file for Elixir applications.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 11/15] gnu: Add elixir-excoveralls. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205677332631 (code B ref 66801); Fri, 08 Dec 2023 17:33:05 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:32:53 +0000 Received: from localhost ([127.0.0.1]:45981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeia-0008U8-JD for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:52 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:45951) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiS-0008Rq-Fg for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:45 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9B504E000B; Fri, 8 Dec 2023 17:32:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056745; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zWQryl51ksJAvry0/Ox9xT8WZx7XFKRrKR9iy4afQzk=; b=f3qFlacfUJmyO3UFkDH0q5tWlwo0eB/tSnXKgZ0vyrwinWopuy9OTeNEh+vuCGeMHL4DBH dai3/O6pU8AT2Sysa410B3msHtP/W2e3PGRXQNlo4qUWe3be2X5zdGn5of8rZh/5YPjAI8 rUffmbkqh2VKYUqoIjvAsl8Ev1qFq9M/8gLRXkwZZ8etcbkJJjCtk8tJRgXVSNw5OHUsct Wm2e4jSiu7Iz5srFkaUhA9blSfmkdqpAXX8wafDPoRoSvzlz+1Cs+RD5NIozoXPqz81zjM HpbmNpJdBBDrOKhBPvhIn9nMzTSOx8+dldbzJh4MFTUbd55NJ4Li3faCPKf9DA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:38 +0100 Message-ID: <94fb739f5765fd8b10d5d504f47453ea6dec8952.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index bf6a214d9..25e6a9f27 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -171,6 +171,28 @@ (define-public elixir-castore (home-page "https://hexdocs.pm/castore/") (license license:asl2.0))) +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + (arguments (list #:tests? #f)) ;No test/ folder. + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 12/15] gnu: Add elixir-credo. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205678032661 (code B ref 66801); Fri, 08 Dec 2023 17:33:05 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:33:00 +0000 Received: from localhost ([127.0.0.1]:45983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeib-0008UG-0J for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:33:00 -0500 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:43559) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiT-0008Rs-20 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:46 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 332A6E000E; Fri, 8 Dec 2023 17:32:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056746; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Skiuad6/W2nnarJEf6vWuUymITDcdvmXCqqqcUx3auM=; b=Ce+A3pHMTlNIvzqYclchTrcE+hkRCI3WtGZZPw8TlN3STwQh8pANJFXFeHPM/F3ftfRTTk BWyBQ1/AlwV7qg5ShCF9UEE3eFchNek7h5TvfxsngEqLJzfDOijfl6BYIh2nP9+QGWNMhZ 1Db5a616C+gVXlqFMV+Ou7i4sgNqshymRyYYOVZ7Zd/J8EvP6pAoW10XAhf9Kiy/bKJ5gi nY67sAk2yr7SZbZg+ueZnqNfXc0u2abTJ2UlVaA1Uu2B0sy27mAbJhSNiH704pP/zfxIr+ Vmc38K1Jc9NN3+xDweIruv2WfdxxxcL6OxctIJ66kVByKcA0HGjTMFONkVEYpg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:39 +0100 Message-ID: <484dcf04bf467ca73c97aee9eab6dbf7eb4938df.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 25e6a9f27..0743a6917 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -193,6 +193,30 @@ (define-public elixir-excoveralls (home-page "https://hexdocs.pm/excoveralls/") (license license:expat))) +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;No test/ folder. + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 13/15] gnu: Add elixir-erlex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205678132669 (code B ref 66801); Fri, 08 Dec 2023 17:33:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:33:01 +0000 Received: from localhost ([127.0.0.1]:45985 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeii-0008Uk-MF for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:33:01 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:35469) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiT-0008Rt-Jn for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:46 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id BDE9AE000F; Fri, 8 Dec 2023 17:32:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056746; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NbFNwwU0FGvlQ0Uhax5Fd/p/ESJ527cUZc8xxPUKxfw=; b=N7CYyT/Jqh9jTApjMN3qztHOb5HflCIgY7RfkqwKSvmXwu/5mPoD9CN4UhX4IRMnmNoF5Q 9Q4s4S+7ZIeJIW3BTg19s0sf0AUr3szROdaka6Xy6Kbtw66CKgFC3BuDm6+zZOZwCIJUDO 6I+eWEmuHc7rtBb+/IeHH7QmVxrtiAlU53TUv8gfLPHspfTrANuT1NCQm7o0zACjxDag55 Drs1VYEsyXGmX2w36hmzNjRm9H3wnOWRE1Iwk9Y/BH0L1e9ibwRLrTJ33stuXmWp/IrZdx QalHA+Qs3biDfSIPyFm55Jed42j1htooASdrwek0QHno6paDNjxLCIt2H7Zwmw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:40 +0100 Message-ID: <641397979d4d25406771622ba90d063e75dee054.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 0743a6917..5c20e253a 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -217,6 +217,26 @@ (define-public elixir-credo (home-page "https://hexdocs.pm/credo/") (license license:expat))) +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;No test/ in the sources. + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing +things like Dialyzer errors and Observer.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205678132676 (code B ref 66801); Fri, 08 Dec 2023 17:33:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:33:01 +0000 Received: from localhost ([127.0.0.1]:45987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeij-0008Us-9v for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:33:01 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:48667) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiW-0008SC-Jj for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:49 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id D8B1DE0011; Fri, 8 Dec 2023 17:32:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056748; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hzAvzZFJSqrak3R3FF6+Qbhgarl12aHOvgCMZKHf5qw=; b=IuA5bq2wxCNBAub7Zn7FoOJvLxPBVCDhk3kcDCT61cRwyLUw1hL74mW7lS498/TzsiuNXE NTbEoAhvW5dispzoo/kuyRho7FJg0T8cOmkog3SyQUFbMMzfealbfaX0qzqm4W8d/mffj6 QKKkOYkesZapFD5hp7M9NMvisTWnVTRL70TSfoGsJZjitV7i43C6gGKppxuz3/0gWPbwnN j9UNnKHjgKoGGfeNpd17/JqXLZVUAwC5ioxNv+0j3tP11uBOeLzK0pl4Zgrth0G9jfOEzX YQzub9L2zqyfJbB+NGiE1X+kMrIUKBdfW/YtfzUH3HaTbshJbm6859rfS0ru5g== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:42 +0100 Message-ID: <5cbf06a20c865e7bc43847eba39692c9cdb89345.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 417ef4fde..226cbe92b 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -256,6 +256,26 @@ (define-public elixir-dialyxir (home-page "https://hexdocs.pm/dialyxir/") (license license:asl2.0))) +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 14/15] gnu: Add elixir-dialyxir. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 17:33:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205678232689 (code B ref 66801); Fri, 08 Dec 2023 17:33:07 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 17:33:02 +0000 Received: from localhost ([127.0.0.1]:45989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeij-0008Uz-Mz for submit@debbugs.gnu.org; Fri, 08 Dec 2023 12:33:02 -0500 Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:40293) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBeiW-0008S8-J0 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 12:32:49 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4FC5EE0010; Fri, 8 Dec 2023 17:32:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702056747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z3XeZq8s+qlLIpj7DabLllHNLee4Gj/DNrThs1TfxXk=; b=iCrL7Rib9LNmGRQab+D66JImjbd0YqQ8ILlCS7FNhvyjRiqaX0zTn2whQ4V48N+4cEWzDz HR+18acPAxmfs5aMi/BBT4UKRwk+9xhcxh9tC3kUZMDPDvAJ//1RsCCl4H2V7kZalnOnvk axUWevWm7UTyv+pjECJOn7nRiqWCpv9fHPi11zXTROE2SRI7nc4IjAPvTGQiXcOKQZ6/I7 Ahxl7HcuSfK4ri97uiX1Si2NSirI3TZ8sSp1lbQdQw5mxy/3iztfn48poyfyWqQDpzIUyJ a4SYLZc/lWdJGOipu35mP4UUYrBc1YUK3bwK7YbBfT7t+Ey2Mk2Dfadb6CnvUA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 18:31:41 +0100 Message-ID: <3fb8ef5a8bf11aa604e4d14be70a70f6b7bc6172.1702056580.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-dialyxir): New variable. Change-Id: I387062e0aaaded448022aa7534b95859b5979a06 --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 5c20e253a..417ef4fde 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -237,6 +237,25 @@ (define-public elixir-erlex (home-page "https://hexdocs.pm/erlex/") (license license:asl2.0))) +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ;No test/ in the sources. + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205852016099 (code B ref 66801); Fri, 08 Dec 2023 18:02:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:02:00 +0000 Received: from localhost ([127.0.0.1]:46036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfAl-0004Bb-O0 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:02:00 -0500 Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643]:59684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfAk-0004BP-PB for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:01:59 -0500 Received: by mail-ej1-x643.google.com with SMTP id a640c23a62f3a-a1b75f59a12so301929166b.3 for <66801@debbugs.gnu.org>; Fri, 08 Dec 2023 10:01:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702058499; x=1702663299; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=nsXhLVnb2pY52hlIaxx/qqEDNxZULTIrI674qLYVkp8=; b=lH4dzitrrHojQcCA5RIhieEJ0v2ZdUq8puvtsIk8gawkz0Tp7ZeesgPcR31mRutN5Q RNzd/GRWH53EEb4MeGB5zLgEIk4aG6O9QuDgYxPphMwAcuVo3vH23NbiqgDXL/mIVfD6 aV/+/7M6GQ7ox9UC/VfZkwfFgVSwk23mcJ/OZ5hoNNX70ifIw9RAhg5rgaYRQ8WPFbat eWn/I7gkRiixWcPYBCKaGx34HrE1PM6Z8Ll8pzFu+hcFC/WhdjFp6FgFUDt4ypZpepaB EpnB7WT+HolqRXFtx7aZu0cSNXTV6IY2O47vu4zG8049IaNm81i/hUUB2updBfC3iWmn TkHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702058499; x=1702663299; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=nsXhLVnb2pY52hlIaxx/qqEDNxZULTIrI674qLYVkp8=; b=Q4H3O1KWg8hyyX7H4+K/l86eY9vbvQCkF2y8nc4mQ5rDj+Dm2PiMyfsWBff7FFbfNE pCpS+apm67zut7zbsQWxZzYJRzyl+jny3wCEHiwxqCC0k5zYajYjXOS0+DAIicwqQswy J4ez6ODjZ5YOsWmsPPujrlGGOrK+DdS9cpeQ3HdxcP3l3YnXMy1AVLBqs8dnvgD4+Hii QGh0UGrxnVQSMBqUgA2KqMtR7lovwHy7CRitycP6KQxBFKioqou1yqSBmHnrTh4H3K0d VGFw4hfHdKYyry5f2BDQX962TBHIvzaw0Vq0HtA3kBzXOavWOye4zPpVFstoNF7wzZeK CGjQ== X-Gm-Message-State: AOJu0YxGw/nN4bxA77LwA0sNzxedPmfbey49jUoA52ttzLFOsU+islDX OAglls6Yyor8CUn67zH8OA8= X-Google-Smtp-Source: AGHT+IFgOA4ai0Vjtx2lOmk5e6+JQ/lcI/14c/+viHkaK/HM3q7jGO9BSPBjLte0MXxD2h/uDsvlZA== X-Received: by 2002:a17:906:6a17:b0:a1e:86a3:8f4 with SMTP id qw23-20020a1709066a1700b00a1e86a308f4mr113285ejc.94.1702058499238; Fri, 08 Dec 2023 10:01:39 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id s7-20020a17090699c700b00a1d2ece1e0bsm1258040ejn.25.2023.12.08.10.01.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Dec 2023 10:01:38 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Fri, 08 Dec 2023 19:01:37 +0100 In-Reply-To: <87a5qkd2iy.fsf@phfrohring.com> References: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> <87a5qkd2iy.fsf@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Freitag, dem 08.12.2023 um 18:30 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > Ok, the patches 4..15 have been corrected and will follow. Don't forget to increment the reroll-count when amending a commit.=20 Also, 3/15 needs to be amended as well. Btw. the canonical "no tests" comment appears to be "; no tests". Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v3 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170205970629765 (code B ref 66801); Fri, 08 Dec 2023 18:22:01 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:21:46 +0000 Received: from localhost ([127.0.0.1]:46086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfTt-0007jw-9L for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:21:45 -0500 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:54205) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfTq-0007jT-Mk for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:21:43 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id DD3511BF204; Fri, 8 Dec 2023 18:21:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702059683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=mX+frBOmQq/GLeEzXltjNBKWatc+QsKSf74dsy5nJho=; b=ooQ+nCA6MyiNK+/rQfhDEC9ChCNWPn2qYQ3+TSfwR//BoQbFIdiQrHYQ+7+KR39XsswTD2 e2HZo2Osxvnu9qcO8Y/Xlwq9K9qZMcmQLf6yEeSNK6ZmQMb4OyBguyH2ewoZT1OW+CklCu T/NhY3hSl6sMe8tQglHOQgOTKbBDyGtHflR64PeB+1P/TQr0sHq1OWNAv2TidWH9U/Mb+Q sa8hHAF2CPXW7NP9n4o2FjIbtij52EGDU/Ec3wU9zVFwzuVTv3v6KfG27z4WXBnV1AAPUw KCP14qhC7cxGeecE9fNKIhRZ41myNYINo095kmgEsCBf6TpXkmTSxad8kSBVHA== References: <0fcd231dac02a6d0ee99254c37d93d38ffbb5735.1702044562.git.contact@phfrohring.com> <87a5qkd2iy.fsf@phfrohring.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 08 Dec 2023 19:19:19 +0100 In-reply-to: Message-ID: <875y18d07x.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) Liliana Marie Prikler writes: > Don't forget to increment the reroll-count when amending a commit. > Also, 3/15 needs to be amended as well. > > Btw. the canonical "no tests" comment appears to be "; no tests". Ok, I hope the next batch will be good enough. From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 02/15] gnu: elixir: Wrap binaries. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206057432406 (code B ref 66801); Fri, 08 Dec 2023 18:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:14 +0000 Received: from localhost ([127.0.0.1]:46120 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhs-0008QR-Sp for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:13 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:39403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhq-0008Pa-38 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 8262B60002; Fri, 8 Dec 2023 18:35:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Too275ATH3DnZfaDLq2YMsLOUjiqHUrIkhEfxt+fPRM=; b=PqZPx8sbsPwnULgVLxg3ztK6CX6x1dXIMCazWhoqAtY1dBzLk1yFvMi3jboBWnG0XZ4HGl k1D1kBLvxNHw2PUVDkS1lvDW4YcV4sdDKCrUmat+jWArAw/TvOu1tYCLtXO++5vnSUubhO eHknAVdulpReHQFnWX8Z94dJ0IBZKXsPXQtCVOILGNBvad2gmY9gTW9a5mnlIBe4aQtqvp 713jRSXkHX4hFZ+YCa0jFsEvE6VQwimWLPtB1ps+qJzU6lEUzllIxit85+kdfAz09OYMk7 c/oDFWrhl578ww1o2uCLdk20Qq4LORWDBQuCJ6S3IBlm9NW7ceMMVbShoTeXUg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:13 +0100 Message-ID: <5a74dfc5a70d98bb8033b49a9d38fb49cf01ca57.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/elixir.scm (elixir)[arguments]: Phase `wrap-programs' added. * gnu/packages/elixir.scm (elixir)[native-search-paths]: Variable `GUIX_ELIXIR_LIBS' added. Change-Id: I75bdde3aeedc1d495ea5fc2c5fc3fcdc5dc3fad2 --- gnu/packages/elixir.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b42512..15cbdbdfc 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -27,6 +27,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -96,9 +97,20 @@ (define-public elixir (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}")))) + programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ELIXIR_LIBS") + (files (list (string-append "lib/elixir/" (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") (description "Elixir is a dynamic, functional language used to build -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 03/15] gnu: Add elixir-hex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206057532430 (code B ref 66801); Fri, 08 Dec 2023 18:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:15 +0000 Received: from localhost ([127.0.0.1]:46126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfht-0008Qb-Oi for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:15 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:60455) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhq-0008Pc-4H for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 145BB60005; Fri, 8 Dec 2023 18:35:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KbunZurL06ODHUiKH097L+tS+QsZV99xC3S0ccceC1o=; b=XiVl58pNnkmT35qs5oJdxhwsFZrNAJHfCO4PNhxwFKHVQkPDgT7lY8F7OAWSuSFtpK2qkE y0yGqGvUe+6i34iz3XYSwnICj7XSBjBgzyZlZObWLTbiGgzU+UvPKoAKn2Piw/RbQZWnCs pPeYOncJz336sXJvHeoUU02N35rIxghGTVb/HKA9A+67wEpE5KLOT7Wh3OGg/pS2WEov4u 5SwVjl/yh6ibkmIxL9PEETQIu3KPHzHfDTjjJKSVoe87YlYfSgeSZRvqaZ2X9fOMUNX+EX cZXSVwhvV9jAGy6F+nFd4bg6+f/1t4UtuyARefz11V7COTaIU4QwS/aw2ZvEWA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:14 +0100 Message-ID: <991ebc5d9e6eb7a8663493d97f667d5696a646e5.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir.scm (elixir-hex): New variable. Change-Id: I957688ae4e078afd79acd439880c38083fdab83a --- gnu/packages/elixir.scm | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 15cbdbdfc..ef8c39d0d 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -118,3 +118,48 @@ (define-public elixir for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public elixir-hex + (package + (name "elixir-hex") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexpm/hex.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj")))) + ;; The mix-build-system assumes that Hex exists. + ;; We build Hex using the gnu-build-system. + ;; Other Elixir packages use the mix-build-system. + (build-system gnu-build-system) + (inputs (list elixir)) + (arguments + (list + ;; Hex is needed to build packages used to test Hex. + ;; To avoid this circularity, we disable tests. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "MIX_ENV" "prod") + (invoke "mix" "compile"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define X.Y #$(version-major+minor (package-version elixir))) + (define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex")) + (mkdir-p out) + (copy-recursively "_build/prod/lib/hex" out)))))) + (synopsis "Package manager for the Erlang VM") + (description + "This project provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 05/15] gnu: Add elixir-makeup. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058632496 (code B ref 66801); Fri, 08 Dec 2023 18:37:02 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:26 +0000 Received: from localhost ([127.0.0.1]:46138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhx-0008RC-3t for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:26 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:37699) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhr-0008Pf-44 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 3C29160007; Fri, 8 Dec 2023 18:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IuIZNM6+l/ZjPpcWV6SD+3BLUsHVurl6iWBTeRBTii0=; b=MRmafT7F0Qzc5SwofU5R3QQprLz72HuNanM2nEUEmb9JIP7bZwOJcaGO+9+6L8eOGEwMXU fV5wtmJ21FxP7nwVkGDzxb1kkiR4Yl50A9M/1GKjDE2Xtf73uOMClL3ZwVBzZpKQg1h/M2 GoF9636JJ+OueHl2LKXCli1rnj8KVw9QrHk4TXnFWx9tqwfDOKe7Zzl836EqGesB5yVNhV C9oOtRuEvFiPxfc3IUC9X1ETTfSrbISvT7yG2iIYl9p7wcTOO4WVWmT5dCcM+QStu565/X bfb5tp0vpHawCkcZ0g8uobGn8P4XNplyzqkWWd/wbswQ65xCIvRsmcQf9dz7HQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:16 +0100 Message-ID: <303d4f5e39b4420b95e6b0bb323f32628a799e39.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index a57d2aae8..ba682e7f0 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -50,6 +50,26 @@ (define-public elixir-nimble-parsec (home-page "https://hexdocs.pm/nimble_parsec/") (license license:asl2.0))) +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 04/15] gnu: Add elixir-nimble-parsec. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058632504 (code B ref 66801); Fri, 08 Dec 2023 18:37:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:26 +0000 Received: from localhost ([127.0.0.1]:46142 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi6-0008SA-6g for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:26 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:44213) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhr-0008Pe-2K for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9DE9A60006; Fri, 8 Dec 2023 18:35:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=q2j8S49b7JdscYSJODSQeK0o4ZUkCaKAQT0ouXp7qy8=; b=M2w+VT4MBhawnBwfajb2wO+XKSCuT18ud0UUKHkOaKvkmA7nWzXP8zjcJeclRrzZ8jrLp0 YOT99iS72VWaiV0+xMG2hrszrWUbd+I25LTsL3zcgjxgGBPe2aT59lpCtMbmou+NCB/g8h qhuKKE2eSo/2tgDlZgLPaGk0CmmUYvWIX+ALA0H2tnU9vD26E7E1YVjHUusPRt9Mz+xIcy F/EshSfaqf+RJSsj4oJ2FQP5Y6/zDWda7l83q7iJPO0gGNxCNSNa9pt76FQCF66+FCLOIs 09DN5fUzTKDRjxzu7XEGTEIVvDmZY7oeqWMHmsQxprAlwASLLn8iHqRyyWZ0Cw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:15 +0100 Message-ID: <436ae5d53524c353cb76ca1d009c633290f05b37.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 --- gnu/packages/elixir-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gnu/packages/elixir-xyz.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 000000000..a57d2aae8 --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages elixir) + #:use-module (gnu packages linux) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mix) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 06/15] gnu: Add elixir-jason. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058732512 (code B ref 66801); Fri, 08 Dec 2023 18:37:03 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:27 +0000 Received: from localhost ([127.0.0.1]:46144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi6-0008SD-M6 for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:27 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:56335) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhr-0008Ph-Mx for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id C779460008; Fri, 8 Dec 2023 18:35:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0CtJ5NiWX8N9W23Kx1XPu2FtVmw2QEbTUhWULvcqdY8=; b=TxLPSaBg2s4StFllTpyyFh0QZqbNs8ybKGd9f5L1X1dpuVARMPaAp7T6h2PAV0Jf4v9REe wUzxAWsaU3SkhL8e1+S+GsrJzVBnCea06fMTP0T3Abohaq5F+tYGdyiGGh9kp6c0eEWmcj o1bzqY7oAnpOkorIJnO0R5k7gibumAKLojDJ1m2GafEOnQM3VMIM7WbQUa/sHxAUpV2NHU dWMIROBxlPsm7nBB1+NOdQBnVWVWIfuTxS0jpX5M3EAR4WA72D/8P5nBtFn7ZpRu7iRg9q iYy6XBBgsYmqdd2nVp6R4JmvkQa2EoxYR3s/4TGuUhIGNGKdX7eDjNkMPZ1RQg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:17 +0100 Message-ID: <4824132b1e53282120d4197da3f52798d4238d48.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ba682e7f0..66c364fb3 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -70,6 +70,27 @@ (define-public elixir-makeup (home-page "https://hexdocs.pm/makeup/") (license license:bsd-2))) +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 01/15] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058832520 (code B ref 66801); Fri, 08 Dec 2023 18:37:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:28 +0000 Received: from localhost ([127.0.0.1]:46146 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi7-0008SL-4Q for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:28 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:57335) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhq-0008PZ-2n for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:13 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9BDBF60004; Fri, 8 Dec 2023 18:35:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KX2+2QJTAciHuWmi8PFIdJoEPxR7UIYvlpOvpKWojT4=; b=eD5hWmKpZhyHBi9pH+EoVg0F8T5KUmXnFVEhcwPBDQN/+0k95LE8j5SWMj02BatHn52nAC smWnxcEBjrlOlFj4zQ5c7CMEVlr7R0GS431FgHjvnQ3sbbT4gtF0IOlOEcqWPwOw272sE5 E35uc8j8y7xHzG5cAVUbJMSKW5zIBAOpf81zj5/4sgRrliGcVUfuPtfEPWxyI4pTO9xq3L 4jNzmUHfdxlgFmNIc4JrSEMV/1VeUAmWVmxQ+GN9rQBhNya4sKZBRxakBbB+hL4vsh+E8o CsTjQg38oDnW3bxaObKH0OpbvfQ6KgokHul5yj1+4PugZuLzEcSosydw3v1SQA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:12 +0100 Message-ID: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 --- guix/build-system/mix.scm | 186 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 161 +++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 000000000..1b04053d7 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,186 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cute string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 000000000..fe2e36d18 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries under PATH for a specified Elixir +VERSION are installed." + (string-append path "/lib/elixir/" version)) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-build-root mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the +package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables" + (string-append mix-build-root "/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cute string-join <> ".") + (cute take <> 2) + (cute string-split <> #\.) + strip-prefix + strip-store-file-name) + (assoc-ref inputs "elixir"))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cute string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_EXS" mix-exs) + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3"))) + +(define* (set-elixir-version #:key inputs #:allow-other-keys) + "Store the version number of the Elixir input in a parameter." + (%elixir-version (elixir-version inputs)) + (format #t "Elixir version: ~a~%" (%elixir-version))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Example: elixir-a-pkg-1.2.3 -> a_pkg" + ((compose + (cute string-join <> "_") + (cute drop-right <> 1) + (cute string-split <> #\-)) + (strip-prefix name+ver))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name)) + (root (getenv "MIX_BUILD_ROOT")) + (env (if build-per-environment "prod" "shared"))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (add-after 'set-mix-env 'set-elixir-version set-elixir-version) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 07/15] gnu: Add elixir-file-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058832527 (code B ref 66801); Fri, 08 Dec 2023 18:37:04 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:28 +0000 Received: from localhost ([127.0.0.1]:46148 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi8-0008ST-4p for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:28 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:36577) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhs-0008Pj-9u for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:13 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 6AEDA60009; Fri, 8 Dec 2023 18:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ut5fW1P1KSNSPEMIUaGeNLx5cT73wsFeG7osJjp/Yi4=; b=igtS+/VKdeA/hbpncpj0OS+wlLJw1RStyQeKvYSqSLJDgUyvNxh+YeqdkxWBWirmKk2pZI FA38WdpaBdXOY4Gla8NAkNrnWjgvniqDWDDFo2f0qDlO6RlbWEe7EuFVEY7+SERg/6QKch Wvg7PVVQ7ZxV/28K59ktmRZAOfjwaNGu4fmsuvLsVdgUzYF2DZOPkUQcqyKPFeJXiHLMbd kvqwnhTi+QBgjMtHFWC6JPvA+vz6lWG1fSu7Y4pVeynYb60+VQVf9wKnq8rZtn6+Xvt2mo +1QsCtacSAAtKchK4KgW5zaA1KWt7p+Xdkq5YyCpvT1sQ+n/hQCEcxSCI8HFmw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:18 +0100 Message-ID: <371a011eb62c7f5234b2c1b7b84adda5f28f618b.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-file-system): New variable. Change-Id: I54e9c9069ddf150bb0c882775b0b2c9d5e59abd6 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 66c364fb3..f46e470cd 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -91,6 +91,28 @@ (define-public elixir-jason (home-page "https://hexdocs.pm/jason/") (license license:asl2.0))) +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")) + ;; This directory represents source code not needed on UNIX systems. + ;; Since we aim at UNIX systems, it is deleted. + (snippet '(delete-file-recursively "priv")))) + (build-system mix-build-system) + (propagated-inputs (list inotify-tools)) + (arguments (list #:tests? #f)) ;There is no test/ in the source. + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +[fs](https://github.com/synrc/fs).") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 08/15] gnu: Add elixir-bunt. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058932535 (code B ref 66801); Fri, 08 Dec 2023 18:37:05 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:29 +0000 Received: from localhost ([127.0.0.1]:46150 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi8-0008Sa-KJ for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:29 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:58543) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhs-0008Pk-SJ for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:13 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 001106000B; Fri, 8 Dec 2023 18:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=52O1tmjR20tnhkM6HBNV0EMyeve7crvOaXT3SQPQiXE=; b=VZUiZdc2J8Cz7kqPyxfWwIbVOCmGs1scGyb21GCVb4MHuAEtxP0O08kEDI+CCJCuv1pNpH 6dSmElU1xtt11Lvx7DV8MJUBjzZ8E9bjBm9h14bOQ3DBvv3jwr4BsdFjUrzGEuRlKdmApw ahwNofY6HcmfUFe9KALfTpNLo83N8unWoySr+P4wQ159zyCD2dCiWcY2q8cPcv1F4J//jT /S1tdTE3WKTuYv/tA0MLHS02+RvTmDn9J3FgWmv7QYqEuVfvLht2T+xBP6/PU8U6rfKRu/ 6jtERxZUmMOVWhuIqB0NdOCbPQyKOvHq2adIeh20UsSEQH4XqjgdQizS8ZM5rA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:19 +0100 Message-ID: <367aaa97a327fb65862e709c07985c39ddce8f67.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index f46e470cd..54a747554 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -113,6 +113,25 @@ (define-public elixir-file-system (home-page "https://hexdocs.pm/file_system/") (license license:wtfpl2))) +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "256 color ANSI coloring in the terminal") + (description "Bunt is an Elixir package that enables 256 color ANSI +coloring in the terminal and allows users to alias colors to more semantic and +application-specific names1.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 09/15] gnu: Add elixir-inch-ex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206058932543 (code B ref 66801); Fri, 08 Dec 2023 18:37:05 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:29 +0000 Received: from localhost ([127.0.0.1]:46152 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi9-0008Sh-2m for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:29 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:36791) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfht-0008Po-Ee for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:14 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 8DE6E6000C; Fri, 8 Dec 2023 18:35:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2ZZMwm6lAavQkZAVVgUq/HGv/PSSBk8eUo1f+L6hSN8=; b=QcUj2mlTmnTR1Icqo5H1F32yq8ZNFhZutNbRGc3uJusfc+2myNwExoEgJ+j4PSLuP9Zkcr AwIHvTjM1LUguNnDQQ70LXwHcvYYv7nCfhyeLNQS9BpyFhLow3GFeIKentoFeuTOc0QmN1 Fbu8Zxr7w1TMXiVCpcGR2HxlthHeuCaanuTqWMU8s9I+6fd/CBynHbIJ7HsK03MWxYXMZF GUfHVKhU/TvGNiqEz+ynxCfCuCd0A7ZmjtFOsZ/gU9hqp+4AgFbO0+Ki67pfkhmi6nF8iY xyQItLVOcnKXOGzU0IX30GjSp7doQPCVAkF1eENy5uIDBocXufRSZX81hEEYXw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:20 +0100 Message-ID: <8111c4a138fda91176b53026c47b4470754319ad.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 54a747554..e4756a733 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -132,6 +132,27 @@ (define-public elixir-bunt (home-page "https://hexdocs.pm/bunt/") (license license:expat))) +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Suggest enhancements for inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 10/15] gnu: Add elixir-castore. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059032549 (code B ref 66801); Fri, 08 Dec 2023 18:37:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:30 +0000 Received: from localhost ([127.0.0.1]:46154 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi9-0008Sq-Gh for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:29 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:59141) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhu-0008Pp-0j for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:14 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 240996000A; Fri, 8 Dec 2023 18:35:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QjBFJgGqb02y397w5EYnM9IXYMceyzsbi8NyTbmv4Iw=; b=gvhkSCSrM/qlAgej9dtYXYsOpX5BChVSXidm1icbYxKSeKQoVa+iTOcj4hR95YOlsTg7sL tOl36dTjpg3/BxPcFUdQ+8wjWJUoCJsm4dpVBdhWTyTuRpqTHALlgflb9sD1R7vlfHHXSW 7SlwZaZqFrSFc5+3EY3mQX2SZe6jgoyWXik2DGn5QN4IswPQxdZV7LnM/Oz7/8nALHMWPj BdjSISOEM9DbppzFwxW1P69H+q4i4iRgqHuJz67ZfNJpO7Um5PnursDVhMdakiJiXC04m5 sMSgxPABajG3UBjJANKY4Hj4QX+N+SiS3Ll/h20fk4SoL4l2MtANQja3WKLHtQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:21 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 --- gnu/packages/elixir-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index e4756a733..18f168e33 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -153,6 +153,24 @@ (define-public elixir-inch-ex (home-page "https://hex.pm/packages/inch_ex") (license license:expat))) +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Up-to-date CA certificate store") + (description "The Elixir castore package is a micro-library that provides +an up-to-date CA certificate store file for Elixir applications.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 11/15] gnu: Add elixir-excoveralls. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059032558 (code B ref 66801); Fri, 08 Dec 2023 18:37:06 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:30 +0000 Received: from localhost ([127.0.0.1]:46156 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfi9-0008T1-Vo for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:30 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:33653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhw-0008Q4-Ml for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:17 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id ABBF36000D; Fri, 8 Dec 2023 18:35:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u/npF2Dhui5Vje8Skw9Yt6AzhiefF/8ftKNtZMFYnUg=; b=f9cTDqOSBz3EXZq9WbSogU1EzSwnhNDvy0Zs9mLNKBZ1C3ktwrr9Dkz/lmF866N5KUuGAF Sk4LblT/S4yMCZrAmIQY9FTP+dwsMsoV/wC0yCcYCVQeq8Bpz6OQ6Y0AdSszFS01LUE2bC KelUqo5cI8N057aJcuSavPdUO0Tx/Rfg/qSjd8fQnW2hpPtjAkSaJOVtparUhhTuJUcLis SHXFLVGIdrXM6mvT2zVGYBhW96G8XtRqExDXKIwTGWPIMpK0au4YPQ7q9TQ7rbgNoqWaq1 sMggyLBj+8VoxwQA7EBYtnnQ4VdZD/N+lk00VDux6lTwEsJMv3IfEoVzBKvApg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:22 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 18f168e33..4bb856f67 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -171,6 +171,28 @@ (define-public elixir-castore (home-page "https://hexdocs.pm/castore/") (license license:asl2.0))) +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 12/15] gnu: Add elixir-credo. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059432583 (code B ref 66801); Fri, 08 Dec 2023 18:37:07 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:34 +0000 Received: from localhost ([127.0.0.1]:46158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfiA-0008T5-En for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:34 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:42635) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhw-0008Q3-Ma for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:17 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 46CD36000E; Fri, 8 Dec 2023 18:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pUofZCk22U6gC85sY87/YeJgh7gYC6pbJDqK3tv4YmI=; b=ESgGlxbN9zp4VbC3bghPUfe/FlqHvCmuNAQen3TF4gp5JxwnHbcL6PfC336a8hO95mGKvh Vy9qC+hKteYaz2U9k+0XgpQKpzPxX3N43AvUNp6YP9G15HcglQ2W7JmHhE+yMZhq6onqJI Zev5bPMWU8PQbSQnfzLXTOCSTr0xvgJzq1NIScb8G/UgUyksywh+ZwcprUjGoob9DjoheY DOgv4YI2s6ba0rRdqEoAEnBMK3xbtfk1S9/zOLMDBNQQMtwpxFNuRGCH7G/gUVQ3wDooUt +KsXlWbmfd3rJZGjaarXejk+xxfyiBgmGMFWOIF+xaKwA+H90jfyXptYO3wyXQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:23 +0100 Message-ID: <9de5de6653364f266aff50a58c83f5c3ac8fdd7c.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 4bb856f67..b4e974797 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -193,6 +193,30 @@ (define-public elixir-excoveralls (home-page "https://hexdocs.pm/excoveralls/") (license license:expat))) +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059532592 (code B ref 66801); Fri, 08 Dec 2023 18:37:07 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:35 +0000 Received: from localhost ([127.0.0.1]:46160 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfiE-0008TZ-Dr for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:34 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:33439) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhx-0008QM-Rs for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:19 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id EE3CC60011; Fri, 8 Dec 2023 18:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4SYyoZmLDV3es1LgwM3SwLVheIAwCDLFScnITXsq7TA=; b=hFCo+BjgwNctnOvbRJWnzwzSnp9A68VjuozGaftwZB07mCwaKzAfe2VlAbciQzeJUTI9Os Qxo4PQGKO2zeHCMtiFnonMjDzdfqx9Z6xm1iORxJDztphGe5XLcRgvtal+tdug6snhvrmz SYzHrVwIsaHHLaCppSHOqF43lcaS+/+/UCu70LVH9UCSzsrj5HoOK5qBFHR1DsBN2vZ6mc qp7os5JagaJCvyQyYhaP+wkF7LWpr5qaMW6j2JZxi7KzkBVtkpupFfP3gJpq8uKX1mS28o 4FVAV+/fm5ZF/1javqqqu3JMhBFFfNSrn1jDjP+lsI6lb6nvcckBp99OJt6TPQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:26 +0100 Message-ID: <7906c924e18be21b7df5edea7ae9c665d77e21d9.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 983c3ff5f..e74750c5b 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -256,6 +256,26 @@ (define-public elixir-dialyxir (home-page "https://hexdocs.pm/dialyxir/") (license license:asl2.0))) +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 13/15] gnu: Add elixir-erlex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059532599 (code B ref 66801); Fri, 08 Dec 2023 18:37:08 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:35 +0000 Received: from localhost ([127.0.0.1]:46162 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfiE-0008Td-Rj for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:35 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:48005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhw-0008Q8-Q3 for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:21 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id D39A96000F; Fri, 8 Dec 2023 18:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=r14cCNxp0DvOpqI77GAIMneHiLFKkP8QXT/DRhTRWus=; b=Qsf+WFOzYy/a8E8+on3uHtWeyFqneMsU4iPhDOIbLZypo6iaR/QvomrvZ0jQonhwPkPT7I YRKwWOqrwr71w4+00ddvQWG7nnKM2L/p01lpQI5JvcawxnwmvGp8kWLd9Af8nZC9m/0IZY /B9YXHkIS+HJljQoMJqh102yQy6vdU5nj+dz+M2r60WbGG0y8MFKKHMVmX8B0W+9txhY8W wzI+MmQI/2WODw/JRVz/J7zw+NCgreAqvKuMznLgHDydCYGDs8vlUN1+X7SuGOyuWaOlMw HxMPH4w8kOLe+65MZwky/yZoXbfy+qYtTi/e65WfGB7WI4xiAk5sFOjWMOl+Pg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:24 +0100 Message-ID: <5f7b5adbc492beb8e2f03c7f0fc8a2b5b716ea29.1702060484.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index b4e974797..4d328aa07 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -217,6 +217,26 @@ (define-public elixir-credo (home-page "https://hexdocs.pm/credo/") (license license:expat))) +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing +things like Dialyzer errors and Observer.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v4 14/15] gnu: Add elixir-dialyxir. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Dec 2023 18:37:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170206059532605 (code B ref 66801); Fri, 08 Dec 2023 18:37:08 +0000 Received: (at 66801) by debbugs.gnu.org; 8 Dec 2023 18:36:35 +0000 Received: from localhost ([127.0.0.1]:46164 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfiF-0008Tk-9s for submit@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:35 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:34161) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rBfhw-0008Q9-Qz for 66801@debbugs.gnu.org; Fri, 08 Dec 2023 13:36:25 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 66B7C60010; Fri, 8 Dec 2023 18:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702060557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5y0fvLJi890IbY+NNSTinaK5OSRRtePDR2nQcrp6/v8=; b=SU9qduK2Ur5BLSxLGCFR7HsopwkZdXUKbUiHe3aFtsfQ4+Rrb6NAswTymezrC3QktbK4+i 5rABGOL+xfPZs2EWuBpEauADHB0ZLpxwpDbTQSvHbX0jB7pvYQG/Y8FfWqyLtv2LBJlgMX 2KmbsSqNWIIlWGOHiIebAYMGHrnIGRkRF0lvTX0dv9d64ESU9NQ9qroOIvegJA7ePJ/kY0 8imPU+drrjzUefslW+kMVdZd+OvcBsr+QaJ9MNAtTuuLkMPyCUcqV20xf47NqOoWY+WxM4 ZrQyz1mhYcKF+FVoNwlIhSTsGeHjFxmDFEttdr+YjdUJciO0q23lmQSwehH9WA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Fri, 8 Dec 2023 19:35:25 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> References: <7cd29d5162bed84d0b5b933673e5b8766c66719d.1702060484.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-dialyxir): New variable. Change-Id: I387062e0aaaded448022aa7534b95859b5979a06 --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 4d328aa07..983c3ff5f 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -237,6 +237,25 @@ (define-public elixir-erlex (home-page "https://hexdocs.pm/erlex/") (license license:asl2.0))) +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] (no subject) References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: Guix Issue 66801 <66801@debbugs.gnu.org> Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221325720529 (code B ref 66801); Sun, 10 Dec 2023 13:01:01 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:00:57 +0000 Received: from localhost ([127.0.0.1]:49676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJQW-0005L3-JN for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:00:57 -0500 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:44791) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJQT-0005Kn-A2 for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:00:55 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 062DE1C0004; Sun, 10 Dec 2023 13:00:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213232; h=from:from:reply-to:subject:date:date:message-id:message-id:to:to: cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VWZfT7jvcqJI+O+9x2F0XPIW0i5J1oSfr2YBMuxV3lU=; b=TJBeNyW83egAzEHX+EAZ4vT5w09ejJe1OVBgf8oul6C1kfG+IkSr5jQwWCRG4L65Tlh540 RrXe+dGxF81oCSMMRg3yCyfDZkDXCLDtz/ZExLSuJ7aCtdMx3cNdKOP8tFN2uBX3eWpyFj 2tlEDyA2ufsPjRVeDjryF9RFN4MbYp839nfR6agWs1x/tvuXQ47oiWCrMz6JnXvN7MmUrD IOGCtaBtZjYMtvJwglGyFRsSyyzzOwqIrrqZ6wRwr8tiLbbuflZ/yTfXkWZVCiXSrCsUFI +jMC9c/6fDaXuPHI4EiCDyzs9zku6V3KrQiRlw4uuwRKSoA7ojypPApr1Wev4Q== User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 13:34:37 +0100 Message-ID: <877clmw6ts.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: contact@phfrohring.com X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello lilyp, After this email comes the v5 batch of patches. Are these good enough? For the record, I'm building a checklists of your suggestions here: 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.3 (/) Hello lilyp, After this email comes the v5 batch of patches. Are these good enough? For the record, I'm building a checklists of your suggestions here: =C2=AB These rules do their job when mindlessly applying them get rid of de= tails preventing patches to be merged. =C2=BB I still did not compile all of them, but it will be done. These patches were added on top of: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 06f25a9a8 * origin/master gnu: xrdp: Update to 0.9.23.1. =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 The packages build on my machine. =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 echo $PWD =E2=94=82 git rev-parse HEAD =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 ./pre-inst-env guix build elixir-file-system =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 /gnu/store/76fsrn1bdsyhm9m1p17ibrd0cbgybigw-elixir-file-system-0.= 2.10 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 ./pre-inst-env guix build elixir-machete =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 /gnu/store/f5jc0jg1yd9imgvy0sk44ci0l1lh2v0x-elixir-machete-0.2.8 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 The main difference is the introduction of the `snippet' field that actually does the job for `elixir-file-system': =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 (define-public elixir-file-system =E2=94=82 (package =E2=94=82 (name "elixir-file-system") =E2=94=82 (version "0.2.10") =E2=94=82 (source =E2=94=82 (origin =E2=94=82 (method url-fetch) =E2=94=82 (uri (hexpm-uri name version)) =E2=94=82 (sha256 =E2=94=82 (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdm= w6a1")) =E2=94=82 (snippet #~(begin =E2=94=82 (use-modules (guix build utils) (ice-9 ftw)) =E2=94=82 (mkdir "source") =E2=94=82 (for-each (lambda (file) =E2=94=82 (when (not (member file '("." "..= " "source"))) =E2=94=82 (rename-file file (string-appen= d "source/" file)))) =E2=94=82 (scandir ".")) =E2=94=82 (with-directory-excursion "source" =E2=94=82 (invoke (string-append #+gzip "/bin/gunzip"= ) "-v" "contents.tar.gz") =E2=94=82 (invoke (string-append #+tar "/bin/tar") "-= xvf" "contents.tar") =E2=94=82 (delete-file "contents.tar") =E2=94=82 (delete-file "priv/inotifywait.exe")))))) =E2=94=82 (build-system mix-build-system) =E2=94=82 (propagated-inputs (list inotify-tools)) =E2=94=82 (arguments (list #:tests? #f)) ; no tests =E2=94=82 (synopsis "File system change watcher") =E2=94=82 (description "Provides a file system change watcher wrapper b= ased on =E2=94=82 https://github.com/synrc/fs.") =E2=94=82 (home-page "https://hexdocs.pm/file_system/") =E2=94=82 (license license:wtfpl2))) =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 For some reason, `--delete' option of `tar' did not work as expected which made the code a bit longer that what it should have been: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 tar --delete -f contents.tar priv/inotifywait.exe =E2=94=82 emacsclient contents.tar =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 =E2=80=A6 =E2=94=82 -rw-r--r-- 0/0 734 c_src/mac/cli.h =E2=94=82 -rw-r--r-- 0/0 1496 c_src/mac/common.h =E2=94=82 rwxrwSrwt 163910/18953450 8929236060 >=3D 6))) { =E2=94=82 config.flags |=3D kFSEventStreamCreateFlagIgnoreSelf; =E2=94=82 } else { =E2=94=82 fprintf(stder =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 tar xf contents.tar =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 tar: Skipping to next header =E2=94=82 tar: Exiting with failure status due to previous errors =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=80=93 Regards, phf From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 03/15] gnu: Add elixir-hex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221351121052 (code B ref 66801); Sun, 10 Dec 2023 13:06:02 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:11 +0000 Received: from localhost ([127.0.0.1]:49693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUc-0005TD-Dr for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:11 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:49535) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUa-0005SU-4A for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:09 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id C35AD60007; Sun, 10 Dec 2023 13:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213488; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KbunZurL06ODHUiKH097L+tS+QsZV99xC3S0ccceC1o=; b=TjNm0bZ92ATYVwR64BG3E7NAko45YRR5gsnKdFZMgFSPSKhoAgjgipJrU5fV25i39yequk tYCLGWZVTiQPyN/VBxlgZiEzP9vAdIOsQ4Cy0DldO5rLaEX5+cW39OT7ziFeVwywVmtBux oNvg/UJmgTqLPdcXUrmwDi5VnbyVH0R+Ya5kjCHqQnTsvhJq+pccZcOp6LdEQ4xEm4Vzti 7HdPxjo8Jgo1EOMyVv+MIFaCBKS5EIly3X8p8GwVXLMSYr9xfZORwM8lD/1kYRmnMuxgD4 0UXcY8AMHO1HqzHYgTm39HXihKEVY/pkYp+ImTAZpglzXdsvu9b5/bYnjAC+Tw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:56 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir.scm (elixir-hex): New variable. Change-Id: I957688ae4e078afd79acd439880c38083fdab83a --- gnu/packages/elixir.scm | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 15cbdbdfc..ef8c39d0d 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -118,3 +118,48 @@ (define-public elixir for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public elixir-hex + (package + (name "elixir-hex") + (version "2.0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hexpm/hex.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj")))) + ;; The mix-build-system assumes that Hex exists. + ;; We build Hex using the gnu-build-system. + ;; Other Elixir packages use the mix-build-system. + (build-system gnu-build-system) + (inputs (list elixir)) + (arguments + (list + ;; Hex is needed to build packages used to test Hex. + ;; To avoid this circularity, we disable tests. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (setenv "MIX_ENV" "prod") + (invoke "mix" "compile"))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define X.Y #$(version-major+minor (package-version elixir))) + (define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex")) + (mkdir-p out) + (copy-recursively "_build/prod/lib/hex" out)))))) + (synopsis "Package manager for the Erlang VM") + (description + "This project provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 02/15] gnu: elixir: Wrap binaries. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221351221065 (code B ref 66801); Sun, 10 Dec 2023 13:06:02 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:12 +0000 Received: from localhost ([127.0.0.1]:49697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUd-0005TS-9X for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:11 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:35019) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUa-0005SV-4W for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:09 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 306B360006; Sun, 10 Dec 2023 13:04:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213487; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Too275ATH3DnZfaDLq2YMsLOUjiqHUrIkhEfxt+fPRM=; b=Rz7WnhkvX0+BDAL6hTKcu3wShZCU1HbbbHhyNuw+5lBtHuRMBjYkpNdiPS0RFiuTyyneqs +LFSsh22b5jGmEIr0L9xjGgbynNyIKaEYzRdPnhUaMQdcOQMwWWzDhfS4D0XLyiQu3pOtb 81Zq5QHnPJCFm7fpWaZznj7adJk0jgwr4TGIu/7BXl2tjtuWy9Qz75AVb56xHBYbkFh5NA 7I5L24HQLuKuVSrn2wLPgBZemr8CDOE6F1lhNIW9b5JCCXeaOWiins0q+QBi+2d486W2uh mXn8Y8PT1Iy2CJa4dcxNieo+wT9iyrKwyL1b4QL00sn4X2EcRBE4IEw+p7kv8w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:55 +0100 Message-ID: <253e35eafde683ebfbe680253f80e73d869a8cdc.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/elixir.scm (elixir)[arguments]: Phase `wrap-programs' added. * gnu/packages/elixir.scm (elixir)[native-search-paths]: Variable `GUIX_ELIXIR_LIBS' added. Change-Id: I75bdde3aeedc1d495ea5fc2c5fc3fcdc5dc3fad2 --- gnu/packages/elixir.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b42512..15cbdbdfc 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -27,6 +27,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix gexp) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) @@ -96,9 +97,20 @@ (define-public elixir (lambda* (#:key inputs #:allow-other-keys) ;; Some tests require access to a home directory. (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" program) + '("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}")))) + programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ELIXIR_LIBS") + (files (list (string-append "lib/elixir/" (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") (description "Elixir is a dynamic, functional language used to build -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 01/15] build-system: Add mix-build-system. References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221351321084 (code B ref 66801); Sun, 10 Dec 2023 13:06:03 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:13 +0000 Received: from localhost ([127.0.0.1]:49701 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUe-0005Ti-0J for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:13 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:49119) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUZ-0005S8-Vq for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:09 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 4D09C60003; Sun, 10 Dec 2023 13:04:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213486; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KX2+2QJTAciHuWmi8PFIdJoEPxR7UIYvlpOvpKWojT4=; b=ZDfOyCIz3JGZTkQKLI52363NO7PLUar5jj/1iWOJWES94XBjMPuiRQaZ5PbJDquLsr1jbX jd1UJacdi1oGTwNvBL2by4P8nK2/wDGmmQZuWCLJWrRneIPiJzxKvZc30p6aatub4ol6/Z tHjyFuIzpLprdvgnGgTR2KRlkQ/GdMQ5ZR1INSVV0NWNMO62c1sv625KE54DZeSMcTSYfE VvPzNVYnoxhj83z7lSXIaWqNbZsXTzks6n3xwd+lm0vBF+E+ETSAW3pLsFUDE1745qostI +QFXvsp2iumZUjaJ6oyRHjIFIVdPaSdjjEDrMbp7p78nQMGwnxv0rF7b1s2xUQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:54 +0100 Message-ID: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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/mix.scm: New file. * guix/build/mix-build-system.scm: New file. Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 --- guix/build-system/mix.scm | 186 ++++++++++++++++++++++++++++++++ guix/build/mix-build-system.scm | 161 +++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 000000000..1b04053d7 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,186 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (mix-build-system hexpm-uri)) + +;; Lazily resolve bindings to avoid circular dependencies. +(define (default-glibc-utf8-locales) + (let* ((base (resolve-interface '(gnu packages base)))) + (module-ref base 'glibc-utf8-locales))) + +(define (default-elixir-hex) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir-hex))) + +(define (default-rebar3) + (let ((erlang (resolve-interface '(gnu packages erlang)))) + (module-ref erlang 'rebar3))) + +(define (default-elixir) + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir 'elixir))) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. +NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + ((compose + (cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar") + (cute string-replace-substring <> "-" "_") + strip-prefix) + name)) + +;; A number of environment variables specific to the Mix build system are +;; reflected here. They are documented at +;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other +;; parameters located in mix.exs are defined at +;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration +(define* (mix-build name + inputs + #:key + source + (tests? #t) + (mix-path #f) ;See MIX_PATH. + (mix-exs "mix.exs") ;See MIX_EXS. + (build-per-environment #t) ;See :build_per_environment. + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + (modules '((guix build mix-build-system) + (guix build utils)))) + "Build SOURCE using Elixir, and with INPUTS." + + ;; Check the documentation of :build_per_environment here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And + ;; "Environments" here: + ;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments + (define mix-environments + (if build-per-environment + `("prod" ,@(if tests? '("test") '())) + '("shared"))) + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:mix-path #$mix-path + #:mix-exs #$mix-exs + #:mix-environments '#$mix-environments + #:build-per-environment #$build-per-environment + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (lower name + #:key + (elixir (default-elixir)) + (elixir-hex (default-elixir-hex)) + (glibc-utf8-locales (default-glibc-utf8-locales)) + (inputs '()) + (native-inputs '()) + (propagated-inputs '()) + (rebar3 (default-rebar3)) + (tests? #t) + outputs + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + (let ((private-keywords + '(#:inputs #:native-inputs + #:outputs #:system #:target + #:elixir #:elixir-hex #:glibc-utf8-locales + #:rebar3 #:erlang)) + (build-inputs + `(,@(standard-packages) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("erlang" ,(lookup-package-input elixir "erlang")) + ("rebar3" ,rebar3) + ("elixir" ,elixir) + ("elixir-hex" ,elixir-hex) + ,@inputs + ,@native-inputs))) + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs (if target inputs '())) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower lower))) + +;;; mix.scm ends here diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 000000000..fe2e36d18 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,161 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build utils) + #:use-module (ice-9 ftw) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 string-fun) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) + #:export (mix-build + %standard-phases)) + +;; The Elixir version is constant as soon as it is computable from the current +;; execution. It is a X.Y string where X and Y are respectively the major and +;; minor version number of the Elixir used in the build. +(define %elixir-version (make-parameter "X.Y")) + +(define* (elixir-libdir path #:optional (version (%elixir-version))) + "Return the path where all libraries under PATH for a specified Elixir +VERSION are installed." + (string-append path "/lib/elixir/" version)) + +(define* (strip-prefix name #:optional (prefix "elixir-")) + "Return NAME without the prefix PREFIX." + (if (string-prefix? prefix name) + (string-drop name (string-length prefix)) + name)) + +(define (mix-build-dir mix-build-root mix-env) + "Return the directory where build artifacts are to be installed according to +en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the +package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables" + (string-append mix-build-root "/" mix-env "/lib")) + +(define (elixir-version inputs) + "Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE. +Example: /gnu/store/…-elixir-1.14.0 → 1.14" + ((compose + (cute string-join <> ".") + (cute take <> 2) + (cute string-split <> #\.) + strip-prefix + strip-store-file-name) + (assoc-ref inputs "elixir"))) + +(define* (unpack #:key source mix-path #:allow-other-keys) + "Unpack SOURCE in the working directory, and change directory within the +source. When SOURCE is a directory, copy it in a sub-directory of the current +working directory." + (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) + (gnu-unpack #:source source) + (when (file-exists? "contents.tar.gz") + (invoke "tar" "xvf" "contents.tar.gz")))) + +(define (list-directories dir) + "List absolute paths of directories directly under the directory DIR." + (map (cute string-append dir "/" <>) + (scandir dir (lambda (filename) + (and (not (member filename '("." ".."))) + (directory-exists? (string-append dir "/" filename))))))) + +(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys) + "Set environment variables. +See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables" + (setenv "MIX_ARCHIVES" "archives") + (setenv "MIX_BUILD_ROOT" "_build") + (setenv "MIX_DEPS_PATH" "deps") + (setenv "MIX_EXS" mix-exs) + (setenv "MIX_HOME" (getcwd)) + (setenv "MIX_PATH" (or mix-path "")) + (setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3"))) + +(define* (set-elixir-version #:key inputs #:allow-other-keys) + "Store the version number of the Elixir input in a parameter." + (%elixir-version (elixir-version inputs)) + (format #t "Elixir version: ~a~%" (%elixir-version))) + +(define* (build #:key mix-environments #:allow-other-keys) + "Builds the Mix project." + (for-each (lambda (mix-env) + (setenv "MIX_ENV" mix-env) + (invoke "mix" "compile" "--no-deps-check")) + mix-environments)) + +(define* (check #:key (tests? #t) #:allow-other-keys) + "Test the Mix project." + (if tests? + (invoke "mix" "test" "--no-deps-check") + (format #t "tests? = ~a~%" tests?))) + +(define* (remove-mix-dirs . _) + "Remove all .mix/ directories. +We do not want to copy them to the installation directory." + (for-each delete-file-recursively + (find-files "." (file-name-predicate "\\.mix$") #:directories? #t))) + +(define (package-name->elixir-name name+ver) + "Convert the Guix package NAME-VER to the corresponding Elixir name-version +format. Example: elixir-a-pkg-1.2.3 -> a_pkg" + ((compose + (cute string-join <> "_") + (cute drop-right <> 1) + (cute string-split <> #\-)) + (strip-prefix name+ver))) + +(define* (install #:key + inputs + outputs + name + build-per-environment + #:allow-other-keys) + "Install build artifacts in the store." + (let* ((lib-name (package-name->elixir-name name)) + (lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name)) + (root (getenv "MIX_BUILD_ROOT")) + (env (if build-per-environment "prod" "shared"))) + (mkdir-p lib-dir) + (copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir + #:follow-symlinks? #t))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (add-after 'install-locale 'set-mix-env set-mix-env) + (add-after 'set-mix-env 'set-elixir-version set-elixir-version) + (replace 'unpack unpack) + (replace 'build build) + (replace 'check check) + (add-before 'install 'remove-mix-dirs remove-mix-dirs) + (replace 'install install))) + +(define* (mix-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + +;;; mix-build-system.scm ends here base-commit: 06f25a9a85be1bbe7a709e58ce41c1a834e5f1ae -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 05/15] gnu: Add elixir-makeup. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221351321093 (code B ref 66801); Sun, 10 Dec 2023 13:06:03 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:13 +0000 Received: from localhost ([127.0.0.1]:49705 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUf-0005U1-AL for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:13 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:52657) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUa-0005SY-TR for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:10 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id E447560004; Sun, 10 Dec 2023 13:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IuIZNM6+l/ZjPpcWV6SD+3BLUsHVurl6iWBTeRBTii0=; b=cClHSo9EVFeh4pYHlj0gSmnmV6WTnQ9SxlzLQpctsUnrhyUIvy9Yvq/REBpeDHhrDMlKMZ rXpolCdt4IZpZ7VAaGefqkRHCFSSV05ZwMeLJlGqXnHrXg7FXXVSkndCSlqvbDUwdziy/K beBlvtgS+cs5ODGtRItKEQPK5E8QN+ePH4zXetgn5KuCyMrLcQT/ra5GPs4FmJn9V3bGhJ xX4RwOYEcrAhexZqO0UlcugYX+okQKcIA++aCFNeP8F1DQVYYxg+VYPFG48fGnjznJ44f2 fImoRyZsEccWxFDXUVEIX3lAWOj2wYwR1HhNzd1rtffjAD/1NWK4SclJ3eqvAQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:58 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-makeup): New variable. Change-Id: I21fe9ffddb4c95a2c67b74340b1105c2a54d3c82 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index a57d2aae8..ba682e7f0 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -50,6 +50,26 @@ (define-public elixir-nimble-parsec (home-page "https://hexdocs.pm/nimble_parsec/") (license license:asl2.0))) +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 04/15] gnu: Add elixir-nimble-parsec. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221351921139 (code B ref 66801); Sun, 10 Dec 2023 13:06:04 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:19 +0000 Received: from localhost ([127.0.0.1]:49717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUk-0005Ur-Pb for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:19 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:52157) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUa-0005SW-AS for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:10 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 5BF3D60002; Sun, 10 Dec 2023 13:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213488; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=q2j8S49b7JdscYSJODSQeK0o4ZUkCaKAQT0ouXp7qy8=; b=DGhGv/d3dKI+zZyeo0Nt43FYdCpuKQEUDuDRd9p5vKycpzSfXQJwQAptS7rk1XZhxHrDOa RWfKN4mDcoSI2csxmC4Qc0cssPmbm3SmWKwr5FPAXaZuyJpFGZgbUDVGLO73SEpmu3Ovdq s+IRx8LjWj8AzToT5egjrIaOm8owjW7/BM+JxCwrPwGE15ZXLzlyMLySfhvSjttps9mLW4 nPub6XH/k8DNzzgFrzAKrbZh31jjPoWgdy7DLMYsCmQX1ri4eJouYIc2A3CWMEtwUQ5qiL 4EylR9eFgQdFG+lwWObYyyherhDygn4orpaECmebiHvDIXY2Ynzdh0uxSfKkOw== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:57 +0100 Message-ID: <1a79581a3077934d47724350905d766f267b2616.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-nimble-parsec): New variable. Change-Id: I79bab8095aee3212bc295354ead55df49ef92d17 --- gnu/packages/elixir-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gnu/packages/elixir-xyz.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 000000000..a57d2aae8 --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages elixir) + #:use-module (gnu packages linux) + #:use-module (gnu packages) + #:use-module (guix build-system gnu) + #:use-module (guix build-system mix) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 06/15] gnu: Add elixir-jason. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353421170 (code B ref 66801); Sun, 10 Dec 2023 13:06:04 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:34 +0000 Received: from localhost ([127.0.0.1]:49719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUl-0005Uv-9f for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:34 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:40465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUb-0005SZ-FN for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:10 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 84FFF60009; Sun, 10 Dec 2023 13:04:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0CtJ5NiWX8N9W23Kx1XPu2FtVmw2QEbTUhWULvcqdY8=; b=mNbbt4Dvb3biKLCynRMlxgjMdV1+tA2DzxtWYAPT6AlK0eA3J+oIc2UY6r0J+CNxyQACbM Uq09S/SEMqjtiQSmF+Vj91XdyoVXY4FB/K0VMK0XGM/e8SNEXvJgJy0VwhL/ANdFD3FpHw kpDWXBkC+GBV3NbWzKGcIt5aC1tLEXc9Dxi63g4d8l1mFOlEGwVWysa52tJhnhNlnhvChk qsdOaC/VykL5I5535RwzcxcJ/VoolRp9+RBeLd/rNVfKDBiMmgAK5PIgueX6GDA0/ONYQU 0Vbh5V+Rn0fCiIeNp+5MTZUtVp/e2PjUbaIMF6pEbvLcQG0qu2dAmMyTK97jng== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:03:59 +0100 Message-ID: <5fea7cd56bdbfa8e16bb3e57878a5a1fa947fc40.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-jason): New variable. Change-Id: Iadd816e2b5db6d146728aacb4d6b2c66aba4304c --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ba682e7f0..66c364fb3 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -70,6 +70,27 @@ (define-public elixir-makeup (home-page "https://hexdocs.pm/makeup/") (license license:bsd-2))) +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 07/15] gnu: Add elixir-file-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353521179 (code B ref 66801); Sun, 10 Dec 2023 13:06:04 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:35 +0000 Received: from localhost ([127.0.0.1]:49721 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV0-0005VP-EH for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:35 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:48565) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUc-0005Sb-2c for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 23A0760008; Sun, 10 Dec 2023 13:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JJzE+L1BHfUuYqHiljbDpYHxWMEMwXrexKwheDTS/B8=; b=aXU1UdzJC3RX81142lhN7GHlCP/9wJ7dZMp4gXt2+bXpXNpM4l0c61nNBjb43bMerDZxMO yGIh/FUZcaCnu+MXDkZCZoCDn6coWsU1b/jqC0kN7ROr7giW1QrXKW32kAoYwmsp9mzWzJ ywU8+BEyuJQN2Zab9rKXGJG2F2PXLcAF2770IqQJdIW3EbJTP+aNYhRPJkBGzzxvvoj+b5 N6ojYO5qEHTV3XQ+MsWAJ5Xh37hGpphSGmlRDm7dywu8hO+YLYcU9GVTZ7KFENs5pygdgM TItpm0SyI89RUr80f9n1nfr/DaUg/iJ/zH+F0PxBKuu+78qlXTiqFN9cH4oh8w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:00 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-file-system): New variable. Change-Id: I54e9c9069ddf150bb0c882775b0b2c9d5e59abd6 --- gnu/packages/elixir-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 66c364fb3..948d8aecc 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -20,6 +20,8 @@ (define-module (gnu packages elixir-xyz) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages elixir) #:use-module (gnu packages linux) + #:use-module (gnu packages compression) + #:use-module (gnu packages base) #:use-module (gnu packages) #:use-module (guix build-system gnu) #:use-module (guix build-system mix) @@ -91,6 +93,37 @@ (define-public elixir-jason (home-page "https://hexdocs.pm/jason/") (license license:asl2.0))) +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")) + (snippet #~(begin + (use-modules (guix build utils) (ice-9 ftw)) + (mkdir "source") + (for-each (lambda (file) + (when (not (member file '("." ".." "source"))) + (rename-file file (string-append "source/" file)))) + (scandir ".")) + (with-directory-excursion "source" + (invoke (string-append #+gzip "/bin/gunzip") "-v" "contents.tar.gz") + (invoke (string-append #+tar "/bin/tar") "-xvf" "contents.tar") + (delete-file "contents.tar") + (delete-file "priv/inotifywait.exe")))))) + (build-system mix-build-system) + (propagated-inputs (list inotify-tools)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +https://github.com/synrc/fs.") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 08/15] gnu: Add elixir-bunt. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353521186 (code B ref 66801); Sun, 10 Dec 2023 13:06:05 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:35 +0000 Received: from localhost ([127.0.0.1]:49723 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV1-0005VY-Ak for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:35 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:49721) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUc-0005Sc-P8 for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id AD5A16000A; Sun, 10 Dec 2023 13:04:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=atNFgxwPUeFCNaRVDDOT1qn5SUmPwJv9HHIaV/8CIZc=; b=YMAdJ+agY3urp7U+lbSh8MqvojbI9chR5stsTR4MIWVtfv7YAPPAWMk8h8kRkPgrqI3NJQ SN+oHY7KQ7d2ADDe7aS3f2Gekg5IS+4HqLRbcZnrfzRqzywFbenfhtpOYoQEREB9iTj4oR RsRVjP35SEUQ8qUWEi02iYe/ZjQzAIzvkj1pDI2S0wr3nQ6cKVCoSyDV8ODyvDd44Ba6kf kvA+7hfT5uu4HkRY5M70Hn+KE6Cf9kUR2mbl0FCghWgBBEoImmRhZOaaC9jmcK/0ikcRUW Mira1BS7gOesd3fLU1KEaUvS9t3vb5Hnf8vBHzPwQZ+rxcPS18GUFLEOVgU9SA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:01 +0100 Message-ID: <3fe0d073162e1e3b45cdc073c9377570637d8c29.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-bunt): New variable. Change-Id: Ib84797c31d6ab40d59b87b040993dae9391ead6b --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 948d8aecc..33fa20749 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -124,6 +124,25 @@ (define-public elixir-file-system (home-page "https://hexdocs.pm/file_system/") (license license:wtfpl2))) +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "256 color ANSI coloring in the terminal") + (description "Bunt is an Elixir package that enables 256 color ANSI +coloring in the terminal and allows users to alias colors to more semantic and +application-specific names1.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 09/15] gnu: Add elixir-inch-ex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353621194 (code B ref 66801); Sun, 10 Dec 2023 13:06:05 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:36 +0000 Received: from localhost ([127.0.0.1]:49725 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV1-0005Vk-P1 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:36 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:34295) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUd-0005Se-Bm for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 65F036000B; Sun, 10 Dec 2023 13:04:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mnPn/GhIdzuC0/rXkageLRyTdOXx/45uRpDIpE6OQqs=; b=WB0aodI+s5Divzyz4qM2km4CN/y0ymDRcd4G9y7oK6CijTsT8Lb+uRaEk54YwgozXlesmd /XJGN135uae1Ygo3ubUiKmVazTSXZC5k+XQJefANRQXrpZg8S/LqtTYjPuwY4To8PFJ9q7 LNh+8lRBvUvNt2b3jwQASbWTLqiXLcW02m5Sf9YBUeDZNi6WR79StccQEV0sZ5oEhaQ/31 3kYu9cWYEPuQHNmTdbLQOYTfBciQtLJhCvT+cGgM3jlxcN9BYS1HF9YiadnZizXt6WNHNC PmZhlOKlf36o/fnGTCGP9fNFQh9s0soy7NDOYFyYizUE5fRHYnSFi0MydCTkyg== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:02 +0100 Message-ID: <7c84f0e99bb2475d03aa95a6f7db1781704ae97a.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-inch-ex): New variable. Change-Id: I6e98424528a0264a2587d28fcf065fa74eff0f1a --- gnu/packages/elixir-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 33fa20749..ed61cac50 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -143,6 +143,27 @@ (define-public elixir-bunt (home-page "https://hexdocs.pm/bunt/") (license license:expat))) +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Suggest enhancements for inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 10/15] gnu: Add elixir-castore. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353621201 (code B ref 66801); Sun, 10 Dec 2023 13:06:05 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:36 +0000 Received: from localhost ([127.0.0.1]:49727 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV2-0005Vn-5s for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:36 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:38529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUd-0005Sf-U8 for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:12 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id F1DDB6000C; Sun, 10 Dec 2023 13:04:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2lxbtLcERBkuAb5YQT8JMwuJ62GSGxcP9FgnQ6qEpnI=; b=fF+/2Ba5f8ERIKdOjVla0R+Rwelt80c5mPD+CY8c3KD+yrjeybQcDDGAiQU2lxJEsqmYLf zB8QrdAryYYrFgB2cqFQ35azkUZm7wt46tby/ees2r2A2bGa/xBL45lIjbHqi2mYhpN+4E 1H5pbmaYHZGxj28xiiC+ZnkquYNE/EpZS4v07oNhssJVCwm0iYvvbgtFJC/EcidzShTOYK xagY5eea/KMv5bm0LZ/+BmIJFPeWZOXLGO/1YJ9rtWREuCNWmk+XZoIIF/OIJlPFU/t+vi DT1uzB2JalhigG7f/zdI3COBxaHakeNaujjX0JdSNnzn17jGpHw2mqitTA0kow== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:03 +0100 Message-ID: <62bd0ee94572be47e6aba91b9ee333bcf60d3eb1.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-castore): New variable. Change-Id: Iea1fea8241d19ff35a183af9c3fbf2ed5198a259 --- gnu/packages/elixir-xyz.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ed61cac50..ef80c9550 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -164,6 +164,24 @@ (define-public elixir-inch-ex (home-page "https://hex.pm/packages/inch_ex") (license license:expat))) +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Up-to-date CA certificate store") + (description "The Elixir castore package is a micro-library that provides +an up-to-date CA certificate store file for Elixir applications.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 12/15] gnu: Add elixir-credo. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353721211 (code B ref 66801); Sun, 10 Dec 2023 13:06:06 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:37 +0000 Received: from localhost ([127.0.0.1]:49729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV2-0005Vu-Id for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:36 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:42745) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUg-0005St-Mv for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:15 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 34B126000E; Sun, 10 Dec 2023 13:04:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213493; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qVlDH9Ev8f4Ph54IYfEq6VGZMlVVryk95eZEsV2DqMk=; b=Xwo0NsiEIr3Auuva3hxW0gnwg/tNleqINVbW1G9EEzdn9njEHXeWdIwp1NLh7HTpAPwzzB zUX42RJoFR0Qp+rc6ZN5TDSKXahMisucZsac+IEeZcQFV67fhkoVcDS+1tn9gQExCtGF6/ pWxST7g16GOJL/f8RkZJAO/KETNtviNN0r5k41ijDFOQqMj9OF1mnrM4GAWtTa+vKhO4fy hCdGaqOhZD4cURXWDZbjr9X5UqsngjaoQsXQ7r/kcn4rXCvZSMqW5ij+twEUgGTmqfYUBO Ce4DM6MuzeAtzXqaGCVuYkmkKdMKaBxwp03evZsynNnr5SP8tlUrPvpL7mHd/w== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:05 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-credo): New variable. Change-Id: I6df0d926e0fb96caa65d081892026b3495431c83 --- gnu/packages/elixir-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 14e67060e..8485355e4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -204,6 +204,30 @@ (define-public elixir-excoveralls (home-page "https://hexdocs.pm/excoveralls/") (license license:expat))) +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 11/15] gnu: Add elixir-excoveralls. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353721218 (code B ref 66801); Sun, 10 Dec 2023 13:06:06 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:37 +0000 Received: from localhost ([127.0.0.1]:49731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV3-0005W3-06 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:37 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:57779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUg-0005Ss-N6 for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:15 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 8E0066000D; Sun, 10 Dec 2023 13:04:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NdJvt9D3NBlwyRoldTtQTwYbeowTwfL61AZJliLuBaA=; b=bRYsHjHS8xs9htqr9c+/nCZXll3GjkXdKVa5KDHNL+rafR47nMXpBUN1F57czmJ3VvnRmb kfeGVuxL7NgLk06mjRs756NEOyH23KaWSysXTSO14j6P8ajhtCSAeFamDGOdaUozy+ByXb mTIXW6buWQgQB37oUNiRJqSJVwzIlcBi7C5gmeli30QRY+Ay34pMvcjEL/kP88NuNzEtn2 CfRkYGVlmubLU8wHG7a2pxLGP6N7UzjgUVk/qtgn5IRWfb02ZFORqaA4aMG2/PVCXS89t/ uTF0mrqNLJel3ISH3ZQU2rNyxQUxPuc5Hma/3V1US4e9tr6mW5uakHDZ3c5jrA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:04 +0100 Message-ID: <54072ed5059c7da6c29e804b7b4f50205c06b97e.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-excoveralls): New variable. Change-Id: Ib271d8a7393e21178806df28ab892afe99757297 --- gnu/packages/elixir-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index ef80c9550..14e67060e 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -182,6 +182,28 @@ (define-public elixir-castore (home-page "https://hexdocs.pm/castore/") (license license:asl2.0))) +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + (arguments (list #:tests? #f)) ; no tests + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 13/15] gnu: Add elixir-erlex. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353721225 (code B ref 66801); Sun, 10 Dec 2023 13:06:07 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:37 +0000 Received: from localhost ([127.0.0.1]:49733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV3-0005WB-DU for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:37 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:53927) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUh-0005T4-6O for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:16 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id C703E6000F; Sun, 10 Dec 2023 13:04:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Ftx1qjEuaunA+B2GAc2zoFCkFN1UMK37CxV6C5olNI=; b=pov5juqxDyBj0hd1KwWz2+QVWB6itxSOGHLXQf6WED7L2XAkDbsshIaHoNhrkd/3GUqCWr 2zYhumy4j+BrpeG62PXkttV44Zb6hYbAHaIeOTgnrFpmYgJFbPlysMn2i7Gn5aRwzhxP+y 7d2pj6QHpnM8URqoce4iBDlfzohednU2xlCf9WqsURqk+W2dDgHr6kxEnBxseCUuDJ//IG D3csNlJspiHtjeh9v5D7MjeXzYjTIgWi6zyQQPIXrKaUnwJdJxt8fXQP3er92OdZnJidKK Cbh1j22J+/P5FrwPKrFiyUWpif+2pugg2GDAg9qK4Sh1DEwG2jDojpSgh65NgA== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:06 +0100 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-erlex): New variable. Change-Id: Ia518ad5fd32d3f5942b20113e61e4ef7e7895ff3 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 8485355e4..df4328430 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -228,6 +228,26 @@ (define-public elixir-credo (home-page "https://hexdocs.pm/credo/") (license license:expat))) +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing +things like Dialyzer errors and Observer.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 14/15] gnu: Add elixir-dialyxir. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:07 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353821233 (code B ref 66801); Sun, 10 Dec 2023 13:06:07 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:38 +0000 Received: from localhost ([127.0.0.1]:49735 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV3-0005WI-Qc for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:38 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:46905) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUh-0005T5-6d for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:16 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 5ED3B60010; Sun, 10 Dec 2023 13:04:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NbHgk3mPlBbQ6MVwIAG13PVDjB//9EK7ZWUs8QpJcPs=; b=YaaeNHdb73W45qkivBNPX71mNtgBurDnJ7IamfWZsN0c0RR4/oOtllstAEVT69KomWkDDI 77K/3u9AS5EdSYz6Q+OBt+Q0UBqUHtfZzTD62+oIMcJ0E8x6M0abge1WUG7BfnaF2UUkoz IHzq4LbAZcuVxHCRac1zuvPxztHMs6WmUbK9FW9NnZchToSO56CFthl9seykK9sToH74ku byzgUtmJ9RsV2mJD5/oAXPqlVJf2Mn7JV8QNJIbKLabMcueJVIXnxlskDyAdS6+0QUPYRl JRprWyOCKImtByCP6wLRw7A4lNa82eGXSWEAccBS6ruPeRkB6DgyxiXsgJgcFQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:07 +0100 Message-ID: <4e0c21a633c6100241ea5241762c2d43571d7a49.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-dialyxir): New variable. Change-Id: I387062e0aaaded448022aa7534b95859b5979a06 --- gnu/packages/elixir-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index df4328430..5a7330ca4 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -248,6 +248,25 @@ (define-public elixir-erlex (home-page "https://hexdocs.pm/erlex/") (license license:asl2.0))) +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments (list #:tests? #f)) ; no tests + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 15/15] gnu: Add elixir-machete. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:06:08 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: liliana.prikler@gmail.com Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221353821239 (code B ref 66801); Sun, 10 Dec 2023 13:06:08 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:05:38 +0000 Received: from localhost ([127.0.0.1]:49737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJV4-0005WQ-87 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:38 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]:52869) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJUh-0005T6-72 for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:05:16 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id EBA4D60007; Sun, 10 Dec 2023 13:04:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213495; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=40bazcFlVz47TUy487Ehdl02MrfpYshiYDkjrIkrVKw=; b=NhK3TeSB2FVW1m0GDYyotrNWibC4AjQ/bF7mNSXqnRC11v/dDRM4aE+HfEwpfGxelPRLuF 13xtwxIIxYTU4NuYALSU2LB2I+Pe6Gkr/qMyOdB8eZbDSw9/sSUSEbT0TbTxXBcLe7wh9q P2vpEA3aGOwQ1Yoa6OvMURHjXlilfJHXzuBZ8Psdcp4EWTxnOynKmx3h/PXk3idtJrKPn3 qjH7q64BUgDXATU3yGYv9psOyfu6yGXD1UETrbLOFO1oxVHkthiGCBNInK3T9Yd8KkFxa6 /fJHXl0JZnQB/8AksXPwLTZvaOLGKJ6k59FypI1VP60i25sabxe5CXUMmCHdnQ== From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:04:08 +0100 Message-ID: <9ab5d8e0ebdaea167df3266a1f823ccf6b9f6b38.1702212039.git.contact@phfrohring.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) From: Pierre-Henry Fröhring * gnu/packages/elixir-xyz.scm (elixir-machete): New variable. Change-Id: I76e0fd78aeeaeaa94a297032b3b309846510c975 --- gnu/packages/elixir-xyz.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm index 5a7330ca4..5af8d7c1b 100644 --- a/gnu/packages/elixir-xyz.scm +++ b/gnu/packages/elixir-xyz.scm @@ -267,6 +267,26 @@ (define-public elixir-dialyxir (home-page "https://hexdocs.pm/dialyxir/") (license license:asl2.0))) +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.41.0 From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] Erratum References: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> In-Reply-To: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 13:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221375421717 (code B ref 66801); Sun, 10 Dec 2023 13:10:01 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 13:09:14 +0000 Received: from localhost ([127.0.0.1]:49766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJYX-0005eC-Og for submit@debbugs.gnu.org; Sun, 10 Dec 2023 08:09:13 -0500 Received: from relay2-d.mail.gandi.net ([2001:4b98:dc4:8::222]:56193) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCJYT-0005dw-Qx for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 08:09:11 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9431B40002; Sun, 10 Dec 2023 13:08:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702213728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ia9+noA++y/SgSM9PNq3VjNCnT7DV0PqFO6NsAYq7i4=; b=IC6wFbW6GB7zR60VCi2DtbREkWfEGzx9wbDFJrnShNBd9RFpPXRTEJwqWCa7qfIf90QMfL hKBxMlcHa7x/mWAIJn0suZU/9x5x1s8QQUsUMe9M7/9sdWXxOrW7fF7SI7Cdfgek+wAuTD 7ikTizkeco519LCcCz+Ca70sDyY0BcrMJJsQ1tCKIpp+/95sgQqDzNzo6eNPcl0xDpU1cB GvojXpM61/ma6UTYYZS5US/PIl+6XGoYY9QugTbZGQ3SK8E8SRvk96vMNZuOLZP4djvaKW I1p4+ndIFO0SW3wot147BH44oAvakUd9iOjU7xz/pMJmwwwirtsMs0Xh24m+NA== User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 14:05:59 +0100 Message-ID: <8734waw6g0.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) VGhlIHBhdGNoZXMgZ28gb24gdG9wIG9mOg0K4pSM4pSA4pSA4pSA4pSADQrilIIgMDZmMjVhOWE4 ICogb3JpZ2luL21hc3RlciBnbnU6IHhyZHA6IFVwZGF0ZSB0byAwLjkuMjMuMS4NCuKUlOKUgOKU gOKUgOKUgA0KDQpTb3JyeSBmb3IgdGhlIG92ZXJzaWdodC4NCg0K4oCTDQpSZWdhcmRzLA0KcGhm DQo= From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 01/15] build-system: Add mix-build-system. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 14:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221803029001 (code B ref 66801); Sun, 10 Dec 2023 14:21:02 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 14:20:30 +0000 Received: from localhost ([127.0.0.1]:49811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCKfW-0007Xh-Ab for submit@debbugs.gnu.org; Sun, 10 Dec 2023 09:20:30 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:42080) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCKfR-0007XN-ND for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 09:20:29 -0500 Received: by mail-wm1-x344.google.com with SMTP id 5b1f17b1804b1-40c38e292c8so7930365e9.0 for <66801@debbugs.gnu.org>; Sun, 10 Dec 2023 06:20:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702218005; x=1702822805; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=uOydm4bf7Trja1y1LPlwr5Aj/deT57OLskg4Jou/++k=; b=cIctJomjwpU/MjcWpSLsNZSgIHi38QGs+Esbywe3pXt9b6odkiTyfCz1QNj2fOmOkz YfUXmkXJfnWWUeyHWsuUV7D3Um0SGL4eXfWwmrzmgLOXGtXXXwJ1zo1CKHz5+vZ9gcQY ebnOrk3+k+Dbw+3JTUrTDoLtUfzzsKNz8+v7Krim47ZQMbhlNTGWMteFyw5HSSK9FCCg V8d4/pAOiOjqZvEzFQdZjGcfLObTSJ49lCJfA0k7O0KTIGxwiNfOhBfFv1QlBix3JNL/ So6sJ1xs8gfuSyZtqtjQT//F49IkUpEACu4rbcVFZugvjiF4BsXxwSoGwnV8o1TF+KwM /DAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702218005; x=1702822805; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uOydm4bf7Trja1y1LPlwr5Aj/deT57OLskg4Jou/++k=; b=Te5Ni7TDtUlZlQFxak52a9fYKHhCtt+YBqRY/Z4dzjOFUn3IKRn2kJmSYMY15OIdu4 spRWK5zVvnj60qrQf2h8PCYNwhws2RAs9qxl8V8eUFrFbIeviGs37SIM4KakXt96LUW4 8AGxoKUMxIvjOSUN8kMn35GJxIgA+ljM33Gw5+GwvooXUU+CicDz1gMGtfqIib+Y/v0f MWsbsrmvDtq+DNI0hT2NjHmY6xbgjEIXIU2PNYnz5uf2Mk1knaeSnIN2jbKNxDP180/q 0eRL437Wjd/fdDjGl34gOClm4oOYHe2NdVHCcZkCtZeBSpf/Kn1WuTXitPme2OSLCoWm mTww== X-Gm-Message-State: AOJu0YzE8Ls6Il/oOV/ZV2kVcUQymqnQAw1v7h+tPGR77Tr1uU2Zq1cx vPNWQiFy8i/WCzr6ZBRA9pQ= X-Google-Smtp-Source: AGHT+IH9ht+GR2XP7dCZ9nUxCCru1oaukU/QULsi3Wx5gVg823ij/AS4fkvRWw/cwqxgxFUysR4hsw== X-Received: by 2002:a05:600c:1911:b0:40b:5e4a:233c with SMTP id j17-20020a05600c191100b0040b5e4a233cmr1447664wmq.62.1702218005257; Sun, 10 Dec 2023 06:20:05 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id z14-20020a05600c0a0e00b0040b3867a297sm9874093wmp.36.2023.12.10.06.20.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Dec 2023 06:20:04 -0800 (PST) Message-ID: From: Liliana Marie Prikler Date: Sun, 10 Dec 2023 15:20:03 +0100 In-Reply-To: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) 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 (-) Am Sonntag, dem 10.12.2023 um 14:03 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > * guix/build-system/mix.scm: New file. > * guix/build/mix-build-system.scm: New file. >=20 > Change-Id: I8066d00f7ada4a384621bf541e679bc512e93435 > --- I have this series with some changes to the commit logs on my local master branch right now. I'll leave it up for a week for further comments and push afterwards. Thanks for your patience. Cheers From unknown Sat Sep 20 13:52:03 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH v5 01/15] build-system: Add mix-build-system. Resent-From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 10 Dec 2023 14:30:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler Cc: 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.170221857830043 (code B ref 66801); Sun, 10 Dec 2023 14:30:03 +0000 Received: (at 66801) by debbugs.gnu.org; 10 Dec 2023 14:29:38 +0000 Received: from localhost ([127.0.0.1]:49834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCKoL-0007oV-Sv for submit@debbugs.gnu.org; Sun, 10 Dec 2023 09:29:38 -0500 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:34435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCKoJ-0007oD-RE for 66801@debbugs.gnu.org; Sun, 10 Dec 2023 09:29:36 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id CA6AEC0003; Sun, 10 Dec 2023 14:29:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=phfrohring.com; s=gm1; t=1702218555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=66mnMHG4hy37kGR6xAB08DGtfZMLjHiOvCrGPExxiyo=; b=nObxcGXKf0+lkCOs7Jct/HjaqVeLO+1P84gjyQnRWLL4IoV7gqcouQWwuXyZzkm4Cf1Hko x5RPoyD1UV+d3mkt+blVIZiQI+x375t7FXeb+2lvrO3j4I7VtijvhFMs/Um/B+xw/pVlOS 9w60qvjixAmkOAQByM5v+kt4gDIpXGvz/dEand+PpCsM1KtIEyos9fD8AD3RdZTsH6h0t2 HCDfA+CAP5IuYhkMaJubF6a51/r95ALlb1Eo4ri6qlVof+GlUlzIyHMlUqO+n4kZEGR1IJ 4yxA5GKix9NoRL9u0Pr94LkfyI8owV1NhGTtuybfDbSZP7nUaJ1Sx5OIxBfT/A== References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Date: Sun, 10 Dec 2023 15:22:48 +0100 In-reply-to: Message-ID: <87y1e2uo5h.fsf@phfrohring.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: contact@phfrohring.com X-Spam-Score: -0.7 (/) 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 (-) OK! I'll continue as planned: 1. The Rebar build system will be revisited. 2. The Mix build system will be enhanced so that Phoenix builds. =E2=80=A2 Since a few (possibly transitive) packages depend on Erlang co= de, we will determine if the implementation strategy discussed earlier is eff= ective. I will wait for your comments before sending more patches. Have a great week. =E2=80=93 Regards, phf From unknown Sat Sep 20 13:52:03 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= Subject: bug#66801: closed (Re: [PATCH v5 01/15] build-system: Add mix-build-system.) Message-ID: References: <018590f364e74c827a5d3f667d00d587417b307c.camel@gmail.com> <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> X-Gnu-PR-Message: they-closed 66801 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 66801@debbugs.gnu.org Date: Mon, 18 Dec 2023 03:02:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1702868522-25222-1" This is a multi-part message in MIME format... ------------=_1702868522-25222-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #66801: [PATCH] mix-build-system: draft 1 which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 66801@debbugs.gnu.org. --=20 66801: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D66801 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1702868522-25222-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 66801-done) by debbugs.gnu.org; 18 Dec 2023 03:01:24 +0000 Received: from localhost ([127.0.0.1]:59240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF3si-0006Xl-17 for submit@debbugs.gnu.org; Sun, 17 Dec 2023 22:01:24 -0500 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]:50277) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rF3sf-0006XW-LU for 66801-done@debbugs.gnu.org; Sun, 17 Dec 2023 22:01:22 -0500 Received: by mail-lj1-x243.google.com with SMTP id 38308e7fff4ca-2cc61d4e5aeso13256521fa.0 for <66801-done@debbugs.gnu.org>; Sun, 17 Dec 2023 19:01:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702868474; x=1703473274; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=6CkgynXOf+kVBERzenN4ZkDPOsApwqt1hRmyzc8NAEw=; b=iHo57ArslGpxL3DJNevt8uf6uhrmxxPW+PC3i3lrtjRC4asYW2jcyrB8TYYRfEqbbg DQh9OGOaVPBuAPif0IUcyE7ePCSoGSx54I0CmhIRMbS+A7MS5EKZjvDnjKvJD/cZdQx0 jC+l0MS3uRqcXEkSj1CxX8aH5f98qySzNqyamObv5AFNYbCKllb5titl1xjySjIBtyAN iSc2kf7BVUbzOLSz3lJKrKJwdeLZVpx0ooEHPZjIdT02GGtLkTgCUq6dsI7nk1Qeo6tP mqKZvdtdG+HvQVQ+bmyWg6UlYw+GsqqdDKbetE1J4HXgY39btX1xxwCM7ziaBQHAm3+n IZ2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702868474; x=1703473274; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=6CkgynXOf+kVBERzenN4ZkDPOsApwqt1hRmyzc8NAEw=; b=DVRpJLdXvnbOzZ5V1KqFdcwEZBjnQxCsFpLIx311lwpLHNllrHXjfu9Q+E8roGrxXx ScWRgY8nLPhXRfeX2ovBfoHfrXFJ3R+Pfy77fDZreobXFLsUesytDcJlm51R1ZIjejvJ ETqVKCvlckziy8pSNhNUIJGCGK32Bi0FgZIVb9tOxpcQEWZ+LMRj364b8LaD8wgz1lTw WWIgN7eJ5yITiGzrOR3FTanj9kjWo/nKZkBdGBTUBg7EhQ2UfoKnjdWDpEDBAmx/hUOx 1UUqwuPRXzoTgVTp60JO3YAoQ3TIxR7x0GVWe3jLuR6iFjKbG3FD9eASFchx1MQcAUgz ek3w== X-Gm-Message-State: AOJu0Yz10iFF+rQfiQPlzTMKhdwm81rHqtu2pFQkrdk0Tw5RAIZxD5Dg HRPn+mocKRnL8c3/fZ101VRwCIQiZW/sGA== X-Google-Smtp-Source: AGHT+IERYAUJRjcUPdQHfrazHX5TAdJEn+gMhlXKLXJdgQRBUy1mZW0OHNfPMK9paOOuTcu6NexHcw== X-Received: by 2002:a2e:bc22:0:b0:2cc:5ab2:7f4a with SMTP id b34-20020a2ebc22000000b002cc5ab27f4amr1802854ljf.58.1702868473691; Sun, 17 Dec 2023 19:01:13 -0800 (PST) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id eg33-20020a05640228a100b0055334e2ffaesm1092593edb.74.2023.12.17.19.01.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Dec 2023 19:01:12 -0800 (PST) Message-ID: <018590f364e74c827a5d3f667d00d587417b307c.camel@gmail.com> Subject: Re: [PATCH v5 01/15] build-system: Add mix-build-system. From: Liliana Marie Prikler To: Pierre-Henry =?ISO-8859-1?Q?Fr=F6hring?= Date: Mon, 18 Dec 2023 04:01:11 +0100 In-Reply-To: <87y1e2uo5h.fsf@phfrohring.com> References: <455871374089253cc10d2c5b17c2cceee4a5272d.1702212039.git.contact@phfrohring.com> <87y1e2uo5h.fsf@phfrohring.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66801-done Cc: 66801-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Am Sonntag, dem 10.12.2023 um 15:22 +0100 schrieb Pierre-Henry Fr=C3=B6hring: > OK! I'll continue as planned: >=20 > 1. The Rebar build system will be revisited. > 2. The Mix build system will be enhanced so that Phoenix builds. > =C2=A0=C2=A0 =E2=80=A2 Since a few (possibly transitive) packages depend = on Erlang > code, we > =C2=A0=C2=A0=C2=A0=C2=A0 will determine if the implementation strategy di= scussed earlier > is effective. >=20 > I will wait for your comments before sending more patches. >=20 > Have a great week. I've pushed this now. To keep things manageable, please send the other stuff in a(n or possibly more) new series. Cheers ------------=_1702868522-25222-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 28 Oct 2023 20:20:13 +0000 Received: from localhost ([127.0.0.1]:39618 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwpn3-0002TU-Gz for submit@debbugs.gnu.org; Sat, 28 Oct 2023 16:20:13 -0400 Received: from lists.gnu.org ([2001:470:142::17]:52880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwpn1-0002TF-5C for submit@debbugs.gnu.org; Sat, 28 Oct 2023 16:20:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwpmP-0005al-0r for guix-patches@gnu.org; Sat, 28 Oct 2023 16:19:33 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qwpmJ-0000wc-Re for guix-patches@gnu.org; Sat, 28 Oct 2023 16:19:32 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-407c3adef8eso26151435e9.2 for ; Sat, 28 Oct 2023 13:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=deeplinks-com.20230601.gappssmtp.com; s=20230601; t=1698524365; x=1699129165; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cM9NmqsxnHWBq2XRPiJdAo6gDOFNqPn5QNQpP4/R6e8=; b=sfJVgHxtXOjQhnn5EI5RKwIkXnQf1BKFJYip9IrBikeMSBWE1dztX39NrsNpW3+zoZ 5zdO3wkSqHbFrvai6VfCa0Nb994KwhTzGWzWi2hD+my1iIH2HJRTb6S9K9wAjXEzAPbm AQusNOMzAqHZROscgVtv7gcI+E4YqFSkYr5hEqpKnCR4FP1UNxiiKVr9WDxsPcfQ/EyO scAOjTRW/mPYs5opWlYqQcZ5oNO9lNRWnJGInxYWs7oFMfHZnFjmk8Gzhot86ajEUbCf AdpZToWvdjqZalPvAFIaSdSshe2KCwC2ZHUj8zeNW0fzsH4wBQT4/omiDtnZo6LAaztx MlGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698524365; x=1699129165; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cM9NmqsxnHWBq2XRPiJdAo6gDOFNqPn5QNQpP4/R6e8=; b=fM+RSJDLqWlO5G8PcbX5KRkYlEAsUABvgAzk4DCvKRusqOcgJuP1NB11lFyAaujuc3 3g8tSrjbDVfczi7gZTLCo+RqMyCVsQHuPFdGmCJ3+YOcON+w6aKZug8990Z+3geqzmc3 xWnSzC9IMNXKCevjP1MPvAxVCy6jR2OjFkJJAVdekGgkbUNS5cLXoiT3rO6ofAu3tDzr 8b6MXweJ2i9n8MtUt5RVm7Ahb+ityQsQ0OSu0xFDXcDRA4BdDkaONjrqyySoyXSugd0V LlpMaTXCtv/8c3smPdEOWUWEQbPMI1GTavNB+Rvq4DqTadBmAkH6QmskdgbXUocZb3Fa 81uQ== X-Gm-Message-State: AOJu0YxLOJfNAy75xeYslj2/SAz46iF9pZeF9RnGegELdKtRTHYxWxeA ZEI5e5aga29qBGDMAzFXeyey7X2jOZRxVX/xLFU= X-Google-Smtp-Source: AGHT+IGAayGXUH6iNr6jSx2ytURdDc8bgtgC9gzLHS3QloXt5wFs3DEMOgb+Iv+exUZl+9At89geQA== X-Received: by 2002:a05:600c:4f15:b0:3fe:687a:abb8 with SMTP id l21-20020a05600c4f1500b003fe687aabb8mr5204758wmq.7.1698524363395; Sat, 28 Oct 2023 13:19:23 -0700 (PDT) Received: from doug.home ([2a01:cb19:85a1:c200:ee66:fd17:945:f033]) by smtp.gmail.com with ESMTPSA id y9-20020a7bcd89000000b00407efbc4361sm8278509wmj.9.2023.10.28.13.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Oct 2023 13:19:22 -0700 (PDT) From: =?UTF-8?q?Pierre-Henry=20Fr=C3=B6hring?= To: guix-patches@gnu.org Subject: [PATCH] mix-build-system: draft 1 Date: Sat, 28 Oct 2023 22:19:10 +0200 Message-ID: <68117eb2b3e0e6adcc7449d878e602c7b831ffee.1698524350.git.phfrohring@deeplinks.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Debbugs-Cc: Andrew Tropin , Katherine Cox-Buday , Liliana Marie Prikler Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=phfrohring@deeplinks.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?Pierre-Henry=20Fr=C3=B6hring?= 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" This commit introduces a mix-build-system. The provided code ensures that the following code runs without errors: ./pre-inst-env guix build elixir-machete A key challenge is the lack of bit reproducibility, in part due to rebar3's lack of bit reproducibility. Future patches may address this, and I welcome feedback. Given the changes, splitting them into focused patches might be best. As a first-time contributor, I seek advice on a suitable patch sequence. I also request guidance from the Guix community for a seamless integration. Please suggest next steps for the mix-build-system integration. Thank you. --- gnu/packages/elixir-xyz.scm | 327 ++++++++++ gnu/packages/elixir.scm | 164 +++-- gnu/packages/emacs-xyz.scm | 20 + gnu/packages/erlang-xyz.scm | 650 +++++++++++++++++++ gnu/packages/erlang.scm | 996 +++++++++--------------------- guix/build-system/mix.scm | 185 ++++++ guix/build-system/rebar.scm | 320 +++++++--- guix/build/mix-build-system.scm | 373 +++++++++++ guix/build/rebar-build-system.scm | 302 +++++---- 9 files changed, 2377 insertions(+), 960 deletions(-) create mode 100644 gnu/packages/elixir-xyz.scm create mode 100644 gnu/packages/erlang-xyz.scm create mode 100644 guix/build-system/mix.scm create mode 100644 guix/build/mix-build-system.scm diff --git a/gnu/packages/elixir-xyz.scm b/gnu/packages/elixir-xyz.scm new file mode 100644 index 00000000..767f9db7 --- /dev/null +++ b/gnu/packages/elixir-xyz.scm @@ -0,0 +1,327 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 elixir-xyz) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages erlang-xyz) + #:use-module (gnu packages linux) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix build-system mix) + #:use-module (guix download)) + +(define-public elixir-nimble-parsec + (package + (name "elixir-nimble-parsec") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "Text-based parser combinators") + (description + "This library provides primitives for efficient parser combinators, allowing +for higher-level combinators through composition.") + (home-page "https://hexdocs.pm/nimble_parsec/") + (license license:asl2.0))) + +(define-public elixir-makeup + (package + (name "elixir-makeup") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-nimble-parsec)) + (arguments + (list + #:tests? #f)) + (synopsis "Syntax highlighter for source code") + (description + "Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting, +forums, wikis or other applications that need to prettify source code.") + (home-page "https://hexdocs.pm/makeup/") + (license license:bsd-2))) + +(define-public elixir-telemetry-metrics + (package + (name "elixir-telemetry-metrics") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1iilk2n75kn9i95fdp8mpxvn3rcn3ghln7p77cijqws13j3y1sbv")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (propagated-inputs (list erlang-telemetry)) + (synopsis + "Provides a common interface for defining metrics based on Telemetry events") + (description + "Common interface for defining metrics based on :telemetry events. Metrics are +aggregations of Telemetry events with specific name, providing a +view of the system's behaviour over time.") + (home-page "https://hexdocs.pm/telemetry_metrics/") + (license license:asl2.0))) + +(define-public elixir-jason + (package + (name "elixir-jason") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "JSON parser and generator") + (description + "Parser and generator are written in pure Elixir and optimized for speed. They +are at least twice as fast as other Elixir/Erlang libraries (e.g. +Poison). The performance is comparable to jiffy, which is implemented in C as +a NIF.") + (home-page "https://hexdocs.pm/jason/") + (license license:asl2.0))) + +(define-public elixir-file-system + (package + (name "elixir-file-system") + (version "0.2.10") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1")))) + (build-system mix-build-system) + (inputs (list inotify-tools)) + (arguments + (list + #:tests? #f ;There is no test/ in the source. + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'rm-priv + (lambda _ + ;; This directory represents source code not needed on UNIX systems. + ;; Since we aim at UNIX systems, it is deleted. + (delete-file-recursively "priv")))))) + (synopsis "File system change watcher") + (description "Provides a file system change watcher wrapper based on +[fs](https://github.com/synrc/fs).") + (home-page "https://hexdocs.pm/file_system/") + (license license:wtfpl2))) + +(define-public elixir-bunt + (package + (name "elixir-bunt") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis "256 color ANSI coloring in the terminal") + (description "256 color ANSI coloring in the terminal.") + (home-page "https://hexdocs.pm/bunt/") + (license license:expat))) + +(define-public elixir-inch-ex + (package + (name "elixir-inch-ex") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-bunt elixir-jason)) + (synopsis + "Offers a Mix task for suggestions on enhancing your inline documentation") + (description + "This package provides a Mix task that gives you hints where to improve your +inline docs.") + (home-page "https://hex.pm/packages/inch_ex") + (license license:expat))) + +(define-public elixir-castore + (package + (name "elixir-castore") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l")))) + (build-system mix-build-system) + ;; There is no test/ in the source. + (arguments + (list + #:tests? #f)) + (synopsis "Up-to-date CA certificate store") + (description "Up-to-date CA certificate store.") + (home-page "https://hexdocs.pm/castore/") + (license license:asl2.0))) + +(define-public elixir-excoveralls + (package + (name "elixir-excoveralls") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-castore elixir-jason)) + ;; No test/ folder. + (arguments + (list + #:tests? #f)) + (synopsis "Coverage report tool with coveralls.io integration") + (description + "Library that reports test coverage statistics, with the option to +post to coveralls.io service. It uses Erlang's cover to generate coverage +information, and posts the test coverage results to coveralls.io through the +JSON API.") + (home-page "https://hexdocs.pm/excoveralls/") + (license license:expat))) + +(define-public elixir-credo + (package + (name "elixir-credo") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-bunt elixir-file-system elixir-jason)) + (native-inputs (list elixir-excoveralls elixir-inch-ex)) + (synopsis "Static code analysis tool") + (description + "Credo is a static code analysis tool for the Elixir language with a focus on +teaching and code consistency. Credo can show you refactoring opportunities in +your code, complex code fragments, warn you about common mistakes, show +inconsistencies in your naming scheme and - if needed - help you enforce a +desired coding style.") + (home-page "https://hexdocs.pm/credo/") + (license license:expat))) + +(define-public elixir-erlex + (package + (name "elixir-erlex") + (version "0.2.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (synopsis + "Convert Erlang style structs and error messages to equivalent Elixir") + (description + "Converted structs and error messages are useful for pretty printing things +like Dialyzer errors and Observer .state. NOTE: Because this code calls the +Elixir formatter, it requires Elixir 1.6+.") + (home-page "https://hexdocs.pm/erlex/") + (license license:asl2.0))) + +(define-public elixir-dialyxir + (package + (name "elixir-dialyxir") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4")))) + (build-system mix-build-system) + (arguments + (list + #:tests? #f)) + (propagated-inputs (list elixir-erlex)) + (synopsis "Mix tasks to simplify use of Dialyzer") + (description + "Mix Tasks are usable from the directory of the mix project you want to analyze.") + (home-page "https://hexdocs.pm/dialyxir/") + (license license:asl2.0))) + +(define-public elixir-machete + (package + (name "elixir-machete") + (version "0.2.8") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9")))) + (build-system mix-build-system) + (native-inputs (list elixir-credo elixir-dialyxir)) + (synopsis "Literate test matchers for ExUnit") + (description + "Machete provides ergonomic match operators that act as building blocks to let +you define test expectations that can match data against any combination of +literals, variables, or parametrically defined matchers.") + (home-page "https://hexdocs.pm/machete/") + (license license:expat))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 724b4251..d1ac1d07 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018 Nikita ;;; Copyright © 2021 Oskar Köök ;;; Copyright © 2021 Cees de Groot +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,14 +25,21 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages elixir) - #:use-module ((guix licenses) #:prefix license:) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages compression) + #:use-module (gnu packages erlang) + #:use-module (gnu packages version-control) + #:use-module (gnu packages) + #:use-module (guix build utils) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) - #:use-module (gnu packages) - #:use-module (gnu packages erlang) - #:use-module (gnu packages version-control)) + #:use-module (guix search-paths) + #:use-module (guix utils)) (define-public elixir (package @@ -52,57 +60,109 @@ (define-public elixir (list #:test-target "test" #:parallel-tests? #f ;see - #:make-flags #~(list (string-append "PREFIX=" #$output)) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")))) - (add-after 'make-git-checkout-writable 'replace-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; Note: references end up obfuscated in binary BEAM files where - ;; they may be invisible to the GC and graft code: - ;; . - (substitute* '("lib/mix/lib/mix/release.ex" - "lib/mix/lib/mix/tasks/release.init.ex") - (("#!/bin/sh") - (string-append "#!" (search-input-file inputs "/bin/sh")))) - (substitute* "bin/elixir" - (("ERTS_BIN=\n") - (string-append - "ERTS_BIN=" - ;; Elixir Releases will prepend to ERTS_BIN the path of - ;; a copy of erl. We detect if a release is being generated - ;; by checking the initial ERTS_BIN value: if it's empty, we - ;; are not in release mode and can point to the actual erl - ;; binary in Guix store. - "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" - (string-drop-right (search-input-file inputs "/bin/erl") 3) - "; fi\n"))) - (substitute* "bin/mix" - (("#!/usr/bin/env elixir") - (string-append "#!" #$output "/bin/elixir"))))) - (add-before 'build 'make-current - ;; The Elixir compiler checks whether or not to compile files by - ;; inspecting their timestamps. When the timestamp is equal to the - ;; epoch no compilation will be performed. Some tests fail when - ;; files are older than Jan 1, 2000. - (lambda _ - (for-each (lambda (file) - (let ((recent 1400000000)) - (utime file recent recent 0 0))) - (find-files "." ".*")))) - (add-before 'check 'set-home - (lambda* (#:key inputs #:allow-other-keys) - ;; Some tests require access to a home directory. - (setenv "HOME" "/tmp"))) - (delete 'configure)))) - (inputs - (list erlang git)) + #:make-flags #~(list (string-append "PREFIX=" + #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable + (find-files ".")))) + (add-after 'make-git-checkout-writable 'replace-paths + (lambda* (#:key inputs #:allow-other-keys) + ;; Note: references end up obfuscated in binary BEAM files where + ;; they may be invisible to the GC and graft code: + ;; . + (substitute* '("lib/mix/lib/mix/release.ex" + "lib/mix/lib/mix/tasks/release.init.ex") + (("#!/bin/sh") + (string-append "#!" + (search-input-file inputs "/bin/sh")))) + (substitute* "bin/elixir" + (("ERTS_BIN=\n") + (string-append "ERTS_BIN=" + ;; Elixir Releases will prepend to ERTS_BIN the path of + ;; a copy of erl. We detect if a release is being generated + ;; by checking the initial ERTS_BIN value: if it's empty, we + ;; are not in release mode and can point to the actual erl + ;; binary in Guix store. + "\nif [ -z \"$ERTS_BIN\" ]; then ERTS_BIN=" + (string-drop-right (search-input-file inputs + "/bin/erl") 3) + "; fi\n"))) + (substitute* "bin/mix" + (("#!/usr/bin/env elixir") + (string-append "#!" + #$output "/bin/elixir"))))) + (add-before 'build 'make-current + ;; The Elixir compiler checks whether or not to compile files by + ;; inspecting their timestamps. When the timestamp is equal to the + ;; epoch no compilation will be performed. Some tests fail when + ;; files are older than Jan 1, 2000. + (lambda _ + (for-each (lambda (file) + (let ((recent 1400000000)) + (utime file recent recent 0 0))) + (find-files "." ".*")))) + (add-before 'check 'set-home + (lambda* (#:key inputs #:allow-other-keys) + ;; Some tests require access to a home directory. + (setenv "HOME" "/tmp"))) + (delete 'configure) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("elixir" "elixirc" "iex" "mix"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" + program) + '("ERL_LIBS" prefix + ("${GUIX_ERL_LIBS}")))) programs))))))) + (inputs (list erlang git)) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files (list "lib/erlang/lib" + (string-append "lib/elixir/" + (version-major+minor version))))))) (home-page "https://elixir-lang.org/") (synopsis "Elixir programming language") - (description "Elixir is a dynamic, functional language used to build + (description + "Elixir is a dynamic, functional language used to build scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.") (license license:asl2.0))) + +(define-public mix-hex + (package + (name "mix-hex") + (version "2.0.5") + (source + (origin + (method url-fetch) + (uri "https://builds.hex.pm/installs/1.14.0/hex-2.0.5.ez") + (sha256 + (base32 "0j4s17zsshq9hv3qxflcqrfwh4p27d2rv7xmgdmfdfxp086mfvry")))) + (build-system copy-build-system) + (native-inputs (list unzip)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + ;; A *.ez file is a kind of *.zip file. + ;; See: https://www.erlang.org/doc/man/code#loading-of-code-from-archive-files + (invoke "unzip" source)))) + #:install-plan #~'(("hex-2.0.5" "lib/")))) + (synopsis "Package manager for the Erlang VM") + (description + "This project currently provides tasks that integrate with Mix, Elixir's build +tool.") + (home-page "https://hexdocs.pm/makeup_elixir/") + (license license:bsd-2))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 10c4b0a6..13f07f20 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -135,6 +135,7 @@ ;;; Copyright © 2023 Sergiu Ivanov ;;; Copyright © 2023 Camilo Q.S. (Distopico) ;;; Copyright © 2023 Thanos Apollo +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -7578,6 +7579,25 @@ (define-public emacs-org-fragtog your cursor steps onto them, and re-enabled when the cursor leaves.") (license license:gpl3+))) +(define-public emacs-erlang + (package + (name "emacs-erlang") + (version (package-version erlang)) + (source + (package-source erlang)) + (build-system emacs-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'expand-load-path 'change-working-directory + (lambda _ + (chdir "lib/tools/emacs") #t))))) + (home-page "https://www.erlang.org/") + (synopsis "Erlang major mode for Emacs") + (description + "This package provides an Emacs major mode for editing Erlang source +files.") + (license license:asl2.0))) + (define-public emacs-ob-erlang (let ((revision "1") (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd")) diff --git a/gnu/packages/erlang-xyz.scm b/gnu/packages/erlang-xyz.scm new file mode 100644 index 00000000..e1f1a77e --- /dev/null +++ b/gnu/packages/erlang-xyz.scm @@ -0,0 +1,650 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 erlang-xyz) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix hg-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (srfi srfi-1) + #:use-module (guix git-download) + #:use-module (gnu packages version-control) + #:use-module (srfi srfi-26)) + +(define-public erlang-unicode-util-compat + (package + (name "erlang-unicode-util-compat") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "08952lw8cjdw8w171lv8wqbrxc4rcmb3jhkrdb7n06gngpbfdvi5")))) + (build-system rebar-build-system) + (synopsis "Unicode compatibility library for Erlang < 20") + (description "Unicode compatibility library for Erlang < 20.") + (home-page "https://hex.pm/packages/unicode_util_compat") + (license license:asl2.0))) + +(define-public erlang-idna + (package + (name "erlang-idna") + (version "6.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1sjcjibl34sprpf1dgdmzfww24xlyy34lpj7mhcys4j4i6vnwdwj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-unicode-util-compat)) + (synopsis + "Erlang Internationalized Domain Names in Applications (IDNA) protocol") + (description + "Library to register and look up IDNs in a way + that does not require changes to the DNS itself. IDNA is only meant for +processing domain names, not free text. See: RFC 5891.") + (home-page "https://hexdocs.pm/idna/") + (license license:expat))) + +(define-public erlang-bear + (package + (name "erlang-bear") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nsri73b50n5v1a8252mm8car84j2b53bq7alq6zz16z3a86fyqm")))) + (build-system rebar-build-system) + (synopsis "Statistics functions for Erlang") + (description + "This package provides a set of statistics functions for erlang.") + (home-page "https://hex.pm/packages/bear") + (license license:asl2.0))) + +(define-public erlang-erlang-color + (package + (name "erlang-erlang-color") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0f707vxihn3f9m3zxal38ajcihnfcwms77jcax0gbzn8i7jya5vb")))) + (build-system rebar-build-system) + (synopsis "ANSI colors for your Erlang") + (description "ANSI colors for your Erlang.") + (home-page "https://hex.pm/packages/erlang_color") + (license license:expat))) + +(define-public erlang-tdiff + (package + (name "erlang-tdiff") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0xbq7p9ii2kp49ms1kylj92ih2jiwvqwimb8jy4aalljz5lf3hp0")))) + (build-system rebar-build-system) + (synopsis "Library to compute the difference between two strings") + (description + "Erlang implementation of the O(ND) differnence algorithm by EUGENE W. MYERS.") + (home-page "https://hex.pm/packages/tdiff") + (license license:lgpl2.0))) + +(define-public erlang-rebar3-ex-doc + (package + (name "erlang-rebar3-ex-doc") + (version "0.2.21") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0c720shjf03y4slj56q5nxgyhqif0926cs3pvl3zbv1i64qh8wdm")))) + (build-system rebar-build-system) + (synopsis "rebar3 plugin for generating docs with ex_doc") + (description + "rebar3_ex_doc is a rebar3 plugin for creating documentation with ex_doc. It +includes ex_doc as an escript, eliminating the need for Elixir installation or +compiling ex_doc dependencies.") + (home-page "https://hexdocs.pm/rebar3_ex_doc/") + (license license:asl2.0))) + +(define-public erlang-samovar + (package + (name "erlang-samovar") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1nfw5vbzcvqzpsahwxz7zjlshg31pa9f306g3hzm1kfx5rsyvry4")))) + (build-system rebar-build-system) + (synopsis "SEMVER library for Erlang") + (description "SEMVER library for Erlang") + (home-page "https://hexdocs.pm/samovar/") + (license license:isc))) + +(define-public erlang-geas + (package + (name "erlang-geas") + (version "2.7.14") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1maxv5zg2ckrikr8xpxgg9kpfaxvahqilbkl9dl9ibchlgrbj6i4")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-samovar)) + (synopsis + "Tool to detect the runnable official Erlang release window for your project") + (description + "Geas will tell you also what are the offending functions in the beam/source +files that reduce the available window, if some beam files are compiled native +and the installed patches and recommend patches that should be installed +depending your code.") + (home-page "https://hexdocs.pm/geas/") + (license license:isc))) + +(define-public erlang-covertool + (package + (name "erlang-covertool") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) + (build-system rebar-build-system) + (home-page "https://github.com/covertool/covertool") + (synopsis "Convert code-coverage data generated by @code{cover} into +Cobertura XML reports") + (description + "This package provides a build tool and plugin to convert +exported Erlang @code{cover} data sets into Cobertura XML reports, which can +then be feed to the Jenkins Cobertura plug-in. On @emph{hex.pm}, this plugin +was previously called @code{rebar_covertool}.") + (license license:bsd-2))) + +(define-public erlang-telemetry + (package + (name "erlang-telemetry") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1mgyx9zw92g6w8fp9pblm3b0bghwxwwcbslrixq23ipzisfwxnfs")))) + (build-system rebar-build-system) + (native-inputs (list erlang-covertool)) + (synopsis "Dynamic dispatching library for metrics and instrumentations") + (description + "Telemetry is a lightweight library for dynamic dispatching of events, with a +focus on metrics and instrumentation. Any Erlang or Elixir library can use +telemetry to emit events. Application code and other libraries can then hook +into those events and run custom handlers.") + (home-page "https://hexdocs.pm/telemetry/") + (license license:asl2.0))) + +(define-public erlang-rebar3-git-vsn + (package + (name "erlang-rebar3-git-vsn") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) + (build-system rebar-build-system) + (inputs (list git-minimal/pinned)) + (arguments + `( + ;; Running the tests require binary artifact (tar-file containing + ;; samples git repos) TODO: remove these from the source + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((git (assoc-ref inputs "git-minimal"))) + (substitute* "src/rebar3_git_vsn.erl" + (("rebar_utils:sh\\(\"git " _) + (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) + (home-page "https://github.com/soranoba/rebar3_git_vsn") + (synopsis "Rebar3 plugin for generating the version from git") + (description "This plugin adds support for generating the version from +a git checkout.") + (license license:expat))) + +(define-public erlang-getopt + (package + (name "erlang-getopt") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) + (build-system rebar-build-system) + (home-page "https://github.com/jcomellas/getopt") + (synopsis "Command-line options parser for Erlang") + (description "This package provides an Erlang module to parse command line +arguments using the GNU getopt syntax.") + (license license:bsd-3))) + +(define-public erlang-edown + (package + (name "erlang-edown") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) + (build-system rebar-build-system) + (home-page "https://github.com/uwiger/edown") + (synopsis "Markdown extension for EDoc") + (description "This package provides an extension for EDoc for generating +Markdown.") + (license license:asl2.0))) + +(define-public erlang-bbmustache + (package + (name "erlang-bbmustache") + (version "1.12.2") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) + (build-system rebar-build-system) + (inputs (list erlang-getopt erlang-rebar3-git-vsn erlang-edown)) ;for building the docs + (arguments + `(#:tests? #f ;requires mustache specification file + #:phases (modify-phases %standard-phases + (add-before 'build 'build-more + (lambda _ + (invoke "rebar3" "as" "dev" "escriptize"))) + (add-after 'install 'install-escript + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (install-file "_build/dev/bin/bbmustache" + (string-append out "/bin")))))))) + (home-page "https://github.com/soranoba/bbmustache/") + (synopsis "Binary pattern match Based Mustache template engine for Erlang") + (description "This Erlang library provides a Binary pattern match Based +Mustache template engine") + (license license:expat))) + +(define-public erlang-certifi + (package + (name "erlang-certifi") + (version "2.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) + (build-system rebar-build-system) + (arguments + `(#:tests? #f)) ;have not been updated for latest cert bundle + (home-page "https://github.com/certifi/erlang-certifi/") + (synopsis "Erlang CA certificate bundle") + (description + "This Erlang library contains a CA bundle that you can +reference in your Erlang application. This is useful for systems that do not +have CA bundles that Erlang can find itself, or where a uniform set of CAs is +valuable. + +This an Erlang specific port of certifi. The CA bundle is derived from +Mozilla's canonical set.") + (license license:bsd-3))) + +(define-public erlang-cf + (package + (name "erlang-cf") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) + (build-system rebar-build-system) + (home-page "https://github.com/project-fifo/cf") + (synopsis "Terminal colour helper for Erlang io and io_lib") + (description "This package provides a helper library for termial colour +printing extending the io:format syntax to add colours.") + (license license:expat))) + +(define-public erlang-yamerl + (package + (name "erlang-yamerl") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; There are no tests included on Hex. + (url "https://github.com/yakaz/yamerl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) + (build-system rebar-build-system) + (synopsis "YAML and JSON parser in pure Erlang") + (description + "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as +JSON documents.") + (home-page "https://hexdocs.pm/yamerl/") + (license license:bsd-2))) + +(define-public erlang-cth-readable + (package + (name "erlang-cth-readable") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cf)) + (arguments + `(#:tests? #f)) ;no test-suite in hex-pm package + (home-page "https://github.com/ferd/cth_readable") + (synopsis "Common Test hooks for more readable logs for Erlang") + (description + "This package provides an OTP library to be used for CT log +outputs you want to be readable around all that noise they contain.") + (license license:bsd-3))) + +(define-public erlang-erlware-commons + (package + (name "erlang-erlware-commons") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-cf)) + (native-inputs (list git-minimal/pinned)) ;Required for tests + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "TERM" "xterm")))))) ;enable color in logs + (home-page "https://erlware.github.io/erlware_commons/") + (synopsis "Additional standard library for Erlang") + (description "Erlware Commons is an Erlware project focused on all aspects +of reusable Erlang components.") + (license license:expat))) + +(define-public erlang-eunit-formatters + (package + (name "erlang-eunit-formatters") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) + (build-system rebar-build-system) + (home-page "https://github.com/seancribbs/eunit_formatters") + (synopsis "Better output for eunit suites") + (description "This package provides a better output for Erlang eunits.") + (license license:asl2.0))) + +(define-public erlang-hex-core + (package + (name "erlang-hex-core") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "rebar3" "as" "test" "proper"))))))) + (inputs (list erlang-proper erlang-rebar3-proper)) + (home-page "https://github.com/hexpm/hex_core") + (synopsis "Reference implementation of Hex specifications") + (description "This package provides the reference implementation of Hex +specifications.") + (license license:asl2.0))) + +(define-public erlang-jsone + (package + (name "erlang-jsone") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{project_plugins, \\[covertool\\]\\}\\." _) + ""))))))) + (home-page "https://github.com/sile/jsone/") + (synopsis "Erlang JSON Library") + (description "An Erlang library for encoding and decoding JSON data.") + (license license:expat))) + +(define-public erlang-parse-trans + (package + (name "erlang-parse-trans") + (version "3.4.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) + (build-system rebar-build-system) + (inputs (list erlang-getopt)) + (home-page "https://github.com/uwiger/parse_trans") + (synopsis "Parse transform utilities for Erlang") + (description + "This package captures some useful patterns in parse +transformation and code generation for Erlang. + +For example generating standardized accessor functions for records or +evaluating an expression at compile-time and substitute the result as a +compile-time constant.") + (license license:asl2.0))) + +(define-public erlang-proper + (package + (name "erlang-proper") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) + (build-system rebar-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-covertool + ;; no need to generate a coverage report + (lambda _ + (substitute* "rebar.config" + (("\\{plugins, \\[covertool\\]\\}\\." _) + ""))))))) + (home-page "https://proper-testing.github.io/") + (synopsis "QuickCheck-inspired property-based testing tool for Erlang") + (description + "PropEr is a tool for the automated, semi-random, +property-based testing of Erlang programs. It is fully integrated with +Erlang's type language, and can also be used for the model-based random +testing of stateful systems.") + (license license:gpl3+))) + +(define-public erlang-jsx + (package + (name "erlang-jsx") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) + (build-system rebar-build-system) + (synopsis "Streaming, evented JSON parsing toolkit") + (description + "An Erlang application for consuming, producing and manipulating json.") + (home-page "https://github.com/talentdeficit/jsx") + (license license:expat))) + +(define-public erlang-providers + (package + (name "erlang-providers") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-erlware-commons erlang-getopt)) + (home-page "https://github.com/tsloughter/providers") + (synopsis "Erlang providers library") + (description "This package provides an Erlang providers library.") + (license license:asl2.0))) + +(define-public erlang-relx + (package + (name "erlang-relx") + (version "4.6.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) + (build-system rebar-build-system) + (propagated-inputs (list erlang-bbmustache)) + (home-page "https://erlware.github.io/relx/") + (synopsis "Release assembler for Erlang/OTP Releases") + (description + "Relx assembles releases for an Erlang/OTP release. Given a +release specification and a list of directories in which to search for OTP +applications it will generate a release output. That output depends heavily on +what plugins available and what options are defined, but usually it is simply +a well configured release directory.") + (license license:asl2.0))) + +(define-public erlang-ssl-verify-fun + (package + (name "erlang-ssl-verify-fun") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) + (build-system rebar-build-system) + (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") + (synopsis "SSL verification functions for Erlang") + (description "This package provides SSL verification functions for +Erlang.") + (license license:expat))) + +(define-public erlang-rebar3-raw-deps + (package + (name "erlang-rebar3-raw-deps") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) + (build-system rebar-build-system) + (home-page "https://github.com/soranoba/rebar3_raw_deps") + (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") + (description "This plugin provides support for handling non-OTP +applications as a dependent libraries.") + (license license:expat))) + +(define-public erlang-rebar3-proper + (package + (name "erlang-rebar3-proper") + (version "0.12.1") + (source + (origin + (method url-fetch) + (uri (hexpm-uri name version)) + (sha256 + (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) + (build-system rebar-build-system) + (home-page "https://github.com/ferd/rebar3_proper") + (synopsis "Rebar3 PropEr plugin") + (description "This plugin allows running PropEr test suites from within +rebar3.") + (license license:bsd-3))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm index c53cb72c..df17558b 100644 --- a/gnu/packages/erlang.scm +++ b/gnu/packages/erlang.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2022 jgart ;;; Copyright © 2023 wrobell ;;; Copyright © 2023 Tim Johann +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,160 +28,182 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages erlang) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix gexp) - #:use-module (guix build-system gnu) - #:use-module (guix build-system emacs) - #:use-module (guix build-system rebar) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix packages) - #:use-module (guix utils) - #:use-module (gnu packages) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (gnu packages elixir) #:use-module (gnu packages fontutils) #:use-module (gnu packages gl) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages version-control) #:use-module (gnu packages tls) - #:use-module (gnu packages wxwidgets)) + #:use-module (gnu packages erlang-xyz) + #:use-module (gnu packages version-control) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages) + #:use-module (guix build utils) + #:use-module (guix build-system emacs) + #:use-module (guix build-system gnu) + #:use-module (guix build-system rebar) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public erlang (package (name "erlang") (version "25.3.2") - (source (origin - (method git-fetch) - ;; The tarball from http://erlang.org/download contains many - ;; pre-compiled files, so we use this snapshot of the source - ;; repository. - (uri (git-reference - (url "https://github.com/erlang/otp") - (commit (string-append "OTP-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj")) - (patches (search-patches "erlang-man-path.patch")))) + (source + (origin + (method git-fetch) + ;; The tarball from http://erlang.org/download contains many + ;; pre-compiled files, so we use this snapshot of the source + ;; repository. + (uri (git-reference + (url "https://github.com/erlang/otp") + (commit (string-append "OTP-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "092lym5a181gz89nscw7kqhw1wa6qvgcpkj80q4i9p79mxmsr1nj")) + (patches (search-patches "erlang-man-path.patch")))) (build-system gnu-build-system) - (native-inputs - `(("perl" ,perl) + (native-inputs `(("perl" ,perl) - ;; Erlang's documentation is distributed in a separate tarball. - ("erlang-manpages" - ,(origin - (method url-fetch) - (uri (string-append "http://erlang.org/download/otp_doc_man_" - (version-major+minor version) ".tar.gz")) - (sha256 - (base32 - "0vnpds5q17xc4jjj3sbsllpx68wyhgvx70714vkzyd68rbjmhmk7")))))) - (inputs - (list ncurses openssl wxwidgets)) - (propagated-inputs - (list fontconfig glu mesa)) + ;; Erlang's documentation is distributed in a separate tarball. + ("erlang-manpages" ,(origin + (method url-fetch) + (uri (string-append + "http://erlang.org/download/otp_doc_man_" + (version-major+minor version) + ".tar.gz")) + (sha256 (base32 + "0vnpds5q17xc4jjj3sbsllpx68wyhgvx70714vkzyd68rbjmhmk7")))))) + (inputs (list ncurses openssl wxwidgets)) + (propagated-inputs (list fontconfig glu mesa)) (arguments `(#:test-target "release_tests" - #:configure-flags - (list "--disable-saved-compile-time" - "--enable-dynamic-ssl-lib" - "--enable-native-libs" - "--enable-shared-zlib" - "--enable-smp-support" - "--enable-threads" - "--enable-wx" - (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))) - #:modules ((srfi srfi-19) ; make-time, et cetera. + #:configure-flags (list "--disable-saved-compile-time" + "--enable-dynamic-ssl-lib" + "--enable-native-libs" + "--enable-shared-zlib" + "--enable-smp-support" + "--enable-threads" + "--enable-wx" + (string-append "--with-ssl=" + (assoc-ref %build-inputs + "openssl"))) + #:modules ((srfi srfi-19) + ;make-time, et cetera. (guix build utils) (guix build gnu-build-system)) - #:phases - (modify-phases %standard-phases - (delete 'bootstrap) - ;; The are several code fragments that embed timestamps into the - ;; output. Here, we alter those fragments to use the value of - ;; SOURCE_DATE_EPOCH instead. - (add-after 'unpack 'remove-timestamps - (lambda _ - (let ((source-date-epoch - (time-utc->date - (make-time time-utc 0 (string->number - (getenv "SOURCE_DATE_EPOCH")))))) - (substitute* "lib/reltool/src/reltool_target.erl" - (("Date = date\\(\\),") - (string-append "Date = " - (date->string source-date-epoch - "'{~Y,~m,~d}',")))) - (substitute* "lib/reltool/src/reltool_target.erl" - (("Time = time\\(\\),") - (string-append "Time = " - (date->string source-date-epoch - "'{~H,~M,~S}',")))) - (substitute* '("lib/reltool/src/reltool_target.erl" - "lib/sasl/src/systools_make.erl") - (("date\\(\\), time\\(\\),") - (date->string source-date-epoch - "{~Y,~m,~d}, {~H,~M,~S},"))) - (substitute* "lib/dialyzer/test/small_SUITE_data/src/gs_make.erl" - (("tuple_to_list\\(date\\(\\)\\),tuple_to_list\\(time\\(\\)\\)") - (date->string - source-date-epoch - "tuple_to_list({~Y,~m,~d}), tuple_to_list({~H,~M,~S})"))) - (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" - (("\\{Y,Mo,D\\} = date\\(\\),") - (date->string source-date-epoch - "{Y,Mo,D} = {~Y,~m,~d},"))) - (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" - (("\\{H,Mi,S\\} = time\\(\\),") - (date->string source-date-epoch - "{H,Mi,S} = {~H,~M,~S},")))))) - (add-after 'unpack 'patch-/bin/sh - (lambda* (#:key inputs #:allow-other-keys) - (let ((sh (search-input-file inputs "/bin/sh"))) - (substitute* "erts/etc/unix/run_erl.c" - (("sh = \"/bin/sh\";") - (string-append "sh = \"" sh "\";"))) - (substitute* "erts/emulator/sys/unix/sys_drivers.c" - (("SHELL \"/bin/sh\"") - (string-append "SHELL \"" sh "\""))) - (substitute* "erts/emulator/sys/unix/erl_child_setup.c" - (("SHELL \"/bin/sh\"") - (string-append "SHELL \"" sh "\""))) - (substitute* "lib/kernel/src/os.erl" - (("/bin/sh") sh))))) - (add-after 'patch-source-shebangs 'patch-source-env - (lambda _ - (let ((escripts - (append - (find-files "." "\\.escript") - (find-files "lib/stdlib/test/escript_SUITE_data/") - '("erts/lib_src/utils/make_atomics_api" - "erts/preloaded/src/add_abstract_code" - "lib/diameter/bin/diameterc" - "lib/reltool/examples/display_args" - "lib/reltool/examples/mnesia_core_dump_viewer" - "lib/snmp/src/compile/snmpc.src" - "make/verify_runtime_dependencies" - "make/emd2exml.in")))) - (substitute* escripts - (("/usr/bin/env") (which "env")))))) - (add-before 'configure 'set-erl-top - (lambda _ - (setenv "ERL_TOP" (getcwd)))) - (add-after 'install 'patch-erl - ;; This only works after install. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/bin/erl") - (("basename") (which "basename")) - (("dirname") (which "dirname")))))) - (add-after 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (manpages (assoc-ref inputs "erlang-manpages")) - (share (string-append out "/share/"))) - (mkdir-p share) - (with-directory-excursion share - (invoke "tar" "xvf" manpages)))))))) + #:phases (modify-phases %standard-phases + (delete 'bootstrap) + ;; The are several code fragments that embed timestamps into the + ;; output. Here, we alter those fragments to use the value of + ;; SOURCE_DATE_EPOCH instead. + (add-after 'unpack 'remove-timestamps + (lambda _ + (let ((source-date-epoch (time-utc->date (make-time + time-utc 0 + (string->number + (getenv + "SOURCE_DATE_EPOCH")))))) + (substitute* "lib/reltool/src/reltool_target.erl" + (("Date = date\\(\\),") + (string-append "Date = " + (date->string source-date-epoch + "'{~Y,~m,~d}',")))) + (substitute* "lib/reltool/src/reltool_target.erl" + (("Time = time\\(\\),") + (string-append "Time = " + (date->string source-date-epoch + "'{~H,~M,~S}',")))) + (substitute* '("lib/reltool/src/reltool_target.erl" + "lib/sasl/src/systools_make.erl") + (("date\\(\\), time\\(\\),") + (date->string source-date-epoch + "{~Y,~m,~d}, {~H,~M,~S},"))) + (substitute* "lib/dialyzer/test/small_SUITE_data/src/gs_make.erl" + (("tuple_to_list\\(date\\(\\)\\),tuple_to_list\\(time\\(\\)\\)") + (date->string source-date-epoch + "tuple_to_list({~Y,~m,~d}), tuple_to_list({~H,~M,~S})"))) + (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" + (("\\{Y,Mo,D\\} = date\\(\\),") + (date->string source-date-epoch + "{Y,Mo,D} = {~Y,~m,~d},"))) + (substitute* "lib/snmp/src/compile/snmpc_mib_to_hrl.erl" + (("\\{H,Mi,S\\} = time\\(\\),") + (date->string source-date-epoch + "{H,Mi,S} = {~H,~M,~S},")))))) + (add-after 'unpack 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + (let ((sh (search-input-file inputs "/bin/sh"))) + (substitute* "erts/etc/unix/run_erl.c" + (("sh = \"/bin/sh\";") + (string-append "sh = \"" sh "\";"))) + (substitute* "erts/emulator/sys/unix/sys_drivers.c" + (("SHELL \"/bin/sh\"") + (string-append "SHELL \"" sh "\""))) + (substitute* "erts/emulator/sys/unix/erl_child_setup.c" + (("SHELL \"/bin/sh\"") + (string-append "SHELL \"" sh "\""))) + (substitute* "lib/kernel/src/os.erl" + (("/bin/sh") + sh))))) + (add-after 'patch-source-shebangs 'patch-source-env + (lambda _ + (let ((escripts (append (find-files "." "\\.escript") + (find-files + "lib/stdlib/test/escript_SUITE_data/") + '("erts/lib_src/utils/make_atomics_api" + "erts/preloaded/src/add_abstract_code" + "lib/diameter/bin/diameterc" + "lib/reltool/examples/display_args" + "lib/reltool/examples/mnesia_core_dump_viewer" + "lib/snmp/src/compile/snmpc.src" + "make/verify_runtime_dependencies" + "make/emd2exml.in")))) + (substitute* escripts + (("/usr/bin/env") + (which "env")))))) + (add-before 'configure 'set-erl-top + (lambda _ + (setenv "ERL_TOP" + (getcwd)))) + (add-after 'install 'patch-erl + ;; This only works after install. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/erl") + (("basename") + (which "basename")) + (("dirname") + (which "dirname")))))) + (add-after 'patch-erl 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (programs '("erl" "erlc" "escript"))) + (for-each (lambda (program) + (wrap-program (string-append out "/bin/" + program) + '("ERL_LIBS" ":" prefix + ("${GUIX_ERL_LIBS}")))) programs)))) + (add-after 'wrap-programs 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (manpages (assoc-ref inputs "erlang-manpages")) + (share (string-append out "/share/"))) + (mkdir-p share) + (with-directory-excursion share + (invoke "tar" "xvf" manpages)))))))) + (native-search-paths + (list (search-path-specification + (variable "GUIX_ERL_LIBS") + (files (list "lib/erlang/lib" + (string-append "lib/elixir/" + (version-major+minor (package-version + elixir)))))))) (home-page "https://www.erlang.org/") (synopsis "The Erlang programming language") (description @@ -191,414 +214,13 @@ (define-public erlang built-in support for concurrency, distribution and fault tolerance.") ;; Erlang is distributed under the Apache License 2.0, but some components ;; have other licenses. See 'system/COPYRIGHT' in the source distribution. - (license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat - license:lgpl2.0+ license:tcl/tk license:zlib)))) - -(define-public emacs-erlang - (package - (name "emacs-erlang") - (version (package-version erlang)) - (source (package-source erlang)) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'expand-load-path 'change-working-directory - (lambda _ (chdir "lib/tools/emacs") #t))))) - (home-page "https://www.erlang.org/") - (synopsis "Erlang major mode for Emacs") - (description - "This package provides an Emacs major mode for editing Erlang source -files.") - (license license:asl2.0))) - -(define-public erlang-bbmustache - (package - (name "erlang-bbmustache") - (version "1.12.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "bbmustache" version)) - (sha256 - (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt rebar3-git-vsn - erlang-edown)) ; for building the docs - (arguments - `(#:tests? #f ;; requires mustache specification file - #:phases - (modify-phases %standard-phases - (add-before 'build 'build-more - (lambda _ - (invoke "rebar3" "as" "dev" "escriptize"))) - (add-after 'install 'install-escript - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (install-file "_build/dev/bin/bbmustache" - (string-append out "/bin")))))))) - (home-page "https://github.com/soranoba/bbmustache/") - (synopsis "Binary pattern match Based Mustache template engine for Erlang") - (description "This Erlang library provides a Binary pattern match Based -Mustache template engine") - (license license:expat))) - -(define-public erlang-certifi - (package - (name "erlang-certifi") - (version "2.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "certifi" version)) - (sha256 - (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96")))) - (build-system rebar-build-system) - (arguments - `(#:tests? #f)) ;; have not been updated for latest cert bundle - (home-page "https://github.com/certifi/erlang-certifi/") - (synopsis "Erlang CA certificate bundle") - (description "This Erlang library contains a CA bundle that you can -reference in your Erlang application. This is useful for systems that do not -have CA bundles that Erlang can find itself, or where a uniform set of CAs is -valuable. - -This an Erlang specific port of certifi. The CA bundle is derived from -Mozilla's canonical set.") - (license license:bsd-3))) - -(define-public erlang-cf - (package - (name "erlang-cf") - (version "0.3.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "cf" version)) - (sha256 - (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii")))) - (build-system rebar-build-system) - (home-page "https://github.com/project-fifo/cf") - (synopsis "Terminal colour helper for Erlang io and io_lib") - (description "This package provides a helper library for termial colour -printing extending the io:format syntax to add colours.") - (license license:expat))) - -(define-public erlang-yamerl - (package - (name "erlang-yamerl") - (version "0.10.0") - (source - (origin - (method git-fetch) - (uri (git-reference - ;; There are no tests included on Hex. - (url "https://github.com/yakaz/yamerl") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0if8abgmispcfk7zhd0a5dndzwzbsmqrbyrm5shk375r2dbbwak6")))) - (build-system rebar-build-system) - (synopsis "YAML and JSON parser in pure Erlang") - (description - "Erlang application to parse YAML 1.1 and YAML 1.2 documents, as well as -JSON documents.") - (home-page "https://hexdocs.pm/yamerl/") - (license license:bsd-2))) - -(define-public erlang-covertool - (package - (name "erlang-covertool") - (version "2.0.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "covertool" version)) - (sha256 - (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw")))) - (build-system rebar-build-system) - (home-page "https://github.com/covertool/covertool") - (synopsis "Convert code-coverage data generated by @code{cover} into -Cobertura XML reports") - (description "This package provides a build tool and plugin to convert -exported Erlang @code{cover} data sets into Cobertura XML reports, which can -then be feed to the Jenkins Cobertura plug-in. - -On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.") - (license license:bsd-2))) - -(define-public erlang-cth-readable - (package - (name "erlang-cth-readable") - (version "1.5.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "cth_readable" version)) - (sha256 - (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (arguments - `(#:tests? #f)) ;; no test-suite in hex-pm package - (home-page "https://github.com/ferd/cth_readable") - (synopsis "Common Test hooks for more readable logs for Erlang") - (description "This package provides an OTP library to be used for CT log -outputs you want to be readable around all that noise they contain.") - (license license:bsd-3))) - -(define-public erlang-edown - (package - (name "erlang-edown") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "edown" version)) - (sha256 - (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw")))) - (build-system rebar-build-system) - (home-page "https://github.com/uwiger/edown") - (synopsis "Markdown extension for EDoc") - (description "This package provides an extension for EDoc for generating -Markdown.") - (license license:asl2.0))) - -(define-public erlang-erlware-commons - (package - (name "erlang-erlware-commons") - (version "1.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "erlware_commons" version)) - (sha256 - (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-cf)) - (native-inputs - (list git-minimal/pinned)) ;; Required for tests - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'check-setup - (lambda _ - (setenv "TERM" "xterm")))))) ; enable color in logs - (home-page "https://erlware.github.io/erlware_commons/") - (synopsis "Additional standard library for Erlang") - (description "Erlware Commons is an Erlware project focused on all aspects -of reusable Erlang components.") - (license license:expat))) - -(define-public erlang-eunit-formatters - (package - (name "erlang-eunit-formatters") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "eunit_formatters" version)) - (sha256 - (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n")))) - (build-system rebar-build-system) - (home-page "https://github.com/seancribbs/eunit_formatters") - (synopsis "Better output for eunit suites") - (description "This package provides a better output for Erlang eunits.") - (license license:asl2.0))) - -(define-public erlang-getopt - (package - (name "erlang-getopt") - (version "1.0.2") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "getopt" version)) - (sha256 - (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0")))) - (build-system rebar-build-system) - (home-page "https://github.com/jcomellas/getopt") - (synopsis "Command-line options parser for Erlang") - (description "This package provides an Erlang module to parse command line -arguments using the GNU getopt syntax.") - (license license:bsd-3))) - -(define-public erlang-hex-core - (package - (name "erlang-hex-core") - (version "0.8.4") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "hex_core" version)) - (sha256 - (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "rebar3" "as" "test" "proper"))))))) - (inputs - (list erlang-proper rebar3-proper)) - (home-page "https://github.com/hexpm/hex_core") - (synopsis "Reference implementation of Hex specifications") - (description "This package provides the reference implementation of Hex -specifications.") - (license license:asl2.0))) - -(define-public erlang-jsone - (package - (name "erlang-jsone") - (version "1.7.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "jsone" version)) - (sha256 - (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{project_plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://github.com/sile/jsone/") - (synopsis "Erlang JSON Library") - (description "An Erlang library for encoding and decoding JSON data.") - (license license:expat))) - -(define-public erlang-parse-trans - (package - (name "erlang-parse-trans") - (version "3.4.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "parse_trans" version)) - (sha256 - (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2")))) - (build-system rebar-build-system) - (inputs - (list erlang-getopt)) - (home-page "https://github.com/uwiger/parse_trans") - (synopsis "Parse transform utilities for Erlang") - (description "This package captures some useful patterns in parse -transformation and code generation for Erlang. - -For example generating standardized accessor functions for records or -evaluating an expression at compile-time and substitute the result as a -compile-time constant.") - (license license:asl2.0))) - -(define-public erlang-proper - (package - (name "erlang-proper") - (version "1.4.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "proper" version)) - (sha256 - (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q")))) - (build-system rebar-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-covertool - ;; no need to generate a coverage report - (lambda _ - (substitute* "rebar.config" - (("\\{plugins, \\[covertool\\]\\}\\." _) ""))))))) - (home-page "https://proper-testing.github.io/") - (synopsis "QuickCheck-inspired property-based testing tool for Erlang") - (description "PropEr is a tool for the automated, semi-random, -property-based testing of Erlang programs. It is fully integrated with -Erlang's type language, and can also be used for the model-based random -testing of stateful systems.") - (license license:gpl3+))) - -(define-public erlang-jsx - (package - (name "erlang-jsx") - (version "3.1.0") - (source (origin - (method url-fetch) - (uri (hexpm-uri "jsx" version)) - (sha256 - (base32 - "1wr7jkxm6nlgvd52xhniav64xr9rml2ngb35rwjwqlqvq7ywhp0c")))) - (build-system rebar-build-system) - (synopsis "Streaming, evented JSON parsing toolkit") - (description - "An Erlang application for consuming, producing and manipulating json.") - (home-page "https://github.com/talentdeficit/jsx") - (license license:expat))) - -(define-public erlang-providers - (package - (name "erlang-providers") - (version "1.9.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "providers" version)) - (sha256 - (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-erlware-commons erlang-getopt)) - (home-page "https://github.com/tsloughter/providers") - (synopsis "Erlang providers library") - (description "This package provides an Erlang providers library.") - (license license:asl2.0))) - -(define-public erlang-relx - (package - (name "erlang-relx") - (version "4.6.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "relx" version)) - (sha256 - (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g")))) - (build-system rebar-build-system) - (propagated-inputs - (list erlang-bbmustache)) - (home-page "https://erlware.github.io/relx/") - (synopsis "Release assembler for Erlang/OTP Releases") - (description "Relx assembles releases for an Erlang/OTP release. Given a -release specification and a list of directories in which to search for OTP -applications it will generate a release output. That output depends heavily on -what plugins available and what options are defined, but usually it is simply -a well configured release directory.") - (license license:asl2.0))) - -(define-public erlang-ssl-verify-fun - (package - (name "erlang-ssl-verify-fun") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "ssl_verify_fun" version)) - (sha256 - (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x")))) - (build-system rebar-build-system) - (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl") - (synopsis "SSL verification functions for Erlang") - (description "This package provides SSL verification functions for -Erlang.") - (license license:expat))) + (license (list license:asl2.0 + license:bsd-2 + license:bsd-3 + license:expat + license:lgpl2.0+ + license:tcl/tk + license:zlib)))) (define-public rebar3 (package @@ -616,56 +238,71 @@ (define-public rebar3 (build-system gnu-build-system) ;; TODO: remove vendored modules, install man-page, install lib(?) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'bootstrap) - (add-after 'unpack 'unpack-dependency-sources - (lambda* (#:key inputs #:allow-other-keys) - (for-each - (lambda (pkgname) - (let* ((src (string-append pkgname "-source")) - (input (assoc-ref inputs src)) - (checkouts-dir (string-append "_checkouts/" pkgname)) - (lib-dir (string-append "_build/default/lib/" pkgname))) - (mkdir-p checkouts-dir) - (invoke "tar" "-xf" input "-C" checkouts-dir) - (invoke "tar" "-xzf" - (pk (string-append checkouts-dir "/contents.tar.gz")) - "-C" checkouts-dir) - (mkdir-p lib-dir) - (copy-recursively checkouts-dir lib-dir))) - (list "bbmustache" "certifi" "cf" "cth_readable" - "eunit_formatters" "getopt" "hex_core" "erlware_commons" - "parse_trans" "relx" "ssl_verify_fun" "providers")))) - (delete 'configure) - (replace 'build - (lambda _ - (setenv "HOME" (getcwd)) - (invoke "./bootstrap"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (install-file "rebar3" (string-append out "/bin"))))) - (delete 'check)))) - (native-inputs - (list erlang)) - (inputs - `(("bbmustache-source" ,(package-source erlang-bbmustache)) - ("certifi-source" ,(package-source erlang-certifi)) - ("cf-source" ,(package-source erlang-cf)) - ("cth_readable-source" ,(package-source erlang-cth-readable)) - ("erlware_commons-source" ,(package-source erlang-erlware-commons)) - ("eunit_formatters-source" ,(package-source erlang-eunit-formatters)) - ("getopt-source" ,(package-source erlang-getopt)) - ("hex_core-source" ,(package-source erlang-hex-core)) - ("parse_trans-source" ,(package-source erlang-parse-trans)) - ("relx-source" ,(package-source erlang-relx)) - ("ssl_verify_fun-source" ,(package-source erlang-ssl-verify-fun)) - ("providers-source" ,(package-source erlang-providers)))) + `(#:phases (modify-phases %standard-phases + (delete 'bootstrap) + (add-after 'unpack 'unpack-dependency-sources + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (pkgname) + (let* ((src (string-append pkgname "-source")) + (input (assoc-ref inputs src)) + (checkouts-dir (string-append + "_checkouts/" pkgname)) + (lib-dir (string-append + "_build/default/lib/" + pkgname))) + (mkdir-p checkouts-dir) + (invoke "tar" "-xf" input "-C" + checkouts-dir) + (invoke "tar" "-xzf" + (pk (string-append checkouts-dir + "/contents.tar.gz")) "-C" + checkouts-dir) + (mkdir-p lib-dir) + (copy-recursively checkouts-dir lib-dir))) + (list "bbmustache" + "certifi" + "cf" + "cth_readable" + "eunit_formatters" + "getopt" + "hex_core" + "erlware_commons" + "parse_trans" + "relx" + "ssl_verify_fun" + "providers")))) + (delete 'configure) + (replace 'build + (lambda _ + (setenv "HOME" + (getcwd)) + (invoke "./bootstrap"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (install-file "rebar3" + (string-append out "/bin"))))) + (delete 'check)))) + (native-inputs (list erlang)) + (inputs `(("bbmustache-source" ,(package-source erlang-bbmustache)) + ("certifi-source" ,(package-source erlang-certifi)) + ("cf-source" ,(package-source erlang-cf)) + ("cth_readable-source" ,(package-source erlang-cth-readable)) + ("erlware_commons-source" ,(package-source + erlang-erlware-commons)) + ("eunit_formatters-source" ,(package-source + erlang-eunit-formatters)) + ("getopt-source" ,(package-source erlang-getopt)) + ("hex_core-source" ,(package-source erlang-hex-core)) + ("parse_trans-source" ,(package-source erlang-parse-trans)) + ("relx-source" ,(package-source erlang-relx)) + ("ssl_verify_fun-source" ,(package-source erlang-ssl-verify-fun)) + ("providers-source" ,(package-source erlang-providers)))) (home-page "https://rebar3.org/") (synopsis "Sophisticated build-tool for Erlang projects that follows OTP principles") - (description "@code{rebar3} is an Erlang build tool that makes it easy to + (description + "@code{rebar3} is an Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases. @code{rebar3} is a self-contained Erlang script, so it's easy to distribute or @@ -676,84 +313,19 @@ (define-public rebar3 of locations (git, hg, etc).") (license license:asl2.0))) -(define-public rebar3-raw-deps - (package - (name "rebar3-raw-deps") - (version "2.0.0") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_raw_deps" version)) - (sha256 - (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3")))) - (build-system rebar-build-system) - (home-page "https://github.com/soranoba/rebar3_raw_deps") - (synopsis "Rebar3 plugin for supporting \"raw\" dependencies") - (description "This plugin provides support for handling non-OTP -applications as a dependent libraries.") - (license license:expat))) - -(define-public rebar3-git-vsn - (package - (name "rebar3-git-vsn") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_git_vsn" version)) - (sha256 - (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx")))) - (build-system rebar-build-system) - (inputs - (list git-minimal/pinned)) - (arguments - `(;; Running the tests require binary artifact (tar-file containing - ;; samples git repos) TODO: remove these from the source - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((git (assoc-ref inputs "git-minimal"))) - (substitute* "src/rebar3_git_vsn.erl" - (("rebar_utils:sh\\(\"git " _) - (string-append "rebar_utils:sh(\"" git "/bin/git "))))))))) - (home-page "https://github.com/soranoba/rebar3_git_vsn") - (synopsis "Rebar3 plugin for generating the version from git") - (description "This plugin adds support for generating the version from -a git checkout.") - (license license:expat))) - -(define-public rebar3-proper - (package - (name "rebar3-proper") - (version "0.12.1") - (source - (origin - (method url-fetch) - (uri (hexpm-uri "rebar3_proper" version)) - (sha256 - (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6")))) - (build-system rebar-build-system) - (home-page "https://github.com/ferd/rebar3_proper") - (synopsis "Rebar3 PropEr plugin") - (description "This plugin allows running PropEr test suites from within -rebar3.") - (license license:bsd-3))) - (define-public erlang-lfe (package (name "erlang-lfe") (version "2.1.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/lfe/lfe") - (commit "v2.1.2"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lfe/lfe") + (commit "v2.1.2"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "180hz1p2v3vb6yyzcfwircmljlnd86ln8z80lzy3mwlyrcxblvxy")))) (build-system gnu-build-system) (arguments (list @@ -761,49 +333,47 @@ (define-public erlang-lfe (srfi srfi-26) (guix build gnu-build-system) (guix build utils)) - #:make-flags #~(list (string-append "PREFIX=" #$output) "CC=gcc") - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - ;; The following is inspired by rebar-build-system.scm - (add-before 'check 'erlang-depends - (lambda* (#:key inputs #:allow-other-keys) - (define input-directories - (list #$(this-package-native-input "rebar3-proper") - #$(this-package-native-input "erlang-proper"))) - (mkdir-p "_checkouts") - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir "/lib/erlang/lib"))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((src (string-append elibdir "/" dirname)) - (dest (string-append "_checkouts/" dirname))) - (when (not (file-exists? dest)) - ;; Symlinking will not work, since rebar3 will try - ;; to overwrite the _build directory several times - ;; with the contents of _checkout, so we copy the - ;; directory tree to _checkout and make it - ;; writable. - (copy-recursively src dest #:follow-symlinks? #t) - (for-each (cut chmod <> #o777) - (find-files dest))))) - (scandir elibdir (lambda (file) - (and (not (member file '("." ".."))) - (file-is-directory? - (string-append elibdir - "/" - file))))))))) - input-directories))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (begin - (setenv "REBAR_CACHE_DIR" "/tmp") - (invoke "make" "-j" (number->string (parallel-job-count)) - "tests")))))))) - (native-inputs (list rebar3 rebar3-proper erlang-proper)) + #:make-flags #~(list (string-append "PREFIX=" + #$output) "CC=gcc") + #:phases #~(modify-phases %standard-phases + (delete 'configure) + ;; The following is inspired by rebar-build-system.scm + (add-before 'check 'erlang-depends + (lambda* (#:key inputs #:allow-other-keys) + (define input-directories + (list #$(this-package-native-input "rebar3-proper") + #$(this-package-native-input "erlang-proper"))) + (mkdir-p "_checkouts") + (for-each + (lambda (input-dir) + (let ((elibdir (string-append input-dir "/lib/erlang/lib"))) + (when (directory-exists? elibdir) + (for-each + (lambda (dirname) + (let ((src (string-append elibdir "/" dirname)) + (dest (string-append "_checkouts/" dirname))) + (when (not (file-exists? dest)) + ;; Symlinking will not work, since rebar3 will try + ;; to overwrite the _build directory several times + ;; with the contents of _checkout, so we copy the + ;; directory tree to _checkout and make it + ;; writable. + (copy-recursively src dest #:follow-symlinks? #t) + (for-each (cut chmod <> 511) (find-files dest))))) + (scandir elibdir + (lambda (file) + (and (not (member file '("." ".."))) + (file-is-directory? (string-append elibdir "/" file))))))))) + input-directories))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (begin + (setenv "REBAR_CACHE_DIR" "/tmp") + (invoke "make" "-j" + (number->string (parallel-job-count)) + "tests")))))))) + (native-inputs (list rebar3 erlang-rebar3-proper erlang-proper)) (propagated-inputs (list erlang)) (home-page "https://github.com/lfe/lfe") (synopsis "Lisp Flavoured Erlang") @@ -812,3 +382,9 @@ (define-public erlang-lfe compiler. Code produced with it is compatible with \"normal\" Erlang code. An LFE evaluator and shell is also included.") (license license:asl2.0))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/guix/build-system/mix.scm b/guix/build-system/mix.scm new file mode 100644 index 00000000..8201b715 --- /dev/null +++ b/guix/build-system/mix.scm @@ -0,0 +1,185 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Standard build procedure for Elixir packages using 'mix'. This is +;; implemented as an extension of 'gnu-build-system'. +;; +;; Code: + +(define-module (guix build-system mix) + #:use-module (gnu packages base) + #:use-module (gnu packages elixir) + #:use-module (guix build mix-build-system) + #:use-module (guix build-system gnu) + #:use-module (guix build-system) + #:use-module (guix search-paths) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix store) + #:use-module (guix gexp) + #:use-module (guix utils) + #:export (mix-build-system hexpm-uri)) + +;; +;; hexpm +;; + +(define (hexpm-uri name version) + "Return the URI where to fetch the sources of a Hex package NAME at VERSION. + +See: https://github.com/hexpm/specifications/blob/main/endpoints.md" + (string-append "https://repo.hex.pm/tarballs/" + (string-replace-substring (strip-elixir-prefix name) "-" "_") + "-" version ".tar")) + +;; +;; utils +;; + +(define utils-locales + (make-glibc-utf8-locales glibc + #:locales (list "en_US") + #:name "glibc-utf8-locales")) + +(define (utils-elixir-default) + "Return the default Elixir package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((elixir (resolve-interface '(gnu packages elixir)))) + (module-ref elixir + 'elixir))) + +(define utils-imported-modules + `((guix build mix-build-system) + ,@%gnu-build-system-modules)) + +(define utils-modules + '((guix build mix-build-system) + (guix build utils))) + +;; +;; mix +;; + +(define* (mix-build name + inputs + #:key source + (tests? #t) + (phases '%standard-phases) + (outputs '("out")) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules utils-imported-modules) + (modules utils-modules)) + "Build SOURCE using Elixir, and with INPUTS." + + (define builder + (with-imported-modules imported-modules + #~(begin + + (use-modules #$@(sexp->gexp modules)) + + #$(with-build-variables inputs outputs + #~(mix-build #:name #$name + #:source #+source + #:system #$system + #:tests? #$tests? + #:phases #$(if (pair? + phases) + (sexp->gexp + phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad + ((guile (package->derivation (or guile + (default-guile)) system + #:graft? #f))) + (gexp->derivation name + builder + #:system system + #:graft? #f ;consistent with 'gnu-build' + #:target #f + #:guile-for-build guile))) + +(define* (mix-lower name + #:key source + inputs + native-inputs + outputs + system + target + (elixir (utils-elixir-default)) + #:allow-other-keys #:rest arguments) + "Return a bag for NAME." + + ;; The value associated to these keywords are used in the bag below and are + ;; not to be used in the arguments. + (define private-keywords + '(#:inputs #:native-inputs #:outputs #:system #:target #:elixir)) + + ;; All that is necessary to complete the build. + (define build-inputs + ;; If these packages are not present, then Elixir emits these errors: + ;; dirname: command not found + ;; basename: command not found + `(,@(standard-packages) + + ;; If no UTF-8 is present, then Elixir emits this warning: + ;; + ;; warning: the VM is running with native name encoding of latin1 + ;; which may cause Elixir to malfunction as it expects utf8. Please + ;; ensure your locale is set to UTF-8 (which can be verified by + ;; running "locale" in your shell) + ("glibc-utf8-locales" ,utils-locales) + + ("elixir" ,elixir) + + ;; If Hex is not present, mix cannot build packages. + ("mix-hex" ,mix-hex) + + ,@native-inputs + + ,@inputs)) + + (define host-inputs + (if target inputs + '())) + + (bag (name name) + (system system) + (build-inputs build-inputs) + (host-inputs host-inputs) + (outputs outputs) + (build mix-build) + (arguments (strip-keyword-arguments private-keywords arguments)))) + +(define mix-build-system + (build-system (name 'mix) + (description "The standard Mix build system") + (lower mix-lower))) + +;;; mix.scm ends here diff --git a/guix/build-system/rebar.scm b/guix/build-system/rebar.scm index de1294ec..e1258a78 100644 --- a/guix/build-system/rebar.scm +++ b/guix/build-system/rebar.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2020 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,99 +22,171 @@ (define-module (guix build-system rebar) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix gexp) + #:use-module (ice-9 regex) #:use-module (guix packages) #:use-module (guix monads) #:use-module (guix search-paths) + #:use-module (ice-9 match) #:use-module (guix build-system) #:use-module (guix build-system gnu) - #:export (hexpm-uri - hexpm-package-url - %rebar-build-system-modules - rebar-build - rebar-build-system)) + #:use-module (srfi srfi-1) + #:export (hexpm-uri hexpm-package-url %rebar-build-system-modules + rebar-build rebar-build-system)) ;;; -;;; Definitions for the hex.pm repository, +;;; pkg-name ;;; -;; URL and paths from -;; https://github.com/hexpm/specifications/blob/master/endpoints.md -(define %hexpm-repo-url +(define pkg-name-prefix + "erlang-") + +;; Pattern that an Erlang Guix package is expected to match. +(define pkg-name-prefix-re + (format #f "^~a(.*)" pkg-name-prefix)) + +(define (pkg-name->match name) + "Return the match object from NAME if NAME starts with pkg-name-prefix." + (string-match pkg-name-prefix-re name)) + +(define (pkg-name? name) + "Test if NAME is the name of an Erlang Guix package. + +Example: erlang-ssl-verify-fun is the name of an Erlang Guix package." + (or (pkg-name->match name) #f)) + +(define (pkg-name->suffix name) + "Return the suffix of the name of an Erlang Guix package." + (regexp-substitute #f + (pkg-name->match name) 1)) + +(define* (pkg-name->library-directory-name name + #:key (version "")) + "Return the name of the library directory associated to NAME. + +Example: if an Erlang Guix package name is \"erlang-ssl-verify-fun\" and its +version is 1.2.3, then the associated library directory name is: +\"ssl_verify_fun-1.2.3\". + +See: + - \"Library directory\" description: https://www.erlang.org/doc/man/code#code-path +" + (string-append (string-replace-substring (pkg-name->suffix name) "-" "_") + (if (string= version "") "" + (string-append "-" version)))) + +;;; +;;; hexpm +;;; + +;; See: https://github.com/hexpm/specifications/blob/master/endpoints.md +(define hexpm (make-parameter "https://repo.hex.pm")) -(define hexpm-package-url - (string-append (%hexpm-repo-url) "/tarballs/")) +(define hexpm-tarballs + (string-append (hexpm) "/tarballs/")) -(define (hexpm-uri name version) +(define (hexpm->uri name version) "Return a URI string for the package hosted at hex.pm corresponding to NAME -and VERSION." - (string-append hexpm-package-url name "-" version ".tar")) +and VERSION. + +XXX: should a warning be emitted? +If NAME is not an Erlang Guix package name, then emit a warning. The download +will fail if it is not correct anyway." + + (define (warn-about name) + (format #t "AssertionWarning 4dcbff27 + Assertion: re matches name. + re = ~a + name = ~a +" pkg-name-prefix-re name) name) + + (define (name->archive-name name) + (if (pkg-name? name) + (string-append (pkg-name->library-directory-name name + #:version version) + ".tar") + (string-append (warn-about name) "-" version ".tar"))) + + (string-append hexpm-tarballs + (name->archive-name name))) ;; -;; Standard build procedure for Erlang packages using Rebar. +;; utils ;; -(define %rebar-build-system-modules - ;; Build-side modules imported by default. - `((guix build rebar-build-system) - ,@%gnu-build-system-modules)) - -(define (default-rebar3) - "Return the default Rebar3 package." +(define (utils-rebar-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) - (module-ref erlang-mod 'rebar3))) + (module-ref erlang-mod + 'rebar3))) -(define (default-erlang) - "Return the default Erlang package." +(define (utils-erlang-default) ;; Lazily resolve the binding to avoid a circular dependency. (let ((erlang-mod (resolve-interface '(gnu packages erlang)))) - (module-ref erlang-mod 'erlang))) - -(define* (lower name - #:key source inputs native-inputs outputs system target - (rebar (default-rebar3)) - (erlang (default-erlang)) - #:allow-other-keys - #:rest arguments) - "Return a bag for NAME from the given arguments." - (define private-keywords - '(#:target #:rebar #:erlang #:inputs #:native-inputs)) - - (and (not target) ;XXX: no cross-compilation - (bag - (name name) - (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs)) - (build-inputs `(("rebar" ,rebar) - ("erlang" ,erlang) ;; for escriptize - ,@native-inputs - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) - (outputs outputs) - (build rebar-build) - (arguments (strip-keyword-arguments private-keywords arguments))))) - -(define* (rebar-build name inputs - #:key - guile source - (rebar-flags ''("skip_deps=true" "-vv")) - (tests? #t) - (test-target "eunit") - ;; TODO: install-name ; default: based on guix package name - (install-profile "default") - (phases '(@ (guix build rebar-build-system) - %standard-phases)) - (outputs '("out")) - (search-paths '()) - (native-search-paths '()) - (system (%current-system)) - (imported-modules %rebar-build-system-modules) - (modules '((guix build rebar-build-system) - (guix build utils)))) + (module-ref erlang-mod + 'erlang))) + +(define utils-imported-modules + `((guix build rebar-build-system) + ,@%gnu-build-system-modules)) + +;; +;; source +;; +;; If s is a Source, then s has the form (list ) where: +;; is a string representing the name of a library directory. +;; is an origin (see: guix/packages.scm) which represents the +;; source code associated to this library. +;; + +(define source->name + car) +(define source->origin + cadr) + +;; +;; input +;; +;; If i is an Input, then i has the form (list ) where: +;; is a string representing the name of a package. +;; is a package with the associated name. + +(define input->name + car) +(define input->package + cadr) + +(define (input->source input) + "Return a Source associated to the Input INPUT." + (match input + ((name package) + (list (pkg-name->library-directory-name name) + (package-source package))))) + +;; +;; rebar +;; + +(define* (rebar-build name + inputs + #:key guile + source + ;; XXX: these are useless. + (rebar-flags ''("skip_deps=true" "-vv")) + (tests? #t) + (test-target "eunit") + ;; TODO: install-name ; default: based on guix package name + (install-profile "default") + (phases '(@ (guix build rebar-build-system) + %standard-phases)) + (outputs '("out")) + (search-paths '()) + (native-search-paths '()) + (system (%current-system)) + (imported-modules utils-imported-modules) + (modules '((guix build rebar-build-system) + (guix build utils))) + (sources-erlang '())) "Build SOURCE with INPUTS." (define builder @@ -122,35 +195,94 @@ (define* (rebar-build name inputs (use-modules #$@(sexp->gexp modules)) #$(with-build-variables inputs outputs + #~(rebar-build #:source #+source - #:system #$system - #:name #$name - #:rebar-flags #$rebar-flags - #:tests? #$tests? - #:test-target #$test-target - ;; TODO: #:install-name #$install-name - #:install-profile #$install-profile - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:outputs %outputs - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:inputs %build-inputs))))) - - (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) - system #:graft? #f))) + #:sources-erlang '#$sources-erlang + #:system #$system + #:name #$name + #:rebar-flags #$rebar-flags + #:tests? #$tests? + #:test-target #$test-target + ;; TODO: #:install-name #$install-name + #:install-profile #$install-profile + #:phases #$(if (pair? + phases) + (sexp->gexp + phases) + phases) + #:outputs %outputs + #:search-paths '#$(sexp->gexp + (map + search-path-specification->sexp + search-paths)) + #:inputs + %build-inputs))))) + + (mlet %store-monad + ((guile (package->derivation (or guile + (default-guile)) system + #:graft? #f))) + ;; Note: Always pass #:graft? #f. Without it, ALLOWED-REFERENCES & ;; co. would be interpreted as referring to grafted packages. - (gexp->derivation name builder + (gexp->derivation name + builder #:system system #:target #f #:graft? #f #:guile-for-build guile))) +(define* (rebar-lower name + #:key (erlang (utils-erlang-default)) + inputs + native-inputs + outputs + (rebar (utils-rebar-default)) + source + system + target + #:allow-other-keys #:rest arguments) + "Return a bag for NAME from the given arguments." + + (let* ((erlang-packages ;List of Erlang packages. + (filter (lambda (input) + (pkg-name? (input->name input))) + (append inputs native-inputs))) + + (erlang-sources (map (lambda (input) + (input->source input)) erlang-packages))) + + (define private-keywords + '(#:target #:rebar #:erlang #:inputs #:native-inputs #:sources-erlang)) + + (and (not target) ;XXX: no cross-compilation + (bag (name name) + (system system) + (host-inputs inputs) + (build-inputs `(,@(standard-packages) ("erlang" ,erlang) + ("rebar" ,rebar) + ,@inputs + ,@native-inputs)) + (outputs outputs) + (build rebar-build) + (arguments (append (list #:sources-erlang erlang-sources) + (strip-keyword-arguments private-keywords + arguments))))))) + (define rebar-build-system - (build-system - (name 'rebar) - (description "The standard Rebar build system") - (lower lower))) + (build-system (name 'rebar) + (description "The standard Rebar build system") + (lower rebar-lower))) + +;;; +;;; Exports +;;; + +(define hexpm-uri + hexpm->uri) + +(define hexpm-package-url + hexpm-tarballs) + +(define %rebar-build-system-modules + utils-imported-modules) diff --git a/guix/build/mix-build-system.scm b/guix/build/mix-build-system.scm new file mode 100644 index 00000000..1d17ae49 --- /dev/null +++ b/guix/build/mix-build-system.scm @@ -0,0 +1,373 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Pierre-Henry Fröhring +;;; +;;; 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 . + +;; Commentary: +;; +;; Builder-side code of the standard Mix package build procedure. +;; +;; The standard procedure is presented here: +;; https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html#project-compilation +;; +;; It boils down to: +;; 1) MIX_ENV=prod mix compile +;; 2) mix test +;; +;; Most of the code here comes from the necessity to convince mix to compile +;; without accessing the network. Here is the procedure adapted for Guix: +;; if: +;; 1) `' is an archive of a package downloaded from hex.pm. +;; See: https://github.com/hexpm/specifications/blob/main/package_tarball.md +;; 2) `' is the name of the Hex library, e.g. hex-2.0.5. +;; `' is the path in the store of Hex. +;; See: `(gnu packages elixir)' +;; +;; then the steps to build a package pkg are: +;; 1) tar +;; 2) tar contents.tar.gz +;; 3) export MIX_ENV=prod +;; 4) export MIX_HOME=.mix +;; 5) export MIX_ARCHIVES="$(MIX_HOME)"/archives +;; 6) mkdir -p "$(MIX_ARCHIVES)" +;; 7) ln -snd /lib/ "$(MIX_ARCHIVES)"// +;; 8) is either `prod' or `shared' depending on mix.exs +;; see: `build_per_environment' in mix documentation. +;; 9) For all Elixir or Erlang package p in inputs, we have the name +;; of the associated library (e.g. hex-2.0.5). We must: +;; install p under _build//lib/ +;; install p source _build//lib/ +;; 10) mix compile --no-deps-check +;; 11) mix test --no-deps-check +;; 12) install build artifacts under #$out/lib/elixir/X.Y/ +;; where X and Y are the major and minor version numbers of Elixir. +;; +;; Code: + +(define-module (guix build mix-build-system) + #:use-module (guix build utils) + #:use-module ((guix build gnu-build-system) + #:prefix gnu:) + #:use-module (ice-9 regex) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:export (mix-build strip-elixir-prefix %standard-phases)) + +;; +;; version +;; + +;; XXX: copied from (guix utils) since not available from the build side. +;; XXX: There may be a way to avoid this duplicated code? +(define (version-prefix version-string num-parts) + "Truncate version-string to the first num-parts components of the version. +For example, (version-prefix \"2.1.47.4.23\" 3) returns \"2.1.47\"" + (string-join (take (string-split version-string #\.) num-parts) ".")) + +;; XXX: copied from (guix utils) since not available from the build side. +;; XXX: There may be a way to avoid this duplicated code? +(define (version-major+minor version-string) + "Return \".\", where major and minor are the major and +minor version numbers from version-string." + (version-prefix version-string 2)) + +;; +;; pkg +;; + +;; The prefix of Elixir packages as a regular expression. +(define pkg-elixir-prefix + "^elixir-") + +;; The prefix of Erlang packages as a regular expression. +(define pkg-erlang-prefix + "^erlang-") + +(define (pkg-name->library-name name) + "Return the name of the Mix project deduced from the name of the Guix package. + +For example: elixir-a-pkg-1.0.2 → a_pkg" + + (let* ((re (format #f "~a(.*)" pkg-elixir-prefix)) + (re-match (string-match re name)) + (name-version (if re-match + (regexp-substitute #f re-match 1) + (error (format #f "AssertionError d722a480 + Assertion: re matches name. + re = ~a + name = ~a" re + name))))) + + ;; A snake_case name. + (string-join (drop-right (string-split name-version #\-) 1) "_"))) + +(define (pkg->dir-install elixir-store pkg-store pkg-name) + "Return the path under the path PKG-STORE where to install the package named PKG-NAME given the path of the Elixir used to build ELIXIR-STORE. + +Example: + - if: + - elixir-store = /gnu/store/…elixir-1.14.0 + - pkg-store = /gnu/store/…kv-1.0.0 + - pkg-name = elixir-kv + - then: + - (pkg->dir-install elixir-store pkg-store pkg-name) = /gnu/store/…kv-1.0.0/lib/elixir/1.14/kv" + (let ((X.Y (path->elixir-X.Y elixir-store)) + (lib-name (pkg-name->library-name pkg-name))) + (string-append (path->elixir-lib pkg-store X.Y) "/" lib-name))) + +;; +;; mix +;; + +;; See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments +(define mix-MIX_HOME + "MIX_HOME") +(define mix-MIX_ENV + "MIX_ENV") +(define mix-MIX_ENV-prod + "prod") + +(define (mix-target-dir) + "Return the directory where build artifacts are to be installed according to +MIX_ENV in the current directory." + + (format #f "_build/~a/lib" + (getenv mix-MIX_ENV))) + +;; +;; path +;; + +(define (path->elixir-lib path X.Y) + "Return the path of the directory where libraries of an Elixir package are installed in the store." + (string-append path "/lib/elixir/" X.Y)) + +(define (path->erlang-lib path) + "Return the path of the directory where libraries of an Erlang package are installed in the store." + (string-append path "/lib/erlang/lib")) + +(define (path->elixir-X.Y elixir) + "Given a path in the store where elixir has been installed, return its +version as X.Y where X and Y are its major and minor versions." + (let ((version (last (string-split elixir #\-)))) + (version-major+minor version))) + +;; +;; phase +;; + +(define* (phase-unpack #:key source #:allow-other-keys) + "Unpack SOURCE." + (invoke "tar" "xvf" source) + (invoke "tar" "xvf" "contents.tar.gz")) + +(define* (phase-configure-mix-env #:key (mix-env mix-MIX_ENV-prod) + #:allow-other-keys) + "Set default MIX_ENV." + + (let ((values (list mix-MIX_ENV-prod "shared"))) + (when (not (member mix-env values string=?)) + (error (format #f "AssertionError 45f9a67d + Assertion: mix-env is one of values. + values = ~a +" values))) + (setenv mix-MIX_ENV mix-env))) + +(define* (phase-install-hex #:key inputs name #:allow-other-keys) + "Install Hex." + + (let* ((hex-lib (string-append (assoc-ref inputs "mix-hex") "/lib")) + (hex-name (last (scandir hex-lib))) + (MIX_ARCHIVES "MIX_ARCHIVES") + (hex-archive-path "")) + + (setenv mix-MIX_HOME ".mix") + (setenv MIX_ARCHIVES + (string-append (getenv mix-MIX_HOME) "/archives")) + (set! hex-archive-path + (string-append (getenv MIX_ARCHIVES) "/" hex-name)) + (mkdir-p hex-archive-path) + (symlink (string-append hex-lib "/" hex-name) + (string-append hex-archive-path "/" hex-name)))) + +;; Below are definitions useful to understand the following code. +;; +;; - « p : StorePath » means that « p is a String that represents a path of a +;; package in the store ». +;; +;; - « i : Input » means that i has the form (key . path) where key : String that +;; represent the name of a package and path : StorePath. +;; +;; - « al : AList » means that « al is an Association List ». +;; +;; - « al : AList Input » means that « al is an Association List of Input ». +;; +;; - « p : Pkg » means that p has the form (type . path) where type is either +;; 'erlang or 'elixir and path : StorePath. +;; +;; - « l : Lib » means that p has the form (lib-name . lib-path) where +;; lib-name is the name of an Erlang or Elixir library and lib-path is its path. +(define* (phase-install-dependencies #:key inputs #:allow-other-keys) + "Install dependencies." + + (let ((target-dir (mix-target-dir)) + (X.Y (path->elixir-X.Y (assoc-ref inputs "elixir")))) + + ;; Where to install the dependencies. + (mkdir-p target-dir) + + (define (install-lib lib) + "Install a Lib LIB under target-dir." + ;; XXX: use match + (let ((lib-name (car lib)) + (lib-path (cdr lib))) + (let ((target (string-append target-dir "/" lib-name))) + (symlink lib-path target)))) + + (define (install-libs libraries) + "Install the set of the list of Lib LIBRARIES under target-dir." + (for-each (lambda (lib) + (install-lib lib)) libraries)) + + (define (pkg->libraries pkg) + "Return the list of Lib libraries associated to a Pkg." + ;; XXX: use match + (let* ((pkg-type (car pkg)) + (pkg-path (cdr pkg)) + (lib-folder (cond + ((eq? pkg-type + 'elixir) + (path->elixir-lib pkg-path X.Y)) + ((eq? pkg-type + 'erlang) + (path->erlang-lib pkg-path))))) + (map (lambda (lib-name) + (cons lib-name + (string-append lib-folder "/" lib-name))) + (drop (scandir lib-folder) 2)))) + + (define (install-pkg-libraries pkg) + "Install all libraries of a given Pkg PKG under target-dir." + (install-libs (pkg->libraries pkg))) + + (define (input->pkg input) + "Return a Pkg if Input INPUT is an Erlang or Elixir Input else #f." + (let ((type? (cond + ((string-match pkg-erlang-prefix + (car input)) + 'erlang) + ((string-match pkg-elixir-prefix + (car input)) + 'elixir) + (#t #f)))) + (if type? + (cons type? + (cdr input)) #f))) + + (define (inputs->pkgs inputs) + "Return the a list of Pkg, one for each Erlang or Elixir Input in INPUTS." + (filter pair? + (map input->pkg inputs))) + + (for-each (lambda (pkg) + (install-pkg-libraries pkg)) + (inputs->pkgs inputs)))) + +(define* (phase-build . args_ignored) + "Builds the Mix project according to MIX_ENV." + (invoke "mix" "compile" "--no-deps-check")) + +(define* (phase-check #:key (tests? #t) name #:allow-other-keys) + "Test the Mix project." + (if tests? + (begin + (let ((mix-env (getenv mix-MIX_ENV))) + (setenv mix-MIX_ENV "test") + (invoke "mix" "test" "--no-deps-check") + (setenv mix-MIX_ENV mix-env))) + (format #t "Tests have been skipped since test? parameter value was: ~a. +" + tests?))) + +(define* (phase-remove-mix-dirs . ignored_args) + "Remove all .mix/ directories." + (let ((mix-dirs (find-files "." + (file-name-predicate (format #f "\\~a$" + (getenv + mix-MIX_HOME))) + #:directories? #t))) + (for-each (lambda (mix-dir) + (delete-file-recursively mix-dir)) mix-dirs))) + +(define* (phase-install #:key inputs outputs name #:allow-other-keys) + "Install build artifacts in the store." + (let ((dir-build (string-append (mix-target-dir) "/" + (pkg-name->library-name name))) + (dir-install (pkg->dir-install (assoc-ref inputs "elixir") + (assoc-ref outputs "out") name))) + (mkdir-p dir-install) + (copy-recursively dir-build dir-install + #:follow-symlinks? #t))) + +(define mix-%standard-phases + (modify-phases gnu:%standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'unpack + phase-unpack) + (add-after 'unpack 'condifure-mix-env + phase-configure-mix-env) + (add-after 'patch-generated-file-shebangs 'install-hex + phase-install-hex) + (add-after 'install-hex 'install-dependencies + phase-install-dependencies) + (replace 'build + phase-build) + (replace 'check + phase-check) + (add-before 'install 'remove-mix-dirs + phase-remove-mix-dirs) + (replace 'install + phase-install))) + +(define* (mix-build #:key inputs + (phases mix-%standard-phases) + #:allow-other-keys #:rest args) + "Build the given Mix package, applying all of PHASES in order." + (apply gnu:gnu-build + #:inputs inputs + #:phases phases + args)) + +;; +;; This section gather exports. +;; + +(define (strip-elixir-prefix name) + (let* ((re (format #f "~a(.*)" pkg-elixir-prefix)) + (re-match (string-match re name))) + + (if re-match + (regexp-substitute #f re-match 1) + (error (format #f "AssertionError d722a480 + Assertion: re matches name. + re = ~a + name = ~a" re name))))) + +(define %standard-phases + mix-%standard-phases) + +;;; mix-build-system.scm ends here diff --git a/guix/build/rebar-build-system.scm b/guix/build/rebar-build-system.scm index fb664228..80813225 100644 --- a/guix/build/rebar-build-system.scm +++ b/guix/build/rebar-build-system.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016, 2018 Ricardo Wurmus ;;; Copyright © 2019 Björn Höfling ;;; Copyright © 2020, 2022 Hartmut Goebel +;;; Copyright © 2023 Pierre-Henry Fröhring ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,129 +20,222 @@ ;;; along with GNU Guix. If not, see . (define-module (guix build rebar-build-system) - #:use-module ((guix build gnu-build-system) #:prefix gnu:) - #:use-module ((guix build utils) #:hide (delete)) + #:use-module ((guix build gnu-build-system) + #:prefix gnu:) + #:use-module ((guix build utils) + #:hide (delete)) #:use-module (ice-9 match) #:use-module (ice-9 ftw) + #:use-module (ice-9 string-fun) + #:use-module (ice-9 receive) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) - #:export (rebar-build - %standard-phases)) + #:export (rebar-build %standard-phases)) ;; ;; Builder-side code of the standard build procedure for Erlang packages using ;; rebar3. ;; -;; TODO: Think about whether bindir ("ebin"), libdir ("priv") and includedir -;; "(include") need to be configurable -(define %erlang-libdir "/lib/erlang/lib") - -(define* (erlang-depends #:key inputs #:allow-other-keys) - (define input-directories - (match inputs - (((_ . dir) ...) - dir))) - (mkdir-p "_checkouts") - - (for-each - (lambda (input-dir) - (let ((elibdir (string-append input-dir %erlang-libdir))) - (when (directory-exists? elibdir) - (for-each - (lambda (dirname) - (let ((dest (string-append elibdir "/" dirname)) - (link (string-append "_checkouts/" dirname))) - (when (not (file-exists? link)) - ;; RETHINK: Maybe better copy and make writable to avoid some - ;; error messages e.g. when using with rebar3-git-vsn. - (symlink dest link)))) - (list-directories elibdir))))) - input-directories)) - -(define* (unpack #:key source #:allow-other-keys) - "Unpack SOURCE in the working directory, and change directory within the -source. When SOURCE is a directory, copy it in a sub-directory of the current -working directory." - (let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack))) - (gnu-unpack #:source source) - ;; Packages from hex.pm typically have a contents.tar.gz containing the - ;; actual source. If this tar file exists, extract it. - (when (file-exists? "contents.tar.gz") - (invoke "tar" "xvf" "contents.tar.gz")))) - -(define* (build #:key (rebar-flags '()) #:allow-other-keys) - (apply invoke `("rebar3" "compile" ,@rebar-flags))) - -(define* (check #:key target (rebar-flags '()) (tests? (not target)) - (test-target "eunit") - #:allow-other-keys) - (if tests? - (apply invoke `("rebar3" ,test-target ,@rebar-flags)) - (format #t "test suite not run~%"))) +;; +;; utils +;; -(define (erlang-package? name) - "Check if NAME correspond to the name of an Erlang package." - (string-prefix? "erlang-" name)) - -(define (package-name-version->erlang-name name+ver) - "Convert the Guix package NAME-VER to the corresponding Erlang name-version -format. Essentially drop the prefix used in Guix and replace dashes by -underscores." - (let* ((name- (package-name->name+version name+ver))) - (string-join - (string-split - (if (erlang-package? name-) ; checks for "erlang-" prefix - (string-drop name- (string-length "erlang-")) - name-) - #\-) - "_"))) - -(define (list-directories directory) +(define (utils-list-directories directory) "Return file names of the sub-directory of DIRECTORY." (scandir directory (lambda (file) - (and (not (member file '("." ".."))) + (and (not (member file + '("." ".."))) (file-is-directory? (string-append directory "/" file)))))) -(define* (install #:key name outputs - (install-name (package-name-version->erlang-name name)) - (install-profile "default") ; build profile outputs to install - #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (pkg-dir (string-append out %erlang-libdir "/" install-name))) - (let ((bin-dir (string-append "_build/" install-profile "/bin")) - (lib-dir (string-append "_build/" install-profile "/lib"))) - ;; install _build/PROFILE/bin - (when (file-exists? bin-dir) - (copy-recursively bin-dir out #:follow-symlinks? #t)) - ;; install _build/PROFILE/lib/*/{ebin,include,priv} - (for-each - (lambda (*) - (for-each - (lambda (dirname) - (let ((src-dir (string-append lib-dir "/" * "/" dirname)) - (dst-dir (string-append pkg-dir "/" dirname))) - (when (file-exists? src-dir) - (copy-recursively src-dir dst-dir #:follow-symlinks? #t)) - (false-if-exception - (delete-file (string-append dst-dir "/.gitignore"))))) - '("ebin" "include" "priv"))) - (list-directories lib-dir)) - (false-if-exception - (delete-file (string-append pkg-dir "/priv/Run-eunit-loop.expect")))))) - -(define %standard-phases +;; +;; source +;; + +(define source->name + car) +(define source->tar + cadr) + +;; +;; tar +;; + +(define* (tar-unpack tar) + (invoke "tar" "xvf" tar) + (invoke "tar" "xvf" "contents.tar.gz") + + ;; Prevent an error message at install phase. + ;; . + ;; rebar3 compile produces a symlinks like so in _build/: + ;; priv -> ../../../../priv + ;; priv -> ../../../../include + ;; + ;; The install phase copies whatever has been built to the output directory. + ;; If the priv/ directory is absent, then an error `i/o error: + ;; _build/…/priv: No such file or directory' occurs. So, we make sure that a + ;; directory exists. + (for-each (lambda (dir) + (mkdir-p dir)) + (list "priv" "include"))) + +;;; +;;; pkg-name +;;; + +(define pkg-name-prefix + "erlang-") + +(define pkg-name-prefix-re + (format #f "^~a(.*)" pkg-name-prefix)) + +(define (pkg-name? name) + (string-match (format #f "^~a" pkg-name-prefix) name)) + +(define (pkg-name->name name) + (regexp-substitute #f + (string-match pkg-name-prefix-re name) 1)) + +(define* (pkg-name->lib-name name) + "erlang-a-b-1.0.2 -> a_b-1.0.2" + + (let ((elements (string-split (pkg-name->name name) #\-))) + (string-append (string-join (drop-right elements 1) "_") "-" + (last elements)))) + +(define* (pkg-name->build-dir name + #:key (profile "default")) + (string-append (format #f "_build/~a/lib/" profile) + (car (string-split (pkg-name->lib-name name) #\-)))) + +(define (lib-name-no-version lib-name) + (car (string-split lib-name #\-))) + +;; +;; phase +;; + +(define* (phase-unpack #:key source #:allow-other-keys) + (tar-unpack source)) + +(define (phase-configure-HOME . ignored_args) + "In some cases, it is needed for the environment variable HOME to be defined +as a directory with write permission. + +Examples of errors: + - Could not write to \"/homeless-shelter/.cache/rebar3/hex\". Please ensure the path is writeable. +" + + (let ((HOME "HOME") + (tmp "/tmp")) + (setenv HOME tmp) + (format #t "~a=~a\n" HOME tmp))) + +(define* (phase-configure-dependencies #:key name + version + inputs + sources-erlang + (install-profile "default") + #:allow-other-keys) + + ;; If source in sources-erlang, then install it under _checkouts/. + ;; see: https://rebar3.org/docs/configuration/dependencies/#checkout-dependencies + (let ((_checkouts "_checkouts")) + (mkdir-p _checkouts) + (for-each (lambda (source) + (match source + ((name tar) + (let ((src (string-append _checkouts "/" name))) + (mkdir-p src) + (with-directory-excursion src + (tar-unpack tar)))) + (_ #f))) sources-erlang)) + + ;; If input in inputs is an Erlang package, then install it under _build/. + (let ((_build (format #f "_build/~a/checkouts" install-profile))) + (mkdir-p _build) + (match inputs + (((_ . dirs) ..1) + (for-each (lambda (dir) + (let ((elib (string-append dir "/lib/erlang/lib"))) + (when (directory-exists? elib) + (for-each (lambda (dirname) + (let ((src (string-append elib "/" dirname)) + (dest (string-append _build "/" + (lib-name-no-version + dirname)))) + (copy-recursively src dest + #:log #f) + (mkdir-p (string-append dest "/priv")))) + (utils-list-directories elib))))) dirs)) + (_ #f)))) + +(define* (phase-build #:key name + (rebar-flags '()) #:allow-other-keys) + (apply invoke + `("rebar3" "compile" + ,@rebar-flags))) + +(define* (phase-check #:key target + (rebar-flags '()) + (tests? (not target)) + (test-target "eunit") + #:allow-other-keys) + (if tests? + (apply invoke + `("rebar3" ,test-target + ,@rebar-flags)) + (format #t "test suite not run~%"))) + +(define* (phase-install #:key name outputs + (install-profile "default") #:allow-other-keys) + (let* ((build-dir (pkg-name->build-dir name + #:profile install-profile)) + (out-build-dir (string-append (assoc-ref outputs "out") + "/lib/erlang/lib/" + (pkg-name->lib-name name)))) + + (mkdir-p out-build-dir) + (copy-recursively build-dir out-build-dir + #:follow-symlinks? #t))) + +;; +;; rebar +;; + +(define rebar-%standard-phases (modify-phases gnu:%standard-phases - (replace 'unpack unpack) + (replace 'unpack + phase-unpack) + (add-after 'unpack 'configure-HOME + phase-configure-HOME) (delete 'bootstrap) (delete 'configure) - (add-before 'build 'erlang-depends erlang-depends) - (replace 'build build) - (replace 'check check) - (replace 'install install))) + (add-before 'build 'configure-dependencies + phase-configure-dependencies) + (replace 'build + phase-build) + (replace 'check + phase-check) + (replace 'install + phase-install))) -(define* (rebar-build #:key inputs (phases %standard-phases) +(define* (rebar-build #:key inputs + (phases rebar-%standard-phases) #:allow-other-keys #:rest args) "Build the given Erlang package, applying all of PHASES in order." - (apply gnu:gnu-build #:inputs inputs #:phases phases args)) + (apply gnu:gnu-build + #:inputs inputs + #:phases phases + args)) + +;; +;; Exported bindings. +;; + +(define %standard-phases rebar-%standard-phases) + + +;;; rebar-build-system.scm ends here base-commit: 4dfbc536689b07e56aead3dd864b8af54613d091 -- 2.41.0 ------------=_1702868522-25222-1--