From 7054662f180dc4d75ad8df23b2ba1da94f456f80 Mon Sep 17 00:00:00 2001 From: Nimit Date: Fri, 13 Sep 2024 12:44:21 +0000 Subject: [PATCH 1/5] [cabal-install] added v3.12.1.0 Signed-off-by: Nimit --- .../haskell-modules/cabal-install/plan.sh | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 packages/development/haskell-modules/cabal-install/plan.sh diff --git a/packages/development/haskell-modules/cabal-install/plan.sh b/packages/development/haskell-modules/cabal-install/plan.sh new file mode 100644 index 00000000..72a58276 --- /dev/null +++ b/packages/development/haskell-modules/cabal-install/plan.sh @@ -0,0 +1,47 @@ +pkg_name="cabal-install" +pkg_origin=core +pkg_version="3.12.1.0" +pkg_license=('') +pkg_upstream_url="https://www.haskell.org/cabal/" +pkg_description="Command-line interface for Cabal and Hackage" +pkg_maintainer="The Habitat Maintainers " +pkg_source="https://downloads.haskell.org/~cabal/cabal-install-${pkg_version}/cabal-install-${pkg_version}-x86_64-linux-deb11.tar.xz" +pkg_shasum="4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051" + +pkg_deps=( + core/glibc + core/zlib + core/gmp +) + +pkg_build_deps=( + core/patchelf +) + +pkg_bin_dirs=(bin) + +do_clean() { + do_default_clean + + # Strip any previous cabal config + rm -rf /root/.cabal +} + +do_build() { + return 0 +} + +do_install() { + cp ${HAB_CACHE_SRC_PATH}/cabal ${pkg_prefix}/bin + cp ${HAB_CACHE_SRC_PATH}/plan.json ${pkg_prefix}/bin + + LD_RUN_PATH=${LD_RUN_PATH}:$(pkg_path_for glibc)/lib:$(pkg_path_for gmp)/lib:$(pkg_path_for zlib)/lib + + build_line "Setting rpath for all binaries to '${LD_RUN_PATH}'" + patchelf --set-rpath "${LD_RUN_PATH}" ${pkg_prefix}/bin/cabal + patchelf --set-interpreter $(pkg_path_for glibc)/lib64/ld-linux-x86-64.so.2 ${pkg_prefix}/bin/cabal +} + +do_strip() { + return 0 +} From 5b7b1cdf2c303cb222d3e240b893d06d211a5716 Mon Sep 17 00:00:00 2001 From: Nimit Date: Fri, 13 Sep 2024 12:44:51 +0000 Subject: [PATCH 2/5] [ghc] added v9.10.1 Signed-off-by: Nimit --- packages/development/compilers/ghc/plan.sh | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 packages/development/compilers/ghc/plan.sh diff --git a/packages/development/compilers/ghc/plan.sh b/packages/development/compilers/ghc/plan.sh new file mode 100644 index 00000000..77a25ac3 --- /dev/null +++ b/packages/development/compilers/ghc/plan.sh @@ -0,0 +1,74 @@ +pkg_name=ghc +pkg_origin=core +pkg_version="9.10.1" +pkg_license=('BSD-3-Clause') +pkg_upstream_url="https://www.haskell.org/ghc/" +pkg_description="The Glasgow Haskell Compiler - Binary Bootstrap" +pkg_maintainer="The Habitat Maintainers " +pkg_source="http://downloads.haskell.org/~ghc/${pkg_version}/ghc-${pkg_version}-x86_64-deb11-linux.tar.xz" +pkg_shasum="78975575b8125ecf1f50f78b1016b14ea6e87abbf1fc39797af469d029c5d737" +pkg_dirname="ghc-${pkg_version}" + +pkg_deps=( + core/glibc + core/gmp + core/libffi + core/ncurses + core/coreutils + core/gcc + core/gcc-base + core/gcc-libs + core/binutils +) +pkg_build_deps=( + core/make + core/patchelf +) + +pkg_bin_dirs=(bin) +pkg_lib_dirs=(lib) +pkg_include_dirs=(include) +pkg_interpreters=(bin/runhaskell bin/runghc) + +do_unpack() { + do_default_unpack + + mv ghc-${pkg_version}-x86_64-unknown-linux ${pkg_dirname} +} + +do_build() { + ./configure \ + --prefix="${pkg_prefix}" +} + +do_install() { + # make install + cp -r bin include lib wrappers "${pkg_prefix}" + + # The ghc binary (ghc-${pkg_version}) requires libtinfo.so.6, which is not available + # in the current ncurses build because it was built with the --enable-widec option. + ln -sfv "$(pkg_path_for ncurses)/lib/libtinfow.so" "${pkg_prefix}/lib/x86_64-linux-ghc-${pkg_version}/libtinfo.so.6" + + export LD_RUN_PATH="${LD_RUN_PATH}:${pkg_prefix}/lib/x86_64-linux-ghc-${pkg_version}" + + build_line "Setting rpath for all binaries to '${LD_RUN_PATH}'" + find "${pkg_prefix}/bin" -type f -executable \ + -exec patchelf --set-interpreter "$(pkg_path_for glibc)/lib/ld-linux-x86-64.so.2" \ + --set-rpath "${LD_RUN_PATH}" {} \; + + build_line "Setting rpath for all libraries to '${LD_RUN_PATH}'" + find "${pkg_prefix}/lib" -type f -name "*.so" \ + -exec patchelf --set-rpath "${LD_RUN_PATH}" {} \; + + patchelf --set-rpath "$LD_RUN_PATH" ${pkg_prefix}/lib/x86_64-linux-ghc-${pkg_version}/libffi.so.8.1.4 + patchelf --set-rpath "$LD_RUN_PATH" ${pkg_prefix}/lib/x86_64-linux-ghc-${pkg_version}/libffi.so.8 + + sed -e "s,/usr/bin/env,$(pkg_path_for coreutils)/bin/env,g" -i ${pkg_prefix}/lib/post-link.mjs + + sed -e "s,/usr/bin/gcc,$(pkg_path_for gcc-base)/bin/gcc,g" -i ${pkg_prefix}/lib/settings + sed -e "s,/usr/bin/ld.gold,$(pkg_path_for binutils)/bin/ld.gold,g" -i ${pkg_prefix}/lib/settings +} + +do_strip() { + return 0 +} From 4c7b69137d85e62bd38555e9c49f2aaa3625a1da Mon Sep 17 00:00:00 2001 From: Nimit Date: Fri, 13 Sep 2024 12:45:18 +0000 Subject: [PATCH 3/5] [happy] added v1.20.1.1 Signed-off-by: Nimit --- .../compilers/ghc/.hab-plan-config.toml | 4 ++ .../development/haskell-modules/happy/plan.sh | 48 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 packages/development/compilers/ghc/.hab-plan-config.toml create mode 100644 packages/development/haskell-modules/happy/plan.sh diff --git a/packages/development/compilers/ghc/.hab-plan-config.toml b/packages/development/compilers/ghc/.hab-plan-config.toml new file mode 100644 index 00000000..4f15ba6f --- /dev/null +++ b/packages/development/compilers/ghc/.hab-plan-config.toml @@ -0,0 +1,4 @@ +[rules] +unused-runpath-entry = { level = "off" } +unused-dependency = { level = "off" } +env-script-interpreter-not-found = { level = "off"} \ No newline at end of file diff --git a/packages/development/haskell-modules/happy/plan.sh b/packages/development/haskell-modules/happy/plan.sh new file mode 100644 index 00000000..c2fb6ce9 --- /dev/null +++ b/packages/development/haskell-modules/happy/plan.sh @@ -0,0 +1,48 @@ +pkg_name=happy +pkg_origin=core +pkg_version="1.20.1.1" +pkg_license=('BSD-2-Clause') +pkg_upstream_url="https://www.haskell.org/happy/" +pkg_description="Happy is a parser generator for Haskell. Given a grammar specification in BNF, Happy generates Haskell code to parse the grammar. Happy works in a similar way to the yacc tool for C." +pkg_maintainer="The Habitat Maintainers " +pkg_source="https://hackage.haskell.org/package/${pkg_name}-${pkg_version}/${pkg_name}-${pkg_version}.tar.gz" +pkg_shasum="8b4e7dc5a6c5fd666f8f7163232931ab28746d0d17da8fa1cbd68be9e878881b" + +pkg_deps=( + core/glibc + core/gmp + core/libffi +) +pkg_build_deps=( + core/cabal-install + core/ghc + core/make +) + +pkg_bin_dirs=(bin) + +do_clean() { + do_default_clean + + # Strip any previous cabal config/cache + rm -rf /root/.cabal +} + +do_prepare() { + # Set locale + export LANG="en_US.utf8" +} + +do_build() { + cabal update + cabal configure --prefix=${pkg_prefix} -w ghc-9.10.1 --disable-documentation + cabal build +} + +do_install() { + cabal install --installdir=${pkg_prefix} +} + +do_check() { + cabal test +} From f9069a51fbea3eea4d14112247847914ac76d0a8 Mon Sep 17 00:00:00 2001 From: Nimit Date: Thu, 19 Sep 2024 14:19:23 +0000 Subject: [PATCH 4/5] [alex] added v3.5.1.0 Signed-off-by: Nimit --- .../development/haskell-modules/alex/plan.sh | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 packages/development/haskell-modules/alex/plan.sh diff --git a/packages/development/haskell-modules/alex/plan.sh b/packages/development/haskell-modules/alex/plan.sh new file mode 100644 index 00000000..bd75438a --- /dev/null +++ b/packages/development/haskell-modules/alex/plan.sh @@ -0,0 +1,45 @@ +pkg_name=alex +pkg_origin=core +pkg_version="3.5.1.0" +pkg_license=("BSD-3-Clause") +pkg_upstream_url=http://www.haskell.org/alex/ +pkg_description="Alex is a tool for generating lexical analysers in Haskell. It takes a description of tokens based on regular expressions and generates a Haskell module containing code for scanning text efficiently. It is similar to the tool lex or flex for C/C++." +pkg_maintainer="The Habitat Maintainers " +pkg_source="https://hackage.haskell.org/package/${pkg_name}-${pkg_version}/${pkg_name}-${pkg_version}.tar.gz" +pkg_shasum="c92efe86f8eb959ee03be6c04ee57ebc7e4abc75a6c4b26551215d7443e92a07" + +pkg_deps=( + core/glibc + core/gmp + core/libffi +) +pkg_build_deps=( + core/cabal-install + core/ghc + core/make +) + +pkg_bin_dirs=(bin) + +do_clean() { + do_default_clean + + # Strip any previous cabal config/cache + rm -rf /root/.cabal +} + +do_build() { + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$(pkg_path_for gmp)/lib + + cabal update + cabal configure --prefix=${pkg_prefix} -w ghc-9.10.1 --disable-documentation + cabal build -v +} + +do_install() { + cabal install --installdir=${pkg_prefix} +} + +do_check() { + cabal test +} From 0380d8f0d5c4d01a0bae369d62c1ffb7f3d61350 Mon Sep 17 00:00:00 2001 From: Nimit Date: Thu, 19 Sep 2024 14:22:26 +0000 Subject: [PATCH 5/5] [shellcheck] added v0.10.0 Signed-off-by: Nimit --- .../haskell-modules/shellcheck/plan.sh | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 packages/development/haskell-modules/shellcheck/plan.sh diff --git a/packages/development/haskell-modules/shellcheck/plan.sh b/packages/development/haskell-modules/shellcheck/plan.sh new file mode 100644 index 00000000..04ca605b --- /dev/null +++ b/packages/development/haskell-modules/shellcheck/plan.sh @@ -0,0 +1,52 @@ +program=ShellCheck + +pkg_name=shellcheck +pkg_origin=core +pkg_version="0.10.0" +pkg_license=('GPL-3.0-only') +pkg_upstream_url="http://www.shellcheck.net/" +pkg_description="ShellCheck is a GPLv3 tool that gives warnings and suggestions for bash/sh shell scripts" +pkg_maintainer="The Habitat Maintainers " +pkg_source="https://hackage.haskell.org/package/ShellCheck-${pkg_version}/ShellCheck-${pkg_version}.tar.gz" +pkg_shasum="4d08db432d75a34486a55f6fff9d3e3340ce56125c7804b7f8fd14421b936d21" +pkg_dirname="ShellCheck-${pkg_version}" + +pkg_bin_dirs=(bin) +pkg_lib_dirs=(lib) + +pkg_deps=( + core/glibc + core/gmp + core/libffi +) + +pkg_build_deps=( + core/cabal-install + core/ghc +) + +do_clean() { + do_default_clean + + # Strip any previous cabal config + rm -rf /root/.cabal +} + +do_build() { + cabal update + + # Install dependencies + #cabal install --only-dependencies + + # Configure and Build + cabal configure --prefix="$pkg_prefix" --disable-executable-dynamic --disable-shared + cabal build +} + +do_install() { + cabal install --installdir=${pkg_prefix} +} + +do_check() { + cabal test +}