49d7cc2941
The default version of the source will show a banner on macOS and Windows which tells the user that the author would rather that they didn’t use remind on Apple or Microsoft products, and then sleep for 5 seconds. There is no way for the user to remove this obstacle other than patch the source and recompile, which is also what other package managers do. This commit also changes supported platform from linux to unix.
48 lines
1.5 KiB
Nix
48 lines
1.5 KiB
Nix
{stdenv, fetchurl, tk, tcllib, makeWrapper
|
|
, tkremind ? true
|
|
} :
|
|
|
|
assert tkremind -> tk != null;
|
|
assert tkremind -> tcllib != null;
|
|
assert tkremind -> makeWrapper != null;
|
|
|
|
let
|
|
inherit (stdenv.lib) optional optionalString;
|
|
tclLibraries = stdenv.lib.optionals tkremind [ tcllib tk ];
|
|
tclLibPaths = stdenv.lib.concatStringsSep " "
|
|
(map (p: "${p}/lib/${p.libPrefix}") tclLibraries);
|
|
tkremindPatch = optionalString tkremind ''
|
|
substituteInPlace scripts/tkremind --replace "exec wish" "exec ${tk}/bin/wish"
|
|
'';
|
|
in stdenv.mkDerivation {
|
|
name = "remind-3.1.16";
|
|
src = fetchurl {
|
|
url = https://dianne.skoll.ca/projects/remind/download/remind-03.01.16.tar.gz;
|
|
sha256 = "14yavwqmimba8rdpwx3wlav9sfb0v5rcd1iyzqrs08wx07a9pdzf";
|
|
};
|
|
|
|
nativeBuildInputs = optional tkremind makeWrapper;
|
|
propagatedBuildInputs = tclLibraries;
|
|
|
|
postPatch = ''
|
|
substituteInPlace ./configure \
|
|
--replace "sleep 1" "true"
|
|
substituteInPlace ./src/init.c \
|
|
--replace "rkrphgvba(0);" "" \
|
|
--replace "rkrphgvba(1);" ""
|
|
${tkremindPatch}
|
|
'';
|
|
|
|
postInstall = optionalString tkremind ''
|
|
wrapProgram $out/bin/tkremind --set TCLLIBPATH "${tclLibPaths}"
|
|
'';
|
|
|
|
meta = {
|
|
homepage = https://dianne.skoll.ca/projects/remind/;
|
|
description = "Sophisticated calendar and alarm program for the console";
|
|
license = stdenv.lib.licenses.gpl2;
|
|
maintainers = with stdenv.lib.maintainers; [raskin kovirobi];
|
|
platforms = with stdenv.lib.platforms; unix;
|
|
};
|
|
}
|