Date: Wed, 22 Sep 2010 08:10:08 GMT From: Nikos Ntarmos <ntarmos@cs.uoi.gr> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/150233: conky 1.8 broken (sysutils/conky) Message-ID: <201009220810.o8M8A8cu090084@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/150233; it has been noted by GNATS. From: Nikos Ntarmos <ntarmos@cs.uoi.gr> To: bug-followup@FreeBSD.ORG Cc: Subject: Re: ports/150233: conky 1.8 broken (sysutils/conky) Date: Wed, 22 Sep 2010 10:40:52 +0300 --1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I've yet to find a 64-bit box to examine what's wrong with conky. For the time being, I'm backing out some of the patches incorporated in the previous version and attaching a shar archive of the new port. I can at least testify that this version works for me on FreeBSD/i386. \n\n --1yeeQ81UyVL57Vl7 Content-Type: application/x-shar Content-Disposition: attachment; filename="conky.shar" Content-Transfer-Encoding: quoted-printable # This is a shell archive. Save it in a file, remove anything before=0A# t= his line, and then unpack it by entering "sh file". Note, it may=0A# creat= e directories; files and directories will be owned by you and=0A# have defa= ult permissions.=0A#=0A# This archive contains:=0A#=0A# conky=0A# conky/Mak= efile=0A# conky/files=0A# conky/files/patch-src-conky.c=0A# conky/files/pat= ch-src-mixer.c=0A# conky/files/patch-configure=0A# conky/files/patch-src-co= mmon.c=0A# conky/files/patch-src-i8k.c=0A# conky/files/patch-src-diskio.c= =0A# conky/files/patch-src-conky.h=0A# conky/files/patch-src-mail.c=0A# con= ky/files/patch-src-bmpx.c=0A# conky/files/patch-src-top.c=0A# conky/files/p= atch-src-logging.h=0A# conky/files/patch-src-bmpx.h=0A# conky/files/patch-s= rc-rss.c=0A# conky/files/patch-lua-cairo.pkg=0A# conky/files/patch-src-Make= file.in=0A# conky/files/patch-src-core.c=0A# conky/files/patch-src-freebsd.= c=0A# conky/pkg-descr=0A# conky/distinfo=0A#=0Aecho c - conky=0Amkdir -p co= nky > /dev/null 2>&1=0Aecho x - conky/Makefile=0Ased 's/^X//' >conky/Makefi= le << 'c6f03d61758ca6e484be3d23647891ea'=0AX# New ports collection makefile= for: conky=0AX# Date created: 2005-08-27=0AX# Whom: Roman Bogorodsk= iy <novel@FreeBSD.org>=0AX#=0AX# $FreeBSD: ports/sysutils/conky/Makefile,v = 1.51 2010/01/28 01:59:34 amdmi3 Exp $=0AX#=0AX=0AXPORTNAME=3D conky=0AXPORT= VERSION=3D 1.8.0=0AXPORTREVISION=3D 1=0AXCATEGORIES=3D sysutils=0AXMASTER_S= ITES=3D SF=0AX=0AXMAINTAINER=3D ntarmos@cs.uoi.gr=0AXCOMMENT=3D An advanced= , highly configurable system monitor for X=0AX=0AXCONFLICTS?=3D conky-aweso= me-[0-9]*=0AXSLAVEDIRS=3D sysutils/conky-awesome=0AX=0AXUSE_ICONV=3D yes=0A= XUSE_BZIP2=3D yes=0AXGNU_CONFIGURE=3D yes=0AXUSE_XORG?=3D x11 xext xdamage= =0AXUSE_GNOME?=3D pkgconfig=0AXUSE_ICONV=3D yes=0AXUSE_GMAKE=3D yes=0AXCONF= IGURE_ARGS+=3D --disable-portmon \=0AX --disable-hddtemp=0AXCONFIGURE_ENV= +=3D CPPFLAGS=3D"${CPPFLAGS} -I${LOCALBASE}/include" \=0AX LDFLAGS=3D"${LD= FLAGS} -L${LOCALBASE}/lib"=0AX=0AXMAN1=3D conky.1=0AXPLIST_FILES=3D bin/co= nky=0AXPORTEXAMPLES=3D conkyrc.sample=0AXPORTDOCS=3D README AUTHORS ChangeL= og TODO NEWS \=0AX docs.html variables.html config_settings.html=0AX=0AXOP= TIONS+=3D APCUPSD "Enable APCUPSD support" Off \=0AX AUDACIOUS "Enable Aud= acious support" Off \=0AX BMPX "Enable BMPX support" Off \=0AX MPD "Enabl= e MPD support" Off \=0AX NCURSES "Enable ncurses support" Off \=0AX RSS "= Enable RSS support" Off \=0AX METAR "Enable METAR Weather support" Off \= =0AX XOAP "Enable XOAP Weather support" Off \=0AX XMMS2 "Enable XMMS2 sup= port" Off=0AX=0AX.if !empty(USE_XORG)=0AXOPTIONS+=3D DOUBLE_BUFFER "Enable = double buffering" On \=0AX IMLIB2 "Enable Imlib2 support" Off \=0AX LUA "= Enable Lua support" Off \=0AX LUA_CAIRO "Enable Lua-Cairo binding (impl. L= ua)" Off \=0AX LUA_IMLIB2 "Enable Lua-Imlib2 binding (impl. Lua/Imlib2)" O= ff \=0AX XFT "Enable Xft support" Off=0AX.else=0AXOPTIONS+=3D LUA "Enable = Lua support" Off=0AX.endif=0AX=0AX.include <bsd.port.pre.mk>=0AX=0AX.if emp= ty(USE_XORG)=0AXWITHOUT_DOUBLE_BUFFER=3D On=0AXCONFIGURE_ARGS+=3D --disable= -x11 --disable-own-window=0AX.undef WITH_IMLIB2=0AX.undef WITH_LUA_CAIRO=0A= X.undef WITH_LUA_IMLIB2=0AX.undef WITH_XFT=0AX.endif=0AX=0AX.if defined(WIT= H_APCUPSD)=0AXRUN_DEPENDS+=3D ${LOCALBASE}/sbin/apcupsd:${PORTSDIR}/sysuti= ls/apcupsd=0AXCONFIGURE_ARGS+=3D --enable-apcupsd=0AX.else=0AXCONFIGURE_ARG= S+=3D --disable-apcupsd=0AX.endif=0AX=0AX.if defined(WITH_AUDACIOUS)=0AXLIB= _DEPENDS+=3D audclient.2:${PORTSDIR}/multimedia/audacious=0AXCONFIGURE_ARG= S+=3D --enable-audacious=0AX.else=0AXCONFIGURE_ARGS+=3D --disable-audacious= =0AX.endif=0AX=0AX.if defined(WITH_BMPX)=0AXBUILD_DEPENDS+=3D beep-media-p= layer-2:${PORTSDIR}/multimedia/bmpx=0AXRUN_DEPENDS+=3D beep-media-player-2= :${PORTSDIR}/multimedia/bmpx=0AXLIB_DEPENDS+=3D dbus-1.3:${PORTSDIR}/devel= /dbus=0AXCONFIGURE_ARGS+=3D --enable-bmpx=0AX.else=0AXCONFIGURE_ARGS+=3D --= disable-bmpx=0AX.endif=0AX=0AX.if defined(WITH_LUA) || defined(WITH_LUA_CAI= RO) || defined(WITH_LUA_IMLIB2)=0AXUSE_LUA=3D 5.1+=0AXCONFIGURE_ARGS+=3D -= -enable-lua=0AX.else=0AXCONFIGURE_ARGS+=3D --disable-lua=0AX.endif=0AX=0AX.= if defined(WITH_LUA_CAIRO)=0AXLIB_DEPENDS+=3D cairo.2:${PORTSDIR}/graphics= /cairo=0AXBUILD_DEPENDS+=3D tolua++-5.1:${PORTSDIR}/lang/tolua++=0AXRUN_DE= PENDS+=3D tolua++-5.1:${PORTSDIR}/lang/tolua++=0AXCONFIGURE_ARGS+=3D --ena= ble-lua-cairo=0AX.endif=0AX=0AX.if defined(WITH_IMLIB2) || defined(WITH_LUA= _IMLIB2)=0AXLIB_DEPENDS+=3D Imlib2.5:${PORTSDIR}/graphics/imlib2=0AXCONFIG= URE_ARGS+=3D --enable-imlib2=0AX.else=0AXCONFIGURE_ARGS+=3D --disable-imlib= 2=0AX.endif=0AX=0AX.if defined(WITH_LUA_IMLIB2)=0AXBUILD_DEPENDS+=3D tolua= ++-5.1:${PORTSDIR}/lang/tolua++=0AXRUN_DEPENDS+=3D tolua++-5.1:${PORTSDIR}= /lang/tolua++=0AXCONFIGURE_ARGS+=3D --enable-lua-imlib2=0AX.endif=0AX=0AX.i= f defined(WITH_NCURSES)=0AXCONFIGURE_ARGS+=3D --enable-ncurses=0AX.else=0AX= CONFIGURE_ARGS+=3D --disable-ncurses=0AX.endif=0AX=0AX.if defined(WITH_XFT)= =0AXLIB_DEPENDS+=3D Xft.2:${PORTSDIR}/x11-fonts/libXft=0AXCONFIGURE_ARGS+= =3D --enable-xft=0AX.else=0AXCONFIGURE_ARGS+=3D --disable-xft=0AX.endif=0AX= =0AX.if defined(WITHOUT_MPD)=0AXCONFIGURE_ARGS+=3D --disable-mpd=0AX.endif= =0AX=0AX.if defined(WITH_RSS)=0AXLIB_DEPENDS+=3D curl.6:${PORTSDIR}/ftp/cu= rl \=0AX xml2.5:${PORTSDIR}/textproc/libxml2=0AXCONFIGURE_ARGS+=3D --enab= le-rss=0AXUSE_GNOME+=3D glib20=0AX.endif=0AX=0AX.if defined(WITH_METAR)=0A= XLIB_DEPENDS+=3D curl.6:${PORTSDIR}/ftp/curl=0AXCONFIGURE_ARGS+=3D --enabl= e-weather-metar=0AX.endif=0AX=0AX.if defined(WITH_XOAP)=0AXLIB_DEPENDS+=3D = curl.6:${PORTSDIR}/ftp/curl \=0AX xml2.5:${PORTSDIR}/textproc/libxml2=0A= XCONFIGURE_ARGS+=3D --enable-weather-xoap=0AX.endif=0AX=0AX.if defined(WITH= _XMMS2)=0AXLIB_DEPENDS+=3D xmmsclient.5:${PORTSDIR}/audio/xmms2=0AXCONFIGU= RE_ARGS+=3D --enable-xmms2=0AX.else=0AXCONFIGURE_ARGS+=3D --disable-xmms2= =0AX.endif=0AX=0AX.if defined(WITHOUT_DOUBLE_BUFFER)=0AXCONFIGURE_ARGS+=3D = --disable-double-buffer=0AX.endif=0AX=0AXpost-patch:=0AX @${REINPLACE_CMD} = -e 's,lua5\.1,lua-5.1,g' \=0AX ${WRKSRC}/configure=0AX @${REINPLACE_CMD} -= e 's,imlib_context_disconnect_display();,,g' \=0AX ${WRKSRC}/src/imlib2.c= =0AX=0AXdo-install:=0AX ${INSTALL_PROGRAM} ${WRKSRC}/src/conky ${PREFIX}/bi= n=0AX ${INSTALL_MAN} ${WRKSRC}/doc/conky.1 ${PREFIX}/man/man1=0AX=0AXpost-i= nstall:=0AX.if !defined(NOPORTEXAMPLES)=0AX @${MKDIR} ${EXAMPLESDIR}=0AX. i= f !empty(USE_XORG)=0AX @${INSTALL_DATA} ${WRKSRC}/data/conky.conf ${EXAMPLE= SDIR}/conkyrc.sample=0AX. else=0AX @${INSTALL_DATA} ${WRKSRC}/data/conky_no= _x11.conf ${EXAMPLESDIR}/conkyrc.sample=0AX. endif=0AX.endif=0AX=0AX.if !de= fined(NOPORTDOCS)=0AX @${MKDIR} ${DOCSDIR}=0AX.for i in README AUTHORS Chan= geLog TODO NEWS=0AX ${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}=0AX.endfor=0A= X.for i in docs.html variables.html config_settings.html=0AX ${INSTALL_DATA= } ${WRKSRC}/doc/${i} ${DOCSDIR}=0AX.endfor=0AX.endif=0AX=0AX.include <bsd.p= ort.post.mk>=0Ac6f03d61758ca6e484be3d23647891ea=0Aecho c - conky/files=0Amk= dir -p conky/files > /dev/null 2>&1=0Aecho x - conky/files/patch-src-conky.= c=0Ased 's/^X//' >conky/files/patch-src-conky.c << 'c59c590f71d1b0c018c091a= f48aee345'=0AX--- src/conky.c.orig=0AX+++ src/conky.c=0AX@@ -166,9 +166,7 @= @=0AX #ifdef IOSTATS=0AX int top_io;=0AX #endif=0AX-#ifdef __linux__=0AX in= t top_running;=0AX-#endif=0AX int output_methods;=0AX static int extra_newl= ine;=0AX enum x_initialiser_state x_initialised =3D NO;=0AX@@ -269,9 +267,6= @@=0AX #ifdef IMLIB2=0AX " * Imlib2\n"=0AX #endif /* IMLIB2 */=0AX-#= ifdef MIXER_IS_ALSA=0AX- " * ALSA mixer support\n"=0AX-#endif /* MIXER= _IS_ALSA */=0AX #ifdef APCUPSD=0AX " * apcupsd\n"=0AX #endif /* APCUP= SD */=0AX@@ -463,7 +458,7 @@=0AX }=0AX fclose(where);=0AX } else {=0AX= - NORM_ERR("Could not open the file");=0AX+ NORM_ERR("Could not open the = file '%s'", f);=0AX }=0AX return ret;=0AX }=0AX@@ -512,6 +507,7 @@=0AX c= har *ps, *pe;=0AX int special_index =3D 0; /* specials index */=0AX =0AX+ = if(! b) return;=0AX for (ps =3D b, pe =3D b; *pe; pe++) {=0AX if (*pe = =3D=3D '\n') {=0AX *pe =3D '\0';=0AX@@ -765,6 +761,8 @@=0AX buff_in[0] = =3D 0;=0AX #endif /* HAVE_ICONV */=0AX =0AX+ if(! p) return;=0AX+=0AX p[0]= =3D 0;=0AX obj =3D root.next;=0AX while (obj && p_max_size > 0) {=0AX@@ = -1330,7 +1328,7 @@=0AX DO_JUMP;=0AX } else if (spc) {=0AX *sp= c =3D '\0';=0AX- if (check_contains(obj->data.s, spc + 1))=0AX+ if = (!check_contains(obj->data.s, spc + 1))=0AX DO_JUMP;=0AX *spc = =3D ' ';=0AX }=0AX@@ -2062,9 +2069,11 @@=0AX OBJ(xmms2_percent) {=0A= X snprintf(p, p_max_size, "%2.0f", cur->xmms2.progress * 100);=0AX }= =0AX+#ifdef X11=0AX OBJ(xmms2_bar) {=0AX new_bar(obj, p, p_max_size,= (int) (cur->xmms2.progress * 255.0f));=0AX }=0AX+#endif /* X11 */=0AX = OBJ(xmms2_playlist) {=0AX snprintf(p, p_max_size, "%s", cur->xmms2.pl= aylist);=0AX }=0AX@@ -2140,6 +2149,7 @@=0AX snprintf(p, p_max_size, = "%s",=0AX cur->audacious.items[AUDACIOUS_MAIN_VOLUME]);=0AX }=0AX+#= ifdef X11=0AX OBJ(audacious_bar) {=0AX double progress;=0AX =0AX@@ -= 2148,6 +2158,7 @@=0AX atof(cur->audacious.items[AUDACIOUS_LENGTH_SECON= DS]);=0AX new_bar(obj, p, p_max_size, (int) (progress * 255.0f));=0AX = }=0AX+#endif /* X11 */=0AX #endif /* AUDACIOUS */=0AX =0AX #ifdef BMPX=0A= X@@ -2173,7 +2184,6 @@=0AX /* we have four different types of top (top, = top_mem,=0AX * top_time and top_io). To avoid having almost-same code f= our=0AX * times, we have this special handler. */=0AX-#ifdef __linux__= =0AX break;=0AX case OBJ_top:=0AX case OBJ_top_mem:=0AX@@ -2182,7 = +2192,6 @@=0AX case OBJ_top_io:=0AX #endif=0AX print_top(obj, p, p_m= ax_size);=0AX-#endif /* __linux__ */=0AX OBJ(tail) {=0AX print_tailh= ead("tail", obj, p, p_max_size);=0AX }=0AX@@ -2375,13 +2384,7 @@=0AX #if= def HAVE_ICONV=0AX iconv_convert(&a, buff_in, p, p_max_size);=0AX #endif= /* HAVE_ICONV */=0AX- if (obj->type !=3D OBJ_text && obj->type !=3D OBJ_= execp && obj->type !=3D OBJ_execpi=0AX-#ifdef HAVE_LUA=0AX- && obj->typ= e !=3D OBJ_lua && obj->type !=3D OBJ_lua_parse=0AX-#endif /* HAVE_LUA */=0A= X- ) {=0AX- substitute_newlines(p, a - 2);=0AX- }=0AX+ substitut= e_newlines(p, a - 2);=0AX p +=3D a;=0AX p_max_size -=3D a;=0AX (*p= ) =3D 0;=0AX@@ -3119,36 +3122,49 @@=0AX if (seconds !=3D 0) {=0AX = timeunits =3D seconds / 86400; seconds %=3D 86400;=0AX if (timeu= nits > 0) {=0AX- asprintf(&tmp_day_str, "%dd", timeunits);=0AX+ = if (asprintf(&tmp_day_str, "%dd", timeunits) < 0) {=0AX+ tmp_day= _str =3D 0;=0AX+ }=0AX } else {=0AX tmp_day_str =3D s= trdup("");=0AX }=0AX timeunits =3D seconds / 3600; seconds %= =3D 3600;=0AX if (timeunits > 0) {=0AX- asprintf(&tmp_hour_st= r, "%dh", timeunits);=0AX+ if (asprintf(&tmp_hour_str, "%dh", timeun= its) < 0) {=0AX+ tmp_day_str =3D 0;=0AX+ }=0AX } else= {=0AX tmp_hour_str =3D strdup("");=0AX }=0AX timeuni= ts =3D seconds / 60; seconds %=3D 60;=0AX if (timeunits > 0) {=0AX- = asprintf(&tmp_min_str, "%dm", timeunits);=0AX+ if (asprintf(&= tmp_min_str, "%dm", timeunits) < 0) {=0AX+ tmp_min_str =3D 0;=0AX+ = }=0AX } else {=0AX tmp_min_str =3D strdup("");=0AX = }=0AX if (seconds > 0) {=0AX- asprintf(&tmp_sec_str, "%d= s", seconds);=0AX+ if (asprintf(&tmp_sec_str, "%ds", seconds) < 0) {= =0AX+ tmp_sec_str =3D 0;=0AX+ }=0AX } else {=0AX = tmp_sec_str =3D strdup("");=0AX }=0AX- asprintf(&tmp_str, = "%s%s%s%s", tmp_day_str, tmp_hour_str, tmp_min_str, tmp_sec_str);=0AX- = free(tmp_day_str); free(tmp_hour_str); free(tmp_min_str); free(tmp_sec_st= r);=0AX+ if (asprintf(&tmp_str, "%s%s%s%s", tmp_day_str,=0AX+ = tmp_hour_str, tmp_min_str, tmp_sec_str) < 0) {=0AX+ tmp_str =3D 0;= =0AX+ }=0AX+#define FREE(a) if ((a)) free((a));=0AX+ FREE(tmp_d= ay_str); FREE(tmp_hour_str); FREE(tmp_min_str); FREE(tmp_sec_str);=0AX = } else {=0AX- asprintf(&tmp_str, "Range not possible"); // should n= ever happen, but better safe then sorry=0AX+ tmp_str =3D strdup("Rang= e not possible"); /* should never happen, but better safe then sorry */=0AX= }=0AX cur_x +=3D (w / 2) - (font_ascent() * (strlen(tmp_str) /= 2));=0AX cur_y +=3D font_h / 2;=0AX draw_string(tmp_str);=0AX-= free(tmp_str);=0AX+ FREE(tmp_str);=0AX+#undef FREE=0AX cur= _x =3D tmp_x;=0AX cur_y =3D tmp_y;=0AX }=0AX@@ -3974,11 +3990,39= @@=0AX initialisation(argc_copy, argv_copy);=0AX }=0AX =0AX-void clean_up= (void *memtofree1, void* memtofree2)=0AX-{=0AX- int i;=0AX+#ifdef X11=0AX+v= oid clean_up_x11() {=0AX+ if(window_created =3D=3D 1) {=0AX+ XClearArea(di= splay, window.window, text_start_x - window.border_inner_margin - window.bo= rder_outer_margin - window.border_width,=0AX+ text_start_y - window.borde= r_inner_margin - window.border_outer_margin - window.border_width,=0AX+ t= ext_width + window.border_inner_margin * 2 + window.border_outer_margin * 2= + window.border_width * 2,=0AX+ text_height + window.border_inner_margin= * 2 + window.border_outer_margin * 2 + window.border_width * 2, 0);=0AX+ }= =0AX+ destroy_window();=0AX+ free_fonts();=0AX+ fonts =3D NULL;=0AX+ if(x11= _stuff.region) {=0AX+ XDestroyRegion(x11_stuff.region);=0AX+ x11_stuff.re= gion =3D NULL;=0AX+ }=0AX+ if(display) {=0AX+ XCloseDisplay(display);=0AX+= display =3D NULL;=0AX+ }=0AX+ if(info.x11.desktop.all_names) {=0AX+ free= (info.x11.desktop.all_names);=0AX+ info.x11.desktop.all_names =3D NULL;=0A= X+ }=0AX+ if (info.x11.desktop.name) {=0AX+ free(info.x11.desktop.name);= =0AX+ info.x11.desktop.name =3D NULL;=0AX+ }=0AX+ x_initialised =3D NO;=0A= X+}=0AX+#endif=0AX =0AX- free_update_callbacks();=0AX+void clean_up_without= _threads(void *memtofree1, void* memtofree2) {=0AX+ int i;=0AX =0AX #ifdef = NCURSES=0AX if(output_methods & TO_NCURSES) {=0AX@@ -4001,29 +4045,7 @@=0A= X }=0AX #ifdef X11=0AX if (x_initialised =3D=3D YES) {=0AX- if(window_cr= eated =3D=3D 1) {=0AX- XClearArea(display, window.window, text_start_x - = window.border_inner_margin - window.border_outer_margin - window.border_wid= th,=0AX- text_start_y - window.border_inner_margin - window.border_outer= _margin - window.border_width,=0AX- text_width + window.border_inner_mar= gin * 2 + window.border_outer_margin * 2 + window.border_width * 2,=0AX- = text_height + window.border_inner_margin * 2 + window.border_outer_margin = * 2 + window.border_width * 2, 0);=0AX- }=0AX- destroy_window();=0AX- fr= ee_fonts();=0AX- if(x11_stuff.region) {=0AX- XDestroyRegion(x11_stuff.re= gion);=0AX- x11_stuff.region =3D NULL;=0AX- }=0AX- XCloseDisplay(displa= y);=0AX- display =3D NULL;=0AX- if(info.x11.desktop.all_names) {=0AX- f= ree(info.x11.desktop.all_names);=0AX- info.x11.desktop.all_names =3D NULL= ;=0AX- }=0AX- if (info.x11.desktop.name) {=0AX- free(info.x11.desktop.n= ame);=0AX- info.x11.desktop.name =3D NULL;=0AX- }=0AX- x_initialised = =3D NO;=0AX+ clean_up_x11();=0AX }else{=0AX free(fonts); //in set_defau= lt_configurations a font is set but not loaded=0AX font_count =3D -1;=0AX= @@ -4097,6 +4119,12 @@=0AX }=0AX }=0AX =0AX+void clean_up(void *memtofree1= , void* memtofree2)=0AX+{=0AX+ free_update_callbacks();=0AX+ clean_up_witho= ut_threads(memtofree1, memtofree2);=0AX+}=0AX+=0AX static int string_to_boo= l(const char *s)=0AX {=0AX if (!s) {=0AX@@ -4200,9 +4228,7 @@=0AX #ifdef I= OSTATS=0AX top_io =3D 0;=0AX #endif=0AX-#ifdef __linux__=0AX top_running = =3D 0;=0AX-#endif=0AX #ifdef MPD=0AX mpd_env_host =3D getenv("MPD_HOST");= =0AX mpd_env_port =3D getenv("MPD_PORT");=0AX@@ -4252,6 +4278,9 @@=0AX ou= tput_methods =3D TO_STDOUT;=0AX #endif=0AX #ifdef X11=0AX+#ifdef BUILD_XFT= =0AX+ use_xft =3D 0;=0AX+#endif=0AX show_graph_scale =3D 0;=0AX show_grap= h_range =3D 0;=0AX draw_shades =3D 1;=0AX@@ -4552,15 +4581,12 @@=0AX =0AX = #ifdef X11=0AX CONF2("out_to_x") {=0AX- /* don't listen if X is already= initialised or=0AX- * if we already know we don't want it */=0AX- if(= x_initialised !=3D YES) {=0AX- if (string_to_bool(value)) {=0AX- out= put_methods &=3D TO_X;=0AX- } else {=0AX- output_methods &=3D ~TO_X;= =0AX- x_initialised =3D NEVER;=0AX- }=0AX+ if (string_to_bool(valu= e)) {=0AX+ output_methods &=3D TO_X;=0AX+ } else {=0AX+ clean_up_x1= 1();=0AX+ output_methods &=3D ~TO_X;=0AX+ x_initialised =3D NEVER;=0A= X }=0AX }=0AX CONF("display") {=0AX@@ -4573,7 +4599,7 @@=0AX }=0A= X }=0AX CONF("alignment") {=0AX- setalignment(&text_alignment, window= =2Etype, value, f, line, true);=0AX+ setalignment(&text_alignment, window= =2Etype, value, f, line, 1);=0AX }=0AX CONF("background") {=0AX fork= _to_background =3D string_to_bool(value);=0AX@@ -4609,7 +4635,7 @@=0AX CO= NF("border_width") {=0AX if (value) {=0AX window.border_width =3D st= rtol(value, 0, 0);=0AX- if (window.border_width < 0) window.border_width= =3D 0;=0AX+ if (window.border_width < 1) window.border_width =3D 1;=0AX= } else {=0AX CONF_ERR;=0AX }=0AX@@ -5696,7 +5722,7 @@=0AX se= t_first_font(optarg);=0AX break;=0AX case 'a':=0AX- setalignment(= &text_alignment, window.type, optarg, NULL, 0, false);=0AX+ setalignment= (&text_alignment, window.type, optarg, NULL, 0, 0);=0AX break;=0AX =0AX= #ifdef OWN_WINDOW=0AX@@ -5895,7 +5921,9 @@=0AX current_config =3D strn= dup(optarg, max_user_text);=0AX break;=0AX case 'q':=0AX- freopen= ("/dev/null", "w", stderr);=0AX+ if (!freopen("/dev/null", "w", stderr))= {=0AX+ NORM_ERR("unable to redirect stderr to /dev/null");=0AX+ }= =0AX break;=0AX case 'h':=0AX print_help(argv[0]);=0AX@@ -5929,7= +5957,13 @@=0AX #endif /* XOAP */=0AX =0AX #ifdef HAVE_SYS_INOTIFY_H=0AX- = inotify_fd =3D inotify_init1(IN_NONBLOCK);=0AX+ inotify_fd =3D inotify_init= ();=0AX+ if(inotify_fd !=3D -1) {=0AX+ int fl;=0AX+=0AX+ fl =3D fcntl(ino= tify_fd, F_GETFL);=0AX+ fcntl(inotify_fd, F_SETFL, fl | O_NONBLOCK);=0AX+ = }=0AX #endif /* HAVE_SYS_INOTIFY_H */=0AX =0AX initialisation(argc, argv);= =0Ac59c590f71d1b0c018c091af48aee345=0Aecho x - conky/files/patch-src-mixer.= c=0Ased 's/^X//' >conky/files/patch-src-mixer.c << '34de5c2a761905d37e86bab= a46208622'=0AX--- src/mixer.c.orig=0AX+++ src/mixer.c=0AX@@ -281,6 +281,7 @= @ int mixer_is_mute(int i)=0AX =0AX #define mixer_to_255(i, x) x=0AX #endif= /* MIXER_IS_ALSA */=0AX+#define mixer_to_255(i, x) x * 2.55=0AX =0AX void = parse_mixer_arg(struct text_object *obj, const char *arg)=0AX {=0A34de5c2a7= 61905d37e86baba46208622=0Aecho x - conky/files/patch-configure=0Ased 's/^X/= /' >conky/files/patch-configure << '498e2a3501cfe7ff2362b87148767ae4'=0AX--= - configure.orig=0AX+++ configure=0AX@@ -11233,12 +11233,12 @@=0AX = pkg_cv_Audacious_CFLAGS=3D"$Audacious_CFLAGS"=0AX else=0AX if t= est -n "$PKG_CONFIG" && \=0AX- { { $as_echo "$as_me:${as_lineno-$LINENO}= : \$PKG_CONFIG --exists --print-errors \"audacious >=3D 1.4.0 dbus-glib-1 g= lib-2.0 gobject-2.0\""; } >&5=0AX- ($PKG_CONFIG --exists --print-errors "a= udacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0") 2>&5=0AX+ { { $as= _echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"= audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0\""; } >&5= =0AX+ ($PKG_CONFIG --exists --print-errors "audacious >=3D 1.4.0 audclient= dbus-glib-1 glib-2.0 gobject-2.0") 2>&5=0AX ac_status=3D$?=0AX $as_ech= o "$as_me:${as_lineno-$LINENO}: \$? =3D $ac_status" >&5=0AX test $ac_stat= us =3D 0; }; then=0AX- pkg_cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "au= dacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0" 2>/dev/null`=0AX+ pkg= _cv_Audacious_CFLAGS=3D`$PKG_CONFIG --cflags "audacious >=3D 1.4.0 audclien= t dbus-glib-1 glib-2.0 gobject-2.0" 2>/dev/null`=0AX else=0AX pkg_failed= =3Dyes=0AX fi=0AX@@ -11251,12 +11251,12 @@=0AX pkg_cv_Audacious_LIB= S=3D"$Audacious_LIBS"=0AX else=0AX if test -n "$PKG_CONFIG" && = \=0AX- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists = --print-errors \"audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0\""; = } >&5=0AX- ($PKG_CONFIG --exists --print-errors "audacious >=3D 1.4.0 dbus= -glib-1 glib-2.0 gobject-2.0") 2>&5=0AX+ { { $as_echo "$as_me:${as_linen= o-$LINENO}: \$PKG_CONFIG --exists --print-errors \"audacious >=3D 1.4.0 aud= client dbus-glib-1 glib-2.0 gobject-2.0\""; } >&5=0AX+ ($PKG_CONFIG --exis= ts --print-errors "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobj= ect-2.0") 2>&5=0AX ac_status=3D$?=0AX $as_echo "$as_me:${as_lineno-$LIN= ENO}: \$? =3D $ac_status" >&5=0AX test $ac_status =3D 0; }; then=0AX- pk= g_cv_Audacious_LIBS=3D`$PKG_CONFIG --libs "audacious >=3D 1.4.0 dbus-glib-1= glib-2.0 gobject-2.0" 2>/dev/null`=0AX+ pkg_cv_Audacious_LIBS=3D`$PKG_CON= FIG --libs "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0= " 2>/dev/null`=0AX else=0AX pkg_failed=3Dyes=0AX fi=0AX@@ -11275,14 +1127= 5,14 @@=0AX _pkg_short_errors_supported=3Dno=0AX fi=0AX if = test $_pkg_short_errors_supported =3D yes; then=0AX- Audacious_PKG_= ERRORS=3D`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "aud= acious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0"`=0AX+ Audacious= _PKG_ERRORS=3D`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors= "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0"`=0AX = else=0AX- Audacious_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdo= ut --print-errors "audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0"`= =0AX+ Audacious_PKG_ERRORS=3D`$PKG_CONFIG --errors-to-stdout --prin= t-errors "audacious >=3D 1.4.0 audclient dbus-glib-1 glib-2.0 gobject-2.0"`= =0AX fi=0AX # Put the nasty error message in config.log where it b= elongs=0AX echo "$Audacious_PKG_ERRORS" >&5=0AX =0AX- as_fn_error "Package= requirements (audacious >=3D 1.4.0 dbus-glib-1 glib-2.0 gobject-2.0) were = not met:=0AX+ as_fn_error "Package requirements (audacious >=3D 1.4.0 audcl= ient dbus-glib-1 glib-2.0 gobject-2.0) were not met:=0AX =0AX $Audacious_PK= G_ERRORS=0AX =0AX@@ -11645,7 +11645,7 @@=0AX =0AX =0AX if test x$want_apcup= sd =3D xyes; then=0AX- if test x"$uname" !=3D xLinux; then=0AX+ if test x= "$uname" !=3D xLinux -a x"$uname" !=3D xFreeBSD; then=0AX { $as_echo = "$as_me:${as_lineno-$LINENO}: apcupsd not supported on $uname... disabling"= >&5=0AX $as_echo "$as_me: apcupsd not supported on $uname... disabling" >&= 6;}=0AX want_apcupsd=3D"not supported on $uname"=0AX@@ -11675,7 +1167= 5,7 @@=0AX =0AX =0AX if test x$want_iostats =3D xyes; then=0AX- if test x"= $uname" !=3D xLinux; then=0AX+ if test x"$uname" !=3D xLinux -a x"$uname" = !=3D xFreeBSD; then=0AX { $as_echo "$as_me:${as_lineno-$LINENO}: iost= ats not supported on $uname... disabling" >&5=0AX $as_echo "$as_me: iostats= not supported on $uname... disabling" >&6;}=0AX want_iostats=3D"not = supported on $uname"=0AX@@ -15950,11 +15950,6 @@=0AX fi=0AX =0AX fi=0AX-if = test x$want_alsa =3D xyes; then=0AX-=0AX-$as_echo "#define MIXER_IS_ALSA 1"= >>confdefs.h=0AX-=0AX-fi=0AX =0AX for ac_header in signal.h unistd.h sys/u= tsname.h sys/stat.h linux/soundcard.h alsa/asoundlib.h dirent.h mcheck.h \= =0AX sys/statfs.h sys/param.h pthread.h semaphore.h assert.h errno.h = time.h=0AX@@ -18905,6 +18900,7 @@=0AX ALSA mixer: $want_alsa=0AX = apcupsd: $want_apcupsd=0AX I/O stats: $want_iostats=0AX+ = ncurses: $want_ncurses=0AX =0AX * Lua ($want_lua) bindings:=0AX = Cairo: $want_lua_cairo=0A498e2a3501cfe7ff2362b87148767ae4=0Aec= ho x - conky/files/patch-src-common.c=0Ased 's/^X//' >conky/files/patch-src= -common.c << '24cdd30e7953ea41310801eca05f1374'=0AX--- src/common.c.orig=0A= X+++ src/common.c=0AX@@ -411,8 +417,14 @@ void update_stuff(void)=0AX }=0A= X /* need to synchronise here, otherwise locking is needed (as data=0AX = * would be printed with some update callbacks still running) */=0AX- for (u= c =3D update_cb_head.next; uc; uc =3D uc->next)=0AX+ for (uc =3D update_cb_= head.next; uc; uc =3D uc->next) {=0AX sem_wait(&uc->end_wait);=0AX+ if(u= c =3D=3D uc->next) {=0AX+ pthread_join(uc->thread, NULL);=0AX+ free(uc)= ;=0AX+ exit(EXIT_FAILURE);=0AX+ }=0AX+ }=0AX =0AX /* XXX: move the foll= owing into the update_meminfo() functions? */=0AX if (no_buffers) {=0A24cd= d30e7953ea41310801eca05f1374=0Aecho x - conky/files/patch-src-i8k.c=0Ased '= s/^X//' >conky/files/patch-src-i8k.c << '03f7f438b524e17aa11f6534db01c938'= =0AX--- src/i8k.c.orig=0AX+++ src/i8k.c=0AX@@ -61,8 +61,12 @@ void update_i= 8k(void)=0AX i8k_procbuf =3D (char *) malloc(128 * sizeof(char));=0AX }= =0AX if ((fp =3D fopen(PROC_I8K, "r")) =3D=3D NULL) {=0AX- CRIT_ERR(NULL,= NULL, "/proc/i8k doesn't exist! use insmod to make sure the kernel "=0AX+ = free(i8k_procbuf);=0AX+ i8k_procbuf =3D NULL;=0AX+ NORM_ERR("/proc/i8k d= oesn't exist! use insmod to make sure the kernel "=0AX "driver is loaded= =2E..");=0AX+ clean_up_without_threads(NULL, NULL);=0AX+ free(current_mai= l_spool);=0AX }=0AX =0AX memset(&i8k_procbuf[0], 0, 128);=0A03f7f438b524e= 17aa11f6534db01c938=0Aecho x - conky/files/patch-src-diskio.c=0Ased 's/^X//= ' >conky/files/patch-src-diskio.c << '4cdfd9587647cda26c3e5aa9031719fa'=0AX= --- src/diskio.c.orig=0AX+++ src/diskio.c=0AX@@ -76,12 +76,6 @@ struct disk= io_stat *prepare_diskio_stat(const char *s)=0AX if (!s)=0AX return &stat= s;=0AX =0AX-#if defined(__FreeBSD__)=0AX- if (strncmp(s, "/dev/", 5) =3D=3D= 0) {=0AX- // supplied a /dev/device arg, so cut off the /dev part=0AX- s= trncpy(device_name, s + 5, text_buffer_size);=0AX- } else=0AX-#endif=0AX s= trncpy(device_name, s, text_buffer_size);=0AX =0AX snprintf(stat_name, tex= t_buffer_size, "/dev/%s", device_name);=0A4cdfd9587647cda26c3e5aa9031719fa= =0Aecho x - conky/files/patch-src-conky.h=0Ased 's/^X//' >conky/files/patch= -src-conky.h << 'af61214ebb1a9bd0a4b9cfc894797f31'=0AX--- src/conky.h.orig= =0AX+++ src/conky.h=0AX@@ -296,9 +296,7 @@ extern int top_cpu, top_mem, top= _time;=0AX #ifdef IOSTATS=0AX extern int top_io;=0AX #endif=0AX-#ifdef __li= nux__=0AX extern int top_running;=0AX-#endif=0AX =0AX /* defined in conky.c= , needed by top.c */=0AX extern int cpu_separate;=0Aaf61214ebb1a9bd0a4b9cfc= 894797f31=0Aecho x - conky/files/patch-src-mail.c=0Ased 's/^X//' >conky/fil= es/patch-src-mail.c << '08f1d225e95a511dc39755093b1c6f93'=0AX--- src/mail.c= =2Eorig=0AX+++ src/mail.c=0AX@@ -61,6 +61,8 @@=0AX #define POP3_TYPE 1=0AX = #define IMAP_TYPE 2=0AX =0AX+#define MAXFOLDERSIZE 128=0AX+=0AX struct mail= _s { // for imap and pop3=0AX unsigned long unseen;=0AX unsigned long m= essages;=0AX@@ -74,7 +76,7 @@ struct mail_s { // for imap and pop3=0AX c= har user[128];=0AX char pass[128];=0AX char command[1024];=0AX- char fold= er[128];=0AX+ char folder[MAXFOLDERSIZE];=0AX timed_thread *p_timed_thread= ;=0AX char secure;=0AX };=0AX@@ -465,17 +467,20 @@ struct mail_s *parse_ma= il_args(char type, const char *arg)=0AX if (type =3D=3D IMAP_TYPE) {=0AX = tmp =3D strstr(arg, "-f ");=0AX if (tmp) {=0AX- int len =3D 1024;=0AX+= int len =3D MAXFOLDERSIZE-1;=0AX tmp +=3D 3;=0AX if (tmp[0] =3D=3D= '\'') {=0AX len =3D strstr(tmp + 1, "'") - tmp - 1;=0AX- if (len > = 1024) {=0AX- len =3D 1024;=0AX+ if (len > MAXFOLDERSIZE-1) {=0AX+ = len =3D MAXFOLDERSIZE-1;=0AX }=0AX+ tmp++;=0AX }=0AX- strncpy= (mail->folder, tmp + 1, len);=0AX+ strncpy(mail->folder, tmp, len);=0AX+ = mail->folder[len-1] =3D 0;=0AX } else {=0AX- strncpy(mail->folder, "I= NBOX", 128); // default imap inbox=0AX+ strncpy(mail->folder, "INBOX", MA= XFOLDERSIZE-1); // default imap inbox=0AX+ mail->folder[MAXFOLDERSIZE-1] = =3D 0;=0AX }=0AX }=0AX tmp =3D strstr(arg, "-e ");=0A08f1d225e95a511dc3= 9755093b1c6f93=0Aecho x - conky/files/patch-src-bmpx.c=0Ased 's/^X//' >conk= y/files/patch-src-bmpx.c << '7009353d4142186daa1a0cda0c310e52'=0AX--- src/b= mpx.c.orig=0AX+++ src/bmpx.c=0AX@@ -42,7 +42,7 @@=0AX static int connected = =3D 0;=0AX static char *unknown =3D "unknown";=0AX =0AX-void fail(GError *e= rror);=0AX+void fail(GError *error, struct information *);=0AX =0AX void up= date_bmpx()=0AX {=0AX@@ -58,15 +58,15 @@=0AX bus =3D dbus_g_bus_get(DBUS_= BUS_SESSION, &error);=0AX if (bus =3D=3D NULL) {=0AX NORM_ERR("BMPx er= ror 1: %s\n", error->message);=0AX- fail(error);=0AX+ fail(error, curre= nt_info);=0AX return;=0AX }=0AX =0AX remote_object =3D dbus_g_proxy_= new_for_name(bus, BMP_DBUS_SERVICE,=0AX- BMP_DBUS_PATH, BMP_DBUS_INTERFA= CE);=0AX+ BMP_DBUS_PATH__BMP, BMP_DBUS_INTERFACE__BMP);=0AX if (!remot= e_object) {=0AX NORM_ERR("BMPx error 2: %s\n", error->message);=0AX- f= ail(error);=0AX+ fail(error, current_info);=0AX return;=0AX }=0AX = =0AX@@ -78,7 +78,7 @@=0AX G_TYPE_INVALID, G_TYPE_INT, ¤t_track, = G_TYPE_INVALID)) {=0AX } else {=0AX NORM_ERR("BMPx error 3: %s\n", err= or->message);=0AX- fail(error);=0AX+ fail(error, current_info);=0AX = return;=0AX }=0AX =0AX@@ -112,17 +112,17 @@=0AX g_value_get_string(g_= hash_table_lookup(metadata, "location"));=0AX } else {=0AX NORM_ERR("B= MPx error 4: %s\n", error->message);=0AX- fail(error);=0AX+ fail(error,= current_info);=0AX return;=0AX }=0AX =0AX g_hash_table_destroy(meta= data);=0AX } else {=0AX- fail(error);=0AX+ fail(error, current_info);=0A= X }=0AX }=0AX =0AX-void fail(GError *error)=0AX+void fail(GError *error, s= truct information *current_info)=0AX {=0AX if (error) {=0AX g_error_free= (error);=0A7009353d4142186daa1a0cda0c310e52=0Aecho x - conky/files/patch-sr= c-top.c=0Ased 's/^X//' >conky/files/patch-src-top.c << '5a1c07c8f27bb5fa50c= 9d078a689ba56'=0AX--- src/top.c.orig=0AX+++ src/top.c=0AX@@ -880,16 +880,22= @@ int parse_top_args(const char *s, const char *arg, struct text_object *= obj)=0AX #else /* IOSTATS */=0AX NORM_ERR("must be one of: name, cpu, pi= d, mem, time, mem_res, mem_vsize");=0AX #endif /* IOSTATS */=0AX+ free(td= ->s);=0AX+ free(obj->data.opaque);=0AX return 0;=0AX }=0AX if (n <= 1 || n > 10) {=0AX NORM_ERR("invalid num arg for top. Must be between 1= and 10.");=0AX+ free(td->s);=0AX+ free(obj->data.opaque);=0AX retur= n 0;=0AX } else {=0AX td->num =3D n - 1;=0AX }=0AX } else {=0AX N= ORM_ERR("invalid argument count for top");=0AX+ free(td->s);=0AX+ free(ob= j->data.opaque);=0AX return 0;=0AX }=0AX return 1;=0A5a1c07c8f27bb5fa50= c9d078a689ba56=0Aecho x - conky/files/patch-src-logging.h=0Ased 's/^X//' >c= onky/files/patch-src-logging.h << 'd71a60d6818a8d7f78b196674f4e0c11'=0AX---= src/logging.h.orig=0AX+++ src/logging.h=0AX@@ -30,6 +30,7 @@=0AX #include = "mail.h"=0AX =0AX void clean_up(void *memtofree1, void* memtofree2);=0AX+vo= id clean_up_without_threads(void *memtofree1, void* memtofree2);=0AX =0AX #= ifndef _LOGGING_H=0AX #define _LOGGING_H=0AX@@ -44,6 +45,9 @@ void clean_up= (void *memtofree1, void* memtofree2);=0AX #define CRIT_ERR(memtofree1, memt= ofree2, ...) \=0AX { NORM_ERR(__VA_ARGS__); clean_up(memtofree1, memtofree= 2); free(current_mail_spool); exit(EXIT_FAILURE); }=0AX =0AX+#define THREAD= _CRIT_ERR(memtofree1, memtofree2, ...) \=0AX+ { NORM_ERR(__VA_ARGS__); clea= n_up_without_threads(memtofree1, memtofree2); free(current_mail_spool); ret= urn; }=0AX+=0AX /* debugging output */=0AX extern int global_debug_level;= =0AX #define __DBGP(level, ...) \=0Ad71a60d6818a8d7f78b196674f4e0c11=0Aecho= x - conky/files/patch-src-bmpx.h=0Ased 's/^X//' >conky/files/patch-src-bmp= x.h << '7aa331d858358f3f577dc4fd46751684'=0AX--- src/bmpx.h.orig=0AX+++ src= /bmpx.h=0AX@@ -0,0 +1,39 @@=0AX+/* -*- mode: c; c-basic-offset: 4; tab-widt= h: 4; indent-tabs-mode: t -*-=0AX+ * vim: ts=3D4 sw=3D4 noet ai cindent syn= tax=3Dc=0AX+ *=0AX+ * Conky, a system monitor, based on torsmo=0AX+ *=0AX+ = * Please see COPYING for details=0AX+ *=0AX+ * Copyright (c) 2005-2009 Bren= den Matthews, Philip Kovacs, et. al.=0AX+ * (see AUTHORS)=0AX+ * All rights= reserved.=0AX+ *=0AX+ * This program is free software: you can redistribut= e it and/or modify=0AX+ * it under the terms of the GNU General Public Lice= nse as published by=0AX+ * the Free Software Foundation, either version 3 o= f the License, or=0AX+ * (at your option) any later version.=0AX+ *=0AX+ * = This program is distributed in the hope that it will be useful,=0AX+ * but = WITHOUT ANY WARRANTY; without even the implied warranty of=0AX+ * MERCHANTA= BILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0AX+ * GNU General Pub= lic License for more details.=0AX+ * You should have received a copy of the= GNU General Public License=0AX+ * along with this program. If not, see <h= ttp://www.gnu.org/licenses/>.=0AX+ *=0AX+ */=0AX+=0AX+#ifndef BMPX_H_=0AX+#= define BMPX_H_=0AX+=0AX+void update_bmpx(void);=0AX+struct bmpx_s {=0AX+ ch= ar *title;=0AX+ char *artist;=0AX+ char *album;=0AX+ char *uri;=0AX+ int bi= trate;=0AX+ int track;=0AX+};=0AX+=0AX+#endif /*BMPX_H_*/=0A7aa331d858358f3= f577dc4fd46751684=0Aecho x - conky/files/patch-src-rss.c=0Ased 's/^X//' >co= nky/files/patch-src-rss.c << '76c8c57d8c780d81a228c4b723b5d1cb'=0AX--- src/= rss.c.orig=0AX+++ src/rss.c=0AX@@ -67,7 +67,7 @@ static void rss_process_in= fo(char *p, int p_max_size, char *uri, char *action, i=0AX curloc->result= =3D malloc(sizeof(PRSS));=0AX memset(curloc->result, 0, sizeof(PRSS));= =0AX curloc->process_function =3D &prss_parse_data;=0AX- ccurl_init_thre= ad(curloc, interval);=0AX+ ccurl_init_thread(curloc, interval * 60);=0AX = if (!curloc->p_timed_thread) {=0AX NORM_ERR("error setting up RSS threa= d");=0AX }=0A76c8c57d8c780d81a228c4b723b5d1cb=0Aecho x - conky/files/patc= h-lua-cairo.pkg=0Ased 's/^X//' >conky/files/patch-lua-cairo.pkg << 'b690010= cd703ed9c276c87f5b62a0618'=0AX--- lua/cairo.pkg.orig=0AX+++ lua/cairo.pkg= =0AX@@ -4,6 +4,7 @@=0AX $#include <cairo-xlib.h>=0AX $#include <X11/Xlib.h>= =0AX $#include "libcairo-helper.h"=0AX+$#define tolua_outside=0AX /*=0AX *= This code was mostly copied from cairo.h and cairo-xlib.h with comments=0A= X * removed. The licence noticed below is present for the sake of clarity= =2E=0Ab690010cd703ed9c276c87f5b62a0618=0Aecho x - conky/files/patch-src-Mak= efile.in=0Ased 's/^X//' >conky/files/patch-src-Makefile.in << '5c21d9aa16f5= dcf2797cb5497615f523'=0AX--- src/Makefile.in.orig=0AX+++ src/Makefile.in=0A= X@@ -141,7 +141,7 @@=0AX am__objects_15 =3D conky-linux.$(OBJEXT) conky-top= =2E$(OBJEXT) \=0AX conky-users.$(OBJEXT) conky-sony.$(OBJEXT) conky-i8k.$(= OBJEXT)=0AX @BUILD_LINUX_TRUE@am__objects_16 =3D $(am__objects_15)=0AX-am__= objects_17 =3D conky-freebsd.$(OBJEXT)=0AX+am__objects_17 =3D conky-freebsd= =2E$(OBJEXT) conky-top.$(OBJEXT)=0AX @BUILD_FREEBSD_TRUE@am__objects_18 =3D= $(am__objects_17)=0AX am__objects_19 =3D conky-openbsd.$(OBJEXT)=0AX @BUIL= D_OPENBSD_TRUE@am__objects_20 =3D $(am__objects_19)=0A5c21d9aa16f5dcf2797cb= 5497615f523=0Aecho x - conky/files/patch-src-core.c=0Ased 's/^X//' >conky/f= iles/patch-src-core.c << '00e630dd0ae98e36949f27098228d476'=0AX--- src/core= =2Ec.orig=0AX+++ src/core.c=0AX@@ -171,8 +171,6 @@=0AX NORM_ERR("acpiaca= dapter: arg is only used on linux");=0AX #endif=0AX }=0AX- if(! obj->dat= a.opaque)=0AX- obj->data.opaque =3D strdup("AC");=0AX #endif /* !__OpenBS= D__ */=0AX END OBJ(freq, 0)=0AX get_cpu_count();=0AX@@ -279,8 +277,9 @@= =0AX obj->data.s =3D strndup(bat, text_buffer_size);=0AX END OBJ(battery= _bar, 0)=0AX char bat[64];=0AX- if (arg) {=0AX- arg =3D scan_bar(obj, = arg);=0AX+=0AX+ arg =3D scan_bar(obj, arg);=0AX+ if (arg && strlen(arg)>0= ) {=0AX sscanf(arg, "%63s", bat);=0AX } else {=0AX strcpy(bat, "BAT= 0");=0AX@@ -372,18 +372,18 @@=0AX scan_loadgraph_arg(obj, arg);=0AX #endi= f /* X11 */=0AX END OBJ(diskio, &update_diskio)=0AX- parse_diskio_arg(obj= , arg);=0AX+ parse_diskio_arg(obj, dev_name(arg));=0AX END OBJ(diskio_rea= d, &update_diskio)=0AX- parse_diskio_arg(obj, arg);=0AX+ parse_diskio_arg= (obj, dev_name(arg));=0AX END OBJ(diskio_write, &update_diskio)=0AX- pars= e_diskio_arg(obj, arg);=0AX+ parse_diskio_arg(obj, dev_name(arg));=0AX #if= def X11=0AX END OBJ(diskiograph, &update_diskio)=0AX- parse_diskiograph_a= rg(obj, arg);=0AX+ parse_diskiograph_arg(obj, dev_name(arg));=0AX END OBJ= (diskiograph_read, &update_diskio)=0AX- parse_diskiograph_arg(obj, arg);= =0AX+ parse_diskiograph_arg(obj, dev_name(arg));=0AX END OBJ(diskiograph_= write, &update_diskio)=0AX- parse_diskiograph_arg(obj, arg);=0AX+ parse_d= iskiograph_arg(obj, dev_name(arg));=0AX #endif /* X11 */=0AX END OBJ(color= , 0)=0AX #ifdef X11=0AX@@ -542,6 +542,13 @@=0AX parse_platform_sensor(obj= , arg);=0AX END OBJ_ARG(hwmon, 0, "hwmon needs argumanets")=0AX parse_hw= mon_sensor(obj, arg);=0AX+#endif /* __linux__ */=0AX+ END OBJ(addr, &update= _net_stats)=0AX+ parse_net_stat_arg(obj, arg, free_at_crash);=0AX+#ifdef _= _linux__=0AX+ END OBJ(addrs, &update_net_stats)=0AX+ parse_net_stat_arg(ob= j, arg, free_at_crash);=0AX+#endif /* __linux__ */=0AX END=0AX /* we have= four different types of top (top, top_mem, top_time and top_io). To=0AX = * avoid having almost-same code four times, we have this special=0AX@@ -552= ,12 +559,8 @@=0AX if (!parse_top_args(s, arg, obj)) {=0AX return NULL;= =0AX }=0AX- } else OBJ(addr, &update_net_stats)=0AX- parse_net_stat_arg(= obj, arg, free_at_crash);=0AX- END OBJ(addrs, &update_net_stats)=0AX- pars= e_net_stat_arg(obj, arg, free_at_crash);=0AX-#endif /* __linux__ */=0AX- EN= D OBJ_ARG(tail, 0, "tail needs arguments")=0AX+ } else=0AX+ OBJ_ARG(tail, = 0, "tail needs arguments")=0AX init_tailhead("tail", arg, obj, free_at_cr= ash);=0AX END OBJ_ARG(head, 0, "head needs arguments")=0AX init_tailhead= ("head", arg, obj, free_at_crash);=0AX@@ -786,9 +789,9 @@=0AX obj->sub = =3D malloc(sizeof(struct text_object));=0AX extract_variable_text_interna= l(obj->sub, arg);=0AX END OBJ(processes, &update_total_processes)=0AX-#ifd= ef __linux__=0AX END OBJ(running_processes, &update_top)=0AX top_running= =3D 1;=0AX+#ifdef __linux__=0AX END OBJ(threads, &update_threads)=0AX EN= D OBJ(running_threads, &update_stat)=0AX #else=0AX@@ -966,8 +969,10 @@=0AX = END OBJ(xmms2_size, &update_xmms2)=0AX END OBJ(xmms2_status, &update_xmms= 2)=0AX END OBJ(xmms2_percent, &update_xmms2)=0AX+#ifdef X11=0AX END OBJ(x= mms2_bar, &update_xmms2)=0AX scan_bar(obj, arg);=0AX+#endif=0AX END OBJ(= xmms2_smart, &update_xmms2)=0AX END OBJ(xmms2_playlist, &update_xmms2)=0AX= END OBJ(xmms2_timesplayed, &update_xmms2)=0AX@@ -993,9 +998,11 @@=0AX EN= D OBJ(audacious_playlist_length, &update_audacious)=0AX END OBJ(audacious_= playlist_position, &update_audacious)=0AX END OBJ(audacious_main_volume, &= update_audacious)=0AX+#ifdef X11=0AX END OBJ(audacious_bar, &update_audaci= ous)=0AX scan_bar(obj, arg);=0AX #endif=0AX+#endif=0AX #ifdef BMPX=0AX E= ND OBJ(bmpx_title, &update_bmpx)=0AX memset(&(info.bmpx), 0, sizeof(struc= t bmpx_s));=0AX@@ -1327,7 +1334,7 @@=0AX strfold(p, 1);=0AX } else if = (*p =3D=3D '#') {=0AX char c;=0AX- if (remove_comment(p, &c) && p > or= ig_p && c =3D=3D '\n') {=0AX+ if (remove_comment(p, &c) && p >=3D orig_p = && c =3D=3D '\n') {=0AX /* if remove_comment removed a newline, we need= to 'back up' with p */=0AX p--;=0AX }=0A00e630dd0ae98e36949f2709822= 8d476=0Aecho x - conky/files/patch-src-freebsd.c=0Ased 's/^X//' >conky/file= s/patch-src-freebsd.c << '11452bf3b469397e88fdf71c8331e2fa'=0AX--- src/free= bsd.c.orig=0AX+++ src/freebsd.c=0AX@@ -67,7 +67,7 @@=0AX #endif=0AX =0AX __= attribute__((gnu_inline)) inline void=0AX-proc_find_top(struct process **cp= u, struct process **mem);=0AX+proc_find_top(struct process **cpu, struct pr= ocess **mem, struct process **time);=0AX =0AX static short cpu_setup =3D 0;= =0AX =0AX@@ -286,40 +290,38 @@ void update_running_processes(void)=0AX inf= o.run_procs =3D cnt;=0AX }=0AX =0AX-struct cpu_load_struct {=0AX- unsigned = long load[5];=0AX-};=0AX-=0AX-struct cpu_load_struct fresh =3D { {0, 0, 0, = 0, 0} };=0AX-long cpu_used, oldtotal, oldused;=0AX-=0AX void get_cpu_count(= void)=0AX {=0AX- /* int cpu_count =3D 0; */=0AX+ int cpu_count =3D 0;=0AX+ = size_t cpu_count_len =3D sizeof(cpu_count);=0AX =0AX- /* XXX: FreeBSD doesn= 't allow to get per CPU load stats on SMP machines.=0AX- * It's possible t= o get a CPU count, but as we fulfill only=0AX- * info.cpu_usage[0], it's b= etter to report there's only one CPU.=0AX- * It should fix some bugs (e.g.= cpugraph) */=0AX-#if 0=0AX if (GETSYSCTL("hw.ncpu", cpu_count) =3D=3D 0) = {=0AX info.cpu_count =3D cpu_count;=0AX+ } else {=0AX+ fprintf(stderr, "= Cannot get hw.ncpu\n");=0AX+ info.cpu_count =3D 0;=0AX }=0AX-#endif=0AX- = info.cpu_count =3D 1;=0AX =0AX- info.cpu_usage =3D malloc(info.cpu_count * = sizeof(float));=0AX+ info.cpu_usage =3D malloc((info.cpu_count + 1) * sizeo= f(float));=0AX if (info.cpu_usage =3D=3D NULL) {=0AX CRIT_ERR(NULL, NULL= , "malloc");=0AX }=0AX }=0AX =0AX-/* XXX: SMP support */=0AX-void update_c= pu_usage(void)=0AX+struct cpu_info {=0AX+ long oldtotal;=0AX+ long oldused;= =0AX+};=0AX+=0AX+void update_cpu_usage(void)=0AX {=0AX+ int i, j =3D 0;=0AX= long used, total;=0AX- long cp_time[CPUSTATES];=0AX- size_t cp_len =3D si= zeof(cp_time);=0AX+ long *cp_time =3D NULL;=0AX+ size_t cp_len;=0AX+ static= struct cpu_info *cpu =3D NULL;=0AX+ unsigned int malloc_cpu_size =3D 0;=0A= X+ extern void* global_cpu;=0AX =0AX /* add check for !info.cpu_usage sinc= e that mem is freed on a SIGUSR1 */=0AX if ((cpu_setup =3D=3D 0) || (!info= =2Ecpu_usage)) {=0AX@@ -327,28 +332,68 @@ void update_cpu_usage(void)=0AX = cpu_setup =3D 1;=0AX }=0AX =0AX- if (sysctlbyname("kern.cp_time", &cp_tim= e, &cp_len, NULL, 0) < 0) {=0AX- fprintf(stderr, "Cannot get kern.cp_time"= );=0AX+ if (!global_cpu) {=0AX+ malloc_cpu_size =3D (info.cpu_count + 1) *= sizeof(struct cpu_info);=0AX+ cpu =3D malloc(malloc_cpu_size);=0AX+ mems= et(cpu, 0, malloc_cpu_size);=0AX+ global_cpu =3D cpu;=0AX }=0AX =0AX- fre= sh.load[0] =3D cp_time[CP_USER];=0AX- fresh.load[1] =3D cp_time[CP_NICE];= =0AX- fresh.load[2] =3D cp_time[CP_SYS];=0AX- fresh.load[3] =3D cp_time[CP_= IDLE];=0AX- fresh.load[4] =3D cp_time[CP_IDLE];=0AX+ /* cpu[0] is overall s= tats, get it from separate sysctl */=0AX+ cp_len =3D CPUSTATES * sizeof(lon= g);=0AX+ cp_time =3D malloc(cp_len);=0AX =0AX- used =3D fresh.load[0] + fre= sh.load[1] + fresh.load[2];=0AX- total =3D fresh.load[0] + fresh.load[1] + = fresh.load[2] + fresh.load[3];=0AX+ if (sysctlbyname("kern.cp_time", cp_tim= e, &cp_len, NULL, 0) < 0) {=0AX+ fprintf(stderr, "Cannot get kern.cp_time\= n");=0AX+ }=0AX+=0AX+ total =3D 0;=0AX+ for (j =3D 0; j < CPUSTATES; j++)= =0AX+ total +=3D cp_time[j];=0AX =0AX- if ((total - oldtotal) !=3D 0) {=0A= X- info.cpu_usage[0] =3D ((double) (used - oldused)) /=0AX- (double) (to= tal - oldtotal);=0AX+ used =3D total - cp_time[CP_IDLE];=0AX+=0AX+ if ((tot= al - cpu[0].oldtotal) !=3D 0) {=0AX+ info.cpu_usage[0] =3D ((double) (used= - cpu[0].oldused)) /=0AX+ (double) (total - cpu[0].oldtotal);=0AX } else= {=0AX info.cpu_usage[0] =3D 0;=0AX }=0AX =0AX- oldused =3D used;=0AX- o= ldtotal =3D total;=0AX+ cpu[0].oldused =3D used;=0AX+ cpu[0].oldtotal =3D t= otal;=0AX+=0AX+ free(cp_time);=0AX+=0AX+ /* per-core stats */=0AX+ cp_len = =3D CPUSTATES * sizeof(long) * info.cpu_count;=0AX+ cp_time =3D malloc(cp_l= en);=0AX+=0AX+ /* on e.g. i386 SMP we may have more values than actual cpus= ; this will just drop extra values */=0AX+ if (sysctlbyname("kern.cp_times"= , cp_time, &cp_len, NULL, 0) < 0 && errno !=3D ENOMEM) {=0AX+ fprintf(stde= rr, "Cannot get kern.cp_times\n");=0AX+ }=0AX+=0AX+ for (i =3D 0; i < info.= cpu_count; i++)=0AX+ {=0AX+ total =3D 0;=0AX+ for (j =3D 0; j < CPUSTATES= ; j++)=0AX+ total +=3D cp_time[i*CPUSTATES + j];=0AX+=0AX+ used =3D tota= l - cp_time[i*CPUSTATES + CP_IDLE];=0AX+=0AX+ if ((total - cpu[i+1].oldtot= al) !=3D 0) {=0AX+ info.cpu_usage[i+1] =3D ((double) (used - cpu[i+1].old= used)) /=0AX+ (double) (total - cpu[i+1].oldtotal);=0AX+ } else {=0AX+ = info.cpu_usage[i+1] =3D 0;=0AX+ }=0AX+=0AX+ cpu[i+1].oldused =3D used;= =0AX+ cpu[i+1].oldtotal =3D total;=0AX+ }=0AX+=0AX+ free(cp_time);=0AX }= =0AX =0AX void update_load_average(void)=0AX@@ -540,7 +588,7 @@ char get_fr= eq(char *p_client_buffer, size_t client_buffer_size, const char *p_fo=0AX = =0AX void update_top(void)=0AX {=0AX- proc_find_top(info.cpu, info.memu);= =0AX+ proc_find_top(info.cpu, info.memu, info.time);=0AX }=0AX =0AX #if 0= =0AX@@ -676,8 +726,15 @@ int comparemem(const void *a, const void *b)=0AX = }=0AX }=0AX =0AX+int comparetime(const void *va, const void *vb)=0AX+{=0AX+= struct process *a =3D (struct process *)va, *b =3D (struct process *)vb;= =0AX+=0AX+ return b->total_cpu_time - a->total_cpu_time;=0AX+}=0AX+=0AX __a= ttribute__((gnu_inline)) inline void=0AX-proc_find_top(struct process **cpu= , struct process **mem)=0AX+proc_find_top(struct process **cpu, struct proc= ess **mem, struct process **time)=0AX {=0AX struct kinfo_proc *p;=0AX int= n_processes;=0AX@@ -701,6 +758,9 @@ proc_find_top(struct process **cpu, st= ruct process **mem)=0AX processes[j].amount =3D 100.0 * p[i].ki_pctcpu /= FSCALE;=0AX processes[j].vsize =3D p[i].ki_size;=0AX processes[j].rs= s =3D (p[i].ki_rssize * getpagesize());=0AX+ /* ki_runtime is in microsec= onds, total_cpu_time in centiseconds.=0AX+ * Therefore we divide by 1000= 0. */=0AX+ processes[j].total_cpu_time =3D p[i].ki_runtime / 10000;=0AX = j++;=0AX }=0AX }=0AX@@ -710,11 +770,8 @@ proc_find_top(struct process = **cpu, struct process **mem)=0AX struct process *tmp, *ttmp;=0AX =0AX t= mp =3D malloc(sizeof(struct process));=0AX- tmp->pid =3D processes[i].pid;= =0AX- tmp->amount =3D processes[i].amount;=0AX+ memcpy(tmp, &processes[i]= , sizeof(struct process));=0AX tmp->name =3D strndup(processes[i].name, t= ext_buffer_size);=0AX- tmp->rss =3D processes[i].rss;=0AX- tmp->vsize =3D= processes[i].vsize;=0AX =0AX ttmp =3D mem[i];=0AX mem[i] =3D tmp;=0AX@= @ -729,11 +786,8 @@ proc_find_top(struct process **cpu, struct process **me= m)=0AX struct process *tmp, *ttmp;=0AX =0AX tmp =3D malloc(sizeof(struc= t process));=0AX- tmp->pid =3D processes[i].pid;=0AX- tmp->amount =3D pro= cesses[i].amount;=0AX+ memcpy(tmp, &processes[i], sizeof(struct process));= =0AX tmp->name =3D strndup(processes[i].name, text_buffer_size);=0AX- tm= p->rss =3D processes[i].rss;=0AX- tmp->vsize =3D processes[i].vsize;=0AX = =0AX ttmp =3D cpu[i];=0AX cpu[i] =3D tmp;=0AX@@ -743,6 +797,22 @@ proc_= find_top(struct process **cpu, struct process **mem)=0AX }=0AX }=0AX =0A= X+ qsort(processes, j - 1, sizeof(struct process), comparetime);=0AX+ for (= i =3D 0; i < 10 && i < n_processes; i++) {=0AX+ struct process *tmp, *ttmp= ;=0AX+=0AX+ tmp =3D malloc(sizeof(struct process));=0AX+ memcpy(tmp, &pro= cesses[i], sizeof(struct process));=0AX+ tmp->name =3D strndup(processes[i= ].name, text_buffer_size);=0AX+=0AX+ ttmp =3D time[i];=0AX+ time[i] =3D t= mp;=0AX+ if (ttmp !=3D NULL) {=0AX+ free(ttmp->name);=0AX+ free(ttmp);= =0AX+ }=0AX+ }=0AX+=0AX #if defined(FREEBSD_DEBUG)=0AX printf("=3D=3D=3D= =3D=3D\nmem\n");=0AX for (i =3D 0; i < 10; i++) {=0AX@@ -916,8 +986,3 @@ i= nt get_entropy_poolsize(unsigned int *val)=0AX (void)val;=0AX return 1;= =0AX }=0AX-=0AX-/* empty stub so conky links */=0AX-void free_all_processes= (void)=0AX-{=0AX-}=0A11452bf3b469397e88fdf71c8331e2fa=0Aecho x - conky/pkg-= descr=0Ased 's/^X//' >conky/pkg-descr << '1dc47ddbf5208b510dd9392ba07bd8c1'= =0AXConky is an advanced, highly configurable system monitor for X=0AX=0AXW= WW: http://conky.sourceforge.net/=0A1dc47ddbf5208b510dd9392ba07bd8c1=0Aecho= x - conky/distinfo=0Ased 's/^X//' >conky/distinfo << 'ca22fce68ddee350633d= 14dc535474a0'=0AXMD5 (conky-1.8.0.tar.bz2) =3D 494cbaf1108cfdb977fc80454d9b= 13e2=0AXSHA256 (conky-1.8.0.tar.bz2) =3D badb3824a9655eee90281939df8bdb3ca9= 5cf8bab03269b3b3775bfea2ed0a51=0AXSIZE (conky-1.8.0.tar.bz2) =3D 610545=0Ac= a22fce68ddee350633d14dc535474a0=0Aexit=0A=0A --1yeeQ81UyVL57Vl7--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009220810.o8M8A8cu090084>