diff --git a/pkgs/applications/file-managers/ytree/0001-use-prefix-and-gzip-n.diff b/pkgs/applications/file-managers/ytree/0001-use-prefix-and-gzip-n.diff new file mode 100644 index 000000000000..7a682ce7e4c6 --- /dev/null +++ b/pkgs/applications/file-managers/ytree/0001-use-prefix-and-gzip-n.diff @@ -0,0 +1,39 @@ +diff -Naur ytree-2.06-old/Makefile ytree-2.06-new/Makefile +--- ytree-2.06-old/Makefile 2023-11-26 06:15:34.000000000 -0300 ++++ ytree-2.06-new/Makefile 2023-12-01 12:25:36.641958285 -0300 +@@ -11,13 +11,13 @@ + # ADD_CFLAGS: Add -DVI_KEYS if you want vi-cursor-keys + # + +-DESTDIR = /usr ++PREFIX = /usr + + ADD_CFLAGS = -O # -DVI_KEYS + +-BINDIR = $(DESTDIR)/bin +-MANDIR = $(DESTDIR)/share/man/man1 +-MANESDIR = $(DESTDIR)/share/man/es/man1 ++BINDIR = $(DESTDIR)$(PREFIX)/bin ++MANDIR = $(DESTDIR)$(PREFIX)/share/man/man1 ++MANESDIR = $(DESTDIR)$(PREFIX)/share/man/es/man1 + + + # Uncomment the lines for your system (default is linux) +@@ -224,14 +224,14 @@ + + install: $(MAIN) + install $(MAIN) $(BINDIR) +- gzip -9c ytree.1 > ytree.1.gz ++ gzip -n -9c ytree.1 > ytree.1.gz + if [ -d $(MANDIR) ]; then install -m 0644 ytree.1.gz $(MANDIR)/; fi +- gzip -9c ytree.1.es > ytree.1.es.gz ++ gzip -n -9c ytree.1.es > ytree.1.es.gz + if [ -d $(MANESDIR) ]; then install -m 0644 ytree.1.es.gz $(MANESDIR)/; fi + + clean: + rm -f core *.o *~ *.orig *.bak +- ++ + clobber: clean + rm -f $(MAIN) ytree.1.es.gz ytree.1.gz + diff --git a/pkgs/applications/file-managers/ytree/default.nix b/pkgs/applications/file-managers/ytree/default.nix index a99fd2f42c9c..6307d39b6629 100644 --- a/pkgs/applications/file-managers/ytree/default.nix +++ b/pkgs/applications/file-managers/ytree/default.nix @@ -1,40 +1,46 @@ -{ lib, stdenv +{ lib +, stdenv , fetchurl , ncurses , readline }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "ytree"; version = "2.06"; src = fetchurl { - url = "https://han.de/~werner/${pname}-${version}.tar.gz"; - sha256 = "sha256-QRqI779ZnnytVUC7A7Zt0zyWexRwBnp+CVQcNvnvWeY="; + url = "https://han.de/~werner/ytree-${finalAttrs.version}.tar.gz"; + hash = "sha256-QRqI779ZnnytVUC7A7Zt0zyWexRwBnp+CVQcNvnvWeY="; }; + patches = [ + # Two fixups (because diff files can't be smaller): + # - Create PREFIX instead of using DESTDIR + # - use gzip without timestamp, to improve reproducibility + ./0001-use-prefix-and-gzip-n.diff + ]; + buildInputs = [ ncurses readline ]; - # don't save timestamp, in order to improve reproducibility - postPatch = '' - substituteInPlace Makefile --replace 'gzip' 'gzip -n' - ''; + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; - installFlags = [ "DESTDIR=${placeholder "out"}" ]; + installFlags = [ "PREFIX=${placeholder "out"}" ]; preInstall = '' mkdir -p $out/bin $out/share/man/man1 ''; - meta = with lib; { - description = "A curses-based file manager similar to DOS Xtree(TM)"; + meta = { homepage = "https://www.han.de/~werner/ytree.html"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; unix; + description = "A curses-based file manager similar to DOS Xtree(TM)"; + license = with lib.licenses; [ gpl2Plus ]; + mainProgram = "ytree"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.unix; }; -} +}) # TODO: X11 support