svn commit: r432391 - in head/x11/lxpanel: . files
Olivier Duchateau
olivierd at FreeBSD.org
Tue Jan 24 21:37:59 UTC 2017
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 at 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
More information about the svn-ports-all
mailing list