Subject: [PATCH v3 02/14] gnu: stex: Fix read-only gifs and math directories.

From: Philip McGrath <[email-masked]>
Date: Thu, 25 Aug 2022 04:54:04 -0400

Excplicitly set the user write bit when initializing the gifs or math
directories from the skeletons installed in the store. See also upstream
discussion at <https://github.com/dybvig/stex/pull/6>. This problem
would be exposed by the upcoming changes to Racket's build system.

* gnu/packages/patches/stex-copy-from-immutable-store.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/chez.scm (stex-bootstrap)[patches]: Use it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/chez.scm                         |  3 ++
 .../stex-copy-from-immutable-store.patch      | 41 +++++++++++++++++++
 3 files changed, 45 insertions(+)
 create mode 100644 gnu/packages/patches/stex-copy-from-immutable-store.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 26dfb6afe2..558fed8a0d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1821,6 +1821,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/slim-reset.patch				\
   %D%/packages/patches/slim-login.patch				\
   %D%/packages/patches/slim-display.patch			\
+  %D%/packages/patches/stex-copy-from-immutable-store.patch	\
   %D%/packages/patches/syslinux-gcc10.patch			\
   %D%/packages/patches/syslinux-strip-gnu-property.patch	\
   %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch	\
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 043f2ae47a..812d41fc5b 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -613,6 +613,9 @@ (define-public stex-bootstrap
           (sha256
            (base32 "0n6dryv5j7cw2qmsj55wqb0ph901h83a2hl4j891ppxp0xx18nkp"))
           (file-name (git-file-name name version))
+          (patches
+           ;; submitted upstream in https://github.com/dybvig/stex/pull/6
+           (search-patches "stex-copy-from-immutable-store.patch"))
           (snippet
            #~(for-each delete-file
                        '("sbin/install" "doc/stex.pdf" "doc/stex.html")))))
diff --git a/gnu/packages/patches/stex-copy-from-immutable-store.patch b/gnu/packages/patches/stex-copy-from-immutable-store.patch
new file mode 100644
index 0000000000..4562e431c1
--- /dev/null
+++ b/gnu/packages/patches/stex-copy-from-immutable-store.patch
@@ -0,0 +1,41 @@
+From 9434b4a36646c036db8de326158056aa3293fb82 Mon Sep 17 00:00:00 2001
+From: Philip McGrath <[email-masked]>
+Date: Thu, 28 Apr 2022 22:56:20 -0400
+Subject: [PATCH] fix read-only gifs and math directories
+
+An installed copy of stex might have all write permission bits removed,
+even for the owner of the installed files: this is the case with Guix
+package of stex, for example. If such an installation is used to
+initialize the gifs or math directories (e.g. for an out-of-source
+build), tar likewise creates them without write permissions, preventing
+subdirectories from being created later. Set the user write bit
+explicitly to avoid this problem.
+  Mf-stex
+
+Related to https://github.com/racket/racket/pull/4203
+---
+
+Submitted upstream in https://github.com/dybvig/stex/pull/6
+
+ Mf-stex | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Mf-stex b/Mf-stex
+index 09ec6f3..11fb214 100644
+--- a/Mf-stex
++++ b/Mf-stex
+@@ -112,9 +112,11 @@ $(x).mathrun: gifs $(mathfiles)
+ 
+ gifs:
+ 	(cd $(STEXLIB); tar -cf - gifs) | tar -xpf -
++	chmod u+w gifs
+ 
+ math:
+ 	(cd $(STEXLIB); tar -cf - math) | tar -xpf -
++	chmod u+w math
+ 
+ $(mathfiles): $(x).hthirdrun $(figps)
+ 	echo -n gifs= > $(mathfiles)
+-- 
+2.32.0
+
-- 
2.32.0