Skip to contentSkip to conversation

pimd: new package

PATCH New Sergio Prado 2 participants 2 messages Dec 11, 2017 – Dec 16, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 pimd: new package

pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon.

Tested on Beaglebone Black.

Build-tested with test-pkg script.

---

Changes v2->v3
- moved to the correct menu location at "Target packages" -> "Networking applications".

Changes v1->v2
- added LICENSE.mrouted as a license file.
- changed to generic package, since it is not a real autotools based package.

---
 DEVELOPERS             |  1 +
 package/Config.in      |  1 +
 package/pimd/Config.in |  8 ++++++++
 package/pimd/pimd.hash |  6 ++++++
 package/pimd/pimd.mk   | 38 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 54 insertions(+)
 create mode 100644 package/pimd/Config.in
 create mode 100644 package/pimd/pimd.hash
 create mode 100644 package/pimd/pimd.mk
DEVELOPERS +1 -0
index 27b22f4f0fed..1a998f3dfc12 100644
@@ -1518,6 +1518,7 @@ F:	configs/linksprite_pcduino_defconfig
 N:	Sergio Prado <[email protected]>
 F:	package/libgdiplus/
 F:	package/mongodb/
+F:	package/pimd/
 F:	package/stella/
 F:	package/tunctl/
 F:	package/ubus/
package/Config.in +1 -0
index aa111e48e6fb..6a01b22226b3 100644
@@ -1749,6 +1749,7 @@ endif
 	source "package/p910nd/Config.in"
 	source "package/phidgetwebservice/Config.in"
 	source "package/phytool/Config.in"
+	source "package/pimd/Config.in"
 	source "package/pound/Config.in"
 	source "package/pppd/Config.in"
 	source "package/pptp-linux/Config.in"
package/pimd/Config.in new file +8 -0
new file mode 100644
index 000000000000..d6a579bda258
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_PIMD
+	bool "pimd"
+	depends on BR2_USE_MMU # fork()
+	help
+	  pimd is a lightweight stand-alone PIM-SM v2 multicast routing
+	  daemon.
+
+	  http://troglobit.com/project/pimd/
package/pimd/pimd.hash new file +6 -0
new file mode 100644
index 000000000000..98c717d2e8af
@@ -0,0 +1,6 @@
+# Locally computed:
+sha256 c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d  pimd-2.3.2.tar.gz
+
+# Hash for license files:
+sha256 3379436c16caccdef9b40a49fbdfdbb45aad8ecb05870834490b8fb080126009  LICENSE
+sha256 4328a21f0822caa9976356623118bcdcc9970c7a0f9a3deeba23c779b7cfb5d1  LICENSE.mrouted
package/pimd/pimd.mk new file +38 -0
new file mode 100644
index 000000000000..3730bb496e95
@@ -0,0 +1,38 @@
+################################################################################
+#
+# pimd
+#
+################################################################################
+
+PIMD_VERSION = 2.3.2
+PIMD_SOURCE = pimd-$(PIMD_VERSION).tar.gz
+PIMD_SITE = https://github.com/troglobit/pimd/releases/download/$(PIMD_VERSION)
+
+PIMD_LICENSE = BSD-3-Clause
+PIMD_LICENSE_FILES = LICENSE LICENSE.mrouted
+
+PIMD_MAKE_OPTS = CROSS=$(TARGET_CROSS) CC=$(TARGET_CC)
+
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),y)
+PIMD_CONF_OPTS = --embedded-libc
+endif
+
+# The configure script is not autoconf based, so we use the
+# generic-package infrastructure
+define PIMD_CONFIGURE_CMDS
+	(cd $(@D); \
+		$(TARGET_CONFIGURE_OPTS) \
+		$(TARGET_CONFIGURE_ARGS) \
+		./configure $(PIMD_CONF_OPTS) \
+	)
+endef
+
+define PIMD_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(PIMD_MAKE_OPTS) -C $(@D)
+endef
+
+define PIMD_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.9.1
#1 lore raw

PATCH v3 1/1 pimd: new package

Hello,

package/pimd/pimd.mk line 14

Quoted 8 lines · Sergio Prado
package/pimd/pimd.mk new file +8 -0
+PIMD_VERSION = 2.3.2
+PIMD_SOURCE = pimd-$(PIMD_VERSION).tar.gz
+PIMD_SITE = https://github.com/troglobit/pimd/releases/download/$(PIMD_VERSION)
+
+PIMD_LICENSE = BSD-3-Clause
+PIMD_LICENSE_FILES = LICENSE LICENSE.mrouted
+
+PIMD_MAKE_OPTS = CROSS=$(TARGET_CROSS) CC=$(TARGET_CC)

This variable was not really needed, since it's used only once, so I've used CROSS and CC directly in BUILD_CMDS.

package/pimd/pimd.mk line 17

Quoted 3 lines
package/pimd/pimd.mk new file +3 -0
+
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_TOOLCHAIN_USES_MUSL),y)
+PIMD_CONF_OPTS = --embedded-libc

I've used += here instead of =, since we're inside a condition. This typically avoids mistakes in the future.

package/pimd/pimd.mk line 36

Quoted 3 lines
package/pimd/pimd.mk new file +3 -0
+define PIMD_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install
+endef

This was incorrectly installing in $(TARGET_DIR)/usr/local, so I've added prefix=/usr to fix that. I've also dropped the quotes around "$(TARGET_DIR)" since we don't do it in general in Buildroot.

Applied with those changes. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com