From be1f8ec4f599a5325216850bcae6e18a8d96cdec Mon Sep 17 00:00:00 2001 From: Ryan Rasti Date: Mon, 30 Jan 2023 02:35:12 -0800 Subject: [PATCH] fetchHex produces outputs that mix will accept --- pkgs/development/beam-modules/fetch-hex.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/beam-modules/fetch-hex.nix b/pkgs/development/beam-modules/fetch-hex.nix index 9d7e18ce24ed..2d1fa623745a 100644 --- a/pkgs/development/beam-modules/fetch-hex.nix +++ b/pkgs/development/beam-modules/fetch-hex.nix @@ -19,9 +19,18 @@ stdenv.mkDerivation ({ }; unpackCmd = '' - tar -xf $curSrc contents.tar.gz + tar -xf $curSrc contents.tar.gz CHECKSUM metadata.config mkdir contents tar -C contents -xzf contents.tar.gz + mv metadata.config contents/hex_metadata.config + + # To make the extracted hex tarballs appear legitimate to mix, we need to + # make sure they contain not just the contents of contents.tar.gz but also + # a .hex file with some lock metadata. + # We use an old version of .hex file per hex's mix_task_test.exs since it + # is just plain-text instead of an encoded format. + # See: https://github.com/hexpm/hex/blob/main/test/hex/mix_task_test.exs#L410 + echo -n "${pkg},${version},$(cat CHECKSUM | tr '[:upper:]' '[:lower:]'),hexpm" > contents/.hex ''; installPhase = ''