Received: from ncopa-desktop.lan (67.63.200.37.customer.cdi.no [37.200.63.67]) (Authenticated sender: ncopa@alpinelinux.org) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPSA id 8A36A780DBB; Thu, 21 Oct 2021 11:36:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alpinelinux.org; s=smtp; t=1634816178; 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=QOooydKBU3KdkSyVR3ozFM5DlrhapNO5d1PneFSMg6M=; b=aLzEjlwmd2xxwFyKC0KTIiz1dUjbu1O3nTVNDvotnbBG19jQEi7XmsgIoefSFGtHZ6V4Ou UNw9b+E8VEwW+TV3FIDdNEzD0iaEGiO6oi6JqHH9Yocdws1tVCfuw06G3tE8bebrKYKoqn gjnIaQqKXRfLEKwH7DCr2dZDvu82V4A= Date: Thu, 21 Oct 2021 13:36:15 +0200 From: Natanael Copa To: Alpine development <~alpine/devel@lists.alpinelinux.org> Cc: Olliver Schinagl , Mitch Tishmack Subject: Remove haskell compiler (ghc) from alpine Message-ID: <20211021133615.32f08070@ncopa-desktop.lan> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-alpine-linux-musl) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit ## TL;DR ghc is blocking the 3.15 release, so I wonder if we can remove the following packages: - community/gch - community/cabal - community/shellcheck - testing/pandoc - testing/apostrophe ## longer explanation Maintaining ghc and cabal packages requries significant amount of time and skills. To my understanding, upstream recommends use ghcup to install haskell, not the distro package. We use shellcheck in our CI but shellcheck is available from upstream as a statically precompiled binary[1] which we can use for our infra. pandoc is also available as precompiled binary[2]. But those cannot be used as dependencies for other packages which means that we cannot provide a package for testing/apostrophe or testing/py3-pypandoc. Would it be ok to remove those packages to save ourselves from significant amount of maintenance work? Alternatively, are there anyone who have time and skills to take maintenance for those? What needs to be done: - complete the update of ghc to 9.0.2 [3]: - either revert back to system libffi (and add comment in libffi package that special care is needed when upgrading libffi due to ghc needing ghc to update) or solve how the bundled libffi is handled. - find out how to update cabal. one of the following alternatives needs to be done: a) copy the way boostrap.sh from cabal 3.2.0.0 works (fetch and build all the needed deps together with cabal-install itself). b) figure out if/how we can use cabal's bootstrap.py[4] c) find out how to use previous cabal to update cabal (another circular dep) and investigate what the consequences of that is. (any external dependencies will need special care when the are upgraded). d) create apk packages for the dependencies, similar to what arch linux does[5]. eg package for uusi[6], haskell-hashable[7] etc. - split out ghc-libs runtime libraries - rebuild everything using the ghc (shellcheck, pandoc, py3-pypandoc etc) - figure out and document how to do the haskell-* packages in case option d) was chosen above. Maybe also add support for haskell packages in newapkbuild. - figure out how to bootstrap ghc and cabal for the remaining architectures. At least aarch64. I have already spent way too many days on ghc and would prefer that someone else takes over or that we remove it. [1]: https://github.com/koalaman/shellcheck/releases/tag/v0.7.2 [2]: https://github.com/jgm/pandoc/releases/tag/2.14.2 [3]: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/20134 [4]: https://github.com/haskell/cabal/tree/master/bootstrap [5]: https://github.com/archlinux/svntogit-community/blob/packages/cabal-install/trunk/PKGBUILD [6]: https://github.com/archlinux/svntogit-community/blob/packages/uusi/trunk/PKGBUILD [7]: https://github.com/archlinux/svntogit-community/blob/packages/haskell-hashable/trunk/PKGBUILD