Blob Blame History Raw
%__kmod_path           ^/lib/modules/.*/(modules.builtin|.*\.ko|.*\.ko\.gz|.*\.ko\.bz2|.*\.ko\.xz|.*\.ko\.zst)$
%__kmod_provides() %{lua:
  function basename(fn)
      return string.gsub(fn, "(.*/)(.*)", "%2")
  end
  function strip_compress_sfx(fn)
      return string.gsub(fn, "(.*)(\.gz|\.bz2|\.xz|\.zst)?$", "%1")
  end
  function printdep(mod)
      print("kmod("..mod..") ")
  end
  local fn = rpm.expand("%{1}")
  local bn = basename(fn)
  if bn == "modules.builtin" then
      for l in io.lines(fn) do
          local builtin_mod = basename(l)
          printdep(builtin_mod)
          if strip_compress_sfx(builtin_mod) ~= builtin_mod then
              printdep(strip_compress_sfx(builtin_mod))
          end
      end
  else
      local mod = string.match(bn, "%g+.ko")
      if mod then
         printdep(mod)
         if strip_compress_sfx(mod) ~= mod then
             printdep(strip_compress_sfx(mod))
         end
      end
  end
}