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; + } +}