From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Dec 15 15:11:32 2008 Return-Path: Delivered-To: freebsd-ports-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 486FD1065686; Mon, 15 Dec 2008 15:11:32 +0000 (UTC) (envelope-from udo.schweigert@siemens.com) Received: from david.siemens.de (david.siemens.de [192.35.17.14]) by mx1.freebsd.org (Postfix) with ESMTP id B2FA58FC1C; Mon, 15 Dec 2008 15:11:31 +0000 (UTC) (envelope-from udo.schweigert@siemens.com) Received: from mail1.siemens.de (localhost [127.0.0.1]) by david.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id mBFF1Oba003472; Mon, 15 Dec 2008 16:01:25 +0100 Received: from mars.cert.siemens.com (mars.cert.siemens.com [139.25.19.9]) by mail1.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id mBFF1OTI009016; Mon, 15 Dec 2008 16:01:24 +0100 Received: from alaska.cert.siemens.com (alaska.cert.siemens.com [139.25.19.64]) by mars.cert.siemens.com (8.14.2/8.14.2/$SiemensCERT: mail/cert.mc.pre,v 1.68 2006/12/29 07:12:05 mailadm Exp $) with ESMTP id mBFF1OUx008604; Mon, 15 Dec 2008 16:01:24 +0100 (CET) Received: from alaska.cert.siemens.com (alaska.cert.siemens.com [139.25.19.64]) by alaska.cert.siemens.com (8.14.3/8.14.3/$Ust: hosts/alaska/mail/config.mc,v 1.20 2006/06/21 05:39:02 ust Exp $) with ESMTP id mBFF1OOB030102; Mon, 15 Dec 2008 16:01:24 +0100 (CET) (envelope-from ust@alaska.cert.siemens.com) Received: (from ust@localhost) by alaska.cert.siemens.com (8.14.3/8.14.3/$Ust: hosts/alaska/mail/submit.mc,v 1.6 2004/08/29 16:18:57 ust Exp $) id mBFF1OZG087597; Mon, 15 Dec 2008 16:01:24 +0100 (CET) (envelope-from ust) Date: Mon, 15 Dec 2008 16:01:24 +0100 From: "Schweigert, Udo CERT" To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-ports-bugs@FreeBSD.org Message-ID: <20081215150124.GA63364@alaska.cert.siemens.com> References: <200812151338.mBFDc2jL065450@alaska.cert.siemens.com> <200812151420.mBFEK2uT057370@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200812151420.mBFEK2uT057370@freefall.freebsd.org> X-Operating-System: FreeBSD 7.1-RC1 User-Agent: Mutt/1.5.18 (2008-05-17) Cc: Subject: Re: ports/129655: Update of sysutils/xosview X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Dec 2008 15:11:32 -0000 On Mon, Dec 15, 2008 at 14:20:02 +0000, FreeBSD-gnats-submit@FreeBSD.org wrote: > Thank you very much for your problem report. > It has the internal identification `ports/129655'. > The individual assigned to look at your > report is: freebsd-ports-bugs. > > You can access the state of your problem report at any time > via this link: > > http://www.freebsd.org/cgi/query-pr.cgi?pr=129655 > > >Category: ports > >Responsible: freebsd-ports-bugs > >Synopsis: Update of sysutils/xosview > >Arrival-Date: Mon Dec 15 14:20:02 UTC 2008 > I was too fast with submitting. Please use this patch, as it also fixes the diskmeter for FreeBSD >= 6.0 (as well as the CPU meter which is also fixed for >= 6.0 (not only 7.x)) Udo diff -ruN /usr/ports/sysutils/xosview/Makefile xosview/Makefile --- /usr/ports/sysutils/xosview/Makefile 2008-04-19 19:53:54.000000000 +0200 +++ xosview/Makefile 2008-12-15 15:56:07.000000000 +0100 @@ -8,7 +8,7 @@ PORTNAME= xosview PORTVERSION= 1.8.3 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= sysutils MASTER_SITES= SF diff -ruN /usr/ports/sysutils/xosview/files/patch-kernel.cc xosview/files/patch-kernel.cc --- /usr/ports/sysutils/xosview/files/patch-kernel.cc 2006-01-27 09:17:32.000000000 +0100 +++ xosview/files/patch-kernel.cc 2008-12-15 15:53:11.000000000 +0100 @@ -1,5 +1,5 @@ ---- bsd/kernel.cc.orig Tue Oct 14 09:53:17 2003 -+++ bsd/kernel.cc Fri Jan 27 16:02:27 2006 +--- bsd/kernel.cc.orig 2006-02-18 08:36:06.000000000 +0100 ++++ bsd/kernel.cc 2008-12-15 15:46:05.000000000 +0100 @@ -54,6 +54,7 @@ #endif @@ -8,7 +8,27 @@ #include #include /* For malloc(). */ void DevStat_Init(); -@@ -211,19 +212,28 @@ +@@ -83,6 +84,10 @@ + #else + #include + #endif ++#if defined(XOSVIEW_FREEBSD) && (__FreeBSD_version >= 700000) ++#include ++#include ++#endif + + #ifdef HAVE_SWAPCTL + #include /* For swapctl proto. */ +@@ -135,7 +140,7 @@ + // this later on. This keeps the indices within the nlist constant. + #define DUMMY_SYM "dummy_sym" + +-#if defined(XOSVIEW_BSDI) || (defined(XOSVIEW_NETBSD) && (__NetBSD_Version__ >= 104260000)) ++#if defined(XOSVIEW_BSDI) || (defined(XOSVIEW_NETBSD) && (__NetBSD_Version__ >= 104260000)) || (defined(XOSVIEW_FREEBSD) && (__FreeBSD_version >= 700000)) + // BSDI and __NetBSD_Version__ >= 104260000 reads cp_time through sysctl + { DUMMY_SYM }, + #define DUMMY_0 +@@ -211,19 +216,28 @@ { "_bufspace" }, #define BUFSPACE_SYM_INDEX 3 @@ -41,7 +61,7 @@ #endif /*HAVE_DEVSTAT */ -@@ -329,7 +339,12 @@ +@@ -329,7 +343,12 @@ while (nlp && nlp->n_name && strncmp(nlp->n_name, DUMMY_SYM, strlen(DUMMY_SYM))) { if ((nlp->n_type == 0) || (nlp->n_value == 0)) /*errx (-1, "kvm_nlist() lookup failed for symbol '%s'.", nlp->n_name);*/ @@ -54,7 +74,45 @@ nlp++; } #ifdef HAVE_DEVSTAT -@@ -597,13 +612,21 @@ +@@ -402,11 +421,17 @@ + #if defined(XOSVIEW_NETBSD) && (__NetBSD_Version__ >= 104260000) + static int mib[] = { CTL_KERN, KERN_CP_TIME }; + #endif ++#if defined(XOSVIEW_FREEBSD) && (__FreeBSD_version >= 700000) ++ ++ long cpu[CPUSTATES]; ++ size_t size = sizeof(cpu); ++ ++#endif + + if (!timeArray) errx (-1, "BSDGetCPUTimes(): passed pointer was null!\n"); + if (CPUSTATES != 5) + errx (-1, "Error: xosview for *BSD expects 5 cpu states!\n"); +-#if defined(__NetBSD_Version__) && __NetBSD_Version__ > 104260000 /* > 1.4Z */ ++#if (defined(__NetBSD_Version__) && __NetBSD_Version__ > 104260000) /* > 1.4Z */ + struct schedstate_percpu ssp; + size_t size = sizeof(ssp.spc_cp_time); + if (sysctl(mib, 2, ssp.spc_cp_time, &size, NULL, 0) < 0) { +@@ -423,9 +448,18 @@ + } + bcopy (cpu.cp_time,timeArray,sizeof (long) * CPUSTATES); + #else ++#if defined(XOSVIEW_FREEBSD) && (__FreeBSD_version >= 700000) ++ ++ if (sysctlbyname("kern.cp_time", &cpu, &size, NULL, 0) < 0) { ++ fprintf(stderr, "xosview: sysctl failed: %s\n", strerror(errno)); ++ bzero(&cpu, sizeof(cpu)); ++ } ++ bcopy (cpu,timeArray,sizeof (long) * CPUSTATES); ++#else + safe_kvm_read_symbol (CP_TIME_SYM_INDEX, timeArray, sizeof (long) * CPUSTATES); + #endif + #endif ++#endif + } + + +@@ -597,13 +631,21 @@ * Make sure that the userland devstat version matches the kernel * devstat version. */ @@ -76,7 +134,7 @@ nodisk++; return; } -@@ -618,7 +641,11 @@ +@@ -618,7 +660,11 @@ * changed here, since it almost certainly has. We only look for * errors. */ @@ -88,7 +146,7 @@ nodisk++; return; } -@@ -630,7 +657,11 @@ +@@ -630,7 +676,11 @@ /* only interested in disks */ matches = NULL; @@ -100,7 +158,7 @@ nodisk++; return; } -@@ -645,7 +676,11 @@ +@@ -645,13 +695,18 @@ * device list has changed, so we don't look for return values of 0 * or 1. If we get back -1, though, there is an error. */ @@ -112,7 +170,14 @@ &num_selections, &select_generation, generation, cur.dinfo->devices, num_devices, matches, num_matches, -@@ -672,7 +707,11 @@ + NULL, 0, + select_mode, 10, 0) == -1) + nodisk++; ++ + } + + int +@@ -672,7 +727,11 @@ * the selection process again, in case a device that we * were previously displaying has gone away. */ @@ -124,7 +189,7 @@ case -1: return (0); case 1: { -@@ -680,7 +719,11 @@ +@@ -680,7 +739,11 @@ num_devices = cur.dinfo->numdevs; generation = cur.dinfo->generation; @@ -136,7 +201,7 @@ &num_selections, &select_generation, generation, cur.dinfo->devices, num_devices, matches, num_matches, -@@ -704,14 +747,22 @@ +@@ -704,14 +767,22 @@ * Calculate elapsed time up front, since it's the same for all * devices. */ @@ -159,7 +224,7 @@ return (0); } -@@ -725,7 +776,11 @@ +@@ -725,12 +796,15 @@ di = dev_select[dn].position; @@ -169,9 +234,17 @@ if (compute_stats(&cur.dinfo->devices[di], +#endif &last.dinfo->devices[di], busy_seconds, - &total_bytes, &total_transfers, - NULL, NULL, -@@ -740,7 +795,11 @@ +- &total_bytes, &total_transfers, +- NULL, NULL, +- NULL, NULL, +- NULL, NULL)!= 0) ++ DSM_TOTAL_BYTES, &total_bytes, ++ DSM_TOTAL_TRANSFERS, &total_transfers, ++ DSM_NONE)!= 0) + break; + total_xfers += (int)total_transfers; + total_xbytes += (int)total_bytes; +@@ -740,7 +814,11 @@ last.dinfo = cur.dinfo; cur.dinfo = tmp_dinfo; @@ -183,7 +256,7 @@ } else { /* no disks found ? */ -@@ -912,25 +971,26 @@ +@@ -912,25 +990,26 @@ OpenKDIfNeeded(); nintr = (nlst[EINTRCNT_SYM_INDEX].n_value - nlst[INTRCNT_SYM_INDEX].n_value) / sizeof(int); @@ -217,7 +290,7 @@ /* FreeBSD has an array of interrupt counts, indexed by device number. These are also indirected by IRQ num with intr_countp: */ safe_kvm_read (nlst[INTRCOUNTP_SYM_INDEX].n_value, -@@ -944,6 +1004,46 @@ +@@ -944,6 +1023,46 @@ sizeof(unsigned long); intrCount[i] = kvm_intrcnt[idx]; }