Skip to contentSkip to conversation

package/sysdig: New package

PATCH Superseded Angelo Compagnucci 2 participants 3 messages Mar 20, 2015 – Mar 25, 2015

v5 of 10 Superseded Latest is v10 →

lore
Share & tools
lore
#0 lore raw

PATCH v5 1/1 package/sysdig: New package

Sysdig is open source, system-level exploration:
capture system state and activity from a running Linux instance, then save, filter and analyze.

---
Changes v4 -> v5:
- Adjusted to 80 columns for sysdig.mk header

Changes v3 -> v4:
- Changed "depends on" to "select" and fixed selected packages dependencies.
- moved "comment" section to the bottom

Changes v2 -> v3:
- Changed "depends on" and "select" to simplify package

Changes v1 -> v2:
- Changed "depends on" with "select" for dependencies (suggested by Baruch)
- Added comment "sysdig needs a Linux kernel to be built" (suggested by Baruch)
- Upgreded to recently released 0.1.99

 package/Config.in        |  1 +
 package/sysdig/Config.in | 21 +++++++++++++++++++++
 package/sysdig/sysdig.mk | 22 ++++++++++++++++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 package/sysdig/Config.in
 create mode 100644 package/sysdig/sysdig.mk
package/Config.in +1 -0
index fce92a8..6596292 100644
@@ -95,6 +95,7 @@ endif
 	source "package/strace/Config.in"
 	source "package/stress/Config.in"
 	source "package/sysprof/Config.in"
+	source "package/sysdig/Config.in"
 	source "package/tinymembench/Config.in"
 	source "package/trace-cmd/Config.in"
 	source "package/trinity/Config.in"
package/sysdig/Config.in new file +21 -0
new file mode 100644
index 0000000..5c2b070
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_SYSDIG
+	bool "sysdig"
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_LUAJIT
+	select BR2_PACKAGE_LIBJSON
+	depends on BR2_LINUX_KERNEL
+	depends on BR2_INSTALL_LIBSTDCPP # libjson
+	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
+	help
+	  Sysdig is open source, system-level exploration:
+	  capture system state and activity from a running Linux instance,
+	  then save, filter and analyze.
+	  Think of it as strace + tcpdump + lsof + awesome sauce.
+	  With a little Lua cherry on top.
+
+	  http://sysdig.org
+
+comment "sysdig needs a toolchain w/ C++ and a Linux kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+	depends on !BR2_INSTALL_LIBSTDCPP
+	depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/sysdig/sysdig.mk new file +22 -0
new file mode 100644
index 0000000..8fea399
@@ -0,0 +1,22 @@
+################################################################################
+#
+# sysdig
+#
+################################################################################
+
+SYSDIG_VERSION = 0.1.99
+SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION))
+SYSDIG_LICENSE = GPLv2
+SYSDIG_LICENSE_FILES = COPYING
+SYSDIG_CONF_OPTS = -DUSE_BUNDLED_LUAJIT=OFF -DUSE_BUNDLED_ZLIB=OFF
+SYSDIG_DEPENDENCIES = zlib luajit libjson linux
+SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO
+
+define SYSDIG_INSTALL_DRIVER
+	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules
+	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules_install
+endef
+
+SYSDIG_POST_INSTALL_TARGET_HOOKS += SYSDIG_INSTALL_DRIVER
+
+$(eval $(cmake-package))
Signature · 1 line
1.9.1
#1 lore raw

PATCH v5 1/1 package/sysdig: New package

Hi Angelo,

Quoted 76 lines · Angelo Compagnucci

Sysdig is open source, system-level exploration:
capture system state and activity from a running Linux instance, then save, filter and analyze.

---
Changes v4 -> v5:
- Adjusted to 80 columns for sysdig.mk header

Changes v3 -> v4:
- Changed "depends on" to "select" and fixed selected packages dependencies.
- moved "comment" section to the bottom

Changes v2 -> v3:
- Changed "depends on" and "select" to simplify package

Changes v1 -> v2:
- Changed "depends on" with "select" for dependencies (suggested by Baruch)
- Added comment "sysdig needs a Linux kernel to be built" (suggested by Baruch)
- Upgreded to recently released 0.1.99

 package/Config.in        |  1 +
 package/sysdig/Config.in | 21 +++++++++++++++++++++
 package/sysdig/sysdig.mk | 22 ++++++++++++++++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 package/sysdig/Config.in
 create mode 100644 package/sysdig/sysdig.mk
package/Config.in +1 -0
index fce92a8..6596292 100644
@@ -95,6 +95,7 @@ endif
        source "package/strace/Config.in"
        source "package/stress/Config.in"
        source "package/sysprof/Config.in"
+       source "package/sysdig/Config.in"
        source "package/tinymembench/Config.in"
        source "package/trace-cmd/Config.in"
        source "package/trinity/Config.in"
package/sysdig/Config.in new file +21 -0
new file mode 100644
index 0000000..5c2b070
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_SYSDIG
+       bool "sysdig"
+       select BR2_PACKAGE_ZLIB
+       select BR2_PACKAGE_LUAJIT
+       select BR2_PACKAGE_LIBJSON
+       depends on BR2_LINUX_KERNEL
+       depends on BR2_INSTALL_LIBSTDCPP # libjson
+       depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
+       help
+         Sysdig is open source, system-level exploration:
+         capture system state and activity from a running Linux instance,
+         then save, filter and analyze.
+         Think of it as strace + tcpdump + lsof + awesome sauce.
+         With a little Lua cherry on top.
+
+         http://sysdig.org
+
+comment "sysdig needs a toolchain w/ C++ and a Linux kernel to be built"
+       depends on !BR2_LINUX_KERNEL
+       depends on !BR2_INSTALL_LIBSTDCPP
+       depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/sysdig/sysdig.mk new file +1 -0
new file mode 100644
index 0000000..8fea399
@@ -0,0 +1,22 @@
+################################################################################

package/sysdig/sysdig.mk line 11

Quoted 10 lines
package/sysdig/sysdig.mk new file +10 -0
+#
+# sysdig
+#
+################################################################################
+
+SYSDIG_VERSION = 0.1.99
+SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION))
+SYSDIG_LICENSE = GPLv2
+SYSDIG_LICENSE_FILES = COPYING
+SYSDIG_CONF_OPTS = -DUSE_BUNDLED_LUAJIT=OFF -DUSE_BUNDLED_ZLIB=OFF

You may also want to set USE_BUNDLED_JSONCPP here.

package/sysdig/sysdig.mk line 16

Quoted 5 lines
package/sysdig/sysdig.mk new file +5 -0
+SYSDIG_DEPENDENCIES = zlib luajit libjson linux
+SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO
+
+define SYSDIG_INSTALL_DRIVER
+       $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules

This command actually build the kernel module, so should be in a _BUILD_HOOK ;-)

package/sysdig/sysdig.mk line 20

Quoted 4 lines
package/sysdig/sysdig.mk new file +4 -0
+       $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules_install
+endef
+
+SYSDIG_POST_INSTALL_TARGET_HOOKS += SYSDIG_INSTALL_DRIVER

The weird thing here is that you manually build/install the kernel module, whereas AFAICS it should be automatically done by the build-system (the driver directory is always scan in the Buildroot context (see [1]), and BUILD_DRIVER is ON by default ([2])). I suggest to disable BUILD_DRIVER in the conf. options.

Quoted 9 lines
package/sysdig/sysdig.mk new file +2 -1
+
+$(eval $(cmake-package))
--

1.9.1

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

[1] https://github.com/draios/sysdig/blob/dev/CMakeLists.txt#L50
[2] https://github.com/draios/sysdig/blob/dev/driver/CMakeLists.txt#L1

Regards,

Signature · 1 line
Samuel
#2 lore raw

PATCH v5 1/1 package/sysdig: New package

Dear Samuel Martin,

2015-03-20 22:49 GMT+01:00 Samuel Martin <[email protected]>:

Quoted 83 lines

Hi Angelo,

Quoted 79 lines · Angelo Compagnucci

Sysdig is open source, system-level exploration:
capture system state and activity from a running Linux instance, then save, filter and analyze.

---
Changes v4 -> v5:
- Adjusted to 80 columns for sysdig.mk header

Changes v3 -> v4:
- Changed "depends on" to "select" and fixed selected packages dependencies.
- moved "comment" section to the bottom

Changes v2 -> v3:
- Changed "depends on" and "select" to simplify package

Changes v1 -> v2:
- Changed "depends on" with "select" for dependencies (suggested by Baruch)
- Added comment "sysdig needs a Linux kernel to be built" (suggested by Baruch)
- Upgreded to recently released 0.1.99

 package/Config.in        |  1 +
 package/sysdig/Config.in | 21 +++++++++++++++++++++
 package/sysdig/sysdig.mk | 22 ++++++++++++++++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 package/sysdig/Config.in
 create mode 100644 package/sysdig/sysdig.mk
package/Config.in +1 -0
index fce92a8..6596292 100644
@@ -95,6 +95,7 @@ endif
        source "package/strace/Config.in"
        source "package/stress/Config.in"
        source "package/sysprof/Config.in"
+       source "package/sysdig/Config.in"
        source "package/tinymembench/Config.in"
        source "package/trace-cmd/Config.in"
        source "package/trinity/Config.in"
package/sysdig/Config.in new file +21 -0
new file mode 100644
index 0000000..5c2b070
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_SYSDIG
+       bool "sysdig"
+       select BR2_PACKAGE_ZLIB
+       select BR2_PACKAGE_LUAJIT
+       select BR2_PACKAGE_LIBJSON
+       depends on BR2_LINUX_KERNEL
+       depends on BR2_INSTALL_LIBSTDCPP # libjson
+       depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
+       help
+         Sysdig is open source, system-level exploration:
+         capture system state and activity from a running Linux instance,
+         then save, filter and analyze.
+         Think of it as strace + tcpdump + lsof + awesome sauce.
+         With a little Lua cherry on top.
+
+         http://sysdig.org
+
+comment "sysdig needs a toolchain w/ C++ and a Linux kernel to be built"
+       depends on !BR2_LINUX_KERNEL
+       depends on !BR2_INSTALL_LIBSTDCPP
+       depends on BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
package/sysdig/sysdig.mk new file +4 -0
new file mode 100644
index 0000000..8fea399
@@ -0,0 +1,22 @@
+################################################################################
+#
+# sysdig
+#
Quoted 8 lines

package/sysdig/sysdig.mk line 11

Quoted 7 lines
package/sysdig/sysdig.mk new file +7 -0
+################################################################################
+
+SYSDIG_VERSION = 0.1.99
+SYSDIG_SITE = $(call github,draios,sysdig,$(SYSDIG_VERSION))
+SYSDIG_LICENSE = GPLv2
+SYSDIG_LICENSE_FILES = COPYING
+SYSDIG_CONF_OPTS = -DUSE_BUNDLED_LUAJIT=OFF -DUSE_BUNDLED_ZLIB=OFF

You may also want to set USE_BUNDLED_JSONCPP here.

Yes, right!

Quoted 8 lines

package/sysdig/sysdig.mk line 16

Quoted 6 lines
package/sysdig/sysdig.mk new file +5 -0
+SYSDIG_DEPENDENCIES = zlib luajit libjson linux
+SYSDIG_SUPPORTS_IN_SOURCE_BUILD = NO
+
+define SYSDIG_INSTALL_DRIVER
+       $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules

This command actually build the kernel module, so should be in a _BUILD_HOOK ;-)

Quoted 10 lines

package/sysdig/sysdig.mk line 20

Quoted 4 lines
package/sysdig/sysdig.mk new file +4 -0
+       $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) M=$(@D)/driver modules_install
+endef
+
+SYSDIG_POST_INSTALL_TARGET_HOOKS += SYSDIG_INSTALL_DRIVER

The weird thing here is that you manually build/install the kernel module, whereas AFAICS it should be automatically done by the build-system (the driver directory is always scan in the Buildroot context (see [1]), and BUILD_DRIVER is ON by default ([2])). I suggest to disable BUILD_DRIVER in the conf. options.

I just pushed a patch with a better solution. Please review it!

Thank you!

Quoted 18 lines
Quoted 10 lines
package/sysdig/sysdig.mk new file +2 -1
+
+$(eval $(cmake-package))
--

1.9.1

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

[1] https://github.com/draios/sysdig/blob/dev/CMakeLists.txt#L50
[2] https://github.com/draios/sysdig/blob/dev/driver/CMakeLists.txt#L1

Regards,

--
Samuel

Signature · 1 line
Profile: http://it.linkedin.com/in/compagnucciangelo