commit b89749ae1df489ab7de2cdc1c74a4b10f098f9f1
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Tue Jun 25 15:46:14 2019 +0200

    Let TeXFiles.py handle symbolic links.
    
    Nix (https://nixos.org) is a Unix package manager, which can be used to
    install LaTeX on macOS. A peculiarity of Nix is that all packages are
    installed into separate directories and the actual directory tree is
    then constructed via symlinks.
    
    This interacts badly with the way LyX currently detects files in the
    TeX setup, because TeXFiles.py does not follow symlinks. Therefore,
    almost nothing is found when using LyX together with Nix’ LaTeX.
    
    Patch from Michael Roitzsch.
    
    (cherry picked from commit 642b4acca1900c55662030ffc5162e9504881764)
---
 lib/CREDITS                   |    3 +++
 lib/generate_contributions.py |    8 ++++++++
 lib/scripts/TeXFiles.py       |   12 +++++++++++-
 status.23x                    |    2 +-
 4 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/lib/CREDITS b/lib/CREDITS
index 72f6420..53c7efe 100644
--- a/lib/CREDITS
+++ b/lib/CREDITS
@@ -494,6 +494,9 @@
 @bBernhard Roider
 @iE-mail: bernhard.roider () sonnenkinder ! org
    Various bug fixes
+@bMichael Roitzsch
+@iE-mail: reactorcontrol () icloud ! com
+   Fixes for the Nix package manager
 @bJim Rotmalm
 @iE-mail: jim.rotmalm () gmail ! com
    Swedish translation
diff --git a/lib/generate_contributions.py b/lib/generate_contributions.py
index 44953c5..2e9224c 100755
--- a/lib/generate_contributions.py
+++ b/lib/generate_contributions.py
@@ -1655,6 +1655,14 @@ contributors = [
                  "29 January 2007",
                  u"Various bug fixes"),
 
+     contributor(u"Michael Roitzsch",
+                 "reactorcontrol () icloud ! com",
+                 "GPL",
+                 "Re: TeXFiles.py compatibility with Nix on macOS",
+                 "m=156146891826580",
+                 "25 June 2019",
+                 u"Fixes for the Nix package manager"),
+
      contributor(u"Jim Rotmalm",
                  "jim.rotmalm () gmail ! com",
                  "GPL",
diff --git a/lib/scripts/TeXFiles.py b/lib/scripts/TeXFiles.py
index aac29bc..188f6b9 100755
--- a/lib/scripts/TeXFiles.py
+++ b/lib/scripts/TeXFiles.py
@@ -116,7 +116,17 @@ for type in types:
         if not os.path.isdir(dir):
             continue
         # walk down the file hierarchy
-        for root,path,files in os.walk(dir):
+        visited = set()
+        for root,dirs,files in os.walk(dir, followlinks=True):
+            # prevent inifinite recursion
+            recurse = []
+            for dir in dirs:
+                st = os.stat(os.path.join(root, dir))
+                key = st.st_dev, st.st_ino
+                if key not in visited:
+                    visited.add(key)
+                    recurse.append(dir)
+            dirs[:] = recurse
             # check file type
             for file in files:
                 if len(file) > 4 and file[-4:] == file_ext:
diff --git a/status.23x b/status.23x
index dbd63f0..e98a901 100644
--- a/status.23x
+++ b/status.23x
@@ -75,7 +75,7 @@ Avoid using text mode for unicode symbols representable in 
math mode (bug 9616).
 
 * INTERNALS
 
-
+- Fix TeX file listing with the Nix package manager.
 
 
 

Reply via email to