Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 01/13] package/openrc: new package (v0.41.2)
@ 2019-05-12 19:55 Michał Łyszczek
  2019-05-12 19:55 ` [Buildroot] [PATCH v2 02/13] package/skeleton-init-openrc: basic skeleton for openrc Michał Łyszczek
                   ` (12 more replies)
  0 siblings, 13 replies; 24+ messages in thread
From: Michał Łyszczek @ 2019-05-12 19:55 UTC (permalink / raw)
  To: buildroot

This adds openrc init system package. This performs default openrc
installation with openrc-init that acts as pid1.

MKPKGCONFIG=no:
openrc does not use pkg-config per se, if MKPKGCONFIG is enabled,
it will just install *.pc files on rootfs for other programs to
find librc and libeinfo. These libs expose C api to control openrc
(al rc-* functions use it). From the looks of it, these libs would
be usefull if user wanted to write his own programs to manage
services, and vast majority of people using openrc won't need it.
Also, that's the reason why there is not INSTALL_STAGING=yes.

Signed-off-by: Micha? ?yszczek <michal.lyszczek@bofc.pl>

---
Changes v1 -> v2
  Suggested by Thomas Petazzoni:
  - new commit short message
  - remove OPENRC_SOURCE (default is enough)
  - remove += from first OPENRC_DEPENDENCIES
  - use single OPENRC_MAKE_OPTS = (with line breaks)
  - Remove TARGETDIR from make opts (leftover from different solution)
  - Move conditional make opts below first OPENRC_MAKE_OPTS =
  - move DESTDIR after OPENRC_MAKE_OPTS in OPENRC_INSTALL_TARGET_CMDS
  - add links to sources and wiki in Config.in
  - add hash for LICENSE file

  Suggested by Yann E. MORIN:
  - add description about MKPKGCONFIG=no to commit message
---
 DEVELOPERS                 |  1 +
 package/Config.in          |  1 +
 package/openrc/Config.in   | 17 ++++++++++++++
 package/openrc/openrc.hash |  3 +++
 package/openrc/openrc.mk   | 45 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 67 insertions(+)
 create mode 100644 package/openrc/Config.in
 create mode 100644 package/openrc/openrc.hash
 create mode 100644 package/openrc/openrc.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 6ccb0afaf6..0f89e49b92 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1615,6 +1615,7 @@ F:	board/altera/socrates_cyclone5/
 F:	board/pine64/rock64
 F:	configs/rock64_defconfig
 F:	configs/socrates_cyclone5_defconfig
+F:	package/openrc/
 
 N:	Michel Stempin <michel.stempin@wanadoo.fr>
 F:	board/licheepi/
diff --git a/package/Config.in b/package/Config.in
index f592e74a99..d9cb755d68 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2194,6 +2194,7 @@ menu "System tools"
 	source "package/ncdu/Config.in"
 	source "package/numactl/Config.in"
 	source "package/nut/Config.in"
+	source "package/openrc/Config.in"
 	source "package/openvmtools/Config.in"
 	source "package/pamtester/Config.in"
 	source "package/polkit/Config.in"
diff --git a/package/openrc/Config.in b/package/openrc/Config.in
new file mode 100644
index 0000000000..4baeed60ae
--- /dev/null
+++ b/package/openrc/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_OPENRC
+	bool "OpenRC"
+	select BR2_PACKAGE_NCURSES
+	help
+	  Init that works on top of pid 1 (for example openrc-init). By default
+	  it does quite a lot on startup (like setting hwclock, mounting
+	  directories, configuring interfaces and so on). So for this init to
+	  properly work you need at least these tools on the root filesystem
+	  (default busybox configuration provides them all):
+
+	  swapon, fsck, hwclock, getty, login, grep, mount, coreutils, procps,
+	  modprobe (kmod), net-tools
+
+	  Number of tools may be decreased by removing services that use them.
+
+	  sources: https://github.com/OpenRC/openrc
+	  wiki: https://wiki.gentoo.org/wiki/OpenRC
diff --git a/package/openrc/openrc.hash b/package/openrc/openrc.hash
new file mode 100644
index 0000000000..c8befc63ea
--- /dev/null
+++ b/package/openrc/openrc.hash
@@ -0,0 +1,3 @@
+# Calculated manually
+sha256	c99488ca54f2b795328d07bbd456ade49b571136bba7501f7eaaeb1ca9f9ecc4	openrc-0.41.2.tar.gz
+sha256	96862463f4e77e2508e4fc2c83773fd24807cb699368b63fd93a5e2b466dd624	LICENSE
diff --git a/package/openrc/openrc.mk b/package/openrc/openrc.mk
new file mode 100644
index 0000000000..53f2947dcc
--- /dev/null
+++ b/package/openrc/openrc.mk
@@ -0,0 +1,45 @@
+################################################################################
+#
+# openrc
+#
+################################################################################
+
+OPENRC_VERSION = 0.41.2
+OPENRC_SITE = $(call github,OpenRC,openrc,$(OPENRC_VERSION))
+OPENRC_LICENSE = BSD-2-Clause
+OPENRC_LICENSE_FILES = LICENSE
+
+OPENRC_DEPENDENCIES = ncurses
+
+# set LIBNAME so openrc puts files in proper directories and sets proper
+# paths in installed files. Since in buildroot /lib64 and /lib32 always
+# points to /lib, it's safe to hardcode it to "lib"
+OPENRC_MAKE_OPTS = \
+	LIBNAME=lib \
+	LIBEXECDIR=/usr/libexec/rc \
+	MKPKGCONFIG=no \
+	MKSELINUX=no \
+	MKSYSVINIT=yes \
+	BRANDING="Buildroot $(BR2_VERSION_FULL)" \
+	CC=$(TARGET_CC)
+
+ifeq ($(BR2_SHARED_LIBS),y)
+OPENRC_MAKE_OPTS += MKSTATICLIBS=no
+else
+OPENRC_MAKE_OPTS += MKSTATICLIBS=yes
+endif
+
+define OPENRC_BUILD_CMDS
+	$(MAKE) $(OPENRC_MAKE_OPTS) -C $(@D)
+endef
+
+define OPENRC_INSTALL_TARGET_CMDS
+	$(MAKE) $(OPENRC_MAKE_OPTS) DESTDIR=$(TARGET_DIR) -C $(@D) install
+endef
+
+define OPENRC_REMOVE_UNNEEDED
+	$(RM) -r $(TARGET_DIR)/usr/share/openrc
+endef
+OPENRC_TARGET_FINALIZE_HOOKS += OPENRC_REMOVE_UNNEEDED
+
+$(eval $(generic-package))
-- 
2.18.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2019-07-23 10:50 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-12 19:55 [Buildroot] [PATCH v2 01/13] package/openrc: new package (v0.41.2) Michał Łyszczek
2019-05-12 19:55 ` [Buildroot] [PATCH v2 02/13] package/skeleton-init-openrc: basic skeleton for openrc Michał Łyszczek
2019-05-18 20:57   ` Thomas Petazzoni
2019-05-12 19:55 ` [Buildroot] [PATCH v2 03/13] system/Config.in: add new init - openrc Michał Łyszczek
2019-05-18 21:18   ` Thomas Petazzoni
2019-05-12 19:55 ` [Buildroot] [PATCH v2 04/13] package/openrc: add support for spawning getty Michał Łyszczek
2019-05-18 21:20   ` Thomas Petazzoni
2019-05-19  8:32     ` michal.lyszczek at bofc.pl
2019-05-12 19:55 ` [Buildroot] [PATCH v2 05/13] package/pkg-generic.mk: add _INSTALL_INIT_OPENRC Michał Łyszczek
2019-05-18 21:21   ` Thomas Petazzoni
2019-05-12 19:55 ` [Buildroot] [PATCH v2 06/13] package/skeleton-init-openrc: add support to remount rootfs as rw Michał Łyszczek
2019-05-18 21:22   ` Thomas Petazzoni
2019-05-19  8:32     ` michal.lyszczek at bofc.pl
2019-07-23 10:50       ` michal.lyszczek at bofc.pl
2019-05-12 19:55 ` [Buildroot] [PATCH v2 07/13] package/openrc-netifrc: net package (v0.6.1) Michał Łyszczek
2019-05-12 19:55 ` [Buildroot] [PATCH v2 08/13] package/openrc-netifrc/openrc-netifrc.mk: add support for BR2_SYSTEM_DHCP Michał Łyszczek
2019-05-12 19:55 ` [Buildroot] [PATCH v2 09/13] package/openrc: add patch to support busybox version of sysctl Michał Łyszczek
2019-05-18 21:25   ` Thomas Petazzoni
2019-05-12 19:55 ` [Buildroot] [PATCH v2 10/13] package/openrc: change /run/lock from root:uucp to root:daemon Michał Łyszczek
2019-05-18 21:26   ` Thomas Petazzoni
2019-05-12 19:55 ` [Buildroot] [PATCH v2 11/13] package/openrc: add support to set terminal encoding Michał Łyszczek
2019-05-12 19:55 ` [Buildroot] [PATCH v2 12/13] package/openrc: add support for setting terminal keymap Michał Łyszczek
2019-05-12 19:55 ` [Buildroot] [PATCH v2 13/13] package/skeleton-init-openrc: add support for starting sysv scripts Michał Łyszczek
2019-05-18 20:54 ` [Buildroot] [PATCH v2 01/13] package/openrc: new package (v0.41.2) Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox