From 92af417a135c2ec90f0ddf75f269c09fc4b0b73c Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Tue, 7 May 2024 04:50:27 +0200 Subject: [PATCH 1/3] cdecl: adopt, migrate to by-name, reformat --- .../cd}/cdecl/cdecl-2.5-lex.patch | 0 .../cd/cdecl/package.nix} | 21 ++++++++++++++++--- pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 18 insertions(+), 5 deletions(-) rename pkgs/{development/tools => by-name/cd}/cdecl/cdecl-2.5-lex.patch (100%) rename pkgs/{development/tools/cdecl/default.nix => by-name/cd/cdecl/package.nix} (77%) diff --git a/pkgs/development/tools/cdecl/cdecl-2.5-lex.patch b/pkgs/by-name/cd/cdecl/cdecl-2.5-lex.patch similarity index 100% rename from pkgs/development/tools/cdecl/cdecl-2.5-lex.patch rename to pkgs/by-name/cd/cdecl/cdecl-2.5-lex.patch diff --git a/pkgs/development/tools/cdecl/default.nix b/pkgs/by-name/cd/cdecl/package.nix similarity index 77% rename from pkgs/development/tools/cdecl/default.nix rename to pkgs/by-name/cd/cdecl/package.nix index 48870c7d2df1..5bc045bc0edc 100644 --- a/pkgs/development/tools/cdecl/default.nix +++ b/pkgs/by-name/cd/cdecl/package.nix @@ -1,4 +1,13 @@ -{lib, stdenv, fetchurl, bison, flex, readline, ncurses, gnused}: +{ + lib, + stdenv, + fetchurl, + bison, + flex, + readline, + ncurses, + gnused, +}: stdenv.mkDerivation rec { pname = "cdecl"; @@ -15,12 +24,18 @@ stdenv.mkDerivation rec { makeFlags="$makeFlags PREFIX=$out BINDIR=$out/bin MANDIR=$out/man1 CATDIR=$out/cat1 CC=$CC"; mkdir -p $out/bin; ''; - buildInputs = [bison flex readline ncurses]; + + buildInputs = [ + bison + flex + readline + ncurses + ]; meta = { description = "Translator English -- C/C++ declarations"; license = lib.licenses.publicDomain; - maintainers = with lib.maintainers; [ ]; + maintainers = with lib.maintainers; [ sigmanificient ]; platforms = lib.platforms.unix; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 445ae1120707..16ed37cff807 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6612,8 +6612,6 @@ with pkgs; ccze = callPackage ../tools/misc/ccze { }; - cdecl = callPackage ../development/tools/cdecl { }; - cdi2iso = callPackage ../tools/cd-dvd/cdi2iso { }; cdist = python3Packages.callPackage ../tools/admin/cdist { }; From de8d1617da6352748416b5b6317a552ebaad3310 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Tue, 7 May 2024 05:22:46 +0200 Subject: [PATCH 2/3] cdecl: major modernization refactor cdecl: add homepage and mainProgram cdecl: fix passthru.tests.x86_64-darwin --- pkgs/by-name/cd/cdecl/package.nix | 45 +++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/cd/cdecl/package.nix b/pkgs/by-name/cd/cdecl/package.nix index 5bc045bc0edc..16412a52a370 100644 --- a/pkgs/by-name/cd/cdecl/package.nix +++ b/pkgs/by-name/cd/cdecl/package.nix @@ -1,29 +1,24 @@ { lib, stdenv, - fetchurl, + fetchFromGitHub, bison, flex, readline, ncurses, - gnused, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "cdecl"; version = "2.5"; - src = fetchurl { - url = "https://www.cdecl.org/files/${pname}-blocks-${version}.tar.gz"; - sha256 = "1b7k0ra30hh8mg8fqv0f0yzkaac6lfg6n376drgbpxg4wwml1rly"; - }; - patches = [ ./cdecl-2.5-lex.patch ]; - preBuild = '' - ${gnused}/bin/sed 's/getline/cdecl_getline/g' -i cdecl.c; - makeFlagsArray=(CFLAGS="-DBSD -DUSE_READLINE -std=gnu89" LIBS=-lreadline); - makeFlags="$makeFlags PREFIX=$out BINDIR=$out/bin MANDIR=$out/man1 CATDIR=$out/cat1 CC=$CC"; - mkdir -p $out/bin; - ''; + src = fetchFromGitHub { + owner = "ridiculousfish"; + repo = "cdecl-blocks"; + # github repo has no tag, but the 2.5 version match this commit + rev = "cb130ea7e61df5b6fa1e84f996e3f04e21a0181c"; + hash = "sha256-lErAxTpPIT49QdOpdjM9e3Qyaajzc+iwv27B3XUFUuE="; + }; buildInputs = [ bison @@ -32,10 +27,32 @@ stdenv.mkDerivation rec { ncurses ]; + NIX_CFLAGS_COMPILE = "-DBSD -DUSE_READLINE -std=gnu89"; + NIX_LDFLAGS = "-lreadline"; + + makeFlags = [ + "CC=${stdenv.cc}/bin/cc" # otherwise fails on x86_64-darwin + "PREFIX=${placeholder "out"}" + "BINDIR=${placeholder "out"}/bin" + "MANDIR=${placeholder "out"}/man1" + "CATDIR=${placeholder "out"}/cat1" + ]; + + patches = [ ./cdecl-2.5-lex.patch ]; + prePatch = '' + substituteInPlace cdecl.c --replace 'getline' 'cdecl_getline' + ''; + + preInstall = '' + mkdir -p $out/bin; + ''; + meta = { description = "Translator English -- C/C++ declarations"; + homepage = "https://cdecl.org"; license = lib.licenses.publicDomain; maintainers = with lib.maintainers; [ sigmanificient ]; platforms = lib.platforms.unix; + mainProgram = "cdecl"; }; } From 11c2265d7e238ba6bad0e3e56f3b42e258b1aed7 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Tue, 7 May 2024 05:29:57 +0200 Subject: [PATCH 3/3] cdecl: 2.5 -> 2.5-unstable-2024-05-07, add check, refactor Jumping almost 8 years ahead, to the repo latest commit cdecl: add check phase cdecl: further refactoring --- pkgs/by-name/cd/cdecl/package.nix | 48 ++++++++++++++----- .../cdecl/test_remove_interactive_line.patch | 10 ++++ 2 files changed, 46 insertions(+), 12 deletions(-) create mode 100644 pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch diff --git a/pkgs/by-name/cd/cdecl/package.nix b/pkgs/by-name/cd/cdecl/package.nix index 16412a52a370..016a15e9bea0 100644 --- a/pkgs/by-name/cd/cdecl/package.nix +++ b/pkgs/by-name/cd/cdecl/package.nix @@ -10,38 +10,62 @@ stdenv.mkDerivation { pname = "cdecl"; - version = "2.5"; + version = "2.5-unstable-2024-05-07"; src = fetchFromGitHub { owner = "ridiculousfish"; repo = "cdecl-blocks"; - # github repo has no tag, but the 2.5 version match this commit - rev = "cb130ea7e61df5b6fa1e84f996e3f04e21a0181c"; - hash = "sha256-lErAxTpPIT49QdOpdjM9e3Qyaajzc+iwv27B3XUFUuE="; + rev = "1e6e1596771183d9bb90bcf152d6bc2055219a7e"; + hash = "sha256-5XuiYkFe+QvVBRIXRieKoE0zbISMvU1iLgEfkw6GnlE="; }; - buildInputs = [ + patches = [ + ./cdecl-2.5-lex.patch + # when `USE_READLINE` is enabled, this option will not be present + ./test_remove_interactive_line.patch + ]; + + prePatch = '' + substituteInPlace cdecl.c \ + --replace 'getline' 'cdecl_getline' + ''; + + strictDeps = true; + + nativeBuildInputs = [ bison flex + ]; + + buildInputs = [ readline ncurses ]; - NIX_CFLAGS_COMPILE = "-DBSD -DUSE_READLINE -std=gnu89"; - NIX_LDFLAGS = "-lreadline"; + env = { + NIX_CFLAGS_COMPILE = toString ( + [ + "-DBSD" + "-DUSE_READLINE" + ] + ++ lib.optionals stdenv.cc.isClang [ + "-Wno-error=int-conversion" + "-Wno-error=incompatible-function-pointer-types" + ] + ); + NIX_LDFLAGS = "-lreadline"; + }; makeFlags = [ - "CC=${stdenv.cc}/bin/cc" # otherwise fails on x86_64-darwin + "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=${placeholder "out"}" "BINDIR=${placeholder "out"}/bin" "MANDIR=${placeholder "out"}/man1" "CATDIR=${placeholder "out"}/cat1" ]; - patches = [ ./cdecl-2.5-lex.patch ]; - prePatch = '' - substituteInPlace cdecl.c --replace 'getline' 'cdecl_getline' - ''; + doCheck = true; + checkTarget = "test"; preInstall = '' mkdir -p $out/bin; diff --git a/pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch b/pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch new file mode 100644 index 000000000000..5a769f2dfec9 --- /dev/null +++ b/pkgs/by-name/cd/cdecl/test_remove_interactive_line.patch @@ -0,0 +1,10 @@ +--- a/test_expected_output.txt 2024-05-07 05:47:13.184419240 +0200 ++++ b/test_expected_output.txt 2024-05-07 05:48:38.980122345 +0200 +@@ -26,7 +26,6 @@ + options + create (-c), nocreate + prompt, noprompt (-q) +- interactive (-i), nointeractive + ritchie (-r), preansi (-p), ansi (-a) or cplusplus (-+) + + Current set values are: