Package: ttyload
Version: 0.5-1
Severity: normal

Hi,

ttyload currently fails to build on Debian GNU/Hurd. The attached patch resolves the issue. (I just copied arch/Linux/* to arch/GNU/).

Thank you,

Barry deFreese


diff -u ttyload-0.5/debian/rules ttyload-0.5/debian/rules
--- ttyload-0.5/debian/rules
+++ ttyload-0.5/debian/rules
@@ -39,7 +39,7 @@
        # Commands to clean up after the build process.
        # $(MAKE) clean
 
-       rm -f *.o arch/Linux/*.o arch/default/*.o $(PACKAGE)
+       rm -f *.o arch/Linux/*.o arch/default/*.o arch/GNU/*.o $(PACKAGE)
        rm -f archtest archtest.o
        rm -f arch/Darwin arch/Isilon-OneFS arch/thisarch
        rm -f debian/*.$(MANSECT)
only in patch2:
unchanged:
--- ttyload-0.5.orig/arch/GNU/getload.c
+++ ttyload-0.5/arch/GNU/getload.c
@@ -0,0 +1,64 @@
+#define        LOADFILE        "/proc/loadavg"
+
+/* What the contents of the proc file look like, as an example:
+ * 0.00 0.00 0.00 1/59 10941
+ */
+
+#include "ttyload.h"
+
+#include <stdio.h>             /* for perror */
+#include <stdlib.h>            /* for exit() */
+#include <unistd.h>            /* for sleep() */
+
+void   getload(load_list *loadavgs)
+{
+    float      theload[3];
+    FILE       *loadfile;
+    int                ret;
+
+    /* just for sanity: */
+    if(!loadavgs)
+    {
+       fprintf(stderr, "getload called without loadavgs pointer.\n");
+       exit(2);
+    }
+
+    if(!(loadfile = fopen(LOADFILE, "r")))
+    {
+       perror("Open of " LOADFILE " failed");
+       exit(1);
+    }
+
+    ret = fscanf(loadfile, "%f %f %f ", &(theload[0]), &(theload[1]), 
&(theload[2]));
+
+    if(fclose(loadfile) != 0)
+    {
+       perror("Close of " LOADFILE " failed?!");
+       exit(1);
+    }
+
+    /* so the caller _can_ (maybe not _will_) know how we did */
+    loadavgs->numloads = ret;
+    loadavgs->one_minute       = theload[0] * 1024;
+    loadavgs->five_minute      = theload[1] * 1024;
+    loadavgs->fifteen_minute   = theload[2] * 1024;
+
+    /* a little warning thing... should probably be re-written
+     * for the Linux/fscanf stuff, this is a hold-over from the
+     * solaris stuff.  */
+    switch(ret)
+    {
+       case 2:
+           fprintf(stderr, "15 minute Load average is unreliable.\n");
+           sleep(5);
+           break;
+       case 1:
+           fprintf(stderr, "5 and 15 minute load averages are unreliable.\n");
+           sleep(5);
+           break;
+       case 0:
+           fprintf(stderr, "Sorry, couldn't get any load "
+               "averages.  This is, therefore,  pointless.\n");
+           exit(1);
+    }
+}
only in patch2:
unchanged:
--- ttyload-0.5.orig/arch/GNU/terminfo.c
+++ ttyload-0.5/arch/GNU/terminfo.c
@@ -0,0 +1,28 @@
+/*
+ * arch/Linux/terminfo.c -- routines for getting terminal
+ * information on Linux machines.
+ *
+ * Copyright 2001, David Lindes.  All rights reserved.
+ */
+
+#include <sys/ioctl.h> /* for ioctl() */
+
+/* globals */
+extern int rows;
+extern int cols;
+
+void gettermsize()
+{
+    struct winsize info;
+
+    /* try to get data via IOCTL: */
+    if (ioctl(1 /* stdout */, TIOCGWINSZ, &info) != -1)
+    {
+       /* if successful, and the data seems sane, set the
+        * program's globals: */
+       if(info.ws_col > 0)
+           cols = info.ws_col;
+       if(info.ws_row > 0)
+           rows = info.ws_row;
+    }
+}

Reply via email to