From 8bc529842155f8672e58ef4d7f3bc88c606113f1 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 10 Mar 2024 17:32:41 -0300 Subject: [PATCH] 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; }; -} +})