diff options
Diffstat (limited to 'recipes/sysfsutils')
-rw-r--r-- | recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch | 29 | ||||
-rw-r--r-- | recipes/sysfsutils/sysfsutils-2.1.0/get_mnt_path_check.patch | 56 | ||||
-rw-r--r-- | recipes/sysfsutils/sysfsutils_1.3.0.bb | 22 | ||||
-rw-r--r-- | recipes/sysfsutils/sysfsutils_2.0.0.bb | 24 | ||||
-rw-r--r-- | recipes/sysfsutils/sysfsutils_2.1.0.bb | 22 |
5 files changed, 153 insertions, 0 deletions
diff --git a/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch b/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch new file mode 100644 index 0000000000..447d90f588 --- /dev/null +++ b/recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch @@ -0,0 +1,29 @@ +Hi, + +int sysfs_write_attribute(struct sysfs_attribute *sysattr, + const char *new_value, size_t len) + +has a problematic "feature": if the file is empty but readable, nothing gets +written into it. The attached patch (untested) should fix it. + + Dominik + + +The check which tests whether the value to be written into a sysfs attribute +is already there should only trigger if the length of both strings is the +same. + +Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> + +--- sysfsutils-1.2.0/lib/sysfs_dir.c.original 2005-02-21 08:10:33.000000000 +0100 ++++ sysfsutils-1.2.0/lib/sysfs_dir.c 2005-02-21 08:14:01.000000000 +0100 +@@ -194,7 +194,8 @@ + dprintf("Error reading attribute\n"); + return -1; + } +- if ((strncmp(sysattr->value, new_value, sysattr->len)) == 0) { ++ if (((strncmp(sysattr->value, new_value, sysattr->len)) == 0)&& ++ (len == sysattr->len)) { + dprintf("Attr %s already has the requested value %s\n", + sysattr->name, new_value); + return 0; diff --git a/recipes/sysfsutils/sysfsutils-2.1.0/get_mnt_path_check.patch b/recipes/sysfsutils/sysfsutils-2.1.0/get_mnt_path_check.patch new file mode 100644 index 0000000000..47f6cafb05 --- /dev/null +++ b/recipes/sysfsutils/sysfsutils-2.1.0/get_mnt_path_check.patch @@ -0,0 +1,56 @@ +diff -ruN sysfsutils-2.0.0-old/lib/sysfs_utils.c sysfsutils-2.0.0/lib/sysfs_utils.c +--- sysfsutils-2.0.0-old/lib/sysfs_utils.c 2005-12-07 12:28:18.000000000 +0100 ++++ sysfsutils-2.0.0/lib/sysfs_utils.c 2006-03-06 19:06:11.000000000 +0100 +@@ -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 @@ + { + 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 @@ + 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 --git a/recipes/sysfsutils/sysfsutils_1.3.0.bb b/recipes/sysfsutils/sysfsutils_1.3.0.bb new file mode 100644 index 0000000000..11e4ca7e9a --- /dev/null +++ b/recipes/sysfsutils/sysfsutils_1.3.0.bb @@ -0,0 +1,22 @@ +PR = "r2" +SECTION = "base" +DESCRIPTION = "System Utilities Based on Sysfs" +HOMEPAGE = "http://linux-diag.sourceforge.net/Sysfsutils.html" +LICENSE = "GPLv2" +SRC_URI = "${SOURCEFORGE_MIRROR}/linux-diag/sysfsutils-${PV}.tar.gz" + +S = "${WORKDIR}/sysfsutils-${PV}" + +inherit autotools + +includedir += "/sysfs" + +PACKAGES_prepend = "libsysfs " +FILES_libsysfs = "${libdir}/*.so.1.0.3" + +do_stage () { + oe_libinstall -a -so -C lib libsysfs ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR}/sysfs + install -m 0644 ${S}/include/dlist.h ${STAGING_INCDIR}/sysfs + install -m 0644 ${S}/include/libsysfs.h ${STAGING_INCDIR}/sysfs +} diff --git a/recipes/sysfsutils/sysfsutils_2.0.0.bb b/recipes/sysfsutils/sysfsutils_2.0.0.bb new file mode 100644 index 0000000000..f59dfa0feb --- /dev/null +++ b/recipes/sysfsutils/sysfsutils_2.0.0.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "System Utilities Based on Sysfs" +HOMEPAGE = "http://linux-diag.sourceforge.net/Sysfsutils.html" +LICENSE = "GPLv2" +PR = "r2" + +SRC_URI = "${SOURCEFORGE_MIRROR}/linux-diag/sysfsutils-${PV}.tar.gz" +S = "${WORKDIR}/sysfsutils-${PV}" + +inherit autotools + +includedir += "/sysfs" + +do_stage () { + oe_libinstall -a -so -C lib libsysfs ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR}/sysfs + install -m 0644 ${S}/include/dlist.h ${STAGING_INCDIR}/sysfs + install -m 0644 ${S}/include/libsysfs.h ${STAGING_INCDIR}/sysfs +} + +PACKAGES_prepend = "libsysfs libsysfs-dbg libsysfs-dev " +FILES_libsysfs = "${libdir}/*.so.*" +FILES_libsysfs-dev = "${libdir}/* ${includedir}" +FILES_libsysfs-dbg += "${libdir}/.debug" +FILES_${PN}-dbg += "${bindir}/.debug" diff --git a/recipes/sysfsutils/sysfsutils_2.1.0.bb b/recipes/sysfsutils/sysfsutils_2.1.0.bb new file mode 100644 index 0000000000..4f540d5181 --- /dev/null +++ b/recipes/sysfsutils/sysfsutils_2.1.0.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "System Utilities Based on Sysfs" +HOMEPAGE = "http://linux-diag.sourceforge.net/Sysfsutils.html" +LICENSE = "GPLv2" +PR = "r1" + +SRC_URI = "${SOURCEFORGE_MIRROR}/linux-diag/sysfsutils-${PV}.tar.gz \ + file://get_mnt_path_check.patch;patch=1" + +inherit autotools + +do_stage () { + autotools_stage_all +} + +PACKAGES = "libsysfs libsysfs-dbg libsysfs-dev \ + ${PN} ${PN}-dbg ${PN}-doc ${PN}-locale" + +FILES_libsysfs = "${libdir}/*.so.*" +FILES_libsysfs-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \ + ${libdir}/*.a" +FILES_libsysfs-dbg += "${libdir}/.debug" +FILES_${PN}-dbg += "${bindir}/.debug" |