aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11/lxpanel/Makefile108
-rw-r--r--x11/lxpanel/distinfo4
-rw-r--r--x11/lxpanel/files/patch-src__plugins__batt__Makefile.in266
-rw-r--r--x11/lxpanel/files/patch-src__plugins__batt__batt.c171
-rw-r--r--x11/lxpanel/files/patch-src__plugins__batt__batt_sys.c304
-rw-r--r--x11/lxpanel/files/patch-src__plugins__batt__batt_sys.h38
-rw-r--r--x11/lxpanel/files/patch-src__plugins__cpufreq__cpufreq.c411
-rw-r--r--x11/lxpanel/files/patch-src__plugins__netstatus__netstatus-sysdeps.c222
-rw-r--r--x11/lxpanel/files/patch-src__plugins__thermal__Makefile.in462
-rw-r--r--x11/lxpanel/files/patch-src__plugins__thermal__thermal.c493
-rw-r--r--x11/lxpanel/files/pkg-message.in24
-rw-r--r--x11/lxpanel/pkg-plist9
12 files changed, 2487 insertions, 25 deletions
diff --git a/x11/lxpanel/Makefile b/x11/lxpanel/Makefile
index 085a381e2972..b40c22acd1d7 100644
--- a/x11/lxpanel/Makefile
+++ b/x11/lxpanel/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= lxpanel
-PORTVERSION= 0.6.1
-PORTREVISION= 2
+PORTVERSION= 0.6.2
CATEGORIES= x11
MASTER_SITES= SF/lxde/LXPanel%20%28desktop%20panel%29/LXPanel%20${PORTVERSION}/
@@ -13,38 +12,97 @@ COMMENT= Lightweight X11 desktop panel
LICENSE= GPLv2 MIT
LICENSE_COMB= dual
-LIB_DEPENDS= libmenu-cache.so:${PORTSDIR}/x11/menu-cache
-RUN_DEPENDS= ${LOCALBASE}/share/desktop-directories/lxde-audio-video.directory:${PORTSDIR}/x11/lxmenu-data
+LIB_DEPENDS= libmenu-cache.so:${PORTSDIR}/x11/menu-cache \
+ libsysinfo.so:${PORTSDIR}/devel/libsysinfo
+RUN_DEPENDS= ${LOCALBASE}/share/desktop-directories/lxde-audio-video.directory:${PORTSDIR}/x11/lxmenu-data \
+ xmessage:${PORTSDIR}/x11/xmessage
+USE_AUTOTOOLS= automake:env
+USE_CSTD= gnu89
+USE_GNOME= gtk20 libwnck
+USE_XORG= x11 xmu
+USES= gmake pathfix pkgconfig
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --prefix="${PREFIX}" \
+ --with-plugins=netstatus,volume,volumealsa,deskno,batt,kbled,xkb,thermal,cpu,cpufreq,monitors,wnckpager \
+ --with-x \
+ CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
+CFLAGS+= -I${WRKSRC}
+
+SUB_FILES= pkg-message
PORTDOCS= AUTHORS README
-OPTIONS_DEFINE= ALSA DOCS NLS
+OPTIONS_DEFINE= ALSA DOCS NLS
OPTIONS_SUB= yes
-ALSA_RUN_DEPENDS= ${LINUXBASE}/lib/libasound.so.2:${PORTSDIR}/audio/linux-f10-alsa-lib
+ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib
ALSA_CONFIGURE_ENABLE= alsa
-
+NLS_CONFIGURE_ENABLE= nls
NLS_USES= gettext
-USE_XORG= x11 xmu
-USE_GNOME= gtk20 libwnck
-USES= gmake pathfix pkgconfig
-GNU_CONFIGURE= yes
-USE_AUTOTOOLS= automake:env
-CONFIGURE_ARGS= --prefix=${PREFIX} \
- --with-plugins=volume,deskno,kbled,xkb,batt \
- CPPFLAGS="-I${LOCALBASE}/include" \
- LDFLAGS="-L${LOCALBASE}/lib"
-CFLAGS+= -I${WRKSRC} -Wno-return-type
-USE_CSTD= gnu89
-
.include <bsd.port.options.mk>
+.if ${PORT_OPTIONS:MALSA}
+PLIST_SUB+= VOLUME="@comment "
+.else
+PLIST_SUB+= VOLUME=""
+.endif
+
post-patch:
+ @${REINPLACE_CMD} -e '/g_thread_create/ \
+ s|.*| g_thread_new("tf", (GThreadFunc)thread_func,\
+ thread_data);|' \
+ ${WRKSRC}/src/gtk-run.c
+ @${REINPLACE_CMD} -e '/g_thread_init/d' \
+ ${WRKSRC}/src/panel.c
+ @${REINPLACE_CMD} -e 's|structure_size :|.structure_size =|; \
+ s|structure_version :|.structure_version =|' \
+ ${WRKSRC}/src/plugin.h
+ @${REINPLACE_CMD} -e 's| type *:| .type =|; \
+ s| name *:| .name =|; \
+ s| version *:| .version =|; \
+ s| description *:| .description =|; \
+ s| constructor *:| .constructor =|; \
+ s| destructor *:| .destructor =|; \
+ s| config *:| .config =|; \
+ s| save *:| .save =|; \
+ s| panel_configuration_changed *:| \
+ .panel_configuration_changed =|; \
+ s| fname:| .fname =|; \
+ s| count:| .count =|; \
+ s| expand_available :| .expand_available =|; \
+ s| expand_default :| .expand_default =|; \
+ s| one_per_system :| .one_per_system =|; \
+ s| not_unloadable :| .not_unloadable =|' \
+ ${WRKSRC}/src/plugins/batt/batt.c \
+ ${WRKSRC}/src/plugins/cpu*/cpu*.c \
+ ${WRKSRC}/src/plugins/deskno/deskno.c \
+ ${WRKSRC}/src/plugins/kbled/kbled.c \
+ ${WRKSRC}/src/plugins/monitors/monitors.c \
+ ${WRKSRC}/src/plugins/netstatus/netstatus.c \
+ ${WRKSRC}/src/plugins/thermal/thermal.c \
+ ${WRKSRC}/src/plugins/wnckpager/wnckpager.c \
+ ${WRKSRC}/src/plugins/xkb/xkb-plugin.c \
+ ${WRKSRC}/src/plugins/volume*/volume*.c \
+ ${WRKSRC}/src/plugins/*.c
+ @${REINPLACE_CMD} -e '/gdk_color_parse(b/ s|;||; \
+ /gdk_color_parse(b/{p;s/.*/ ;/;}' \
+ ${WRKSRC}/src/plugins/batt/batt.c
+ @${REINPLACE_CMD} -e 's|/sys|/compat/linux&|' \
+ ${WRKSRC}/src/plugins/batt/batt_sys.h
+ @${REINPLACE_CMD} -e 's|/proc|/compat/linux&|' \
+ ${WRKSRC}/src/plugins/cpu/cpu.c \
+ ${WRKSRC}/src/plugins/monitors/monitors.c \
+ ${WRKSRC}/src/plugins/thermal/thermal.c
+ @${REINPLACE_CMD} -e 's|%lld|%lu|g; s|bytes >=|bytes >|' \
+ ${WRKSRC}/src/plugins/netstatus/netstatus-dialog.c
+ @${REINPLACE_CMD} -e '/NETSTATUS_ERROR, code/ s|error_message|"%s", &|' \
+ ${WRKSRC}/src/plugins/netstatus/netstatus-iface.c
+ @${REINPLACE_CMD} -e '611s/signal_strength)/*&/' \
+ ${WRKSRC}/src/plugins/netstatus/netstatus-sysdeps.c
@${REINPLACE_CMD} -e 's|linux|sys|' \
${WRKSRC}/src/plugins/volume/volume-impl.c
- @${REINPLACE_CMD} -e 's|$$(DATADIRNAME)/locale|share/locale|' \
- ${WRKSRC}/po/Makefile.in.in
.if ! ${PORT_OPTIONS:MNLS}
@${REINPLACE_CMD} -e 's|po man|man|' \
@@ -52,10 +110,16 @@ post-patch:
.endif
post-install:
-.for l in volume xkb deskno batt kbled
+.for l in netstatus deskno batt kbled xkb thermal cpu cpufreq monitors wnckpager
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lxpanel/plugins/${l}.so
.endfor
+.if ${PORT_OPTIONS:MALSA}
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lxpanel/plugins/volumealsa.so
+.else
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lxpanel/plugins/volume.so
+.endif
+
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
diff --git a/x11/lxpanel/distinfo b/x11/lxpanel/distinfo
index 540e77ad3af7..6863d2ddadfa 100644
--- a/x11/lxpanel/distinfo
+++ b/x11/lxpanel/distinfo
@@ -1,2 +1,2 @@
-SHA256 (lxpanel-0.6.1.tar.gz) = a16a21b2186218c70ed98dc7875c54d6bb12ae7271825ff5060feb8d2a4e86cb
-SIZE (lxpanel-0.6.1.tar.gz) = 2094946
+SHA256 (lxpanel-0.6.2.tar.gz) = f9ba6d0b825f7b99de045c3371738792bf9f3604af66bef4d98d783461c60a48
+SIZE (lxpanel-0.6.2.tar.gz) = 2086833
diff --git a/x11/lxpanel/files/patch-src__plugins__batt__Makefile.in b/x11/lxpanel/files/patch-src__plugins__batt__Makefile.in
new file mode 100644
index 000000000000..6b631a6ac37b
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__batt__Makefile.in
@@ -0,0 +1,266 @@
+--- ./src/plugins/batt/Makefile.in.orig 2014-05-09 09:31:24.000000000 -0400
++++ ./src/plugins/batt/Makefile.in 2014-05-27 18:13:52.000000000 -0400
+@@ -1,7 +1,7 @@
+-# Makefile.in generated by automake 1.14.1 from Makefile.am.
++# Makefile.in generated by automake 1.12.6 from Makefile.am.
+ # @configure_input@
+
+-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
++# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -15,51 +15,23 @@
+ @SET_MAKE@
+
+ VPATH = @srcdir@
+-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+-am__make_running_with_option = \
+- case $${target_option-} in \
+- ?) ;; \
+- *) echo "am__make_running_with_option: internal error: invalid" \
+- "target option '$${target_option-}' specified" >&2; \
+- exit 1;; \
+- esac; \
+- has_opt=no; \
+- sane_makeflags=$$MAKEFLAGS; \
+- if $(am__is_gnu_make); then \
+- sane_makeflags=$$MFLAGS; \
+- else \
++am__make_dryrun = \
++ { \
++ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+- bs=\\; \
+- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+- esac; \
+- fi; \
+- skip_next=no; \
+- strip_trailopt () \
+- { \
+- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+- }; \
+- for flg in $$sane_makeflags; do \
+- test $$skip_next = yes && { skip_next=no; continue; }; \
+- case $$flg in \
+- *=*|--*) continue;; \
+- -*I) strip_trailopt 'I'; skip_next=yes;; \
+- -*I?*) strip_trailopt 'I';; \
+- -*O) strip_trailopt 'O'; skip_next=yes;; \
+- -*O?*) strip_trailopt 'O';; \
+- -*l) strip_trailopt 'l'; skip_next=yes;; \
+- -*l?*) strip_trailopt 'l';; \
+- -[dEDm]) skip_next=yes;; \
+- -[JT]) skip_next=yes;; \
+- esac; \
+- case $$flg in \
+- *$$target_option*) has_opt=yes; break;; \
++ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
++ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
++ *) \
++ for am__flg in $$MAKEFLAGS; do \
++ case $$am__flg in \
++ *=*|--*) ;; \
++ *n*) am__dry=yes; break;; \
++ esac; \
++ done;; \
+ esac; \
+- done; \
+- test $$has_opt = yes
+-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
++ test $$am__dry = yes; \
++ }
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+@@ -79,21 +51,14 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = src/plugins/batt
+-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+- $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
++ $(top_srcdir)/depcomp
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \
+- $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
++am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
++mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ CONFIG_CLEAN_VPATH_FILES =
+@@ -178,23 +143,6 @@
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+-# Read a list of newline-separated strings from the standard input,
+-# and print each of them once, without duplicates. Input order is
+-# *not* preserved.
+-am__uniquify_input = $(AWK) '\
+- BEGIN { nonempty = 0; } \
+- { items[$$0] = 1; nonempty = 1; } \
+- END { if (nonempty) { for (i in items) print i; }; } \
+-'
+-# Make sure the list of sources is unique. This is necessary because,
+-# e.g., the same source file might be shared among _SOURCES variables
+-# for different programs/libraries.
+-am__define_uniq_tagged_files = \
+- list='$(am__tagged_files)'; \
+- unique=`for i in $$list; do \
+- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+- done | $(am__uniquify_input)`
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+@@ -255,15 +203,11 @@
+ INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+-LIBICONV = @LIBICONV@
+-LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIPO = @LIPO@
+ LN_S = @LN_S@
+-LTLIBICONV = @LTLIBICONV@
+-LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ LXPANEL_MODULE = @LXPANEL_MODULE@
+ MAKEINFO = @MAKEINFO@
+@@ -423,7 +367,6 @@
+ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(am__aclocal_m4_deps):
+-
+ install-moduleLTLIBRARIES: $(module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \
+@@ -458,7 +401,6 @@
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+-
+ batt.la: $(batt_la_OBJECTS) $(batt_la_DEPENDENCIES) $(EXTRA_batt_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(batt_la_LINK) -rpath $(moduledir) $(batt_la_OBJECTS) $(batt_la_LIBADD) $(LIBS)
+
+@@ -476,14 +418,14 @@
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+ .c.obj:
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+ .c.lo:
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@@ -512,15 +454,26 @@
+ clean-libtool:
+ -rm -rf .libs _libs
+
+-ID: $(am__tagged_files)
+- $(am__define_uniq_tagged_files); mkid -fID $$unique
+-tags: tags-am
+-TAGS: tags
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ mkid -fID $$unique
++tags: TAGS
+
+-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+- $(am__define_uniq_tagged_files); \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+@@ -532,11 +485,15 @@
+ $$unique; \
+ fi; \
+ fi
+-ctags: ctags-am
+-
+-CTAGS: ctags
+-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+- $(am__define_uniq_tagged_files); \
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+@@ -545,10 +502,9 @@
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+-cscopelist: cscopelist-am
+
+-cscopelist-am: $(am__tagged_files)
+- list='$(am__tagged_files)'; \
++cscopelist: $(HEADERS) $(SOURCES) $(LISP)
++ list='$(SOURCES) $(HEADERS) $(LISP)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+@@ -704,9 +660,9 @@
+
+ .MAKE: install-am install-strip
+
+-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+- clean-libtool clean-moduleLTLIBRARIES cscopelist-am ctags \
+- ctags-am distclean distclean-compile distclean-generic \
++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
++ clean-libtool clean-moduleLTLIBRARIES cscopelist ctags \
++ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+@@ -716,7 +672,7 @@
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
++ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-moduleLTLIBRARIES
+
+
diff --git a/x11/lxpanel/files/patch-src__plugins__batt__batt.c b/x11/lxpanel/files/patch-src__plugins__batt__batt.c
new file mode 100644
index 000000000000..7b971e6be24d
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__batt__batt.c
@@ -0,0 +1,171 @@
+--- ./src/plugins/batt/batt.c.orig 2014-05-09 09:15:04.000000000 -0400
++++ ./src/plugins/batt/batt.c 2014-05-27 18:13:59.000000000 -0400
+@@ -68,7 +68,7 @@
+ cairo_surface_t *pixmap;
+ GtkWidget *drawingArea;
+ int orientation;
+- unsigned int alarmTime,
++ unsigned int alarmPercentage,
+ border,
+ height,
+ length,
+@@ -118,7 +118,6 @@
+ char tooltip[ 256 ];
+ battery *b = lx_b->b;
+ /* unit: mW */
+- int rate;
+ gboolean isCharging;
+
+ if (! lx_b->pixmap )
+@@ -127,26 +126,28 @@
+ cr = cairo_create(lx_b->pixmap);
+ cairo_set_line_width (cr, 1.0);
+
+- /* draw background */
+- gdk_cairo_set_source_color(cr, &lx_b->background);
+- cairo_rectangle(cr, 0, 0, lx_b->width, lx_b->height);
+- cairo_fill(cr);
+-
+ /* no battery is found */
+- if( b == NULL )
++ if( b == NULL || b->percentage < 0 )
+ {
+ gtk_widget_set_tooltip_text( lx_b->drawingArea, _("No batteries found") );
+- goto update_done;
++ gdk_cairo_set_source_color(cr, &lx_b->background);
++ cairo_rectangle(cr, 0, 0, lx_b->width, lx_b->height);
++ cairo_fill(cr);
++ return;
+ }
+
++ /* draw background */
++ gdk_cairo_set_source_color(cr, &lx_b->background);
++ cairo_rectangle(cr, 0, 0, lx_b->width, lx_b->height);
++ cairo_fill(cr);
++
+ /* fixme: only one battery supported */
+
+- rate = lx_b->b->current_now;
+ isCharging = battery_is_charging ( b );
+
+ /* Consider running the alarm command */
+- if ( !isCharging && rate > 0 &&
+- ( ( battery_get_remaining( b ) / 60 ) < lx_b->alarmTime ) )
++ if ( !isCharging &&
++ ( ( b->percentage ) < lx_b->alarmPercentage ) )
+ {
+ /* Shrug this should be done using glibs process functions */
+ /* Alarms should not run concurrently; determine whether an alarm is
+@@ -176,7 +177,7 @@
+ int left_seconds = b->seconds - 3600 * hours;
+ int minutes = left_seconds / 60;
+ snprintf(tooltip, 256,
+- _("Battery: %d%% charged, %d:%02d until full"),
++ _("Battery: %d%% charged"),
+ lx_b->b->percentage,
+ hours,
+ minutes );
+@@ -187,10 +188,10 @@
+ int left_seconds = b->seconds - 3600 * hours;
+ int minutes = left_seconds / 60;
+ snprintf(tooltip, 256,
+- _("Battery: %d%% charged, %d:%02d left"),
++ _("Battery: %d%% charged, %d:%02dh left"),
+ lx_b->b->percentage,
+- hours,
+- minutes );
++ hours,
++ minutes);
+ } else {
+ snprintf(tooltip, 256,
+ _("Battery: %d%% charged"),
+@@ -236,8 +237,6 @@
+ cairo_fill(cr);
+
+ }
+-
+-update_done:
+ if( repaint )
+ gtk_widget_queue_draw( lx_b->drawingArea );
+
+@@ -247,19 +246,12 @@
+
+ /* This callback is called every 3 seconds */
+ static int update_timout(lx_battery *lx_b) {
+- battery *bat;
+ GDK_THREADS_ENTER();
+ lx_b->state_elapsed_time++;
+ lx_b->info_elapsed_time++;
+
+- bat = battery_update( lx_b->b );
+- if (bat == NULL)
+- {
+- battery_free(lx_b->b);
+-
+- /* maybe in the mean time a battery has been inserted. */
+- lx_b->b = battery_get();
+- }
++ /* check the batteries every 3 seconds */
++ battery_update( lx_b->b );
+
+ update_display( lx_b, TRUE );
+
+@@ -346,6 +338,10 @@
+ /* get available battery */
+ lx_b->b = battery_get ();
+
++ /* no battery available */
++ if ( lx_b->b == NULL )
++ goto error;
++
+ p->pwid = gtk_event_box_new();
+ GTK_WIDGET_SET_FLAGS( p->pwid, GTK_NO_WINDOW );
+ gtk_container_set_border_width( GTK_CONTAINER(p->pwid), 1 );
+@@ -380,7 +376,7 @@
+ = lx_b->dischargingColor1 = lx_b->dischargingColor2 = NULL;
+
+ /* Set default values for integers */
+- lx_b->alarmTime = 5;
++ lx_b->alarmPercentage = 10;
+ lx_b->requestedBorder = 1;
+
+ line s;
+@@ -409,8 +405,8 @@
+ lx_b->dischargingColor1 = g_strdup(s.t[1]);
+ else if (!g_ascii_strcasecmp(s.t[0], "DischargingColor2"))
+ lx_b->dischargingColor2 = g_strdup(s.t[1]);
+- else if (!g_ascii_strcasecmp(s.t[0], "AlarmTime"))
+- lx_b->alarmTime = atoi(s.t[1]);
++ else if (!g_ascii_strcasecmp(s.t[0], "AlarmPercentage"))
++ lx_b->alarmPercentage = atoi(s.t[1]);
+ else if (!g_ascii_strcasecmp(s.t[0], "BorderWidth"))
+ lx_b->requestedBorder = atoi(s.t[1]);
+ else if (!g_ascii_strcasecmp(s.t[0], "Size")) {
+@@ -477,9 +473,6 @@
+
+ lx_battery *b = (lx_battery *) p->priv;
+
+- if (b->b != NULL)
+- battery_free(b->b);
+-
+ if (b->pixmap)
+ cairo_surface_destroy(b->pixmap);
+
+@@ -562,7 +555,7 @@
+ _("Hide if there is no battery"), &b->hide_if_no_battery, CONF_TYPE_BOOL,
+ #endif
+ _("Alarm command"), &b->alarmCommand, CONF_TYPE_STR,
+- _("Alarm time (minutes left)"), &b->alarmTime, CONF_TYPE_INT,
++ _("Alarm percentage (percentage left)"), &b->alarmPercentage, CONF_TYPE_INT,
+ _("Background color"), &b->backgroundColor, CONF_TYPE_STR,
+ _("Charging color 1"), &b->chargingColor1, CONF_TYPE_STR,
+ _("Charging color 2"), &b->chargingColor2, CONF_TYPE_STR,
+@@ -582,7 +575,7 @@
+
+ lxpanel_put_bool(fp, "HideIfNoBattery",lx_b->hide_if_no_battery);
+ lxpanel_put_str(fp, "AlarmCommand", lx_b->alarmCommand);
+- lxpanel_put_int(fp, "AlarmTime", lx_b->alarmTime);
++ lxpanel_put_int(fp, "AlarmPercentage", lx_b->alarmPercentage);
+ lxpanel_put_str(fp, "BackgroundColor", lx_b->backgroundColor);
+ lxpanel_put_int(fp, "BorderWidth", lx_b->requestedBorder);
+ lxpanel_put_str(fp, "ChargingColor1", lx_b->chargingColor1);
diff --git a/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.c b/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.c
new file mode 100644
index 000000000000..26a239f765fa
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.c
@@ -0,0 +1,304 @@
+--- ./src/plugins/batt/batt_sys.c.orig 2014-05-09 09:15:04.000000000 -0400
++++ ./src/plugins/batt/batt_sys.c 2014-05-27 18:14:06.000000000 -0400
+@@ -39,26 +39,10 @@
+ static int battery_num = 1;
+ battery * b = g_new0 ( battery, 1 );
+ b->type_battery = TRUE;
+- b->capacity_unit = "mAh";
+- b->energy_full = -1;
+- b->charge_full = -1;
+- b->voltage_now = -1;
+- b->energy_full_design = -1;
+- b->charge_full_design = -1;
+- b->energy_now = -1;
+- b->charge_now = -1;
+- b->current_now = -1;
+- b->power_now = -1;
+ b->state = NULL;
+- b->battery_num = battery_num;
+- b->seconds = -1;
+- b->percentage = -1;
+- b->poststr = NULL;
+- battery_num++;
+ return b;
+ }
+
+-
+ static gchar* parse_info_file(battery *b, char *sys_file)
+ {
+ char *buf = NULL;
+@@ -97,7 +81,7 @@
+ return parse_info_file(b, sys_file);
+ }
+
+-void battery_print(battery *b, int show_capacity)
++void battery_print(battery *b)
+ {
+ if ( b->type_battery )
+ {
+@@ -110,215 +94,65 @@
+ int seconds = b->seconds - 3600 * hours;
+ int minutes = seconds / 60;
+ seconds -= 60 * minutes;
+- printf(", %02d:%02d:%02d%s", hours, minutes, seconds,
+- b->poststr);
++ printf(", %02d:%02d:%02d", hours, minutes, seconds);
+ } else if (b->poststr != NULL) {
+ printf(", %s", b->poststr);
+ }
+
+ printf("\n");
+
+- if (show_capacity && b->charge_full_design > 0) {
+- int percentage = -1;
+- int charge_full = -1;
+- if (b->charge_full <= 100) {
+- /* some broken systems just give a percentage here */
+- percentage = b->charge_full;
+- charge_full = percentage * b->charge_full_design / 100;
+- } else {
+- percentage = b->charge_full * 100 / b->charge_full_design;
+- charge_full = b->charge_full;
+- }
+- if (percentage > 100)
+- percentage = 100;
+-
+- printf ("%s %d: design capacity %d %s, "
+- "last full capacity %d %s = %d%%\n",
+- BATTERY_DESC, b->battery_num - 1, b->charge_full_design,
+- b->capacity_unit, charge_full, b->capacity_unit,
+- percentage);
+- }
+ }
+ }
+ }
+
+
+-static gboolean battery_inserted(gchar* path)
+-{
+- if (path == NULL)
+- return FALSE;
+-
+- GString *dirname = g_string_new(ACPI_PATH_SYS_POWER_SUPPY);
+- GDir *dir;
+-
+- g_string_append_printf (dirname, "/%s/", path);
+- dir = g_dir_open(dirname->str, 0, NULL);
+- if (dir)
+- g_dir_close(dir);
+- g_string_free(dirname, TRUE);
+-
+- return dir ? TRUE : FALSE;
+-}
+-
+-
+-battery* battery_update(battery *b)
++void battery_update(battery *b)
+ {
+- gchar *gctmp;
+-
+- if (b == NULL)
+- return NULL;
+-
+- if (!battery_inserted(b->path))
+- return NULL;
+-
+- /* read from sysfs */
+- b->charge_now = get_gint_from_infofile(b, "charge_now");
+- b->energy_now = get_gint_from_infofile(b, "energy_now");
+-
+- b->current_now = get_gint_from_infofile(b, "current_now");
+- b->power_now = get_gint_from_infofile(b, "power_now");
+- /* FIXME: Some battery drivers report -1000 when the discharge rate is
+- * unavailable. Others use negative values when discharging. Best we can do
+- * is to treat -1 as an error, and take the absolute value otherwise.
+- * Ideally the kernel would not export the sysfs file when the value is not
+- * available. */
+- if (b->current_now < -1)
+- b->current_now = - b->current_now;
+- if (b->power_now < -1)
+- b->power_now = - b->power_now;
+-
+- b->charge_full = get_gint_from_infofile(b, "charge_full");
+- b->energy_full = get_gint_from_infofile(b, "energy_full");
+-
+- b->charge_full_design = get_gint_from_infofile(b, "charge_full_design");
+- b->energy_full_design = get_gint_from_infofile(b, "energy_full_design");
+-
+- b->voltage_now = get_gint_from_infofile(b, "voltage_now");
+-
+- gctmp = get_gchar_from_infofile(b, "type");
+- b->type_battery = gctmp ? (strcasecmp(gctmp, "battery") == 0) : TRUE;
+-
+- b->state = get_gchar_from_infofile(b, "status");
+- if (!b->state)
+- b->state = get_gchar_from_infofile(b, "state");
+- if (!b->state) {
+- if (b->charge_now != -1 || b->energy_now != -1
+- || b->charge_full != -1 || b->energy_full != -1)
+- b->state = "available";
+- else
+- b->state = "unavailable";
+- }
+-
+-
+- /* convert energy values (in mWh) to charge values (in mAh) if needed and possible */
+-
+- if (b->energy_full != -1 && b->charge_full == -1) {
+- if (b->voltage_now != -1 && b->voltage_now != 0) {
+- b->charge_full = b->energy_full * 1000 / b->voltage_now;
+- } else {
+- b->charge_full = b->energy_full;
+- b->capacity_unit = "mWh";
+- }
+- }
+-
+- if (b->energy_full_design != -1 && b->charge_full_design == -1) {
+- if (b->voltage_now != -1 && b->voltage_now != 0) {
+- b->charge_full_design = b->energy_full_design * 1000 / b->voltage_now;
+- } else {
+- b->charge_full_design = b->energy_full_design;
+- b->capacity_unit = "mWh";
+- }
+- }
+-
+- if (b->energy_now != -1 && b->charge_now == -1) {
+- if (b->voltage_now != -1 && b->voltage_now != 0) {
+- b->charge_now = b->energy_now * 1000 / b->voltage_now;
+- if (b->current_now != -1)
+- b->current_now = b->current_now * 1000 / b->voltage_now;
+- } else {
+- b->charge_now = b->energy_now;
+- }
+- }
+-
+- if (b->power_now != -1 && b->current_now == -1) {
+- if (b->voltage_now != -1 && b->voltage_now != 0)
+- b->current_now = b->power_now * 1000 / b->voltage_now;
+- }
+-
+-
+- if (b->charge_full < MIN_CAPACITY)
+- b->percentage = 0;
+- else {
+- int promille = (b->charge_now * 1000) / b->charge_full;
+- b->percentage = (promille + 5) / 10; /* round properly */
+- }
+- if (b->percentage > 100)
+- b->percentage = 100;
++ char sstmp[ 100 ];
++ int c, state;
++ size_t intlen = sizeof c;
+
++ snprintf(sstmp, sizeof(sstmp), "hw.acpi.battery.life");
++ sysctlbyname(sstmp, &c, &intlen, NULL, 0);
++ b->percentage = c;
++
++ snprintf(sstmp, sizeof(sstmp), "hw.acpi.battery.state");
++ sysctlbyname(sstmp, &state, &intlen, NULL, 0);
+
+- if (b->current_now == -1) {
+- b->poststr = "rate information unavailable";
+- b->seconds = -1;
+- } else if (!strcasecmp(b->state, "charging")) {
+- if (b->current_now > MIN_PRESENT_RATE) {
+- b->seconds = 3600 * (b->charge_full - b->charge_now) / b->current_now;
+- b->poststr = " until charged";
+- } else {
+- b->poststr = "charging at zero rate - will never fully charge.";
+- b->seconds = -1;
+- }
+- } else if (!strcasecmp(b->state, "discharging")) {
+- if (b->current_now > MIN_PRESENT_RATE) {
+- b->seconds = 3600 * b->charge_now / b->current_now;
+- b->poststr = " remaining";
+- } else {
+- b->poststr = "discharging at zero rate - will never fully discharge.";
+- b->seconds = -1;
+- }
+- } else {
+- b->poststr = NULL;
+- b->seconds = -1;
+- }
++ switch(state) {
++ case BATT_FULL:
++ b->state = "Full";
++ break;
++ case BATT_DISCHARGING:
++ b->state = "Discharging";
++ break;
++ case BATT_CHARGING:
++ b->state = "Charging";
++ break;
++ case BATT_CRITICAL:
++ b->state = "Critical";
++ break;
++ case BATT_NONE:
++ b->state = "Unavailable";
++ break;
++ default:
++ b->state = "Unknown";
++ break;
++
++ }
++
++ snprintf(sstmp, sizeof(sstmp), "hw.acpi.battery.time");
++ sysctlbyname(sstmp, &c, &intlen, NULL, 0);
++ b->seconds = c * 60;
+
+- return b;
+ }
+
+-
+ battery *battery_get() {
+- GError * error = NULL;
+- const gchar *entry;
+- GDir * dir = g_dir_open( ACPI_PATH_SYS_POWER_SUPPY, 0, &error );
+- battery *b = NULL;
+- if ( dir == NULL )
+- {
+- g_warning( "NO ACPI/sysfs support in kernel: %s", error->message );
+- return NULL;
+- }
+- while ( ( entry = g_dir_read_name (dir) ) != NULL )
+- {
+- b = battery_new();
+- b->path = g_strdup( entry );
+- battery_update ( b );
+- if ( b->type_battery == TRUE )
+- break;
+- /* ignore non-batteries */
+- else {
+- g_free(b);
+- b = NULL;
+- }
+- }
+- g_dir_close( dir );
++ battery *b = battery_new();
++ battery_update(b);
+ return b;
+ }
+
+-void battery_free(battery* bat)
+-{
+- if (bat) {
+- g_free(bat->path);
+- g_free(bat);
+- }
+-}
+-
+ gboolean battery_is_charging( battery *b )
+ {
+ if (!b->state)
+@@ -327,11 +161,3 @@
+ strcasecmp( b->state, "Full" ) == 0
+ || strcasecmp( b->state, "Charging" ) == 0 );
+ }
+-
+-gint battery_get_remaining( battery *b )
+-{
+- return b->seconds;
+-}
+-
+-
+-/* vim: set sw=4 et sts=4 : */
diff --git a/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.h b/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.h
new file mode 100644
index 000000000000..1833b75e3c20
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.h
@@ -0,0 +1,38 @@
+--- ./src/plugins/batt/batt_sys.h.orig 2014-05-09 09:15:04.000000000 -0400
++++ ./src/plugins/batt/batt_sys.h 2014-05-27 18:14:12.000000000 -0400
+@@ -23,6 +23,12 @@
+ #ifndef BATT_SYS_H
+ #define BATT_SYS_H
+
++/* The states a battery can have */
++#define BATT_FULL 0
++#define BATT_DISCHARGING 1
++#define BATT_CHARGING 2
++#define BATT_CRITICAL 5
++#define BATT_NONE 7
+
+ #define BUF_SIZE 1024
+ #define ACPI_PATH_SYS_POWER_SUPPY "/sys/class/power_supply"
+@@ -35,7 +41,7 @@
+ typedef struct battery {
+ int battery_num;
+ /* path to battery dir */
+- gchar *path;
++ const gchar *path;
+ /* sysfs file contents */
+ int charge_now;
+ int energy_now;
+@@ -55,10 +61,9 @@
+ } battery;
+
+ battery *battery_get();
+-battery *battery_update( battery *b );
+-void battery_print(battery *b, int show_capacity);
++void battery_update( battery *b );
++void battery_print(battery *b);
++void battery_reset(battery *b);
+ gboolean battery_is_charging( battery *b );
+-gint battery_get_remaining( battery *b );
+-void battery_free(battery* bat);
+
+ #endif
diff --git a/x11/lxpanel/files/patch-src__plugins__cpufreq__cpufreq.c b/x11/lxpanel/files/patch-src__plugins__cpufreq__cpufreq.c
new file mode 100644
index 000000000000..cf6547a2095f
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__cpufreq__cpufreq.c
@@ -0,0 +1,411 @@
+--- ./src/plugins/cpufreq/cpufreq.c.orig 2014-05-15 23:39:21.000000000 -0400
++++ ./src/plugins/cpufreq/cpufreq.c 2014-05-15 23:57:32.000000000 -0400
+@@ -33,28 +33,13 @@
+
+ #include "dbg.h"
+
+-#define PROC_ICON PACKAGE_DATA_DIR "/lxpanel/images/cpufreq-icon.png"
+-#define SYSFS_CPU_DIRECTORY "/sys/devices/system/cpu"
+-#define SCALING_GOV "scaling_governor"
+-#define SCALING_AGOV "scaling_available_governors"
+-#define SCALING_AFREQ "scaling_available_frequencies"
+-#define SCALING_CUR_FREQ "scaling_cur_freq"
+-#define SCALING_SETFREQ "scaling_setspeed"
+-#define SCALING_MAX "scaling_max_freq"
+-#define SCALING_MIN "scaling_min_freq"
+-
+-
+ typedef struct {
+ GtkWidget *main;
+ GtkWidget *namew;
+ GtkTooltips *tip;
+- GList *governors;
+ GList *cpus;
+- int has_cpufreq;
+- char* cur_governor;
+ int cur_freq;
+ unsigned int timer;
+- gboolean remember;
+ } cpufreq;
+
+ typedef struct {
+@@ -63,243 +48,32 @@
+ } Param;
+
+ static void
+-get_cur_governor(cpufreq *cf){
+- FILE *fp;
+- char buf[ 100 ], sstmp [ 256 ];
+
+- sprintf(sstmp,"%s/%s",cf->cpus->data, SCALING_GOV);
+- if ((fp = fopen( sstmp, "r")) != NULL) {
+- fgets(buf, 100, fp);
+- buf[strlen(buf)-1] = '\0';
+- if(cf->cur_governor)
+- {
+- g_free(cf->cur_governor);
+- cf->cur_governor = NULL;
+- }
+- cf->cur_governor = strdup(buf);
+- fclose(fp);
+- }
+-}
+-
+-static void
+ get_cur_freq(cpufreq *cf){
+- FILE *fp;
+- char buf[ 100 ], sstmp [ 256 ];
+-
+- sprintf(sstmp,"%s/%s",cf->cpus->data, SCALING_CUR_FREQ);
+- if ((fp = fopen( sstmp, "r")) != NULL) {
+- fgets(buf, 100, fp);
+- buf[strlen(buf)-1] = '\0';
+- cf->cur_freq = atoi(buf);
+- fclose(fp);
+- }
+-}
+-
+-static void
+-get_governors(cpufreq *cf){
+- FILE *fp;
+- GList *l;
+- char buf[ 100 ], sstmp [ 256 ], c, bufl = 0;
+-
+- g_list_free(cf->governors);
+- cf->governors = NULL;
+-
+- get_cur_governor(cf);
+-
+- if(cf->cpus == NULL){
+- cf->governors = NULL;
+- return;
+- }
+- sprintf(sstmp,"%s/%s",cf->cpus->data, SCALING_AGOV);
+-
+- if (!(fp = fopen( sstmp, "r"))) {
+- printf("cpufreq: cannot open %s\n",sstmp);
+- return;
+- }
+-
+- while((c = fgetc(fp)) != EOF){
+- if(c == ' '){
+- if(bufl > 1){
+- buf[bufl] = '\0';
+- cf->governors = g_list_append(cf->governors, strdup(buf));
+- }
+- bufl = 0;
+- buf[0] = '\0';
+- }else{
+- buf[bufl++] = c;
+- }
+- }
+-
+- fclose(fp);
+-}
+-
+-static void
+-cpufreq_set_freq(GtkWidget *widget, Param* p){
+- FILE *fp;
+- char buf[ 100 ], sstmp [ 256 ];
+-
+- if(strcmp(p->cf->cur_governor, "userspace")) return;
+-
+- sprintf(sstmp,"%s/%s",p->cf->cpus->data, SCALING_SETFREQ);
+- if ((fp = fopen( sstmp, "w")) != NULL) {
+- fprintf(fp,"%s",p->data);
+- fclose(fp);
+- }
+-}
+-
+-static GtkWidget *
+-frequency_menu(cpufreq *cf){
+- FILE *fp;
+- Param* param;
+- char buf[ 100 ], sstmp [ 256 ], c, bufl = 0;
+-
+- sprintf(sstmp,"%s/%s",cf->cpus->data, SCALING_AFREQ);
+-
+- if (!(fp = fopen( sstmp, "r"))) {
+- printf("cpufreq: cannot open %s\n",sstmp);
+- return 0;
+- }
+-
+- GtkMenu* menu = GTK_MENU(gtk_menu_new());
+- GtkWidget* menuitem;
+-
+- while((c = fgetc(fp)) != EOF){
+- if(c == ' '){
+- if(bufl > 1){
+- buf[bufl] = '\0';
+- menuitem = gtk_menu_item_new_with_label(strdup(buf));
+- gtk_menu_append (GTK_MENU_SHELL (menu), menuitem);
+- gtk_widget_show (menuitem);
+- param = g_new0(Param, 1);
+- param->data = strdup(buf);
+- param->cf = cf;
+- g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(cpufreq_set_freq), param);
+- g_object_weak_ref(G_OBJECT(menuitem), (GWeakNotify)g_free, param);
+- }
+- bufl = 0;
+- buf[0] = '\0';
+- }else{
+- buf[bufl++] = c;
+- }
+- }
++ char sstmp [ 256 ];
++ int c;
++ size_t clen = sizeof c;
+
+- fclose(fp);
+- return GTK_WIDGET(menu);
++ snprintf(sstmp, sizeof(sstmp), "dev.cpu.0.freq");
++ if (sysctlbyname(sstmp, &c, &clen, NULL, 0) != 0 || clen != sizeof c)
++ return;
++ printf("freq: %d\n", c);
++ cf->cur_freq = c;
+ }
+
+ static void
+ get_cpus(cpufreq *cf)
+ {
+-
+ const char *cpu;
+- char cpu_path[100];
+-
+- GDir * cpuDirectory = g_dir_open(SYSFS_CPU_DIRECTORY, 0, NULL);
+- if (cpuDirectory == NULL)
+- {
+- cf->cpus = NULL;
+- printf("cpufreq: no cpu found\n");
+- return;
+- }
+-
+- while ((cpu = g_dir_read_name(cpuDirectory)))
+- {
+- /* Look for directories of the form "cpu<n>", where "<n>" is a decimal integer. */
+- if ((strncmp(cpu, "cpu", 3) == 0) && (cpu[3] >= '0') && (cpu[3] <= '9'))
+- {
+- sprintf(cpu_path, "%s/%s/cpufreq", SYSFS_CPU_DIRECTORY, cpu);
+-
+- GDir * cpufreqDir = g_dir_open(SYSFS_CPU_DIRECTORY, 0, NULL);
+- if (cpufreqDir == NULL)
+- {
+- cf->cpus = NULL;
+- cf->has_cpufreq = 0;
+- break;
+- }
+-
+- cf->has_cpufreq = 1;
+- cf->cpus = g_list_append(cf->cpus, strdup(cpu_path));
+- }
+- }
+- g_dir_close(cpuDirectory);
+-}
+-
+-static void
+-cpufreq_set_governor(GtkWidget *widget, Param* p){
+- FILE *fp;
+- char buf[ 100 ], sstmp [ 256 ];
+-
+- sprintf(sstmp, "%s/%s", p->cf->cpus->data, SCALING_GOV);
+- if ((fp = fopen( sstmp, "w")) != NULL) {
+- fprintf(fp,"%s",p->data);
+- fclose(fp);
+- }
+-}
+-
+-static GtkWidget *
+-cpufreq_menu(cpufreq *cf){
+- GList *l;
+- GSList *group;
+- char buff[100];
+- GtkMenuItem* menuitem;
+- Param* param;
+-
+- GtkMenu* menu = GTK_MENU(gtk_menu_new());
+- g_signal_connect(menu, "selection-done", G_CALLBACK(gtk_widget_destroy), NULL);
+-
+- get_governors(cf);
+- group = NULL;
+-
+- if((cf->governors == NULL) || (!cf->has_cpufreq) || (cf->cur_governor == NULL)){
+- menuitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label("CPUFreq not supported"));
+- gtk_menu_append (GTK_MENU_SHELL (menu), GTK_WIDGET (menuitem));
+- gtk_widget_show (GTK_WIDGET (menuitem));
+- return GTK_WIDGET(menu);
+- }
+-
+- if(strcmp(cf->cur_governor, "userspace") == 0){
+- menuitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label(" Frequency"));
+- gtk_menu_append (GTK_MENU_SHELL (menu), GTK_WIDGET (menuitem));
+- gtk_widget_show (GTK_WIDGET (menuitem));
+- gtk_menu_item_set_submenu(menuitem, frequency_menu(cf));
+- menuitem = GTK_MENU_ITEM(gtk_separator_menu_item_new());
+- gtk_menu_append (GTK_MENU_SHELL (menu), GTK_WIDGET (menuitem));
+- gtk_widget_show (GTK_WIDGET(menuitem));
+- }
+-
+- for( l = cf->governors; l; l = l->next )
+- {
+- if(strcmp((char*)l->data, cf->cur_governor) == 0){
+- sprintf(buff,"> %s", l->data);
+- menuitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label(strdup(buff)));
+- }else{
+- sprintf(buff," %s", l->data);
+- menuitem = GTK_MENU_ITEM(gtk_menu_item_new_with_label(strdup(buff)));
+- }
+-
+- gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (menuitem));
+- gtk_widget_show (GTK_WIDGET (menuitem));
+- param = g_new0(Param, 1);
+- param->data = l->data;
+- param->cf = cf;
+- g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(cpufreq_set_governor), param);
+- g_object_weak_ref(G_OBJECT(menuitem), (GWeakNotify) g_free, param);
+- }
+-
+- return GTK_WIDGET (menu);
++ cf->cpus = g_list_append(cf->cpus, strdup("dev.cpu.0.freq"));
+ }
+
+-
+-
+ static gboolean
+ clicked( GtkWidget *widget, GdkEventButton* evt, Plugin* plugin)
+ {
+ ENTER2;
+ if( evt->button == 1 )
+ {
+-// Setting governor can't work without root privilege
+-// gtk_menu_popup( cpufreq_menu((cpufreq*)plugin->priv), NULL, NULL, NULL, NULL,
+-// evt->button, evt->time );
+ return TRUE;
+ }else if ( evt->button == 3 )
+ {
+@@ -316,15 +90,16 @@
+ update_tooltip(cpufreq *cf)
+ {
+ char *tooltip;
++ char buffer [60];
+
+ get_cur_freq(cf);
+- get_cur_governor(cf);
+
+ ENTER;
+
+- tooltip = g_strdup_printf("Frequency: %d MHz\nGovernor: %s",
+- cf->cur_freq / 1000, cf->cur_governor);
++ tooltip = g_strdup_printf("Frequency: %d MHz", cf->cur_freq );
+ gtk_tooltips_set_tip(cf->tip, cf->main, tooltip, NULL);
++ sprintf(buffer, "<span color=\"#ffffff\"><b>%d MHz</b></span>", cf->cur_freq);
++ gtk_label_set_markup (GTK_LABEL(cf->namew), buffer);
+ g_free(tooltip);
+ RET(TRUE);
+ }
+@@ -337,7 +112,6 @@
+
+ ENTER;
+ cf = g_new0(cpufreq, 1);
+- cf->governors = NULL;
+ cf->cpus = NULL;
+ g_return_val_if_fail(cf != NULL, 0);
+ p->priv = cf;
+@@ -346,7 +120,7 @@
+ GTK_WIDGET_SET_FLAGS( p->pwid, GTK_NO_WINDOW );
+ gtk_container_set_border_width( GTK_CONTAINER(p->pwid), 2 );
+
+- cf->namew = gtk_image_new_from_file(PROC_ICON);
++ cf->namew = gtk_label_new("xxx");
+ gtk_container_add(GTK_CONTAINER(p->pwid), cf->namew);
+
+ cf->main = p->pwid;
+@@ -361,34 +135,8 @@
+
+ g_signal_connect (G_OBJECT (p->pwid), "button_press_event", G_CALLBACK (clicked), (gpointer) p);
+
+- cf->has_cpufreq = 0;
+-
+ get_cpus(cf);
+
+-/* line s;
+- s.len = 256;
+-
+- if (fp) {
+- while (lxpanel_get_line(fp, &s) != LINE_BLOCK_END) {
+- if (s.type == LINE_NONE) {
+- ERR( "cpufreq: illegal token %s\n", s.str);
+- goto error;
+- }
+- if (s.type == LINE_VAR) {
+- if (!g_ascii_strcasecmp(s.t[0], "DefaultGovernor")){
+- //cf->str_cl_normal = g_strdup(s.t[1]);
+- }else {
+- ERR( "cpufreq: unknown var %s\n", s.t[0]);
+- continue;
+- }
+- }
+- else {
+- ERR( "cpufreq: illegal in cfis context %s\n", s.str);
+- goto error;
+- }
+- }
+-
+- }*/
+ update_tooltip(cf);
+ cf->timer = g_timeout_add_seconds(2, (GSourceFunc)update_tooltip, (gpointer)cf);
+
+@@ -400,53 +148,24 @@
+ RET(FALSE);*/
+ }
+
+-static void applyConfig(Plugin* p) { }
+-
+-static void config(Plugin *p, GtkWindow* parent) {
+- ENTER;
+-
+- GtkWidget *dialog;
+- cpufreq *cf = (cpufreq *) p->priv;
+- dialog = create_generic_config_dlg(_(p->class->name),
+- GTK_WIDGET(parent),
+- (GSourceFunc) applyConfig, (gpointer) p,
+- _("Remember governor and frequency"), &cf->remember, CONF_TYPE_BOOL,
+- NULL);
+- gtk_window_present(GTK_WINDOW(dialog));
+-
+- RET();
+-}
+-
+ static void
+ cpufreq_destructor(Plugin *p)
+ {
+ cpufreq *cf = (cpufreq *)p->priv;
+ g_list_free ( cf->cpus );
+- g_list_free ( cf->governors );
+ g_source_remove(cf->timer);
+ g_free(cf);
+ }
+
+-static void save_config( Plugin* p, FILE* fp )
+-{
+- cpufreq *cf = (cpufreq *)p->priv;
+-
+- lxpanel_put_bool( fp, "Remember", cf->remember);
+- lxpanel_put_str( fp, "Governor", cf->cur_governor );
+- lxpanel_put_int( fp, "Frequency", cf->cur_freq );
+-}
+-
+ PluginClass cpufreq_plugin_class = {
+ PLUGINCLASS_VERSIONING,
+
+ type : "cpufreq",
+ name : N_("CPUFreq frontend"),
+ version: "0.1",
+- description : N_("Display CPU frequency and allow to change governors and frequency"),
++ description : N_("Display CPU frequency"),
+
+ constructor : cpufreq_constructor,
+ destructor : cpufreq_destructor,
+- config : config,
+- save : NULL,
+ panel_configuration_changed : NULL
+ };
diff --git a/x11/lxpanel/files/patch-src__plugins__netstatus__netstatus-sysdeps.c b/x11/lxpanel/files/patch-src__plugins__netstatus__netstatus-sysdeps.c
new file mode 100644
index 000000000000..6d9d9f2dbb88
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__netstatus__netstatus-sysdeps.c
@@ -0,0 +1,222 @@
+--- ./src/plugins/netstatus/netstatus-sysdeps.c.orig 2014-05-15 22:37:08.000000000 -0400
++++ ./src/plugins/netstatus/netstatus-sysdeps.c 2014-05-15 22:53:33.000000000 -0400
+@@ -37,13 +37,26 @@
+
+ #ifdef __FreeBSD__
+ #include <sys/types.h>
++#include <sys/param.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
++#include <ifaddrs.h>
+ #include <net/if.h>
++#include <net/if_media.h>
+ #include <net/if_var.h>
++#if __FreeBSD_version < 700046
+ #include <dev/an/if_aironet_ieee.h>
+ #include <dev/wi/if_wavelan_ieee.h>
+ #endif
++#if __FreeBSD_version >= 602000
++#include <net80211/ieee80211.h>
++#include <net80211/ieee80211_ioctl.h>
++#endif
++#include <stdlib.h>
++#ifndef IEEE80211_ADDR_COPY
++#define IEEE80211_ADDR_COPY(dst, src) memcpy(dst, src, IEEE80211_ADDR_LEN)
++#endif
++#endif
+
+ static inline gboolean
+ parse_stats (char *buf,
+@@ -426,15 +439,16 @@
+ return TRUE;
+ }
+
++#if __FreeBSD_version < 700046
+ static inline char *
+ get_an_data (const char *iface,
+ int *signal_strength)
+ {
++ struct an_ltv_status *sts;
++ struct an_req areq;
+ #ifdef AN_RID_RSSI_MAP
+ struct an_ltv_rssi_map an_rssimap;
+ #endif
+- struct an_req areq;
+- struct an_ltv_status *sts;
+ int level;
+ char *error = NULL;
+ gboolean rssimap_valid = FALSE;
+@@ -486,11 +500,11 @@
+ level = (int) wreq.wi_val[1];
+
+ #ifdef WI_RID_READ_APS
+- if (signal_strength <= 0)
++ if (level <= 0)
+ {
+ /* we fail to get signal strength by usual means, try another way */
+ static time_t last_scan;
+- static long int cached;
++ static int cached;
+ time_t now;
+
+ now = time (NULL);
+@@ -510,15 +524,15 @@
+ if (nstations > 0)
+ {
+ w = (struct wi_apinfo *)(((char *) &wreq.wi_val) + sizeof (int));
+- signal_strength = (long int) w->signal;
++ level = w->signal;
+ }
+
+- cached = signal_strength;
++ cached = level;
+ last_scan = now;
+ }
+ else
+ {
+- signal_strength = cached;
++ level = cached;
+ }
+ }
+ #endif
+@@ -527,6 +541,77 @@
+
+ return error;
+ }
++#endif /* __FreeBSD_version < 700046 */
++
++#if __FreeBSD_version >= 602000
++static inline char *
++get_net80211_data (const char *iface,
++ int *signal_strength)
++{
++ struct ieee80211req_sta_info *si;
++ struct ieee80211req ireq;
++ int level;
++ int s;
++ uint8_t mac[IEEE80211_ADDR_LEN];
++ int8_t noise;
++ char *error = NULL;
++ union {
++ struct ieee80211req_sta_req info;
++ char buf[1024];
++ } u_info;
++
++ memset (&u_info, 0, sizeof (u_info));
++ memset (&ireq, 0, sizeof (ireq));
++
++ strlcpy (ireq.i_name, iface, sizeof (ireq.i_name));
++ ireq.i_type = IEEE80211_IOC_BSSID;
++ ireq.i_data = mac;
++ ireq.i_len = IEEE80211_ADDR_LEN;
++
++ s = socket (AF_INET, SOCK_DGRAM, 0);
++ if (s == -1)
++ {
++ error = g_strdup_printf (_("Could not connect to interface, '%s'"), iface);
++ return error;
++ }
++
++ if (ioctl (s, SIOCG80211, &ireq) == -1)
++ {
++ error = g_strdup_printf (_("Could not get MAC for interface, '%s'"), iface);
++ close (s);
++ return error;
++ }
++
++ IEEE80211_ADDR_COPY (u_info.info.is_u.macaddr, mac);
++ ireq.i_type = IEEE80211_IOC_STA_INFO;
++ ireq.i_data = (caddr_t) &u_info;
++ ireq.i_len = sizeof (u_info);
++
++ if (ioctl (s, SIOCG80211, &ireq) == -1)
++ {
++ error = g_strdup_printf (_("Could not send ioctl to interface, '%s'"), iface);
++ close (s);
++ return error;
++ }
++
++ close (s);
++
++ si = &u_info.info.info[0];
++ noise = si->isi_noise;
++ if (si->isi_rssi == 0)
++ level = 0;
++ else
++ {
++ if (noise == 0)
++ noise = -95;
++ level = (int) abs (rint ((si->isi_rssi / (si->isi_rssi/2. + noise)) * 100.0));
++ level = CLAMP (level, 0, 100);
++ }
++
++ memcpy (signal_strength, &level, sizeof (signal_strength));
++ return error;
++}
++#endif /* __FreeBSD_version >= 602000 */
+
+ char *
+ netstatus_sysdeps_read_iface_wireless_details (const char *iface,
+@@ -544,25 +629,54 @@
+ if (signal_strength)
+ *signal_strength = 0;
+
+- if (g_strncasecmp (iface, "an", 2) &&
+- g_strncasecmp (iface, "wi", 2) &&
+- g_strncasecmp (iface, "ath", 3) &&
+- g_strncasecmp (iface, "ndis", 4) &&
+- g_strncasecmp (iface, "ipw", 3) &&
+- g_strncasecmp (iface, "iwi", 3) &&
+- g_strncasecmp (iface, "acx", 3))
++#if __FreeBSD_version >= 800036
++ if (g_ascii_strncasecmp (iface, "wlan", 4))
+ return error_message;
++#else
++ if (g_ascii_strncasecmp (iface, "acx", 3) &&
++ g_ascii_strncasecmp (iface, "an", 2) &&
++ g_ascii_strncasecmp (iface, "ath", 3) &&
++ g_ascii_strncasecmp (iface, "ipw", 3) &&
++ g_ascii_strncasecmp (iface, "iwi", 3) &&
++ g_ascii_strncasecmp (iface, "malo", 4) &&
++ g_ascii_strncasecmp (iface, "ndis", 4) &&
++ g_ascii_strncasecmp (iface, "ral", 3) &&
++ g_ascii_strncasecmp (iface, "rum", 3) &&
++ g_ascii_strncasecmp (iface, "ural", 4) &&
++ g_ascii_strncasecmp (iface, "wi", 2) &&
++ g_ascii_strncasecmp (iface, "zyd", 3))
++ return error_message;
++#endif
+
+- if (g_strncasecmp (iface, "an", 2) == 0)
++#if __FreeBSD_version < 700046
++ if (g_ascii_strncasecmp (iface, "an", 2) == 0)
+ {
+ error_message = get_an_data (iface, signal_strength);
+ *is_wireless = TRUE;
+ }
++#endif
++#if __FreeBSD_version >= 602000
++#if __FreeBSD_version < 700046
++ else if (g_ascii_strncasecmp (iface, "wi", 2) == 0)
++ {
++ error_message = get_wi_data (iface, signal_strength);
++ *is_wireless = TRUE;
++ }
++ else
++#endif
++ {
++ error_message = get_net80211_data (iface, signal_strength);
++ *is_wireless = TRUE;
++ }
++#else
++#if __FreeBSD_version < 700046
+ else
+ {
+ error_message = get_wi_data (iface, signal_strength);
+ *is_wireless = TRUE;
+ }
++#endif
++#endif
+
+ return error_message;
+ }
diff --git a/x11/lxpanel/files/patch-src__plugins__thermal__Makefile.in b/x11/lxpanel/files/patch-src__plugins__thermal__Makefile.in
new file mode 100644
index 000000000000..6a861bdc6686
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__thermal__Makefile.in
@@ -0,0 +1,462 @@
+--- ./src/plugins/thermal/Makefile.in.orig 2014-05-09 09:31:26.000000000 -0400
++++ ./src/plugins/thermal/Makefile.in 2014-05-20 09:47:15.000000000 -0400
+@@ -1,8 +1,9 @@
+-# Makefile.in generated by automake 1.14.1 from Makefile.am.
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
+ # @configure_input@
+
+-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+-
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
++# Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -15,51 +16,6 @@
+ @SET_MAKE@
+
+ VPATH = @srcdir@
+-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+-am__make_running_with_option = \
+- case $${target_option-} in \
+- ?) ;; \
+- *) echo "am__make_running_with_option: internal error: invalid" \
+- "target option '$${target_option-}' specified" >&2; \
+- exit 1;; \
+- esac; \
+- has_opt=no; \
+- sane_makeflags=$$MAKEFLAGS; \
+- if $(am__is_gnu_make); then \
+- sane_makeflags=$$MFLAGS; \
+- else \
+- case $$MAKEFLAGS in \
+- *\\[\ \ ]*) \
+- bs=\\; \
+- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+- esac; \
+- fi; \
+- skip_next=no; \
+- strip_trailopt () \
+- { \
+- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+- }; \
+- for flg in $$sane_makeflags; do \
+- test $$skip_next = yes && { skip_next=no; continue; }; \
+- case $$flg in \
+- *=*|--*) continue;; \
+- -*I) strip_trailopt 'I'; skip_next=yes;; \
+- -*I?*) strip_trailopt 'I';; \
+- -*O) strip_trailopt 'O'; skip_next=yes;; \
+- -*O?*) strip_trailopt 'O';; \
+- -*l) strip_trailopt 'l'; skip_next=yes;; \
+- -*l?*) strip_trailopt 'l';; \
+- -[dEDm]) skip_next=yes;; \
+- -[JT]) skip_next=yes;; \
+- esac; \
+- case $$flg in \
+- *$$target_option*) has_opt=yes; break;; \
+- esac; \
+- done; \
+- test $$has_opt = yes
+-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+@@ -79,21 +35,13 @@
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = src/plugins/thermal
+-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+- $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intltool.m4 \
+- $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \
++am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
++mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ CONFIG_CLEAN_VPATH_FILES =
+@@ -118,37 +66,18 @@
+ am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+-am__uninstall_files_from_dir = { \
+- test -z "$$files" \
+- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+- $(am__cd) "$$dir" && rm -f $$files; }; \
+- }
+ am__installdirs = "$(DESTDIR)$(moduledir)"
+ LTLIBRARIES = $(module_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+ thermal_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+ am_thermal_la_OBJECTS = thermal_la-thermal.lo
+ thermal_la_OBJECTS = $(am_thermal_la_OBJECTS)
+-AM_V_lt = $(am__v_lt_@AM_V@)
+-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
++AM_V_lt = $(am__v_lt_$(V))
++am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+ am__v_lt_0 = --silent
+-am__v_lt_1 =
+ thermal_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(thermal_la_CFLAGS) \
+ $(CFLAGS) $(thermal_la_LDFLAGS) $(LDFLAGS) -o $@
+-AM_V_P = $(am__v_P_@AM_V@)
+-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+-am__v_P_0 = false
+-am__v_P_1 = :
+-AM_V_GEN = $(am__v_GEN_@AM_V@)
+-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+-am__v_GEN_0 = @echo " GEN " $@;
+-am__v_GEN_1 =
+-AM_V_at = $(am__v_at_@AM_V@)
+-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+-am__v_at_0 = @
+-am__v_at_1 =
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+@@ -159,42 +88,24 @@
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+-AM_V_CC = $(am__v_CC_@AM_V@)
+-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+-am__v_CC_0 = @echo " CC " $@;
+-am__v_CC_1 =
++AM_V_CC = $(am__v_CC_$(V))
++am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
++am__v_CC_0 = @echo " CC " $@;
++AM_V_at = $(am__v_at_$(V))
++am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
++am__v_at_0 = @
+ CCLD = $(CC)
+ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+-am__v_CCLD_0 = @echo " CCLD " $@;
+-am__v_CCLD_1 =
++AM_V_CCLD = $(am__v_CCLD_$(V))
++am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
++am__v_CCLD_0 = @echo " CCLD " $@;
++AM_V_GEN = $(am__v_GEN_$(V))
++am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
++am__v_GEN_0 = @echo " GEN " $@;
+ SOURCES = $(thermal_la_SOURCES)
+ DIST_SOURCES = $(thermal_la_SOURCES)
+-am__can_run_installinfo = \
+- case $$AM_UPDATE_INFO_DIR in \
+- n|no|NO) false;; \
+- *) (install-info --version) >/dev/null 2>&1;; \
+- esac
+-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+-# Read a list of newline-separated strings from the standard input,
+-# and print each of them once, without duplicates. Input order is
+-# *not* preserved.
+-am__uniquify_input = $(AWK) '\
+- BEGIN { nonempty = 0; } \
+- { items[$$0] = 1; nonempty = 1; } \
+- END { if (nonempty) { for (i in items) print i; }; } \
+-'
+-# Make sure the list of sources is unique. This is necessary because,
+-# e.g., the same source file might be shared among _SOURCES variables
+-# for different programs/libraries.
+-am__define_uniq_tagged_files = \
+- list='$(am__tagged_files)'; \
+- unique=`for i in $$list; do \
+- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+- done | $(am__uniquify_input)`
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+@@ -204,8 +115,6 @@
+ ALL_PLUGINS_LIST = @ALL_PLUGINS_LIST@
+ AMTAR = @AMTAR@
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+-APPLET_CFLAGS = @APPLET_CFLAGS@
+-APPLET_LIBS = @APPLET_LIBS@
+ AR = @AR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+@@ -236,8 +145,6 @@
+ GMSGFMT = @GMSGFMT@
+ GREP = @GREP@
+ G_CAST_CHECKS = @G_CAST_CHECKS@
+-INDICATORDIR = @INDICATORDIR@
+-INDICATORICONSDIR = @INDICATORICONSDIR@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+@@ -249,21 +156,13 @@
+ INTLTOOL_MERGE = @INTLTOOL_MERGE@
+ INTLTOOL_PERL = @INTLTOOL_PERL@
+ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+-INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+-INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+-INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+-INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+-LIBICONV = @LIBICONV@
+-LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIPO = @LIPO@
+ LN_S = @LN_S@
+-LTLIBICONV = @LTLIBICONV@
+-LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ LXPANEL_MODULE = @LXPANEL_MODULE@
+ MAKEINFO = @MAKEINFO@
+@@ -306,8 +205,6 @@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+-WNCK_CFLAGS = @WNCK_CFLAGS@
+-WNCK_LIBS = @WNCK_LIBS@
+ X11_CFLAGS = @X11_CFLAGS@
+ X11_LIBS = @X11_LIBS@
+ XGETTEXT = @XGETTEXT@
+@@ -348,8 +245,6 @@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+-intltool__v_merge_options_ = @intltool__v_merge_options_@
+-intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+@@ -421,9 +316,9 @@
+ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(am__aclocal_m4_deps):
+-
+ install-moduleLTLIBRARIES: $(module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
++ test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)"
+ @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+@@ -431,8 +326,6 @@
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+- echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+- $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \
+ }
+@@ -448,16 +341,13 @@
+
+ clean-moduleLTLIBRARIES:
+ -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES)
+- @list='$(module_LTLIBRARIES)'; \
+- locs=`for p in $$list; do echo $$p; done | \
+- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+- sort -u`; \
+- test -z "$$locs" || { \
+- echo rm -f $${locs}; \
+- rm -f $${locs}; \
+- }
+-
+-thermal.la: $(thermal_la_OBJECTS) $(thermal_la_DEPENDENCIES) $(EXTRA_thermal_la_DEPENDENCIES)
++ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
++ test "$$dir" != "$$p" || dir=.; \
++ echo "rm -f \"$${dir}/so_locations\""; \
++ rm -f "$${dir}/so_locations"; \
++ done
++thermal.la: $(thermal_la_OBJECTS) $(thermal_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(thermal_la_LINK) -rpath $(moduledir) $(thermal_la_OBJECTS) $(thermal_la_LIBADD) $(LIBS)
+
+ mostlyclean-compile:
+@@ -471,30 +361,34 @@
+ .c.o:
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
++@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+ .c.obj:
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
++@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+ .c.lo:
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
++@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+ thermal_la-thermal.lo: thermal.c
+ @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thermal_la_CFLAGS) $(CFLAGS) -MT thermal_la-thermal.lo -MD -MP -MF $(DEPDIR)/thermal_la-thermal.Tpo -c -o thermal_la-thermal.lo `test -f 'thermal.c' || echo '$(srcdir)/'`thermal.c
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/thermal_la-thermal.Tpo $(DEPDIR)/thermal_la-thermal.Plo
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thermal.c' object='thermal_la-thermal.lo' libtool=yes @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='thermal.c' object='thermal_la-thermal.lo' libtool=yes @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thermal_la_CFLAGS) $(CFLAGS) -c -o thermal_la-thermal.lo `test -f 'thermal.c' || echo '$(srcdir)/'`thermal.c
++@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(thermal_la_CFLAGS) $(CFLAGS) -c -o thermal_la-thermal.lo `test -f 'thermal.c' || echo '$(srcdir)/'`thermal.c
+
+ mostlyclean-libtool:
+ -rm -f *.lo
+@@ -502,15 +396,26 @@
+ clean-libtool:
+ -rm -rf .libs _libs
+
+-ID: $(am__tagged_files)
+- $(am__define_uniq_tagged_files); mkid -fID $$unique
+-tags: tags-am
+-TAGS: tags
++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
++ mkid -fID $$unique
++tags: TAGS
+
+-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+- $(am__define_uniq_tagged_files); \
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+@@ -522,11 +427,15 @@
+ $$unique; \
+ fi; \
+ fi
+-ctags: ctags-am
+-
+-CTAGS: ctags
+-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+- $(am__define_uniq_tagged_files); \
++ctags: CTAGS
++CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
++ $(TAGS_FILES) $(LISP)
++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
++ unique=`for i in $$list; do \
++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
++ done | \
++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
++ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+@@ -535,21 +444,6 @@
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+-cscopelist: cscopelist-am
+-
+-cscopelist-am: $(am__tagged_files)
+- list='$(am__tagged_files)'; \
+- case "$(srcdir)" in \
+- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+- *) sdir=$(subdir)/$(srcdir) ;; \
+- esac; \
+- for i in $$list; do \
+- if test -f "$$i"; then \
+- echo "$(subdir)/$$i"; \
+- else \
+- echo "$$sdir/$$i"; \
+- fi; \
+- done >> $(top_builddir)/cscope.files
+
+ distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+@@ -601,15 +495,10 @@
+
+ installcheck: installcheck-am
+ install-strip:
+- if test -z '$(STRIP)'; then \
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+- install; \
+- else \
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+- fi
++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++ `test -z '$(STRIP)' || \
++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+
+ clean-generic:
+@@ -694,20 +583,19 @@
+
+ .MAKE: install-am install-strip
+
+-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+- clean-libtool clean-moduleLTLIBRARIES cscopelist-am ctags \
+- ctags-am distclean distclean-compile distclean-generic \
+- distclean-libtool distclean-tags distdir dvi dvi-am html \
+- html-am info info-am install install-am install-data \
+- install-data-am install-dvi install-dvi-am install-exec \
+- install-exec-am install-html install-html-am install-info \
+- install-info-am install-man install-moduleLTLIBRARIES \
+- install-pdf install-pdf-am install-ps install-ps-am \
+- install-strip installcheck installcheck-am installdirs \
+- maintainer-clean maintainer-clean-generic mostlyclean \
+- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+- pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+- uninstall-moduleLTLIBRARIES
++.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
++ clean-libtool clean-moduleLTLIBRARIES ctags distclean \
++ distclean-compile distclean-generic distclean-libtool \
++ distclean-tags distdir dvi dvi-am html html-am info info-am \
++ install install-am install-data install-data-am install-dvi \
++ install-dvi-am install-exec install-exec-am install-html \
++ install-html-am install-info install-info-am install-man \
++ install-moduleLTLIBRARIES install-pdf install-pdf-am \
++ install-ps install-ps-am install-strip installcheck \
++ installcheck-am installdirs maintainer-clean \
++ maintainer-clean-generic mostlyclean mostlyclean-compile \
++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
++ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES
+
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/x11/lxpanel/files/patch-src__plugins__thermal__thermal.c b/x11/lxpanel/files/patch-src__plugins__thermal__thermal.c
new file mode 100644
index 000000000000..e23bdc5fb436
--- /dev/null
+++ b/x11/lxpanel/files/patch-src__plugins__thermal__thermal.c
@@ -0,0 +1,493 @@
+--- ./src/plugins/thermal/thermal.c.orig 2014-05-09 08:55:42.000000000 -0400
++++ ./src/plugins/thermal/thermal.c 2014-05-20 09:56:16.000000000 -0400
+@@ -32,29 +32,17 @@
+
+ #include "dbg.h"
+
+-#define PROC_THERMAL_DIRECTORY "/proc/acpi/thermal_zone/" /* must be slash-terminated */
+-#define PROC_THERMAL_TEMPF "temperature"
+-#define PROC_THERMAL_TRIP "trip_points"
+-#define PROC_TRIP_CRITICAL "critical (S5):"
+-
+-#define SYSFS_THERMAL_DIRECTORY "/sys/class/thermal/" /* must be slash-terminated */
+-#define SYSFS_THERMAL_SUBDIR_PREFIX "thermal_zone"
+-#define SYSFS_THERMAL_TEMPF "temp"
+-#define SYSFS_THERMAL_TRIP "trip_point_0_temp"
+-
+-#define MAX_NUM_SENSORS 10
+-#define MAX_AUTOMATIC_CRITICAL_TEMP 150 /* in degrees Celsius */
+-
++#include <sys/sysctl.h>
+
+-typedef struct thermal {
++typedef struct {
+ Plugin * plugin;
+ GtkWidget *main;
+ GtkWidget *namew;
+- GString *tip;
++ GtkTooltips *tip;
+ int critical;
+ int warning1;
+ int warning2;
+- int not_custom_levels, auto_sensor;
++ int custom_levels, auto_sensor;
+ char *sensor,
+ *str_cl_normal,
+ *str_cl_warning1,
+@@ -63,197 +51,43 @@
+ GdkColor cl_normal,
+ cl_warning1,
+ cl_warning2;
+- int numsensors;
+- char *sensor_array[MAX_NUM_SENSORS];
+- gint (*get_temperature[MAX_NUM_SENSORS])(char const* sensor_path);
+- gint (*get_critical[MAX_NUM_SENSORS])(char const* sensor_path);
+- gint temperature[MAX_NUM_SENSORS];
+ } thermal;
+
+-
+-static gint
+-proc_get_critical(char const* sensor_path){
+- FILE *state;
+- char buf[ 256 ], sstmp [ 100 ];
+- char* pstr;
+-
+- if(sensor_path == NULL) return -1;
+-
+- sprintf(sstmp,"%s%s",sensor_path,PROC_THERMAL_TRIP);
+-
+- if (!(state = fopen( sstmp, "r"))) {
+- ERR("thermal: cannot open %s\n", sstmp);
+- return -1;
+- }
+-
+- while( fgets(buf, 256, state) &&
+- ! ( pstr = strstr(buf, PROC_TRIP_CRITICAL) ) );
+- if( pstr )
+- {
+- pstr += strlen(PROC_TRIP_CRITICAL);
+- while( *pstr && *pstr == ' ' )
+- ++pstr;
+-
+- pstr[strlen(pstr)-3] = '\0';
+- fclose(state);
+- return atoi(pstr);
+- }
+-
+- fclose(state);
+- return -1;
+-}
+-
+-static gint
+-proc_get_temperature(char const* sensor_path){
+- FILE *state;
+- char buf[ 256 ], sstmp [ 100 ];
+- char* pstr;
+-
+- if(sensor_path == NULL) return -1;
+-
+- sprintf(sstmp,"%s%s",sensor_path,PROC_THERMAL_TEMPF);
+-
+- if (!(state = fopen( sstmp, "r"))) {
+- ERR("thermal: cannot open %s\n", sstmp);
+- return -1;
+- }
+-
+- while( fgets(buf, 256, state) &&
+- ! ( pstr = strstr(buf, "temperature:") ) );
+- if( pstr )
+- {
+- pstr += 12;
+- while( *pstr && *pstr == ' ' )
+- ++pstr;
+-
+- pstr[strlen(pstr)-3] = '\0';
+- fclose(state);
+- return atoi(pstr);
+- }
+-
+- fclose(state);
+- return -1;
+-}
+-
+ static gint
+-sysfs_get_critical(char const* sensor_path){
+- FILE *state;
+- char buf[ 256 ], sstmp [ 100 ];
+- char* pstr;
+-
+- if(sensor_path == NULL) return -1;
+-
+- sprintf(sstmp,"%s%s",sensor_path,SYSFS_THERMAL_TRIP);
++get_temperature_value(thermal *th, const char *which)
++{
++ char sstmp[ 100 ];
++ int t;
++ size_t tlen = sizeof t;
+
+- if (!(state = fopen( sstmp, "r"))) {
+- ERR("thermal: cannot open %s\n", sstmp);
+- return -1;
+- }
++ if(th->sensor == NULL) return -1;
+
+- while( fgets(buf, 256, state) &&
+- ! ( pstr = buf ) );
+- if( pstr )
+- {
+- fclose(state);
+- return atoi(pstr)/1000;
+- }
++ snprintf(sstmp, sizeof(sstmp), "hw.acpi.thermal.%s.%s", th->sensor, which);
++ if (sysctlbyname(sstmp, &t, &tlen, NULL, 0) != 0 || tlen != sizeof t)
++ return -1;
+
+- fclose(state);
+- return -1;
++ return (t - 2732) / 10;
+ }
+
+ static gint
+-sysfs_get_temperature(char const* sensor_path){
+- FILE *state;
+- char buf[ 256 ], sstmp [ 100 ];
+- char* pstr;
+-
+- if(sensor_path == NULL) return -1;
+-
+- sprintf(sstmp,"%s%s",sensor_path,SYSFS_THERMAL_TEMPF);
+-
+- if (!(state = fopen( sstmp, "r"))) {
+- ERR("thermal: cannot open %s\n", sstmp);
+- return -1;
+- }
+-
+- while (fgets(buf, 256, state) &&
+- ! ( pstr = buf ) );
+- if( pstr )
+- {
+- fclose(state);
+- return atoi(pstr)/1000;
+- }
+-
+- fclose(state);
+- return -1;
+-}
+-
+-static gboolean
+-is_sysfs(char const* path)
+-{
+- return path && strncmp(path, "/sys/", 5) == 0;
+-}
+-
+-/* get_temp_function():
+- * - This function is called 'get_temp_function'.
+- * - It takes 'path' as argument.
+- * - It returns a pointer to a function.
+- * - The returned function takes a pointer to a char const as arg.
+- * - The returned function returns a gint. */
+-static gint (*get_temp_function(char const* path))(char const* sensor_path)
+-{
+- if (is_sysfs(path))
+- return sysfs_get_temperature;
+- else
+- return proc_get_temperature;
+-}
+-
+-static gint (*get_crit_function(char const* path))(char const* sensor_path)
+-{
+- if (is_sysfs(path))
+- return sysfs_get_critical;
+- else
+- return proc_get_critical;
+-}
+-
+-static gint get_temperature(thermal *th)
++get_critical(thermal *th)
+ {
+- gint max = -273;
+- gint cur, i;
+-
+- for(i = 0; i < th->numsensors; i++){
+- cur = th->get_temperature[i](th->sensor_array[i]);
+- if (cur > max)
+- max = cur;
+- th->temperature[i] = cur;
+- }
+-
+- return max;
++ return (get_temperature_value(th, "_CRT"));
+ }
+
+-static gint get_critical(thermal *th)
++static gint
++get_temperature(thermal *th)
+ {
+- gint min = MAX_AUTOMATIC_CRITICAL_TEMP;
+- gint cur, i;
+-
+- for(i = 0; i < th->numsensors; i++){
+- cur = th->get_critical[i](th->sensor_array[i]);
+- if (cur < min)
+- min = cur;
+- }
+-
+- return min;
++ return (get_temperature_value(th, "temperature"));
+ }
+
+ static gint
+ update_display(thermal *th)
+ {
+ char buffer [60];
+- int i;
++ int n;
+ int temp = get_temperature(th);
+ GdkColor color;
+- gchar *separator;
+
+ if(temp >= th->warning2)
+ color = th->cl_warning2;
+@@ -264,117 +98,20 @@
+
+ ENTER;
+ if(temp == -1)
+- panel_draw_label_text(th->plugin->panel, th->namew, "NA", TRUE, 1, TRUE);
++ panel_draw_label_text(th->plugin->panel, th->namew, "NA", TRUE, 1, TRUE);
+ else
+ {
+- sprintf(buffer, "<span color=\"#%06x\"><b>%02d</b></span>", gcolor2rgb24(&color), temp);
++ n = sprintf(buffer, "<span color=\"#%06x\"><b>%02d C</b></span>", gcolor2rgb24(&color), temp);
+ gtk_label_set_markup (GTK_LABEL(th->namew), buffer) ;
+ }
+
+- g_string_truncate(th->tip, 0);
+- separator = "";
+- for (i = 0; i < th->numsensors; i++){
+- g_string_append_printf(th->tip, "%s%s:\t%2d°C", separator, th->sensor_array[i], th->temperature[i]);
+- separator = "\n";
+- }
+- gtk_widget_set_tooltip_text(th->namew, th->tip->str);
+-
+ RET(TRUE);
+ }
+
+-
+-static int
+-add_sensor(thermal* th, char const* sensor_path)
+-{
+- if (th->numsensors + 1 > MAX_NUM_SENSORS){
+- ERR("thermal: Too many sensors (max %d), ignoring '%s'\n",
+- MAX_NUM_SENSORS, sensor_path);
+- return -1;
+- }
+-
+- th->sensor_array[th->numsensors] = g_strdup(sensor_path);
+- th->get_critical[th->numsensors] = get_crit_function(sensor_path);
+- th->get_temperature[th->numsensors] = get_temp_function(sensor_path);
+- th->numsensors++;
+-
+- LOG(LOG_ALL, "thermal: Added sensor %s\n", sensor_path);
+-
+- return 0;
+-}
+-
+-/* find_sensors():
+- * - Get the sensor directory, and store it in '*sensor'.
+- * - It is searched for in 'directory'.
+- * - Only the subdirectories starting with 'subdir_prefix' are accepted as sensors.
+- * - 'subdir_prefix' may be NULL, in which case any subdir is considered a sensor. */
+-static void
+-find_sensors(thermal* th, char const* directory, char const* subdir_prefix)
+-{
+- GDir *sensorsDirectory;
+- const char *sensor_name;
+- char sensor_path[100];
+-
+- if (! (sensorsDirectory = g_dir_open(directory, 0, NULL)))
+- return;
+-
+- /* Scan the thermal_zone directory for available sensors */
+- while ((sensor_name = g_dir_read_name(sensorsDirectory))) {
+- if (sensor_name[0] == '.')
+- continue;
+- if (subdir_prefix) {
+- if (strncmp(sensor_name, subdir_prefix, strlen(subdir_prefix)) != 0)
+- continue;
+- }
+- sprintf(sensor_path,"%s%s/", directory, sensor_name);
+- add_sensor(th, sensor_path);
+- }
+- g_dir_close(sensorsDirectory);
+-}
+-
+-static void
+-remove_all_sensors(thermal *th)
+-{
+- int i;
+-
+- LOG(LOG_ALL, "thermal: Removing all sensors (%d)\n", th->numsensors);
+-
+- for (i = 0; i < th->numsensors; i++)
+- g_free(th->sensor_array[i]);
+-
+- th->numsensors = 0;
+-}
+-
+ static void
+-check_sensors( thermal *th )
+-{
+- find_sensors(th, PROC_THERMAL_DIRECTORY, NULL);
+- find_sensors(th, SYSFS_THERMAL_DIRECTORY, SYSFS_THERMAL_SUBDIR_PREFIX);
+- LOG(LOG_INFO, "thermal: Found %d sensors\n", th->numsensors);
+-}
+-
+-
+-static void applyConfig(Plugin* p)
++check_sensors( thermal* th )
+ {
+- thermal *th = p->priv;
+- ENTER;
+-
+- if (th->str_cl_normal) gdk_color_parse(th->str_cl_normal, &th->cl_normal);
+- if (th->str_cl_warning1) gdk_color_parse(th->str_cl_warning1, &th->cl_warning1);
+- if (th->str_cl_warning2) gdk_color_parse(th->str_cl_warning2, &th->cl_warning2);
+-
+- remove_all_sensors(th);
+- if(th->sensor == NULL) th->auto_sensor = TRUE;
+- if(th->auto_sensor) check_sensors(th);
+- else add_sensor(th, th->sensor);
+-
+- th->critical = get_critical(th);
+-
+- if(th->not_custom_levels){
+- th->warning1 = th->critical - 10;
+- th->warning2 = th->critical - 5;
+- }
+-
+- RET();
++ th->sensor = strdup("tz0");
+ }
+
+ static int
+@@ -395,12 +132,7 @@
+ gtk_container_add(GTK_CONTAINER(p->pwid), th->namew);
+
+ th->main = p->pwid;
+- th->tip = g_string_new(NULL);
+-
+- /* By default, use automatic, that is, "not custom" temperature levels. If
+- * we were using custom levels, they would be 0°C at startup, so we would
+- * display in warning colors by default. */
+- th->not_custom_levels = TRUE;
++ th->tip = gtk_tooltips_new();
+
+ g_signal_connect (G_OBJECT (p->pwid), "button_press_event",
+ G_CALLBACK (plugin_button_press_event), (gpointer) p);
+@@ -425,7 +157,7 @@
+ }else if (!g_ascii_strcasecmp(s.t[0], "AutomaticSensor")){
+ th->auto_sensor= atoi(s.t[1]);
+ }else if (!g_ascii_strcasecmp(s.t[0], "CustomLevels")){
+- th->not_custom_levels= atoi(s.t[1]);
++ th->custom_levels= atoi(s.t[1]);
+ }else if (!g_ascii_strcasecmp(s.t[0], "Sensor")){
+ th->sensor= g_strdup(s.t[1]);
+ }else if (!g_ascii_strcasecmp(s.t[0], "Warning1Temp")){
+@@ -441,6 +173,7 @@
+ goto error;
+ }
+ }
++
+ }
+
+ if(!th->str_cl_normal)
+@@ -450,12 +183,25 @@
+ if(!th->str_cl_warning2)
+ th->str_cl_warning2 = g_strdup("#ff0000");
+
+- applyConfig(p);
++ gdk_color_parse(th->str_cl_normal, &(th->cl_normal));
++ gdk_color_parse(th->str_cl_warning1, &(th->cl_warning1));
++ gdk_color_parse(th->str_cl_warning2, &(th->cl_warning2));
++
++
++ if(th->sensor == NULL) th->auto_sensor = TRUE;
++ if(th->auto_sensor) check_sensors(th);
++
++ th->critical = get_critical(th);
++
++ if(!th->custom_levels){
++ th->warning1 = th->critical - 10;
++ th->warning2 = th->critical - 5;
++ }
+
+ gtk_widget_show(th->namew);
+
+ update_display(th);
+- th->timer = g_timeout_add_seconds(3, (GSourceFunc) update_display, (gpointer)th);
++ th->timer = g_timeout_add(1000, (GSourceFunc) update_display, (gpointer)th);
+
+ RET(TRUE);
+
+@@ -463,6 +209,27 @@
+ RET(FALSE);
+ }
+
++static void applyConfig(Plugin* p)
++{
++
++ thermal *th = (thermal *)p->priv;
++
++ ENTER;
++
++ if (th->str_cl_normal) gdk_color_parse(th->str_cl_normal, &th->cl_normal);
++ if (th->str_cl_warning1) gdk_color_parse(th->str_cl_warning1, &th->cl_warning1);
++ if (th->str_cl_warning2) gdk_color_parse(th->str_cl_warning2, &th->cl_warning2);
++
++ if(th->auto_sensor) check_sensors(th);
++
++ if(th->custom_levels){
++ th->warning1 = th->critical - 10;
++ th->warning2 = th->critical - 5;
++ }
++
++ RET();
++}
++
+ static void config(Plugin *p, GtkWindow* parent) {
+ ENTER;
+
+@@ -476,7 +243,7 @@
+ _("Warning2"), &th->str_cl_warning2, CONF_TYPE_STR,
+ _("Automatic sensor location"), &th->auto_sensor, CONF_TYPE_BOOL,
+ _("Sensor"), &th->sensor, CONF_TYPE_STR,
+- _("Automatic temperature levels"), &th->not_custom_levels, CONF_TYPE_BOOL,
++ _("Automatic temperature levels"), &th->custom_levels, CONF_TYPE_BOOL,
+ _("Warning1 Temperature"), &th->warning1, CONF_TYPE_INT,
+ _("Warning2 Temperature"), &th->warning2, CONF_TYPE_INT,
+ NULL);
+@@ -492,8 +259,6 @@
+
+ ENTER;
+ th = (thermal *) p->priv;
+- remove_all_sensors(th);
+- g_string_free(th->tip, TRUE);
+ g_free(th->sensor);
+ g_free(th->str_cl_normal);
+ g_free(th->str_cl_warning1);
+@@ -510,7 +275,7 @@
+ lxpanel_put_str( fp, "NormalColor", th->str_cl_normal );
+ lxpanel_put_str( fp, "Warning1Color", th->str_cl_warning1 );
+ lxpanel_put_str( fp, "Warning2Color", th->str_cl_warning2 );
+- lxpanel_put_int( fp, "CustomLevels", th->not_custom_levels );
++ lxpanel_put_int( fp, "CustomLevels", th->custom_levels );
+ lxpanel_put_int( fp, "Warning1Temp", th->warning1 );
+ lxpanel_put_int( fp, "Warning2Temp", th->warning2 );
+ lxpanel_put_int( fp, "AutomaticSensor", th->auto_sensor );
+@@ -532,6 +297,3 @@
+ save : save_config,
+ panel_configuration_changed : NULL
+ };
+-
+-
+-/* vim: set sw=4 sts=4 et : */
diff --git a/x11/lxpanel/files/pkg-message.in b/x11/lxpanel/files/pkg-message.in
new file mode 100644
index 000000000000..b7a45e458486
--- /dev/null
+++ b/x11/lxpanel/files/pkg-message.in
@@ -0,0 +1,24 @@
+===============================================================================
+
+LXPanel has been installed.
+
+Additional features require devd and HAL:
+
+ echo devd_enable=\"YES\" >> /etc/rc.conf
+ service devd start
+
+ cd /usr/ports/sysutils/hal/ && make install clean
+ echo hald_enable=\"YES\" >> /etc/rc.conf
+ service hald start
+
+Some plugins require linprocfs and linsysfs:
+
+ mkdir -p /mnt/compat/linux/proc
+ echo "linproc /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab
+ mount -t linprocfs linproc /compat/linux/proc
+
+ mkdir -p /mnt/compat/linux/sys
+ echo "linsys /compat/linux/sys linsysfs rw 0 0" >> /etc/fstab
+ mount -t linsysfs linsys /compat/linux/sys
+
+===============================================================================
diff --git a/x11/lxpanel/pkg-plist b/x11/lxpanel/pkg-plist
index 510ccdcff272..1d89b52ff97b 100644
--- a/x11/lxpanel/pkg-plist
+++ b/x11/lxpanel/pkg-plist
@@ -2,10 +2,17 @@ bin/lxpanel
bin/lxpanelctl
include/lxpanel/plugin.h
lib/lxpanel/plugins/batt.so
+lib/lxpanel/plugins/cpu.so
+lib/lxpanel/plugins/cpufreq.so
lib/lxpanel/plugins/deskno.so
lib/lxpanel/plugins/kbled.so
-lib/lxpanel/plugins/volume.so
+lib/lxpanel/plugins/monitors.so
+lib/lxpanel/plugins/netstatus.so
+lib/lxpanel/plugins/thermal.so
+%%VOLUME%%lib/lxpanel/plugins/volume.so
+%%ALSA%%lib/lxpanel/plugins/volumealsa.so
lib/lxpanel/plugins/xkb.so
+lib/lxpanel/plugins/wnckpager.so
libdata/pkgconfig/lxpanel.pc
man/man1/lxpanel.1.gz
man/man1/lxpanelctl.1.gz