Patch remind source to work on macOS (#67870)

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.
This commit is contained in:
Allan Odgaard 2019-09-10 01:52:34 +02:00 committed by Matthew Bauer
parent b27da0dde7
commit 49d7cc2941

View File

@ -11,6 +11,9 @@ let
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 {
@ -21,8 +24,13 @@ in stdenv.mkDerivation {
nativeBuildInputs = optional tkremind makeWrapper;
propagatedBuildInputs = tclLibraries;
postPatch = optionalString tkremind ''
substituteInPlace scripts/tkremind --replace "exec wish" "exec ${tk}/bin/wish"
postPatch = ''
substituteInPlace ./configure \
--replace "sleep 1" "true"
substituteInPlace ./src/init.c \
--replace "rkrphgvba(0);" "" \
--replace "rkrphgvba(1);" ""
${tkremindPatch}
'';
postInstall = optionalString tkremind ''
@ -34,6 +42,6 @@ in stdenv.mkDerivation {
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; linux;
platforms = with stdenv.lib.platforms; unix;
};
}