summaryrefslogtreecommitdiff
path: root/recipes/sysfsutils
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/sysfsutils')
-rw-r--r--recipes/sysfsutils/sysfsutils-1.2.0/libsysfs-write-attribute.patch29
-rw-r--r--recipes/sysfsutils/sysfsutils-2.1.0/get_mnt_path_check.patch56
-rw-r--r--recipes/sysfsutils/sysfsutils_1.3.0.bb22
-rw-r--r--recipes/sysfsutils/sysfsutils_2.0.0.bb24
-rw-r--r--recipes/sysfsutils/sysfsutils_2.1.0.bb22
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"