about summary refs log tree commit diff
path: root/pkgs/sternenseemann
diff options
context:
space:
mode:
authorsternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2021-08-07 16:39:49 +0200
committersternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>2021-08-07 16:39:49 +0200
commit4ae2235e33aa97e05965e39232d22cbe0d2cb6dc (patch)
tree0015ed69a326706fe439bcff6a147b712880b59a /pkgs/sternenseemann
parente478fb8c7e7432572f7b9c9c50fd361fc90127a6 (diff)
pkgs/sternenseemann/mandoc: update to today's CVS
The READ_ALLOWED_PATH patch was applied 🥳
Diffstat (limited to 'pkgs/sternenseemann')
-rw-r--r--pkgs/sternenseemann/default.nix7
-rw-r--r--pkgs/sternenseemann/patches/mandoc-nix-store.patch133
2 files changed, 3 insertions, 137 deletions
diff --git a/pkgs/sternenseemann/default.nix b/pkgs/sternenseemann/default.nix
index 45296ad5..ec4ef793 100644
--- a/pkgs/sternenseemann/default.nix
+++ b/pkgs/sternenseemann/default.nix
@@ -96,16 +96,15 @@ lib.fix (self: {
   # patched packages
   mandoc = pkgs.mandoc.overrideAttrs (old: rec {
     src = pkgs.fetchcvs {
-      sha256 = "13dz321f7fyqkz71xgyk42m4la9phqrijs9phn6icarnqrfi9fpr";
-      date = "2021-08-06";
+      date = "2021-08-08";
+      sha256 = "0g3hzhngklgxcyfc7mp6gq129chhgkl6z0i7r872iri4d9dq59sg";
       cvsRoot = "anoncvs@mandoc.bsd.lv:/cvs";
       module = "mandoc";
     };
+    patches = [];
     version = "unstable-${src.date}"; # actually early but idc
     # fix makewhatis(1) skipping all man pages that
     # are symlinks to /nix/store
-    patches = [ ./patches/mandoc-nix-store.patch ];
-    patchFlags = [ "-p0" ];
     preConfigure = old.preConfigure + ''
       echo READ_ALLOWED_PATH=\"${builtins.storeDir}\" >> configure.local
     '';
diff --git a/pkgs/sternenseemann/patches/mandoc-nix-store.patch b/pkgs/sternenseemann/patches/mandoc-nix-store.patch
deleted file mode 100644
index 2e225241..00000000
--- a/pkgs/sternenseemann/patches/mandoc-nix-store.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-Index: configure
-===================================================================
-RCS file: /home/cvs/mandoc/mandoc/configure,v
-retrieving revision 1.77
-diff -u -p -r1.77 configure
---- configure	20 Jul 2020 16:57:30 -0000	1.77
-+++ configure	5 Aug 2021 11:42:59 -0000
-@@ -107,7 +107,7 @@ BIN_FROM_SBIN=
- INCLUDEDIR=
- LIBDIR=
- MANDIR=
--HOMEBREWDIR=
-+READ_ALLOWED_PATH=
- 
- WWWPREFIX="/var/www"
- HTDOCDIR=
-@@ -461,7 +461,8 @@ echo "#define MANPATH_DEFAULT \"${MANPAT
- echo "#define OSENUM ${OSENUM}"
- [ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\""
- [ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\""
--[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\""
-+[ -n "${READ_ALLOWED_PATH}" ] \
-+	&& echo "#define READ_ALLOWED_PATH \"${READ_ALLOWED_PATH}\""
- [ ${HAVE_ATTRIBUTE} -eq 0 ] && echo "#define __attribute__(x)"
- [ ${HAVE_EFTYPE} -eq 0 ] && echo "#define EFTYPE EINVAL"
- [ ${HAVE_O_DIRECTORY} -eq 0 ] && echo "#define O_DIRECTORY 0"
-Index: configure.local.example
-===================================================================
-RCS file: /home/cvs/mandoc/mandoc/configure.local.example,v
-retrieving revision 1.39
-diff -u -p -r1.39 configure.local.example
---- configure.local.example	20 Jul 2020 16:57:30 -0000	1.39
-+++ configure.local.example	5 Aug 2021 11:43:00 -0000
-@@ -209,14 +209,28 @@ INSTALL_LIB="${INSTALL} -m 0444"
- INSTALL_MAN="${INSTALL} -m 0444"
- INSTALL_DATA="${INSTALL} -m 0444"
- 
--# When using the "homebrew" package manager on Mac OS X, the actual
--# manuals are located in a so-called "cellar" and only symlinked
--# into the manual trees.  To allow mandoc to follow such symlinks,
--# you have to specify the physical location of the cellar as returned
--# by realpath(3), for example:
-+# By default, makewhatis(8) can only read from the paths passed on the
-+# command line or configured in man.conf(5).
-+# But some package managers on some operating systems store manual pages
-+# in separate "cellar" or "store" directories and only symlink them
-+# into the manual trees.
-+# To support one or more such package managers, give makewhatis(8)
-+# read access to the cellars and stores on your system, in the form
-+# of a colon-separated path:
- 
-+# Homebrow package manager on Mac OS X:
- PREFIX="/usr/local"
--HOMEBREWDIR="${PREFIX}/Cellar"
-+READ_ALLOWED_PATH="${PREFIX}/Cellar"
-+
-+# Nix package manager and/or NixOS Linux distibution:
-+READ_ALLOWED_PATH="/nix/store"
-+
-+# GNU Guix package manager and/or GNU Guix Linux distibution:
-+READ_ALLOWED_PATH="/gnu/store"
-+
-+# If multiple package managers are used concurrently:
-+PREFIX="/usr/local"
-+READ_ALLOWED_PATH="/nix/store:${PREFIX}/Cellar"
- 
- # --- user settings for the mandoc(3) library --------------------------
- 
-Index: mandocdb.c
-===================================================================
-RCS file: /home/cvs/mandoc/mandoc/mandocdb.c,v
-retrieving revision 1.267
-diff -u -p -r1.267 mandocdb.c
---- mandocdb.c	3 Apr 2020 11:35:01 -0000	1.267
-+++ mandocdb.c	5 Aug 2021 11:43:00 -0000
-@@ -165,6 +165,9 @@ static	void	 putkey(const struct mpage *
- static	void	 putkeys(const struct mpage *, char *, size_t, uint64_t);
- static	void	 putmdockey(const struct mpage *,
- 			const struct roff_node *, uint64_t, int);
-+#ifdef READ_ALLOWED_PATH
-+static	int	 read_allowed(const char *);
-+#endif
- static	int	 render_string(char **, size_t *);
- static	void	 say(const char *, const char *, ...)
- 			__attribute__((__format__ (__printf__, 2, 3)));
-@@ -612,8 +615,8 @@ treescan(void)
- 				continue;
- 			}
- 			if (strncmp(buf, basedir, basedir_len) != 0
--#ifdef HOMEBREWDIR
--			    && strncmp(buf, HOMEBREWDIR, strlen(HOMEBREWDIR))
-+#ifdef READ_ALLOWED_PATH
-+			    && !read_allowed(buf)
- #endif
- 			) {
- 				if (warnings) say("",
-@@ -823,8 +826,8 @@ filescan(const char *infile)
- 		start = usefile;
- 	else if (strncmp(usefile, basedir, basedir_len) == 0)
- 		start = usefile + basedir_len;
--#ifdef HOMEBREWDIR
--	else if (strncmp(usefile, HOMEBREWDIR, strlen(HOMEBREWDIR)) == 0)
-+#ifdef READ_ALLOWED_PATH
-+	else if (read_allowed(usefile))
- 		start = usefile;
- #endif
- 	else {
-@@ -2380,6 +2383,25 @@ set_basedir(const char *targetdir, int r
- 	}
- 	return 1;
- }
-+
-+#ifdef READ_ALLOWED_PATH
-+static int
-+read_allowed(const char *candidate)
-+{
-+	const char	*cp;
-+	size_t		 len;
-+
-+	for (cp = READ_ALLOWED_PATH;; cp += len) {
-+		while (*cp == ':')
-+			cp++;
-+		if (*cp == '\0')
-+			return 0;
-+		len = strcspn(cp, ":");
-+		if (strncmp(candidate, cp, len) == 0)
-+			return 1;
-+	}
-+}
-+#endif
- 
- static void
- say(const char *file, const char *format, ...)