libudev-fbsd: add package
authorDaniel Golle <daniel@makrotopia.org>
Sun, 18 Jun 2017 21:07:03 +0000 (23:07 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 18 Jun 2017 23:33:32 +0000 (01:33 +0200)
This package provides a small udev shim originally intended for
FreeBSD/devd, but it works well for our non-systemd-environment as
well. It has limited features, but it's enough to detect and
enumerate input devices.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
libs/libudev-fbsd/Makefile [new file with mode: 0644]
libs/libudev-fbsd/patches/001-fix-unused.patch [new file with mode: 0644]
libs/libudev-fbsd/patches/002-replace-nitems.patch [new file with mode: 0644]
libs/libudev-fbsd/patches/003-add-pkg-config-description.patch [new file with mode: 0644]

diff --git a/libs/libudev-fbsd/Makefile b/libs/libudev-fbsd/Makefile
new file mode 100644 (file)
index 0000000..8ef7120
--- /dev/null
@@ -0,0 +1,50 @@
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libudev-fbsd
+
+PKG_RELEASE:=1
+PKG_VERSION:=20160820
+PKG_SOURCE_VERSION:=1f21323b817e70253d3c04bc8bedd61c477d0544
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/jiixyj/libudev-fbsd.git
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=COPYING
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libudev-fbsd
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=small udev shim for FreeBSD/devd (and other non-systemd)
+  URL:=https://github.com/jiixyj/libudev-fbsd
+  DEPENDS:=libevdev
+  PROVIDES:=libudev
+  CONFLICTS:=libudev eudev udev
+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* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libudev-fbsd/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libudev-fbsd))
diff --git a/libs/libudev-fbsd/patches/001-fix-unused.patch b/libs/libudev-fbsd/patches/001-fix-unused.patch
new file mode 100644 (file)
index 0000000..1949433
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/src/libudev.c
++++ b/src/libudev.c
+@@ -354,7 +354,7 @@ udev_device_get_subsystem(struct udev_de
+ const char *
+ udev_device_get_sysattr_value(
+-    struct udev_device *udev_device __unused, const char *sysattr)
++     __attribute__ ((unused))struct udev_device *udev_device, const char *sysattr)
+ {
+       (void)sysattr;
+       LOG("stub: udev_device_get_sysattr_value %s\n", sysattr);
+@@ -469,7 +469,7 @@ udev_device_get_parent_with_subsystem_de
+ }
+ struct udev_enumerate *
+-udev_enumerate_new(struct udev *udev __unused)
++udev_enumerate_new( __attribute__ ((unused))struct udev *udev)
+ {
+       LOG("udev_enumerate_new\n");
+       struct udev_enumerate *u = calloc(1, sizeof(struct udev_enumerate));
+@@ -538,7 +538,7 @@ udev_enumerate_get_list_entry(struct ude
+ int
+ udev_enumerate_add_match_sysname(
+-    struct udev_enumerate *udev_enumerate __unused, const char *sysname)
++     __attribute__ ((unused))struct udev_enumerate *udev_enumerate, const char *sysname)
+ {
+       (void)sysname;
+       LOG("stub: udev_enumerate_add_match_sysname %s\n", sysname);
+--- a/src/libudev.h
++++ b/src/libudev.h
+@@ -24,8 +24,8 @@ void udev_unref(struct udev *udev);
+ char const *udev_device_get_devnode(struct udev_device *udev_device);
+ dev_t udev_device_get_devnum(struct udev_device *udev_device);
+ char const *udev_device_get_property_value(
+-    struct udev_device *dummy __unused, char const *property);
+-struct udev *udev_device_get_udev(struct udev_device *dummy __unused);
++     __attribute__ ((unused))struct udev_device *dummy, char const *property);
++struct udev *udev_device_get_udev( __attribute__ ((unused))struct udev_device *dummy);
+ struct udev_device *udev_device_new_from_syspath(
+     struct udev *udev, char const *syspath);
+ struct udev_device *udev_device_new_from_devnum(
diff --git a/libs/libudev-fbsd/patches/002-replace-nitems.patch b/libs/libudev-fbsd/patches/002-replace-nitems.patch
new file mode 100644 (file)
index 0000000..7f4d0de
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/libudev.c
++++ b/src/libudev.c
+@@ -175,7 +175,7 @@ populate_properties_list(struct udev_dev
+       struct udev_list_entry **list_end = &udev_device->properties_list;
+-      for (unsigned i = 0; i < nitems(ids); ++i) {
++      for (unsigned i = 0; i < (sizeof(ids) / sizeof(ids[0])); ++i) {
+               char const *id = ids[i];
+               struct udev_list_entry *le;
diff --git a/libs/libudev-fbsd/patches/003-add-pkg-config-description.patch b/libs/libudev-fbsd/patches/003-add-pkg-config-description.patch
new file mode 100644 (file)
index 0000000..9aec7b9
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -11,6 +11,7 @@ install(TARGETS udev LIBRARY DESTINATION
+ install(FILES libudev.h DESTINATION include)
+ set(PKG_CONFIG_NAME libudev)
++set(PKG_CONFIG_DESCRIPTION small udev shim for FreeBSD/devd)
+ set(PKG_CONFIG_REQUIRES libevdev)
+ set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
+ set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
+--- a/src/pkg-config.pc.cmake
++++ b/src/pkg-config.pc.cmake
+@@ -3,6 +3,7 @@ libdir=${PKG_CONFIG_LIBDIR}
+ includedir=${PKG_CONFIG_INCLUDEDIR}
+ Name: ${PKG_CONFIG_NAME}
++Description: ${PKG_CONFIG_DESCRIPTION}
+ Version: 143
+ Requires: ${PKG_CONFIG_REQUIRES}
+ Libs: ${PKG_CONFIG_LIBS}