From 6d0653579f7c31c91e473761aa1d86ee02a14687 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Thu, 25 Jul 2024 04:41:10 +0800 Subject: [PATCH 1/2] emacsPackages.notdeft: make the native binary overridable Without this patch, users cannot override the source of the native binary notdeft-xapian. This patch fixes that issue by rewriting notdeft as a single derivation. --- .../manual-packages/notdeft/package.nix | 57 +++++++------------ 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix index 324db6dede1f..f1772ac0a404 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix @@ -16,7 +16,7 @@ withIvy ? false, }: -let +melpaBuild { pname = "notdeft"; version = "0-unstable-2021-12-04"; @@ -27,47 +27,12 @@ let hash = "sha256-LMMLJFVpmoE/y3MqrgY2fmsehmzk6TkLsVoHmFUxiSw="; }; - # Xapian bindings for NotDeft - notdeft-xapian = stdenv.mkDerivation { - pname = "notdeft-xapian"; - inherit version src; - - strictDeps = true; - - nativeBuildInputs = [ pkg-config ]; - - buildInputs = [ - tclap - xapian - ]; - - buildPhase = '' - runHook preBuild - - $CXX -std=c++11 -o notdeft-xapian xapian/notdeft-xapian.cc -lxapian - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp notdeft-xapian $out/bin - - runHook postInstall - ''; - }; -in -melpaBuild { - inherit pname version src; - packageRequires = lib.optional withHydra hydra ++ lib.optional withIvy ivy; postPatch = '' substituteInPlace notdeft-xapian.el \ --replace 'defcustom notdeft-xapian-program nil' \ - "defcustom notdeft-xapian-program \"${notdeft-xapian}/bin/notdeft-xapian\"" + "defcustom notdeft-xapian-program \"$out/bin/notdeft-xapian\"" ''; files = '' @@ -77,8 +42,24 @@ melpaBuild { ${lib.optionalString withIvy ''"extras/notdeft-ivy.el"''}) ''; + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + tclap + xapian + ]; + + preBuild = '' + $CXX -std=c++11 -o notdeft-xapian xapian/notdeft-xapian.cc -lxapian + ''; + + preInstall = '' + install -D --target-directory=$out/bin source/notdeft-xapian + ''; + passthru = { - inherit notdeft-xapian; updateScript = unstableGitUpdater { hardcodeZeroVersion = true; }; }; From 385a51461391556c56c6be5e62e316d3e723c478 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Thu, 15 Aug 2024 00:47:56 +0800 Subject: [PATCH 2/2] emacsPackages.notdeft: --replace -> --replace-fail --replace of substituteInPlace is deprecated. --- .../emacs/elisp-packages/manual-packages/notdeft/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix index f1772ac0a404..fbcd006d666b 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/notdeft/package.nix @@ -31,8 +31,8 @@ melpaBuild { postPatch = '' substituteInPlace notdeft-xapian.el \ - --replace 'defcustom notdeft-xapian-program nil' \ - "defcustom notdeft-xapian-program \"$out/bin/notdeft-xapian\"" + --replace-fail 'defcustom notdeft-xapian-program nil' \ + "defcustom notdeft-xapian-program \"$out/bin/notdeft-xapian\"" ''; files = ''