diff options
author | Charles Strahan <charles.c.strahan@gmail.com> | 2015-07-03 22:54:03 -0400 |
---|---|---|
committer | Charles Strahan <charles.c.strahan@gmail.com> | 2015-07-03 22:55:10 -0400 |
commit | 44594e851cc64e0e85c7d1d04042c00ba583d342 (patch) | |
tree | 22ad2c3e2808015753b9cba7f2f132b1eaef2af7 /pkgs | |
parent | 4726690a7454de8cc956df0cfef3b779ede5bdb9 (diff) | |
download | nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar.gz nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar.bz2 nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar.lz nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar.xz nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.tar.zst nixlib-44594e851cc64e0e85c7d1d04042c00ba583d342.zip |
xsensors: init at 0.70
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/os-specific/linux/xsensors/default.nix | 22 | ||||
-rw-r--r-- | pkgs/os-specific/linux/xsensors/remove-unused-variables.patch | 39 | ||||
-rw-r--r-- | pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch | 168 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
4 files changed, 231 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/xsensors/default.nix b/pkgs/os-specific/linux/xsensors/default.nix new file mode 100644 index 000000000000..a392d065e419 --- /dev/null +++ b/pkgs/os-specific/linux/xsensors/default.nix @@ -0,0 +1,22 @@ +{ stdenv, lib, fetchurl, gtk2, pkgconfig, lm_sensors }: + +stdenv.mkDerivation rec { + name = "xsensors-${version}"; + version = "0.70"; + src = fetchurl { + url = "http://www.linuxhardware.org/xsensors/xsensors-${version}.tar.gz"; + sha256 = "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh"; + }; + buildInputs = [ + gtk2 pkgconfig lm_sensors + ]; + patches = [ + ./remove-unused-variables.patch + ./replace-deprecated-gtk.patch + ]; + meta = with lib; { + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch b/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch new file mode 100644 index 000000000000..7da97a0e56e8 --- /dev/null +++ b/pkgs/os-specific/linux/xsensors/remove-unused-variables.patch @@ -0,0 +1,39 @@ +Author: Nanley Chery <nanleychery@gmail.com> +From: Jean Delvare <khali@linux-fr.org> +Subject: Remove declared, but unused variables +Bug-Debian: http://bugs.debian.org/625435 +--- +--- a/src/gui.c ++++ b/src/gui.c +@@ -257,10 +257,9 @@ + + /* Start the sensor info update timer. */ + gint start_timer( GtkWidget *widget, gpointer data ) { +- gint timer; + + /* Setup timer for updates. */ +- timer = g_timeout_add( update_time * 1000, ++ g_timeout_add( update_time * 1000, + (GtkFunction) update_sensor_data, + (gpointer) data ); + +@@ -287,7 +286,7 @@ + + /* feature data */ + updates *head = NULL; +- updates *current = NULL, *prev = NULL; ++ updates *current = NULL; + + const sensors_feature *feature; + +@@ -347,10 +346,8 @@ + new_node->pbar = featpbar; + + if ( head == NULL ) { +- prev = head; + head = current = new_node; + } else { +- prev = current; + current = current->next = new_node; + } + diff --git a/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch b/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch new file mode 100644 index 000000000000..fed4c7dc4c95 --- /dev/null +++ b/pkgs/os-specific/linux/xsensors/replace-deprecated-gtk.patch @@ -0,0 +1,168 @@ +Author: Nanley Chery <nanleychery@gmail.com> +Subject: Update deprecated gtk casts and replace deprecated function calls with their analogous cairo counterparts. +Bug-Debian: http://bugs.debian.org/622005 +Bug-Debian: http://bugs.debian.org/610321 +--- +--- a/src/gui.c ++++ b/src/gui.c +@@ -27,10 +27,10 @@ + GtkWidget *mainwindow = NULL; + + GdkColor colorWhite = { 0, 0xFFFF, 0xFFFF, 0xFFFF }; +- +-GdkColormap *cmap = NULL; + +-GdkPixmap *theme = NULL; ++GdkPixbuf *theme = NULL; ++ ++cairo_surface_t *surface = NULL; + + /* Destroy the main window. */ + gint destroy_gui( GtkWidget *widget, gpointer data ) { +@@ -76,17 +76,16 @@ + } + } + +-static void draw_digits( GtkWidget *widget, const gchar *digits, int highLow ) ++static void draw_digits( GtkWidget *widget, cairo_t *cr, const gchar *digits, int highLow ) + { + const gchar *digit = digits; + int pos = 0, x = 0, y = 0, w = 0; + + while ( *digit ) { + get_pm_location( *digit, &x, &y, &w ); +- gdk_draw_drawable( widget->window, +- widget->style->fg_gc[ GTK_WIDGET_STATE +- (widget) ], theme, x, y + highLow, +- pos, 0, w, 30 ); ++ cairo_set_source_surface (cr, surface, pos-x, 0-(y + highLow)); ++ cairo_rectangle(cr, pos, 0, w, 30); ++ cairo_fill(cr); + pos += w; + digit++; + } +@@ -102,6 +101,8 @@ + + gchar result[7]; + ++ cairo_t *cr = gdk_cairo_create(widget->window); ++ + #ifdef DEBUG_XSENSORS + printf( "area.width = %d, area.height = %d\n", event->area.width, + event->area.height ); +@@ -117,13 +118,11 @@ + + /* Display the digits */ + if ( g_snprintf( result, 6, "%5.0f", current->curvalue ) >= 0 ) +- draw_digits( widget, result, highLow ); ++ draw_digits( widget, cr, result, highLow ); + + /* Display RPM */ +- gdk_draw_drawable( widget->window, +- widget->style->fg_gc[ GTK_WIDGET_STATE +- (widget) ], theme, 0, 120 + highLow, +- 90, 0, 57, 30 ); ++ cairo_set_source_surface (cr, surface, 90-0, 0-(120 + highLow)); ++ cairo_rectangle(cr, 90, 0, 57, 30); + break; + case TEMP: + if ( current->curvalue > current->curmax ) +@@ -134,17 +133,15 @@ + + /* Display the digits */ + if ( g_snprintf( result, 7, "%6.1f", current->curvalue ) >= 0 ) +- draw_digits( widget, result, highLow ); ++ draw_digits( widget, cr, result, highLow ); + + /* Display degree symbol */ + if ( tf == FALSE ) + x = 0; + else + x = 57; +- gdk_draw_drawable( widget->window, +- widget->style->fg_gc[ GTK_WIDGET_STATE +- (widget) ], theme, x, 60 + highLow, +- 96, 0, 57, 30 ); ++ cairo_set_source_surface (cr, surface, 96-x, 0-(60 + highLow)); ++ cairo_rectangle(cr, 96, 0, 57, 30); + + break; + case VOLT: +@@ -154,20 +151,17 @@ + + /* Display the digits */ + if ( g_snprintf( result, 7, "%6.2f", current->curvalue ) >= 0 ) +- draw_digits( widget, result, highLow ); ++ draw_digits( widget, cr, result, highLow ); + + /* Display V */ +- gdk_draw_drawable( widget->window, +- widget->style->fg_gc[ GTK_WIDGET_STATE +- (widget) ], theme, 114, 60 + highLow, +- 96, 0, 57, 30 ); +- +- ++ cairo_set_source_surface (cr, surface, 96-114, 0-(60 + highLow)); ++ cairo_rectangle(cr, 96, 0, 57, 30); + break; + default: + break; + } +- ++ cairo_fill(cr); ++ cairo_destroy(cr); + return TRUE; + } + +@@ -260,7 +254,7 @@ + + /* Setup timer for updates. */ + g_timeout_add( update_time * 1000, +- (GtkFunction) update_sensor_data, ++ (GSourceFunc) update_sensor_data, + (gpointer) data ); + + return SUCCESS; +@@ -460,8 +454,6 @@ + g_signal_connect( G_OBJECT (mainwindow), "delete_event", + G_CALLBACK (destroy_gui), NULL ); + +- /* Graphics needed for drawing info. */ +- cmap = gtk_widget_get_colormap( mainwindow ); + + /* Set up the image file used for displaying characters. */ + if ( imagefile == NULL ) { +@@ -481,12 +473,10 @@ + "Image file not found in either location! Exiting!\n" ); + exit( 1 ); + } else { +- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, +- NULL, NULL, "./images/default.xpm" ); ++ theme = gdk_pixbuf_new_from_file("./images/default.xpm", NULL ); + } + } else { +- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, +- NULL, NULL, imagefile ); ++ theme = gdk_pixbuf_new_from_file(imagefile, NULL ); + } + } else { + if ( stat( imagefile, &sbuf ) != 0 ) { +@@ -495,11 +485,15 @@ + "Image file not found in specified location! Exiting!\n" ); + exit( 1 ); + } else { +- theme = gdk_pixmap_colormap_create_from_xpm( NULL, cmap, +- NULL, NULL, imagefile ); ++ theme = gdk_pixbuf_new_from_file(imagefile, NULL ); + } + } +- ++ surface = cairo_image_surface_create_for_data(gdk_pixbuf_get_pixels(theme), ++ CAIRO_FORMAT_RGB24, ++ gdk_pixbuf_get_width(theme), ++ gdk_pixbuf_get_height(theme), ++ gdk_pixbuf_get_rowstride(theme)); ++ + /* Create notebook for sensors. */ + notebook = gtk_notebook_new( ); + gtk_widget_modify_bg( notebook, GTK_STATE_NORMAL, &colorWhite ); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3c938770195b..1cfa21807c55 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3319,6 +3319,8 @@ let xsettingsd = callPackage ../tools/X11/xsettingsd { }; + xsensors = callPackage ../os-specific/linux/xsensors { }; + xcruiser = callPackage ../applications/misc/xcruiser { }; unarj = callPackage ../tools/archivers/unarj { }; |