new port: sysutils/lineakd

lineak is a utility designed to enable the use and configuration
	of those special keys on Internet, Easy Access and Multimedia
	keyboards in Linux (and other unices, like now FreeBSD).

	I use this port for about 6-8 months and it seems to work
	without much problems.  I was asked from several people if
	I finished the port, so I thought it would be the best to
	include it in the official ports tree.

PR:		ports/52158
Submitted by:	Kay Lehmann <kay_lehmann@web.de>
This commit is contained in:
Edwin Groothuis
2003-09-29 14:32:13 +00:00
parent c5b9e13eb0
commit 7a4fedc770
11 changed files with 265 additions and 0 deletions

View File

@@ -150,6 +150,7 @@
SUBDIR += lfm
SUBDIR += libchk
SUBDIR += libretto-config
SUBDIR += lineakd
SUBDIR += linneighborhood
SUBDIR += linux-acu
SUBDIR += linux-e2fsprogs

35
sysutils/lineakd/Makefile Normal file
View File

@@ -0,0 +1,35 @@
# New ports collection makefile for: lineakd
# Date created: 03 June 2002
# Whom: Kay Lehmann
#
# $FreeBSD$
#
PORTNAME= lineakd
PORTVERSION= 0.4.p3
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR=lineak
DISTNAME= ${PORTNAME}-0.4pre3
MAINTAINER= kay_lehmann@web.de
COMMENT= Lineakd is a daemon which enables special keys on internet keyboards
LIB_DEPENDS= intl.5:${PORTSDIR}/devel/gettext
USE_BISON= yes
USE_GMAKE= yes
USE_XLIB= yes
GNU_CONFIGURE= yes
CFLAGS+= -I${X11BASE}/include
.include <bsd.port.pre.mk>
EXTRA_PATCHES= ${FILESDIR}/extra-patch-lineakd.c-4
.if ${OSVERSION} >= 500000
EXTRA_PATCHES= ${FILESDIR}/extra-patch-lineakd.c-5
.endif
.include <bsd.port.post.mk>

View File

@@ -0,0 +1 @@
MD5 (lineakd-0.4pre3.tar.gz) = 4606ec63a8af63aa9086395f9be42cba

View File

@@ -0,0 +1,68 @@
--- src/lineakd.c.orig Fri Sep 6 02:50:29 2002
+++ src/lineakd.c Tue May 13 10:53:21 2003
@@ -57,18 +57,19 @@
#endif
#include <fcntl.h>
#include <sys/ioctl.h>
-#include <linux/cdrom.h> /* linux specific?!! */
extern int mkdir(); /* in linux/fs.h ... other platforms!? */
#if defined (__FreeBSD__)
# include <machine/soundcard.h>
+# include <sys/cdio.h>
#else
# if defined (__NetBSD__) || defined (__OpenBSD__)
# include <soundcard.h> /* OSS emulation */
# undef ioctl
# else
/* BSDI, Linux, Solaris */
+# include <linux/cdrom.h> /* linux specific?!! */
# include <sys/soundcard.h>
# endif
#endif
@@ -100,7 +101,7 @@
signal(SIGABRT, signalexit);
signal(SIGINT, signalexit);
/* and one so we won't have to wait() for child processes ;) */
- signal(SIGCLD, SIG_IGN);
+ signal(SIGCHLD, SIG_IGN);
/* and for a rehash when we catch SIGHUP */
signal(SIGHUP,signalHUP);
@@ -598,12 +599,12 @@
/* try to open the device .. */
if ( (fp = open(cdromdev, O_RDONLY | O_NONBLOCK)) != -1 ) {
/* tell the drive to diable auto-eject */
- if ( (ioctl(fp, CDROMEJECT_SW, 0)) == -1 )
- printf("... oops! error during CD-ROM init\n");
- close(fp);
- } else {
+ if ( (ioctl(fp, CDIOCPREVENT)) == -1 )
+ printf("... oops! error during CD-ROM init\n");
+ close(fp);
+ } else {
printf("... oops! unable to open the CD-ROM device \"%s\" (CD-ROM init)\n",cdromdev);
- }
+ }
} else {
printf("no CD-ROM device configured! (CD-ROM init)\n");
}
@@ -618,7 +619,7 @@
if ( (fp = open(cdromdev, O_RDONLY | O_NONBLOCK)) != -1 ) {
if (!cdromstatus) { /* assumed closed */
/* enable the drives software eject */
- if ( (ioctl(fp, CDROMEJECT_SW, 1)) == -1 )
+ if ( (ioctl(fp, CDIOCALLOW)) == -1 )
printf("... oops! error enabling CD-ROM SW eject\n");
/* eject the cdrom tray */
if (verbosemode) printf("... ejecting the CD-ROM tray\n");
@@ -628,7 +629,7 @@
cdromstatus = !cdromstatus;
} else { /* assumed open */
/* disable the drives software eject again.. */
- if ( (ioctl(fp, CDROMEJECT_SW, 0)) == -1 )
+ if ( (ioctl(fp, CDIOCPREVENT)) == -1 )
printf("... oops! error disabling CD-ROM SW eject\n");
/* close the cdrom tray */
if (verbosemode) printf("... closing the CD-ROM tray\n");

View File

@@ -0,0 +1,69 @@
--- src/lineakd.c.orig Fri Sep 6 02:50:29 2002
+++ src/lineakd.c Sat May 24 18:01:00 2003
@@ -57,18 +57,19 @@
#endif
#include <fcntl.h>
#include <sys/ioctl.h>
-#include <linux/cdrom.h> /* linux specific?!! */
extern int mkdir(); /* in linux/fs.h ... other platforms!? */
#if defined (__FreeBSD__)
-# include <machine/soundcard.h>
+# include <sys/soundcard.h>
+# include <sys/cdio.h>
#else
# if defined (__NetBSD__) || defined (__OpenBSD__)
# include <soundcard.h> /* OSS emulation */
# undef ioctl
# else
/* BSDI, Linux, Solaris */
+# include <linux/cdrom.h> /* linux specific?!! */
# include <sys/soundcard.h>
# endif
#endif
@@ -100,7 +101,7 @@
signal(SIGABRT, signalexit);
signal(SIGINT, signalexit);
/* and one so we won't have to wait() for child processes ;) */
- signal(SIGCLD, SIG_IGN);
+ signal(SIGCHLD, SIG_IGN);
/* and for a rehash when we catch SIGHUP */
signal(SIGHUP,signalHUP);
@@ -598,12 +599,12 @@
/* try to open the device .. */
if ( (fp = open(cdromdev, O_RDONLY | O_NONBLOCK)) != -1 ) {
/* tell the drive to diable auto-eject */
- if ( (ioctl(fp, CDROMEJECT_SW, 0)) == -1 )
- printf("... oops! error during CD-ROM init\n");
- close(fp);
- } else {
+ if ( (ioctl(fp, CDIOCPREVENT)) == -1 )
+ printf("... oops! error during CD-ROM init\n");
+ close(fp);
+ } else {
printf("... oops! unable to open the CD-ROM device \"%s\" (CD-ROM init)\n",cdromdev);
- }
+ }
} else {
printf("no CD-ROM device configured! (CD-ROM init)\n");
}
@@ -618,7 +619,7 @@
if ( (fp = open(cdromdev, O_RDONLY | O_NONBLOCK)) != -1 ) {
if (!cdromstatus) { /* assumed closed */
/* enable the drives software eject */
- if ( (ioctl(fp, CDROMEJECT_SW, 1)) == -1 )
+ if ( (ioctl(fp, CDIOCALLOW)) == -1 )
printf("... oops! error enabling CD-ROM SW eject\n");
/* eject the cdrom tray */
if (verbosemode) printf("... ejecting the CD-ROM tray\n");
@@ -628,7 +629,7 @@
cdromstatus = !cdromstatus;
} else { /* assumed open */
/* disable the drives software eject again.. */
- if ( (ioctl(fp, CDROMEJECT_SW, 0)) == -1 )
+ if ( (ioctl(fp, CDIOCPREVENT)) == -1 )
printf("... oops! error disabling CD-ROM SW eject\n");
/* close the cdrom tray */
if (verbosemode) printf("... closing the CD-ROM tray\n");

View File

@@ -0,0 +1,15 @@
--- src/lineakd.h.orig Wed Aug 28 04:43:19 2002
+++ src/lineakd.h Tue May 13 10:56:23 2003
@@ -127,6 +127,12 @@
#define VOLMUTE_VALUE 0
#define MAX_VOLUME 100
+/* we need this for freebsd */
+#if defined (__FreeBSD__)
+#define CDROMEJECT CDIOCEJECT /*_IO('c', 107)*/
+#define CDROMCLOSETRAY CDIOCCLOSE
+#endif
+
/* we might need this .. oss emulation under BSD */
#if defined (__NetBSD__) || defined (__OpenBSD__)
#define SOUND_IOCTL(a,b,c) _oss_ioctl(a,b,c)

View File

@@ -0,0 +1,16 @@
--- intl/dcigettext.c.orig Sat Jun 8 21:56:27 2002
+++ intl/dcigettext.c Tue May 13 10:56:23 2003
@@ -58,11 +58,11 @@
#include <stdlib.h>
#include <string.h>
-#if !HAVE_STRCHR && !defined _LIBC
+/*#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
-#endif
+#endif*/
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>

View File

@@ -0,0 +1,11 @@
--- Makefile.in.orig Thu May 15 16:05:33 2003
+++ Makefile.in Thu May 15 16:06:13 2003
@@ -112,7 +112,7 @@
SUBDIRS = intl po src
-lineakddocdir = ${prefix}/doc/lineakd
+lineakddocdir = ${prefix}/share/doc/lineakd
lineakddoc_DATA = \
README\
COPYING\

View File

@@ -0,0 +1,28 @@
--- Makefile.orig Thu May 15 16:09:02 2003
+++ Makefile Thu May 15 16:10:10 2003
@@ -83,14 +83,14 @@
LTLIBINTL =
MKINSTALLDIRS = ./mkinstalldirs
NO_PREFIX_PACKAGE_DATA_DIR = share/lineakd
-NO_PREFIX_PACKAGE_DOC_DIR = doc/lineakd
+NO_PREFIX_PACKAGE_DOC_DIR = share/doc/lineakd
NO_PREFIX_PACKAGE_HELP_DIR = share/lineakd/help
NO_PREFIX_PACKAGE_MENU_DIR = share/lineakd
NO_PREFIX_PACKAGE_PIXMAPS_DIR = share/lineakd/pixmaps
OBJEXT = o
PACKAGE = lineakd
PACKAGE_DATA_DIR = /usr/local/share/lineakd
-PACKAGE_DOC_DIR = /usr/local/doc/lineakd
+PACKAGE_DOC_DIR = /usr/local/share/doc/lineakd
PACKAGE_HELP_DIR = /usr/local/share/lineakd/help
PACKAGE_MENU_DIR = /usr/local/share/lineakd
PACKAGE_PIXMAPS_DIR = /usr/local/share/lineakd/pixmaps
@@ -112,7 +112,7 @@
SUBDIRS = intl po src
-lineakddocdir = ${prefix}/doc/lineakd
+lineakddocdir = ${prefix}/share/doc/lineakd
lineakddoc_DATA = \
README\
COPYING\

View File

@@ -0,0 +1,8 @@
LinEAK is a utility designed to enable the use and configuration
of those special keys on Internet, Easy Access and Multimedia
keyboards in Linux (and other unices, like now FreeBSD).
WWW: http://lineak.sourceforge.net
- Lehmann
kay_lehmann@web.de

View File

@@ -0,0 +1,13 @@
bin/lineakd
etc/lineakkb.def
lib/charset.alias
share/locale/locale.alias
share/doc/lineakd/README
share/doc/lineakd/COPYING
share/doc/lineakd/AUTHORS
share/doc/lineakd/ChangeLog
share/doc/lineakd/INSTALL
share/doc/lineakd/NEWS
share/doc/lineakd/TODO
share/doc/lineakd/ABOUT-NLS
@dirrm share/doc/lineakd