xmake.lua 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package("policycoreutils")
  2. set_kind("binary")
  3. set_homepage("https://github.com/SELinuxProject/selinux")
  4. set_description("SELinux policy core utilities.")
  5. add_urls("https://github.com/SELinuxProject/selinux/releases/download/$(version)/policycoreutils-$(version).tar.gz")
  6. add_versions("3.9", "44a294139876cf4c7969cb6a75d1932cb42543d74a7661760ded44a20bf7ebe8")
  7. add_deps("gettext")
  8. on_load(function (package)
  9. package:add("deps", "libsemanage >=" .. package:version_str())
  10. end)
  11. on_install("linux", function (package)
  12. import("package.tools.make")
  13. local configs = {"PREFIX="}
  14. table.insert(configs, "DEBUG=" .. (package:is_debug() and "1" or "0"))
  15. table.insert(configs, "DESTDIR=" .. package:installdir())
  16. local envs = make.buildenvs(package)
  17. local cflags = {}
  18. local ldflags = {}
  19. for _, dep in ipairs(package:orderdeps()) do
  20. local fetchinfo = dep:fetch()
  21. if fetchinfo then
  22. for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do
  23. table.insert(cflags, "-I" .. includedir)
  24. end
  25. for _, linkdir in ipairs(fetchinfo.linkdirs) do
  26. table.insert(ldflags, "-L" .. linkdir)
  27. end
  28. end
  29. end
  30. local links_missing_in_cascading = ""
  31. if package:dep("audit"):config("libcap_ng") then
  32. links_missing_in_cascading = links_missing_in_cascading .. " -lcap-ng"
  33. end
  34. if package:dep("libselinux"):config("pcre2") then
  35. links_missing_in_cascading = links_missing_in_cascading .. " -lpcre2-8"
  36. end
  37. for _, file in ipairs(os.files("**/Makefile")) do
  38. io.replace(file, "-laudit", "-laudit" .. links_missing_in_cascading, {plain = true})
  39. io.replace(file, "$(LIBSELINUX_LDLIBS)", "$(LIBSELINUX_LDLIBS) -lsepol" .. links_missing_in_cascading, {plain = true})
  40. io.replace(file, "$(LIBSEMANAGE_LDLIBS)", "$(LIBSEMANAGE_LDLIBS) -laudit -lbz2", {plain = true})
  41. end
  42. envs.CFLAGS = envs.CFLAGS .. " " .. table.concat(cflags, " ")
  43. envs.LDFLAGS = envs.LDFLAGS .. " " .. table.concat(ldflags, " ")
  44. make.build(package, configs, {envs = envs})
  45. table.insert(configs, "install")
  46. make.make(package, configs, {envs = envs})
  47. end)
  48. on_test(function (package)
  49. assert(os.isexec(package:installdir("bin/sestatus")), "policycoreutils executable not found!")
  50. end)