[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#755751: texlive-luatex: can't use fontspec, as get error: LuaTeX error .../texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua:288: attempt to call local 'find_files' (a nil value).



tags 755751 + pending
thanks

> I can confirm this bug. It happened to me with yesterdays dist-upgrade of "debian testing".

I have already cherry-picked a fix from upstream git. Either a new 
version is uploaded to CTAN and included in TeX Live, or the cherry
pick fix, one of the two will fix this problem with the next upload
(scheduled around mid August).

If you are in hurry, find the necessary patch attached.

All the best

Norbert

------------------------------------------------------------------------
PREINING, Norbert                               http://www.preining.info
JAIST, Japan                                 TeX Live & Debian Developer
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0  ACF0 6CAC A448 860C DC13
------------------------------------------------------------------------
fix for missing find_files in luaoftload-parsers
cherry picked from upstream git f2bb496d4df5
---
 texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua |   62 +++++++++++-----
 1 file changed, 45 insertions(+), 17 deletions(-)

--- texlive-base-2014.20140717.orig/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
+++ texlive-base-2014.20140717/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
@@ -217,20 +217,35 @@
 end
 
 --[[doc--
-      read_fonts_conf_indeed() is called with seven arguments; the
-      latter three are tables that represent the state and are
-      always returned.
+
+      read_fonts_conf_indeed() -- Scan paths included from fontconfig
+      configuration files recursively. Called with eight arguments.
       The first four are
+
           · the path to the file
           · the expanded $HOME
           · the expanded $XDG_CONFIG_HOME
           · the expanded $XDG_DATA_HOME
+
+      determining the path to be checked. Another three arguments are
+      tables that represent the state of the current job as lists of
+      strings; these are always returned. Finally a reference to the
+      find_files function is passed.
+
 --doc]]--
---- string -> string -> string -> tab -> tab -> (tab * tab * tab)
+
+--- string -> string -> string -> string
+---     -> string list -> string list -> string list
+---     -> (string -> fun option -> string list)
+---     -> tab * tab * tab
 local read_fonts_conf_indeed
-read_fonts_conf_indeed = function (start, home, xdg_config_home,
+read_fonts_conf_indeed = function (start,
+                                   home,
+                                   xdg_config_home,
                                    xdg_data_home,
-                                   acc, done, dirs_done,
+                                   acc,
+                                   done,
+                                   dirs_done,
                                    find_files)
 
   local paths = fonts_conf_scanner(start)
@@ -281,16 +296,26 @@
           then
             --- we exclude path with texmf in them, as they should
             --- be found otherwise
-            acc = read_fonts_conf_indeed(
-            path, home, xdg_config_home, xdg_data_home,
-            acc,  done, dirs_done)
+            acc = read_fonts_conf_indeed(path,
+                                         home,
+                                         xdg_config_home,
+                                         xdg_data_home,
+                                         acc,
+                                         done,
+                                         dirs_done,
+                                         find_files)
           elseif lfsisdir(path) then --- arrow code ahead
             local config_files = find_files (path, conf_filter)
             for _, filename in next, config_files do
               if not done[filename] then
-                acc = read_fonts_conf_indeed(
-                filename, home, xdg_config_home, xdg_data_home,
-                acc,      done, dirs_done)
+                acc = read_fonts_conf_indeed(filename,
+                                             home,
+                                             xdg_config_home,
+                                             xdg_data_home,
+                                             acc,
+                                             done,
+                                             dirs_done,
+                                             find_files)
               end
             end
           end --- match “kind”
@@ -325,11 +350,14 @@
   local done      = { } ---> set:  files inspected
   local dirs_done = { } ---> set:  dirs in list
   for i=1, #path_list do --- we keep the state between files
-    acc, done, dirs_done = read_fonts_conf_indeed(
-                                path_list[i], home, xdg_config_home,
-                                xdg_data_home,
-                                acc, done, dirs_done,
-                                find_files)
+    acc, done, dirs_done = read_fonts_conf_indeed(path_list[i],
+                                                  home,
+                                                  xdg_config_home,
+                                                  xdg_data_home,
+                                                  acc,
+                                                  done,
+                                                  dirs_done,
+                                                  find_files)
   end
   return acc
 end

Reply to: