Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/sysutils/conky conky: Make battery_percent not segfaul...
details: https://anonhg.NetBSD.org/pkgsrc/rev/ec2b54d01fc0
branches: trunk
changeset: 437589:ec2b54d01fc0
user: nia <nia%pkgsrc.org@localhost>
date: Thu Aug 27 11:25:29 2020 +0000
description:
conky: Make battery_percent not segfault on NetBSD
diffstat:
sysutils/conky/Makefile | 4 +-
sysutils/conky/distinfo | 4 +-
sysutils/conky/patches/patch-src_netbsd.c | 134 ++++++++++++++---------------
3 files changed, 70 insertions(+), 72 deletions(-)
diffs (289 lines):
diff -r 1fa0adffa236 -r ec2b54d01fc0 sysutils/conky/Makefile
--- a/sysutils/conky/Makefile Thu Aug 27 09:46:50 2020 +0000
+++ b/sysutils/conky/Makefile Thu Aug 27 11:25:29 2020 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.49 2020/08/27 09:42:05 nia Exp $
+# $NetBSD: Makefile,v 1.50 2020/08/27 11:25:29 nia Exp $
#
DISTNAME= conky-1.9.0
-PKGREVISION= 42
+PKGREVISION= 43
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=conky/}
EXTRACT_SUFX= .tar.bz2
diff -r 1fa0adffa236 -r ec2b54d01fc0 sysutils/conky/distinfo
--- a/sysutils/conky/distinfo Thu Aug 27 09:46:50 2020 +0000
+++ b/sysutils/conky/distinfo Thu Aug 27 11:25:29 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2017/06/30 00:23:03 kamil Exp $
+$NetBSD: distinfo,v 1.8 2020/08/27 11:25:29 nia Exp $
SHA1 (conky-1.9.0.tar.bz2) = 2069cbdb8e7224fcbf3c6b1ddebf64a51634b4cc
RMD160 (conky-1.9.0.tar.bz2) = 2df0e60d4236ed667bdae876e11ba28d05914e25
@@ -11,7 +11,7 @@
SHA1 (patch-src_conky.c) = e4c9173661cca437af0febbcae94eec72dc0ea4a
SHA1 (patch-src_core.c) = a64ff7cb05d7b6b62aea41e486c0a719e2c93faf
SHA1 (patch-src_fs.c) = 104fd3788f319689026702d6a149410184072e24
-SHA1 (patch-src_netbsd.c) = 6dd3544c02fffe8ab03ecb9560c84f4016345ee6
+SHA1 (patch-src_netbsd.c) = 3cacc27e8ae6e20fe70385b764928767dab289d7
SHA1 (patch-src_netbsd.h) = dee5c466ab5cc267f1da94848b0a8b598303dfe4
SHA1 (patch-src_read__tcp.c) = 32fca1b7fdfdb2568b056705c7129807e281b0cc
SHA1 (patch-src_text__object.h) = 7f7e3684e21f9618a8ede37525f4a48f47a92050
diff -r 1fa0adffa236 -r ec2b54d01fc0 sysutils/conky/patches/patch-src_netbsd.c
--- a/sysutils/conky/patches/patch-src_netbsd.c Thu Aug 27 09:46:50 2020 +0000
+++ b/sysutils/conky/patches/patch-src_netbsd.c Thu Aug 27 11:25:29 2020 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-src_netbsd.c,v 1.3 2016/04/11 01:49:28 riastradh Exp $
+$NetBSD: patch-src_netbsd.c,v 1.4 2020/08/27 11:25:29 nia Exp $
Many fixes and addons for conky to work on NetBSD.
--- src/netbsd.c.orig 2012-05-03 21:08:27.000000000 +0000
+++ src/netbsd.c
-@@ -30,337 +30,805 @@
+@@ -30,337 +30,803 @@
#include "netbsd.h"
#include "net_stat.h"
@@ -146,9 +146,7 @@
+ * report inactive memory as memeasyfree.
+ */
+ info.memeasyfree -= info.bufmem;
-
-- if (sep == NULL) {
-- warn("memory allocation failed");
++
+ return 0;
+}
+
@@ -160,7 +158,9 @@
+ long long r, t, last_recv, last_trans;
+ struct ifaddrs *ifap, *ifa;
+ struct if_data *ifd;
-+
+
+- if (sep == NULL) {
+- warn("memory allocation failed");
+ /* get delta */
+ delta = current_update_time - last_update_time;
+ if (delta <= 0.0001) {
@@ -432,13 +432,9 @@
+ total = 0;
+ for (j = 0; j < CPUSTATES; j++)
+ total += cp_time[j];
-
-- ns->last_read_recv = ifnet.if_ibytes;
++
+ used = total - cp_time[CP_IDLE];
-
-- if (ifnet.if_obytes < ns->last_read_trans) {
-- ns->trans += ((long long) 4294967295U - ns->last_read_trans) +
-- ifnet.if_obytes;
++
+ if ((total - cpu[0].oldtotal) != 0) {
+ info.cpu_usage[0] = ((double) (used - cpu[0].oldused)) /
+ (double) (total - cpu[0].oldtotal);
@@ -465,9 +461,13 @@
+ total = 0;
+ for (j = 0; j < CPUSTATES; j++)
+ total += cp_time[i*CPUSTATES + j];
-+
+
+- ns->last_read_recv = ifnet.if_ibytes;
+ used = total - cp_time[i*CPUSTATES + CP_IDLE];
-+
+
+- if (ifnet.if_obytes < ns->last_read_trans) {
+- ns->trans += ((long long) 4294967295U - ns->last_read_trans) +
+- ifnet.if_obytes;
+ if ((total - cpu[i+1].oldtotal) != 0) {
+ info.cpu_usage[i+1] = ((double) (used - cpu[i+1].oldused)) /
+ (double) (total - cpu[i+1].oldtotal);
@@ -484,23 +484,23 @@
+ free(cp_time);
+ return 0;
+}
-+
+
+- ns->recv += (ifnet.if_ibytes - ns->last_read_recv);
+- ns->last_read_recv = ifnet.if_ibytes;
+- ns->trans += (ifnet.if_obytes - ns->last_read_trans);
+- ns->last_read_trans = ifnet.if_obytes;
+int update_load_average(void)
+{
+ double v[3];
+
+ getloadavg(v, 3);
-- ns->recv += (ifnet.if_ibytes - ns->last_read_recv);
-- ns->last_read_recv = ifnet.if_ibytes;
-- ns->trans += (ifnet.if_obytes - ns->last_read_trans);
-- ns->last_read_trans = ifnet.if_obytes;
+- ns->recv_speed = (ns->recv - last_recv) / delta;
+- ns->trans_speed = (ns->trans - last_trans) / delta;
+ info.loadavg[0] = (float) v[0];
+ info.loadavg[1] = (float) v[1];
+ info.loadavg[2] = (float) v[2];
-
-- ns->recv_speed = (ns->recv - last_recv) / delta;
-- ns->trans_speed = (ns->trans - last_trans) / delta;
++
+ return 0;
+}
+
@@ -704,15 +704,15 @@
- {0, 0, 0, 0, 0}
-};
+ (void)fd;
-
--long cpu_used, oldtotal, oldused;
++
+ if (envsys_get_val(dq_tz, (void *)&temp) < 0)
+ return 0.0;
--void update_cpu_usage()
+-long cpu_used, oldtotal, oldused;
+ return (temp / 1000000.0) - 273.15;
+}
-+
+
+-void update_cpu_usage()
+void
+get_bat_life(char *bat, char *buf)
{
@@ -740,12 +740,12 @@
- fresh.load[2] = cp_time[CP_SYS];
- fresh.load[3] = cp_time[CP_IDLE];
- fresh.load[4] = cp_time[CP_IDLE];
--
-- used = fresh.load[0] + fresh.load[1] + fresh.load[2];
-- total = fresh.load[0] + fresh.load[1] + fresh.load[2] + fresh.load[3];
+ strcpy(row, "cur-value");
+ dq_charge.row = &row[0];
+- used = fresh.load[0] + fresh.load[1] + fresh.load[2];
+- total = fresh.load[0] + fresh.load[1] + fresh.load[2] + fresh.load[3];
+-
- if ((total - oldtotal) != 0) {
- info.cpu_usage = ((double) (used - oldused)) /
- (double) (total - oldtotal);
@@ -893,36 +893,38 @@
+ } else {
+ strncpy(p_client_buffer, "Running on battery", client_buffer_size);
+ }
-+}
-+
+ }
+
+-/* char *get_acpi_fan() */
+-void get_acpi_fan(char *p_client_buffer, size_t client_buffer_size)
+int
+get_battery_perct(const char *bat)
-+{
-+ int64_t designcap, lastfulcap;
+ {
+- if (!p_client_buffer || client_buffer_size <= 0) {
+- return;
+ int bat_num, batperct;
+ char b_name[32];
-+ char *lastfulcap_prop = "last full cap";
-+ char *designcap_prop = "design cap";
-+ Devquery dq_cap = { P_INT64, NULL, NULL, NULL};
++ int64_t cur_charge, max_charge;
++ Devquery dq_charge = { P_INT64, NULL, "charge", NULL};
+
+ sscanf(bat, "BAT%d", &bat_num);
-+ sprintf(b_name, "acpibat%d", bat_num);
++ snprintf(b_name, sizeof(b_name), "acpibat%d", bat_num);
+
-+ dq_cap.dev = &b_name[0];
-+ dq_cap.key = designcap_prop;
++ dq_charge.dev = b_name;
+
-+ if (envsys_get_val(dq_cap, (void *)&designcap) < 0)
-+ designcap = 0;
++ dq_charge.row = "max-value";
+
-+ dq_cap.key = lastfulcap_prop;
++ if (envsys_get_val(dq_charge, (void *)&max_charge) < 0) {
++ return 0;
++ }
+
-+ if (envsys_get_val(dq_cap, (void *)&lastfulcap) < 0)
-+ lastfulcap = 0;
++ dq_charge.row = "cur-value";
+
-+ batperct = (designcap > 0 && lastfulcap > 0) ?
-+ (int) (((float) lastfulcap / designcap) * 100) : 0;
-+
-+ return batperct > 100 ? 100 : batperct;
++ if (envsys_get_val(dq_charge, (void *)&cur_charge) < 0) {
++ return 0;
+ }
+
++ return (int)(((float) cur_charge / max_charge) * 100);
+}
+
+int
@@ -930,44 +932,40 @@
+{
+ int batperct = get_battery_perct(bat);
+ return (int)(batperct * 2.56 - 1);
++}
++
++void get_acpi_fan(char *p_client_buffer, size_t client_buffer_size)
++{
+ /* not implemented */
+- memset(p_client_buffer, 0, client_buffer_size);
++ if (p_client_buffer && client_buffer_size > 0) {
++ memset(p_client_buffer, 0, client_buffer_size);
++ }
}
--/* char *get_acpi_fan() */
- void get_acpi_fan(char *p_client_buffer, size_t client_buffer_size)
- {
-- if (!p_client_buffer || client_buffer_size <= 0) {
-- return;
-+ /* not implemented */
-+ if (p_client_buffer && client_buffer_size > 0) {
-+ memset(p_client_buffer, 0, client_buffer_size);
- }
-+}
-
-- /* not implemented */
-- memset(p_client_buffer, 0, client_buffer_size);
+-int get_entropy_avail(unsigned int *val)
+/*
+ * Here comes the mighty envsys backend
+ */
+void
+sysmon_open()
-+{
+ {
+- return 1;
+ sysmon_fd = open(_DEV_SYSMON, O_RDONLY);
}
--int get_entropy_avail(unsigned int *val)
+-int get_entropy_poolsize(unsigned int *val)
+void
+sysmon_close()
{
- return 1;
+ if (sysmon_fd > -1)
+ close(sysmon_fd);
- }
-
--int get_entropy_poolsize(unsigned int *val)
++}
++
+int8_t
+envsys_get_val(Devquery dq, void *val)
- {
-- return 1;
++{
+ char *descr;
+ const char *cval;
+ prop_dictionary_t dict;
Home |
Main Index |
Thread Index |
Old Index