powertop: new package
authorSteven Noonan <steven@uplinklabs.net>
Thu, 19 Mar 2015 05:40:21 +0000 (22:40 -0700)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 20 Mar 2015 15:28:27 +0000 (16:28 +0100)
[Thomas:
  - fix commit title
  - powertop wants libintl unconditionally, so make sure
    BR2_PACKAGE_GETTEXT is selected when BR2_NEEDS_GETTEXT is set, and
    add gettext to the dependencies.
  - add missing comment about thread dependency.
  - add missing dependency on host-pkgconf, without which powertop
    cannot find libnl.
  - patch src/Makefile.am to not pass -fstack-protector, which fails
    to build if the toolchain does not have SSP support.
  - rename patch powertop-autotune.patch to confirm to the patch
    naming convention.]

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/powertop/0001-autotune-fix-use-after-close.patch [new file with mode: 0644]
package/powertop/0002-dont-force-stack-smashing-protection.patch [new file with mode: 0644]
package/powertop/Config.in [new file with mode: 0644]
package/powertop/powertop.hash [new file with mode: 0644]
package/powertop/powertop.mk [new file with mode: 0644]

index 96e373aad15c5db2bd0dc5539ec5a8a5550a26a2..d310abc7261326c7665d47fa4e584e6d98b4868e 100644 (file)
@@ -364,6 +364,7 @@ endif
        source "package/pciutils/Config.in"
        source "package/picocom/Config.in"
        source "package/pifmrds/Config.in"
+       source "package/powertop/Config.in"
        source "package/pps-tools/Config.in"
        source "package/read-edid/Config.in"
        source "package/rng-tools/Config.in"
diff --git a/package/powertop/0001-autotune-fix-use-after-close.patch b/package/powertop/0001-autotune-fix-use-after-close.patch
new file mode 100644 (file)
index 0000000..f2b3dff
--- /dev/null
@@ -0,0 +1,15 @@
+Patch pulled from https://projects.archlinux.org/svntogit/community.git/tree/trunk?h=packages/powertop&id=37469c47b885c50365f57044e4ad72e0e3512b91
+
+Fixes a use-after-close bug in create_all_devfreq_devices().
+
+Signed-off-by: Steven Noonan <steven@uplinklabs.net>
+
+--- a/src/devices/devfreq.cpp
++++ b/src/devices/devfreq.cpp
+@@ -247,6 +247,7 @@ void create_all_devfreq_devices(void)
+               fprintf(stderr, "Devfreq not enabled\n");
+               is_enabled = false;
+               closedir(dir);
++              dir = NULL;
+               return;
+       }
diff --git a/package/powertop/0002-dont-force-stack-smashing-protection.patch b/package/powertop/0002-dont-force-stack-smashing-protection.patch
new file mode 100644 (file)
index 0000000..75ed2d1
--- /dev/null
@@ -0,0 +1,18 @@
+Do not pass -fstack-protector unconditionally
+
+Using -fstack-protector only works when the toolchain has SSP support.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/src/Makefile.am
+===================================================================
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -127,7 +127,6 @@
+       -Wformat \
+       -Wshadow \
+       -fno-omit-frame-pointer \
+-      -fstack-protector \
+       $(GLIB2_CFLAGS) \
+       $(LIBNL_CFLAGS) \
+       $(NCURSES_CFLAGS) \
diff --git a/package/powertop/Config.in b/package/powertop/Config.in
new file mode 100644 (file)
index 0000000..f157f46
--- /dev/null
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_POWERTOP
+       bool "powertop"
+       # pciutils dependency
+       depends on !BR2_bfin
+       # libnl dependency
+       depends on BR2_TOOLCHAIN_HAS_THREADS
+       select BR2_PACKAGE_NCURSES
+       select BR2_PACKAGE_PCIUTILS
+       select BR2_PACKAGE_LIBNL
+       select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
+       help
+         A tool to diagnose issues with power consumption and power management
+
+         https://01.org/powertop/
+
+comment "powertop needs a toolchain w/ threads"
+       depends on !BR2_bfin
+       depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/powertop/powertop.hash b/package/powertop/powertop.hash
new file mode 100644 (file)
index 0000000..b64981e
--- /dev/null
@@ -0,0 +1,2 @@
+# Locally-generated hash
+sha256 8d4b1490e2baad4467c0ded3c423db4472dcbf7b2dd8f8f2a928f54047c678ca        powertop-2.7.tar.gz
diff --git a/package/powertop/powertop.mk b/package/powertop/powertop.mk
new file mode 100644 (file)
index 0000000..43d70a3
--- /dev/null
@@ -0,0 +1,20 @@
+################################################################################
+#
+# powertop
+#
+################################################################################
+
+POWERTOP_VERSION = 2.7
+POWERTOP_SITE = https://01.org/sites/default/files/downloads/powertop/
+POWERTOP_DEPENDENCIES = pciutils ncurses libnl host-pkgconf
+POWERTOP_LICENSE = GPLv2
+POWERTOP_LICENSE_FILES = COPYING
+# We're patching Makefile.am
+POWERTOP_AUTORECONF = YES
+
+ifeq ($(BR2_PACKAGE_GETTEXT),y)
+POWERTOP_DEPENDENCIES += gettext
+POWERTOP_CONF_ENV += LIBS='-lintl'
+endif
+
+$(eval $(autotools-package))