openrc.mk 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. ################################################################################
  2. #
  3. # openrc
  4. #
  5. ################################################################################
  6. OPENRC_VERSION = 0.42.1
  7. OPENRC_SITE = $(call github,OpenRC,openrc,$(OPENRC_VERSION))
  8. OPENRC_LICENSE = BSD-2-Clause
  9. OPENRC_LICENSE_FILES = LICENSE
  10. # 0007-checkpath-fix-CVE-2018-21269.patch
  11. OPENRC_IGNORE_CVES += CVE-2018-21269
  12. OPENRC_DEPENDENCIES = ncurses
  13. # set LIBNAME so openrc puts files in proper directories and sets proper
  14. # paths in installed files. Since in buildroot /lib64 and /lib32 always
  15. # points to /lib, it's safe to hardcode it to "lib"
  16. OPENRC_MAKE_OPTS = \
  17. LIBNAME=lib \
  18. LIBEXECDIR=/usr/libexec/rc \
  19. MKPKGCONFIG=no \
  20. MKSYSVINIT=yes \
  21. BRANDING="Buildroot $(BR2_VERSION_FULL)" \
  22. CC=$(TARGET_CC)
  23. ifeq ($(BR2_SHARED_LIBS),y)
  24. OPENRC_MAKE_OPTS += MKSTATICLIBS=no
  25. else
  26. OPENRC_MAKE_OPTS += MKSTATICLIBS=yes
  27. endif
  28. ifeq ($(BR2_PACKAGE_LIBSELINUX),y)
  29. OPENRC_MAKE_OPTS += MKSELINUX=yes
  30. OPENRC_DEPENDENCIES += libselinux
  31. else
  32. OPENRC_MAKE_OPTS += MKSELINUX=no
  33. endif
  34. define OPENRC_BUILD_CMDS
  35. $(MAKE) $(OPENRC_MAKE_OPTS) -C $(@D)
  36. endef
  37. define OPENRC_INSTALL_TARGET_CMDS
  38. $(MAKE) $(OPENRC_MAKE_OPTS) DESTDIR=$(TARGET_DIR) -C $(@D) install
  39. $(INSTALL) -D -m 0755 $(OPENRC_PKGDIR)/sysv-rcs \
  40. $(TARGET_DIR)/etc/init.d/sysv-rcs
  41. endef
  42. ifeq ($(BR2_PACKAGE_KBD),)
  43. # keymaps and save-keymaps require kbd_mode and dumpkeys, respectively, so
  44. # remove them if the kbd package is not selected (e.g. devices with serial
  45. # console, only).
  46. define OPENRC_NO_KBD
  47. $(RM) $(TARGET_DIR)/etc/runlevels/boot/{keymaps,save-keymaps}
  48. $(RM) $(TARGET_DIR)/etc/init.d/{keymaps,save-keymaps}
  49. $(RM) $(TARGET_DIR)/etc/conf.d/keymaps
  50. endef
  51. OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_KBD
  52. endif
  53. ifeq ($(BR2_PACKAGE_NETIFRC),y)
  54. # netifrc replaces network, staticroute and loopback services which are
  55. # installed by openrc
  56. define OPENRC_NO_NET
  57. $(RM) $(TARGET_DIR)/etc/runlevels/boot/{network,staticroute,loopback}
  58. $(RM) $(TARGET_DIR)/etc/init.d/{network,staticroute,loopback}
  59. $(RM) $(TARGET_DIR)/etc/conf.d/{network,staticroute,loopback}
  60. endef
  61. OPENRC_POST_INSTALL_TARGET_HOOKS += OPENRC_NO_NET
  62. endif
  63. define OPENRC_REMOVE_UNNEEDED
  64. $(RM) -r $(TARGET_DIR)/usr/share/openrc
  65. endef
  66. OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_REMOVE_UNNEEDED
  67. ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
  68. OPENRC_GETTY_SVCNAME = agetty.$(SYSTEM_GETTY_PORT)
  69. OPENRC_GETTY_CONF_D = $(TARGET_DIR)/etc/conf.d/$(OPENRC_GETTY_SVCNAME)
  70. define OPENRC_SET_GETTY
  71. { \
  72. echo "baud=\"$(SYSTEM_GETTY_BAUDRATE)\""; \
  73. echo "term_type=\"$(SYSTEM_GETTY_TERM)\"" ; \
  74. echo "agetty_options=\"-L $(SYSTEM_GETTY_OPTIONS)\""; \
  75. } > $(OPENRC_GETTY_CONF_D)
  76. ln -sf agetty $(TARGET_DIR)/etc/init.d/$(OPENRC_GETTY_SVCNAME)
  77. ln -sf /etc/init.d/$(OPENRC_GETTY_SVCNAME) \
  78. $(TARGET_DIR)/etc/runlevels/default/$(OPENRC_GETTY_SVCNAME)
  79. endef
  80. OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_SET_GETTY
  81. endif # BR2_TARGET_GENERIC_GETTY
  82. $(eval $(generic-package))