summaryrefslogtreecommitdiff
path: root/x11/mate-applets/files
diff options
context:
space:
mode:
Diffstat (limited to 'x11/mate-applets/files')
-rw-r--r--x11/mate-applets/files/patch-accessx-status_Makefile.am19
-rw-r--r--x11/mate-applets/files/patch-battstat_Makefile.am24
-rw-r--r--x11/mate-applets/files/patch-battstat_acpi-freebsd.c152
-rw-r--r--x11/mate-applets/files/patch-battstat_acpi-freebsd.h77
-rw-r--r--x11/mate-applets/files/patch-battstat_power-management.c123
-rw-r--r--x11/mate-applets/files/patch-charpick_Makefile.am19
-rw-r--r--x11/mate-applets/files/patch-configure.ac55
-rw-r--r--x11/mate-applets/files/patch-cpufreq-freebsd418
-rw-r--r--x11/mate-applets/files/patch-cpufreq-selector-freebsd192
-rw-r--r--x11/mate-applets/files/patch-drivemount_Makefile.am22
-rw-r--r--x11/mate-applets/files/patch-geyes_Makefile.am20
-rw-r--r--x11/mate-applets/files/patch-invest-applet_invest_Makefile.am23
-rw-r--r--x11/mate-applets/files/patch-invest-applet_invest_invest-applet.py13
-rw-r--r--x11/mate-applets/files/patch-invest-applet_invest_invest-chart13
-rw-r--r--x11/mate-applets/files/patch-multiload_Makefile.am23
-rw-r--r--x11/mate-applets/files/patch-stickynotes_Makefile.am23
-rw-r--r--x11/mate-applets/files/patch-trashapplet_src_Makefile.am22
17 files changed, 1238 insertions, 0 deletions
diff --git a/x11/mate-applets/files/patch-accessx-status_Makefile.am b/x11/mate-applets/files/patch-accessx-status_Makefile.am
new file mode 100644
index 000000000000..ab2d003c349d
--- /dev/null
+++ b/x11/mate-applets/files/patch-accessx-status_Makefile.am
@@ -0,0 +1,19 @@
+--- accessx-status/Makefile.am.orig 2013-04-12 00:00:04.000000000 +0200
++++ accessx-status/Makefile.am 2013-08-18 12:20:28.000000000 +0200
+@@ -5,13 +5,13 @@
+ -DACCESSX_PIXMAPS_DIR=\""$(datadir)/pixmaps/mate-accessx-status-applet"\" \
+ -DACCESSX_MENU_UI_DIR=\""$(uidir)"\"
+
+-libexec_PROGRAMS = accessx-status-applet
++libexec_PROGRAMS = mate-accessx-status-applet
+
+-accessx_status_applet_SOURCES = \
++mate_accessx_status_applet_SOURCES = \
+ applet.c \
+ applet.h
+
+-accessx_status_applet_LDADD = \
++mate_accessx_status_applet_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(X_LIBS)
+
diff --git a/x11/mate-applets/files/patch-battstat_Makefile.am b/x11/mate-applets/files/patch-battstat_Makefile.am
new file mode 100644
index 000000000000..caf3bef4fbed
--- /dev/null
+++ b/x11/mate-applets/files/patch-battstat_Makefile.am
@@ -0,0 +1,24 @@
+--- battstat/Makefile.am.orig 2013-08-18 12:28:45.000000000 +0200
++++ battstat/Makefile.am 2013-08-18 12:29:27.000000000 +0200
+@@ -34,10 +34,10 @@
+ -DBATTSTAT_MENU_UI_DIR=\""$(uidir)"\"
+
+
+-libexec_PROGRAMS = battstat-applet-2
++libexec_PROGRAMS = mate-battstat-applet-2
+
+
+-battstat_applet_2_SOURCES = \
++mate_battstat_applet_2_SOURCES = \
+ battstat.h \
+ pixmaps.h \
+ properties.c \
+@@ -53,7 +53,7 @@
+ battstat-upower.h
+
+
+-battstat_applet_2_LDADD = \
++mate_battstat_applet_2_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(LIBNOTIFY_LIBS) \
+ $(HAL_LIBS) \
diff --git a/x11/mate-applets/files/patch-battstat_acpi-freebsd.c b/x11/mate-applets/files/patch-battstat_acpi-freebsd.c
new file mode 100644
index 000000000000..48746fa03bbd
--- /dev/null
+++ b/x11/mate-applets/files/patch-battstat_acpi-freebsd.c
@@ -0,0 +1,152 @@
+--- battstat/acpi-freebsd.c.orig Sun Jul 3 16:41:26 2005
++++ battstat/acpi-freebsd.c Sun Jul 3 16:49:55 2005
+@@ -31,9 +31,13 @@
+
+ #include <stdio.h>
+ #include <sys/types.h>
++#include <sys/socket.h>
+ #include <sys/sysctl.h>
++#include <sys/un.h>
+ #include <sys/ioctl.h>
++#if defined(__i386__)
+ #include <machine/apm_bios.h>
++#endif
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <unistd.h>
+@@ -92,16 +96,36 @@ gboolean
+ acpi_freebsd_init(struct acpi_info * acpiinfo)
+ {
+ int acpi_fd;
++ int event_fd;
+
+ g_assert(acpiinfo);
+
+- acpi_fd = open(ACPIDEV, O_RDONLY);
+- if (acpi_fd >= 0) {
+- acpiinfo->acpifd = acpi_fd;
++ if (acpiinfo->acpifd == -1) {
++ acpi_fd = open(ACPIDEV, O_RDONLY);
++ if (acpi_fd >= 0) {
++ acpiinfo->acpifd = acpi_fd;
++ }
++ else {
++ acpiinfo->acpifd = -1;
++ return FALSE;
++ }
+ }
+- else {
+- acpiinfo->acpifd = -1;
+- return FALSE;
++
++ event_fd = socket(PF_UNIX, SOCK_STREAM, 0);
++ if (event_fd >= 0) {
++ struct sockaddr_un addr;
++ addr.sun_family = AF_UNIX;
++ strcpy(addr.sun_path, "/var/run/devd.pipe");
++ if (connect(event_fd, (struct sockaddr *) &addr, sizeof(addr)) == 0) {
++ acpiinfo->event_fd = event_fd;
++ acpiinfo->event_inited = TRUE;
++ acpiinfo->channel = g_io_channel_unix_new(event_fd);
++ }
++ else {
++ close(event_fd);
++ acpiinfo->event_fd = -1;
++ acpiinfo->event_inited = FALSE;
++ }
+ }
+
+ update_battery_info(acpiinfo);
+@@ -110,6 +134,65 @@ acpi_freebsd_init(struct acpi_info * acp
+ return TRUE;
+ }
+
++#define ACPI_EVENT_IGNORE 0
++#define ACPI_EVENT_AC 1
++#define ACPI_EVENT_BATTERY_INFO 2
++
++static int parse_acpi_event(GString *buffer)
++{
++ if (strstr(buffer->str, "system=ACPI")) {
++ if (strstr(buffer->str, "subsystem=ACAD"))
++ return ACPI_EVENT_AC;
++ if (strstr(buffer->str, "subsystem=CMBAT"))
++ return ACPI_EVENT_BATTERY_INFO;
++ }
++
++ return ACPI_EVENT_IGNORE;
++}
++
++void acpi_freebsd_update(struct acpi_info *acpiinfo)
++{
++ /* XXX This is needed for systems where devd does not have permissions
++ * to allow for event-driven updates.
++ */
++ update_ac_info(acpiinfo);
++ update_battery_info(acpiinfo);
++}
++
++gboolean acpi_process_event(struct acpi_info *acpiinfo, gboolean *read_error)
++{
++ gsize i;
++ int evt;
++ gboolean result = FALSE;
++ GString *buffer;
++ GIOStatus stat;
++ buffer = g_string_new(NULL);
++
++ *read_error = FALSE;
++ stat = g_io_channel_read_line_string(acpiinfo->channel, buffer, &i, NULL);
++
++ if (stat == G_IO_STATUS_ERROR || stat == G_IO_STATUS_EOF) {
++ *read_error = TRUE;
++ g_string_free(buffer, TRUE);
++ return FALSE;
++ }
++
++ evt = parse_acpi_event(buffer);
++ switch (evt) {
++ case ACPI_EVENT_AC:
++ update_ac_info(acpiinfo);
++ result = TRUE;
++ break;
++ case ACPI_EVENT_BATTERY_INFO:
++ update_battery_info(acpiinfo);
++ result = TRUE;
++ break;
++ }
++
++ g_string_free(buffer, TRUE);
++ return result;
++}
++
+ void
+ acpi_freebsd_cleanup(struct acpi_info * acpiinfo)
+ {
+@@ -119,21 +202,12 @@ acpi_freebsd_cleanup(struct acpi_info *
+ close(acpiinfo->acpifd);
+ acpiinfo->acpifd = -1;
+ }
+-}
+
+-/* XXX This is a hack since user-land applications can't get ACPI events yet.
+- * Devd provides this (or supposedly provides this), but you need to be
+- * root to access devd.
+- */
+-gboolean
+-acpi_process_event(struct acpi_info * acpiinfo)
+-{
+- g_assert(acpiinfo);
+-
+- update_ac_info(acpiinfo);
+- update_battery_info(acpiinfo);
+-
+- return TRUE;
++ if (acpiinfo->event_fd >= 0) {
++ g_io_channel_unref(acpiinfo->channel);
++ close(acpiinfo->event_fd);
++ acpiinfo->event_fd = -1;
++ }
+ }
+
+ gboolean
diff --git a/x11/mate-applets/files/patch-battstat_acpi-freebsd.h b/x11/mate-applets/files/patch-battstat_acpi-freebsd.h
new file mode 100644
index 000000000000..518a5269a069
--- /dev/null
+++ b/x11/mate-applets/files/patch-battstat_acpi-freebsd.h
@@ -0,0 +1,77 @@
+--- battstat/acpi-freebsd.h.orig 2013-03-26 20:55:32.000000000 -0500
++++ battstat/acpi-freebsd.h 2013-03-26 20:57:36.000000000 -0500
+@@ -29,61 +29,30 @@
+ #define ACPI_LIFE "hw.acpi.battery.life"
+ #define ACPI_STATE "hw.acpi.battery.state"
+
+-struct acpi_info {
+- gboolean ac_online;
+- int acpifd;
+- int max_capacity;
+- int low_capacity;
+- int critical_capacity;
++#if !defined(__i386__)
++struct apm_info {
++ guint ai_acline;
++ guint ai_batt_stat;
++ guint ai_batt_life;
++ int ai_batt_time;
++ guint ai_status;
+ };
+-
+-gboolean acpi_freebsd_read(struct apm_info *apminfo, struct acpi_info * acpiinfo);
+-gboolean acpi_process_event(struct acpi_info * acpiinfo);
+-gboolean acpi_freebsd_init(struct acpi_info * acpiinfo);
+-void acpi_freebsd_cleanup(struct acpi_info * acpiinfo);
+-
+-#endif /* __ACPI_FREEBSD_H__ */
+-/*
+- * Copyright (C) 2004 by Joe Marcus Clarke <marcus@FreeBSD.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 59 Temple Street #330, Boston, MA 02110-1301, USA.
+- */
+-
+-#ifndef __ACPI_FREEBSD_H__
+-#define __ACPI_FREEBSD_H__
+-
+-#define ACPIDEV "/dev/acpi"
+-
+-#define BATT_MIN 0
+-#define BATT_MAX 64
+-
+-#define ACPI_ACLINE "hw.acpi.acline"
+-#define ACPI_TIME "hw.acpi.battery.time"
+-#define ACPI_LIFE "hw.acpi.battery.life"
+-#define ACPI_STATE "hw.acpi.battery.state"
++#endif
+
+ struct acpi_info {
+ gboolean ac_online;
++ gboolean event_inited;
+ int acpifd;
++ int event_fd;
+ int max_capacity;
+ int low_capacity;
+ int critical_capacity;
++ GIOChannel * channel;
+ };
+
+ gboolean acpi_freebsd_read(struct apm_info *apminfo, struct acpi_info * acpiinfo);
+-gboolean acpi_process_event(struct acpi_info * acpiinfo);
++void acpi_freebsd_update(struct acpi_info * acpiinfo);
++gboolean acpi_process_event(struct acpi_info * acpiinfo, gboolean *read_error);
+ gboolean acpi_freebsd_init(struct acpi_info * acpiinfo);
+ void acpi_freebsd_cleanup(struct acpi_info * acpiinfo);
+
diff --git a/x11/mate-applets/files/patch-battstat_power-management.c b/x11/mate-applets/files/patch-battstat_power-management.c
new file mode 100644
index 000000000000..47213b3a92cb
--- /dev/null
+++ b/x11/mate-applets/files/patch-battstat_power-management.c
@@ -0,0 +1,123 @@
+--- battstat/power-management.c.orig Thu Aug 25 23:45:47 2005
++++ battstat/power-management.c Tue Aug 30 01:28:40 2005
+@@ -64,9 +64,7 @@
+
+ static const char *apm_readinfo (BatteryStatus *status);
+ static int pm_initialised;
+-#ifdef HAVE_HAL
+-static int using_hal;
+-#endif
++static int using_hal = FALSE;
+ #ifdef HAVE_UPOWER
+ static int using_upower;
+ #endif
+@@ -173,16 +171,40 @@ apm_readinfo (BatteryStatus *status)
+
+ #elif __FreeBSD__
+
++#if defined(__i386__)
+ #include <machine/apm_bios.h>
++#endif
+ #include "acpi-freebsd.h"
+
+ static struct acpi_info acpiinfo;
+ static gboolean using_acpi;
+ static int acpi_count;
++static int acpiwatch;
+ static struct apm_info apminfo;
+
++gboolean acpi_freebsd_read(struct apm_info *apminfo, struct acpi_info *acpiinfo);
++
+ #define APMDEVICE "/dev/apm"
+
++static gboolean acpi_callback (GIOChannel * chan, GIOCondition cond, gpointer data)
++{
++ gboolean read_error;
++ if (cond & (G_IO_ERR | G_IO_HUP)) {
++ acpi_freebsd_cleanup(&acpiinfo);
++ return FALSE;
++ }
++
++ if (acpi_process_event(&acpiinfo, &read_error)) {
++ acpi_freebsd_read(&apminfo, &acpiinfo);
++ }
++ else if (read_error) {
++ acpi_freebsd_cleanup(&acpiinfo);
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
+ static const char *
+ apm_readinfo (BatteryStatus *status)
+ {
+@@ -190,21 +212,27 @@ apm_readinfo (BatteryStatus *status)
+
+ if (DEBUG) g_print("apm_readinfo() (FreeBSD)\n");
+
+- if (using_acpi) {
++ if (using_acpi && (!acpiinfo.event_inited || acpiinfo.event_fd >= 0)) {
+ if (acpi_count <= 0) {
+ acpi_count = 30;
+- acpi_process_event(&acpiinfo);
++ if (!acpiinfo.event_inited) {
++ acpi_freebsd_update(&acpiinfo);
++ }
+ if (acpi_freebsd_read(&apminfo, &acpiinfo) == FALSE)
+ return ERR_FREEBSD_ACPI;
+ }
+ acpi_count--;
+ }
+- else
+- {
+- /* This is how I read the information from the APM subsystem under
+- FreeBSD. Each time this functions is called (once every second)
+- the APM device is opened, read from and then closed.
+- */
++ else if (using_acpi && acpiinfo.event_inited) {
++ if (acpi_freebsd_init(&acpiinfo)) {
++ acpiwatch = g_io_add_watch (acpiinfo.channel,
++ G_IO_IN | G_IO_ERR | G_IO_HUP,
++ acpi_callback, NULL);
++ acpi_freebsd_read(&apminfo, &acpiinfo);
++ }
++ }
++ else {
++#if defined(__i386__)
+ fd = open(APMDEVICE, O_RDONLY);
+ if (fd == -1) {
+ return ERR_OPEN_APMDEV;
+@@ -217,6 +245,9 @@ apm_readinfo (BatteryStatus *status)
+
+ if(apminfo.ai_status == 0)
+ return ERR_APM_E;
++#else
++ return ERR_OPEN_APMDEV;
++#endif
+ }
+
+ status->present = TRUE;
+@@ -480,6 +511,12 @@ power_management_initialise( int no_hal
+ }
+ else
+ using_acpi = FALSE;
++
++ if (using_acpi && acpiinfo.event_fd >= 0) {
++ acpiwatch = g_io_add_watch (acpiinfo.channel,
++ G_IO_IN | G_IO_ERR | G_IO_HUP,
++ acpi_callback, NULL);
++ }
+ #endif
+ pm_initialised = 1;
+
+@@ -513,6 +550,9 @@ power_management_cleanup( void )
+ }
+ #elif defined(__FreeBSD__)
+ if (using_acpi) {
++ if (acpiwatch != 0)
++ g_source_remove(acpiwatch);
++ acpiwatch = 0;
+ acpi_freebsd_cleanup(&acpiinfo);
+ }
+ #endif
diff --git a/x11/mate-applets/files/patch-charpick_Makefile.am b/x11/mate-applets/files/patch-charpick_Makefile.am
new file mode 100644
index 000000000000..38ac6350c0b8
--- /dev/null
+++ b/x11/mate-applets/files/patch-charpick_Makefile.am
@@ -0,0 +1,19 @@
+--- charpick/Makefile.am.orig 2013-08-18 12:39:28.000000000 +0200
++++ charpick/Makefile.am 2013-08-18 12:39:59.000000000 +0200
+@@ -7,13 +7,13 @@
+ $(MATE_APPLETS4_CFLAGS) \
+ $(MUCHARMAP_CFLAGS)
+
+-libexec_PROGRAMS = charpick_applet2
++libexec_PROGRAMS = mate-charpick_applet2
+
+-charpick_applet2_SOURCES = charpick.c \
++mate_charpick_applet2_SOURCES = charpick.c \
+ charpick.h \
+ properties.c
+
+-charpick_applet2_LDADD = \
++mate_charpick_applet2_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(MUCHARMAP_LIBS)
+
diff --git a/x11/mate-applets/files/patch-configure.ac b/x11/mate-applets/files/patch-configure.ac
new file mode 100644
index 000000000000..d54ad27bd730
--- /dev/null
+++ b/x11/mate-applets/files/patch-configure.ac
@@ -0,0 +1,55 @@
+--- configure.ac.orig 2013-03-26 21:00:43.000000000 -0500
++++ configure.ac 2013-03-26 21:06:27.000000000 -0500
+@@ -349,7 +349,7 @@
+ GETTEXT_PACKAGE=mate-applets
+ AC_SUBST(GETTEXT_PACKAGE)
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext Package])
+-AC_DEFINE_DIR(MATELOCALEDIR, "${datadir}/locale", [locale directory])
++AC_DEFINE_DIR(MATELOCALEDIR, [localedir], [locale directory])
+ AM_GLIB_GNU_GETTEXT
+
+ # this is the directory where the *.{mo,gmo} files are installed
+@@ -390,8 +390,8 @@
+ AC_CHECK_LIB(apm,apm_read,[HAVE_LIBAPM=yes],[HAVE_LIBAPM=no])
+ ;;
+ # list of supported OS cores that do not use libapm
+- i386-*-freebsd*|*-*-netbsd*|*-*-openbsd*|*-*kfreebsd*-gnu)
+- if [ -n "${OS_SYS}" ]; then
++ i386-*-freebsd*|amd64-*-freebsd*|*-*-netbsd*|*-*-openbsd*|*-*kfreebsd*-gnu)
++ if test -n "${OS_SYS}" ; then
+ ACPIINC="-I${OS_SYS}"
+ else
+ ACPIINC="-I/usr/src/sys"
+@@ -521,6 +521,9 @@
+ *linux*)
+ build_cpufreq_applet=yes
+ ;;
++ i386-*-freebsd*|amd64-*-freebsd*)
++ build_cpufreq_applet=yes
++ ;;
+ *)
+ AC_MSG_WARN([${host} is not supported by cpufreq applet, not building])
+ build_cpufreq_applet=no
+@@ -623,14 +626,14 @@
+ builderdir="${pkgdatadir}/builder"
+ AC_SUBST(builderdir)
+
+-AC_DEFINE_DIR(MATE_ICONDIR, "${iconsdir}", [Mate Icon Directory])
+-AC_DEFINE_DIR(MATE_PIXMAPSDIR, "${pixmapsdir}", [Mate Pixmaps Directory])
+-AC_DEFINE_DIR(PKGDATADIR, "${pkgdatadir}", [Mate Applets Directory])
+-AC_DEFINE_DIR(GTK_BUILDERDIR, "${builderdir}", [GtkBuilder Resources Directory])
+-AC_DEFINE_DIR(DATADIR, "${datadir}", [datadir])
+-AC_DEFINE_DIR(SYSCONFDIR, "${sysconfdir}", [sysconfdir])
+-AC_DEFINE_DIR(LIBDIR, "${libdir}", [libdir])
+-AC_DEFINE_DIR(PREFIX, "$prefix", [install prefix])
++AC_DEFINE_DIR(MATE_ICONDIR, [iconsdir], [Mate Icon Directory])
++AC_DEFINE_DIR(MATE_PIXMAPSDIR, [pixmapsdir], [Mate Pixmaps Directory])
++AC_DEFINE_DIR(PKGDATADIR, [pkgdatadir], [Mate Applets Directory])
++AC_DEFINE_DIR(GTK_BUILDERDIR, [builderdir], [GtkBuilder Resources Directory])
++AC_DEFINE_DIR(DATADIR, [datadir], [datadir])
++AC_DEFINE_DIR(SYSCONFDIR, [sysconfdir], [sysconfdir])
++AC_DEFINE_DIR(LIBDIR, [libdir], [libdir])
++AC_DEFINE_DIR(PREFIX, [prefix], [install prefix])
+
+ AS_AC_EXPAND(DATADIR, "${datadir}")
+ AS_AC_EXPAND(PYTHONDIR, $pythondir)
diff --git a/x11/mate-applets/files/patch-cpufreq-freebsd b/x11/mate-applets/files/patch-cpufreq-freebsd
new file mode 100644
index 000000000000..9a5dd5d7d4e2
--- /dev/null
+++ b/x11/mate-applets/files/patch-cpufreq-freebsd
@@ -0,0 +1,418 @@
+--- cpufreq/src/cpufreq-monitor-cpuinfo.c.orig Thu Jun 15 01:01:54 2006
++++ cpufreq/src/cpufreq-monitor-cpuinfo.c Sat Jun 17 13:48:19 2006
+@@ -22,6 +22,10 @@
+ #include <glib.h>
+ #include <glib/gi18n.h>
+
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif /* __FreeBSD__ */
+ #include <string.h>
+ #include <stdio.h>
+
+@@ -59,15 +63,20 @@ cpufreq_monitor_cpuinfo_new (guint cpu)
+ static gboolean
+ cpufreq_monitor_cpuinfo_run (CPUFreqMonitor *monitor)
+ {
++#ifndef __FreeBSD__
+ gchar *file;
+ gchar **lines;
+ gchar *buffer = NULL;
+ gchar *p;
++#else
++ size_t len;
++#endif /* __FreeBSD__ */
+ gint cpu, i;
+ gint cur_freq, max_freq;
+ gchar *governor;
+ GError *error = NULL;
+
++#ifndef __FreeBSD__
+ file = g_strdup ("/proc/cpuinfo");
+ if (!g_file_get_contents (file, &buffer, NULL, &error)) {
+ g_warning (error->message);
+@@ -112,6 +121,12 @@ cpufreq_monitor_cpuinfo_run (CPUFreqMoni
+
+ g_strfreev (lines);
+ g_free (buffer);
++#else
++ len = sizeof (cpu);
++
++ if (sysctlbyname ("hw.clockrate", &cpu, &len, NULL, 0) == -1)
++ return FALSE;
++#endif /* __FreeBSD__ */
+
+ governor = g_strdup (_("Frequency Scaling Unsupported"));
+ cur_freq = cpu * 1000;
+--- cpufreq/src/cpufreq-applet.c.orig Thu Jun 15 01:01:53 2006
++++ cpufreq/src/cpufreq-applet.c Sat Jun 17 13:42:50 2006
+@@ -17,6 +17,7 @@
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Authors : Carlos García Campos <carlosgc@gnome.org>
++ * Joe Marcus Clarke <marcus@FreeBSD.org>
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -519,6 +524,7 @@ cpufreq_applet_about_cb (BonoboUICompone
+ {
+ static const gchar *const authors[] = {
+ "Carlos Garcia Campos <carlosgc@gnome.org>",
++ "Joe Marcus Clarke <marcus@FreeBSD.org> (FreeBSD support)",
+ NULL
+ };
+ static const gchar *const documenters[] = {
+--- cpufreq/src/cpufreq-monitor-sysctl.h.orig Sat Jun 17 14:05:37 2006
++++ cpufreq/src/cpufreq-monitor-sysctl.h Sat Jun 17 14:14:13 2006
+@@ -0,0 +1,49 @@
++/*
++ * Copyright (C) 2001, 2002 Free Software Foundation
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Authors : Joe Marcus Clarke <marcus@FreeBSD.org>
++ */
++
++#ifndef __CPUFREQ_MONITOR_SYSCTL_H__
++#define __CPUFREQ_MONITOR_SYSCTL_H__
++
++#include <glib-object.h>
++
++#include "cpufreq-monitor.h"
++
++#define TYPE_CPUFREQ_MONITOR_SYSCTL (cpufreq_monitor_sysctl_get_type ())
++#define CPUFREQ_MONITOR_SYSCTL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CPUFREQ_MONITOR_SYSCTL, CPUFreqMonitorSysctl))
++#define CPUFREQ_MONITOR_SYSCTL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_CPUFREQ_MONITOR_SYSCTL, CPUFreqMonitorSysctlClass))
++#define IS_CPUFREQ_MONITOR_SYSCTL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CPUFREQ_MONITOR_SYSCTL))
++#define IS_CPUFREQ_MONITOR_SYSCTL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CPUFREQ_MONITOR_SYSCTL))
++#define CPUFREQ_MONITOR_SYSCTL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CPUFREQ_MONITOR_SYSCTL, CPUFreqMonitorSysctlClass))
++
++typedef struct _CPUFreqMonitorSysctl CPUFreqMonitorSysctl;
++typedef struct _CPUFreqMonitorSysctlClass CPUFreqMonitorSysctlClass;
++
++struct _CPUFreqMonitorSysctl {
++ CPUFreqMonitor parent;
++};
++
++struct _CPUFreqMonitorSysctlClass {
++ CPUFreqMonitorClass parent_class;
++};
++
++GType cpufreq_monitor_sysctl_get_type (void) G_GNUC_CONST;
++CPUFreqMonitor *cpufreq_monitor_sysctl_new (guint cpu);
++
++#endif /* __CPUFREQ_MONITOR_SYSCTL_H__ */
+--- cpufreq/src/cpufreq-monitor-factory.c.orig Sat Jun 17 06:28:02 2006
++++ cpufreq/src/cpufreq-monitor-factory.c Sat Jun 24 01:45:54 2006
+@@ -17,6 +17,7 @@
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Authors : Carlos García Campos <carlosgc@gnome.org>
++ * Joe Marcus Clarke <marcus@FreeBSD.org>
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -25,11 +26,18 @@
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif /* __FreeBSD__ */
+
+ #include "cpufreq-applet.h"
+ #include "cpufreq-utils.h"
+ #include "cpufreq-monitor-sysfs.h"
+ #include "cpufreq-monitor-procfs.h"
++#ifdef __FreeBSD__
++#include "cpufreq-monitor-sysctl.h"
++#endif /* __FreeBSD__ */
+ #include "cpufreq-monitor-cpuinfo.h"
+ #ifdef HAVE_LIBCPUFREQ
+ #include "cpufreq-monitor-libcpufreq.h"
+@@ -40,6 +48,7 @@ CPUFreqMonitor *
+ cpufreq_monitor_factory_create_monitor (guint cpu)
+ {
+ CPUFreqMonitor *monitor = NULL;
++#ifndef __FreeBSD__
+
+ #ifdef HAVE_LIBCPUFREQ
+ monitor = cpufreq_monitor_libcpufreq_new (cpu);
+@@ -63,6 +72,19 @@ cpufreq_monitor_factory_create_monitor (
+
+ monitor = cpufreq_monitor_cpuinfo_new (cpu);
+ }
++#else
++ size_t len;
++
++ if (sysctlbyname ("dev.cpu.0.freq", NULL, &len, NULL, 0) == 0) {
++ monitor = cpufreq_monitor_sysctl_new (cpu);
++ } else {
++ cpufreq_utils_display_error (_("CPU frequency scaling unsupported"),
++ _("You will not be able to modify the frequency of your machine. "
++ "Your machine may be misconfigured or not have hardware support "
++ "for CPU frequency scaling."));
++ monitor = cpufreq_monitor_cpuinfo_new (cpu);
++ }
++#endif /* __FreeBSD__ */
+
+ return monitor;
+ }
+--- cpufreq/src/cpufreq-utils.c.orig Sat Aug 12 21:26:50 2006
++++ cpufreq/src/cpufreq-utils.c Tue Aug 22 11:07:32 2006
+@@ -22,6 +22,9 @@
+ #include <glib.h>
+ #include <gtk/gtkmessagedialog.h>
+ #include <sys/types.h>
++#ifdef __FreeBSD__
++#include <sys/sysctl.h>
++#endif
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -30,6 +33,24 @@
+
+ #include "cpufreq-utils.h"
+
++#ifdef __FreeBSD__
++guint
++cpufreq_utils_get_n_cpus (void)
++{
++ size_t len;
++ static guint n_cpus = 0;
++
++ if (n_cpus > 0)
++ return n_cpus;
++
++ len = sizeof (n_cpus);
++ if (sysctlbyname ("hw.ncpu", &n_cpus, &len, NULL, 0) == -1) {
++ return 1;
++ }
++
++ return n_cpus;
++}
++#else
+ guint
+ cpufreq_utils_get_n_cpus (void)
+ {
+@@ -72,6 +93,7 @@ cpufreq_utils_get_n_cpus (void)
+
+ return 1;
+ }
++#endif /* __FreeBSD__ */
+
+ void
+ cpufreq_utils_display_error (const gchar *message,
+--- cpufreq/src/cpufreq-monitor-sysctl.c.orig 2010-05-13 11:27:57.000000000 +0200
++++ cpufreq/src/cpufreq-monitor-sysctl.c 2010-05-13 11:36:13.000000000 +0200
+@@ -0,0 +1,184 @@
++/*
++ * Copyright (C) 2001, 2002 Free Software Foundation
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Authors : Joe Marcus Clarke <marcus@FreeBSD.org>
++ */
++
++#include <glib.h>
++#include <glib/gi18n.h>
++
++#include <string.h>
++
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++
++#include "cpufreq-monitor-sysctl.h"
++
++#define PARENT_TYPE TYPE_CPUFREQ_MONITOR
++
++#define CPUFREQ_MONITOR_GET_PROTECTED(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PARENT_TYPE, CPUFreqMonitorProtected))
++
++static void cpufreq_monitor_sysctl_class_init (CPUFreqMonitorSysctlClass *klass);
++
++static gboolean cpufreq_monitor_sysctl_run (CPUFreqMonitor *monitor);
++static GList *cpufreq_monitor_sysctl_get_available_frequencies (CPUFreqMonitor *monitor);
++static GList *cpufreq_monitor_sysctl_get_available_governors (CPUFreqMonitor *monitor);
++
++static gboolean cpufreq_monitor_sysctl_get (gpointer gdata);
++
++G_DEFINE_TYPE (CPUFreqMonitorSysctl, cpufreq_monitor_sysctl, CPUFREQ_TYPE_MONITOR)
++
++static void
++cpufreq_monitor_sysctl_init (CPUFreqMonitorSysctl *monitor)
++{
++}
++
++static void
++cpufreq_monitor_sysctl_class_init (CPUFreqMonitorSysctlClass *klass)
++{
++ CPUFreqMonitorClass *monitor_class = CPUFREQ_MONITOR_CLASS (klass);
++
++ monitor_class->run = cpufreq_monitor_sysctl_run;
++ monitor_class->get_available_frequencies = cpufreq_monitor_sysctl_get_available_frequencies;
++ monitor_class->get_available_governors = cpufreq_monitor_sysctl_get_available_governors;
++}
++
++CPUFreqMonitor *
++cpufreq_monitor_sysctl_new (guint cpu)
++{
++ CPUFreqMonitorSysctl *monitor;
++
++ monitor = g_object_new (TYPE_CPUFREQ_MONITOR_SYSCTL, "cpu", cpu, NULL);
++
++ return CPUFREQ_MONITOR (monitor);
++}
++
++static gboolean
++cpufreq_monitor_sysctl_run (CPUFreqMonitor *monitor)
++{
++ gint fmax, fmin, ifreq;
++ gchar *governor;
++ size_t len;
++ gchar *freq_oid;
++ guint mon_cpu;
++ GList *list;
++
++ list = cpufreq_monitor_sysctl_get_available_frequencies (CPUFREQ_MONITOR (monitor));
++
++ fmax = atoi ((gchar *) list->data);
++ fmin = atoi ((gchar *) g_list_nth_data (list, (g_list_length (list) - 1)));
++
++ g_list_foreach (list, (GFunc) g_free, NULL);
++ g_list_free (list);
++
++ g_object_get (G_OBJECT (monitor), "cpu", &mon_cpu, NULL);
++ len = sizeof (ifreq);
++ freq_oid = g_strdup_printf ("dev.cpu.%d.freq", 0);
++
++ if (sysctlbyname (freq_oid, &ifreq, &len, NULL, 0) == -1) {
++ g_free (freq_oid);
++ return FALSE;
++ }
++
++ ifreq *= 1000;
++
++ if (ifreq == fmax)
++ governor = g_strdup ("performance");
++ else if (ifreq == fmin)
++ governor = g_strdup ("economy");
++ else
++ governor = g_strdup ("userspace");
++
++ g_object_set (G_OBJECT (monitor),
++ "online", TRUE,
++ "governor", governor,
++ "frequency", ifreq,
++ "max-frequency", fmax,
++ NULL);
++
++ g_free (governor);
++
++ return TRUE;
++}
++
++static GList *
++cpufreq_monitor_sysctl_get_available_frequencies (CPUFreqMonitor *monitor)
++{
++ gchar *levels_oid, *levels;
++ gchar **levelsp, **l;
++ GList *list = NULL;
++ gint mib[4];
++ guint mon_cpu;
++ size_t len;
++
++ g_object_get (G_OBJECT (monitor), "cpu", &mon_cpu, NULL);
++
++ levels_oid = g_strdup_printf ("dev.cpu.%d.freq_levels",
++ 0);
++ len = 4;
++ sysctlnametomib (levels_oid, mib, &len);
++ len = sizeof (levels);
++ g_free (levels_oid);
++
++ if (sysctl (mib, 4, NULL, &len, NULL, 0) == -1)
++ return NULL;
++
++ levels = g_malloc (len);
++ if (sysctl (mib, 4, levels, &len, NULL, 0) == -1)
++ {
++ g_free(levels);
++ return NULL;
++ }
++
++ levelsp = g_strsplit (levels, " ", 0);
++ g_free (levels);
++
++ for (l = levelsp; l && *l; l++) {
++ gchar **frpr;
++
++ frpr = g_strsplit (*l, "/", 0);
++ if (frpr && frpr[0] != NULL) {
++ /* sysctl format is %d/%d where the
++ * first %d is the frequency, and
++ * the second is the power used in
++ * mW.
++ */
++ int freq = atoi (frpr[0]);
++ list =
++ g_list_append (list, g_strdup_printf ("%d", freq * 1000));
++ }
++ g_strfreev (frpr);
++ }
++
++ g_strfreev (levelsp);
++
++ return (list);
++}
++
++static GList *
++cpufreq_monitor_sysctl_get_available_governors (CPUFreqMonitor *monitor)
++{
++ GList *list = NULL;
++
++ list = g_list_prepend (list, g_strdup ("performance"));
++ list = g_list_prepend (list, g_strdup ("userspace"));
++ list = g_list_prepend (list, g_strdup ("economy"));
++
++ return list;
++}
++#endif /* __FreeBSD__ */
+--- cpufreq/src/Makefile.am.orig 2012-07-29 15:37:51.000000000 -0500
++++ cpufreq/src/Makefile.am 2012-07-29 15:40:00.000000000 -0500
+@@ -27,7 +27,8 @@
+ cpufreq-monitor-procfs.c cpufreq-monitor-procfs.h \
+ cpufreq-monitor-sysfs.c cpufreq-monitor-sysfs.h \
+ $(cpufreq_files) \
+- cpufreq-monitor-cpuinfo.c cpufreq-monitor-cpuinfo.h
++ cpufreq-monitor-cpuinfo.c cpufreq-monitor-cpuinfo.h \
++ cpufreq-monitor-sysctl.c cpufreq-monitor-sysctl.h
+
+ cpufreq_applet_LDADD = \
+ $(MATE_APPLETS3_LIBS) \
diff --git a/x11/mate-applets/files/patch-cpufreq-selector-freebsd b/x11/mate-applets/files/patch-cpufreq-selector-freebsd
new file mode 100644
index 000000000000..1ab5faa0542b
--- /dev/null
+++ b/x11/mate-applets/files/patch-cpufreq-selector-freebsd
@@ -0,0 +1,192 @@
+--- cpufreq/src/cpufreq-selector/cpufreq-selector-sysctl.h.orig Sat Jun 24 01:52:35 2006
++++ cpufreq/src/cpufreq-selector/cpufreq-selector-sysctl.h Sat Jun 24 02:13:05 2006
+@@ -0,0 +1,53 @@
++/*
++ * Copyright (C) 2001, 2002 Free Software Foundation
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Authors : Joe Marcus Clarke <marcus@FreeBSD.org>
++ */
++
++#ifndef __CPUFREQ_SELECTOR_SYSCTL_H__
++#define __CPUFREQ_SELECTOR_SYSCTL_H__
++
++#include <glib-object.h>
++
++#include "cpufreq-selector.h"
++
++G_BEGIN_DECLS
++
++#define CPUFREQ_TYPE_SELECTOR_SYSCTL (cpufreq_selector_sysctl_get_type ())
++#define CPUFREQ_SELECTOR_SYSCTL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CPUFREQ_TYPE_SELECTOR_SYSCTL, CPUFreqSelectorProcfs))
++#define CPUFREQ_SELECTOR_SYSCTL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), CPUFREQ_TYPE_SELECTOR_SYSCTL, CPUFreqSelectorProcfsClass))
++#define CPUFREQ_IS_SELECTOR_SYSCTL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CPUFREQ_TYPE_SELECTOR_SYSCTL))
++#define CPUFREQ_IS_SELECTOR_SYSCTL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CPUFREQ_TYPE_SELECTOR_SYSCTL))
++#define CPUFREQ_SELECTOR_SYSCTL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CPUFREQ_TYPE_SELECTOR_SYSCTL, CPUFreqSelectorProcfsClass))
++
++typedef struct _CPUFreqSelectorSysctl CPUFreqSelectorSysctl;
++typedef struct _CPUFreqSelectorSysctlClass CPUFreqSelectorSysctlClass;
++
++struct _CPUFreqSelectorSysctl {
++ CPUFreqSelector parent;
++};
++
++struct _CPUFreqSelectorSysctlClass {
++ CPUFreqSelectorClass parent_class;
++};
++
++GType cpufreq_selector_sysctl_get_type (void) G_GNUC_CONST;
++CPUFreqSelector *cpufreq_selector_sysctl_new (guint cpu);
++
++G_END_DECLS
++
++#endif /* __CPUFREQ_SELECTOR_SYSCTL_H__ */
+--- cpufreq/src/cpufreq-selector/cpufreq-selector-sysctl.c.orig Wed Jul 26 01:34:18 2006
++++ cpufreq/src/cpufreq-selector/cpufreq-selector-sysctl.c Wed Jul 26 01:42:00 2006
+@@ -0,0 +1,87 @@
++/*
++ * Copyright (C) 2001, 2002 Free Software Foundation
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this library; if not, write to the Free
++ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * Authors : Joe Marcus Clarke <marcus@FreeBSD.org>
++ */
++
++#include <glib.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif /* __FreeBSD__ */
++
++#include "cpufreq-selector-sysctl.h"
++
++static void cpufreq_selector_sysctl_init (CPUFreqSelectorSysctl *selector);
++static void cpufreq_selector_sysctl_class_init (CPUFreqSelectorSysctlClass *klass);
++
++static gboolean cpufreq_selector_sysctl_set_frequency (CPUFreqSelector *selector, guint frequency, GError **error);
++static gboolean cpufreq_selector_sysctl_set_governor (CPUFreqSelector *selector, const gchar *governor, GError **error);
++
++G_DEFINE_TYPE (CPUFreqSelectorSysctl, cpufreq_selector_sysctl, CPUFREQ_TYPE_SELECTOR)
++
++static void
++cpufreq_selector_sysctl_init (CPUFreqSelectorSysctl *selector)
++{
++}
++
++static void
++cpufreq_selector_sysctl_class_init (CPUFreqSelectorSysctlClass *klass)
++{
++ CPUFreqSelectorClass *selector_class = CPUFREQ_SELECTOR_CLASS (klass);
++
++ selector_class->set_frequency = cpufreq_selector_sysctl_set_frequency;
++ selector_class->set_governor = cpufreq_selector_sysctl_set_governor;
++}
++
++CPUFreqSelector *
++cpufreq_selector_sysctl_new (guint cpu)
++{
++ CPUFreqSelector *selector;
++
++ selector = CPUFREQ_SELECTOR (g_object_new (CPUFREQ_TYPE_SELECTOR_SYSCTL,
++ "cpu", cpu, NULL));
++
++ return selector;
++}
++
++static gboolean
++cpufreq_selector_sysctl_set_governor (CPUFreqSelector *selector, const gchar *governor, GError **error)
++{
++ return TRUE;
++}
++
++static gboolean
++cpufreq_selector_sysctl_set_frequency (CPUFreqSelector *selector, guint frequency, GError **error)
++{
++ guint cpu, i;
++ size_t len;
++ gchar *freq_oid;
++
++ g_object_get (G_OBJECT (selector), "cpu", &cpu, NULL);
++
++ frequency = (guint) ((gdouble) frequency / 1000); /* Convert back to MHz*/
++ freq_oid = g_strdup_printf ("dev.cpu.%d.freq", (gint) 0);
++
++ sysctlbyname (freq_oid, NULL, &len, &frequency, sizeof (frequency));
++ g_free (freq_oid);
++
++ return TRUE;
++}
+--- cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c.orig 2008-06-16 14:33:25.000000000 -0400
++++ cpufreq/src/cpufreq-selector/cpufreq-selector-factory.c 2008-06-16 14:35:28.000000000 -0400
+@@ -27,20 +27,32 @@
+ #ifdef HAVE_LIBCPUFREQ
+ #include "cpufreq-selector-libcpufreq.h"
+ #endif
++#ifdef __FreeBSD__
++#include "cpufreq-selector-sysctl.h"
++#endif /* __FreeBSD__ */
+
+ CPUFreqSelector *
+ cpufreq_selector_factory_create_selector (guint cpu)
+ {
+ CPUFreqSelector *selector = NULL;
++#ifdef __FreeBSD__
++ size_t len;
++#endif
+
+ #ifdef HAVE_LIBCPUFREQ
+ selector = cpufreq_selector_libcpufreq_new (cpu);
+ #else
++#ifndef __FreeBSD__
+ if (g_file_test ("/sys/devices/system/cpu/cpu0/cpufreq", G_FILE_TEST_EXISTS)) { /* 2.6 kernel */
+ selector = cpufreq_selector_sysfs_new (cpu);
+ } else if (g_file_test ("/proc/cpufreq", G_FILE_TEST_EXISTS)) { /* 2.4 kernel */
+ selector = cpufreq_selector_procfs_new (cpu);
+ }
++#else
++ if (sysctlbyname ("dev.cpu.0.freq", NULL, &len, NULL, 0) == 0) {
++ selector = cpufreq_selector_sysctl_new (cpu);
++ }
++#endif /* __FreeBSD__ */
+ #endif /* HAVE_LIBCPUFREQ */
+
+ return selector;
+--- cpufreq/src/cpufreq-selector/Makefile.am.orig 2012-07-29 15:41:47.000000000 -0500
++++ cpufreq/src/cpufreq-selector/Makefile.am 2012-07-29 15:42:08.000000000 -0500
+@@ -32,7 +32,7 @@
+ $(service_files) \
+ cpufreq-selector-factory.c cpufreq-selector-factory.h \
+ $(BUILT_SOURCES) \
+- main.c
++ main.c cpufreq-selector-sysctl.c cpufreq-selector-sysctl.h
+
+ mate_cpufreq_selector_LDADD = \
+ $(CPUFREQ_SELECTOR_LIBS) \
diff --git a/x11/mate-applets/files/patch-drivemount_Makefile.am b/x11/mate-applets/files/patch-drivemount_Makefile.am
new file mode 100644
index 000000000000..a3b7039e98aa
--- /dev/null
+++ b/x11/mate-applets/files/patch-drivemount_Makefile.am
@@ -0,0 +1,22 @@
+--- drivemount/Makefile.am.orig 2013-08-18 12:45:02.000000000 +0200
++++ drivemount/Makefile.am 2013-08-18 12:45:33.000000000 +0200
+@@ -6,16 +6,16 @@
+ -DDRIVEMOUNT_MENU_UI_DIR=\""$(uidir)"\" \
+ $(MATE_APPLETS4_CFLAGS)
+
+-libexec_PROGRAMS = drivemount_applet2
++libexec_PROGRAMS = mate-drivemount_applet2
+
+-drivemount_applet2_SOURCES = \
++mate_drivemount_applet2_SOURCES = \
+ drivemount.c \
+ drive-list.c \
+ drive-list.h \
+ drive-button.c \
+ drive-button.h
+
+-drivemount_applet2_LDADD = \
++mate_drivemount_applet2_LDADD = \
+ $(MATE_APPLETS4_LIBS)
+
+
diff --git a/x11/mate-applets/files/patch-geyes_Makefile.am b/x11/mate-applets/files/patch-geyes_Makefile.am
new file mode 100644
index 000000000000..6b7afc66e091
--- /dev/null
+++ b/x11/mate-applets/files/patch-geyes_Makefile.am
@@ -0,0 +1,20 @@
+--- geyes/Makefile.am.orig 2013-08-18 13:11:28.000000000 +0200
++++ geyes/Makefile.am 2013-08-18 13:13:31.000000000 +0200
+@@ -8,14 +8,14 @@
+ -DGEYES_THEMES_DIR=\""$(pkgdatadir)/geyes/"\" \
+ -DGEYES_MENU_UI_DIR=\""$(uidir)"\"
+
+-libexec_PROGRAMS = geyes_applet2
++libexec_PROGRAMS = mate-geyes_applet2
+
+-geyes_applet2_SOURCES = \
++mate_geyes_applet2_SOURCES = \
+ geyes.c \
+ themes.c \
+ geyes.h
+
+-geyes_applet2_LDADD = \
++mate_geyes_applet2_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ -lm
+
diff --git a/x11/mate-applets/files/patch-invest-applet_invest_Makefile.am b/x11/mate-applets/files/patch-invest-applet_invest_Makefile.am
new file mode 100644
index 000000000000..760ab0269780
--- /dev/null
+++ b/x11/mate-applets/files/patch-invest-applet_invest_Makefile.am
@@ -0,0 +1,23 @@
+--- invest-applet/invest/Makefile.am.orig 2013-08-18 13:14:04.000000000 +0200
++++ invest-applet/invest/Makefile.am 2013-08-18 13:17:26.000000000 +0200
+@@ -1,9 +1,9 @@
+-invest-applet: invest-applet.py
++mate-invest-applet: mate-invest-applet.py
+ sed -e "s|\@PYTHONDIR\@|$(pythondir)/|" $< > $@
+
+ bin_SCRIPTS = mate-invest-chart
+
+-libexec_SCRIPTS = invest-applet
++libexec_SCRIPTS = mate-invest-applet
+
+ investdir = $(pythondir)/mate_invest
+ invest_PYTHON = \
+@@ -21,7 +21,7 @@
+ defs.py
+
+ BUILT_SOURCES = \
+- invest-applet
++ mate-invest-applet
+
+ CLEANFILES = \
+ $(BUILT_SOURCES)
diff --git a/x11/mate-applets/files/patch-invest-applet_invest_invest-applet.py b/x11/mate-applets/files/patch-invest-applet_invest_invest-applet.py
new file mode 100644
index 000000000000..5cb46b6018bc
--- /dev/null
+++ b/x11/mate-applets/files/patch-invest-applet_invest_invest-applet.py
@@ -0,0 +1,13 @@
+--- invest-applet/invest/invest-applet.py.orig 2008-03-15 19:39:32.000000000 -0400
++++ invest-applet/invest/invest-applet.py 2008-04-28 13:27:46.000000000 -0400
+@@ -26,8 +26,8 @@ import mate_invest, mate_invest.applet, mate_invest.def
+ import gettext, locale
+ gettext.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
+ gettext.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
+-locale.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
+-locale.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
++#locale.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
++#locale.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
+
+ from gettext import gettext as _
+
diff --git a/x11/mate-applets/files/patch-invest-applet_invest_invest-chart b/x11/mate-applets/files/patch-invest-applet_invest_invest-chart
new file mode 100644
index 000000000000..2b6da07eb611
--- /dev/null
+++ b/x11/mate-applets/files/patch-invest-applet_invest_invest-chart
@@ -0,0 +1,13 @@
+--- invest-applet/invest/mate-invest-chart.orig 2008-03-15 16:34:50.000000000 -0400
++++ invest-applet/invest/mate-invest-chart 2008-04-28 13:29:13.000000000 -0400
+@@ -6,8 +6,8 @@ import sys, mate_invest.chart, gtk
+ import gettext, locale
+ gettext.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
+ gettext.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
+-locale.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
+-locale.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
++#locale.bindtextdomain(mate_invest.defs.GETTEXT_PACKAGE, mate_invest.defs.MATELOCALEDIR)
++#locale.textdomain(mate_invest.defs.GETTEXT_PACKAGE)
+
+ if __name__ == "__main__":
+ win = mate_invest.chart.show_chart(sys.argv[1:])
diff --git a/x11/mate-applets/files/patch-multiload_Makefile.am b/x11/mate-applets/files/patch-multiload_Makefile.am
new file mode 100644
index 000000000000..318c1faa9f60
--- /dev/null
+++ b/x11/mate-applets/files/patch-multiload_Makefile.am
@@ -0,0 +1,23 @@
+--- multiload/Makefile.am.orig 2013-08-18 13:00:10.000000000 +0200
++++ multiload/Makefile.am 2013-08-18 13:00:34.000000000 +0200
+@@ -8,9 +8,9 @@
+ $(MATEDESKTOP_CFLAGS) \
+ $(GIO_CFLAGS)
+
+-libexec_PROGRAMS = multiload-applet-2
++libexec_PROGRAMS = mate-multiload-applet-2
+
+-multiload_applet_2_SOURCES = \
++mate_multiload_applet_2_SOURCES = \
+ global.h \
+ linux-proc.h \
+ load-graph.h \
+@@ -22,7 +22,7 @@
+ autoscaler.c \
+ autoscaler.h
+
+-multiload_applet_2_LDADD = \
++mate_multiload_applet_2_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(GTOP_APPLETS_LIBS) \
+ $(MATEDESKTOP_LIBS) \
diff --git a/x11/mate-applets/files/patch-stickynotes_Makefile.am b/x11/mate-applets/files/patch-stickynotes_Makefile.am
new file mode 100644
index 000000000000..9a61408302b8
--- /dev/null
+++ b/x11/mate-applets/files/patch-stickynotes_Makefile.am
@@ -0,0 +1,23 @@
+--- stickynotes/Makefile.am.orig 2013-08-18 13:04:01.000000000 +0200
++++ stickynotes/Makefile.am 2013-08-18 13:04:27.000000000 +0200
+@@ -18,9 +18,9 @@
+ -DSTICKYNOTES_MENU_UI_DIR=\""$(uidir)"\"\
+ -DSTICKYNOTES_ICONDIR=\"$(datadir)/pixmaps/mate-stickynotes/\"
+
+-libexec_PROGRAMS = stickynotes_applet
++libexec_PROGRAMS = mate-stickynotes_applet
+
+-stickynotes_applet_SOURCES = \
++mate_stickynotes_applet_SOURCES = \
+ util.h \
+ util.c \
+ stickynotes.h \
+@@ -32,7 +32,7 @@
+ stickynotes_applet.c \
+ stickynotes_applet_callbacks.c
+
+-stickynotes_applet_LDADD = \
++mate_stickynotes_applet_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(LIBMATEWNCK_LIBS) \
+ $(XML2_LIBS) \
diff --git a/x11/mate-applets/files/patch-trashapplet_src_Makefile.am b/x11/mate-applets/files/patch-trashapplet_src_Makefile.am
new file mode 100644
index 000000000000..1ff61fa36d7c
--- /dev/null
+++ b/x11/mate-applets/files/patch-trashapplet_src_Makefile.am
@@ -0,0 +1,22 @@
+--- trashapplet/src/Makefile.am.orig 2013-08-18 13:06:17.000000000 +0200
++++ trashapplet/src/Makefile.am 2013-08-18 13:06:32.000000000 +0200
+@@ -3,16 +3,16 @@
+ $(GIO_CFLAGS) \
+ -DTRASH_MENU_UI_DIR=\""$(datadir)/mate-2.0/ui"\"
+
+-libexec_PROGRAMS = trashapplet
++libexec_PROGRAMS = mate-trashapplet
+
+-trashapplet_SOURCES = \
++mate_trashapplet_SOURCES = \
+ trashapplet.c \
+ trash-empty.h \
+ trash-empty.c \
+ xstuff.c \
+ xstuff.h
+
+-trashapplet_LDADD = \
++mate_trashapplet_LDADD = \
+ $(MATE_APPLETS4_LIBS) \
+ $(GIO_LIBS) \
+ -lX11