From 0aedcfc0b0d5bda5c5233cf2e5320d9c47fc12bd Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 10 Mar 2024 17:27:29 -0300 Subject: [PATCH 1/4] primesieve: migrate to by-name --- .../default.nix => by-name/pr/primesieve/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/science/math/primesieve/default.nix => by-name/pr/primesieve/package.nix} (100%) diff --git a/pkgs/applications/science/math/primesieve/default.nix b/pkgs/by-name/pr/primesieve/package.nix similarity index 100% rename from pkgs/applications/science/math/primesieve/default.nix rename to pkgs/by-name/pr/primesieve/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5e03fbae6b72..d67f2a769946 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24235,8 +24235,6 @@ with pkgs; primecount = callPackage ../applications/science/math/primecount { }; - primesieve = callPackage ../applications/science/math/primesieve { }; - proj = callPackage ../development/libraries/proj { stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv; }; From 0c68a08dd7e7518febabce43fa4808e515c0fd49 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 10 Mar 2024 17:27:52 -0300 Subject: [PATCH 2/4] primecount: migrate to by-name --- .../default.nix => by-name/pr/primecount/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/science/math/primecount/default.nix => by-name/pr/primecount/package.nix} (100%) diff --git a/pkgs/applications/science/math/primecount/default.nix b/pkgs/by-name/pr/primecount/package.nix similarity index 100% rename from pkgs/applications/science/math/primecount/default.nix rename to pkgs/by-name/pr/primecount/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d67f2a769946..b4e5ce0a7594 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24233,8 +24233,6 @@ with pkgs; prime-server = callPackage ../development/libraries/prime-server { }; - primecount = callPackage ../applications/science/math/primecount { }; - proj = callPackage ../development/libraries/proj { stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv; }; From 8bc529842155f8672e58ef4d7f3bc88c606113f1 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 10 Mar 2024 17:32:41 -0300 Subject: [PATCH 3/4] primesieve: refactor - finalAttrs - split outputs - strictDeps - no nested with - add tests - test primecount (a dependent package) - mainProgram --- pkgs/by-name/pr/primesieve/package.nix | 34 +++++++++++++++++--------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/pr/primesieve/package.nix b/pkgs/by-name/pr/primesieve/package.nix index 4d3c06bd9287..470b62111b3f 100644 --- a/pkgs/by-name/pr/primesieve/package.nix +++ b/pkgs/by-name/pr/primesieve/package.nix @@ -1,25 +1,35 @@ { lib -, stdenv -, fetchFromGitHub , cmake +, fetchFromGitHub +, stdenv +, primecount }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "primesieve"; version = "12.1"; src = fetchFromGitHub { owner = "kimwalisch"; repo = "primesieve"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-AHl2GfZ1oJ8ZyjJzvg10AqN7TA7HFZ+qa6N2v51Qa78="; }; + outputs = [ "out" "dev" "lib" "man" ]; + nativeBuildInputs = [ cmake ]; - meta = with lib; { + strictDeps = true; + + passthru = { + tests = { + inherit primecount; # dependent + }; + }; + + meta = { homepage = "https://primesieve.org/"; - changelog = "https://github.com/kimwalisch/primesieve/blob/v${version}/ChangeLog"; description = "Fast C/C++ prime number generator"; longDescription = '' primesieve is a command-line program and C/C++ library for quickly @@ -29,9 +39,11 @@ stdenv.mkDerivation rec { CPU cores whenever possible i.e. if sequential ordering is not required. primesieve can generate primes and prime k-tuplets up to 264. ''; - license = licenses.bsd2; - maintainers = teams.sage.members ++ - (with maintainers; [ abbradar AndersonTorres ]); - platforms = platforms.unix; + changelog = "https://github.com/kimwalisch/primesieve/blob/${finalAttrs.src.rev}/ChangeLog"; + license = lib.licenses.bsd2; + mainProgram = "primesieve"; + maintainers = lib.teams.sage.members ++ + (with lib.maintainers; [ abbradar AndersonTorres ]); + platforms = lib.platforms.unix; }; -} +}) From 4014f72257542d26671ac5c5f6fec8eb3f42c5f0 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 10 Mar 2024 18:32:56 -0300 Subject: [PATCH 4/4] primecount: refactor - finalAttrs - split outputs - strictDeps - use lib.cmake* functions - no nested with - mainProgram --- pkgs/by-name/pr/primecount/package.nix | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/pr/primecount/package.nix b/pkgs/by-name/pr/primecount/package.nix index c3e2565989ed..791acca6ae5d 100644 --- a/pkgs/by-name/pr/primecount/package.nix +++ b/pkgs/by-name/pr/primecount/package.nix @@ -1,21 +1,23 @@ { lib -, stdenv -, fetchFromGitHub , cmake +, fetchFromGitHub , primesieve +, stdenv }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "primecount"; version = "7.10"; src = fetchFromGitHub { owner = "kimwalisch"; repo = "primecount"; - rev = "v${version}"; + rev = "v${finalAttrs.version}"; hash = "sha256-z7sHGR6zZSTV1PbL0WPGHf52CYQ572KC1yznCuIEJbQ="; }; + outputs = [ "out" "dev" "lib" "man" ]; + nativeBuildInputs = [ cmake ]; @@ -24,17 +26,18 @@ stdenv.mkDerivation rec { primesieve ]; + strictDeps = true; + cmakeFlags = [ - "-DBUILD_LIBPRIMESIEVE=ON" - "-DBUILD_PRIMECOUNT=ON" - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_STATIC_LIBS=OFF" - "-DBUILD_TESTS=ON" + (lib.cmakeBool "BUILD_LIBPRIMESIEVE" true) + (lib.cmakeBool "BUILD_PRIMECOUNT" true) + (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic)) + (lib.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic) + (lib.cmakeBool "BUILD_TESTS" true) ]; - meta = with lib; { + meta = { homepage = "https://github.com/kimwalisch/primecount"; - changelog = "https://github.com/kimwalisch/primecount/blob/v${version}/ChangeLog"; description = "Fast prime counting function implementations"; longDescription = '' primecount is a command-line program and C/C++ library that counts the @@ -50,7 +53,9 @@ stdenv.mkDerivation rec { of CPU cores. primecount has already been used to compute several prime counting function world records. ''; - license = licenses.bsd2; + changelog = "https://github.com/kimwalisch/primecount/blob/${finalAttrs.src.rev}/ChangeLog"; + license = lib.licenses.bsd2; + mainProgram = "primecount"; inherit (primesieve.meta) maintainers platforms; }; -} +})