xmake.lua 2.6 KB

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