sysfsutils: move to the correct directory
SVN-Revision: 33856
This commit is contained in:
		
							
								
								
									
										70
									
								
								package/libs/sysfsutils/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								package/libs/sysfsutils/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
#
 | 
			
		||||
# Copyright (C) 2006-2012 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_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
 | 
			
		||||
 | 
			
		||||
PKG_FIXUP:=autoreconf
 | 
			
		||||
 | 
			
		||||
PKG_INSTALL:=1
 | 
			
		||||
 | 
			
		||||
include $(INCLUDE_DIR)/package.mk
 | 
			
		||||
 | 
			
		||||
define Package/libsysfs
 | 
			
		||||
  SECTION:=libs
 | 
			
		||||
  CATEGORY:=Libraries
 | 
			
		||||
  SUBMENU:=Filesystem
 | 
			
		||||
  TITLE:=Sysfs library
 | 
			
		||||
  URL:=http://linux-diag.sourceforge.net/Sysfsutils.html
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Package/sysfsutils
 | 
			
		||||
  SECTION:=utils
 | 
			
		||||
  CATEGORY:=Utilities
 | 
			
		||||
  SUBMENU:=Filesystem
 | 
			
		||||
  DEPENDS:=+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))
 | 
			
		||||
							
								
								
									
										55
									
								
								package/libs/sysfsutils/patches/200-mnt_path_check.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								package/libs/sysfsutils/patches/200-mnt_path_check.patch
									
									
									
									
									
										Normal file
									
								
							@@ -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;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /**
 | 
			
		||||
		Reference in New Issue
	
	Block a user