emacspeak: refactor

- finalAttrs design pattern
- set strictDeps
- getExe emacs
- get rid of nested with
- set meta.changelog
- set meta.mainProgram
This commit is contained in:
Anderson Torres 2024-02-27 21:34:41 -03:00
parent 299f6e16e4
commit df2ba5129c

View File

@ -1,34 +1,37 @@
{ lib
, stdenv
, emacs
, espeak-ng
, fetchFromGitHub
, makeWrapper
, emacs
, stdenv
, tcl
, tclx
, espeak-ng
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "emacspeak";
version = "58.0";
src = fetchFromGitHub {
owner = "tvraman";
repo = pname;
rev = version;
hash= "sha256-5pWC17nvy3ZuG0bR//LqDVpKsH5hFSFf63Q33a1BfBk=";
repo = "emacspeak";
rev = finalAttrs.version;
hash = "sha256-5pWC17nvy3ZuG0bR//LqDVpKsH5hFSFf63Q33a1BfBk=";
};
nativeBuildInputs = [
emacs
makeWrapper
];
buildInputs = [
espeak-ng
tcl
tclx
];
strictDeps = true;
preConfigure = ''
make config
'';
@ -44,17 +47,19 @@ stdenv.mkDerivation rec {
cp -a . "$d"
find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
find "$d" -type f -not -executable -execdir chmod 644 {} +
makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \
makeWrapper ${lib.getExe emacs} $out/bin/emacspeak \
--set DTK_PROGRAM "${placeholder "out"}/share/emacs/site-lisp/emacspeak/servers/espeak" \
--set TCLLIBPATH "${tclx}/lib" \
--add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
'';
meta = with lib; {
meta = {
homepage = "https://github.com/tvraman/emacspeak/";
description = "Emacs extension that provides spoken output";
license = licenses.gpl2Plus;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
changelog = "https://github.com/tvraman/emacspeak/blob/${finalAttrs.src.rev}/etc/NEWS";
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "emacspeak";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.linux;
};
}
})