Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jan 2017 21:37:57 +0000 (UTC)
From:      Olivier Duchateau <olivierd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r432391 - in head/x11/lxpanel: . files
Message-ID:  <201701242137.v0OLbvTO032671@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: olivierd
Date: Tue Jan 24 21:37:57 2017
New Revision: 432391
URL: https://svnweb.freebsd.org/changeset/ports/432391

Log:
  - Update to 0.9.3
  - Adjust dependencies
  - Add WEATHER (set by default), and ALSA (unset) options
  - Rewrite patches plugins in order to use sysctl calls instead the Linux
  proc and sys file system

Added:
  head/x11/lxpanel/files/patch-plugins_cpu_cpu.c   (contents, props changed)
  head/x11/lxpanel/files/patch-plugins_cpufreq_cpufreq.c   (contents, props changed)
  head/x11/lxpanel/files/patch-plugins_monitors_monitors.c   (contents, props changed)
Deleted:
  head/x11/lxpanel/files/patch-src__plugins__batt__Makefile.in
  head/x11/lxpanel/files/patch-src__plugins__batt__batt.c
  head/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.c
  head/x11/lxpanel/files/patch-src__plugins__batt__batt_sys.h
  head/x11/lxpanel/files/patch-src__plugins__cpufreq__cpufreq.c
  head/x11/lxpanel/files/patch-src__plugins__netstatus__netstatus-sysdeps.c
  head/x11/lxpanel/files/patch-src__plugins__thermal__Makefile.in
  head/x11/lxpanel/files/patch-src__plugins__thermal__thermal.c
  head/x11/lxpanel/files/pkg-message.in
Modified:
  head/x11/lxpanel/Makefile
  head/x11/lxpanel/distinfo
  head/x11/lxpanel/pkg-plist

Modified: head/x11/lxpanel/Makefile
==============================================================================
--- head/x11/lxpanel/Makefile	Tue Jan 24 21:27:10 2017	(r432390)
+++ head/x11/lxpanel/Makefile	Tue Jan 24 21:37:57 2017	(r432391)
@@ -2,10 +2,9 @@
 # $FreeBSD$
 
 PORTNAME=	lxpanel
-PORTVERSION=	0.6.2
-PORTREVISION=	1
+PORTVERSION=	0.9.3
 CATEGORIES=	x11
-MASTER_SITES=	SF/lxde/LXPanel%20%28desktop%20panel%29/LXPanel%20${PORTVERSION}/
+MASTER_SITES=	SF/lxde/LXPanel%20%28desktop%20panel%29/LXPanel%20${PORTVERSION:R}.x/
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Lightweight X11 desktop panel
@@ -14,99 +13,44 @@ LICENSE=	GPLv2 MIT
 LICENSE_COMB=	dual
 
 LIB_DEPENDS=	libmenu-cache.so:x11/menu-cache \
-		libsysinfo.so:devel/libsysinfo
-RUN_DEPENDS=	${LOCALBASE}/share/desktop-directories/lxde-audio-video.directory:x11/lxmenu-data \
-		xmessage:x11/xmessage
-
-USE_AUTOTOOLS=	automake:env
-USE_CSTD=	gnu89
-USE_GNOME=	gtk20 libwnck intltool
-USE_XORG=	x11 xmu
-USES=		gmake pathfix pkgconfig
+		libkeybinder.so:x11/keybinder \
+		libfm-gtk.so:x11/libfm \
+		libfontconfig.so:x11-fonts/fontconfig \
+		libfreetype.so:print/freetype2
+RUN_DEPENDS=	${LOCALBASE}/etc/xdg/menus/lxde-applications.menu:x11/lxmenu-data
+
+USE_GNOME=	glib20 gtk20 cairo gdkpixbuf2 libwnck intltool
+USE_XORG=	x11
+USES=		gmake libtool localbase pathfix pkgconfig tar:xz
 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}
+INSTALL_TARGET=	install-strip
 
-SUB_FILES=	pkg-message
-PORTDOCS=	AUTHORS README
+# Panel plugins
+LXPANEL_PLUGINS=	"-netstat,-netstatus,deskno,-batt,kbled,xkb,-thermal,cpu,cpufreq,monitors,-indicator"
 
-OPTIONS_DEFINE=	ALSA DOCS NLS
+OPTIONS_SINGLE=	SOUND
+OPTIONS_SINGLE_SOUND=	ALSA OSS
+OPTIONS_DEFINE=	NLS WEATHER
+OPTIONS_DEFAULT=	OSS WEATHER
 OPTIONS_SUB=	yes
 
 ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
 ALSA_CONFIGURE_ENABLE=	alsa
+ALSA_VARS=	lxpanel_plugins+=",-volume,volumealsa"
+OSS_VARS=	lxpanel_plugins+=",volume,-volumealsa"
 NLS_CONFIGURE_ENABLE=	nls
 NLS_USES=	gettext
 NLS_USES_OFF=	gettext-tools
+WEATHER_USE=	gnome=libxml2
+WEATHER_VARS=	lxpanel_plugins+=",weather"
+WEATHER_VARS_OFF=	lxpanel_plugins+=",-weather"
+WEATHER_DESC=	Weather plugin
 
-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
+CONFIGURE_ARGS+=	--sysconfdir=${PREFIX}/etc \
+	--with-plugins="${LXPANEL_PLUGINS}"
 
 post-patch-NLS-off:
 	@${REINPLACE_CMD} -e 's|po man|man|' \
 		${WRKSRC}/Makefile.in
 
-post-install:
-	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lxpanel/plugins/*.so
-
-post-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
-
 .include <bsd.port.mk>

Modified: head/x11/lxpanel/distinfo
==============================================================================
--- head/x11/lxpanel/distinfo	Tue Jan 24 21:27:10 2017	(r432390)
+++ head/x11/lxpanel/distinfo	Tue Jan 24 21:37:57 2017	(r432391)
@@ -1,2 +1,3 @@
-SHA256 (lxpanel-0.6.2.tar.gz) = f9ba6d0b825f7b99de045c3371738792bf9f3604af66bef4d98d783461c60a48
-SIZE (lxpanel-0.6.2.tar.gz) = 2086833
+TIMESTAMP = 1485088803
+SHA256 (lxpanel-0.9.3.tar.xz) = 342cfa205f255acf69c76ba0ca6c77c890f3955a879b755931c80ffae4d98fb1
+SIZE (lxpanel-0.9.3.tar.xz) = 1515144

Added: head/x11/lxpanel/files/patch-plugins_cpu_cpu.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/lxpanel/files/patch-plugins_cpu_cpu.c	Tue Jan 24 21:37:57 2017	(r432391)
@@ -0,0 +1,120 @@
+--- plugins/cpu/cpu.c.orig	2016-11-19 18:28:43 UTC
++++ plugins/cpu/cpu.c
+@@ -35,8 +35,15 @@
+ #include <string.h>
+ #include <sys/time.h>
+ #include <time.h>
++#if defined(__linux__)
+ #include <sys/sysinfo.h>
++#endif
+ #include <stdlib.h>
++#if defined(__DragonFly__) || (__FreeBSD__)
++#include <sys/resource.h>
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif
+ #include <glib/gi18n.h>
+ 
+ #include "plugin.h"
+@@ -46,12 +53,22 @@
+ 
+ /* #include "../../dbg.h" */
+ 
+-typedef unsigned long long CPUTick;		/* Value from /proc/stat */
+ typedef float CPUSample;			/* Saved CPU utilization value as 0.0..1.0 */
+ 
++#if defined(__linux__)
++typedef unsigned long long CPUTick;		/* Value from /proc/stat */
++
+ struct cpu_stat {
+     CPUTick u, n, s, i;				/* User, nice, system, idle */
+ };
++#elif defined(__DragonFly__) || (__FreeBSD__)
++typedef glong CPUTick;
++
++struct cpu_stat {
++    CPUTick u, n, s, intr, i;
++};
++#endif
++
+ 
+ /* Private context for CPU plugin. */
+ typedef struct {
+@@ -116,6 +133,20 @@ static void redraw_pixmap(CPUPlugin * c)
+     gtk_widget_queue_draw(c->da);
+ }
+ 
++#if defined(__DragonFly__) || defined(__FreeBSD__)
++static gint cpu_nb(void)
++{
++    static gint mib[] = { CTL_HW, HW_NCPU };
++    gint res;
++    size_t len = sizeof(gint);
++
++    if (sysctl(mib, 2, &res, &len, NULL, 0) < 0)
++        return 0;
++    else
++        return res;
++}
++#endif
++
+ /* Periodic timer callback. */
+ static gboolean cpu_update(CPUPlugin * c)
+ {
+@@ -123,6 +154,7 @@ static gboolean cpu_update(CPUPlugin * c
+         return FALSE;
+     if ((c->stats_cpu != NULL) && (c->pixmap != NULL))
+     {
++#if defined(__linux__)
+         /* Open statistics file and scan out CPU usage. */
+         struct cpu_stat cpu;
+         FILE * stat = fopen("/proc/stat", "r");
+@@ -155,6 +187,48 @@ static gboolean cpu_update(CPUPlugin * c
+             /* Redraw with the new sample. */
+             redraw_pixmap(c);
+         }
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++        size_t cp_size = sizeof(glong) * CPUSTATES * cpu_nb();
++        glong *cp_times = malloc(cp_size);
++
++        if (sysctlbyname("kern.cp_times", cp_times, &cp_size, NULL, 0) < 0)
++        {
++            g_free(cp_times);
++            return FALSE;
++        }
++        else
++        {
++            struct cpu_stat cpu;
++            struct cpu_stat cpu_delta;
++
++            cpu.u = cp_times[CP_USER];
++            cpu.n = cp_times[CP_NICE];
++            cpu.s = cp_times[CP_SYS];
++            cpu.intr = cp_times[CP_INTR];
++            cpu.i = cp_times[CP_IDLE];
++
++            g_free(cp_times);
++
++            /* Compute delta from previous statistics. */
++            cpu_delta.u = cpu.u - c->previous_cpu_stat.u;
++            cpu_delta.n = cpu.n - c->previous_cpu_stat.n;
++            cpu_delta.s = cpu.s - c->previous_cpu_stat.s;
++            cpu_delta.intr = cpu.intr - c->previous_cpu_stat.intr;
++            cpu_delta.i = cpu.i - c->previous_cpu_stat.i;
++
++            memcpy(&c->previous_cpu_stat, &cpu, sizeof(struct cpu_stat));
++
++            float cpu_used = cpu_delta.u + cpu_delta.n;
++            float cpu_total = cpu_used + cpu_delta.s + cpu_delta.intr + cpu_delta.i;
++            c->stats_cpu[c->ring_cursor] = cpu_used / cpu_total;
++            c->ring_cursor += 1;
++            if (c->ring_cursor >= c->pixmap_width)
++                c->ring_cursor = 0;
++
++            /* Redraw with the new sample. */
++            redraw_pixmap(c);
++        }
++#endif
+     }
+     return TRUE;
+ }

Added: head/x11/lxpanel/files/patch-plugins_cpufreq_cpufreq.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/lxpanel/files/patch-plugins_cpufreq_cpufreq.c	Tue Jan 24 21:37:57 2017	(r432391)
@@ -0,0 +1,334 @@
+--- plugins/cpufreq/cpufreq.c.orig	2015-05-06 19:44:51 UTC
++++ plugins/cpufreq/cpufreq.c
+@@ -22,6 +22,9 @@
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#if defined(__DragonFly__) || defined(__FreeBSD__)
++#include <sys/sysctl.h>
++#endif
+ #include <glib.h>
+ #include <glib/gi18n.h>
+ 
+@@ -33,6 +36,7 @@
+ #include "dbg.h"
+ 
+ #define PROC_ICON           "cpufreq-icon"
++#if defined(__linux__)
+ #define SYSFS_CPU_DIRECTORY "/sys/devices/system/cpu"
+ #define SCALING_GOV         "scaling_governor"
+ #define SCALING_AGOV        "scaling_available_governors"
+@@ -41,15 +45,19 @@
+ #define SCALING_SETFREQ     "scaling_setspeed"
+ #define SCALING_MAX         "scaling_max_freq"
+ #define SCALING_MIN         "scaling_min_freq"
+-
++#endif
+ 
+ typedef struct {
+     GtkWidget *main;
+     config_setting_t *settings;
++#if defined(__linux__)
+     GList *governors;
+     GList *cpus;
+-    int has_cpufreq;
+     char* cur_governor;
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++    int cpus;
++#endif
++    int has_cpufreq;
+     int   cur_freq;
+     unsigned int timer;
+     //gboolean remember;
+@@ -62,6 +70,7 @@ typedef struct {
+ 
+ static void cpufreq_destructor(gpointer user_data);
+ 
++#if defined(__linux__)
+ static void
+ get_cur_governor(cpufreq *cf){
+     FILE *fp;
+@@ -99,98 +108,6 @@ get_cur_freq(cpufreq *cf){
+     }
+ }
+ 
+-/*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;
+-        }
+-    }
+-
+-    fclose(fp);
+-    return GTK_WIDGET(menu);
+-}*/
+-
+ static void
+ get_cpus(cpufreq *cf)
+ {
+@@ -227,72 +144,49 @@ get_cpus(cpufreq *cf)
+     }
+     g_dir_close(cpuDirectory);
+ }
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++static void
++get_cur_freq(cpufreq *cf)
++{
++    int buf;
++    size_t length_buf = sizeof(int);
+ 
+-/*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);
+-    }
++    if (sysctlbyname("dev.cpu.0.freq", &buf, &length_buf, NULL, 0) < 0)
++        cf->cur_freq = 0;
++    else
++        cf->cur_freq = buf;
+ }
+ 
+-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;
++int
++detect_cpus_number(void)
++{
++    static int mib[] = {CTL_HW, HW_NCPU};
++    int buf;
++    size_t length_buf = sizeof(int);
+ 
+-    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 (sysctl(mib, 2, &buf, &length_buf, NULL, 0) < 0)
++        return 0;
++    else
++        return buf;
++}
+ 
+-    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));
+-    }
++static void
++get_cpus(cpufreq *cf)
++{
++    int ncpus, buf;
++    size_t lenght_buf = sizeof(int);
+ 
+-    for( l = cf->governors; l; l = l->next )
++    ncpus = detect_cpus_number();
++    cf->cpus = ncpus;
++    if (cf->cpus > 0)
++        cf->has_cpufreq = 1;
++    else
+     {
+-      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);
++        cf->has_cpufreq = 0;
++        printf("cpufreq: no cpu found\n");
+     }
+-
+-    return GTK_WIDGET (menu);
+-}*/
+-
++}
++#endif
+ 
+ 
+ static  gboolean
+@@ -318,12 +212,18 @@ _update_tooltip(cpufreq *cf)
+     char *tooltip;
+ 
+     get_cur_freq(cf);
++#if defined(__linux__)
+     get_cur_governor(cf);
++#endif
+ 
+     ENTER;
+ 
++#if defined(__linux__)
+     tooltip = g_strdup_printf(_("Frequency: %d MHz\nGovernor: %s"),
+                               cf->cur_freq / 1000, cf->cur_governor);
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++    tooltip = g_strdup_printf("Frequency: %d MHz", cf->cur_freq);
++#endif
+     gtk_widget_set_tooltip_text(cf->main, tooltip);
+     g_free(tooltip);
+     RET(TRUE);
+@@ -344,8 +244,12 @@ static GtkWidget *cpufreq_constructor(LX
+     ENTER;
+     cf = g_new0(cpufreq, 1);
+     g_return_val_if_fail(cf != NULL, NULL);
++#if defined(__linux__)
+     cf->governors = NULL;
+     cf->cpus = NULL;
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++    cf->cpus = 0;
++#endif
+     cf->settings = settings;
+ 
+     cf->main = lxpanel_button_new_for_icon(panel, PROC_ICON, NULL, NULL);
+@@ -365,30 +269,14 @@ static GtkWidget *cpufreq_constructor(LX
+     RET(cf->main);
+ }
+ 
+-/*
+-static gboolean applyConfig(gpointer user_data)
+-{
+-    cpufreq *cf = lxpanel_plugin_get_data(user_data);
+-
+-    config_group_set_int(cf->settings, "Remember", cf->remember);
+-    return FALSE;
+-}
+-
+-static GtkWidget *config(LXPanel *panel, GtkWidget *p, GtkWindow *parent)
+-{
+-    cpufreq *cf = lxpanel_plugin_get_data(p);
+-    return lxpanel_generic_config_dlg(_("CPUFreq frontend"), panel, applyConfig, p,
+-            _("Remember governor and frequency"), &cf->remember, CONF_TYPE_BOOL,
+-            NULL);
+-}
+-*/
+-
+ static void
+ cpufreq_destructor(gpointer user_data)
+ {
+     cpufreq *cf = (cpufreq *)user_data;
++#if defined(__linux__)
+     g_list_free ( cf->cpus );
+     g_list_free ( cf->governors );
++#endif
+     g_source_remove(cf->timer);
+     g_free(cf);
+ }
+@@ -399,7 +287,11 @@ FM_DEFINE_MODULE(lxpanel_gtk, cpufreq)
+ /* Plugin descriptor. */
+ LXPanelPluginInit fm_module_init_lxpanel_gtk = {
+     .name = N_("CPUFreq frontend"),
++#if defined(__linux__)
+     .description = N_("Display CPU frequency and allow to change governors and frequency"),
++#elif defined(__DragonFly__) || defined(__FreeBSD__)
++    .description = "Display CPU frequency",
++#endif
+ 
+     .new_instance = cpufreq_constructor,
+     //.config      = config,

Added: head/x11/lxpanel/files/patch-plugins_monitors_monitors.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/lxpanel/files/patch-plugins_monitors_monitors.c	Tue Jan 24 21:37:57 2017	(r432391)
@@ -0,0 +1,169 @@
+--- plugins/monitors/monitors.c.orig	2016-11-19 18:28:43 UTC
++++ plugins/monitors/monitors.c
+@@ -72,6 +72,12 @@
+  */
+ 
+ #include <stdlib.h>
++#if defined(__DragonFly__) || (__FreeBSD__)
++#include <unistd.h>
++#include <sys/resource.h>
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif
+ #include <glib/gi18n.h>
+ #include <errno.h>
+ #include <libfm/fm-gtk.h>
+@@ -221,20 +227,46 @@ monitor_set_foreground_color(MonitorsPlu
+ /******************************************************************************
+  *                                 CPU monitor                                *
+  ******************************************************************************/
+-typedef unsigned long long CPUTick;/* Value from /proc/stat                   */
+ typedef float CPUSample;	   /* Saved CPU utilization value as 0.0..1.0 */
+ 
++#if defined(__linux__)
++typedef unsigned long long CPUTick;/* Value from /proc/stat                   */
++
+ struct cpu_stat {
+     CPUTick u, n, s, i;		  /* User, nice, system, idle */
+ };
++#elif defined(__DragonFly__) || (__FreeBSD__)
++typedef glong CPUTick;
++
++struct cpu_stat {
++    CPUTick u, n, s, intr, i;
++};
++
++static gint cpu_nb(void)
++{
++    static gint mib[] = { CTL_HW, HW_NCPU };
++    gint res;
++    size_t len = sizeof(gint);
++
++    if (sysctl(mib, 2, &res, &len, NULL, 0) < 0)
++        return 0;
++    else
++        return res;
++}
++#endif
+ 
+ static gboolean
+ cpu_update(Monitor * c)
+ {
++#if defined(__linux__)
+     static struct cpu_stat previous_cpu_stat = { 0, 0, 0, 0 };
++#elif defined(__DragonFly__) || (__FreeBSD__)
++    static struct cpu_stat previous_cpu_stat = { 0, 0, 0, 0, 0 };
++#endif
+ 
+     if ((c->stats != NULL) && (c->pixmap != NULL))
+     {
++#if defined(__linux__)
+         /* Open statistics file and scan out CPU usage. */
+         struct cpu_stat cpu;
+         FILE * stat = fopen("/proc/stat", "r");
+@@ -269,6 +301,48 @@ cpu_update(Monitor * c)
+             /* Redraw with the new sample. */
+             redraw_pixmap(c);
+         }
++#elif defined(__DragonFly__) || (__FreeBSD__)
++        size_t cp_size = sizeof(glong) * CPUSTATES * cpu_nb();
++        glong *cp_times = malloc(cp_size);
++
++        if (sysctlbyname("kern.cp_times", cp_times, &cp_size, NULL, 0) < 0)
++        {
++            g_free(cp_times);
++            return FALSE;
++        }
++        else
++        {
++            struct cpu_stat cpu;
++            struct cpu_stat cpu_delta;
++
++            cpu.u = cp_times[CP_USER];
++            cpu.n = cp_times[CP_NICE];
++            cpu.s = cp_times[CP_SYS];
++            cpu.intr = cp_times[CP_INTR];
++            cpu.i = cp_times[CP_IDLE];
++
++            g_free(cp_times);
++
++            /* Compute delta from previous statistics. */
++            cpu_delta.u = cpu.u - previous_cpu_stat.u;
++            cpu_delta.n = cpu.n - previous_cpu_stat.n;
++            cpu_delta.s = cpu.s - previous_cpu_stat.s;
++            cpu_delta.intr = cpu.intr - previous_cpu_stat.intr;
++            cpu_delta.i = cpu.i - previous_cpu_stat.i;
++
++            memcpy(&previous_cpu_stat, &cpu, sizeof(struct cpu_stat));
++
++            float cpu_used = cpu_delta.u + cpu_delta.n;
++            float cpu_total = cpu_used + cpu_delta.s + cpu_delta.intr + cpu_delta.i;
++            c->stats[c->ring_cursor] = cpu_used / cpu_total;
++            c->ring_cursor += 1;
++            if (c->ring_cursor >= c->pixmap_width)
++                c->ring_cursor = 0;
++
++            /* Redraw with the new sample. */
++            redraw_pixmap(c);
++        }
++#endif
+     }
+     return TRUE;
+ }
+@@ -294,11 +368,38 @@ cpu_tooltip_update (Monitor *m)
+ /******************************************************************************
+  *                               RAM Monitor                                  *
+  ******************************************************************************/
++#if defined(__DragonFly__) || (__FreeBSD__)
++static glong
++mem_get_by_bytes(const gchar *name)
++{
++    glong buf;
++    gsize len = sizeof(glong);
++
++    if (sysctlbyname(name, &buf, &len, NULL, 0) < 0)
++        return 0;
++    else
++        return buf;
++}
++
++static glong
++mem_get_by_pages(const gchar *name)
++{
++    glong res = 0;
++
++    res = mem_get_by_bytes(name);
++    if (res > 0)
++        res = res * getpagesize();
++
++    return res;
++}
++#endif
++
+ static gboolean
+ mem_update(Monitor * m)
+ {
+     ENTER;
+ 
++#if defined(__linux__)
+     FILE *meminfo;
+     char buf[80];
+     long int mem_total = 0;
+@@ -343,6 +444,17 @@ mem_update(Monitor * m)
+                   "readmask %x", readmask);
+         RET(FALSE);
+     }
++#elif defined(__DragonFly__) || (__FreeBSD__)
++    if (!m->stats || !m->pixmap)
++        RET(TRUE);
++
++    glong mem_total, mem_free, mem_buffers, mem_cached;
++
++    mem_total = mem_get_by_bytes("hw.physmem");
++    mem_free = mem_get_by_pages("vm.stats.vm.v_free_count");
++    mem_buffers = mem_get_by_bytes("vfs.bufspace");
++    mem_cached = mem_get_by_pages("vm.stats.vm.v_inactive_count");
++#endif
+ 
+     m->total = mem_total;
+ 

Modified: head/x11/lxpanel/pkg-plist
==============================================================================
--- head/x11/lxpanel/pkg-plist	Tue Jan 24 21:27:10 2017	(r432390)
+++ head/x11/lxpanel/pkg-plist	Tue Jan 24 21:37:57 2017	(r432391)
@@ -1,18 +1,26 @@
 bin/lxpanel
 bin/lxpanelctl
+etc/xdg/lxpanel/default/config
+etc/xdg/lxpanel/default/panels/panel
+etc/xdg/lxpanel/two_panels/config
+etc/xdg/lxpanel/two_panels/panels/bottom
+etc/xdg/lxpanel/two_panels/panels/top
+include/lxpanel/conf.h
+include/lxpanel/icon-grid.h
+include/lxpanel/misc.h
+include/lxpanel/panel.h
 include/lxpanel/plugin.h
-lib/lxpanel/plugins/batt.so
+lib/lxpanel/liblxpanel.so
+lib/lxpanel/liblxpanel.so.0
+lib/lxpanel/liblxpanel.so.0.0.0
 lib/lxpanel/plugins/cpu.so
 lib/lxpanel/plugins/cpufreq.so
 lib/lxpanel/plugins/deskno.so
 lib/lxpanel/plugins/kbled.so
 lib/lxpanel/plugins/monitors.so
-lib/lxpanel/plugins/netstatus.so
-lib/lxpanel/plugins/thermal.so
-%%NO_ALSA%%lib/lxpanel/plugins/volume.so
-%%ALSA%%lib/lxpanel/plugins/volumealsa.so
+lib/lxpanel/plugins/volume.so
+%%WEATHER%%lib/lxpanel/plugins/weather.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
@@ -29,7 +37,6 @@ man/man1/lxpanelctl.1.gz
 %%NLS%%share/locale/el/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/en_GB/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/es/LC_MESSAGES/lxpanel.mo
-%%NLS%%share/locale/es_VE/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/et/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/eu/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/fa/LC_MESSAGES/lxpanel.mo
@@ -42,6 +49,7 @@ man/man1/lxpanelctl.1.gz
 %%NLS%%share/locale/hr/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/hu/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/id/LC_MESSAGES/lxpanel.mo
+%%NLS%%share/locale/is/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/it/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/ja/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/kk/LC_MESSAGES/lxpanel.mo
@@ -49,6 +57,7 @@ man/man1/lxpanelctl.1.gz
 %%NLS%%share/locale/ko/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/lg/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/lt/LC_MESSAGES/lxpanel.mo
+%%NLS%%share/locale/lv/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/ml/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/ms/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/nb/LC_MESSAGES/lxpanel.mo
@@ -76,6 +85,7 @@ man/man1/lxpanelctl.1.gz
 %%NLS%%share/locale/ur_PK/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/vi/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/zh_CN/LC_MESSAGES/lxpanel.mo
+%%NLS%%share/locale/zh_HK/LC_MESSAGES/lxpanel.mo
 %%NLS%%share/locale/zh_TW/LC_MESSAGES/lxpanel.mo
 %%DATADIR%%/images/background.png
 %%DATADIR%%/images/capslock-off.png
@@ -83,6 +93,7 @@ man/man1/lxpanelctl.1.gz
 %%DATADIR%%/images/clock.png
 %%DATADIR%%/images/cpufreq-icon.png
 %%DATADIR%%/images/file-manager.png
+%%DATADIR%%/images/gnome-fs-desktop.png
 %%DATADIR%%/images/gnome-logout.png
 %%DATADIR%%/images/gnome-netstatus-0-24.png
 %%DATADIR%%/images/gnome-netstatus-25-49.png
@@ -111,6 +122,7 @@ man/man1/lxpanelctl.1.gz
 %%DATADIR%%/images/volume-high.png
 %%DATADIR%%/images/volume-low.png
 %%DATADIR%%/images/volume-medium.png
+%%DATADIR%%/images/volume.png
 %%DATADIR%%/images/window-manager.png
 %%DATADIR%%/images/xkb-flags/ad.png
 %%DATADIR%%/images/xkb-flags/ae.png
@@ -150,6 +162,7 @@ man/man1/lxpanelctl.1.gz
 %%DATADIR%%/images/xkb-flags/epo.png
 %%DATADIR%%/images/xkb-flags/es.png
 %%DATADIR%%/images/xkb-flags/et.png
+%%DATADIR%%/images/xkb-flags/eu.png
 %%DATADIR%%/images/xkb-flags/fi.png
 %%DATADIR%%/images/xkb-flags/fo.png
 %%DATADIR%%/images/xkb-flags/fr.png
@@ -203,8 +216,10 @@ man/man1/lxpanelctl.1.gz
 %%DATADIR%%/images/xkb-flags/ph.png
 %%DATADIR%%/images/xkb-flags/pk.png
 %%DATADIR%%/images/xkb-flags/pl.png
+%%DATADIR%%/images/xkb-flags/ps.png
 %%DATADIR%%/images/xkb-flags/pt.png
 %%DATADIR%%/images/xkb-flags/qa.png
+%%DATADIR%%/images/xkb-flags/qc.png
 %%DATADIR%%/images/xkb-flags/ro.png
 %%DATADIR%%/images/xkb-flags/rs.png
 %%DATADIR%%/images/xkb-flags/ru.png
@@ -225,18 +240,16 @@ man/man1/lxpanelctl.1.gz
 %%DATADIR%%/images/xkb-flags/tw.png
 %%DATADIR%%/images/xkb-flags/tz.png
 %%DATADIR%%/images/xkb-flags/ua.png
+%%DATADIR%%/images/xkb-flags/uk.png
+%%DATADIR%%/images/xkb-flags/un.png
 %%DATADIR%%/images/xkb-flags/us.png
 %%DATADIR%%/images/xkb-flags/uy.png
 %%DATADIR%%/images/xkb-flags/uz.png
 %%DATADIR%%/images/xkb-flags/vn.png
 %%DATADIR%%/images/xkb-flags/ye.png
+%%DATADIR%%/images/xkb-flags/yu.png
 %%DATADIR%%/images/xkb-flags/za.png
-%%DATADIR%%/profile/default/config
-%%DATADIR%%/profile/default/panels/panel
-%%DATADIR%%/profile/two_panels/config
-%%DATADIR%%/profile/two_panels/panels/bottom
-%%DATADIR%%/profile/two_panels/panels/top
-%%DATADIR%%/ui/launchbar.ui
+%%DATADIR%%/ui/launchtaskbar.ui
 %%DATADIR%%/ui/netstatus.ui
 %%DATADIR%%/ui/panel-pref.ui
 %%DATADIR%%/xkeyboardconfig/layouts.cfg



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701242137.v0OLbvTO032671>