about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/text/enscript
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/text/enscript')
-rw-r--r--nixpkgs/pkgs/tools/text/enscript/0001-use-system-getopt.patch68
-rw-r--r--nixpkgs/pkgs/tools/text/enscript/default.nix52
2 files changed, 120 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/text/enscript/0001-use-system-getopt.patch b/nixpkgs/pkgs/tools/text/enscript/0001-use-system-getopt.patch
new file mode 100644
index 000000000000..0ae8776f361e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/enscript/0001-use-system-getopt.patch
@@ -0,0 +1,68 @@
+From 4c5cbf6db71cf2981fc836ed370c82149748d8ea Mon Sep 17 00:00:00 2001
+From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
+Date: Wed, 6 Dec 2023 22:57:19 +0000
+Subject: [PATCH] use system getopt
+
+the file compat/getopt.h also needs to be removed otherwise it will
+create conflicts with the system includes
+---
+ compat/Makefile.am | 4 ++--
+ compat/Makefile.in | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/compat/Makefile.am b/compat/Makefile.am
+index aefc06f..23aaf81 100644
+--- a/compat/Makefile.am
++++ b/compat/Makefile.am
+@@ -25,7 +25,7 @@
+ AUTOMAKE_OPTIONS = no-dependencies
+ 
+ noinst_LIBRARIES = libcompat.a
+-libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c
++libcompat_a_SOURCES = xalloc.c regex.c
+ libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@
+ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@
+ 
+@@ -34,7 +34,7 @@ libcompat_a_SOURCES_windelta =	\
+ 	+../w32/getpwd.c	\
+ 	+../w32/getuid.c
+ 
+-noinst_HEADERS = getopt.h regex.h xalloc.h
++noinst_HEADERS = regex.h xalloc.h
+ 
+ EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c	\
+ 	strtoul.c gettext.h
+diff --git a/compat/Makefile.in b/compat/Makefile.in
+index edfc620..dee05d7 100644
+--- a/compat/Makefile.in
++++ b/compat/Makefile.in
+@@ -137,7 +137,7 @@ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+ am__v_AR_0 = @echo "  AR      " $@;
+ am__v_AR_1 = 
+ libcompat_a_AR = $(AR) $(ARFLAGS)
+-am_libcompat_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \
++am_libcompat_a_OBJECTS = \
+ 	xalloc.$(OBJEXT) regex.$(OBJEXT)
+ libcompat_a_OBJECTS = $(am_libcompat_a_OBJECTS)
+ AM_V_P = $(am__v_P_@AM_V@)
+@@ -326,7 +326,7 @@ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = no-dependencies
+ noinst_LIBRARIES = libcompat.a
+-libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c
++libcompat_a_SOURCES = xalloc.c regex.c
+ libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@
+ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@
+ libcompat_a_SOURCES_windelta = \
+@@ -334,7 +334,7 @@ libcompat_a_SOURCES_windelta = \
+ 	+../w32/getpwd.c	\
+ 	+../w32/getuid.c
+ 
+-noinst_HEADERS = getopt.h regex.h xalloc.h
++noinst_HEADERS = regex.h xalloc.h
+ EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c	\
+ 	strtoul.c gettext.h
+ 
+-- 
+2.42.0
+
diff --git a/nixpkgs/pkgs/tools/text/enscript/default.nix b/nixpkgs/pkgs/tools/text/enscript/default.nix
new file mode 100644
index 000000000000..e5aeb75ca626
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/enscript/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchurl, gettext }:
+
+stdenv.mkDerivation rec {
+  pname = "enscript";
+  version = "1.6.6";
+
+  src = fetchurl {
+    url = "mirror://gnu/enscript/enscript-${version}.tar.gz";
+    sha256 = "1fy0ymvzrrvs889zanxcaxjfcxarm2d3k43c9frmbl1ld7dblmkd";
+  };
+
+  patches = [
+    # fix compile failure on macos. use system getopt like linux
+    # requires that compat/getopt.h is also removed
+    # https://savannah.gnu.org/bugs/?64307
+    ./0001-use-system-getopt.patch
+  ];
+
+  postPatch = ''
+    # the delete component of 0001-use-system-getopt.patch
+    rm compat/getopt.h
+    # Fix building on Darwin with GCC.
+    substituteInPlace compat/regex.c --replace \
+       __private_extern__  '__attribute__ ((visibility ("hidden")))'
+  '';
+
+  buildInputs = [ gettext ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Converter from ASCII to PostScript, HTML, or RTF";
+
+    longDescription =
+      '' GNU Enscript converts ASCII files to PostScript, HTML, or RTF and
+         stores generated output to a file or sends it directly to the
+         printer.  It includes features for `pretty-printing'
+         (language-sensitive code highlighting) in several programming
+         languages.
+
+         Enscript can be easily extended to handle different output media and
+         it has many options that can be used to customize printouts.
+      '';
+
+    license = lib.licenses.gpl3Plus;
+
+    homepage = "https://www.gnu.org/software/enscript/";
+
+    maintainers = [ ];
+    platforms = lib.platforms.all;
+  };
+}