diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f0a603c..9013128 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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: diff --git a/.tool-versions b/.tool-versions index b6b5c0c..3527ee5 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ elixir 1.12.2-otp-24 -erlang 24.1.2 +erlang 24.3.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 98abaf4..00b5462 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Dockerfile b/Dockerfile index 83db076..80834db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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" diff --git a/PACKAGES-VERSION b/PACKAGES-VERSION index ce62dc5..084c7bd 100644 --- a/PACKAGES-VERSION +++ b/PACKAGES-VERSION @@ -1 +1 @@ -0.16.9 +0.16.10 diff --git a/VERSION b/VERSION index ffbc87a..1cf0537 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.18.16 +0.19.0 diff --git a/fwup.conf b/fwup.conf index 0e8b293..526c84d 100644 --- a/fwup.conf +++ b/fwup.conf @@ -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" diff --git a/linux-5.10.defconfig b/linux-5.10.defconfig index 0e09191..66c2e56 100644 --- a/linux-5.10.defconfig +++ b/linux-5.10.defconfig @@ -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 @@ -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 @@ -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 diff --git a/linux/0001-squashfs-provide-backing_dev_info-in-order-to-disabl.patch b/linux/0001-squashfs-provide-backing_dev_info-in-order-to-disabl.patch new file mode 100644 index 0000000..94bd143 --- /dev/null +++ b/linux/0001-squashfs-provide-backing_dev_info-in-order-to-disabl.patch @@ -0,0 +1,121 @@ +From 9eec1d897139e5de287af5d559a02b811b844d82 Mon Sep 17 00:00:00 2001 +From: Zheng Liang +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/20211116113141.1391026-1-zhengliang6@huawei.com +Signed-off-by: Zheng Liang +Reviewed-by: Phillip Lougher +Cc: Zhang Yi +Cc: Hou Tao +Cc: Miao Xie +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +--- + 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 + #include + #include ++#include + + #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 + diff --git a/mix.exs b/mix.exs index 0168a4a..2d8b603 100644 --- a/mix.exs +++ b/mix.exs @@ -57,7 +57,9 @@ 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() ] @@ -65,9 +67,9 @@ defmodule LY11SystemRpi4.MixProject do 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} ] @@ -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 @@ -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 diff --git a/mix.lock b/mix.lock index 0d7e0ad..daa028e 100644 --- a/mix.lock +++ b/mix.lock @@ -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"}, } diff --git a/nerves_defconfig b/nerves_defconfig index 3c6a01c..70fb172 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -1,8 +1,8 @@ BR2_aarch64=y BR2_cortex_a72=y -BR2_WGET="wget --passive-ftp -nd -t 3" BR2_TAR_OPTIONS="--no-same-owner" BR2_PRIMARY_SITE="https://ly-archive.iotcloud.io" +BR2_BACKUP_SITE="http://dl.nerves-project.org" BR2_ENABLE_DEBUG=y BR2_OPTIMIZE_2=y BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_NERVES_PATH}/patches ${NERVES_DEFCONFIG_DIR}/patches" @@ -10,13 +10,14 @@ BR2_REPRODUCIBLE=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y -BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v1.4.3/nerves_toolchain_aarch64_nerves_linux_gnu-linux_x86_64-1.4.3-F3D53E9.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v1.5.0/nerves_toolchain_aarch64_nerves_linux_gnu-linux_x86_64-1.5.0-B25501B.tar.xz" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="aarch64-nerves-linux-gnu" BR2_TOOLCHAIN_EXTERNAL_GCC_10=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_19=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_OPENMP=y BR2_ROOTFS_SKELETON_CUSTOM=y BR2_ROOTFS_SKELETON_CUSTOM_PATH="${BR2_EXTERNAL_NERVES_PATH}/board/nerves-common/skeleton" BR2_INIT_NONE=y @@ -30,8 +31,10 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-build.sh ${BR2_EXTERN BR2_ROOTFS_POST_FAKEROOT_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-fakeroot.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-createfs.sh" BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,1.20211007)/linux-raspberrypi-kernel_1.20211007.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="606d1fc3bc97a8be1d21e143ca88f3ba085ddef1" +BR2_LINUX_KERNEL_PATCH="${NERVES_DEFCONFIG_DIR}/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-5.10.defconfig" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="${NERVES_DEFCONFIG_DIR}/linux_additional.defconfig" @@ -39,6 +42,7 @@ BR2_LINUX_KERNEL_XZ=y BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-cm4 broadcom/bcm2711-rpi-400" BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="${NERVES_DEFCONFIG_DIR}/ramoops.dts" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_PACKAGE_BUSYBOX_CONFIG="${BR2_EXTERNAL_NERVES_PATH}/board/nerves-common/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="${NERVES_DEFCONFIG_DIR}/busybox_defconfig" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y @@ -65,18 +69,17 @@ BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_RPI_BT_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20211007" -BR2_PACKAGE_RPI_FIRMWARE_X=y +BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="536baf33ae9007d027bffc8f42cb603664ecb5c4" +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y BR2_PACKAGE_CRYPTSETUP=y BR2_PACKAGE_DFU_UTIL=y BR2_PACKAGE_EUDEV_RULES_GEN=y BR2_PACKAGE_I2C_TOOLS=y +# BR2_PACKAGE_LVM2_STANDARD_INSTALL is not set BR2_PACKAGE_PIGPIO=y # BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY is not set BR2_PACKAGE_RPI_USERLAND=y BR2_PACKAGE_UHUBCTL=y -BR2_PACKAGE_USBUTILS=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON3_PY_PYC=y BR2_PACKAGE_PYTHON3_SSL=y diff --git a/post-build.sh b/post-build.sh index 07a621d..94b5d45 100755 --- a/post-build.sh +++ b/post-build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e @@ -7,12 +7,10 @@ slim_down_dri_libs() { pushd $STAGING_DIR/usr/lib/dri/ for f in *.so; do - if [ "$f" = "v3d_dri.so" ]; then - continue + if [[ "$f" != "v3d_dri.so" ]]; then + rm "$f" + ln -s v3d_dri.so "$f" fi - - rm "$f" - ln -s v3d_dri.so "$f" done popd diff --git a/test/mix.lock b/test/mix.lock index 7a2fb31..3494f7d 100644 --- a/test/mix.lock +++ b/test/mix.lock @@ -1,43 +1,44 @@ %{ "atecc508a": {:hex, :atecc508a, "0.3.0", "794e2470302d101005b2b9f85d13d0a188675a84f13e668e446cd318b7679f6f", [:mix], [{:circuits_i2c, "~> 0.2", [hex: :circuits_i2c, repo: "hexpm", optional: false]}, {:x509, "~> 0.5.1 or ~> 0.6", [hex: :x509, repo: "hexpm", optional: false]}], "hexpm", "e7041edeab56d0fd8773f46b5dec3398d1f28b75683dfa738d316f84495284be"}, - "beam_notify": {:hex, :beam_notify, "0.2.2", "5c6cc0d12ef0f08aa063704c11f7c0ffd77123ccae5bd6f6827e704a4c860868", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "75c5606bf772c26340e0afacfb435f8265e8ad22ef270d492ff7b07d9b74260b"}, - "certifi": {:hex, :certifi, "2.8.0", "d4fb0a6bb20b7c9c3643e22507e42f356ac090a1dcea9ab99e27e0376d695eba", [:rebar3], [], "hexpm", "6ac7efc1c6f8600b08d625292d4bbf584e14847ce1b6b5c44d983d273e1097ea"}, + "beam_notify": {:hex, :beam_notify, "1.0.0", "5b8dceed76f8ac4acadf4d2915ac85b98c42bb17d7dd58253c7593d2a0deedbd", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "a80331f6c3596918affa408d91ed634106b7ae71b3fc589432363aca68378362"}, + "castore": {:hex, :castore, "0.1.15", "dbb300827d5a3ec48f396ca0b77ad47058578927e9ebe792abd99fcbc3324326", [:mix], [], "hexpm", "c69379b907673c7e6eb229f09a0a09b60bb27cfb9625bcb82ea4c04ba82a8442"}, + "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, "circuits_i2c": {:hex, :circuits_i2c, "0.3.9", "746a599ac06f8d31572143a8c51e1bc787246c173669940dc23e078907fb13e1", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "c6d75387637a4fbae77cf37af45000fe23763eb8104cc50e7aae532bec46e91d"}, - "elixir_make": {:hex, :elixir_make, "0.6.2", "7dffacd77dec4c37b39af867cedaabb0b59f6a871f89722c25b28fcd4bd70530", [:mix], [], "hexpm", "03e49eadda22526a7e5279d53321d1cced6552f344ba4e03e619063de75348d9"}, + "elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"}, "ex_unit_release": {:hex, :ex_unit_release, "0.1.0", "c7d180f82965dc1fd6a5f72359c813407bf4902af251914884781f5847cfdedb", [:mix], [], "hexpm", "212a88aff126196b61bef7d6b32b1c9495a00ddab727c72b7d7f5025034b4454"}, "fwup": {:hex, :fwup, "0.3.0", "2c360815565fcbc945ebbb34b58f156efacb7f8d64766f1cb3426919bb3f41ea", [:mix], [], "hexpm", "d12990ebda7d485d0eb7502df7aa9a56e66f67b5eda158c352db1de48e3f0518"}, "gen_state_machine": {:hex, :gen_state_machine, "3.0.0", "1e57f86a494e5c6b14137ebef26a7eb342b3b0070c7135f2d6768ed3f6b6cdff", [:mix], [], "hexpm", "0a59652574bebceb7309f6b749d2a41b45fdeda8dbb4da0791e355dd19f0ed15"}, - "hackney": {:hex, :hackney, "1.18.0", "c4443d960bb9fba6d01161d01cd81173089686717d9490e5d3606644c48d121f", [:rebar3], [{:certifi, "~>2.8.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "9afcda620704d720db8c6a3123e9848d09c87586dc1c10479c42627b905b5c5e"}, + "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, - "jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"}, + "jason": {:hex, :jason, "1.3.0", "fa6b82a934feb176263ad2df0dbd91bf633d4a46ebfdffea0c8ae82953714946", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "53fc1f51255390e0ec7e50f9cb41e751c260d065dcba2bf0d08dc51a4002c2ac"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, - "mime": {:hex, :mime, "1.6.0", "dabde576a497cef4bbdd60aceee8160e02a6c89250d6c0b29e56c0dfb00db3d2", [:mix], [], "hexpm", "31a1a8613f8321143dde1dafc36006a17d28d02bdfecb9e95a880fa7aabd19a7"}, + "mime": {:hex, :mime, "2.0.2", "0b9e1a4c840eafb68d820b0e2158ef5c49385d17fb36855ac6e7e087d4b1dcc5", [:mix], [], "hexpm", "e6a3f76b4c277739e36c2e21a2c640778ba4c3846189d5ab19f97f126df5f9b7"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, - "muontrap": {:hex, :muontrap, "0.6.1", "fa11dc9152470c4d0ce5a5fcb6524d8c1edc9bf6d63b3f6a89096f1e751ae271", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "86d1ef2fa0a30435a1d595e96f631ad4a24a931d8d855688e012fadd7147bd1d"}, - "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"}, + "muontrap": {:hex, :muontrap, "1.0.0", "53a05c37f71cc5070aaa0858a774ae1f500160b7186a70565521a14ef7843c5a", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "0d3cd6e335986f9c2af1b61f583375b0f0d91cea95b7ec7bc720f330b4dc9b49"}, + "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_hub": {:hex, :nerves_hub, "0.7.4", "0e104cad468c3d601ed423e116ea3422fbd31b7eedb263bcb2a5c489dca8b53b", [:mix], [{:fwup, "~> 0.3.0", [hex: :fwup, repo: "hexpm", optional: false]}, {:hackney, "~> 1.10", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:nerves_hub_cli, "~> 0.9", [hex: :nerves_hub_cli, repo: "hexpm", optional: false]}, {:nerves_runtime, "~> 0.8", [hex: :nerves_runtime, repo: "hexpm", optional: false]}, {:phoenix_client, "~> 0.7", [hex: :phoenix_client, repo: "hexpm", optional: false]}, {:websocket_client, "~> 1.3", [hex: :websocket_client, repo: "hexpm", optional: false]}, {:x509, "~> 0.5", [hex: :x509, repo: "hexpm", optional: false]}], "hexpm", "af1daf7e879f1175c9db1957340b1773f11a00e1c63eb591427d1bf7f3d40b47"}, "nerves_hub_ca_store": {:hex, :nerves_hub_ca_store, "1.0.0", "d8681e8f08d2d1b8a43184a5e8370066f62b949a4bcf19cde880a0dbe45bb1f4", [:mix], [{:x509, "~> 0.5", [hex: :x509, repo: "hexpm", optional: false]}], "hexpm", "01fbf3edc64be5bf8f3fc65f7f8ca6b82dab650af4373e201b6d441ded476c84"}, "nerves_hub_cli": {:hex, :nerves_hub_cli, "0.11.1", "1cc81be823875aa3bd77b6eefba29ab65767735823f56bb256bfe3843dc75e9d", [:mix], [{:nerves_hub_user_api, "~> 0.8.0", [hex: :nerves_hub_user_api, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 0.7 or ~> 1.1", [hex: :nimble_csv, repo: "hexpm", optional: false]}, {:pbcs, "~> 0.1", [hex: :pbcs, repo: "hexpm", optional: false]}, {:table_rex, "~> 2.0.0 or ~> 3.0", [hex: :table_rex, repo: "hexpm", optional: false]}, {:x509, "~> 0.3", [hex: :x509, repo: "hexpm", optional: false]}], "hexpm", "7a7d005b5d087fb40e7e84fc543a8b120d738210d3d115045cea415e02c7ec9d"}, "nerves_hub_user_api": {:hex, :nerves_hub_user_api, "0.8.0", "a2c91589622d8388e98470c222a16c4b0d44a777edc1f2cbc07d800ebc43fdf0", [:mix], [{:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:nerves_hub_ca_store, "~> 1.0.0", [hex: :nerves_hub_ca_store, repo: "hexpm", optional: false]}, {:tesla, "~> 1.2.1 or ~> 1.3", [hex: :tesla, repo: "hexpm", optional: false]}, {:x509, "~> 0.3", [hex: :x509, repo: "hexpm", optional: false]}], "hexpm", "d7a29bc68e7cf2d52811747a97f52fe0be2aa4186d968582bb922b5c3daee1ad"}, "nerves_key": {:hex, :nerves_key, "0.5.5", "68fcf3de7e4a64eebbd22a92f97209732d78185471e6eb89d4013e5495b7df44", [:mix], [{:atecc508a, "~> 0.3.0", [hex: :atecc508a, repo: "hexpm", optional: false]}, {:nerves_key_pkcs11, "~> 0.2", [hex: :nerves_key_pkcs11, repo: "hexpm", optional: false]}], "hexpm", "0ab871d3bf612c77a066452f88542b3d2f5cf5587f829f12f58cfa8b87d997de"}, "nerves_key_pkcs11": {:hex, :nerves_key_pkcs11, "0.2.4", "0a71caa3df944ddb8243ebf324a6ab598c3c8000bb66eea02faf37e71d91bb88", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "1dc166d91f7d189264db1b75f8ddcb2f942867e8c95b75a5de9fb4a80a828a24"}, - "nerves_runtime": {:hex, :nerves_runtime, "0.11.7", "eb4af57fbae6705d8edf7764173d860aa136d8df1b123f235b0754859e43c1c1", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.8.0", [hex: :system_registry, repo: "hexpm", optional: false]}, {:uboot_env, "~> 0.1.1 or ~> 0.2.0 or ~> 0.3.0", [hex: :uboot_env, repo: "hexpm", optional: false]}], "hexpm", "68a6f93f4c73b05c0a7dccb6cb6e7624aad3fcbd4a6dfbe27233a1fef572ab65"}, - "nerves_system_br": {:hex, :nerves_system_br, "1.17.1", "323f2852a5902134879da95701673569e6bab043cde73dc4071b96d756a007ab", [:mix], [], "hexpm", "0386fad22dbe8dd710f9d92e6cddd3f585fbb84e1dcba0aab820e35671c5e639"}, + "nerves_runtime": {:hex, :nerves_runtime, "0.11.9", "db0f95cc30a7ec4dd696858d4e2a15752060f0c48a9f022dd6e94146d0fc7a37", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.8.0", [hex: :system_registry, repo: "hexpm", optional: false]}, {:uboot_env, "~> 1.0 or ~> 0.3.0", [hex: :uboot_env, repo: "hexpm", optional: false]}], "hexpm", "3629dd6b1e50e8c16fe78d96ef487fb6c8096db67c9d447c00acf72c4ac04357"}, + "nerves_system_br": {:hex, :nerves_system_br, "1.18.6", "13ea691ba70e6410c9b0b15e12ac972ca054486e38c437214f6a375cecf82ee2", [:mix], [], "hexpm", "0bfca936c08e92709801f9a1b7d236cc29c93ad34f014389f0ae2e3fa9d60d21"}, "nerves_test_client": {:git, "https://github.com/mobileoverlord/nerves_test_client.git", "2ce416b60db08313da9ec7b7d03e0becc2f7e5ec", []}, - "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_csv": {:hex, :nimble_csv, "1.1.0", "b1dba4a86be9e03065c9de829050468e591f569100332db949e7ce71be0afc25", [:mix], [], "hexpm", "e986755bc302832cac429be6deda0fc9d82d3c82b47abefb68b3c17c9d949a3f"}, + "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_csv": {:hex, :nimble_csv, "1.2.0", "4e26385d260c61eba9d4412c71cea34421f296d5353f914afe3f2e71cce97722", [:mix], [], "hexpm", "d0628117fcc2148178b034044c55359b26966c6eaa8e2ce15777be3bbc91b12a"}, "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "pbcs": {:hex, :pbcs, "0.1.4", "84c64d6ec826a57821021c03b0db3598ee587ba64430badee77809c2f68a9f8c", [:mix], [], "hexpm", "1f96954e50077e9cfde3cce62da452f4e56906d019ef141c011a96f79137dec0"}, "phoenix_client": {:hex, :phoenix_client, "0.11.1", "b64de69050a3a435438a2545d6f3afcd5fa105b74110bb5212364e2f3ce96a46", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:websocket_client, "~> 1.3", [hex: :websocket_client, repo: "hexpm", optional: false]}], "hexpm", "07edd8a87725b0158abe35711aeaf857e8f8c3c17727725b9324533d5abdf880"}, - "shoehorn": {:hex, :shoehorn, "0.7.0", "fc23870fb6b470f5c520fee692637b120a36e163842ab497bbec7e8a1aa6cfe3", [:mix], [], "hexpm", "eeb317ac677b228906039ccf532a582ad9f6d31d7958c98f5c853fe0459e0243"}, + "shoehorn": {:hex, :shoehorn, "0.8.0", "05023f3d8da1713d14b7dada4be8d8c0f78b7bc40175036486d17c4323207d1b", [:mix], [], "hexpm", "17254e143b00a25fd7074e9fdf52abaac14ed670cbf50f783ab409f8938f6061"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, "system_registry": {:hex, :system_registry, "0.8.2", "df791dc276652fcfb53be4dab823e05f8269b96ac57c26f86a67838dbc0eefe7", [:mix], [], "hexpm", "f7acdede22c73ab0b3735eead7f2095efb2a7a6198366564205274db2ca2a8f8"}, "table_rex": {:hex, :table_rex, "3.1.1", "0c67164d1714b5e806d5067c1e96ff098ba7ae79413cc075973e17c38a587caa", [:mix], [], "hexpm", "678a23aba4d670419c23c17790f9dcd635a4a89022040df7d5d772cb21012490"}, - "tesla": {:hex, :tesla, "1.4.3", "f5a494e08fb1abe4fd9c28abb17f3d9b62b8f6fc492860baa91efb1aab61c8a0", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.3", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "e0755bb664bf4d664af72931f320c97adbf89da4586670f4864bf259b5750386"}, - "uboot_env": {:hex, :uboot_env, "0.3.0", "8afbcc8e5b65e5d0d5660ded2f5835a959d2326fa8683183f380cd6464e75174", [:mix], [], "hexpm", "d8fe5d2b4d52a14398ace02bd604ff7a0fa8960550bb7254f75dcbd438ddc6a1"}, + "tesla": {:hex, :tesla, "1.4.4", "bb89aa0c9745190930366f6a2ac612cdf2d0e4d7fff449861baa7875afd797b2", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.3", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "d5503a49f9dec1b287567ea8712d085947e247cb11b06bc54adb05bfde466457"}, + "uboot_env": {:hex, :uboot_env, "1.0.0", "fdbe0afe65436f760cd372b16a58ccf7c76bbad1538f1766826e0ddbcaf80980", [:mix], [], "hexpm", "86754d5eae9643ca3094ee1d749b808f9d6f0d41b990e1191709b5a66c2b0757"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, - "vintage_net": {:hex, :vintage_net, "0.11.1", "3bf5696c863c83dea7b6c245ca5b4cf4408961d06f6cbdeff271128c985db9f1", [:make, :mix], [{:beam_notify, "~> 0.2.0", [hex: :beam_notify, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:gen_state_machine, "~> 2.0.0 or ~> 2.1.0 or ~> 3.0.0", [hex: :gen_state_machine, repo: "hexpm", optional: false]}, {:muontrap, "~> 0.5.1 or ~> 0.6.0", [hex: :muontrap, repo: "hexpm", optional: false]}], "hexpm", "4d56f40a821098a4e734cf8e3de57ef7b4a04723ff105e3561a48baa9b2f138e"}, + "vintage_net": {:hex, :vintage_net, "0.11.5", "f9a11f6673301816e9fc1c681d7eebd7c8280adeda1de18324b19aecacd5d86c", [:make, :mix], [{:beam_notify, "~> 1.0 or ~> 0.2.0", [hex: :beam_notify, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:gen_state_machine, "~> 2.0.0 or ~> 2.1.0 or ~> 3.0.0", [hex: :gen_state_machine, repo: "hexpm", optional: false]}, {:muontrap, "~> 1.0 or ~> 0.5.1 or ~> 0.6.0", [hex: :muontrap, repo: "hexpm", optional: false]}], "hexpm", "db3796103469ff1d78f2a02cda7f8e675f6d6a448ec7130d8a43f6c1be564331"}, "websocket_client": {:hex, :websocket_client, "1.4.2", "f1036e3f9427eecdb66808eee56dbcaeb5a1a352306e6a0d0d23a9487205f4d7", [:rebar3], [], "hexpm", "c005e5f8f2f6a8533c497a509dc52f3e6fb42fa2e0d67bff8ebc8802868d84ed"}, - "x509": {:hex, :x509, "0.8.3", "2306b7e9e9dce35cf16a2608c8d85027fa35f37b33c500b775362bbfd388d224", [:mix], [], "hexpm", "101650f2f35de8528878ae9cd449cb2d0cdcd9974733640ef320fad757594684"}, + "x509": {:hex, :x509, "0.8.4", "30c3d432a776dd89145ddc3d5f4a510b0ebbb02d895055f213a95fa039357fe1", [:mix], [], "hexpm", "063fa3ac437a2cb2e34f87aa60cd691fa92457d722f503d5cd69711214bfa561"}, }