diff options
author | Markus Brueffer <markus@FreeBSD.org> | 2005-06-09 22:56:12 +0000 |
---|---|---|
committer | Markus Brueffer <markus@FreeBSD.org> | 2005-06-09 22:56:12 +0000 |
commit | cb49cc5d8307d7c839ed79821fbfc85ec1627d8c (patch) | |
tree | fd2ce6f3964c29fbf9eb3547598d8de56bbfa143 /deskutils/tpb | |
parent | e1c5ff855d9065dd77e79b287f1a893b6a373176 (diff) | |
download | ports-cb49cc5d8307d7c839ed79821fbfc85ec1627d8c.tar.gz ports-cb49cc5d8307d7c839ed79821fbfc85ec1627d8c.zip |
Notes
Diffstat (limited to 'deskutils/tpb')
-rw-r--r-- | deskutils/tpb/Makefile | 58 | ||||
-rw-r--r-- | deskutils/tpb/distinfo | 2 | ||||
-rw-r--r-- | deskutils/tpb/files/patch-Makefile.in | 11 | ||||
-rw-r--r-- | deskutils/tpb/files/patch-man-tpb.1 | 43 | ||||
-rw-r--r-- | deskutils/tpb/files/patch-src-Makefile.in | 11 | ||||
-rw-r--r-- | deskutils/tpb/files/patch-src-cfg.h | 11 | ||||
-rw-r--r-- | deskutils/tpb/files/patch-src-tpb.c | 121 | ||||
-rw-r--r-- | deskutils/tpb/pkg-descr | 10 | ||||
-rw-r--r-- | deskutils/tpb/pkg-plist | 6 |
9 files changed, 273 insertions, 0 deletions
diff --git a/deskutils/tpb/Makefile b/deskutils/tpb/Makefile new file mode 100644 index 000000000000..a3c0bb63c872 --- /dev/null +++ b/deskutils/tpb/Makefile @@ -0,0 +1,58 @@ +# New ports collection makefile for: tpb +# Date created: Fri Jun 10 00:38:03 CEST 2005 +# Whom: Markus Brueffer <markus@FreeBSD.org> +# +# $FreeBSD$ + +PORTNAME= tpb +PORTVERSION= 0.6.3 +CATEGORIES= deskutils +MASTER_SITES= ${MASTER_SITE_SAVANNAH} +MASTER_SITE_SUBDIR= ${PORTNAME} + +MAINTAINER= markus@FreeBSD.org +COMMENT= On-Screen-Display for hotkeys of IBM ThinkPads + +LIB_DEPENDS= xosd.4:${PORTSDIR}/misc/xosd + +ONLY_FOR_ARCHS= i386 amd64 + +USE_GMAKE= yes +GNU_CONFIGURE= yes +USE_REINPLACE= yes +USE_ICONV= yes +USE_BISON= yes +USE_REINPLACE= yes + +CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL} +CONFIGURE_ARGS= --with-libiconv-prefix=${LOCALBASE} + +MAN1= tpb.1 + +.ifndef(WITHOUT_NLS) +USE_GETTEXT= yes +PLIST_SUB+= NLS="" +.else +CONFIGURE_ARGS+=--disable-nls +PLIST_SUB+= NLS="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \ + ${WRKSRC}/src/cfg.h \ + ${WRKSRC}/man/tpb.1 + +post-install: + ${INSTALL_DATA} ${WRKSRC}/doc/tpbrc ${PREFIX}/etc/tpbrc.default +.ifndef(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_SCRIPT} ${WRKSRC}/doc/callback_example.sh ${DOCSDIR} +.endif + +.include <bsd.port.pre.mk> + +.if ${OSVERSION} < 600030 +IGNORE=is not supported on FreeBSD < 6.0 +.endif + +.include <bsd.port.post.mk> diff --git a/deskutils/tpb/distinfo b/deskutils/tpb/distinfo new file mode 100644 index 000000000000..17e1e4c6a09d --- /dev/null +++ b/deskutils/tpb/distinfo @@ -0,0 +1,2 @@ +MD5 (tpb-0.6.3.tar.gz) = fc11a0af992178e4013fd9c041dbaa7e +SIZE (tpb-0.6.3.tar.gz) = 277058 diff --git a/deskutils/tpb/files/patch-Makefile.in b/deskutils/tpb/files/patch-Makefile.in new file mode 100644 index 000000000000..84ea9699997a --- /dev/null +++ b/deskutils/tpb/files/patch-Makefile.in @@ -0,0 +1,11 @@ +--- Makefile.in.orig Thu Jun 9 01:19:36 2005 ++++ Makefile.in Thu Jun 9 01:19:52 2005 +@@ -92,7 +92,7 @@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ + +-SUBDIRS = doc intl po src man ++SUBDIRS = intl po src man + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = config.h diff --git a/deskutils/tpb/files/patch-man-tpb.1 b/deskutils/tpb/files/patch-man-tpb.1 new file mode 100644 index 000000000000..dac2d56d1b2f --- /dev/null +++ b/deskutils/tpb/files/patch-man-tpb.1 @@ -0,0 +1,43 @@ +--- man/tpb.1.orig Mon Aug 23 13:01:45 2004 ++++ man/tpb.1 Thu Jun 9 23:49:03 2005 +@@ -7,7 +7,7 @@ + With TPB it is possible to bind a program to the ThinkPad, Mail, Home and Search button. + TPB can also run a callback program on each state change with the changed state and the new state as options. + So it is possible to trigger several actions on different events. +-TPB has a on-screen display (OSD) to show volume, mute, brightness and some other informations. ++TPB has an on-screen display (OSD) to show volume, mute, brightness and some other information. + Furthermore TPB supports a software mixer, as the R series ThinkPads have no hardware mixer to change the volume. + .SH OPTIONS + .TP 8 +@@ -86,7 +86,7 @@ + builtin defaults + .TP + \(bu +-configuration in /etc/tpbrc ++configuration in %%PREFIX%%/etc/tpbrc + .TP + \(bu + configuration in $HOME/.tpbrc +@@ -112,7 +112,8 @@ + .TP 8 + .B NVRAM + Should define the nvram device from where the information about the key states +-is read. Default is to try /dev/nvram, followed by /dev/misc/nvram. ++is read. Default is to try /dev/nvram, followed by /dev/misc/nvram. This has no ++effect on FreeBSD, since it uses the acpi_ibm(4) driver instead. + .TP 8 + .B POLLTIME + Defines the delay between polls in microseconds. Default is 200000. +@@ -266,9 +267,11 @@ + .B OSDALIGN + Defines the alignment of the osd. Possible values are left, center and right. Default is left. + .SH "NOTES" +-Requires NVRAM device /dev/nvram. This must be enabled in your kernel. ++Requires NVRAM device /dev/nvram on Linux. This must be enabled in your kernel. + Although the device file must exist. The device file could be created with + \'mknod /dev/nvram c 10 144\' ++ ++On FreeBSD you have to load the acpi_ibm(4) driver prior to using TPB. + + This program was developed on a Thinkpad Model T21. I don't know if it works on + other models. diff --git a/deskutils/tpb/files/patch-src-Makefile.in b/deskutils/tpb/files/patch-src-Makefile.in new file mode 100644 index 000000000000..21ec7cc6d523 --- /dev/null +++ b/deskutils/tpb/files/patch-src-Makefile.in @@ -0,0 +1,11 @@ +--- src/Makefile.in.orig Thu Jun 9 00:42:42 2005 ++++ src/Makefile.in Thu Jun 9 00:45:44 2005 +@@ -106,7 +106,7 @@ + + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ $(INTLLIBS) + X_CFLAGS = @X_CFLAGS@ + X_LIBS = @X_LIBS@ + X_EXTRA_LIBS = @X_EXTRA_LIBS@ diff --git a/deskutils/tpb/files/patch-src-cfg.h b/deskutils/tpb/files/patch-src-cfg.h new file mode 100644 index 000000000000..f8ca4d34219c --- /dev/null +++ b/deskutils/tpb/files/patch-src-cfg.h @@ -0,0 +1,11 @@ +--- src/cfg.h.orig Mon May 30 00:06:16 2005 ++++ src/cfg.h Mon May 30 00:06:32 2005 +@@ -67,7 +67,7 @@ + #ifdef SYSCONFDIR + #define GLOBAL_CONFIG_FILE SYSCONFDIR "/tpbrc" + #else /* SYSCONFDIR */ +-#define GLOBAL_CONFIG_FILE "/etc/tpbrc" ++#define GLOBAL_CONFIG_FILE "%%PREFIX%%/etc/tpbrc" + #endif /* SYSCONFDIR */ + #define PRIVATE_CONFIG_FILE ".tpbrc" + diff --git a/deskutils/tpb/files/patch-src-tpb.c b/deskutils/tpb/files/patch-src-tpb.c new file mode 100644 index 000000000000..a57e61a43def --- /dev/null +++ b/deskutils/tpb/files/patch-src-tpb.c @@ -0,0 +1,121 @@ +--- src/tpb.c.orig Sun Aug 22 15:45:11 2004 ++++ src/tpb.c Fri Jun 10 00:11:56 2005 +@@ -34,6 +34,10 @@ + #include <unistd.h> + #include "config.h" + ++#ifdef __FreeBSD__ ++#include <sys/sysctl.h> ++#endif ++ + #if ENABLE_NLS + #include <libintl.h> + #endif /* ENABLE_NLS */ +@@ -163,6 +167,9 @@ + /* to initialize struct */ + memset(&last_thinkpad_state, 0x00, sizeof(t_thinkpad_state)); + if(get_nvram_state(&thinkpad_state) != 0) { ++#ifdef __FreeBSD__ ++ fprintf(stderr, _("acpi_ibm(4) driver not loaded. Exiting...")); ++#endif + _exit(1); + } + if(cfg.apm == STATE_ON) { +@@ -972,6 +979,7 @@ + /* get the current state from the nvram */ + int get_nvram_state(t_thinkpad_state *thinkpad_state) /* {{{ */ + { ++#ifndef __FreeBSD__ + static int fdsc = -1; /* -1 -> file not opened */ + unsigned char buffer[114]; + struct { +@@ -1030,13 +1038,50 @@ + thinkpad_state->mute_toggle = (thinkpad_state->mute_toggle & ~0x01) | (( buffer[0x60] & 0x40) >> 6); + thinkpad_state->powermgt_ac = (( buffer[0x39] & 0x07) ); + thinkpad_state->powermgt_battery = (( buffer[0x39] & 0x38) >> 3); ++#else ++ u_int n = 0; ++ size_t len = sizeof(n); ++ if ( sysctlbyname("dev.acpi_ibm.0.hotkey", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ ++ thinkpad_state->thinkpad_toggle = (thinkpad_state->thinkpad_toggle & ~0x01) | (( n & (1<<3)) >> 3); ++ thinkpad_state->zoom_toggle = (thinkpad_state->zoom_toggle & ~0x01) | (( n & (1<<4)) >> 4); ++ thinkpad_state->display_toggle = (thinkpad_state->display_toggle & ~0x01) | (( n & (1<<6)) >> 6); ++ thinkpad_state->home_toggle = (thinkpad_state->home_toggle & ~0x01) | (( n & (1<<0)) ); ++ thinkpad_state->search_toggle = (thinkpad_state->search_toggle & ~0x01) | (( n & (1<<1)) >> 1); ++ thinkpad_state->mail_toggle = (thinkpad_state->mail_toggle & ~0x01) | (( n & (1<<2)) >> 2); ++ thinkpad_state->hibernate_toggle = (thinkpad_state->hibernate_toggle & ~0x01) | (( n & (1<<7)) >> 7); ++ thinkpad_state->expand_toggle = (thinkpad_state->expand_toggle & ~0x01) | (( n & (1<<9)) >> 9); ++ thinkpad_state->brightness_toggle = (thinkpad_state->brightness_toggle & ~0x01) | (( n & (1<<10)) >> 10); ++ thinkpad_state->volume_toggle = (thinkpad_state->volume_toggle & ~0x01) | (( n & (1<<11)) >> 11); ++ ++ if ( sysctlbyname("dev.acpi_ibm.0.wlan", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ thinkpad_state->wireless_toggle = (thinkpad_state->wireless_toggle & ~0x01) | n; ++ ++ if ( sysctlbyname("dev.acpi_ibm.0.thinklight", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ thinkpad_state->thinklight_toggle = (thinkpad_state->thinklight_toggle & ~0x01) | n; ++ ++ if ( sysctlbyname("dev.acpi_ibm.0.lcd_brightness", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ thinkpad_state->brightness_level = n; ++ ++ if ( sysctlbyname("dev.acpi_ibm.0.volume", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ thinkpad_state->volume_level = n; + ++ if ( sysctlbyname("dev.acpi_ibm.0.mute", &n, &len, NULL, 0) == -1 ) ++ return -1; ++ thinkpad_state->mute_toggle = (thinkpad_state->mute_toggle & ~0x01) | n; ++#endif + return 0; + } /* }}} */ + + /* get the current state from the apm subsystem */ + int get_apm_state(t_thinkpad_state *thinkpad_state) /* {{{ */ + { ++#ifndef __FreeBSD__ + unsigned int i; + static int fdsc = -1; /* -1 -> file not opened */ + char buffer[38]; +@@ -1114,7 +1159,15 @@ + thinkpad_state->ac_state = STATE_ON; + break; + } ++#else ++ u_long addr; ++ size_t len = sizeof(addr); + ++ if ( sysctlbyname("hw.acpi.acline", &addr, &len, NULL, 0) == -1 ) ++ return -1; ++ ++ thinkpad_state->ac_state = (addr == 1) ? STATE_ON : STATE_OFF; ++#endif + return 0; + } /* }}} */ + +@@ -1276,6 +1329,12 @@ + + /* only use writeback to nvram when cfg.mixersteps is different from DEFAULT_MIXERSTEPS */ + if(cfg.mixersteps != DEFAULT_MIXERSTEPS) { ++#ifdef __FreeBSD__ ++ u_int n = 0; ++ ++ if (sysctlbyname("dec.acpi_ibm.0.volume", NULL, NULL, &n, sizeof(n))) ++ fprintf(stderr, _("Unable to set volume sysctl")); ++#else + /* open nvram */ + if((fdsc = open(cfg.nvram, O_RDWR|O_NONBLOCK)) == -1) { + fprintf(stderr, _("Unable to open device %s: "), cfg.nvram); +@@ -1317,8 +1376,8 @@ + } + + close(fdsc); ++#endif + } +- + return; + + } /* }}} */ diff --git a/deskutils/tpb/pkg-descr b/deskutils/tpb/pkg-descr new file mode 100644 index 000000000000..0e07bdaa8a97 --- /dev/null +++ b/deskutils/tpb/pkg-descr @@ -0,0 +1,10 @@ +With TPB it is possible to bind a program to the ThinkPad, Mail, Home and +Search button. TPB can also run a callback program on each state change with +the changed state and the new state as options. So it is possible to trigger +several actions on different events. + +TPB has an on-screen display (OSD) to show volume, mute, brightness and some +other information. Furthermore TPB supports a software mixer, as the R series +ThinkPads have no hardware mixer to change the volume. + +WWW: http://www.nongnu.org/tpb/ diff --git a/deskutils/tpb/pkg-plist b/deskutils/tpb/pkg-plist new file mode 100644 index 000000000000..d9c92cf7337d --- /dev/null +++ b/deskutils/tpb/pkg-plist @@ -0,0 +1,6 @@ +bin/tpb +etc/tpbrc.default +%%PORTDOCS%%%%DOCSDIR%%/callback_example.sh +%%NLS%%share/locale/da/LC_MESSAGES/tpb.mo +%%NLS%%share/locale/de/LC_MESSAGES/tpb.mo +%%NLS%%share/locale/ru/LC_MESSAGES/tpb.mo |