Skip to content

Commit

Permalink
Merge pull request #53 from bcdevices/upstream_upstream_v1.18.4
Browse files Browse the repository at this point in the history
Merge nerves upstream v1.18.4
  • Loading branch information
Eric Rauer authored May 12, 2022
2 parents e22a2ff + a143ca0 commit 0d5f481
Show file tree
Hide file tree
Showing 14 changed files with 286 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
build:
name: Build Nerves system
runs-on: ubuntu-latest
container: nervesproject/nerves_system_br:1.18.5
container: nervesproject/nerves_system_br:1.18.6
env:
ELIXIR_VERSION: 1.12.3-otp-24
steps:
Expand Down
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
elixir 1.12.2-otp-24
erlang 24.1.2
erlang 24.3.2
103 changes: 103 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,108 @@
# Changelog

This project does NOT follow semantic versioning. The version increases as
follows:

1. Major version updates are breaking updates to the build infrastructure.
These should be very rare.
2. Minor version updates are made for every major Buildroot release. This
may also include Erlang/OTP and Linux kernel updates. These are made four
times a year shortly after the Buildroot releases.
3. Patch version updates are made for Buildroot minor releases, Erlang/OTP
releases, and Linux kernel updates. They're also made to fix bugs and add
features to the build infrastructure.

## v1.18.4

This release bumps Erlang to 24.3.2 and should be a low risk upgrade from the
previous release.

* Changes
* Pull in upstream Linux SquashFS patch to improve file system performance

* Updated dependencies
* [nerves_system_br v1.18.6](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.18.6)

## v1.18.3

This is a Buildroot and Erlang bug and security fix release. It should be a low
risk upgrade from the previous release.

* Updated dependencies
* [nerves_system_br v1.18.5](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.18.5)

* Changes
* Enable Prolific PL2303 USB->Serial driver

## v1.18.2

This is a Buildroot and Erlang bug fix release. It should be a low risk upgrade
from the previous release.

* Updated dependencies
* [nerves_system_br v1.18.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.18.4)

* Changes
* Specify CPU-specific flags when compiling NIFs and ports. This fixes an
issue where some optimizations could not be enabled in NIFs even though it
should be possible to have them. E.g., ARM NEON support for CPUs that have
it.
* Build the Wireguard kernel driver. This is a small device driver that
enables a number of VPN-based use cases.

## v1.18.1

* Updated dependencies
* [nerves_system_br v1.18.3](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.18.3)

* Changes
* Programs that use OpenMP will run now. The OpenMP shared library
(`libgomp.so`) was supplied by the toolchain, but not copied.

## v1.18.0

This release updates to Buildroot 2021.11 and OTP 24.2. If you have made a
custom system, please review the `nerves_system_br` [release
notes](https://github.com/nerves-project/nerves_system_br/blob/v1.18.2/CHANGELOG.md#v1180)
since Buildroot 2021.11 changed some Raspberry Pi firmware options.

* Updated dependencies
* [nerves_system_br v1.18.2](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.18.2)
* [Buildroot 2021.11](http://lists.busybox.net/pipermail/buildroot/2021-December/629911.html)
* [Erlang/OTP 24.2](https://erlang.org/download/OTP-24.2.README)
* [Raspberry Pi WiFi firmware](https://github.com/RPi-Distro/firmware-nonfree/blob/bullseye/debian/changelog)
* Linux 5.10.88 with Raspberry Pi patches
* GCC 10.3

* Improvements
* Support for the `dl.nerves-project.org` backup site. Due to a GitHub outage
in November, there was a 2 day period of failing builds since some packages
could not be downloaded. We implemented the backup site to prevent this in
the future. This update is in the `nerves_defconfig`.
* Use new build ORB on CircleCI. This ORB will shorten build times to fit in
CircleCI's new free tier limits. Please update if building your own systems.

## v1.17.3

* Updated dependencies
* [nerves_system_br v1.17.4](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.17.4)
* [Buildroot 2021.08.2](http://lists.busybox.net/pipermail/buildroot/2021-November/628323.html)
* [Erlang/OTP 24.1.7](https://erlang.org/download/OTP-24.1.7.README).

## v1.17.2

This release updates the Linux kernel from 5.4 to 5.10 to follow the Raspberry
Pi OS.

* Fixes
* Shrink down the artifact size by reducing duplication in DRI libraries. This
has no runtime change.

* Updated dependencies
* [nerves_system_br v1.17.3](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.17.3)
* [Erlang/OTP 24.1.4](https://erlang.org/download/OTP-24.1.4.README).
* Linux 5.10.63 with Raspberry Pi patches

## v1.17.1

This is a security/bug fix patch release. It should be safe to update for
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nervesproject/nerves_system_br:1.17.2
FROM nervesproject/nerves_system_br:v1.18.6
LABEL "com.github.actions.name"="Build System"
LABEL "com.github.actions.description"="Build Nerves System"
LABEL "com.github.actions.icon"="package"
Expand Down
2 changes: 1 addition & 1 deletion PACKAGES-VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.16.9
0.16.10
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.18.16
0.19.0
4 changes: 2 additions & 2 deletions fwup.conf
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,10 @@ meta-misc = ${NERVES_FW_MISC}
# This is important, since this is the order that they're written on a firmware
# update due to the event driven nature of the update system.
file-resource fixup.dat {
host-path = "${NERVES_SYSTEM}/images/rpi-firmware/fixup.dat"
host-path = "${NERVES_SYSTEM}/images/rpi-firmware/fixup4x.dat"
}
file-resource start.elf {
host-path = "${NERVES_SYSTEM}/images/rpi-firmware/start.elf"
host-path = "${NERVES_SYSTEM}/images/rpi-firmware/start4x.elf"
}
file-resource config.txt {
host-path = "${NERVES_SYSTEM}/images/config.txt"
Expand Down
3 changes: 2 additions & 1 deletion linux-5.10.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_ISCSI_ATTRS=y
CONFIG_NETDEVICES=y
CONFIG_WIREGUARD=m
CONFIG_TUN=m
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
Expand Down Expand Up @@ -436,7 +437,6 @@ CONFIG_TINYDRM_REPAPER=m
CONFIG_FB=y
CONFIG_FB_BCM2708=y
CONFIG_FB_RPISENSE=m
CONFIG_BACKLIGHT_RPI=m
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
Expand Down Expand Up @@ -467,6 +467,7 @@ CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=y
CONFIG_MMC=y
Expand Down
121 changes: 121 additions & 0 deletions linux/0001-squashfs-provide-backing_dev_info-in-order-to-disabl.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
From 9eec1d897139e5de287af5d559a02b811b844d82 Mon Sep 17 00:00:00 2001
From: Zheng Liang <[email protected]>
Date: Fri, 14 Jan 2022 14:03:31 -0800
Subject: [PATCH] squashfs: provide backing_dev_info in order to disable
read-ahead

Commit c1f6925e1091 ("mm: put readahead pages in cache earlier") causes
the read performance of squashfs to deteriorate.Through testing, we find
that the performance will be back by closing the readahead of squashfs.

So we want to learn the way of ubifs, provides backing_dev_info and
disable read-ahead

We tested the following data by fio.
squashfs image blocksize=128K
test command:

fio --name basic --bs=? --filename="/mnt/test_file" --rw=? --iodepth=1 --ioengine=psync --runtime=200 --time_based

turn on squashfs readahead in 5.10 kernel
bs(k) read/randread MB/s
4 randread 271
128 randread 231
1024 randread 246
4 read 310
128 read 245
1024 read 247

turn off squashfs readahead in 5.10 kernel
bs(k) read/randread MB/s
4 randread 293
128 randread 330
1024 randread 363
4 read 338
128 read 360
1024 read 365

turn on squashfs readahead and revert the
commit c1f6925e1091("mm: put readahead
pages in cache earlier") in 5.10 kernel
bs(k) read/randread MB/s
4 randread 289
128 randread 306
1024 randread 335
4 read 337
128 read 336
1024 read 338

Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Zheng Liang <[email protected]>
Reviewed-by: Phillip Lougher <[email protected]>
Cc: Zhang Yi <[email protected]>
Cc: Hou Tao <[email protected]>
Cc: Miao Xie <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
---
fs/squashfs/super.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index bb44ff4c5cc6..b1b556dbce12 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -29,6 +29,7 @@
#include <linux/module.h>
#include <linux/magic.h>
#include <linux/xattr.h>
+#include <linux/backing-dev.h>

#include "squashfs_fs.h"
#include "squashfs_fs_sb.h"
@@ -112,6 +113,24 @@ static const struct squashfs_decompressor *supported_squashfs_filesystem(
return decompressor;
}

+static int squashfs_bdi_init(struct super_block *sb)
+{
+ int err;
+ unsigned int major = MAJOR(sb->s_dev);
+ unsigned int minor = MINOR(sb->s_dev);
+
+ bdi_put(sb->s_bdi);
+ sb->s_bdi = &noop_backing_dev_info;
+
+ err = super_setup_bdi_name(sb, "squashfs_%u_%u", major, minor);
+ if (err)
+ return err;
+
+ sb->s_bdi->ra_pages = 0;
+ sb->s_bdi->io_pages = 0;
+
+ return 0;
+}

static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc)
{
@@ -127,6 +146,20 @@ static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc)

TRACE("Entered squashfs_fill_superblock\n");

+ /*
+ * squashfs provides 'backing_dev_info' in order to disable read-ahead. For
+ * squashfs, I/O is not deferred, it is done immediately in readpage,
+ * which means the user would always have to wait their own I/O. So the effect
+ * of readahead is very weak for squashfs. squashfs_bdi_init will set
+ * sb->s_bdi->ra_pages and sb->s_bdi->io_pages to 0 and close readahead for
+ * squashfs.
+ */
+ err = squashfs_bdi_init(sb);
+ if (err) {
+ errorf(fc, "squashfs init bdi failed");
+ return err;
+ }
+
sb->s_fs_info = kzalloc(sizeof(*msblk), GFP_KERNEL);
if (sb->s_fs_info == NULL) {
ERROR("Failed to allocate squashfs_sb_info\n");
--
2.25.1

14 changes: 8 additions & 6 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,19 @@ defmodule LY11SystemRpi4.MixProject do
{"TARGET_ARCH", "aarch64"},
{"TARGET_CPU", "cortex_a72"},
{"TARGET_OS", "linux"},
{"TARGET_ABI", "gnu"}
{"TARGET_ABI", "gnu"},
{"TARGET_GCC_FLAGS",
"-mabi=lp64 -fstack-protector-strong -mcpu=cortex-a72 -fPIE -pie -Wl,-z,now -Wl,-z,relro"}
],
checksum: package_files()
]
end

defp deps do
[
{:nerves, "~> 1.5.4 or ~> 1.6.0 or ~> 1.7.4", runtime: false},
{:nerves_system_br, "1.17.1", runtime: false},
{:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 1.4.3", runtime: false},
{:nerves, "~> 1.5.4 or ~> 1.6.0 or ~> 1.7.15", runtime: false},
{:nerves_system_br, "1.18.6", runtime: false},
{:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 1.5.0", runtime: false},
{:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.22", only: :docs, runtime: false}
]
Expand All @@ -93,7 +95,7 @@ defmodule LY11SystemRpi4.MixProject do
[
maintainers: ["Blue Clover Devices"],
files: package_files(),
licenses: ["Apache 2.0"],
licenses: ["Apache-2.0"],
links: %{"GitHub" => @source_url}
]
end
Expand Down Expand Up @@ -135,7 +137,7 @@ defmodule LY11SystemRpi4.MixProject do

defp build_runner_opts() do
# Download source files first to get download errors right away.
[make_args: primary_site() ++ ["source", "all", "legal-info", "pkg-stats"]]
[make_args: primary_site() ++ ["source", "all"]]
end

defp primary_site() do
Expand Down
21 changes: 11 additions & 10 deletions mix.lock
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
%{
"earmark_parser": {:hex, :earmark_parser, "1.4.16", "607709303e1d4e3e02f1444df0c821529af1c03b8578dfc81bb9cf64553d02b9", [:mix], [], "hexpm", "69fcf696168f5a274dd012e3e305027010658b2d1630cef68421d6baaeaccead"},
"elixir_make": {:hex, :elixir_make, "0.6.2", "7dffacd77dec4c37b39af867cedaabb0b59f6a871f89722c25b28fcd4bd70530", [:mix], [], "hexpm", "03e49eadda22526a7e5279d53321d1cced6552f344ba4e03e619063de75348d9"},
"ex_doc": {:hex, :ex_doc, "0.25.3", "3edf6a0d70a39d2eafde030b8895501b1c93692effcbd21347296c18e47618ce", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "9ebebc2169ec732a38e9e779fd0418c9189b3ca93f4a676c961be6c1527913f5"},
"makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"},
"makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"},
"castore": {:hex, :castore, "0.1.15", "dbb300827d5a3ec48f396ca0b77ad47058578927e9ebe792abd99fcbc3324326", [:mix], [], "hexpm", "c69379b907673c7e6eb229f09a0a09b60bb27cfb9625bcb82ea4c04ba82a8442"},
"earmark_parser": {:hex, :earmark_parser, "1.4.23", "1d5f22a2802160fd454404fbf5e8f5d14cd8eb727c63701397b72d8c35267e69", [:mix], [], "hexpm", "2ec13bf14b2f4bbb4a15480970e295eede8bb01087fad6ceca27b724ab8e9d18"},
"elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"},
"ex_doc": {:hex, :ex_doc, "0.28.2", "e031c7d1a9fc40959da7bf89e2dc269ddc5de631f9bd0e326cbddf7d8085a9da", [:mix], [{:earmark_parser, "~> 1.4.19", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "51ee866993ffbd0e41c084a7677c570d0fc50cb85c6b5e76f8d936d9587fa719"},
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
"makeup_elixir": {:hex, :makeup_elixir, "0.16.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"},
"makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"},
"nerves": {:hex, :nerves, "1.7.11", "67820b7055b541ce20f7bce40672a06268673ba8c47576a76e703d537a136a74", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "79535d00928c81a93ea5311497b00f0ca7bc0a8aa405134d16597a02b2616e89"},
"nerves_system_br": {:hex, :nerves_system_br, "1.17.1", "323f2852a5902134879da95701673569e6bab043cde73dc4071b96d756a007ab", [:mix], [], "hexpm", "0386fad22dbe8dd710f9d92e6cddd3f585fbb84e1dcba0aab820e35671c5e639"},
"nerves": {:hex, :nerves, "1.7.16", "a98004a89c1cf47a9ad022c9c1a46b272ca690030914c19c1709679d671a520c", [:make, :mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "ebad8305a3d24ea22a20d9ce779f56a5006d222d74ce9cafe4a6dccaed88ec2d"},
"nerves_system_br": {:hex, :nerves_system_br, "1.18.6", "13ea691ba70e6410c9b0b15e12ac972ca054486e38c437214f6a375cecf82ee2", [:mix], [], "hexpm", "0bfca936c08e92709801f9a1b7d236cc29c93ad34f014389f0ae2e3fa9d60d21"},
"nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"},
"nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.4.3", "6aa784fd3779251a4438e9874ed646492c3a4289f10581d01c4d61acda7d0b2d", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.8.4", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "75ab06af12118b423b4bba870a4f10d81f83678fd7fc57278927ce9d52516c5e"},
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.8.4", "2f6b4153e3904502d117f9d957c12eaafd490e1d2bdf20a85328ada46a1350da", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "6194be9b1364fdc1db6b2a0e98fa8dcb94fe1af373dcf8149298d62ce9b1b369"},
"nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"},
"nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "1.5.0", "9f8a736c061178ef0b47925092b2aef5a61826168c65f30d43400e5357e2ac8c", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.8.5", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "0d411d56a4429e12273d664a02128dc5ce80dd80b3201f79aa671b0a5548382d"},
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.8.5", "f2dfd6e3b5f85889561b9f00c71510eea87c3d05760d20780285deb3c29ca212", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "2f65b1866f034054f3d61ee672b6d02f4de1d0b40bef74f49527b98ab46a39fc"},
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"},
}
Loading

0 comments on commit 0d5f481

Please sign in to comment.