liburing: new package: liburing v0.6
authorChristian Lachner <redacted>
Tue, 30 Jun 2020 09:18:44 +0000 (11:18 +0200)
committerChristian Lachner <redacted>
Tue, 30 Jun 2020 09:18:44 +0000 (11:18 +0200)
- Add initial Makefile
- Add patch to fix inttypes.h inclusion when __kernel_timespec is unavailable

Signed-off-by: Christian Lachner <redacted>
libs/liburing/Makefile [new file with mode: 0644]
libs/liburing/patches/000-OPENWRT-add-int64_t-detection.patch [new file with mode: 0644]

diff --git a/libs/liburing/Makefile b/libs/liburing/Makefile
new file mode 100644 (file)
index 0000000..f3968d2
--- /dev/null
@@ -0,0 +1,65 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=liburing
+PKG_VERSION:=0.6
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://git.kernel.dk/cgit/liburing/snapshot
+PKG_HASH:=44c99b9f148a885d882acd7aa63658141675eae251298cbf79bb9a4ab307ef9c
+
+PKG_MAINTAINER:=Christian Lachner <gladiac@gmail.com>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/liburing
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=liburing
+  URL:=https://git.kernel.dk/cgit/liburing
+endef
+
+define Package/liburing/description
+  liburing provides helpers to setup and teardown io_uring instances,
+  and also a simplified interface for applications that don't need
+  (or want) to deal with the full kernel side implementation.
+  For more info on io_uring, please see: https://kernel.dk/io_uring.pdf
+endef
+
+CONFIGURE_ARGS:=--prefix=$(CONFIGURE_PREFIX) --cc=${TARGET_CC}
+
+ifeq ($(CONFIG_USE_MUSL),y)
+       TARGET_CFLAGS+=-Dloff_t=off_t
+endif
+
+ifeq ($(CONFIG_USE_UCLIBC),y)
+       TARGET_CFLAGS+=-fno-stack-protector
+endif
+
+define Build/Compile
+       $(MAKE) $(PKG_BUILD_DIR) \
+               DSTROOT="$(PKG_INSTALL_DIR)"
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/liburing.pc $(1)/usr/lib/pkgconfig/
+       $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/liburing.pc
+       $(SED) 's,/usr/lib,$$$${prefix}/lib,g' $(1)/usr/lib/pkgconfig/liburing.pc
+endef
+
+define Package/liburing/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/liburing.so $(PKG_INSTALL_DIR)/usr/lib/liburing.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,liburing))
diff --git a/libs/liburing/patches/000-OPENWRT-add-int64_t-detection.patch b/libs/liburing/patches/000-OPENWRT-add-int64_t-detection.patch
new file mode 100644 (file)
index 0000000..6409956
--- /dev/null
@@ -0,0 +1,11 @@
+--- ./configure
++++ ./configure
+@@ -301,6 +301,8 @@
+ fi
+ if test "$__kernel_timespec" != "yes"; then
+ cat >> $compat_h << EOF
++#include <inttypes.h>
++
+ struct __kernel_timespec {
+       int64_t         tv_sec;
+       long long       tv_nsec;
git clone https://git.99rst.org/PROJECT