惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
The Blog of Author Tim Ferriss
D
Docker
博客园 - 聂微东
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
量子位
宝玉的分享
宝玉的分享
博客园 - 司徒正美
The Cloudflare Blog
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC

AUR Newest Packages

AUR (en) - linuxqq-clipsync-git AUR (en) - libtslitex-git AUR (en) - libtslitex-git AUR (en) - carton-appimage AUR (en) - veila-git AUR (en) - veila-bin AUR (en) - vigil-baseline AUR (en) - byedroid AUR (en) - neovim-base16-git AUR (en) - pirata AUR (en) - rpi-imager-git-non-root AUR (en) - python-fastapi-sso AUR (en) - tmux-ai-titles AUR (en) - zeed-bin AUR (en) - bclone-bin AUR (en) - dwl-git-azerty AUR (en) - auggie-bin AUR (en) - libspatialaudio-git AUR (en) - libspatialaudio AUR (en) - miniupnpd-iptables-legacy AUR (en) - miniupnpd-nft AUR (en) - jeeves-bin AUR (en) - opennow AUR (en) - rotki AUR (en) - kapi-bin AUR (en) - classfi-bin AUR (en) - classfi-git AUR (en) - classfi AUR (en) - giff-git AUR (en) - budget-tracker-bin
AUR (en) - cardano-wallet
2026-06-14 · via AUR Newest Packages

The build (and probably also the default Haskell ecosystem in Arch) is still just broken:

[1 of 2] Compiling Data.Digest.Adler32 ( dist/build/Data/Digest/Adler32.hs, dist/build/Data/Digest/Adler32.o, dist/build/Data/Digest/Adler32.dyn_o )

Data/Digest/Adler32.hsc:15:8: error:
    Could not find module ‘Prelude’
    There are files missing in the ‘base-4.14.2.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
15 | module Data.Digest.Adler32 (
   |        ^^^^^^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:19:1: error:
    Could not find module ‘Data.ByteString.Unsafe’
    There are files missing in the ‘bytestring-0.10.12.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
19 | import Data.ByteString.Unsafe (unsafeUseAsCStringLen)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:20:1: error:
    Could not find module ‘Foreign’
    There are files missing in the ‘base-4.14.2.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
20 | import Foreign
   | ^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:22:1: error:
    Could not find module ‘Data.ByteString’
    There are files missing in the ‘bytestring-0.10.12.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
22 | import qualified Data.ByteString as S
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:23:1: error:
    Could not find module ‘Data.ByteString.Lazy’
    There are files missing in the ‘bytestring-0.10.12.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
23 | import qualified Data.ByteString.Lazy as L
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:24:1: error:
    Could not find module ‘Data.ByteString.Lazy.Internal’
    There are files missing in the ‘bytestring-0.10.12.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
24 | import qualified Data.ByteString.Lazy.Internal as LI
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Data/Digest/Adler32.hsc:25:1: error:
    Could not find module ‘System.IO.Unsafe’
    There are files missing in the ‘base-4.14.2.0’ package,
    try running 'ghc-pkg check'.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
25 | import qualified System.IO.Unsafe as U
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The current ghc is 9.0.1 and this builds with 8.10.5 just fine, as long as the trick used by @lsf on cardano-node is applied also here:

diff --git a/PKGBUILD b/PKGBUILD
index 685af94..0232e8a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,28 +1,43 @@
 # Maintainer: Michał Sałaban <michal@salaban.info>
 pkgname=cardano-wallet
-_version=2021-03-04
-pkgver=20210304
+_version=2021-06-11
+pkgver=20210611
 pkgrel=1
 pkgdesc='HTTP server & command-line for managing UTxOs and HD wallets in Cardano.'
 license=('Apache')
 arch=('any')
 url='https://github.com/input-output-hk/cardano-wallet'
-makedepends=('cabal-install-bin' 'ghc-8.6=8.6.5')
+_ghc_version="8.10.5"
+makedepends=('cabal-install-bin')
 source=("https://github.com/input-output-hk/${pkgname}/archive/v${_version}.zip"
         "arch-ghc.patch")
-sha256sums=("84fcf0aee57d575c35a29b12d084019df5e0e7bee968d4db92ebdb2fa32c933a"
-        "4212a64f158529417cb06eaeaffb893fa41457fbe5edd310242f9aec54f2e2ff")
+sha256sums=('9b72329915bc342d442e1d0cee7225ca7b0cb702068082801ac2b7f2c0ec9918'
+            'c5c55e3ff75efe867943bad207a22c3ebc2afe74ac1e4ab2d311ed307f3cb1aa')

 pkgver() {
     echo ${_version} | sed s/-//g
 }

-build() {
+prepare() {
   cd "${srcdir}/${pkgname}-${_version}"
+  patch -p1 < ../arch-ghc.patch
+  # NOTE: this is used to avoid running out of space when
+  # /tmp is not large enough
+  mkdir -p ${srcdir}/ghcup_tmp
+  TMPDIR=${srcdir}/ghcup_tmp ghcup install ghc ${_ghc_version}
+  ghcup set ghc ${_ghc_version}
+  ghcup install cabal
+  export PATH="$HOME/.cabal/bin:$HOME/.ghcup/bin:$PATH"
   cabal update
+  cabal configure
+  echo "package cardano-crypto-praos" >> ${srcdir}/${pkgname}-${_version}/cabal.project.local
+  echo "  flags: -external-libsodium-vrf" >> ${srcdir}/${pkgname}-${_version}/cabal.project.local
+}
+
+build() {
+  cd "${srcdir}/${pkgname}-${_version}"
   rm -rf ./arch-build
   mkdir ./arch-build
-  patch -p1 < ../arch-ghc.patch
   cabal install cardano-wallet --install-method=copy --installdir=./arch-build
 }

diff --git a/arch-ghc.patch b/arch-ghc.patch
index 5117739..f06f886 100644
--- a/arch-ghc.patch
+++ b/arch-ghc.patch
@@ -1,11 +1,10 @@
 diff -Nurwa a/cabal.project b/cabal.project
 --- a/cabal.project
 +++ b/cabal.project
-@@ -1,7 +1,7 @@
- -- Generated by stackage-to-hackage
- 
--with-compiler: ghc-8.6.5
-+with-compiler: /opt/ghc-8.6/bin/ghc
- 
+@@ -2,7 +2,7 @@
+
+-with-compiler: ghc-8.10.4
++with-compiler: ghc-8.10.5
+
  packages:
      lib/core/

Without the hacks it will fail at link time due to some missing libsodium stuff or even earlier than that due to missing Haskell dependencies.

In an effort to deduplicate the ghc-8.6 and ghc8.6-bin packages, would you mind switching to depend on ghc8.6-bin? Something like this should work:

PKGBUILD:

-makedepends=(… 'ghc-8.6=8.6.5')
+makedepends=(… 'ghc8.6')

arch-ghc.patch (run updpkgsums as needed):

-with-compiler: ghc-8.6.5
+with-compiler: ghc-8.6