On Mon, 21 Apr 2025 12:00:15 +0200, Rafael Sadowski wrote: > So here we should have an update diff for conky to the latest version. > Here are some notes. > > - I have dropped the xmms2 variant. Our xmms2 is py27 and I see no > motivation to install or update it. > - I have borrowed some patches from FreeBSD > - Added python/pypandoc to build the manpage > - I have tried to leave the same defaults as before. > - I have dropped all patches. Please step up if you are missing something. > > I have only started it once with the default setting. I am not a conky > user (not for a long time). > > I am looking for real user feedback and OKs.
Missing BDEP on devel/gperf. Light testing with an old config produces lots of this in dmesg on amd64: pmap_unwire: wiring for pmap 0xfffffd861fa50db8 va 0x2d87d4c7000 didn't change! pmap_unwire: wiring for pmap 0xfffffd861fa50db8 va 0x2d87d4b7000 didn't change! pmap_unwire: wiring for pmap 0xfffffd861fa50db8 va 0x2d87d4b8000 didn't change! Thanks for the update, I'll continue testing. > Rafael > > diff --git a/sysutils/conky/Makefile b/sysutils/conky/Makefile > index f1a6fe43fcd..ea81dc351eb 100644 > --- a/sysutils/conky/Makefile > +++ b/sysutils/conky/Makefile > @@ -1,83 +1,56 @@ > -ONLY_FOR_ARCHS= ${APM_ARCHS} > +ONLY_FOR_ARCHS = ${APM_ARCHS} > > -COMMENT= light-weight system monitor > +COMMENT = light-weight system monitor > > -# there's a start of an attempt to update to a recent version in openbsd-wip > -GH_ACCOUNT= brndnmtthws > -GH_PROJECT= conky > -GH_TAGNAME= 1.9.0 > -REVISION= 24 > +GH_ACCOUNT = brndnmtthws > +GH_PROJECT = conky > +GH_TAGNAME = v1.22.1 > > -# remove after updating: > -DISTFILES= conky_0-{}${GH_TAGNAME}.tar.gz > - > -CATEGORIES= sysutils > +CATEGORIES = sysutils > > # mostly GPLv3; see COPYING > PERMIT_PACKAGE= Yes > > -WANTLIB += ${MODLUA_WANTLIB} X11-xcb c crypto curl curses glib-2.0 iconv > -WANTLIB += intl kvm lzma m nghttp2 nghttp3 ngtcp2 ngtcp2_crypto_quictls > -WANTLIB += ossaudio pcre2-8 pthread ssl xcb-shm xml2 z > +WANTLIB += ${COMPILER_LIBCXX} ${MODLUA_WANTLIB} c curses intl kvm m ossaudio > +WANTLIB += curl xml2 > + > +MODULES = devel/cmake \ > + lang/python \ > + lang/lua > + > +MODLUA_VERSION = 5.3 > > -MODULES= lang/lua > -MODLUA_SA= Yes > +# dependency to build docs > +MODPY_RUNDEP = No > > -LIB_DEPENDS= devel/glib2 \ > - net/curl \ > +BUILD_DEPENDS = textproc/py-pypandoc > + > +LIB_DEPENDS = net/curl \ > textproc/libxml \ > ${MODLUA_LIB_DEPENDS} > > -FLAVORS= no_x11 xmms2 > +FLAVORS = no_x11 > FLAVOR?= > > -CONFIGURE_STYLE= autoreconf > -AUTOCONF_VERSION= 2.69 > -AUTOMAKE_VERSION= 1.16 > -BUILD_DEPENDS= textproc/docbook2x \ > - textproc/docbook-xsl > -AUTORECONF= ${WRKSRC}/autogen.sh > - > -CONFIGURE_ARGS= --enable-mpd \ > - --enable-rss \ > - --disable-config-output \ > - --disable-moc \ > - --disable-portmon \ > - --enable-lua \ > - --enable-curl \ > - --with-libiconv-prefix="${LOCALBASE}" > -CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" > LDFLAGS="-L${LOCALBASE}/lib" \ > - LUA_CFLAGS="`pkg-config --cflags ${MODLUA_DEP}`" \ > - LUA_LIBS="`pkg-config --libs ${MODLUA_DEP}`" > +CONFIGURE_ARGS = -DAPP_SED="${LOCALBASE}/bin/gsed" \ > + -DBUILD_AUDACIOUS=OFF \ > + -DBUILD_HDDTEMP=OFF \ > + -DBUILD_IBM=OFF \ > + -DBUILD_MOC=OFF \ > + -DBUILD_IOSTATS=OFF \ > + -DBUILD_PORT_MONITORS=OFF > + > +CONFIGURE_ARGS += -DBUILD_RSS=ON \ > + -DBUILD_CURL=ON > + > +CONFIGURE_ARGS += -DBUILD_DOCS=ON > > .if ${FLAVOR:Mno_x11} > -. if ${FLAVOR:Mxmms2} > -ERRORS+="Fatal: nonsense combination of flavors" > -. else > -CONFIGURE_ARGS+=--disable-double-buffer \ > - --disable-own-window \ > - --disable-xdamage \ > - --disable-xft \ > - --disable-x11 > -. endif > +CONFIGURE_ARGS += -DBUILD_X11=OFF > .else > -CONFIGURE_ARGS+=--enable-imlib2 > -LIB_DEPENDS+= graphics/imlib2 > -WANTLIB += Imlib2 X11 Xdamage Xext Xfixes Xft > -WANTLIB += Xrender expat fontconfig freetype xcb > -.endif > - > -.if ${FLAVOR:Mxmms2} > -CONFIGURE_ARGS+=--enable-xmms2 > -LIB_DEPENDS+= audio/xmms2 > -WANTLIB+= xmmsclient > +CONFIGURE_ARGS += -DBUILD_X11=ON > +LIB_DEPENDS += graphics/imlib2 > +WANTLIB += ICE Imlib2 SM X11 Xdamage Xext Xfixes Xft Xinerama fontconfig xcb > .endif > > -post-install: > - ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/conky > - ${INSTALL_DATA} ${WRKSRC}/doc/*.html ${PREFIX}/share/doc/conky > - ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/conky > - > -FAKE_FLAGS= configdir=${PREFIX}/share/examples/conky > - > .include <bsd.port.mk> > diff --git a/sysutils/conky/distinfo b/sysutils/conky/distinfo > index 39328f418c2..17e499c3540 100644 > --- a/sysutils/conky/distinfo > +++ b/sysutils/conky/distinfo > @@ -1,2 +1,2 @@ > -SHA256 (conky_0-1.9.0.tar.gz) = ERHFiC2PVTBZkKKhkhA9BdPY76Htyr2HFMQdg6+b8kQ= > -SIZE (conky_0-1.9.0.tar.gz) = 314143 > +SHA256 (conky-1.22.1.tar.gz) = mVn95xnT1DQKuXOq2+uXoD6fa/T5KL4N5pz7AocdUi4= > +SIZE (conky-1.22.1.tar.gz) = 2024889 > diff --git a/sysutils/conky/patches/patch-CMakeLists_txt > b/sysutils/conky/patches/patch-CMakeLists_txt > new file mode 100644 > index 00000000000..751a4da5cb4 > --- /dev/null > +++ b/sysutils/conky/patches/patch-CMakeLists_txt > @@ -0,0 +1,22 @@ > +Index: CMakeLists.txt > +--- CMakeLists.txt.orig > ++++ CMakeLists.txt > +@@ -82,12 +82,16 @@ if(BUILD_TESTING) > + endif() > + > + if(NOT DEFINED DOC_PATH) > +- set(DOC_PATH "share/doc/${CPACK_PACKAGE_NAME}-${RELEASE_VERSION}") > ++ set(DOC_PATH "share/doc/${CPACK_PACKAGE_NAME}") > + endif(NOT DEFINED DOC_PATH) > + > +-set(DOC_FILES extras/convert.lua data/conky_no_x11.conf data/conky.conf) > ++if(NOT DEFINED SAMPLE_PATH) > ++ set(SAMPLE_PATH "share/examples/${CPACK_PACKAGE_NAME}") > ++endif(NOT DEFINED SAMPLE_PATH) > ++set(SAMPLE_FILES extras/convert.lua data/conky_no_x11.conf data/conky.conf) > + > + install(FILES ${DOC_FILES} DESTINATION ${DOC_PATH}) > ++install(FILES ${SAMPLE_FILES} DESTINATION ${SAMPLE_PATH}) > + > + if(CHECK_CODE_QUALITY) > + find_package(ClangTidy) > diff --git a/sysutils/conky/patches/patch-cmake_Conky_cmake > b/sysutils/conky/patches/patch-cmake_Conky_cmake > new file mode 100644 > index 00000000000..d0f8b6ceebe > --- /dev/null > +++ b/sysutils/conky/patches/patch-cmake_Conky_cmake > @@ -0,0 +1,12 @@ > +Index: cmake/Conky.cmake > +--- cmake/Conky.cmake.orig > ++++ cmake/Conky.cmake > +@@ -18,7 +18,7 @@ > + # along with this program. If not, see <http://www.gnu.org/licenses/>. > + # > + > +-# set(RELEASE true) > ++set(RELEASE true) > + > + # Set system vars > + if(CMAKE_SYSTEM_NAME MATCHES "Linux") > diff --git a/sysutils/conky/patches/patch-data_conky_no_x11_conf > b/sysutils/conky/patches/patch-data_conky_no_x11_conf > deleted file mode 100644 > index 98345b05f75..00000000000 > --- a/sysutils/conky/patches/patch-data_conky_no_x11_conf > +++ /dev/null > @@ -1,12 +0,0 @@ > ---- data/conky_no_x11.conf.orig Thu May 3 23:08:27 2012 > -+++ data/conky_no_x11.conf Fri Aug 10 13:47:45 2012 > -@@ -27,7 +27,8 @@ background no > - cpu_avg_samples 2 > - net_avg_samples 2 > - no_buffers yes > --out_to_stderr no > -+out_to_x no > -+out_to_ncurses yes > - update_interval 1.0 > - uppercase no > - use_spacer none > diff --git a/sysutils/conky/patches/patch-doc_Makefile_am > b/sysutils/conky/patches/patch-doc_Makefile_am > deleted file mode 100644 > index 0d1a2172c2a..00000000000 > --- a/sysutils/conky/patches/patch-doc_Makefile_am > +++ /dev/null > @@ -1,18 +0,0 @@ > -Index: doc/Makefile.am > ---- doc/Makefile.am.orig > -+++ doc/Makefile.am > -@@ -10,14 +10,6 @@ conky.1: command_options.xml config_settings.xml docs. > - ${db2x_xsltproc_cmd} -s man ${srcdir}/docs.xml -o docs.mxml > - ${db2x_manxml_cmd} docs.mxml > - ${xsltproc_cmd} > http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl > ${srcdir}/docs.xml > docs.html > -- man -P 'less -is' ./conky.1 > README > -- sed -i "s/[[:cntrl:]]\[[0-9]*m//g" README > -- sed -i "s/\xE2//g" README > -- sed -i "s/\x80//g" README > -- sed -i "s/\x90/-/g" README > -- sed -i "s/\x94/-/g" README > -- sed -i "s/\x9f/-/g" README > -- mv README ${top_srcdir} > - xsltproc ${srcdir}/variables.xsl ${srcdir}/variables.xml > > variables.html > - xsltproc ${srcdir}/config_settings.xsl ${srcdir}/config_settings.xml > > config_settings.html > - xsltproc ${srcdir}/lua.xsl ${srcdir}/lua.xml > lua.html > diff --git a/sysutils/conky/patches/patch-lua_CMakeLists_txt > b/sysutils/conky/patches/patch-lua_CMakeLists_txt > new file mode 100644 > index 00000000000..e95430d797b > --- /dev/null > +++ b/sysutils/conky/patches/patch-lua_CMakeLists_txt > @@ -0,0 +1,12 @@ > +Index: lua/CMakeLists.txt > +--- lua/CMakeLists.txt.orig > ++++ lua/CMakeLists.txt > +@@ -27,6 +27,8 @@ add_definitions(-DTOLUA_RELEASE) > + if(BUILD_LUA_CAIRO) > + include_directories(${luacairo_includes} ${CMAKE_CURRENT_SOURCE_DIR}) > + > ++ link_directories(${LIBS}) > ++ > + # cairo_set_dash() needs this special hack to work properly if you have a > + # better solution, please let me know > + wrap_tolua(luacairo_src cairo.pkg libcairo.patch) > diff --git a/sysutils/conky/patches/patch-src_common_c > b/sysutils/conky/patches/patch-src_common_c > deleted file mode 100644 > index bfc729d6f8a..00000000000 > --- a/sysutils/conky/patches/patch-src_common_c > +++ /dev/null > @@ -1,12 +0,0 @@ > -Index: src/common.c > ---- src/common.c.orig > -+++ src/common.c > -@@ -387,8 +387,6 @@ static void *run_update_callback(void *data) > - } > - } > - > --int no_buffers; > -- > - void update_stuff(void) > - { > - int i; > diff --git a/sysutils/conky/patches/patch-src_conky_c > b/sysutils/conky/patches/patch-src_conky_c > deleted file mode 100644 > index 48e5a1adaae..00000000000 > --- a/sysutils/conky/patches/patch-src_conky_c > +++ /dev/null > @@ -1,86 +0,0 @@ > -Correctly change update_interval based on whether AC is plugged in > -or on battery for OpenBSD. > - > -Index: src/conky.c > ---- src/conky.c.orig > -+++ src/conky.c > -@@ -125,7 +125,7 @@ > - > - /* FIXME: apm_getinfo is unused here. maybe it's meant for common.c */ > - #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ > -- || defined(__OpenBSD__)) && (defined(i386) || defined(__i386__)) > -+ || defined(__OpenBSD__)) > - int apm_getinfo(int fd, apm_info_t aip); > - char *get_apm_adapter(void); > - char *get_apm_battery_life(void); > -@@ -401,10 +401,6 @@ static int maximum_width; > - > - #endif /* X11 */ > - > --#ifdef __OpenBSD__ > --static int sensor_device; > --#endif > -- > - long color0, color1, color2, color3, color4, color5, color6, color7, color8, > - color9; > - > -@@ -418,11 +414,13 @@ unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SI > - int utf8_mode = 0; > - > - /* no buffers in used memory? */ > --int no_buffers; > -+int no_buffers = 0; > - > - /* pad percentages to decimals? */ > - static int pad_percents = 0; > - > -+enum IFUP_STRICTNESS ifup_strictness = IFUP_UP; > -+ > - static char *global_text = 0; > - > - char *get_global_text(void) > -@@ -1015,7 +1013,7 @@ void generate_text_internal(char *p, int p_max_size, > - get_powerbook_batt_info(p, p_max_size, > obj->data.i); > - } > - #endif /* __linux__ */ > --#if (defined(__FreeBSD__) || defined(__linux__)) > -+#if (defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__)) > - OBJ(if_up) { > - if (!interface_up(obj)) { > - DO_JUMP; > -@@ -1899,7 +1897,7 @@ void generate_text_internal(char *p, int p_max_size, > - } > - #endif /* __linux__ */ > - #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ > -- || defined(__OpenBSD__)) && (defined(i386) || defined(__i386__)) > -+ || defined(__OpenBSD__)) > - OBJ(apm_adapter) { > - char *msg; > - > -@@ -3494,6 +3492,7 @@ static void main_loop(void) > - info.looped = 0; > - while (terminate == 0 && (total_run_times == 0 || info.looped < > total_run_times)) { > - if(update_interval_bat != NOBATTERY && update_interval_bat != > update_interval_old) { > -+#ifndef __OpenBSD__ > - char buf[max_user_text]; > - > - get_battery_short_status(buf, max_user_text, "BAT0"); > -@@ -3502,6 +3501,18 @@ static void main_loop(void) > - } else { > - update_interval = update_interval_old; > - } > -+#else > -+ char *apm_status; > -+ apm_status = get_apm_adapter(); > -+ if (apm_status != NULL) { > -+ if (strcmp(apm_status,"off-line") == 0) { > -+ update_interval = update_interval_bat; > -+ } else { > -+ update_interval = update_interval_old; > -+ } > -+ free(apm_status); > -+ } > -+#endif > - } > - info.looped++; > - > diff --git a/sysutils/conky/patches/patch-src_conky_h > b/sysutils/conky/patches/patch-src_conky_h > deleted file mode 100644 > index 61c040f3275..00000000000 > --- a/sysutils/conky/patches/patch-src_conky_h > +++ /dev/null > @@ -1,19 +0,0 @@ > -Index: src/conky.h > ---- src/conky.h.orig > -+++ src/conky.h > -@@ -206,11 +206,13 @@ enum { > - > - /* if_up strictness selector > - * needed by conky.c and linux.c (and potentially others) */ > --enum { > -+enum IFUP_STRICTNESS { > - IFUP_UP, > - IFUP_LINK, > - IFUP_ADDR > --} ifup_strictness; > -+}; > -+ > -+extern enum IFUP_STRICTNESS ifup_strictness; > - > - struct information { > - unsigned int mask; > diff --git a/sysutils/conky/patches/patch-src_core_c > b/sysutils/conky/patches/patch-src_core_c > deleted file mode 100644 > index 01138ecca4d..00000000000 > --- a/sysutils/conky/patches/patch-src_core_c > +++ /dev/null > @@ -1,41 +0,0 @@ > ---- src/core.c.orig Thu May 3 23:08:27 2012 > -+++ src/core.c Tue Jul 24 18:10:39 2012 > -@@ -170,9 +170,9 @@ struct text_object *construct_text_object(const char * > - #else > - NORM_ERR("acpiacadapter: arg is only used on linux"); > - #endif > -- } > -+ } END > - #endif /* !__OpenBSD__ */ > -- END OBJ(freq, 0) > -+ OBJ(freq, 0) > - get_cpu_count(); > - if (!arg || !isdigit(arg[0]) || strlen(arg) >= 2 || > atoi(&arg[0]) == 0 > - || atoi(&arg[0]) > info.cpu_count) { > -@@ -326,7 +326,7 @@ struct text_object *construct_text_object(const char * > - obj->data.i = PB_BATT_STATUS; > - } > - #endif /* __linux__ */ > --#if (defined(__FreeBSD__) || defined(__linux__)) > -+#if (defined(__FreeBSD__) || defined (__OpenBSD__) || defined(__linux__)) > - END OBJ_IF_ARG(if_up, 0, "if_up needs an argument") > - parse_if_up_arg(obj, arg); > - #endif > -@@ -860,7 +860,7 @@ struct text_object *construct_text_object(const char * > - END OBJ(gw_ip, &update_gateway_info) > - #endif /* !__linux__ */ > - #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ > -- || defined(__OpenBSD__)) && (defined(i386) || defined(__i386__)) > -+ || defined(__OpenBSD__)) > - END OBJ(apm_adapter, 0) > - END OBJ(apm_battery_life, 0) > - END OBJ(apm_battery_time, 0) > -@@ -1523,7 +1523,7 @@ void free_text_objects(struct text_object *root, int i > - free(data.s); > - break; > - #endif > --#if (defined(__FreeBSD__) || defined(__linux__)) > -+#if (defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__)) > - case OBJ_if_up: > - free_if_up(obj); > - break; > diff --git a/sysutils/conky/patches/patch-src_fs_c > b/sysutils/conky/patches/patch-src_fs_c > deleted file mode 100644 > index b6b26fc362c..00000000000 > --- a/sysutils/conky/patches/patch-src_fs_c > +++ /dev/null > @@ -1,22 +0,0 @@ > ---- src/fs.c.orig Tue Jul 24 18:26:13 2012 > -+++ src/fs.c Tue Jul 24 18:32:23 2012 > -@@ -118,16 +118,16 @@ struct fs_stat *prepare_fs_stat(const char *s) > - > - static void update_fs_stat(struct fs_stat *fs) > - { > -- struct statfs64 s; > -+ struct statfs s; > - > -- if (statfs64(fs->path, &s) == 0) { > -+ if (statfs(fs->path, &s) == 0) { > - fs->size = (long long)s.f_blocks * s.f_bsize; > - /* bfree (root) or bavail (non-roots) ? */ > - fs->avail = (long long)s.f_bavail * s.f_bsize; > - fs->free = (long long)s.f_bfree * s.f_bsize; > - get_fs_type(fs->path, fs->type); > - } else { > -- NORM_ERR("statfs64 '%s': %s", fs->path, strerror(errno)); > -+ NORM_ERR("statfs '%s': %s", fs->path, strerror(errno)); > - fs->size = 0; > - fs->avail = 0; > - fs->free = 0; > diff --git a/sysutils/conky/patches/patch-src_llua_c > b/sysutils/conky/patches/patch-src_llua_c > deleted file mode 100644 > index 3d1289d25fd..00000000000 > --- a/sysutils/conky/patches/patch-src_llua_c > +++ /dev/null > @@ -1,20 +0,0 @@ > ---- src/llua.c.orig Wed Apr 27 14:37:28 2011 > -+++ src/llua.c Wed Apr 27 14:39:18 2011 > -@@ -28,6 +28,8 @@ > - > - #include <ctype.h> > - > -+#include <sys/param.h> > -+ > - #ifdef LUA_EXTRAS > - #include <tolua++.h> > - #endif /* LUA_EXTRAS */ > -@@ -39,8 +41,6 @@ void llua_append_notify(const char *name); > - void llua_rm_notifies(void); > - static int llua_block_notify = 0; > - #endif /* HAVE_SYS_INOTIFY_H */ > -- > --#define MIN(a, b) ( (a) < (b) ? (a) : (b) ) > - > - static char *draw_pre_hook = 0; > - static char *draw_post_hook = 0; > diff --git a/sysutils/conky/patches/patch-src_mixer_c > b/sysutils/conky/patches/patch-src_mixer_c > deleted file mode 100644 > index a241e0fde7d..00000000000 > --- a/sysutils/conky/patches/patch-src_mixer_c > +++ /dev/null > @@ -1,12 +0,0 @@ > -Index: src/mixer.c > ---- src/mixer.c.orig > -+++ src/mixer.c > -@@ -48,7 +48,7 @@ > - #endif /* __OpenBSD__ */ > - #endif /* HAVE_LINUX_SOUNDCARD_H */ > - > --#define MIXER_DEV "/dev/mixer" > -+#define MIXER_DEV "/dev/null" > - > - static int mixer_fd; > - static const char *devs[] = SOUND_DEVICE_NAMES; > diff --git a/sysutils/conky/patches/patch-src_openbsd_c > b/sysutils/conky/patches/patch-src_openbsd_c > deleted file mode 100644 > index d72b7572d66..00000000000 > --- a/sysutils/conky/patches/patch-src_openbsd_c > +++ /dev/null > @@ -1,400 +0,0 @@ > -declarations in common.h got changed, but upstream forgot to do the > -corresponding changes into openbsd.c > - > -Adapt to new OpenBSD kinfo_proc API. > - > -Protect kvm_getprocs and global vars with mutexes. > - > -dkstat.h is going away on OpenBSD, so use sys/sched.h instead for CP_* > - > -Make "inline void proc_find_top" static to fix building with clang. > - > ---- src/openbsd.c.orig Thu May 3 23:08:27 2012 > -+++ src/openbsd.c Wed Apr 19 22:14:41 2017 > -@@ -28,10 +28,11 @@ > - * > - */ > - > --#include <sys/dkstat.h> > - #include <sys/param.h> > -+#include <sys/sched.h> > - #include <sys/resource.h> > - #include <sys/socket.h> > -+#include <sys/proc.h> > - #include <sys/sysctl.h> > - #include <sys/time.h> > - #include <sys/types.h> > -@@ -53,6 +54,7 @@ > - #include <ifaddrs.h> > - #include <limits.h> > - #include <unistd.h> > -+#include <pthread.h> > - #include <machine/apmvar.h> > - > - #include <net80211/ieee80211.h> > -@@ -70,7 +72,7 @@ > - #define LOG1024 10 > - #define pagetok(size) ((size) << pageshift) > - > --inline void proc_find_top(struct process **cpu, struct process **mem); > -+static inline void proc_find_top(struct process **cpu, struct process > **mem); > - > - static short cpu_setup = 0; > - static kvm_t *kd = 0; > -@@ -81,6 +83,8 @@ size_t len = 0; > - int init_kvm = 0; > - int init_sensors = 0; > - > -+pthread_mutex_t kvm_mutex = PTHREAD_MUTEX_INITIALIZER; > -+ > - static int kvm_init() > - { > - if (init_kvm) { > -@@ -140,7 +144,7 @@ int check_mount(char *s) > - return 0; > - } > - > --void update_uptime() > -+int update_uptime() > - { > - int mib[2] = { CTL_KERN, KERN_BOOTTIME }; > - struct timeval boottime; > -@@ -155,9 +159,10 @@ void update_uptime() > - NORM_ERR("Could not get uptime"); > - info.uptime = 0; > - } > -+ return 0; > - } > - > --void update_meminfo() > -+int update_meminfo() > - { > - static int mib[2] = { CTL_VM, VM_METER }; > - struct vmtotal vmtotal; > -@@ -194,9 +199,10 @@ void update_meminfo() > - info.swap = 0; > - info.swapfree = 0; > - } > -+ return 0; > - } > - > --void update_net_stats() > -+int update_net_stats() > - { > - struct net_stat *ns; > - double delta; > -@@ -207,11 +213,11 @@ void update_net_stats() > - /* get delta */ > - delta = current_update_time - last_update_time; > - if (delta <= 0.0001) { > -- return; > -+ return 0; > - } > - > - if (getifaddrs(&ifap) < 0) { > -- return; > -+ return 0; > - } > - > - for (ifa = ifap; ifa; ifa = ifa->ifa_next) { > -@@ -266,28 +272,36 @@ void update_net_stats() > - } > - > - freeifaddrs(ifap); > -+ return 0; > - } > - > --void update_total_processes() > -+int update_total_processes() > - { > -- int n_processes; > -+ int n_processes = 0; > - > -+ int max_size = sizeof(struct kinfo_proc); > -+ > - kvm_init(); > -- kvm_getprocs(kd, KERN_PROC_ALL, 0, &n_processes); > -+ pthread_mutex_lock(&kvm_mutex); > -+ kvm_getprocs(kd, KERN_PROC_ALL, 0, max_size, &n_processes); > -+ pthread_mutex_unlock(&kvm_mutex); > - > - info.procs = n_processes; > -+ return 0; > - } > - > --void update_running_processes() > -+int update_running_processes() > - { > -- struct kinfo_proc2 *p; > -- int n_processes; > -+ struct kinfo_proc *p; > -+ int n_processes = 0; > - int i, cnt = 0; > - > - kvm_init(); > -- int max_size = sizeof(struct kinfo_proc2); > -+ int max_size = sizeof(struct kinfo_proc); > - > -- p = kvm_getproc2(kd, KERN_PROC_ALL, 0, max_size, &n_processes); > -+ pthread_mutex_lock(&kvm_mutex); > -+ p = kvm_getprocs(kd, KERN_PROC_ALL, 0, max_size, &n_processes); > -+ pthread_mutex_unlock(&kvm_mutex); > - for (i = 0; i < n_processes; i++) { > - if (p[i].p_stat == SRUN) { > - cnt++; > -@@ -295,96 +309,64 @@ void update_running_processes() > - } > - > - info.run_procs = cnt; > -+ return 0; > - } > - > --/* new SMP code can be enabled by commenting the following line */ > --#define OLDCPU > -- > --#ifdef OLDCPU > --struct cpu_load_struct { > -- unsigned long load[5]; > --}; > -- > --struct cpu_load_struct fresh = { {0, 0, 0, 0, 0} }; > --long cpu_used, oldtotal, oldused; > --#else > - #include <assert.h> > - int64_t *fresh = NULL; > - > - /* XXX is 8 enough? - What's the constant for MAXCPU? */ > - /* allocate this with malloc would be better */ > - int64_t oldtotal[8], oldused[8]; > --#endif > - > - void get_cpu_count() > - { > - int cpu_count = 1; /* default to 1 cpu */ > --#ifndef OLDCPU > -+ static pthread_mutex_t count_mutex = PTHREAD_MUTEX_INITIALIZER; > -+ > - int mib[2] = { CTL_HW, HW_NCPU }; > - size_t len = sizeof(cpu_count); > - > - if (sysctl(mib, 2, &cpu_count, &len, NULL, 0) != 0) { > - NORM_ERR("error getting cpu count, defaulting to 1"); > - } > --#endif > -+ > -+ pthread_mutex_lock(&count_mutex); > -+ > -+ if (info.cpu_count == cpu_count) { > -+ pthread_mutex_unlock(&count_mutex); > -+ return; > -+ } > -+ > - info.cpu_count = cpu_count; > - > -+ free(info.cpu_usage); > -+ > - info.cpu_usage = malloc(info.cpu_count * sizeof(float)); > - if (info.cpu_usage == NULL) { > - CRIT_ERR(NULL, NULL, "malloc"); > - } > - > --#ifndef OLDCPU > -- assert(fresh == NULL); /* XXX Is this leaking memory? */ > -+ free(fresh); > - /* XXX Where shall I free this? */ > - if (NULL == (fresh = calloc(cpu_count, sizeof(int64_t) * CPUSTATES))) { > - CRIT_ERR(NULL, NULL, "calloc"); > - } > --#endif > -+ > -+ pthread_mutex_unlock(&count_mutex); > - } > - > --void update_cpu_usage() > -+int update_cpu_usage() > - { > --#ifdef OLDCPU > -- int mib[2] = { CTL_KERN, KERN_CPTIME }; > -- long used, total; > -- long cp_time[CPUSTATES]; > -- size_t len = sizeof(cp_time); > --#else > - size_t size; > - unsigned int i; > --#endif > - > - /* add check for !info.cpu_usage since that mem is freed on a SIGUSR1 */ > - if ((cpu_setup == 0) || (!info.cpu_usage)) { > - get_cpu_count(); > - cpu_setup = 1; > - } > -- > --#ifdef OLDCPU > -- if (sysctl(mib, 2, &cp_time, &len, NULL, 0) < 0) { > -- NORM_ERR("Cannot get kern.cp_time"); > -- } > -- > -- fresh.load[0] = cp_time[CP_USER]; > -- fresh.load[1] = cp_time[CP_NICE]; > -- 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]; > -- > -- if ((total - oldtotal) != 0) { > -- info.cpu_usage[0] = ((double) (used - oldused)) / > -- (double) (total - oldtotal); > -- } else { > -- info.cpu_usage[0] = 0; > -- } > -- > -- oldused = used; > -- oldtotal = total; > --#else > -+ > - if (info.cpu_count > 1) { > - size = CPUSTATES * sizeof(int64_t); > - for (i = 0; i < info.cpu_count; i++) { > -@@ -426,10 +408,11 @@ void update_cpu_usage() > - oldused[i] = used; > - oldtotal[i] = total; > - } > --#endif > -+ > -+ return 0; > - } > - > --void update_load_average() > -+int update_load_average() > - { > - double v[3]; > - > -@@ -438,6 +421,7 @@ void update_load_average() > - info.loadavg[0] = (float) v[0]; > - info.loadavg[1] = (float) v[1]; > - info.loadavg[2] = (float) v[2]; > -+ return 0; > - } > - > - #define OBSD_MAX_SENSORS 256 > -@@ -606,10 +590,11 @@ char get_freq(char *p_client_buffer, size_t client_buf > - return 1; > - } > - > --void update_top() > -+int update_top() > - { > - kvm_init(); > - proc_find_top(info.cpu, info.memu); > -+ return 0; > - } > - > - #if 0 > -@@ -665,19 +650,11 @@ cleanup: > - } > - #endif > - > --void clear_diskio_stats() > -+int update_diskio() > - { > -+ return 0; /* XXX: implement? hifi: not sure how */ > - } > - > --struct diskio_stat *prepare_diskio_stat(const char *s) > --{ > --} > -- > --void update_diskio() > --{ > -- return; /* XXX: implement? hifi: not sure how */ > --} > -- > - /* While topless is obviously better, top is also not bad. */ > - > - int comparecpu(const void *a, const void *b) > -@@ -706,10 +683,10 @@ int comparemem(const void *a, const void *b) > - return 0; > - } > - > --inline void proc_find_top(struct process **cpu, struct process **mem) > -+static inline void proc_find_top(struct process **cpu, struct process **mem) > - { > -- struct kinfo_proc2 *p; > -- int n_processes; > -+ struct kinfo_proc *p; > -+ int n_processes = 0; > - int i, j = 0; > - struct process *processes; > - int mib[2]; > -@@ -730,9 +707,11 @@ inline void proc_find_top(struct process **cpu, struct > - /* translate bytes into page count */ > - total_pages = usermem / pagesize; > - > -- int max_size = sizeof(struct kinfo_proc2); > -+ int max_size = sizeof(struct kinfo_proc); > - > -- p = kvm_getproc2(kd, KERN_PROC_ALL, 0, max_size, &n_processes); > -+ > -+ pthread_mutex_lock(&kvm_mutex); > -+ p = kvm_getprocs(kd, KERN_PROC_ALL, 0, max_size, &n_processes); > - processes = malloc(n_processes * sizeof(struct process)); > - > - for (i = 0; i < n_processes; i++) { > -@@ -740,9 +719,12 @@ inline void proc_find_top(struct process **cpu, struct > - processes[j].pid = p[i].p_pid; > - processes[j].name = strndup(p[i].p_comm, > text_buffer_size); > - processes[j].amount = 100.0 * p[i].p_pctcpu / FSCALE; > -+ processes[j].vsize = p[i].p_vm_map_size; > -+ processes[j].rss = p[i].p_vm_rssize * PAGE_SIZE; > - j++; > - } > - } > -+ pthread_mutex_unlock(&kvm_mutex); > - > - qsort(processes, j - 1, sizeof(struct process), comparemem); > - for (i = 0; i < 10; i++) { > -@@ -752,6 +734,8 @@ inline void proc_find_top(struct process **cpu, struct > - tmp->pid = processes[i].pid; > - tmp->amount = processes[i].amount; > - tmp->name = strndup(processes[i].name, text_buffer_size); > -+ tmp->vsize = processes[i].vsize; > -+ tmp->rss = processes[i].rss; > - > - ttmp = mem[i]; > - mem[i] = tmp; > -@@ -769,6 +753,8 @@ inline void proc_find_top(struct process **cpu, struct > - tmp->pid = processes[i].pid; > - tmp->amount = processes[i].amount; > - tmp->name = strndup(processes[i].name, text_buffer_size); > -+ tmp->vsize = processes[i].vsize; > -+ tmp->rss = processes[i].rss; > - > - ttmp = cpu[i]; > - cpu[i] = tmp; > -@@ -784,7 +770,6 @@ inline void proc_find_top(struct process **cpu, struct > - free(processes); > - } > - > --#if defined(i386) || defined(__i386__) > - #define APMDEV "/dev/apm" > - #define APM_UNKNOWN 255 > - > -@@ -908,7 +893,6 @@ char *get_apm_battery_time() > - return out; > - } > - > --#endif > - > - /* empty stubs so conky links */ > - void prepare_update() > -@@ -923,8 +907,4 @@ int get_entropy_avail(unsigned int *val) > - int get_entropy_poolsize(unsigned int *val) > - { > - return 1; > --} > -- > --void free_all_processes(void) > --{ > - } > diff --git a/sysutils/conky/patches/patch-src_openbsd_h > b/sysutils/conky/patches/patch-src_openbsd_h > deleted file mode 100644 > index 92449d75a71..00000000000 > --- a/sysutils/conky/patches/patch-src_openbsd_h > +++ /dev/null > @@ -1,29 +0,0 @@ > ---- src/openbsd.h.orig Tue Oct 5 23:29:36 2010 > -+++ src/openbsd.h Tue Apr 19 18:44:53 2011 > -@@ -3,7 +3,12 @@ > - #ifndef OPENBSD_H_ > - #define OPENBSD_H_ > - > -+#ifndef MAXSENSORDEVICES > -+#define MAXSENSORDEVICES 1024 > -+#endif > -+ > - #include "common.h" > -+#include "temphelper.h" > - #include <sys/param.h> > - #include <sys/sysctl.h> > - #include <sys/sensors.h> > -@@ -16,11 +21,11 @@ void print_obsd_sensors_volt(struct text_object *, cha > - void get_obsd_vendor(char *buf, size_t client_buffer_size); > - void get_obsd_product(char *buf, size_t client_buffer_size); > - > --#if defined(i386) || defined(__i386__) > - typedef struct apm_power_info *apm_info_t; > --#endif > - > - int get_entropy_avail(unsigned int *); > - int get_entropy_poolsize(unsigned int *); > -+ > -+static int sensor_device; > - > - #endif /*OPENBSD_H_*/ > diff --git a/sysutils/conky/patches/patch-src_read_tcp_c > b/sysutils/conky/patches/patch-src_read_tcp_c > deleted file mode 100644 > index c4008f19f26..00000000000 > --- a/sysutils/conky/patches/patch-src_read_tcp_c > +++ /dev/null > @@ -1,10 +0,0 @@ > ---- src/read_tcp.c.orig Sat Sep 10 12:27:11 2016 > -+++ src/read_tcp.c Sat Sep 10 12:27:20 2016 > -@@ -34,6 +34,7 @@ > - #include <netdb.h> > - #include <stdlib.h> > - #include <string.h> > -+#include <sys/select.h> /* fd_set */ > - #include <unistd.h> > - #include <netinet/in.h> > - > diff --git a/sysutils/conky/patches/patch-src_text_object_h > b/sysutils/conky/patches/patch-src_text_object_h > deleted file mode 100644 > index 044b8434973..00000000000 > --- a/sysutils/conky/patches/patch-src_text_object_h > +++ /dev/null > @@ -1,20 +0,0 @@ > ---- src/text_object.h.orig Tue Oct 5 23:29:36 2010 > -+++ src/text_object.h Mon Jul 18 14:05:17 2011 > -@@ -166,7 +166,7 @@ enum text_object_type { > - OBJ_wireless_link_qual_perc, > - OBJ_wireless_link_bar, > - #endif /* __linux__ */ > --#if defined(__FreeBSD__) || defined(__linux__) > -+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) > - OBJ_if_up, > - #endif > - OBJ_if_empty, > -@@ -311,7 +311,7 @@ enum text_object_type { > - OBJ_pop3_unseen, > - OBJ_pop3_used, > - #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \ > -- || defined(__OpenBSD__)) && (defined(i386) || defined(__i386__)) > -+ || defined(__OpenBSD__)) > - OBJ_apm_adapter, > - OBJ_apm_battery_time, > - OBJ_apm_battery_life, > diff --git a/sysutils/conky/pkg/PLIST b/sysutils/conky/pkg/PLIST > index 186bca4018d..993f97e186e 100644 > --- a/sysutils/conky/pkg/PLIST > +++ b/sysutils/conky/pkg/PLIST > @@ -1,15 +1,13 @@ > +@pkgpath ${BASE_PKGPATH},xmms2 > @pkgpath ${BASE_PKGPATH},imlib2 > @pkgpath ${BASE_PKGPATH},audacious > @bin bin/conky > -@man man/man1/conky.1 > -share/doc/conky/ > -share/doc/conky/README > -share/doc/conky/config_settings.html > -share/doc/conky/docs.html > -share/doc/conky/lua.html > -share/doc/conky/variables.html > +@mandir share/man/ > +share/man/man1/ > +@man share/man/man1/conky.1 > share/examples/conky/ > @sample ${SYSCONFDIR}/conky/ > share/examples/conky/conky.conf > @sample ${SYSCONFDIR}/conky/conky.conf > share/examples/conky/conky_no_x11.conf > +share/examples/conky/convert.lua >