Hi,

this patch separates the old sysfsutils into libsysfs (library) and
sysfsutils (systool utility), and moves the package to libs.

And also adds a patch to check that the mount point is indeed mounted
(from Debian patch-tracker).

(This patch must be applied from the parent dir of packages/)

-Raphael
diff '--exclude=.svn' -pruN packages.orig/libs/sysfsutils/Makefile packages/libs/sysfsutils/Makefile
--- packages.orig/libs/sysfsutils/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ packages/libs/sysfsutils/Makefile	2010-02-26 14:58:58.000000000 +0100
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2006-2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=sysfsutils
+PKG_VERSION:=2.1.0
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=...@sf/linux-diag
+PKG_MD5SUM:=14e7dcd0436d2f49aa403f67e1ef7ddc
+
+PKG_FIXUP:=libtool
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libsysfs
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=...@linux_2_6
+  TITLE:=Sysfs library
+  URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
+endef
+
+define Package/sysfsutils
+  SECTION:=utils
+  CATEGORY:=Utilities
+  SUBMENU:=Filesystem
+  DEPENDS:=...@linux_2_6 +libsysfs
+  TITLE:=System Utilities Based on Sysfs
+  URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
+endef
+
+define Package/libsysfs/description
+The library's purpose is to provide a consistant and stable interface for
+querying system device information exposed through sysfs.
+endef
+
+define Package/sysfsutils/description
+A utility built upon libsysfs that lists devices by bus, class, and topology.
+endef
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(1)/usr/include
+	$(CP) $(PKG_INSTALL_DIR)/usr/include/sysfs $(1)/usr/include/
+
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.{a,so*,la} $(1)/usr/lib/
+endef
+
+define Package/libsysfs/install
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.so* $(1)/usr/lib/
+endef
+
+define Package/sysfsutils/install
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(CP) $(PKG_INSTALL_DIR)/usr/bin/systool $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,libsysfs))
+$(eval $(call BuildPackage,sysfsutils))
diff '--exclude=.svn' -pruN packages.orig/libs/sysfsutils/patches/200-mnt_path_check.patch packages/libs/sysfsutils/patches/200-mnt_path_check.patch
--- packages.orig/libs/sysfsutils/patches/200-mnt_path_check.patch	1970-01-01 01:00:00.000000000 +0100
+++ packages/libs/sysfsutils/patches/200-mnt_path_check.patch	2010-02-26 14:58:58.000000000 +0100
@@ -0,0 +1,55 @@
+--- a/lib/sysfs_utils.c
++++ b/lib/sysfs_utils.c
+@@ -22,6 +22,7 @@
+  */
+ #include "libsysfs.h"
+ #include "sysfs.h"
++#include <mntent.h>
+ 
+ /**
+  * sysfs_remove_trailing_slash: Removes any trailing '/' in the given path
+@@ -53,6 +54,9 @@ int sysfs_get_mnt_path(char *mnt_path, s
+ {
+ 	static char sysfs_path[SYSFS_PATH_MAX] = "";
+ 	const char *sysfs_path_env;
++	FILE *mnt;
++	struct mntent *mntent;
++	int ret;
+ 
+ 	if (len == 0 || mnt_path == NULL)
+ 		return -1;
+@@ -64,12 +68,31 @@ int sysfs_get_mnt_path(char *mnt_path, s
+ 		if (sysfs_path_env != NULL) {
+ 			safestrcpymax(mnt_path, sysfs_path_env, len);
+ 			sysfs_remove_trailing_slash(mnt_path);
+-			return 0;
++		} else {
++			safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);
+ 		}
+-		safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);
+ 	}
+ 
+-	return 0;
++	/* check that mount point is indeed mounted */
++	ret = -1;
++	if ((mnt = setmntent(SYSFS_PROC_MNTS, "r")) == NULL) {
++		dprintf("Error getting mount information\n");
++		return -1;
++	}
++	while ((mntent = getmntent(mnt)) != NULL) {
++		if (strcmp(mntent->mnt_type, SYSFS_FSTYPE_NAME) == 0 &&
++			strcmp(mntent->mnt_dir, mnt_path) == 0) {
++			ret = 0;
++			break;
++		}
++	}
++	
++	endmntent(mnt);
++
++	if (ret < 0)
++		errno = ENOENT;
++
++	return ret;
+ }
+ 
+ /**
diff '--exclude=.svn' -pruN packages.orig/utils/sysfsutils/Makefile packages/utils/sysfsutils/Makefile
--- packages.orig/utils/sysfsutils/Makefile	2010-02-26 14:58:36.000000000 +0100
+++ packages/utils/sysfsutils/Makefile	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-#
-# Copyright (C) 2006-2010 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=sysfsutils
-PKG_VERSION:=2.1.0
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=...@sf/linux-diag
-PKG_MD5SUM:=14e7dcd0436d2f49aa403f67e1ef7ddc
-
-PKG_FIXUP:=libtool
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/sysfsutils
-  SECTION:=utils
-  CATEGORY:=Utilities
-  SUBMENU:=Filesystem
-  DEPENDS:=...@linux_2_6
-  TITLE:=sysfs Utilities
-  URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
-endef
-
-define Build/InstallDev
-	$(INSTALL_DIR) $(1)/usr/include
-	$(CP) $(PKG_INSTALL_DIR)/usr/include/sysfs $(1)/usr/include/
-	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.{a,so*} $(1)/usr/lib/
-endef
-
-define Package/sysfsutils/install
-	$(INSTALL_DIR) $(1)/usr/bin
-	$(CP) $(PKG_INSTALL_DIR)/usr/bin/systool $(1)/usr/bin/
-	$(INSTALL_DIR) $(1)/usr/lib
-	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsysfs.so.* $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,sysfsutils))
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to