Commit 7d9503e1 authored by Alfredo Di Napoli's avatar Alfredo Di Napoli

feat(nix)!: Upgrade nixpkg to 25.05pre

BREAKING CHANGE: this requires a newer version of `nix-shell`, at least
2.18 onwards. You can upgrade following the steps at:

https://nixos.org/download/

In particular, these are the bumped packages:

* GHC (9.4.8 -> 9.6.6)
* Cabal ( -> 3.12.1.0)
* Fortran ( 7 -> pinned)
parent 8ddb544b
import (builtins.fetchGit {
name = "nixos-24.05";
url = "https://github.com/nixos/nixpkgs";
ref = "refs/heads/nixos-24.05";
rev = "63dacb46bf939521bdc93981b4cbb7ecb58427a0";
})
import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/c46290747b2aaf090f48a478270feb858837bf11.tar.gz")
{ pkgs ? import ./pinned-23.11.nix {} }:
{ pkgs ? import ./pinned-25.05.nix {} }:
rec {
inherit pkgs;
ghc948 = if pkgs.stdenv.isDarwin
then pkgs.haskell.compiler.ghc948.overrideAttrs (finalAttrs: previousAttrs: {
patches = previousAttrs.patches ++ [
# Reverts the linking behavior of GHC to not resolve `-libc++` to `c++`.
(pkgs.fetchpatch {
url = "https://gist.githubusercontent.com/adinapoli/bf722db15f72763bf79dff13a3104b6f/raw/362da0aa3db5c530e0d276183ba68569f216d65a/ghc947-macOS-loadArchive-fix.patch";
sha256 = "sha256-0tHrkWRKFWUewj3uIA0DujVCXo1qgX2lA5p0MIsAHYs=";
})
];
})
else pkgs.haskell.compiler.ghc948;
cabal_install_3_10_2_1 = pkgs.haskell.lib.compose.justStaticExecutables pkgs.haskell.packages.ghc948.cabal-install;
ghc966 = pkgs.haskell.compiler.ghc966;
cabal_install = pkgs.haskell.lib.compose.justStaticExecutables pkgs.haskell.packages.ghc966.cabal-install;
graphviz_dev = pkgs.graphviz.overrideAttrs (finalAttrs: previousAttrs: {
version = "11.0.0~dev";
src = pkgs.fetchFromGitLab {
......@@ -33,14 +23,10 @@ rec {
];
});
# nng180 = pkgs.nng.overrideAttrs (new: old: rec {
# version = "1.8.0";
# });
igraph_0_10_4 = pkgs.igraph.overrideAttrs (finalAttrs: previousAttrs: {
version = "0.10.4";
nativeBuildInputs = previousAttrs.nativeBuildInputs or [] ++ [ pkgs.clang_12 ];
nativeBuildInputs = previousAttrs.nativeBuildInputs;
src = pkgs.fetchFromGitHub {
owner = "igraph";
......@@ -53,7 +39,7 @@ rec {
echo "0.10.4" > IGRAPH_VERSION
'';
outputs = [ "out" "doc" ];
outputs = [ "dev" "out" "doc" ];
buildInputs = [
pkgs.arpack
......@@ -64,7 +50,6 @@ rec {
pkgs.libxml2
pkgs.nanomsg
pkgs.plfit
] ++ pkgs.lib.optionals pkgs.stdenv.cc.isClang [
pkgs.llvmPackages.openmp
];
......@@ -81,23 +66,29 @@ rec {
"-DIGRAPH_ENABLE_LTO=AUTO"
"-DIGRAPH_ENABLE_TLS=ON"
"-DBUILD_SHARED_LIBS=ON"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DCMAKE_INSTALL_LIBDIR=${placeholder "out"}/lib"
"-DCMAKE_INSTALL_DATADIR=${placeholder "out"}/share"
];
doCheck = false;
postInstall = ''
mkdir -p "$out/share"
cp -r doc "$out/share"
'';
postFixup = previousAttrs.postFixup + ''
echo "Copying files where they belong .."
CUR_DIR=$PWD
cd "$out/include/igraph" && cp *.h ../
cd "$dev/include/igraph" && cp *.h ../
cd $CUR_DIR
'';
});
hsBuildInputs = [
ghc948
cabal_install_3_10_2_1
ghc966
cabal_install
pkgs.haskellPackages.alex
pkgs.haskellPackages.happy
pkgs.haskellPackages.pretty-show
......@@ -113,25 +104,22 @@ rec {
hlint
libffi
lapack
lzma
xz
pcre
pkg-config
postgresql
xz
zlib
blas
gfortran7
gfortran
expat
icu
graphviz
clang_12
llvm_12
gcc12
gcc13
igraph_0_10_4
libpqxx
libsodium
nanomsg
# nng180
zeromq
curl
] ++ ( lib.optionals stdenv.isDarwin [
......@@ -139,8 +127,8 @@ rec {
]);
libPaths = pkgs.lib.makeLibraryPath nonhsBuildInputs;
shellHook = ''
export LD_LIBRARY_PATH="${pkgs.gfortran7.cc.lib}:${libPaths}:$LD_LIBRARY_PATH"
export LIBRARY_PATH="${pkgs.gfortran7.cc.lib}:${libPaths}"
export LD_LIBRARY_PATH="${pkgs.gfortran.cc.lib}:${libPaths}:$LD_LIBRARY_PATH"
export LIBRARY_PATH="${pkgs.gfortran.cc.lib}:${libPaths}"
export PATH="${pkgs.gccStdenv}/bin:$PATH"
export NIX_CC="${pkgs.gccStdenv}"
export CC="${pkgs.gccStdenv}/bin/gcc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment