From owner-svn-ports-head@freebsd.org Tue Jan 24 21:37:59 2017 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3A0FFCBDCCC; Tue, 24 Jan 2017 21:37:59 +0000 (UTC) (envelope-from olivierd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CBD2F6AA; Tue, 24 Jan 2017 21:37:58 +0000 (UTC) (envelope-from olivierd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v0OLbw8D032677; Tue, 24 Jan 2017 21:37:58 GMT (envelope-from olivierd@FreeBSD.org) Received: (from olivierd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v0OLbvTO032671; Tue, 24 Jan 2017 21:37:57 GMT (envelope-from olivierd@FreeBSD.org) Message-Id: <201701242137.v0OLbvTO032671@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: olivierd set sender to olivierd@FreeBSD.org using -f From: Olivier Duchateau Date: Tue, 24 Jan 2017 21:37:57 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r432391 - in head/x11/lxpanel: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jan 2017 21:37:59 -0000 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 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 + #include + #include ++#if defined(__linux__) + #include ++#endif + #include ++#if defined(__DragonFly__) || (__FreeBSD__) ++#include ++#include ++#include ++#endif + #include + + #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 + #include + #include ++#if defined(__DragonFly__) || defined(__FreeBSD__) ++#include ++#endif + #include + #include + +@@ -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 ++#if defined(__DragonFly__) || (__FreeBSD__) ++#include ++#include ++#include ++#include ++#endif + #include + #include + #include +@@ -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