package/sentry-native: new package
authorJoseph Kogut <joseph.kogut@gmail.com>
Tue, 15 Sep 2020 21:01:22 +0000 (14:01 -0700)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 19 Sep 2020 21:14:09 +0000 (23:14 +0200)
Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
Tested-by: Titouan Christophe <titouan.christophe@railnova.eu>
Reviewed-by: Titouan Christophe <titouan.christophe@railnova.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
DEVELOPERS
package/Config.in
package/sentry-native/0001-sentry.h-include-ucontext.h.patch [new file with mode: 0644]
package/sentry-native/Config.in [new file with mode: 0644]
package/sentry-native/sentry-native.hash [new file with mode: 0644]
package/sentry-native/sentry-native.mk [new file with mode: 0644]

index fd839c8f6301c3b59db5ff4449e1cda9c98dce4a..42bbdc7e7833bf519e21138235ceb7e87a72d70a 100644 (file)
@@ -1424,6 +1424,7 @@ F:        package/python-sentry-sdk/
 F:     package/python-websockets/
 F:     package/python-xlib/
 F:     package/sentry-cli/
+F:     package/sentry-native/
 F:     package/unclutter-xfixes/
 
 N:     Joshua Henderson <joshua.henderson@microchip.com>
index 2f3025289132a9df8e2751f7d10004187d43ebdc..0282a2069f88961eba577c51ba565367966c4010 100644 (file)
@@ -129,6 +129,7 @@ menu "Debugging, profiling and benchmark"
        source "package/ramsmp/Config.in"
        source "package/ramspeed/Config.in"
        source "package/rt-tests/Config.in"
+       source "package/sentry-native/Config.in"
        source "package/spidev_test/Config.in"
        source "package/strace/Config.in"
        source "package/stress/Config.in"
diff --git a/package/sentry-native/0001-sentry.h-include-ucontext.h.patch b/package/sentry-native/0001-sentry.h-include-ucontext.h.patch
new file mode 100644 (file)
index 0000000..108f389
--- /dev/null
@@ -0,0 +1,27 @@
+From 6a3b7b28f34c91c72d8b849903d93de2997b82f1 Mon Sep 17 00:00:00 2001
+From: Joseph Kogut <joseph.kogut@gmail.com>
+Date: Tue, 8 Sep 2020 11:40:01 -0700
+Subject: [PATCH] sentry.h: include ucontext.h
+
+This is included by signal.h in newer versions of glibc, but results
+in an unknown type name error in older versions.
+
+Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
+---
+ include/sentry.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/sentry.h b/include/sentry.h
+index 25754d9..a55cc00 100644
+--- a/include/sentry.h
++++ b/include/sentry.h
+@@ -78,6 +78,7 @@ extern "C" {
+ #    include <wtypes.h>
+ #else
+ #    include <signal.h>
++#    include <ucontext.h>
+ #endif
+
+ /**
+--
+2.28.0
diff --git a/package/sentry-native/Config.in b/package/sentry-native/Config.in
new file mode 100644 (file)
index 0000000..7a3cbd3
--- /dev/null
@@ -0,0 +1,28 @@
+config BR2_PACKAGE_SENTRY_NATIVE
+       bool "sentry-native"
+       depends on BR2_INSTALL_LIBSTDCPP # google-breakpad
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # google-breakpad
+       depends on BR2_USE_WCHAR # google-breakpad
+       depends on BR2_TOOLCHAIN_HAS_THREADS # google-breakpad
+       # google-breakpad is restricted to glibc or uClibc, but
+       # sentry-native needs <execinfo.h>, so it restricts further to
+       # just glibc.
+       depends on BR2_TOOLCHAIN_USES_GLIBC
+       depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS # google-breakpad
+       depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS # google-breakpad
+       select BR2_PACKAGE_GOOGLE_BREAKPAD
+       select BR2_PACKAGE_LIBCURL
+       help
+         The Sentry Native SDK is an error and crash
+         reporting client for native applications,
+         optimized for C and C++.
+
+         https://github.com/getsentry/sentry-native
+
+comment "sentry-native needs a glibc toolchain with w/ wchar, thread, C++, gcc >= 4.8"
+       depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
+       depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
+               !BR2_TOOLCHAIN_HAS_THREADS || \
+               !BR2_TOOLCHAIN_USES_GLIBC || \
+               !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
diff --git a/package/sentry-native/sentry-native.hash b/package/sentry-native/sentry-native.hash
new file mode 100644 (file)
index 0000000..dffc7ae
--- /dev/null
@@ -0,0 +1,3 @@
+# locally calculated
+sha256  a7d04fe9b9175c30a58ce20ae23b510595045a66884a447dd21ff2d0c749751b  sentry-native-0.4.1.tar.gz
+sha256  5ef07a3d95f1f779c1597c0fbaecbb7ba242128ff0587ed1e3214c7ac6154523  LICENSE
diff --git a/package/sentry-native/sentry-native.mk b/package/sentry-native/sentry-native.mk
new file mode 100644 (file)
index 0000000..b2b86d4
--- /dev/null
@@ -0,0 +1,18 @@
+################################################################################
+#
+# sentry-native
+#
+################################################################################
+
+SENTRY_NATIVE_VERSION = 0.4.1
+SENTRY_NATIVE_SITE = $(call github,getsentry,sentry-native,$(SENTRY_NATIVE_VERSION))
+SENTRY_NATIVE_INSTALL_STAGING = YES
+SENTRY_NATIVE_LICENSE = MIT
+SENTRY_NATIVE_LICENSE_FILES = LICENSE
+SENTRY_NATIVE_DEPENDENCIES = libcurl google-breakpad
+SENTRY_NATIVE_INSTALL_STAGING = YES
+
+# Use the built system breakpad client instead of bundling
+SENTRY_NATIVE_CONF_OPTS += -DSENTRY_BREAKPAD_SYSTEM=ON
+
+$(eval $(cmake-package))