From 72f71112081a66aec14448c448973a914efc1df9 Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Tue, 29 Nov 2022 15:42:30 -0500 Subject: [PATCH 1/5] pgloader: use latest SBCL, not pinned to 2.2.6 --- pkgs/development/tools/pgloader/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/pgloader/default.nix b/pkgs/development/tools/pgloader/default.nix index ab2e047264eb..dce892451c1c 100644 --- a/pkgs/development/tools/pgloader/default.nix +++ b/pkgs/development/tools/pgloader/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, makeWrapper, sbcl_2_2_6, sqlite, freetds, libzip, curl, git, cacert, openssl }: +{ lib, stdenv, fetchurl, makeWrapper, sbcl, sqlite, freetds, libzip, curl, git, cacert, openssl }: stdenv.mkDerivation rec { pname = "pgloader"; version = "3.6.9"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ git makeWrapper ]; - buildInputs = [ sbcl_2_2_6 cacert sqlite freetds libzip curl openssl ]; + buildInputs = [ sbcl cacert sqlite freetds libzip curl openssl ]; LD_LIBRARY_PATH = lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ]; From 7493ac348a23ca27386acb1800da42abdac078ce Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Mon, 10 Apr 2023 15:02:31 -0400 Subject: [PATCH 2/5] sbcl: remove old versions, leave 2.1.9 for CLPM --- pkgs/development/compilers/sbcl/2.x.nix | 81 +------------------------ pkgs/development/tools/clpm/default.nix | 10 ++- pkgs/top-level/all-packages.nix | 45 ++------------ 3 files changed, 11 insertions(+), 125 deletions(-) diff --git a/pkgs/development/compilers/sbcl/2.x.nix b/pkgs/development/compilers/sbcl/2.x.nix index 4fcccbf97041..437e2e90562d 100644 --- a/pkgs/development/compilers/sbcl/2.x.nix +++ b/pkgs/development/compilers/sbcl/2.x.nix @@ -14,50 +14,11 @@ let versionMap = { - "2.0.8" = { - sha256 = "1xwrwvps7drrpyw3wg5h3g2qajmkwqs9gz0fdw1ns9adp7vld390"; - }; - - "2.0.9" = { - sha256 = "17wvrcwgp45z9b6arik31fjnz7908qhr5ackxq1y0gqi1hsh1xy4"; - }; - - "2.1.1" = { - sha256 = "15wa66sachhzgvg5n35vihmkpasg100lh561c1d1bdrql0p8kbd9"; - }; - - "2.1.2" = { - sha256 = "sha256:02scrqyp2izsd8xjm2k5j5lhn4pdhd202jlcb54ysmcqjd80awdp"; - }; - + # Only kept around for BCLM. Remove once unneeded there. "2.1.9" = { sha256 = "189gjqzdz10xh3ybiy4ch1r98bsmkcb4hpnrmggd4y2g5kqnyx4y"; }; - "2.1.10" = { - sha256 = "0f5ihj486m7ghh3nc0jlnqa656sbqcmhdv32syz2rjx5b47ky67b"; - }; - - "2.1.11" = { - sha256 = "1zgypmn19c58pv7j33ga7m1l7lzghj70w3xbybpgmggxwwflihdz"; - }; - - "2.2.4" = { - sha256 = "sha256-/N0lHLxl9/gI7QrXckaEjRvhZqppoX90mWABhLelcgI="; - }; - - "2.2.6" = { - sha256 = "sha256-PiMEjI+oJvuRMiC+sqw2l9vFwM3y6J/tjbOe0XEjBKA="; - }; - - "2.2.9" = { - sha256 = "sha256-fr69bSAj//cHewNy+hFx+IBSm97GEE8gmDKXwv63wXI="; - }; - - "2.2.10" = { - sha256 = "sha256-jMPDqHYSI63vFEqIcwsmdQg6Oyb6FV1wz5GruTXpCDM="; - }; - "2.2.11" = { sha256 = "sha256-NgfWgBZzGICEXO1dXVXGBUzEnxkSGhUCfmxWB66Elt8="; }; @@ -81,44 +42,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ texinfo ]; buildInputs = lib.optionals coreCompression [ zstd ]; - patches = lib.optional - (lib.versionAtLeast version "2.1.2" && lib.versionOlder version "2.1.8") - (fetchpatch { - # Fix segfault on ARM when reading large core files - url = "https://github.com/sbcl/sbcl/commit/8fa3f76fba2e8572e86ac6fc5754e6b2954fc774.patch"; - sha256 = "1ic531pjnws1k3xd03a5ixbq8cn10dlh2nfln59k0vbm0253g3lv"; - }) - ++ lib.optionals (lib.versionAtLeast version "2.1.10" && lib.versionOlder version "2.2.9") [ - # Fix included in SBCL trunk since 2.2.9: - # https://bugs.launchpad.net/sbcl/+bug/1980570 - (fetchpatch { - name = "darwin-fno-common.patch"; - url = "https://bugs.launchpad.net/sbcl/+bug/1980570/+attachment/5600916/+files/0001-src-runtime-fix-fno-common-build-on-darwin.patch"; - sha256 = "0avpwgjdaxxdpq8pfvv9darfn4ql5dgqq7zaf3nmxnvhh86ngzij"; - }) - ] ++ lib.optionals (lib.versionAtLeast version "2.1.10" && lib.versionOlder version "2.2.0") [ - # Fix -fno-common on arm64 - (fetchpatch { - name = "arm64-fno-common.patch"; - url = "https://github.com/sbcl/sbcl/commit/ac3739eae36de92feffef5bb9b4b4bd93f6c4942.patch"; - sha256 = "1kxg0ng7d465rk5v4biikrzaps41x4n1v4ygnb5qh4f5jzkbms8y"; - }) - ] ++ lib.optionals (version == "2.2.6") [ - # Take contrib blocklist into account for doc generation. This fixes sbcl - # build on aarch64, because the docs Makefile tries to require sb-simd, - # which is blocked in that platform. - (fetchpatch { - url = "https://github.com/sbcl/sbcl/commit/f88989694200a5192fb68047d43d0500b2165f7b.patch"; - sha256 = "sha256-MXEsK46RARPmB2WBPcrmZk6ArliU8DgHw73x9+/QAmk="; - }) - ] ++ lib.optionals (version == "2.2.10") [ - # hard-coded /bin/cat to just ‘cat’, trusting the PATH - (fetchpatch { - url = "https://github.com/sbcl/sbcl/commit/8ed662fbfeb5dde35eb265f390b55b01f79f70c1.patch"; - sha256 = "sha256-2aqb13AFdw9KMf8KQ9yj1HVxgoFWZ9xWmnoDdbRSLy4="; - }) - ]; - + # There are no patches necessary for the currently enabled versions, but this + # code is left in place for the next potential patch. postPatch = '' echo '"${version}.nixos"' > version.lisp-expr diff --git a/pkgs/development/tools/clpm/default.nix b/pkgs/development/tools/clpm/default.nix index 8930815afdee..4fb1bbf851e9 100644 --- a/pkgs/development/tools/clpm/default.nix +++ b/pkgs/development/tools/clpm/default.nix @@ -4,7 +4,9 @@ , wrapLisp # Broken on newer versions: # https://gitlab.common-lisp.net/clpm/clpm/-/issues/51 -, sbcl_2_0_8 +# Once that bug is fixed, replace this with regular ‘sbcl’ and remove all +# references to sbcl 2.1.9 from nixpkgs, including from sbcl/2.x.nix. +, _sbcl_2_1_9 , openssl }: @@ -19,10 +21,6 @@ stdenv.mkDerivation rec { sha256 = "sha256-UhaLmbdsIPj6O+s262HUMxuz/5t43JR+TlOjq8Y2CDs="; }; - buildInputs = [ - sbcl_2_0_8 - ]; - propagatedBuildInputs = [ openssl ]; @@ -42,7 +40,7 @@ stdenv.mkDerivation rec { # ld to complaing about `impure path used in link`. export HOME=$TMP - sbcl --script scripts/build-release.lisp + ${_sbcl_2_1_9}/bin/sbcl --script scripts/build-release.lisp runHook postBuild ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 26467839117b..ac986e6b12bd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24570,50 +24570,13 @@ with pkgs; pkg = callPackage ../development/compilers/sbcl/bootstrap.nix {}; faslExt = "fasl"; }; - sbcl_2_0_8 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.0.8"; }; - faslExt = "fasl"; - }; - sbcl_2_0_9 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.0.9"; }; - faslExt = "fasl"; - }; - sbcl_2_1_1 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.1"; }; - faslExt = "fasl"; - }; - sbcl_2_1_2 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.2"; }; - faslExt = "fasl"; - }; - sbcl_2_1_9 = wrapLisp { + # This is a deprecated derivation, marked internal to avoid third party + # packages depending on it. It is used for CLPM only, and will be removed + # soon. + _sbcl_2_1_9 = wrapLisp { pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.9"; }; faslExt = "fasl"; }; - sbcl_2_1_10 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.10"; }; - faslExt = "fasl"; - }; - sbcl_2_1_11 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.11"; }; - faslExt = "fasl"; - }; - sbcl_2_2_4 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.4"; }; - faslExt = "fasl"; - }; - sbcl_2_2_6 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.6"; }; - faslExt = "fasl"; - }; - sbcl_2_2_9 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.9"; }; - faslExt = "fasl"; - }; - sbcl_2_2_10 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.10"; }; - faslExt = "fasl"; - }; sbcl_2_2_11 = wrapLisp { pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.11"; }; faslExt = "fasl"; From 80673bd4119b4f56313a2bcddc727fe8fa0fd82d Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Mon, 10 Apr 2023 15:03:12 -0400 Subject: [PATCH 3/5] =?UTF-8?q?clpm:=20do=20fixup,=20just=20don=E2=80=99t?= =?UTF-8?q?=20strip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Less invasive change to the default build process, with the same result. --- pkgs/development/tools/clpm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/clpm/default.nix b/pkgs/development/tools/clpm/default.nix index 4fb1bbf851e9..06623538a3bc 100644 --- a/pkgs/development/tools/clpm/default.nix +++ b/pkgs/development/tools/clpm/default.nix @@ -54,8 +54,8 @@ stdenv.mkDerivation rec { runHook postInstall ''; - # fixupPhase results in fatal error in SBCL, `Can't find sbcl.core` - dontFixup = true; + # Stripping binaries results in fatal error in SBCL, `Can't find sbcl.core` + dontStrip = true; meta = with lib; { description = "Common Lisp Package Manager"; From a4c773993a41a0c31d04a2c2d4aba71a64178711 Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Sun, 9 Apr 2023 18:37:23 -0400 Subject: [PATCH 4/5] Add new maintainer: hraban --- maintainers/maintainer-list.nix | 6 ++++++ maintainers/team-list.nix | 1 + 2 files changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b4cd3901e135..8339bbd0739d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6230,6 +6230,12 @@ githubId = 53281855; name = "hqurve"; }; + hraban = { + email = "hraban@0brg.net"; + github = "hraban"; + githubId = 137852; + name = "Hraban Luyat"; + }; hrdinka = { email = "c.nix@hrdinka.at"; github = "hrdinka"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 34f4576054ee..88dbdd4dfccb 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -431,6 +431,7 @@ with lib.maintainers; { lukego nagy uthar + hraban ]; githubTeams = [ "lisp" From a3cb302b8a51ad35bf79ab4086d9e2d73278270d Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Tue, 11 Apr 2023 13:55:29 -0400 Subject: [PATCH 5/5] =?UTF-8?q?refactor:=20don=E2=80=99t=20expose=20sbcl?= =?UTF-8?q?=202.1.9=20to=20all-packages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only give access to it when explicitly requested by CLPM. This prevents polluting all-packages namespace with a deprecated package. --- pkgs/development/tools/clpm/default.nix | 18 ++++++++++++------ pkgs/top-level/all-packages.nix | 7 ------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pkgs/development/tools/clpm/default.nix b/pkgs/development/tools/clpm/default.nix index 06623538a3bc..1a6262913aa4 100644 --- a/pkgs/development/tools/clpm/default.nix +++ b/pkgs/development/tools/clpm/default.nix @@ -2,14 +2,20 @@ , stdenv , fetchgit , wrapLisp -# Broken on newer versions: -# https://gitlab.common-lisp.net/clpm/clpm/-/issues/51 -# Once that bug is fixed, replace this with regular ‘sbcl’ and remove all -# references to sbcl 2.1.9 from nixpkgs, including from sbcl/2.x.nix. -, _sbcl_2_1_9 , openssl +, sbcl }: +# Broken on newer versions: +# "https://gitlab.common-lisp.net/clpm/clpm/-/issues/51". Once that bug is +# fixed, remove this, and all 2.1.9 references from the SBCL build file. +with rec { + sbcl_2_1_9 = sbcl.override (_: { + version = "2.1.9"; + }); +}; + + stdenv.mkDerivation rec { pname = "clpm"; version = "0.4.1"; @@ -40,7 +46,7 @@ stdenv.mkDerivation rec { # ld to complaing about `impure path used in link`. export HOME=$TMP - ${_sbcl_2_1_9}/bin/sbcl --script scripts/build-release.lisp + ${sbcl_2_1_9}/bin/sbcl --script scripts/build-release.lisp runHook postBuild ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ac986e6b12bd..2fe1c7f6c24a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24570,13 +24570,6 @@ with pkgs; pkg = callPackage ../development/compilers/sbcl/bootstrap.nix {}; faslExt = "fasl"; }; - # This is a deprecated derivation, marked internal to avoid third party - # packages depending on it. It is used for CLPM only, and will be removed - # soon. - _sbcl_2_1_9 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.1.9"; }; - faslExt = "fasl"; - }; sbcl_2_2_11 = wrapLisp { pkg = callPackage ../development/compilers/sbcl/2.x.nix { version = "2.2.11"; }; faslExt = "fasl";