summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBlair Bonnett2015-06-13 15:28:30 +1200
committerBlair Bonnett2015-06-13 15:28:30 +1200
commit592096ffe1af40829072c7dd78f926464356ea94 (patch)
treeb32498d031e7765a998bdb35f5535746918cb597
downloadaur-592096ffe1af40829072c7dd78f926464356ea94.tar.gz
Initial import from AUR3.
-rw-r--r--.SRCINFO23
-rw-r--r--PKGBUILD49
-rw-r--r--htop-1.0.3-temperature.patch259
3 files changed, 331 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..92d48b65648
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,23 @@
+pkgbase = htop-temperature
+ pkgdesc = Interactive process viewer with added support for CPU temperature
+ pkgver = 1.0.3
+ pkgrel = 1
+ url = http://htop.sourceforge.net/
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = python2
+ depends = ncurses
+ depends = lm_sensors
+ optdepends = lsof: show files opened by a process
+ optdepends = strace: attach to a running process
+ provides = htop
+ conflicts = htop
+ options = !emptydirs
+ source = http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz
+ source = htop-1.0.3-temperature.patch
+ sha256sums = 055c57927f75847fdc222b5258b079a9542811a9dcf5421c615c7e17f55d1829
+ sha256sums = 6b52b5b5c0cce04ab71d8603409927dffb77433526b08a35087eb028bab0a5cf
+
+pkgname = htop-temperature
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..92d88b1a227
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Blair Bonnett <blair.bonnett at gmail dot com>
+
+pkgname=htop-temperature
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Interactive process viewer with added support for CPU temperature"
+arch=('i686' 'x86_64')
+url="http://htop.sourceforge.net/"
+license=('GPL')
+depends=('ncurses' 'lm_sensors')
+makedepends=('python2')
+optdepends=('lsof: show files opened by a process'
+ 'strace: attach to a running process')
+provides=('htop')
+conflicts=('htop')
+options=('!emptydirs')
+source=("http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz"
+ "htop-1.0.3-temperature.patch")
+sha256sums=('055c57927f75847fdc222b5258b079a9542811a9dcf5421c615c7e17f55d1829'
+ '6b52b5b5c0cce04ab71d8603409927dffb77433526b08a35087eb028bab0a5cf')
+
+prepare() {
+ # Standard htop package commands.
+ cd "htop-1.0.3"
+ sed -i 's|ncursesw/curses.h|curses.h|' RichString.[ch] configure
+ sed -i 's|python|python2|' scripts/MakeHeader.py
+
+ # Add CPU temperature patch.
+ patch -p1 -N < ../htop-1.0.3-temperature.patch
+}
+
+build() {
+ cd "htop-1.0.3"
+
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --enable-unicode \
+ --enable-openvz \
+ --enable-vserver \
+ --enable-cgroup \
+ --enable-oom
+
+ make
+}
+
+package() {
+ make -C "htop-1.0.3" DESTDIR="$pkgdir" install
+}
diff --git a/htop-1.0.3-temperature.patch b/htop-1.0.3-temperature.patch
new file mode 100644
index 00000000000..04fbadbd320
--- /dev/null
+++ b/htop-1.0.3-temperature.patch
@@ -0,0 +1,259 @@
+diff -urN htop-1.0.3-orig/CRT.c htop-1.0.3/CRT.c
+--- htop-1.0.3-orig/CRT.c 2014-11-04 14:10:29.500604247 +0100
++++ htop-1.0.3/CRT.c 2014-11-04 14:11:01.916663508 +0100
+@@ -60,6 +60,9 @@
+ UPTIME,
+ BATTERY,
+ TASKS_RUNNING,
++ TEMPERATURE_COOL,
++ TEMPERATURE_MEDIUM,
++ TEMPERATURE_HOT,
+ SWAP,
+ PROCESS,
+ PROCESS_SHADOW,
+@@ -270,6 +273,9 @@
+ CRT_colors[METER_VALUE] = A_BOLD;
+ CRT_colors[LED_COLOR] = A_NORMAL;
+ CRT_colors[TASKS_RUNNING] = A_BOLD;
++ CRT_colors[TEMPERATURE_COOL] = A_DIM;
++ CRT_colors[TEMPERATURE_MEDIUM] = A_NORMAL;
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD;
+ CRT_colors[PROCESS] = A_NORMAL;
+ CRT_colors[PROCESS_SHADOW] = A_DIM;
+ CRT_colors[PROCESS_TAG] = A_BOLD;
+@@ -333,6 +339,9 @@
+ CRT_colors[METER_VALUE] = ColorPair(Black,White);
+ CRT_colors[LED_COLOR] = ColorPair(Green,White);
+ CRT_colors[TASKS_RUNNING] = ColorPair(Green,White);
++ CRT_colors[TEMPERATURE_COOL] = ColorPair(Green,White);
++ CRT_colors[TEMPERATURE_MEDIUM] = ColorPair(Yellow,White);
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD | ColorPair(Red,White);
+ CRT_colors[PROCESS] = ColorPair(Black,White);
+ CRT_colors[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,White);
+ CRT_colors[PROCESS_TAG] = ColorPair(White,Blue);
+@@ -396,6 +405,9 @@
+ CRT_colors[METER_VALUE] = ColorPair(Black,Black);
+ CRT_colors[LED_COLOR] = ColorPair(Green,Black);
+ CRT_colors[TASKS_RUNNING] = ColorPair(Green,Black);
++ CRT_colors[TEMPERATURE_COOL] = ColorPair(Green,Black);
++ CRT_colors[TEMPERATURE_MEDIUM] = ColorPair(Yellow,Black);
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD | ColorPair(Red,Black);
+ CRT_colors[PROCESS] = ColorPair(Black,Black);
+ CRT_colors[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,Black);
+ CRT_colors[PROCESS_TAG] = ColorPair(White,Blue);
+@@ -459,6 +471,9 @@
+ CRT_colors[METER_VALUE] = A_BOLD | ColorPair(Cyan,Blue);
+ CRT_colors[LED_COLOR] = ColorPair(Green,Blue);
+ CRT_colors[TASKS_RUNNING] = A_BOLD | ColorPair(Green,Blue);
++ CRT_colors[TEMPERATURE_COOL] = ColorPair(Green,Blue);
++ CRT_colors[TEMPERATURE_MEDIUM] = ColorPair(Yellow,Blue);
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD | ColorPair(Red,Blue);
+ CRT_colors[PROCESS] = ColorPair(White,Blue);
+ CRT_colors[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,Blue);
+ CRT_colors[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Blue);
+@@ -522,6 +537,9 @@
+ CRT_colors[METER_VALUE] = ColorPair(Green,Black);
+ CRT_colors[LED_COLOR] = ColorPair(Green,Black);
+ CRT_colors[TASKS_RUNNING] = A_BOLD | ColorPair(Green,Black);
++ CRT_colors[TEMPERATURE_COOL] = ColorPair(Cyan,Black);
++ CRT_colors[TEMPERATURE_MEDIUM] = ColorPair(Yellow,Black);
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD | ColorPair(Red,Black);
+ CRT_colors[PROCESS] = ColorPair(Cyan,Black);
+ CRT_colors[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,Black);
+ CRT_colors[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Black);
+@@ -586,6 +604,9 @@
+ CRT_colors[METER_VALUE] = A_BOLD | ColorPair(Cyan,Black);
+ CRT_colors[LED_COLOR] = ColorPair(Green,Black);
+ CRT_colors[TASKS_RUNNING] = A_BOLD | ColorPair(Green,Black);
++ CRT_colors[TEMPERATURE_COOL] = A_BOLD | ColorPair(Green,Black);
++ CRT_colors[TEMPERATURE_MEDIUM] = A_BOLD | ColorPair(Yellow,Black);
++ CRT_colors[TEMPERATURE_HOT] = A_BOLD | ColorPair(Red,Black);
+ CRT_colors[PROCESS] = A_NORMAL;
+ CRT_colors[PROCESS_SHADOW] = A_BOLD | ColorPair(Black,Black);
+ CRT_colors[PROCESS_TAG] = A_BOLD | ColorPair(Yellow,Black);
+diff -urN htop-1.0.3-orig/Header.c htop-1.0.3/Header.c
+--- htop-1.0.3-orig/Header.c 2014-11-04 14:10:29.496604239 +0100
++++ htop-1.0.3/Header.c 2014-11-04 14:11:01.916663508 +0100
+@@ -12,6 +12,7 @@
+ #include "MemoryMeter.h"
+ #include "SwapMeter.h"
+ #include "TasksMeter.h"
++#include "TemperatureMeter.h"
+ #include "LoadAverageMeter.h"
+ #include "UptimeMeter.h"
+ #include "BatteryMeter.h"
+@@ -150,6 +151,7 @@
+ }
+ Vector_add(this->leftMeters, Meter_new(this->pl, 0, (MeterClass*) Class(MemoryMeter)));
+ Vector_add(this->leftMeters, Meter_new(this->pl, 0, (MeterClass*) Class(SwapMeter)));
++ Vector_add(this->leftMeters, Meter_new(this->pl, 0, (MeterClass*) Class(TemperatureMeter)));
+ Vector_add(this->rightMeters, Meter_new(this->pl, 0, (MeterClass*) Class(TasksMeter)));
+ Vector_add(this->rightMeters, Meter_new(this->pl, 0, (MeterClass*) Class(LoadAverageMeter)));
+ Vector_add(this->rightMeters, Meter_new(this->pl, 0, (MeterClass*) Class(UptimeMeter)));
+diff -urN htop-1.0.3-orig/Makefile.am htop-1.0.3/Makefile.am
+--- htop-1.0.3-orig/Makefile.am 2014-11-04 14:10:29.499604245 +0100
++++ htop-1.0.3/Makefile.am 2014-11-04 14:12:23.748812438 +0100
+@@ -20,7 +20,7 @@
+ BatteryMeter.c Process.c ProcessList.c RichString.c ScreenManager.c Settings.c \
+ IOPriorityPanel.c SignalsPanel.c String.c SwapMeter.c TasksMeter.c TraceScreen.c \
+ UptimeMeter.c UsersTable.c Vector.c AvailableColumnsPanel.c AffinityPanel.c \
+-HostnameMeter.c OpenFilesScreen.c Affinity.c IOPriority.c IncSet.c
++HostnameMeter.c OpenFilesScreen.c Affinity.c IOPriority.c TemperatureMeter.c IncSet.c
+
+ myhtopheaders = AvailableColumnsPanel.h AvailableMetersPanel.h \
+ CategoriesPanel.h CheckItem.h ClockMeter.h ColorsPanel.h ColumnsPanel.h \
+@@ -29,7 +29,7 @@
+ BatteryMeter.h Meter.h MetersPanel.h Object.h Panel.h ProcessList.h RichString.h \
+ ScreenManager.h Settings.h SignalsPanel.h String.h SwapMeter.h TasksMeter.h \
+ TraceScreen.h UptimeMeter.h UsersTable.h Vector.h Process.h AffinityPanel.h \
+-HostnameMeter.h OpenFilesScreen.h Affinity.h IOPriority.h IncSet.h
++HostnameMeter.h OpenFilesScreen.h Affinity.h IOPriority.h TemperatureMeter.h
+
+ SUFFIXES = .h
+
+diff -urN htop-1.0.3-orig/Meter.c htop-1.0.3/Meter.c
+--- htop-1.0.3-orig/Meter.c 2014-11-04 14:10:29.499604245 +0100
++++ htop-1.0.3/Meter.c 2014-11-04 14:11:01.917663509 +0100
+@@ -11,6 +11,7 @@
+ #include "MemoryMeter.h"
+ #include "SwapMeter.h"
+ #include "TasksMeter.h"
++#include "TemperatureMeter.h"
+ #include "LoadAverageMeter.h"
+ #include "UptimeMeter.h"
+ #include "BatteryMeter.h"
+@@ -134,6 +135,7 @@
+ &MemoryMeter_class,
+ &SwapMeter_class,
+ &TasksMeter_class,
++ &TemperatureMeter_class,
+ &UptimeMeter_class,
+ &BatteryMeter_class,
+ &HostnameMeter_class,
+diff -urN htop-1.0.3-orig/TemperatureMeter.c htop-1.0.3/TemperatureMeter.c
+--- htop-1.0.3-orig/TemperatureMeter.c 1970-01-01 01:00:00.000000000 +0100
++++ htop-1.0.3/TemperatureMeter.c 2014-11-04 14:11:01.917663509 +0100
+@@ -0,0 +1,100 @@
++/*
++htop - TemperatureMeter.c
++(C) 2013 Ralf Stemmer
++(C) 2014 Blair Bonnett
++Released under the GNU GPL, see the COPYING file
++in the source distribution for its full text.
++*/
++
++#include "TemperatureMeter.h"
++
++#include "ProcessList.h"
++#include "CRT.h"
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <limits.h>
++
++/*{
++#include "Meter.h"
++}*/
++
++int TemperatureMeter_attributes[] = {
++ TEMPERATURE_COOL,
++ TEMPERATURE_MEDIUM,
++ TEMPERATURE_HOT,
++};
++
++static void TemperatureMeter_setValues(Meter* this, char* buffer, int len) {
++ ProcessList* pl = this->pl;
++ this->total = pl->totalTasks;
++ this->values[0] = pl->runningTasks;
++ snprintf(buffer, len, "%d/%d", (int) this->values[0], (int) this->total);
++}
++
++static void TemperatureMeter_display(Object* cast, RichString* out) {
++ FILE *p;
++ p = popen("sensors", "r");
++ if(p == NULL) return 1;
++
++ int textColor = CRT_colors[METER_TEXT];
++ int coolColor = CRT_colors[TEMPERATURE_COOL];
++ int mediumColor = CRT_colors[TEMPERATURE_MEDIUM];
++ int hotColor = CRT_colors[TEMPERATURE_HOT];
++
++ size_t read, len;
++ char *line = NULL;
++ char *entry = NULL;
++ char *tstart = NULL, *tend = NULL;
++ int temperature;
++ while ((read = getline(&line, &len, p)) != -1) {
++ // contains this line a core-temperature?
++ entry = strstr(line, "Core ");
++ if (entry == NULL) continue;
++
++ // find the begin of the temperature value
++ tstart = strchr(entry, '+'); // no negative temperatures expected :)
++ if (tstart == NULL) continue;
++ tstart++; // jump over the '+'
++
++ // find the end of the temperature. Remember, it can be above 99°C ;)
++ tend = strchr(tstart, '.'); // just the integer
++ if (tend == NULL) continue;
++
++ // convert the string into an integer, this is necessary for further steps
++ temperature = strtol(tstart, &tend, 10);
++ if (temperature == LONG_MAX || temperature == LONG_MIN) continue;
++ if (tstart == tend) continue;
++
++ // choose the color for the temperature
++ int tempColor;
++ if (temperature < 80) tempColor = coolColor;
++ else if (temperature >= 80 && temperature < 90) tempColor = mediumColor;
++ else tempColor = hotColor;
++
++ // output the temperature
++ char buffer[20];
++ sprintf(buffer, "%d", temperature);
++ RichString_append(out, tempColor, buffer);
++ RichString_append(out, textColor, "°C ");
++ }
++
++ free(line);
++ pclose(p);
++}
++
++MeterClass TemperatureMeter_class = {
++ .super = {
++ .extends = Class(Meter),
++ .display = TemperatureMeter_display,
++ .delete = Meter_delete,
++ },
++ .setValues = TemperatureMeter_setValues,
++ .defaultMode = TEXT_METERMODE,
++ .total = 100.0,
++ .attributes = TemperatureMeter_attributes,
++ .name = "Temperature",
++ .uiName = "Temperature Sensors",
++ .caption = "Temperature: "
++};
+diff -urN htop-1.0.3-orig/TemperatureMeter.h htop-1.0.3/TemperatureMeter.h
+--- htop-1.0.3-orig/TemperatureMeter.h 1970-01-01 01:00:00.000000000 +0100
++++ htop-1.0.3/TemperatureMeter.h 2014-11-04 14:11:01.917663509 +0100
+@@ -0,0 +1,19 @@
++/* Do not edit this file. It was automatically generated. */
++
++#ifndef HEADER_TemperatureMeter
++#define HEADER_TemperatureMeter
++/*
++htop - TemperatureMeter.h
++(C) 2013 Ralf Stemmer
++(C) 2014 Blair Bonnett
++Released under the GNU GPL, see the COPYING file
++in the source distribution for its full text.
++*/
++
++#include "Meter.h"
++
++extern int TemperatureMeter_attributes[];
++
++extern MeterClass TemperatureMeter_class;
++
++#endif