diff --git a/MOVED b/MOVED index aa50e8a823a3..3f51ce8e5bcc 100644 --- a/MOVED +++ b/MOVED @@ -6313,3 +6313,23 @@ print/dvipdfmx|print/tex-dvipdfmx|2014-07-23|Use TeXLive version print/jadetex|print/tex-jadetex|2014-07-23|Use TeXLive version japanese/teTeX|print/texlive-full|2014-07-23|Use TeXLive devel/libevent|devel/libevent2|2014-07-27|libevent2 replaced libevent +chinese/big5con||2014-07-24|Has expired: Fails to build with new utmpx +chinese/hztty||2014-07-24|Has expired: Fails to build with new utmpx +irc/solid-ircd||2014-07-24|Has expired: Fails to build with new utmpx +korean/eterm||2014-07-24|Has expired: Fails to build with new utmpx +mail/biffer||2014-07-24|Has expired: Fails to build with new utmpx +misc/c-hey||2014-07-24|Has expired: Fails to build with new utmpx +misc/wminfo||2014-07-24|Has expired: Fails to build with new utmpx +net/sendfile||2014-07-24|Has expired: Fails to build with new utmpx +net-im/centericq||2014-07-24|Has expired: Fails to build with new utmpx +security/chkrootkit||2014-07-24|Has expired: Fails to build with new utmpx +security/openfwtk||2014-07-24|Has expired: Fails to build with new utmpx +security/pam_alreadyloggedin||2014-07-24|Has expired: Fails to build with new utmpx +security/srp||2014-07-24|Has expired: Fails to build with new utmpx +security/sud||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/hyperic-sigar||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/lookupd||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/lookupd_ldap||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/p5-Sys-Utmp||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/syslog-ng2||2014-07-24|Has expired: Fails to build with new utmpx +sysutils/yawho||2014-07-24|Has expired: Fails to build with new utmpx diff --git a/chinese/Makefile b/chinese/Makefile index 258461132a66..ea293ad7ae9d 100644 --- a/chinese/Makefile +++ b/chinese/Makefile @@ -16,7 +16,6 @@ SUBDIR += autoconvert SUBDIR += bg5pdf SUBDIR += bg5ps - SUBDIR += big5con SUBDIR += big5width SUBDIR += bitchx SUBDIR += bsdconv-opencc @@ -59,7 +58,6 @@ SUBDIR += gugod-clean SUBDIR += hanzim SUBDIR += hc - SUBDIR += hztty SUBDIR += ibus-chewing SUBDIR += ibus-pinyin SUBDIR += irssi diff --git a/chinese/big5con/Makefile b/chinese/big5con/Makefile deleted file mode 100644 index 4cbbd22da90a..000000000000 --- a/chinese/big5con/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -# Created by: Hung-Chi Chu -# $FreeBSD$ - -PORTNAME= big5con -PORTVERSION= 0.92i -CATEGORIES= chinese -MASTER_SITES= SF - -MAINTAINER= ports@FreeBSD.org -COMMENT= Big5 Chinese console - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 -ONLY_FOR_ARCHS= i386 - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: - @${REINPLACE_CMD} -e 's,/dev/vga,/dev/ttyv0,g' ${WRKSRC}/src/*c - @${REINPLACE_CMD} -e 's,GetShmem(),GetShmem(char),g' ${WRKSRC}/src/fnld.c - @${REINPLACE_CMD} -e 's,#endif.*,#endif,g' ${WRKSRC}/include/ksymdef.h - @${REINPLACE_CMD} -e 's,TOPDIR,PREFIX,g' ${WRKSRC}/big5con.mk - -post-install: - @${CAT} ${PKGMESSAGE} - -.include diff --git a/chinese/big5con/distinfo b/chinese/big5con/distinfo deleted file mode 100644 index 12c1d8447ccf..000000000000 --- a/chinese/big5con/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (big5con-0.92i.tar.gz) = 01d8c79494250e2a6daf0aeb60f8f2426be0c75c415cff3f85f8b44f08bf7fd7 -SIZE (big5con-0.92i.tar.gz) = 1222263 diff --git a/chinese/big5con/files/patch-src-fnld.c b/chinese/big5con/files/patch-src-fnld.c deleted file mode 100644 index 3c48163855b9..000000000000 --- a/chinese/big5con/files/patch-src-fnld.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/fnld.c.orig Mon May 16 14:04:51 2005 -+++ src/fnld.c Mon May 16 14:04:51 2005 -@@ -21,7 +21,7 @@ - - struct fontRegs *dbFReg, *sbFReg; - --u_char *GetShmem(); -+u_char *GetShmem(char); - - void - FontDetach(bool down) diff --git a/chinese/big5con/files/patch-src-vc.c b/chinese/big5con/files/patch-src-vc.c deleted file mode 100644 index a9c54d724aab..000000000000 --- a/chinese/big5con/files/patch-src-vc.c +++ /dev/null @@ -1,42 +0,0 @@ ---- src/vc.c.orig Mon May 16 13:33:11 2005 -+++ src/vc.c Mon May 16 13:33:11 2005 -@@ -60,28 +60,23 @@ - inline void - blatch(void *head, int n) - { -- -- __asm__ volatile ("\t clc\n" -- "1:\n" -- "\t andb %%bl, (%%eax)\n" -- "\t incl %%eax\n" -- "\t loop 1b\n" -- : "=bl" (head), "=c"(n) -- : "eax"((long)head), "0"(0x7F), "1"(n)); -+ char *tmp = (char *)head; -+ do { -+ *tmp &= 0x7f; -+ tmp++; -+ } while( --n ); - } - - static - inline void - llatch(void *head, int n) - { -- -- __asm__ volatile ("\t clc\n" -- "1:\n" -- "\t andl %%ebx, (%%eax)\n" -- "\t addl $4, %%eax\n" -- "\t loop 1b\n" -- : "=ebx" (head), "=c"(n) -- : "eax"((long)head), "0"(0x7F7F7F7F), "1"(n >> 2)); -+ int *tmp = (int *)head; -+ n /= 4; -+ do { -+ *tmp &= 0x7f7f7f7f; -+ tmp++; -+ } while( --n ); - } - - static inline u_int diff --git a/chinese/big5con/pkg-descr b/chinese/big5con/pkg-descr deleted file mode 100644 index 9bbb1a53ebf8..000000000000 --- a/chinese/big5con/pkg-descr +++ /dev/null @@ -1,11 +0,0 @@ -Kon is a kanji console. This is an alpha version. Supported video card is -VGA only, and, supported fonts are Minix/V and BDF. This program requires -shared memory. - -This version supports ja_JP.ujis ja_JP.sjis zh_TW.big5 zh_CN.ugb ko_KR.euc. - -/usr/local/bin/et to start big5con, *under ttyvX ONLY*. - -Modify /usr/local/bin/et and /usr/local/etc/big5con.cfg to your needs. -See /usr/local/lib/xcin/xcin.help for various Chinese input methods. -For more info -- ftp://wj.ml.org/freebsd/woju/binary/b5c.txt diff --git a/chinese/big5con/pkg-message b/chinese/big5con/pkg-message deleted file mode 100644 index d0bb80f64c40..000000000000 --- a/chinese/big5con/pkg-message +++ /dev/null @@ -1,4 +0,0 @@ ---------------------------------------------------------------- -You need to add a line 'options SYSVSHM' to your kernel config. -Use 'b5c' to run the big5 console. ---------------------------------------------------------------- diff --git a/chinese/big5con/pkg-plist b/chinese/big5con/pkg-plist deleted file mode 100644 index 221118e64460..000000000000 --- a/chinese/big5con/pkg-plist +++ /dev/null @@ -1,29 +0,0 @@ -bin/b5c -bin/b5cfld -etc/big5con.cfg.default -lib/fonts/kc15f.smf -lib/fonts/kc8x15.smf -lib/xcin/array30.tab -lib/xcin/array30.tab.rev -lib/xcin/cj.tab -lib/xcin/cj.tab.rev -lib/xcin/dayi3.tab -lib/xcin/dayi3.tab.rev -lib/xcin/et.kbm -lib/xcin/et26.kbm -lib/xcin/hsu.kbm -lib/xcin/liu.tab -lib/xcin/liu.tab.rev -lib/xcin/pho.sel1st -lib/xcin/pho.tab -lib/xcin/phone.tab -lib/xcin/phone.tab.rev -lib/xcin/sample.phs.b5c -lib/xcin/simplex.tab -lib/xcin/simplex.tab.rev -lib/xcin/tsin -lib/xcin/tsin.idx -lib/xcin/xcin.help -lib/xcin/zo.kbm -@dirrm lib/xcin -@dirrm lib/fonts diff --git a/chinese/hztty/Makefile b/chinese/hztty/Makefile deleted file mode 100644 index 4463dcfc5d7f..000000000000 --- a/chinese/hztty/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# Created by: Ada T Lim -# $FreeBSD$ - -PORTNAME= hztty -PORTVERSION= 2.0 -CATEGORIES= chinese -MASTER_SITES= ftp://ftp.cuhk.hk/pub/chinese/ifcss/software/unix/convert/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Translator between GuoBiao / Big5 and HZ - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -ALL_TARGET= bsd -PLIST_FILES= bin/hztty man/man1/${PORTNAME}.1.gz - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin - ${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1 ${STAGEDIR}${PREFIX}/man/man1 - -.include diff --git a/chinese/hztty/distinfo b/chinese/hztty/distinfo deleted file mode 100644 index dbeee5338140..000000000000 --- a/chinese/hztty/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (hztty-2.0.tar.gz) = 3a207a8d71d7b8c1b27710df9ce9e3364d6db0a6928a3d8b74089e7bd936ce37 -SIZE (hztty-2.0.tar.gz) = 229189 diff --git a/chinese/hztty/files/patch-aa b/chinese/hztty/files/patch-aa deleted file mode 100644 index 2d55067f3cfa..000000000000 --- a/chinese/hztty/files/patch-aa +++ /dev/null @@ -1,30 +0,0 @@ ---- Makefile.orig Sun Jan 29 16:39:19 1995 -+++ Makefile Sun Apr 2 11:16:03 2000 -@@ -19,7 +19,6 @@ - - CC=cc - CPP=$(CC) -E --CDEBUGFLAGS= -O - MAKE=make - RM=rm -f - -@@ -31,7 +30,7 @@ - ${OBJ_GB_BIG5} ${OBJ_UNICODE_GB} ${OBJ_UNICODE_BIG5} - - DEFINES= --CFLAGS=${CDEBUGFLAGS} ${DEFINES} ${MODULES_DEF} -I. -+CFLAGS+=${CDEBUGFLAGS} ${DEFINES} ${MODULES_DEF} -I. - - PROG = hztty - LIBS= -@@ -132,8 +131,8 @@ - - - bsd: -- miniconf.sh $(CPP) -- ${MAKE} ${MFLAGS} DEFINES='-DBSD' ${PROG} -+ ./miniconf.sh $(CPP) -+ ${MAKE} ${MFLAGS} DEFINES='-DPOSIX' ${PROG} - - posix: - miniconf.sh $(CPP) diff --git a/chinese/hztty/files/patch-ab b/chinese/hztty/files/patch-ab deleted file mode 100644 index 423a5f861d52..000000000000 --- a/chinese/hztty/files/patch-ab +++ /dev/null @@ -1,33 +0,0 @@ ---- tty.c.orig Sun Jan 29 12:24:55 1995 -+++ tty.c Mon Oct 6 23:56:32 1997 -@@ -26,7 +26,7 @@ - # define TTYDEV "/dev/pty/ttyxx" - #else /* !hpux */ - # define PTYCHAR1 "pqrstuvwxyzPQRSTUVWXYZ" --# define PTYCHAR2 "0123456789abcdef" -+# define PTYCHAR2 "0123456789abcdefghijklmnopqrstuv" - # define PTYDEV "/dev/ptyxx" - # define TTYDEV "/dev/ttyxx" - #endif /* !hpux */ -@@ -320,7 +320,9 @@ - #ifdef TIOCLSET - (void) ioctl (tty, TIOCLGET, (char *)&(termptr->lmode)); - #endif --#ifdef USE_SYSV_TERMIO -+#ifdef USE_TERMIOS -+ tcgetattr(tty, (char *)&(termptr->tio)); -+#elif defined(USE_SYSV_TERMIO) - (void) ioctl (tty, TCGETA, (char *)&(termptr->tio)); - #else /* USE_SYSV_TERMIO */ - (void) ioctl (tty, TIOCGETP, (char *)&(termptr->sb)); -@@ -339,7 +341,9 @@ - #ifdef TIOCLSET - (void) ioctl (tty, TIOCLSET, (char *)&(termptr->lmode)); - #endif --#ifdef USE_SYSV_TERMIO -+#ifdef USE_TERMIOS -+ tcsetattr(tty, TCSANOW, (char *)&(termptr->tio)); -+#elif defined(USE_SYSV_TERMIO) - (void) ioctl (tty, TCSETA, (char *)&(termptr->tio)); - #else /* USE_SYSV_TERMIO */ - (void) ioctl (tty, TIOCSETP, (char *)&(termptr->sb)); diff --git a/chinese/hztty/files/patch-main.c b/chinese/hztty/files/patch-main.c deleted file mode 100644 index 7171f473e1ed..000000000000 --- a/chinese/hztty/files/patch-main.c +++ /dev/null @@ -1,20 +0,0 @@ ---- main.c.orig Tue Jun 4 21:56:28 2002 -+++ main.c Tue Jun 4 21:59:33 2002 -@@ -264,7 +264,7 @@ - static SIGNAL_T - finish() - { --#if defined(SYSV) || defined(POSIX) -+#if defined(BSD) || defined(SYSV) || defined(POSIX) - int status; - #else - union wait status; -@@ -272,7 +272,7 @@ - register int pid; - register int die = 0; - --#if defined(SYSV) || defined(POSIX) -+#if defined(BSD) || defined(SYSV) || defined(POSIX) - while ((pid = waitpid(-1, &status, WNOHANG|WUNTRACED)) > 0) - #else - while ((pid = wait3(&status, WNOHANG|WUNTRACED, (struct rusage *)0))>0) diff --git a/chinese/hztty/pkg-descr b/chinese/hztty/pkg-descr deleted file mode 100644 index ed4d0abb62d5..000000000000 --- a/chinese/hztty/pkg-descr +++ /dev/null @@ -1,17 +0,0 @@ - hztty - - This program turns a tty session from one encoding to another. - For example, running hztty on cxterm can allow you to read/write - Chinese in HZ format, which was not supported by cxterm. - If you have many applications in different encodings but your - favorite terminal program only supports one, hztty can make life easy. - For example, hztty can your GB cxterm into a HZ terminal, a - Unicode (16bit, or UTF8, or UTF7) terminal, or a Big5 terminal. - - The idea is to open a new shell session on top of the current one - and to translate the encoding between the new tty and the orignal. - For example, if your application uses encoding A and your terminal - supports encoding B, hztty catches the output of the application - and converts them from A to B before sending to the terminal. - Similarly, hztty converts all the terminal input from B to A before - sending to the application. diff --git a/irc/Makefile b/irc/Makefile index 60a3cf080e98..fe3a0edfc65e 100644 --- a/irc/Makefile +++ b/irc/Makefile @@ -117,7 +117,6 @@ SUBDIR += sirc SUBDIR += slirc SUBDIR += smartirc4net - SUBDIR += solid-ircd SUBDIR += srvx SUBDIR += thales SUBDIR += tircd diff --git a/irc/solid-ircd/Makefile b/irc/solid-ircd/Makefile deleted file mode 100644 index ffa412257b34..000000000000 --- a/irc/solid-ircd/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# Created by: mj -# $FreeBSD$ - -PORTNAME= solid-ircd -PORTVERSION= 3.4.8 -CATEGORIES= irc -MASTER_SITES= SF/solidircd/Solid-Stable/solidircd-stable.${PORTVERSION} -DISTNAME= solidircd-stable3.4.8 - -MAINTAINER= ports@FreeBSD.org -COMMENT= Solid Internet Relay Chat Daemon based on bahamut IRCd - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 -WRKSRC= ${WRKDIR}/solidircd-stable - -USES= gmake -HAS_CONFIGURE= yes - -CONFIGURE_ARGS+= --prefix=${PREFIX}/${PORTNAME} - -.if defined(WITHOUT_SSL) -CONFIGURE_ARGS+= --disable-openssl -.else -USE_OPENSSL= yes -.endif - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/irc/solid-ircd/distinfo b/irc/solid-ircd/distinfo deleted file mode 100644 index ee241a7d8db8..000000000000 --- a/irc/solid-ircd/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (solidircd-stable3.4.8.tar.gz) = e26a44b3cad800d78af1779e05967a63ee27af801c694706ee73346f4f44158c -SIZE (solidircd-stable3.4.8.tar.gz) = 806483 diff --git a/irc/solid-ircd/files/patch-configure b/irc/solid-ircd/files/patch-configure deleted file mode 100644 index 0f73ecfb31a0..000000000000 --- a/irc/solid-ircd/files/patch-configure +++ /dev/null @@ -1,61 +0,0 @@ ---- configure.old Sat Apr 15 12:21:36 2006 -+++ configure Sat Apr 15 12:21:50 2006 -@@ -8941,58 +8941,3 @@ - echo " Maximum Connections: $maxconnections" - echo " Install Directory: $prefix" - echo "" -- -- --ok=0 --DEF=no --echo "Would you like to create your SSL Certificate now?" --while [ $ok -lt 1 ] ; do -- echo "[$DEF] " -- if read INPUT ; then : ; else echo "" ; exit 1 ; fi -- if [ ! "$INPUT" ] ; then -- INPUT=$DEF -- fi -- case $INPUT in -- n*|N*) -- -- ok=1 -- ;; -- y*|Y*) -- cd doc/ssl -- ./makecert.sh newcert -- cd .. -- cd .. -- ok=1 -- ;; -- *) -- echo "Please enter 'yes' or 'no'." -- ;; -- esac --done --echo "" -- --ok=0 --DEF=no --echo "Would you like to compile & install solid-ircd now?" --while [ $ok -lt 1 ] ; do -- echo "[$DEF] " -- if read INPUT ; then : ; else echo "" ; exit 1 ; fi -- if [ ! "$INPUT" ] ; then -- INPUT=$DEF -- fi -- case $INPUT in -- n*|N*) -- -- ok=1 -- ;; -- y*|Y*) -- -- make && make install -- ok=1 -- ;; -- *) -- echo "Please enter 'yes' or 'no'." -- ;; -- esac --done --echo "" diff --git a/irc/solid-ircd/pkg-descr b/irc/solid-ircd/pkg-descr deleted file mode 100644 index 9488fa647753..000000000000 --- a/irc/solid-ircd/pkg-descr +++ /dev/null @@ -1,5 +0,0 @@ -Solid-IRCd is an Internet Relay Chat Daemon based on bahamut IRCd. -The main goal is to provide a stable server and at the same time a more secure -server having all bahamut features and more. - -WWW: http://www.solid-ircd.com/ diff --git a/irc/solid-ircd/pkg-plist b/irc/solid-ircd/pkg-plist deleted file mode 100644 index 110049ba66eb..000000000000 --- a/irc/solid-ircd/pkg-plist +++ /dev/null @@ -1,20 +0,0 @@ -solid-ircd/convert_conf -solid-ircd/elmer.conf -solid-ircd/ircd -solid-ircd/ircd.motd -solid-ircd/mkpasswd -solid-ircd/opers.txt -solid-ircd/reference.conf -solid-ircd/rehash -solid-ircd/template.conf -solid-ircd/ssl/CVS/Entries -solid-ircd/ssl/CVS/Repository -solid-ircd/ssl/CVS/Root -solid-ircd/ssl/makecert.sh -solid-ircd/ssl/ssl.cnf -solid-ircd/ssl/ssl.rnd -solid-ircd/ssl/vgc.pem -solid-ircd/ssl/vgckey.pem -@dirrm solid-ircd/ssl/CVS -@dirrmtry solid-ircd/ssl -@dirrmtry solid-ircd diff --git a/korean/Makefile b/korean/Makefile index 96633c0409bf..9a73e9b76515 100644 --- a/korean/Makefile +++ b/korean/Makefile @@ -11,7 +11,6 @@ SUBDIR += baekmukfonts-bdf SUBDIR += baekmukfonts-ttf SUBDIR += engdic - SUBDIR += eterm SUBDIR += fcitx-hangul SUBDIR += gimp-help SUBDIR += gtkcomm diff --git a/korean/eterm/Makefile b/korean/eterm/Makefile deleted file mode 100644 index e1cf7b6c7bc8..000000000000 --- a/korean/eterm/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -# Created by: Oh Junseon -# $FreeBSD$ - -PORTNAME= eterm -PORTVERSION= 0.8.9 -PORTREVISION= 11 -CATEGORIES= korean x11 -MASTER_SITES= ftp://ftp.holywar.net/pub/FreeBSD/ \ - ftp://ftp.kr.freebsd.org/pub/FreeBSD-kr/distfiles/ -DISTNAME= Eterm-${PORTVERSION} - -MAINTAINER= ports@FreeBSD.org -COMMENT= X11 terminal emulator based on rxvt/xterm that supports korean - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -RUN_DEPENDS= ${LOCALBASE}/lib/X11/fonts/local/hmm12.pcf.gz:${PORTSDIR}/korean/hanyangfonts - -USES= perl5 gmake -USE_AUTOTOOLS= libtool -USE_XORG= x11 xext ice sm xt -USE_GNOME= imlib -USE_LDCONFIG= yes -USE_PERL5= build -GNU_CONFIGURE= yes -LIBS+= -L${LOCALBASE}/lib -MAN1= Eterm.1 -MAKE_JOBS_UNSAFE= yes - -OPTIONS_DEFINE= DOCS - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -pre-patch: - @${REINPLACE_CMD} -i '' -e 's|||' \ - ${WRKSRC}/libmej/debug.c ${WRKSRC}/libmej/strings.c - -post-install: -.if ${PORT_OPTIONS:MDOCS} - @${MKDIR} ${DOCSDIR} - ${INSTALL_DATA} ${WRKSRC}/ReleaseNotes \ - ${WRKSRC}/doc/Eterm_reference.html \ - ${WRKSRC}/doc/Eterm_reference.html \ - ${WRKSRC}/doc/Eterm.tcap \ - ${WRKSRC}/doc/Eterm.ti \ - ${WRKSRC}/doc/FAQ.html \ - ${DOCSDIR} -.endif - -.include diff --git a/korean/eterm/distinfo b/korean/eterm/distinfo deleted file mode 100644 index dd0f5551ebf8..000000000000 --- a/korean/eterm/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (Eterm-0.8.9.tar.gz) = 4ffbbd47a45f30dea20d517703ffa20ab5879fe7c9e521dd3fc793bfb212b879 -SIZE (Eterm-0.8.9.tar.gz) = 564885 diff --git a/korean/eterm/files/patch-aa b/korean/eterm/files/patch-aa deleted file mode 100644 index 208f2a8bff49..000000000000 --- a/korean/eterm/files/patch-aa +++ /dev/null @@ -1,1889 +0,0 @@ -diff -uNr Eterm-0.8.9.orig/Makefile.in Eterm-0.8.9/Makefile.in ---- Makefile.in Mon Apr 26 23:53:46 1999 -+++ Makefile.in Wed May 5 19:38:49 1999 -@@ -105,7 +105,7 @@ - - SUBDIRS = libmej src themes utils doc bg - --EXTRA_DIST = README ReleaseNotes CVS-README COPYING ChangeLog autogen.sh -+EXTRA_DIST = README ReleaseNotes CVS-README COPYING ChangeLog autogen.sh README.kr - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - CONFIG_HEADER = config.h -diff -uNr Eterm-0.8.9.orig/README.kr Eterm-0.8.9/README.kr ---- README.kr Thu Jan 1 09:00:00 1970 -+++ README.kr Wed May 5 19:38:58 1999 -@@ -0,0 +1,21 @@ -+ -+1. compileÇÒ ¶§´Â ÀϹÝÀûÀ¸·Î CFLAGS¿¡ X_LOCALEÀÌ defineµÇ¾î¾ß ÇÒ ¼ö -+ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì -+ -+ CFLAGS="-D_XLOCALE" ./configure --prefix=/usr/local -+ -+ µî°ú °°ÀÌ ÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù. -+ (glibc 2.1 ¶Ç´Â wcsmbs°¡ ±ò·ÁÀÖ´Â °÷¿¡¼­´Â ÇÊ¿ä ¾ø½À´Ï´Ù.) -+ -+2. ±âº»ÀûÀ¸·Î kanji font·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù. -+ ÇâÈÄ upgrade¸¦ ÆíÇÏ°Ô Çϱâ À§ÇÏ¿© -+ -+ $(HOME)/.Eterm/themes/Eterm -+ -+ ÀÇ directory¸¦ »ý¼º ÈÄ source directoryÀÇ themes/Eterm directory³»ÀÇ -+ Eterm.menu ¿Í MAIN fileÀ» º¹»çÇϼż­ MAIN fileÀÇ kanji font ºÎºÐÀ» -+ º»ÀÎÀÌ ÁÁ¾ÆÇÏ´Â ÇÑ±Û ÆùÆ®·Î ¹Ù²Ù¾îÁÖ½Ã¸é µÇ°Ú½À´Ï´Ù. -+ -+ font´Â 0 - 4±îÁö 5°¡Áö¿Í bold font¸¦ ¼±ÅÃÇϵµ·Ï µÇ¾î ÀÖ´Â µ¥, -+ ¿µ¹®ÆùÆ®¿Í ¦À» ¸ÂÃß¾î size¸¦ °°µµ·Ï ÇØ ÁÖ½Ã¸é µÇ°Ú½À´Ï´Ù. -+ -+±âŸ ¹®ÀÇ »çÇ×Àº eterm@user.sarang.net À¸·Î... -diff -uNr Eterm-0.8.9.orig/src/Makefile.am Eterm-0.8.9/src/Makefile.am ---- src/Makefile.am Fri Jan 22 05:19:27 1999 -+++ src/Makefile.am Wed May 5 19:40:42 1999 -@@ -4,7 +4,8 @@ - - libEterm_la_SOURCES = activeconfig.c activeeterm.c activetags.c command.c \ - graphics.c grkelot.c menubar.c misc.c netdisp.c options.c \ -- pixmap.c screen.c scrollbar.c system.c threads.c utmp.c -+ pixmap.c screen.c scrollbar.c system.c threads.c utmp.c \ -+ hangulinput.c - - libEterm_la_LDFLAGS = -version-info 8:9:8 - -@@ -24,7 +25,7 @@ - menubar.h misc.h options.h pixmap.h profile.h screen.h scrollbar.h \ - system.h threads.h graphics/Makefile.am graphics/Makefile.in \ - graphics/README graphics/data graphics/grxlib.c graphics/grxlib.h \ -- graphics/qplot.c Eterm.xpm -+ graphics/qplot.c Eterm.xpm hangulinput.h - - feature.h: feature.h.in - $(FEATURE_CMD) -diff -uNr Eterm-0.8.9.orig/src/Makefile.in Eterm-0.8.9/src/Makefile.in ---- src/Makefile.in Mon Apr 26 23:53:52 1999 -+++ src/Makefile.in Wed May 5 19:43:49 1999 -@@ -103,7 +103,7 @@ - - lib_LTLIBRARIES = libEterm.la - --libEterm_la_SOURCES = activeconfig.c activeeterm.c activetags.c command.c graphics.c grkelot.c menubar.c misc.c netdisp.c options.c pixmap.c screen.c scrollbar.c system.c threads.c utmp.c -+libEterm_la_SOURCES = activeconfig.c activeeterm.c activetags.c command.c graphics.c grkelot.c menubar.c misc.c netdisp.c options.c pixmap.c screen.c scrollbar.c system.c threads.c utmp.c hangulinput.c - - - libEterm_la_LDFLAGS = -version-info 8:9:8 -@@ -119,7 +119,7 @@ - Eterm_LDFLAGS = -rpath $(libdir):$(pkglibdir) - LDADD = -L$(DIST_ROOT)/src/.libs -lEterm -L$(DIST_ROOT)/libmej/.libs -L$(libdir) -L$(prefix)/lib $(LIBS) -lmej $(GRLIBS) $(X_LIBS) - --EXTRA_DIST = activeconfig.h activeeterm.h activetags.h command.h debug.h eterm_imlib.h feature.h.in graphics.h grkelot.h grx.h main.h menubar.h misc.h options.h pixmap.h profile.h screen.h scrollbar.h system.h threads.h graphics/Makefile.am graphics/Makefile.in graphics/README graphics/data graphics/grxlib.c graphics/grxlib.h graphics/qplot.c Eterm.xpm -+EXTRA_DIST = activeconfig.h activeeterm.h activetags.h command.h debug.h eterm_imlib.h feature.h.in graphics.h grkelot.h grx.h main.h menubar.h misc.h options.h pixmap.h profile.h screen.h scrollbar.h system.h threads.h graphics/Makefile.am graphics/Makefile.in graphics/README graphics/data graphics/grxlib.c graphics/grxlib.h graphics/qplot.c Eterm.xpm hangulinput.h - - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - CONFIG_HEADER = ../config.h -@@ -136,7 +136,7 @@ - libEterm_la_OBJECTS = activeconfig.lo activeeterm.lo activetags.lo \ - command.lo graphics.lo grkelot.lo menubar.lo misc.lo netdisp.lo \ - options.lo pixmap.lo screen.lo scrollbar.lo system.lo threads.lo \ --utmp.lo -+utmp.lo hangulinput.lo - PROGRAMS = $(bin_PROGRAMS) - - Eterm_OBJECTS = main.o -@@ -314,10 +314,12 @@ - main.h misc.h ../libmej/debug.h ../libmej/../src/debug.h \ - ../libmej/mem.h ../libmej/strings.h ../libmej/global.h \ - feature.h graphics.h grx.h grkelot.h scrollbar.h eterm_imlib.h \ -- menubar.h screen.h options.h pixmap.h -+ menubar.h screen.h options.h pixmap.h hangulinput.h - graphics.lo graphics.o : graphics.c main.h ../config.h feature.h debug.h \ - misc.h command.h graphics.h grx.h screen.h - grkelot.lo grkelot.o : grkelot.c feature.h ../config.h debug.h grkelot.h -+hangulinput.lo hangulinput.o : hangulinput.c feature.h ../config.h \ -+ debug.h hangulinput.h - main.o: main.c main.h ../config.h feature.h debug.h misc.h command.h \ - ../libmej/debug.h ../libmej/../src/debug.h ../libmej/mem.h \ - ../libmej/strings.h ../libmej/global.h feature.h graphics.h \ -@@ -344,7 +346,7 @@ - Eterm.xpm scrollbar.h menubar.h - screen.lo screen.o : screen.c main.h ../config.h feature.h debug.h \ - misc.h command.h ../libmej/mem.h graphics.h grx.h screen.h \ -- options.h eterm_imlib.h pixmap.h -+ options.h eterm_imlib.h pixmap.h hangulinput.h - scrollbar.lo scrollbar.o : scrollbar.c feature.h ../config.h debug.h \ - main.h misc.h scrollbar.h eterm_imlib.h screen.h options.h \ - pixmap.h -diff -uNr Eterm-0.8.9.orig/src/command.c Eterm-0.8.9/src/command.c ---- src/command.c Sat Apr 24 05:56:49 1999 -+++ src/command.c Wed May 5 19:46:42 1999 -@@ -160,6 +160,9 @@ - #ifdef PROFILE - # include "profile.h" - #endif -+#ifdef HANGUL_INPUT -+#include "hangulinput.h" -+#endif - - #ifdef PIXMAP_SCROLLBAR - extern pixmap_t sbPixmap; -@@ -2797,6 +2800,12 @@ - change_font(0, FONT_DN); - return; - break; -+#ifdef HANGUL_INPUT -+ case XK_space: -+ hangul_input_state_toggle(); -+ menubar_expose(); -+ return; -+#endif - } - } - } -@@ -3201,6 +3210,11 @@ - fprintf(stderr, "'\n"); - } - #endif /* DEBUG_CMD */ -+#ifdef HANGUL_INPUT -+ if (hangul_input_state_get()) -+ if ((len = hangul_input_process(kbuf, len)) == 0) -+ return; -+#endif - tt_write(kbuf, len); - } - -diff -uNr Eterm-0.8.9.orig/src/feature.h.in Eterm-0.8.9/src/feature.h.in ---- src/feature.h.in Wed Mar 24 12:30:28 1999 -+++ src/feature.h.in Wed May 5 19:49:09 1999 -@@ -326,7 +326,8 @@ - /* #define GREEK_SUPPORT */ - - /* To compile as a Kanji terminal. Executable should be renamed "Kterm". */ --/* #define KANJI */ -+#define KANJI -+#define HANGUL_INPUT - - /********************* Miscellaneous options *********************/ - -diff -uNr Eterm-0.8.9.orig/src/hangulinput.c Eterm-0.8.9/src/hangulinput.c ---- src/hangulinput.c Thu Jan 1 09:00:00 1970 -+++ src/hangulinput.c Wed May 5 19:49:21 1999 -@@ -0,0 +1,1615 @@ -+#include "feature.h" -+ -+#ifdef HANGUL_INPUT -+ -+#include "hangulinput.h" -+#include -+#include -+#include -+#include -+ -+#ifndef BS -+#define BS '\b' -+typedef unsigned char char_u; -+typedef unsigned short short_u; -+typedef unsigned int int_u; -+int composing_hangul = 0; -+unsigned char composing_hangul_buffer[5]; -+unsigned char redraw_hangul_buffer[5]; -+#endif -+ -+#ifndef HANGUL_DEFAULT_KEYBOARD -+# define HANGUL_DEFAULT_KEYBOARD 2 -+#endif -+ -+extern void tt_write(const unsigned char *buf, unsigned int count); -+ -+#define AUTOMATA_NEW 0 -+#define AUTOMATA_CORRECT 1 -+#define AUTOMATA_SPECIAL 2 -+#define AUTOMATA_CORRECT_NEW 3 -+#define AUTOMATA_ERROR 4 -+#define AUTOMATA_NULL 5 -+ -+#define F_F 0x1 /* Ãʼº (initial sound) */ -+#define F_M 0x2 /* Áß¼º (medial vowel) */ -+#define F_L 0x4 /* Á¾¼º (final consonant) */ -+#define F_A 0x8 /* ASCII */ -+#define F_NULL 1 -+#define M_NULL 2 -+#define L_NULL 1 -+ -+static int hangul_input_state = 0; -+static int f=F_NULL, m=M_NULL, l=L_NULL; -+static int sp=0; -+static char_u stack[20] = {0}; -+static int last_l = -1, last_ll = -1; -+static int hangul_keyboard_type = HANGUL_DEFAULT_KEYBOARD; -+ -+static void convert_ks_to_3 (const char_u *src, int *f, int *m, int *l); -+static int convert_3_to_ks (int f, int m, int l, char_u *des); -+static int hangul_automata2 (char_u *buf, unsigned int *c); -+static int hangul_automata3 (char_u *buf, unsigned int *c); -+ -+#define push(x) {stack[ sp++ ] = *(x); stack[sp++] = *((x)+1);} -+#define pop(x) {*((x) + 1) = stack[--sp]; *(x) = stack[--sp];} -+#define query(x) {*((x) + 1) = stack[sp - 1]; *(x) = stack[sp - 2];} -+ -+#define convert_3_to_code convert_3_to_ks -+ -+ -+/**********************************************************************/ -+/****** 3 ¹ú½ÄÀÚÆÇÀ» À§ÇÑ ·çƾ (Routines for 3 bulsik keyboard) ******/ -+/**********************************************************************/ -+ -+/* 3 ¹ú½Ä¿¡¼­ ÀÚÆÇ º¯È¯ (3 bulsik keyboard conversion) */ -+ -+static char_u value_table_for_3[] = -+{ -+ 24 , '"' , '#' , '$' , '%' , '&' , /* ! " # $ % & */ -+ 18 , '(' , ')' , '*' , '+' , ',' , /* ' ( ) * + , */ -+ '-' , '.' , 13 , 17 , 29 , 22 , /* - . / 0 1 2 */ -+ 19 , 19 , 26 , 5 , 12 , 28 , /* 3 4 5 6 7 8 */ -+ 20 , ':' , 9 , '2' , '=' , '3' , /* 9 : ; < = > */ -+ '?' , '@' , 8 , '!' , 11 , 10 , /* ? @ A B C D */ -+ 26 , 3 , '/' , 39 , '8' , '4' , /* E F G H I J */ -+ '5' , '6' , '1' , '0' , '9' , '>' , /* K L M N O P */ -+ 28 , 6 , 7 , ';' , '7' , 16 , /* Q R S T U V */ -+ 27 , 20 , '<' , 25 , '[' , 92 , /* W X Y Z [ \ */ -+ ']' , '^' , '_' , '`' , 23 , 20 , /* ] ^ _ ` a b */ -+ 10 , 29 , 11 , 3 , 27 , 4 , /* c d e f g h */ -+ 8 , 13 , 2 , 14 , 20 , 11 , /* i j k l m n */ -+ 16 , 19 , 21 , 4 , 5 , 7 , /* o p q r s t */ -+ 5 , 13 , 9 , 2 , 7 , 17 , /* u v w x y z */ -+}; -+ -+static short_u kind_table_for_3[] = -+{ -+ F_L, F_A, F_A, F_A, F_A, F_A, /* ! " # $ % & */ -+ F_F, F_A, F_A, F_A, F_A, F_A, /* ' ( ) * + , */ -+ F_A, F_A, F_M, F_F, F_L, F_L, /* - . / 0 1 2 */ -+ F_L, F_M, F_M, F_M, F_M, F_M, /* 3 4 5 6 7 8 */ -+ F_M, F_A, F_F, F_A, F_A, F_A, /* 9 : ; < = > */ -+ F_A, F_A, F_L, F_A, F_L, F_L, /* ? @ A B C D */ -+ F_L, F_L, F_A, F_A, F_A, F_A, /* E F G H I J */ -+ F_A, F_A, F_A, F_A, F_A, F_A, /* K L M N O P */ -+ F_L, F_M, F_L, F_A, F_A, F_L, /* Q R S T U V */ -+ F_L, F_L, F_A, F_L, F_A, F_A, /* W X Y Z [ \ */ -+ F_A, F_A, F_A, F_A, F_L, F_M, /* ] ^ _ ` a b */ -+ F_M, F_M, F_M, F_M, F_M, F_F, /* c d e f g h */ -+ F_F, F_F, F_F, F_F, F_F, F_F, /* i j k l m n */ -+ F_F, F_F, F_L, F_M, F_L, F_M, /* o p q r s t */ -+ F_F, F_M, F_L, F_L, F_F, F_L, /* u v w x y z */ -+}; -+ -+/* 3 ¹ú½Ä¿¡¼­ (ÇöÀçÃʼº, ÀԷ¿µ¹®) -> º¹ÇÕÃʼº ó¸® -+ * 3 bulsik: (current initial sound, input english) -> compound initial sound. -+ */ -+ -+ static int -+comfcon3(v, c) -+ int v; -+ int c; -+{ -+ if (v == 2 && c == 2) -+ return 3; -+ if (v == 5 && c == 5) -+ return 6; -+ if (v == 9 && c == 9) -+ return 10; -+ if (v == 11 && c == 11) -+ return 12; -+ if (v == 14 && c == 14) -+ return 15; -+ return 0; -+} -+ -+/* 3 ¹ú½Ä¿¡¼­ (ÇöÀç¸ðÀ½, ÀÔ·Â ¿µ¹®) -> º¹ÇÕ ¸ðÀ½ ó¸® -+ * 3 bulsik: (current vowel, input english) -> compound vowel. -+ */ -+ -+ static int -+comvow3(v, c) -+ int v; -+ int c; -+{ -+ switch (v) -+ { -+ case 13: /* ¤Ç */ -+ switch (c) { -+ case 3: /* ¤Ç¤¿ */ -+ return 14; -+ case 4: /* ¤Ç¤À */ -+ return 15; -+ case 29: /* ¤Ç¤Ó */ -+ return 18; -+ } -+ break; -+ -+ case 20: /* ¤Ì */ -+ switch (c) { -+ case 7: /* ¤Ì¤Ã */ -+ return 21; -+ case 10: /* ¤Ì¤Ä */ -+ return 22; -+ case 29: /* ¤Ì¤Ó */ -+ return 23; -+ } -+ break; -+ -+ /* 3 ¹ú½Ä ÀÚÆÇÀº ¤Ñ¤Ó °¡ ÀÖÀ¸¹Ç·Î ... */ -+ } -+ return 0; -+} -+ -+/* 3 ¹ú½Ä¿¡¼­ (ÇöÀç ¹Þħ, ¿µ¹®ÀÚ ÀÔ·Â) -> ¹Þħ -+ * 3 bulsik: (current prop(?), input english) -> prop(?). -+ * I want to say, the 'prop' is similar to 'final consonant', but not vowel. -+ * (I cannot find the real english from my dictionary. Sorry!) -+ * VIM: V = initial sound, I = medial vowel, M = final consonant. -+ */ -+ -+ static int -+comcon3(k, c) -+ int k; -+ int c; -+{ -+ switch (k) -+ { -+ case 2: /* ¤¡ */ -+ switch (c) { -+ case 2: -+ return 3; /* ¤¡¤¡ */ -+ case 21: -+ return 4; /* ¤¡¤µ */ -+ } -+ break; -+ -+ case 5: /* ¤¤ */ -+ switch (c) { -+ case 24: /* ¤¤¤¸ */ -+ return 6; -+ case 29: -+ return 7; /* ¤¤¤¾ */ -+ } -+ break; -+ -+ case 9: /* ¤© */ -+ switch (c) { -+ case 2: /* ¤©¤¡ */ -+ return 10; -+ case 17: /* ¤©¤± */ -+ return 11; -+ case 19: /* ¤©¤² */ -+ return 12; -+ case 21: /* ¤©¤µ */ -+ return 13; -+ case 27: /* ¤©¤¼ */ -+ return 14; -+ case 28: /* ¤©¤½ */ -+ return 15; -+ case 29: /* ¤©¤¾ */ -+ return 16; -+ } -+ break; -+ -+ case 19: -+ switch (c) { -+ case 21: /* ¤²¤µ */ -+ return 20; -+ } -+ break; -+ } -+ return 0; -+} -+ -+/**********************************************************************/ -+/****** 2 ¹ú½ÄÀÚÆÇÀ» À§ÇÑ ·çƾ (Routines for 2 bulsik keyboard) ******/ -+/**********************************************************************/ -+ -+ static int -+kind_table_for_2(c) -+ int c; -+{ -+ static char_u table[] = -+ { -+ /* a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s */ -+ 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, -+ /* t, u, v, w, x, y, z */ -+ 0, 1, 0, 0, 0, 1, 0 -+ }; -+ -+ if (c <= 'Z') -+ c -= 'A'; -+ else -+ c -= 'a'; -+ -+ return table[c]; -+} -+ -+/* 2 ¹ú½Ä¿¡¼­ ¿µ¹®ÀÚ -> Á¶ÇÕÇü Ãʼº º¯È¯ -+ * (2 bulsik: conversion english char. to initial sound of compound type) -+ * °á°ú: ÃʼºÀÌ ¾Æ´Ï¸é 0 (If it is not initial sound, return 0). -+ */ -+ static int -+fcon(c) -+ int c; -+{ -+ static char_u table[] = -+ { -+ /*E */ 6 , /*F */ 0 , /*G */ 0 , /*H */ 0 , /*I */ 0 , /*J */ 0 , /*K */ 0 , -+ /*L */ 0 , /*M */ 0 , /*N */ 0 , /*O */ 0 , /*P */ 0 , /*Q */ 10, /*R */ 3 , -+ /*S */ 0 , /*T */ 12, /*U */ 0 , /*V */ 0 , /*W */ 15, /*X */ 0 , /*Y */ 0 , -+ /*Z */ 0 , /*[ */ 0 , /*\ */ 0 , /*] */ 0 , /*^ */ 0 , /*_ */ 0 , /*` */ 0 , -+ /*a */ 8 , /*b */ 0 , /*c */ 16, /*d */ 13, /*e */ 5 , /*f */ 7 , /*g */ 20, -+ /*h */ 0 , /*i */ 0 , /*j */ 0 , /*k */ 0 , /*l */ 0 , /*m */ 0 , /*n */ 0 , -+ /*o */ 0 , /*p */ 0 , /*q */ 9 , /*r */ 2 , /*s */ 4 , /*t */ 11, /*u */ 0 , -+ /*v */ 19, /*w */ 14, /*x */ 18, /*y */ 0 , /*z */ 17 -+ }; -+ -+ if (c < 'E' || c > 'z') -+ return 0; -+ return table[c - 'E']; -+} -+ -+/* 2 ¹ú½Ä¿¡¼­ ¿µ¹®ÀÚ -> Áß¼º º¯È¯ -+ * (2 bulsik: conversion english char. to medial vowel) -+ * °á°ú: Áß¼ºÀÌ ¾Æ´Ï¸é 0 (If it is not medial vowel, return 0). -+ */ -+ static int -+vow(c) -+ int c; -+{ -+ static char_u table[] = -+ { -+ /*O */ 6 , /*P */ 12, /*Q */ 0 , /*R */ 0 , /*S */ 0 , /*T */ 0 , /*U */ 0 , -+ /*V */ 0 , /*W */ 0 , /*X */ 0 , /*Y */ 0 , /*Z */ 0 , /*[ */ 0 , /*\ */ 0 , -+ /*] */ 0 , /*^ */ 0 , /*_ */ 0 , /*` */ 0 , /*a */ 0 , /*b */ 26, /*c */ 0 , -+ /*d */ 0 , /*e */ 0 , /*f */ 0 , /*g */ 0 , /*h */ 13, /*i */ 5 , /*j */ 7 , -+ /*k */ 3 , /*l */ 29, /*m */ 27, /*n */ 20, /*o */ 4 , /*p */ 10, /*q */ 0 , -+ /*r */ 0 , /*s */ 0 , /*t */ 0 , /*u */ 11, /*v */ 0 , /*w */ 0 , /*x */ 0 , -+ /*y */ 19}; -+ -+ if (c < 'O' || c > 'y') -+ return 0; -+ return table[c - 'O']; -+} -+ -+/* 2¹ú½Ä¿¡¼­ ¿µ¹®ÀÚ -> ¹Þħ º¯È¯ -+ * (2 bulsik: conversion english char. to prop) -+ * °á°ú: ¹ÞħÀÌ ¾Æ´Ï¸é 0 (If not prop, return 0) -+ */ -+ static int -+lcon(c) -+ int c; -+{ -+ static char_u table[] = -+ { -+ /*R */ 3 , /*S */ 0 , /*T */ 22, /*U */ 0 , /*V */ 0 , /*W */ 0 , /*X */ 0 , -+ /*Y */ 0 , /*Z */ 0 , /*[ */ 0 , /*\ */ 0 , /*] */ 0 , /*^ */ 0 , /*_ */ 0 , -+ /*` */ 0 , /*a */ 17, /*b */ 0 , /*c */ 25, /*d */ 23, /*e */ 8 , /*f */ 9 , -+ /*g */ 29, /*h */ 0 , /*i */ 0 , /*j */ 0 , /*k */ 0 , /*l */ 0 , /*m */ 0 , -+ /*n */ 0 , /*o */ 0 , /*p */ 0 , /*q */ 19, /*r */ 2 , /*s */ 5 , /*t */ 21, -+ /*u */ 0 , /*v */ 28, /*w */ 24, /*x */ 27, /*y */ 0 , /*z */ 26 -+ }; -+ -+ if (c < 'R' || c > 'z') -+ return 0; -+ return table[c - 'R']; -+} -+ -+/* 2 ¹ú½Ä¿¡¼­ (ÇöÀç ¹Þħ, ¿µ¹®ÀÚ ÀÔ·Â) -> ¹Þħ º¯È¯ -+ * (2 bulsik: conversion (curr. prop, input english) to prop) -+ */ -+ -+ static int -+comcon2(k, c) -+ int k; -+ int c; -+{ -+ switch (k) -+ { -+ case 2: /* ¤¡ */ -+ switch (c) { -+ case 't': -+ return 4; /* ¤¡¤µ */ -+ } -+ break; -+ -+ case 5: /* ¤¤ */ -+ switch (c) { -+ case 'w': /* ¤¤¤¸ */ -+ return 6; -+ case 'g': /* ¤¤¤¾ */ -+ return 7; -+ } -+ break; -+ -+ case 9: /* ¤© */ -+ switch (c) { -+ case 'r': /* ¤©¤¡ */ -+ return 10; -+ case 'a': /* ¤©¤± */ -+ return 11; -+ case 'q': /* ¤©¤² */ -+ return 12; -+ case 't': /* ¤©¤µ */ -+ return 13; -+ case 'x': /* ¤©¤¼ */ -+ return 14; -+ case 'v': /* ¤©¤½ */ -+ return 15; -+ case 'g': /* ¤©¤¾ */ -+ return 16; -+ } -+ break; -+ -+ case 19: /* ¤² */ -+ switch (c) { -+ case 't': /* ¤²¤µ */ -+ return 20; -+ } -+ break; -+ } -+ return 0; -+} -+ -+/* 2¹ú½Ä¿¡¼­ (ÇöÀç Áß¼º, ¿µ¹® ÀÔ·Â) -> Áß¼º º¯È¯ -+ * (2 bulsik: conversion (curr. medial vowel, input english) to medial -+ * vowel) -+ */ -+ -+ static int -+comvow2(v, c) -+ int v; -+ int c; -+{ -+ switch (v) -+ { -+ case 13: /* ¤Ç */ -+ switch (c) { -+ case 'k': /* ¤Ç¤¿ */ -+ return 14; -+ case 'o': /* ¤Ç¤À */ -+ return 15; -+ case 'l': /* ¤Ç¤Ó */ -+ return 18; -+ } -+ break; -+ -+ case 20: /* ¤Ì */ -+ switch (c) { -+ case 'j': /* ¤Ì¤Ã */ -+ return 21; -+ case 'p': /* ¤Ì¤Ä */ -+ return 22; -+ case 'l': /* ¤Ì¤Ó */ -+ return 23; -+ } -+ break; -+ -+ case 27: /* ¤Ñ */ -+ switch (c) { -+ case 'l': /* ¤Ñ¤Ó */ -+ return 28; -+ } -+ break; -+ } -+ return 0; -+} -+ -+ int -+hangul_input_state_get() -+{ -+ return hangul_input_state; -+} -+ -+ void -+hangul_input_state_set(state) -+ int state; -+{ -+ hangul_input_state = state; -+ hangul_input_clear(); -+} -+ -+ void -+hangul_input_state_toggle() -+{ -+ if (hangul_input_state_get()) -+ { -+ hangul_input_state_set(0); -+ redraw_hangul_buffer[0] = 0; -+ if (composing_hangul) -+ { -+ tt_write(composing_hangul_buffer, 2); -+ composing_hangul = 0; -+ } -+ } -+ else -+ hangul_input_state_set(1); -+} -+ -+ static int -+hangul_automata2(buf, c) -+ char_u *buf; -+ int_u *c; -+{ -+ int t,t2; -+ -+ if (*c == BS) -+ { -+ if (sp == 0) -+ return AUTOMATA_SPECIAL; -+ else if (sp < 4) -+ { -+ hangul_input_clear(); -+ return AUTOMATA_NULL; -+ } -+ pop(buf); -+ query(buf); -+ convert_ks_to_3(buf, &f, &m, &l); -+ last_l = last_ll; -+ last_ll = -1; -+ return AUTOMATA_CORRECT; -+ } -+ if ((!(*c >= 'A' && *c <= 'Z')) && (!(*c >= 'a' && *c <= 'z'))) -+ { -+ hangul_input_clear(); -+ return AUTOMATA_SPECIAL; -+ } -+ t = *c; -+ switch (kind_table_for_2(t)) -+ { -+ case 0: /* ÀÚÀ½ (consonant) */ -+ if (f == F_NULL) -+ { -+ if (m != M_NULL) -+ hangul_input_clear(); -+ f = fcon(t); -+ convert_3_to_code(f, M_NULL, L_NULL, buf); -+ push(buf); -+ last_ll = last_l = -1; -+ return AUTOMATA_NEW; -+ } -+ if (m == M_NULL) -+ return AUTOMATA_ERROR; -+ if (l == L_NULL) -+ { -+ t2 = lcon(t); -+ if (!t2) /* ¹ÞħÀ¸·Î ÀûÇÕÇÏÁö¾Ê´Ù (cannot use it as a prop) */ -+ { -+ hangul_input_clear(); -+ last_ll = last_l = -1; -+ f = fcon(t); -+ convert_3_to_code(f, m, l, buf); -+ push(buf); -+ return AUTOMATA_NEW; -+ } -+ if (2 == convert_3_to_code(f, m, t2, buf)) -+ { -+ last_ll = -1; -+ last_l = t; -+ l = t2; -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ else /* ¹ÞħÀ¸·Î ¾²·ÁÇÏ¿´À¸³ª code¿¡ ¾ø´Â ±ÛÀÚÀÌ´Ù */ -+ { /* cannot find such a prop in the code table */ -+ last_ll = last_l = -1; -+ hangul_input_clear(); -+ f = fcon(t); -+ convert_3_to_code(f, m, l, buf); -+ push(buf); -+ return AUTOMATA_NEW; -+ } -+ } -+ /* ÃÊ Áß Á¾¼ºÀÌ ¸ðµÎ °®Ãß¾îÁ® ÀÖ´Ù -+ * I have all the 'initial sound' and 'medial vowel' and 'final -+ * consonant'. -+ */ -+ t2 = comcon2(l, t); -+ if (t2) -+ { -+ if (2 == convert_3_to_code(f, m, t2, buf)) -+ { -+ l = t2; -+ last_ll = last_l; -+ last_l = t; -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ } -+ last_ll = last_l = -1; -+ hangul_input_clear(); -+ f = fcon(t); -+ convert_3_to_code(f, m, l, buf); -+ push(buf); -+ return AUTOMATA_NEW; -+ -+ case 1: -+ if (f == F_NULL) -+ { -+ hangul_input_clear(); -+ m = vow(t); -+ convert_3_to_code (f, m, L_NULL, buf); -+ push (buf); -+ last_ll = last_l = -1; -+ return AUTOMATA_NEW; -+ } -+ if (m == M_NULL) -+ { -+ m = vow(t); -+ if (2 == convert_3_to_code(f, m, L_NULL, buf)) -+ { -+ last_ll = last_l = -1; -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ m = M_NULL; -+ return AUTOMATA_ERROR; -+ } -+ if (l == L_NULL) -+ { -+ t2 = comvow2(m, t); -+ if (t2) -+ { -+ if (2 != convert_3_to_code(f, t2, L_NULL, buf)) -+ return AUTOMATA_ERROR; -+ -+ m = t2; -+ push(buf); -+ last_ll = last_l = -1; -+ return AUTOMATA_CORRECT; -+ } -+ return AUTOMATA_ERROR; -+ } -+ pop(buf); -+ pop(buf); -+ sp = 0; -+ if (last_l == -1) -+ { -+ /* À½... ÀÌ°Ô ÇÊ¿äÇϳª?? (Hmm... Is it needed?) */ -+ convert_ks_to_3(buf, &f, &m, &l); -+ } -+ else -+ { -+ char_u tmp[3]; -+ f = fcon(last_l); -+ convert_3_to_code (f, M_NULL, L_NULL, tmp); -+ push (tmp); -+ } -+ m = vow(t); -+ l = L_NULL; -+ convert_3_to_code(f, m, l, buf + 2); -+ push(buf + 2); -+ return AUTOMATA_CORRECT_NEW; -+ -+ default: -+ fprintf(stderr, "automata ERROR: internal\n"); -+ break; -+ } -+ return AUTOMATA_ERROR; /* RrEeAaLlLlYy EeRrRrOoRr */ -+} -+ -+ static int -+hangul_automata3(buf, c) -+ char_u *buf; -+ int_u *c; -+{ -+ int t, t2; -+ -+ if (*c >= '!' && *c <= 'z') -+ { -+ *c -= '!'; -+ t = value_table_for_3[*c]; -+ switch (kind_table_for_3[*c]) -+ { -+ case F_F: /* Ãʼº¹®ÀÚ (char. of an initial sound) */ -+ if (m != M_NULL || sp == 0) -+ { -+ /* ÃʼºÀÌ ºñ¾ú°Å³ª ´ÙÀ½ ±ÛÀÚ ¸ðÀ¸±â ½ÃÀÛ -+ * Empty 'initial sound', so starting automata. -+ */ -+ hangul_input_clear(); -+ f = t; -+ convert_3_to_code(f, M_NULL, L_NULL, buf); -+ push(buf); -+ return AUTOMATA_NEW; -+ } -+ if ((t2 = comfcon3(f,t)) != 0) /* º¹ÀÚÀ½ (double? consonant) */ -+ { -+ f=t2; -+ convert_3_to_code(f, M_NULL, L_NULL, buf); -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ return AUTOMATA_ERROR; -+ -+ case F_M: /* ¸ðÀ½ (vowel) */ -+ if (m == M_NULL) -+ { -+ if (2 != convert_3_to_code(f, t, L_NULL,buf)) -+ return AUTOMATA_ERROR; -+ -+ m = t; -+ push(buf); -+ if (f == F_NULL) -+ return AUTOMATA_NEW; -+ else -+ return AUTOMATA_CORRECT; -+ } -+ if ((t2 = comvow3(m,t))) /* º¹¸ðÀ½ (a diphthong) */ -+ { -+ m = t2; -+ convert_3_to_code(f, m, L_NULL, buf); -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ return AUTOMATA_ERROR; -+ -+ case F_L: /* ¹Þħ (prop?) */ -+ if (m == M_NULL) -+ return AUTOMATA_ERROR; /* Áß¼º¾ø´Â Á¾¼º */ -+ if (l == L_NULL) -+ { -+ if (2 != convert_3_to_code(f, m, t, buf)) -+ { -+ l = L_NULL; -+ return AUTOMATA_ERROR; -+ } -+ push(buf); -+ l = t; -+ return AUTOMATA_CORRECT; -+ } -+ if ((t2 = comcon3(l,t)) != 0) /* º¹ ¹Þħ ?? (double prop?) */ -+ { -+ if (2 != convert_3_to_code(f, m, t2, buf)) -+ return AUTOMATA_ERROR; -+ -+ push(buf); -+ l = t2; -+ return AUTOMATA_CORRECT; -+ } -+ return AUTOMATA_ERROR; -+ -+ case F_A: /* Ư¼ö¹®ÀÚ³ª ¼ýÀÚ (special char. or number) */ -+ hangul_input_clear(); -+ *c = t; -+ return AUTOMATA_SPECIAL; -+ } -+ } -+ if (*c == BS) -+ { -+ if (sp >= 4) -+ { -+ pop(buf); -+ pop(buf); -+ convert_ks_to_3(buf, &f, &m, &l); -+ push(buf); -+ return AUTOMATA_CORRECT; -+ } -+ else if (sp == 0) -+ { -+ return AUTOMATA_SPECIAL; -+ } -+ else -+ { -+ hangul_input_clear(); -+ return AUTOMATA_NULL; -+ } -+ } -+ hangul_input_clear(); -+ return AUTOMATA_SPECIAL; -+} -+ -+ void -+hangul_keyboard_set() -+{ -+ int keyboard; -+ char *s; -+ -+ hangul_input_clear(); -+ -+ if ((s = getenv("VIM_KEYBOARD")) == NULL) -+ s = getenv("HANGUL_KEYBOARD_TYPE"); -+ -+ if (s) -+ { -+ if (*s == '2') -+ keyboard = 2; -+ else -+ keyboard = 3; -+ hangul_keyboard_type = keyboard; -+ } -+} -+ -+ int -+hangul_input_process(s, len) -+ char_u *s; -+ int len; -+{ -+ int n; -+ unsigned int c; -+ char_u hanbuf[20]; -+ -+ if (len == 1) -+ /* normal key press */ -+ c = *s; -+ else -+ { -+ if (composing_hangul) -+ tt_write(composing_hangul_buffer, 2); -+ hangul_input_clear(); -+ composing_hangul = 0; -+ return len; -+ } -+ -+ if (hangul_keyboard_type == 2) -+ n = hangul_automata2(hanbuf, &c); -+ else -+ n = hangul_automata3(hanbuf, &c); -+ -+ if (n == AUTOMATA_CORRECT) -+ { -+ strncpy(composing_hangul_buffer, hanbuf, 2); -+ scr_write(0, composing_hangul_buffer, 2); -+ return 0; -+ } -+ else if (n == AUTOMATA_NEW) -+ { -+ if (composing_hangul) { -+ tt_write(composing_hangul_buffer, 2); -+ scr_write(2, hanbuf, 2); -+ } else -+ scr_write(0, hanbuf, 2); -+ strncpy(composing_hangul_buffer, hanbuf, 2); -+ composing_hangul = 1; -+ return 0; -+ } -+ else if (n == AUTOMATA_CORRECT_NEW) -+ { -+ if (composing_hangul) -+ tt_write(hanbuf, 2); -+ -+ strncpy(composing_hangul_buffer, hanbuf+2, 2); -+ composing_hangul = 1; -+ scr_write(2, composing_hangul_buffer, 2); -+ return 0; -+ } -+ else if (n == AUTOMATA_NULL) -+ { -+ composing_hangul = 0; -+ hanbuf[0] = ' '; -+ hanbuf[1] = ' '; -+ scr_write(0, hanbuf, 2); -+ return 0; -+ } -+ else if (n == AUTOMATA_SPECIAL) -+ { -+ if (composing_hangul) { -+ tt_write(composing_hangul_buffer, 2); -+ composing_hangul = 0; -+ } -+ len = 1; -+ redraw_hangul_buffer[0] = 0; -+ *s = c; -+ return 1; -+ } -+ else if (n == AUTOMATA_ERROR) -+ { -+ scr_bell(); -+ return 0; -+ } -+ return len; -+} -+ -+ void -+hangul_input_clear() -+{ -+ sp = 0; -+ f = F_NULL; -+ m = M_NULL; -+ l = L_NULL; -+} -+ -+#define han_index(h, l) (((h)-0xb0)*(0xff-0xa1)+((l)-0xa1)) -+ -+static const char_u ks_table1[][3] = -+{ -+ { 2, 3, 1}, { 2, 3, 2}, { 2, 3, 5}, { 2, 3, 8}, -+ { 2, 3, 9}, { 2, 3, 10}, { 2, 3, 11}, { 2, 3, 17}, -+ { 2, 3, 19}, { 2, 3, 20}, { 2, 3, 21}, { 2, 3, 22}, -+ { 2, 3, 23}, { 2, 3, 24}, { 2, 3, 25}, { 2, 3, 27}, -+ { 2, 3, 28}, { 2, 3, 29}, { 2, 4, 1}, { 2, 4, 2}, -+ { 2, 4, 5}, { 2, 4, 9}, { 2, 4, 17}, { 2, 4, 19}, -+ { 2, 4, 21}, { 2, 4, 22}, { 2, 4, 23}, { 2, 5, 1}, -+ { 2, 5, 2}, { 2, 5, 5}, { 2, 5, 9}, { 2, 5, 21}, -+ { 2, 5, 23}, { 2, 6, 1}, { 2, 6, 5}, { 2, 6, 9}, -+ { 2, 7, 1}, { 2, 7, 2}, { 2, 7, 5}, { 2, 7, 8}, -+ { 2, 7, 9}, { 2, 7, 11}, { 2, 7, 17}, { 2, 7, 19}, -+ { 2, 7, 21}, { 2, 7, 22}, { 2, 7, 23}, { 2, 7, 24}, -+ { 2, 7, 27}, { 2, 7, 28}, { 2, 7, 29}, { 2, 10, 1}, -+ { 2, 10, 5}, { 2, 10, 9}, { 2, 10, 17}, { 2, 10, 19}, -+ { 2, 10, 21}, { 2, 10, 22}, { 2, 10, 23}, { 2, 11, 1}, -+ { 2, 11, 2}, { 2, 11, 3}, { 2, 11, 5}, { 2, 11, 8}, -+ { 2, 11, 9}, { 2, 11, 17}, { 2, 11, 19}, { 2, 11, 21}, -+ { 2, 11, 22}, { 2, 11, 23}, { 2, 11, 27}, { 2, 12, 1}, -+ { 2, 12, 5}, { 2, 12, 9}, { 2, 12, 19}, { 2, 12, 21}, -+ { 2, 13, 1}, { 2, 13, 2}, { 2, 13, 5}, { 2, 13, 8}, -+ { 2, 13, 9}, { 2, 13, 11}, { 2, 13, 13}, { 2, 13, 16}, -+ { 2, 13, 17}, { 2, 13, 19}, { 2, 13, 21}, { 2, 13, 23}, -+ { 2, 13, 24}, { 2, 14, 1}, { 2, 14, 2}, { 2, 14, 5}, -+ { 2, 14, 9}, { 2, 14, 11}, { 2, 14, 17}, { 2, 14, 19}, -+ { 2, 14, 21}, { 2, 14, 23}, { 2, 15, 1}, { 2, 15, 5}, -+ { 2, 15, 9}, { 2, 15, 19}, { 2, 15, 22}, { 2, 15, 23}, -+ { 2, 18, 1}, { 2, 18, 2}, { 2, 18, 5}, { 2, 18, 9}, -+ { 2, 18, 17}, { 2, 18, 19}, { 2, 18, 21}, { 2, 18, 23}, -+ { 2, 19, 1}, { 2, 19, 5}, { 2, 19, 9}, { 2, 19, 19}, -+ { 2, 19, 21}, { 2, 20, 1}, { 2, 20, 2}, { 2, 20, 5}, -+ { 2, 20, 8}, { 2, 20, 9}, { 2, 20, 10}, { 2, 20, 11}, -+ { 2, 20, 16}, { 2, 20, 17}, { 2, 20, 19}, { 2, 20, 21}, -+ { 2, 20, 23}, { 2, 20, 24}, { 2, 21, 1}, { 2, 21, 2}, -+ { 2, 21, 5}, { 2, 21, 9}, { 2, 21, 22}, { 2, 21, 23}, -+ { 2, 22, 1}, { 2, 22, 21}, { 2, 23, 1}, { 2, 23, 2}, -+ { 2, 23, 5}, { 2, 23, 9}, { 2, 23, 17}, { 2, 23, 19}, -+ { 2, 23, 21}, { 2, 26, 1}, { 2, 26, 5}, { 2, 26, 9}, -+ { 2, 27, 1}, { 2, 27, 2}, { 2, 27, 5}, { 2, 27, 8}, -+ { 2, 27, 9}, { 2, 27, 10}, { 2, 27, 17}, { 2, 27, 19}, -+ { 2, 27, 21}, { 2, 27, 23}, { 2, 28, 1}, { 2, 29, 1}, -+ { 2, 29, 2}, { 2, 29, 5}, { 2, 29, 8}, { 2, 29, 9}, -+ { 2, 29, 11}, { 2, 29, 17}, { 2, 29, 19}, { 2, 29, 21}, -+ { 2, 29, 23}, { 2, 29, 24}, { 2, 29, 28}, { 3, 3, 1}, -+ { 3, 3, 2}, { 3, 3, 3}, { 3, 3, 5}, { 3, 3, 9}, -+ { 3, 3, 11}, { 3, 3, 17}, { 3, 3, 19}, { 3, 3, 21}, -+ { 3, 3, 22}, { 3, 3, 23}, { 3, 3, 27}, { 3, 4, 1}, -+ { 3, 4, 2}, { 3, 4, 5}, { 3, 4, 9}, { 3, 4, 17}, -+ { 3, 4, 19}, { 3, 4, 21}, { 3, 4, 22}, { 3, 4, 23}, -+ { 3, 5, 1}, { 3, 5, 2}, { 3, 5, 9}, { 3, 7, 1}, -+ { 3, 7, 2}, { 3, 7, 3}, { 3, 7, 5}, { 3, 7, 9}, -+ { 3, 7, 17}, { 3, 7, 19}, { 3, 7, 21}, { 3, 7, 22}, -+ { 3, 7, 23}, { 3, 10, 1}, { 3, 10, 2}, { 3, 10, 5}, -+ { 3, 10, 17}, { 3, 10, 21}, { 3, 10, 23}, { 3, 11, 1}, -+ { 3, 11, 5}, { 3, 11, 9}, { 3, 11, 21}, { 3, 11, 22}, -+ { 3, 11, 27}, { 3, 12, 1}, { 3, 13, 1}, { 3, 13, 2}, -+ { 3, 13, 5}, { 3, 13, 7}, { 3, 13, 9}, { 3, 13, 17}, -+ { 3, 13, 19}, { 3, 13, 21}, { 3, 13, 23}, { 3, 13, 24}, -+ { 3, 13, 25}, { 3, 14, 1}, { 3, 14, 2}, { 3, 14, 9}, -+ { 3, 14, 22}, { 3, 14, 23}, { 3, 15, 1}, { 3, 15, 2}, -+ { 3, 15, 23}, { 3, 18, 1}, { 3, 18, 5}, { 3, 18, 9}, -+ { 3, 18, 17}, { 3, 18, 19}, { 3, 18, 23}, { 3, 19, 1}, -+ { 3, 20, 1}, { 3, 20, 2}, { 3, 20, 5}, { 3, 20, 9}, -+ { 3, 20, 16}, { 3, 20, 17}, { 3, 20, 19}, { 3, 20, 21}, -+ { 3, 20, 23}, { 3, 20, 24}, { 3, 21, 1}, { 3, 21, 9}, -+ { 3, 21, 22}, { 3, 21, 23}, { 3, 22, 1}, { 3, 22, 2}, -+ { 3, 22, 5}, { 3, 22, 9}, { 3, 22, 17}, { 3, 22, 19}, -+ { 3, 22, 22}, { 3, 23, 1}, { 3, 23, 5}, { 3, 23, 9}, -+ { 3, 23, 17}, { 3, 23, 19}, { 3, 26, 1}, { 3, 27, 1}, -+ { 3, 27, 2}, { 3, 27, 5}, { 3, 27, 7}, { 3, 27, 9}, -+ { 3, 27, 11}, { 3, 27, 16}, { 3, 27, 17}, { 3, 27, 19}, -+ { 3, 27, 21}, { 3, 27, 23}, { 3, 27, 27}, { 3, 29, 1}, -+ { 3, 29, 2}, { 3, 29, 5}, { 3, 29, 9}, { 3, 29, 17}, -+ { 3, 29, 19}, { 3, 29, 21}, { 3, 29, 23}, { 4, 3, 1}, -+ { 4, 3, 2}, { 4, 3, 3}, { 4, 3, 5}, { 4, 3, 8}, -+ { 4, 3, 9}, { 4, 3, 10}, { 4, 3, 11}, { 4, 3, 17}, -+ { 4, 3, 19}, { 4, 3, 21}, { 4, 3, 22}, { 4, 3, 23}, -+ { 4, 3, 24}, { 4, 3, 25}, { 4, 3, 27}, { 4, 3, 29}, -+ { 4, 4, 1}, { 4, 4, 2}, { 4, 4, 5}, { 4, 4, 9}, -+ { 4, 4, 17}, { 4, 4, 19}, { 4, 4, 21}, { 4, 4, 22}, -+ { 4, 4, 23}, { 4, 5, 1}, { 4, 5, 2}, { 4, 5, 5}, -+ { 4, 5, 9}, { 4, 5, 17}, { 4, 5, 23}, { 4, 7, 1}, -+ { 4, 7, 2}, { 4, 7, 4}, { 4, 7, 5}, { 4, 7, 9}, -+ { 4, 7, 11}, { 4, 7, 12}, { 4, 7, 17}, { 4, 7, 19}, -+ { 4, 7, 21}, { 4, 7, 22}, { 4, 7, 23}, { 4, 7, 29}, -+ { 4, 10, 1}, { 4, 10, 2}, { 4, 10, 5}, { 4, 10, 9}, -+ { 4, 10, 17}, { 4, 10, 19}, { 4, 10, 21}, { 4, 10, 22}, -+ { 4, 10, 23}, { 4, 11, 1}, { 4, 11, 2}, { 4, 11, 5}, -+ { 4, 11, 9}, { 4, 11, 17}, { 4, 11, 19}, { 4, 11, 22}, -+ { 4, 11, 23}, { 4, 11, 26}, { 4, 12, 1}, { 4, 12, 5}, -+ { 4, 13, 1}, { 4, 13, 2}, { 4, 13, 5}, { 4, 13, 9}, -+ { 4, 13, 11}, { 4, 13, 17}, { 4, 13, 19}, { 4, 13, 21}, -+ { 4, 13, 23}, { 4, 13, 28}, { 4, 13, 29}, { 4, 14, 1}, -+ { 4, 14, 5}, { 4, 14, 9}, { 4, 14, 22}, { 4, 18, 1}, -+ { 4, 18, 5}, { 4, 18, 9}, { 4, 18, 17}, { 4, 18, 19}, -+ { 4, 18, 21}, { 4, 19, 1}, { 4, 19, 2}, { 4, 19, 5}, -+ { 4, 19, 9}, { 4, 19, 19}, { 4, 19, 21}, { 4, 19, 23}, -+ { 4, 20, 1}, { 4, 20, 2}, { 4, 20, 5}, { 4, 20, 8}, -+ { 4, 20, 9}, { 4, 20, 17}, { 4, 20, 19}, { 4, 20, 21}, -+ { 4, 20, 23}, { 4, 21, 1}, { 4, 21, 22}, { 4, 22, 1}, -+ { 4, 23, 1}, { 4, 23, 5}, { 4, 23, 9}, { 4, 23, 17}, -+ { 4, 23, 19}, { 4, 26, 1}, { 4, 26, 2}, { 4, 26, 9}, -+ { 4, 26, 17}, { 4, 26, 19}, { 4, 26, 23}, { 4, 27, 1}, -+ { 4, 27, 2}, { 4, 27, 5}, { 4, 27, 9}, { 4, 27, 10}, -+ { 4, 27, 11}, { 4, 27, 17}, { 4, 27, 19}, { 4, 27, 21}, -+ { 4, 27, 23}, { 4, 27, 24}, { 4, 27, 28}, { 4, 28, 1}, -+ { 4, 28, 5}, { 4, 28, 9}, { 4, 29, 1}, { 4, 29, 2}, -+ { 4, 29, 5}, { 4, 29, 9}, { 4, 29, 11}, { 4, 29, 17}, -+ { 4, 29, 19}, { 4, 29, 21}, { 4, 29, 23}, { 4, 29, 28}, -+ { 5, 3, 1}, { 5, 3, 2}, { 5, 3, 3}, { 5, 3, 5}, -+ { 5, 3, 8}, { 5, 3, 9}, { 5, 3, 10}, { 5, 3, 11}, -+ { 5, 3, 12}, { 5, 3, 16}, { 5, 3, 17}, { 5, 3, 19}, -+ { 5, 3, 21}, { 5, 3, 22}, { 5, 3, 23}, { 5, 3, 24}, -+ { 5, 3, 25}, { 5, 3, 29}, { 5, 4, 1}, { 5, 4, 2}, -+ { 5, 4, 5}, { 5, 4, 9}, { 5, 4, 17}, { 5, 4, 19}, -+ { 5, 4, 21}, { 5, 4, 22}, { 5, 4, 23}, { 5, 5, 1}, -+ { 5, 7, 1}, { 5, 7, 2}, { 5, 7, 3}, { 5, 7, 5}, -+ { 5, 7, 8}, { 5, 7, 9}, { 5, 7, 11}, { 5, 7, 12}, -+ { 5, 7, 17}, { 5, 7, 19}, { 5, 7, 21}, { 5, 7, 23}, -+ { 5, 7, 25}, { 5, 7, 28}, { 5, 10, 1}, { 5, 10, 2}, -+ { 5, 10, 5}, { 5, 10, 9}, { 5, 10, 17}, { 5, 10, 19}, -+ { 5, 10, 21}, { 5, 10, 22}, { 5, 10, 23}, { 5, 11, 1}, -+ { 5, 11, 5}, { 5, 11, 9}, { 5, 11, 22}, { 5, 11, 23}, -+ { 5, 12, 1}, { 5, 12, 5}, { 5, 13, 1}, { 5, 13, 2}, -+ { 5, 13, 5}, { 5, 13, 8}, { 5, 13, 9}, { 5, 13, 11}, -+ { 5, 13, 13}, { 5, 13, 17}, { 5, 13, 19}, { 5, 13, 21}, -+ { 5, 13, 23}, { 5, 13, 25}, { 5, 13, 27}, { 5, 14, 1}, -+ { 5, 14, 5}, { 5, 14, 9}, { 5, 15, 1}, { 5, 15, 22}, -+ { 5, 18, 1}, { 5, 18, 5}, { 5, 18, 9}, { 5, 18, 17}, -+ { 5, 18, 19}, { 5, 18, 21}, { 5, 19, 1}, { 5, 20, 1}, -+ { 5, 20, 2}, { 5, 20, 5}, { 5, 20, 9}, { 5, 20, 17}, -+ { 5, 20, 19}, { 5, 20, 21}, { 5, 20, 23}, { 5, 21, 1}, -+ { 5, 21, 22}, { 5, 22, 1}, { 5, 22, 23}, { 5, 23, 1}, -+ { 5, 23, 5}, { 5, 23, 9}, { 5, 23, 19}, { 5, 23, 21}, -+ { 5, 23, 23}, { 5, 26, 1}, { 5, 26, 5}, { 5, 26, 9}, -+ { 5, 26, 17}, { 5, 26, 23}, { 5, 27, 1}, { 5, 27, 2}, -+ { 5, 27, 5}, { 5, 27, 8}, { 5, 27, 9}, { 5, 27, 11}, -+ { 5, 27, 17}, { 5, 27, 19}, { 5, 27, 21}, { 5, 27, 23}, -+ { 5, 28, 1}, { 5, 29, 1}, { 5, 29, 2}, { 5, 29, 5}, -+ { 5, 29, 8}, { 5, 29, 9}, { 5, 29, 17}, { 5, 29, 19}, -+ { 5, 29, 21}, { 5, 29, 22}, { 5, 29, 23}, { 5, 29, 24}, -+ { 6, 3, 1}, { 6, 3, 2}, { 6, 3, 5}, { 6, 3, 9}, -+ { 6, 3, 17}, { 6, 3, 19}, { 6, 3, 21}, { 6, 3, 22}, -+ { 6, 3, 23}, { 6, 3, 29}, { 6, 4, 1}, { 6, 4, 2}, -+ { 6, 4, 5}, { 6, 4, 9}, { 6, 4, 17}, { 6, 4, 19}, -+ { 6, 4, 21}, { 6, 4, 22}, { 6, 4, 23}, { 6, 7, 1}, -+ { 6, 7, 2}, { 6, 7, 5}, { 6, 7, 9}, { 6, 7, 11}, -+ { 6, 7, 12}, { 6, 7, 17}, { 6, 7, 19}, { 6, 7, 21}, -+ { 6, 7, 22}, { 6, 7, 23}, { 6, 7, 29}, { 6, 10, 1}, -+ { 6, 10, 2}, { 6, 10, 5}, { 6, 10, 9}, { 6, 10, 17}, -+ { 6, 10, 19}, { 6, 10, 21}, { 6, 10, 22}, { 6, 10, 23}, -+ { 6, 11, 1}, { 6, 11, 22}, { 6, 13, 1}, { 6, 13, 2}, -+ { 6, 13, 5}, { 6, 13, 9}, { 6, 13, 23}, { 6, 14, 1}, -+ { 6, 14, 9}, { 6, 15, 1}, { 6, 18, 1}, { 6, 18, 5}, -+ { 6, 20, 1}, { 6, 20, 2}, { 6, 20, 5}, { 6, 20, 9}, -+ { 6, 20, 16}, { 6, 20, 17}, { 6, 20, 23}, { 6, 22, 1}, -+ { 6, 23, 1}, { 6, 23, 5}, { 6, 23, 9}, { 6, 23, 17}, -+ { 6, 23, 19}, { 6, 23, 23}, { 6, 27, 1}, { 6, 27, 2}, -+ { 6, 27, 5}, { 6, 27, 8}, { 6, 27, 9}, { 6, 27, 17}, -+ { 6, 27, 19}, { 6, 27, 21}, { 6, 28, 1}, { 6, 28, 5}, -+ { 6, 28, 9}, { 6, 28, 17}, { 6, 28, 19}, { 6, 29, 1}, -+ { 6, 29, 5}, { 6, 29, 9}, { 6, 29, 17}, { 6, 29, 19}, -+ { 6, 29, 21}, { 6, 29, 23}, { 7, 3, 1}, { 7, 3, 2}, -+ { 7, 3, 5}, { 7, 3, 9}, { 7, 3, 17}, { 7, 3, 19}, -+ { 7, 3, 21}, { 7, 3, 22}, { 7, 3, 23}, { 7, 3, 24}, -+ { 7, 3, 28}, { 7, 3, 29}, { 7, 4, 1}, { 7, 4, 2}, -+ { 7, 4, 5}, { 7, 4, 9}, { 7, 4, 17}, { 7, 4, 19}, -+ { 7, 4, 21}, { 7, 4, 22}, { 7, 4, 23}, { 7, 5, 1}, -+ { 7, 5, 2}, { 7, 5, 5}, { 7, 5, 21}, { 7, 5, 23}, -+ { 7, 7, 1}, { 7, 7, 2}, { 7, 7, 5}, { 7, 7, 9}, -+ { 7, 7, 17}, { 7, 7, 19}, { 7, 7, 21}, { 7, 7, 22}, -+ { 7, 7, 23}, { 7, 7, 29}, { 7, 10, 1}, { 7, 10, 2}, -+ { 7, 10, 5}, { 7, 10, 9}, { 7, 10, 17}, { 7, 10, 19}, -+ { 7, 10, 21}, { 7, 10, 23}, { 7, 11, 1}, { 7, 11, 2}, -+ { 7, 11, 5}, { 7, 11, 9}, { 7, 11, 17}, { 7, 11, 19}, -+ { 7, 11, 21}, { 7, 11, 22}, { 7, 11, 23}, { 7, 12, 1}, -+ { 7, 12, 5}, { 7, 12, 19}, { 7, 12, 21}, { 7, 13, 1}, -+ { 7, 13, 2}, { 7, 13, 5}, { 7, 13, 9}, { 7, 13, 17}, -+ { 7, 13, 19}, { 7, 13, 21}, { 7, 13, 23}, { 7, 14, 1}, -+ { 7, 14, 5}, { 7, 14, 23}, { 7, 15, 22}, { 7, 18, 1}, -+ { 7, 18, 5}, { 7, 18, 9}, { 7, 18, 17}, { 7, 18, 19}, -+ { 7, 18, 21}, { 7, 18, 23}, { 7, 19, 1}, { 7, 19, 5}, -+ { 7, 19, 9}, { 7, 19, 19}, { 7, 19, 21}, { 7, 19, 23}, -+ { 7, 20, 1}, { 7, 20, 2}, { 7, 20, 5}, { 7, 20, 9}, -+ { 7, 20, 17}, { 7, 20, 19}, { 7, 20, 21}, { 7, 20, 23}, -+ { 7, 21, 1}, { 7, 21, 22}, { 7, 22, 1}, { 7, 23, 1}, -+ { 7, 23, 2}, { 7, 23, 5}, { 7, 23, 9}, { 7, 23, 17}, -+ { 7, 23, 21}, { 7, 23, 23}, { 7, 26, 1}, { 7, 26, 2}, -+ { 7, 26, 5}, { 7, 26, 9}, { 7, 26, 17}, { 7, 26, 19}, -+ { 7, 26, 21}, { 7, 26, 23}, { 7, 27, 1}, { 7, 27, 2}, -+ { 7, 27, 5}, { 7, 27, 9}, { 7, 27, 17}, { 7, 27, 19}, -+ { 7, 27, 21}, { 7, 27, 23}, { 7, 27, 24}, { 7, 27, 27}, -+ { 7, 27, 28}, { 7, 29, 1}, { 7, 29, 2}, { 7, 29, 5}, -+ { 7, 29, 9}, { 7, 29, 17}, { 7, 29, 19}, { 7, 29, 21}, -+ { 7, 29, 23}, { 8, 3, 1}, { 8, 3, 2}, { 8, 3, 5}, -+ { 8, 3, 7}, { 8, 3, 8}, { 8, 3, 9}, { 8, 3, 10}, -+ { 8, 3, 11}, { 8, 3, 17}, { 8, 3, 19}, { 8, 3, 21}, -+ { 8, 3, 23}, { 8, 3, 24}, { 8, 3, 27}, { 8, 3, 29}, -+ { 8, 4, 1}, { 8, 4, 2}, { 8, 4, 5}, { 8, 4, 9}, -+ { 8, 4, 17}, { 8, 4, 19}, { 8, 4, 21}, { 8, 4, 22}, -+ { 8, 4, 23}, { 8, 4, 24}, { 8, 5, 1}, { 8, 5, 2}, -+ { 8, 5, 9}, { 8, 5, 23}, { 8, 7, 1}, { 8, 7, 2}, -+ { 8, 7, 5}, { 8, 7, 9}, { 8, 7, 11}, { 8, 7, 17}, -+ { 8, 7, 19}, { 8, 7, 21}, { 8, 7, 23}, { 8, 7, 24}, -+ { 8, 7, 29}, { 8, 10, 1}, { 8, 10, 2}, { 8, 10, 5}, -+ { 8, 10, 9}, { 8, 10, 17}, { 8, 10, 19}, { 8, 10, 21}, -+ { 8, 10, 22}, { 8, 10, 23}, { 8, 11, 1}, { 8, 11, 2}, -+ { 8, 11, 5}, { 8, 11, 9}, { 8, 11, 21}, { 8, 11, 22}, -+ { 8, 11, 23}, { 8, 11, 25}, { 8, 12, 1}, { 8, 13, 1}, -+ { 8, 13, 2}, { 8, 13, 4}, { 8, 13, 5}, { 8, 13, 9}, -+ { 8, 13, 11}, { 8, 13, 17}, { 8, 13, 19}, { 8, 13, 21}, -+ { 8, 13, 23}, { 8, 14, 1}, { 8, 14, 5}, { 8, 14, 22}, -+ { 8, 14, 23}, { 8, 18, 1}, { 8, 18, 5}, { 8, 18, 9}, -+ { 8, 18, 19}, { 8, 18, 21}, { 8, 18, 23}, { 8, 19, 1}, -+ { 8, 19, 5}, { 8, 19, 9}, { 8, 19, 19}, { 8, 19, 21}, -+ { 8, 20, 1}, { 8, 20, 2}, { 8, 20, 3}, { 8, 20, 5}, -+ { 8, 20, 8}, { 8, 20, 9}, { 8, 20, 10}, { 8, 20, 11}, -+ { 8, 20, 17}, { 8, 20, 19}, { 8, 20, 21}, { 8, 20, 23}, -+ { 8, 20, 27}, { 8, 20, 29}, { 8, 21, 1}, { 8, 21, 5}, -+ { 8, 21, 9}, { 8, 21, 19}, { 8, 21, 21}, { 8, 22, 1}, -+ { 8, 23, 1}, { 8, 23, 5}, { 8, 23, 9}, { 8, 26, 1}, -+ { 8, 26, 5}, { 8, 26, 9}, { 8, 26, 17}, { 8, 26, 21}, -+ { 8, 27, 1}, { 8, 27, 5}, { 8, 27, 9}, { 8, 27, 17}, -+ { 8, 27, 21}, { 8, 29, 1}, { 8, 29, 2}, { 8, 29, 5}, -+ { 8, 29, 8}, { 8, 29, 9}, { 8, 29, 11}, { 8, 29, 17}, -+ { 8, 29, 19}, { 8, 29, 21}, { 8, 29, 22}, { 8, 29, 23}, -+ { 8, 29, 25}, { 8, 29, 27}, { 9, 3, 1}, { 9, 3, 2}, -+ { 9, 3, 3}, { 9, 3, 4}, { 9, 3, 5}, { 9, 3, 8}, -+ { 9, 3, 9}, { 9, 3, 10}, { 9, 3, 11}, { 9, 3, 12}, -+ { 9, 3, 17}, { 9, 3, 19}, { 9, 3, 21}, { 9, 3, 23}, -+ { 9, 3, 27}, { 9, 4, 1}, { 9, 4, 2}, { 9, 4, 5}, -+ { 9, 4, 9}, { 9, 4, 17}, { 9, 4, 19}, { 9, 4, 21}, -+ { 9, 4, 22}, { 9, 4, 23}, { 9, 4, 27}, { 9, 5, 1}, -+ { 9, 5, 2}, { 9, 5, 5}, { 9, 5, 19}, { 9, 7, 1}, -+ { 9, 7, 2}, { 9, 7, 5}, { 9, 7, 8}, { 9, 7, 9}, -+ { 9, 7, 11}, { 9, 7, 17}, { 9, 7, 19}, { 9, 7, 21}, -+ { 9, 7, 23}, { 9, 7, 24}, { 9, 10, 1}, { 9, 10, 2}, -+ { 9, 10, 5}, { 9, 10, 8}, { 9, 10, 9}, { 9, 10, 17}, -+ { 9, 10, 19}, { 9, 10, 21}, { 9, 10, 22}, { 9, 10, 23}, -+ { 9, 11, 1}, { 9, 11, 2}, { 9, 11, 5}, { 9, 11, 9}, -+ { 9, 11, 19}, { 9, 11, 21}, { 9, 11, 22}, { 9, 11, 23}, -+ { 9, 11, 27}, { 9, 12, 1}, { 9, 12, 5}, { 9, 13, 1}, -+ { 9, 13, 2}, { 9, 13, 3}, { 9, 13, 5}, { 9, 13, 9}, -+ { 9, 13, 17}, { 9, 13, 19}, { 9, 13, 21}, { 9, 13, 23}, -+ { 9, 14, 1}, { 9, 14, 5}, { 9, 14, 22}, { 9, 15, 1}, -+ { 9, 15, 22}, { 9, 18, 1}, { 9, 18, 2}, { 9, 18, 5}, -+ { 9, 18, 9}, { 9, 18, 17}, { 9, 18, 19}, { 9, 19, 1}, -+ { 9, 19, 5}, { 9, 20, 1}, { 9, 20, 2}, { 9, 20, 5}, -+ { 9, 20, 8}, { 9, 20, 9}, { 9, 20, 10}, { 9, 20, 11}, -+ { 9, 20, 17}, { 9, 20, 19}, { 9, 20, 21}, { 9, 20, 23}, -+ { 9, 20, 27}, { 9, 20, 28}, { 9, 21, 1}, { 9, 21, 9}, -+ { 9, 21, 22}, { 9, 22, 1}, { 9, 23, 1}, { 9, 23, 2}, -+ { 9, 23, 5}, { 9, 23, 9}, { 9, 23, 23}, { 9, 26, 1}, -+ { 9, 26, 5}, { 9, 26, 9}, { 9, 26, 17}, { 9, 26, 21}, -+ { 9, 26, 23}, { 9, 27, 1}, { 9, 27, 2}, { 9, 27, 5}, -+ { 9, 27, 9}, { 9, 27, 17}, { 9, 27, 19}, { 9, 27, 21}, -+ { 9, 29, 1}, { 9, 29, 2}, { 9, 29, 5}, { 9, 29, 9}, -+ { 9, 29, 11}, { 9, 29, 17}, { 9, 29, 19}, { 9, 29, 21}, -+ { 9, 29, 23}, { 9, 29, 24}, { 9, 29, 25}, { 10, 3, 1}, -+ { 10, 3, 2}, { 10, 3, 5}, { 10, 3, 9}, { 10, 3, 11}, -+ { 10, 3, 17}, { 10, 3, 19}, { 10, 3, 21}, { 10, 3, 22}, -+ { 10, 3, 23}, { 10, 3, 29}, { 10, 4, 1}, { 10, 4, 2}, -+ { 10, 4, 5}, { 10, 4, 9}, { 10, 4, 17}, { 10, 4, 19}, -+ { 10, 4, 21}, { 10, 4, 22}, { 10, 4, 23}, { 10, 5, 1}, -+ { 10, 5, 2}, { 10, 5, 17}, { 10, 7, 1}, { 10, 7, 2}, -+ { 10, 7, 5}, { 10, 7, 8}, { 10, 7, 9}, { 10, 7, 17}, -+ { 10, 7, 21}, { 10, 7, 22}, { 10, 7, 23}, { 10, 10, 1}, -+ { 10, 10, 23}, { 10, 11, 1}, { 10, 11, 2}, { 10, 11, 17}, -+ { 10, 11, 19}, { 10, 11, 21}, { 10, 11, 22}, { 10, 11, 23}, -+ { 10, 13, 1}, { 10, 13, 2}, { 10, 13, 5}, { 10, 13, 9}, -+ { 10, 13, 17}, { 10, 13, 19}, { 10, 13, 23}, { 10, 18, 1}, -+ { 10, 19, 1}, { 10, 19, 23}, { 10, 20, 1}, { 10, 20, 2}, -+ { 10, 20, 5}, { 10, 20, 9}, { 10, 20, 17}, { 10, 20, 21}, -+ { 10, 20, 23}, { 10, 26, 1}, { 10, 26, 23}, { 10, 27, 1}, -+ { 10, 27, 5}, { 10, 27, 9}, { 10, 27, 17}, { 10, 27, 19}, -+ { 10, 29, 1}, { 10, 29, 2}, { 10, 29, 5}, { 10, 29, 9}, -+ { 10, 29, 17}, { 10, 29, 19}, { 10, 29, 21}, { 10, 29, 23}, -+ { 11, 3, 1}, { 11, 3, 2}, { 11, 3, 4}, { 11, 3, 5}, -+ { 11, 3, 8}, { 11, 3, 9}, { 11, 3, 10}, { 11, 3, 11}, -+ { 11, 3, 17}, { 11, 3, 19}, { 11, 3, 21}, { 11, 3, 22}, -+ { 11, 3, 23}, { 11, 3, 27}, { 11, 4, 1}, { 11, 4, 2}, -+ { 11, 4, 5}, { 11, 4, 9}, { 11, 4, 17}, { 11, 4, 19}, -+ { 11, 4, 21}, { 11, 4, 22}, { 11, 4, 23}, { 11, 5, 1}, -+ { 11, 5, 2}, { 11, 5, 5}, { 11, 5, 9}, { 11, 5, 17}, -+ { 11, 5, 19}, { 11, 5, 21}, { 11, 5, 23}, { 11, 6, 1}, -+ { 11, 6, 5}, { 11, 6, 9}, { 11, 6, 17}, { 11, 6, 23}, -+ { 11, 7, 1}, { 11, 7, 2}, { 11, 7, 3}, { 11, 7, 4}, -+ { 11, 7, 5}, { 11, 7, 8}, { 11, 7, 9}, { 11, 7, 11}, -+ { 11, 7, 12}, { 11, 7, 17}, { 11, 7, 19}, { 11, 7, 21}, -+ { 11, 7, 22}, { 11, 7, 23}, { 11, 7, 28}, { 11, 10, 1}, -+ { 11, 10, 2}, { 11, 10, 5}, { 11, 10, 9}, { 11, 10, 17}, -+ { 11, 10, 19}, { 11, 10, 21}, { 11, 10, 22}, { 11, 10, 23}, -+ { 11, 11, 1}, { 11, 11, 2}, { 11, 11, 5}, { 11, 11, 9}, -+ { 11, 11, 17}, { 11, 11, 19}, { 11, 11, 21}, { 11, 11, 22}, -+ { 11, 11, 23}, { 11, 12, 1}, { 11, 12, 5}, { 11, 12, 9}, -+ { 11, 12, 23}, { 11, 13, 1}, { 11, 13, 2}, { 11, 13, 3}, -+ { 11, 13, 5}, { 11, 13, 9}, { 11, 13, 11}, { 11, 13, 17}, -+ { 11, 13, 19}, { 11, 13, 21}, { 11, 13, 23}, { 11, 13, 27}, -+ { 11, 14, 1}, { 11, 14, 2}, { 11, 14, 5}, { 11, 14, 9}, -+ { 11, 14, 23}, { 11, 15, 1}, { 11, 15, 5}, { 11, 15, 9}, -+ { 11, 15, 17}, { 11, 15, 21}, { 11, 15, 22}, { 11, 18, 1}, -+ { 11, 18, 5}, { 11, 18, 9}, { 11, 18, 17}, { 11, 18, 19}, -+ { 11, 18, 21}, { 11, 19, 1}, { 11, 19, 2}, { 11, 19, 5}, -+ { 11, 19, 9}, { 11, 19, 17}, { 11, 19, 19}, { 11, 19, 21}, -+ { 11, 19, 23}, { 11, 20, 1}, { 11, 20, 2}, { 11, 20, 5}, -+ { 11, 20, 8}, { 11, 20, 9}, { 11, 20, 17}, { 11, 20, 19}, -+ { 11, 20, 21}, { 11, 20, 23}, { 11, 20, 25}, { 11, 20, 27}, -+ { 11, 20, 28}, { 11, 21, 1}, { 11, 21, 22}, { 11, 22, 1}, -+ { 11, 22, 2}, { 11, 22, 5}, { 11, 22, 9}, { 11, 22, 17}, -+ { 11, 22, 23}, { 11, 23, 1}, { 11, 23, 2}, { 11, 23, 5}, -+ { 11, 23, 9}, { 11, 23, 17}, { 11, 23, 19}, { 11, 23, 21}, -+ { 11, 23, 23}, { 11, 26, 1}, { 11, 26, 2}, { 11, 26, 9}, -+ { 11, 26, 17}, { 11, 26, 21}, { 11, 26, 23}, { 11, 27, 1}, -+ { 11, 27, 2}, { 11, 27, 5}, { 11, 27, 9}, { 11, 27, 10}, -+ { 11, 27, 17}, { 11, 27, 19}, { 11, 27, 21}, { 11, 27, 23}, -+ { 11, 29, 1}, { 11, 29, 2}, { 11, 29, 5}, { 11, 29, 8}, -+ { 11, 29, 9}, { 11, 29, 16}, { 11, 29, 17}, { 11, 29, 19}, -+ { 11, 29, 21}, { 11, 29, 23}, { 11, 29, 28}, { 12, 3, 1}, -+ { 12, 3, 2}, { 12, 3, 4}, { 12, 3, 5}, { 12, 3, 9}, -+ { 12, 3, 17}, { 12, 3, 19}, { 12, 3, 22}, { 12, 3, 23}, -+ { 12, 3, 29}, { 12, 4, 1}, { 12, 4, 2}, { 12, 4, 5}, -+ { 12, 4, 9}, { 12, 4, 17}, { 12, 4, 19}, { 12, 4, 22}, -+ { 12, 4, 23}, { 12, 5, 23}, { 12, 7, 1}, { 12, 7, 2}, -+ { 12, 7, 5}, { 12, 7, 9}, { 12, 7, 11}, { 12, 7, 17}, -+ { 12, 7, 19}, { 12, 7, 22}, { 12, 7, 23}, { 12, 10, 1}, -+ { 12, 10, 5}, { 12, 10, 9}, { 12, 12, 5}, { 12, 13, 1}, -+ { 12, 13, 2}, { 12, 13, 5}, { 12, 13, 8}, { 12, 13, 9}, -+ { 12, 13, 11}, { 12, 13, 17}, { 12, 13, 19}, { 12, 13, 23}, -+ { 12, 14, 1}, { 12, 14, 2}, { 12, 14, 5}, { 12, 14, 22}, -+ { 12, 15, 1}, { 12, 15, 22}, { 12, 18, 1}, { 12, 18, 5}, -+ { 12, 18, 9}, { 12, 18, 17}, { 12, 18, 19}, { 12, 19, 1}, -+ { 12, 20, 1}, { 12, 20, 2}, { 12, 20, 5}, { 12, 20, 9}, -+ { 12, 20, 17}, { 12, 20, 19}, { 12, 20, 23}, { 12, 21, 1}, -+ { 12, 21, 22}, { 12, 22, 1}, { 12, 23, 1}, { 12, 23, 5}, -+ { 12, 26, 23}, { 12, 27, 1}, { 12, 27, 2}, { 12, 27, 5}, -+ { 12, 27, 9}, { 12, 27, 11}, { 12, 27, 16}, { 12, 27, 17}, -+ { 12, 27, 19}, { 12, 28, 1}, { 12, 28, 5}, { 12, 28, 9}, -+ { 12, 28, 17}, { 12, 29, 1}, { 12, 29, 2}, { 12, 29, 5}, -+ { 12, 29, 9}, { 12, 29, 17}, { 12, 29, 19}, { 12, 29, 21}, -+ { 12, 29, 23}, { 13, 3, 1}, { 13, 3, 2}, { 13, 3, 5}, -+ { 13, 3, 6}, { 13, 3, 7}, { 13, 3, 9}, { 13, 3, 10}, -+ { 13, 3, 11}, { 13, 3, 16}, { 13, 3, 17}, { 13, 3, 19}, -+ { 13, 3, 21}, { 13, 3, 22}, { 13, 3, 23}, { 13, 3, 27}, -+ { 13, 3, 28}, { 13, 4, 1}, { 13, 4, 2}, { 13, 4, 5}, -+ { 13, 4, 9}, { 13, 4, 17}, { 13, 4, 19}, { 13, 4, 21}, -+ { 13, 4, 22}, { 13, 4, 23}, { 13, 5, 1}, { 13, 5, 2}, -+ { 13, 5, 5}, { 13, 5, 9}, { 13, 5, 12}, { 13, 5, 17}, -+ { 13, 5, 19}, { 13, 5, 21}, { 13, 5, 23}, { 13, 5, 27}, -+ { 13, 5, 29}, { 13, 6, 1}, { 13, 6, 5}, { 13, 6, 9}, -+ { 13, 6, 19}, { 13, 7, 1}, { 13, 7, 2}, { 13, 7, 5}, -+ { 13, 7, 6}, { 13, 7, 8}, { 13, 7, 9}, { 13, 7, 10}, -+ { 13, 7, 11}, { 13, 7, 17}, { 13, 7, 19}, { 13, 7, 20}, -+ { 13, 7, 21}, { 13, 7, 22}, { 13, 7, 23}, { 13, 7, 24}, -+ { 13, 7, 26}, { 13, 7, 28}, { 13, 10, 1}, { 13, 10, 2}, -+ { 13, 10, 5}, { 13, 10, 9}, { 13, 10, 17}, { 13, 10, 19}, -+ { 13, 10, 21}, { 13, 10, 23}, { 13, 11, 1}, { 13, 11, 2}, -+ { 13, 11, 3}, { 13, 11, 5}, { 13, 11, 9}, { 13, 11, 11}, -+ { 13, 11, 12}, { 13, 11, 17}, { 13, 11, 19}, { 13, 11, 20}, -+ { 13, 11, 21}, { 13, 11, 22}, { 13, 11, 23}, { 13, 11, 27}, -+ { 13, 11, 28}, { 13, 11, 29}, { 13, 12, 1}, { 13, 12, 5}, -+ { 13, 12, 9}, { 13, 12, 17}, { 13, 12, 19}, { 13, 12, 21}, -+ { 13, 12, 22}, { 13, 13, 1}, { 13, 13, 2}, { 13, 13, 5}, -+ { 13, 13, 9}, { 13, 13, 10}, { 13, 13, 11}, { 13, 13, 13}, -+ { 13, 13, 16}, { 13, 13, 17}, { 13, 13, 19}, { 13, 13, 21}, -+ { 13, 13, 23}, { 13, 13, 25}, { 13, 14, 1}, { 13, 14, 2}, -+ { 13, 14, 5}, { 13, 14, 9}, { 13, 14, 17}, { 13, 14, 19}, -+ { 13, 14, 21}, { 13, 14, 22}, { 13, 14, 23}, { 13, 15, 1}, -+ { 13, 15, 2}, { 13, 15, 5}, { 13, 15, 17}, { 13, 15, 21}, -+ { 13, 15, 23}, { 13, 18, 1}, { 13, 18, 2}, { 13, 18, 5}, -+ { 13, 18, 9}, { 13, 18, 17}, { 13, 18, 19}, { 13, 18, 21}, -+ { 13, 18, 23}, { 13, 19, 1}, { 13, 19, 2}, { 13, 19, 5}, -+ { 13, 19, 9}, { 13, 19, 17}, { 13, 19, 19}, { 13, 19, 21}, -+ { 13, 19, 23}, { 13, 20, 1}, { 13, 20, 2}, { 13, 20, 5}, -+ { 13, 20, 9}, { 13, 20, 10}, { 13, 20, 11}, { 13, 20, 17}, -+ { 13, 20, 19}, { 13, 20, 21}, { 13, 20, 23}, { 13, 21, 1}, -+ { 13, 21, 2}, { 13, 21, 5}, { 13, 21, 9}, { 13, 21, 17}, -+ { 13, 21, 19}, { 13, 21, 22}, { 13, 21, 23}, { 13, 22, 1}, -+ { 13, 22, 2}, { 13, 22, 5}, { 13, 22, 9}, { 13, 22, 17}, -+ { 13, 22, 19}, { 13, 22, 23}, { 13, 23, 1}, { 13, 23, 2}, -+ { 13, 23, 5}, { 13, 23, 9}, { 13, 23, 17}, { 13, 23, 19}, -+ { 13, 23, 21}, { 13, 23, 23}, { 13, 26, 1}, { 13, 26, 2}, -+ { 13, 26, 5}, { 13, 26, 9}, { 13, 26, 17}, { 13, 26, 19}, -+ { 13, 26, 21}, { 13, 26, 23}, { 13, 26, 25}, { 13, 27, 1}, -+ { 13, 27, 2}, { 13, 27, 5}, { 13, 27, 9}, { 13, 27, 15}, -+ { 13, 27, 17}, { 13, 27, 19}, { 13, 27, 21}, { 13, 27, 23}, -+ { 13, 27, 24}, { 13, 27, 25}, { 13, 27, 26}, { 13, 27, 27}, -+ { 13, 27, 28}, { 13, 27, 29}, { 13, 28, 1}, { 13, 28, 5}, -+ { 13, 28, 9}, { 13, 28, 17}, { 13, 28, 21}, { 13, 29, 1}, -+ { 13, 29, 2}, { 13, 29, 5}, { 13, 29, 9}, { 13, 29, 10}, -+ { 13, 29, 11}, { 13, 29, 16}, { 13, 29, 17}, { 13, 29, 19}, -+ { 13, 29, 21}, { 13, 29, 22}, { 13, 29, 23}, { 13, 29, 24}, -+ { 13, 29, 28}, { 14, 3, 1}, { 14, 3, 2}, { 14, 3, 5}, -+ { 14, 3, 7}, { 14, 3, 8}, { 14, 3, 9}, { 14, 3, 11}, -+ { 14, 3, 17}, { 14, 3, 19}, { 14, 3, 21}, { 14, 3, 22}, -+ { 14, 3, 23}, { 14, 3, 24}, { 14, 4, 1}, { 14, 4, 2}, -+ { 14, 4, 5}, { 14, 4, 9}, { 14, 4, 17}, { 14, 4, 19}, -+ { 14, 4, 21}, { 14, 4, 22}, { 14, 4, 23}, { 14, 5, 1}, -+ { 14, 5, 2}, { 14, 5, 5}, { 14, 5, 7}, { 14, 5, 9}, -+ { 14, 5, 17}, { 14, 5, 23}, { 14, 6, 1}, { 14, 6, 5}, -+ { 14, 6, 9}, { 14, 7, 1}, { 14, 7, 2}, { 14, 7, 5}, -+ { 14, 7, 9}, { 14, 7, 11}, { 14, 7, 17}, { 14, 7, 19}, -+ { 14, 7, 21}, { 14, 7, 23}, { 14, 7, 24}, { 14, 10, 1}, -+ { 14, 10, 2}, { 14, 10, 5}, { 14, 10, 9}, { 14, 10, 17}, -+ { 14, 10, 19}, { 14, 10, 21}, { 14, 10, 23}, { 14, 11, 1}, -+ { 14, 11, 5}, { 14, 11, 9}, { 14, 11, 17}, { 14, 11, 19}, -+ { 14, 11, 22}, { 14, 11, 23}, { 14, 12, 1}, { 14, 13, 1}, -+ { 14, 13, 2}, { 14, 13, 5}, { 14, 13, 9}, { 14, 13, 11}, -+ { 14, 13, 17}, { 14, 13, 19}, { 14, 13, 21}, { 14, 13, 23}, -+ { 14, 13, 24}, { 14, 13, 25}, { 14, 13, 29}, { 14, 14, 1}, -+ { 14, 14, 2}, { 14, 14, 9}, { 14, 14, 19}, { 14, 14, 21}, -+ { 14, 14, 23}, { 14, 15, 1}, { 14, 15, 22}, { 14, 15, 23}, -+ { 14, 18, 1}, { 14, 18, 5}, { 14, 18, 9}, { 14, 18, 17}, -+ { 14, 18, 19}, { 14, 18, 21}, { 14, 18, 23}, { 14, 19, 1}, -+ { 14, 19, 2}, { 14, 19, 5}, { 14, 19, 23}, { 14, 20, 1}, -+ { 14, 20, 2}, { 14, 20, 5}, { 14, 20, 9}, { 14, 20, 10}, -+ { 14, 20, 11}, { 14, 20, 17}, { 14, 20, 19}, { 14, 20, 21}, -+ { 14, 20, 23}, { 14, 21, 1}, { 14, 21, 22}, { 14, 22, 1}, -+ { 14, 23, 1}, { 14, 23, 2}, { 14, 23, 5}, { 14, 23, 9}, -+ { 14, 23, 17}, { 14, 23, 19}, { 14, 23, 21}, { 14, 26, 1}, -+ { 14, 26, 5}, { 14, 26, 9}, { 14, 26, 17}, { 14, 27, 1}, -+ { 14, 27, 2}, { 14, 27, 5}, { 14, 27, 9}, { 14, 27, 17}, -+ { 14, 27, 19}, { 14, 27, 21}, { 14, 27, 23}, { 14, 29, 1}, -+ { 14, 29, 2}, { 14, 29, 5}, { 14, 29, 8}, { 14, 29, 9}, -+ { 14, 29, 11}, { 14, 29, 17}, { 14, 29, 19}, { 14, 29, 21}, -+ { 14, 29, 23}, { 14, 29, 24}, { 14, 29, 27}, { 14, 29, 28}, -+ { 15, 3, 1}, { 15, 3, 2}, { 15, 3, 5}, { 15, 3, 7}, -+ { 15, 3, 9}, { 15, 3, 12}, { 15, 3, 17}, { 15, 3, 19}, -+ { 15, 3, 21}, { 15, 3, 22}, { 15, 3, 23}, { 15, 4, 1}, -+ { 15, 4, 2}, { 15, 4, 5}, { 15, 4, 9}, { 15, 4, 17}, -+ { 15, 4, 19}, { 15, 4, 21}, { 15, 4, 22}, { 15, 4, 23}, -+ { 15, 5, 1}, { 15, 5, 5}, { 15, 5, 23}, { 15, 7, 1}, -+ { 15, 7, 2}, { 15, 7, 5}, { 15, 7, 9}, { 15, 7, 17}, -+ { 15, 7, 19}, { 15, 7, 21}, { 15, 7, 22}, { 15, 7, 23}, -+ { 15, 10, 1}, { 15, 10, 23}, { 15, 11, 1}, { 15, 11, 22}, -+ { 15, 13, 1}, { 15, 13, 2}, { 15, 13, 5}, { 15, 13, 9}, -+ { 15, 13, 17}, { 15, 13, 19}, { 15, 13, 21}, { 15, 13, 23}, -+ { 15, 13, 25}, { 15, 14, 1}, { 15, 14, 2}, { 15, 14, 9}, -+ { 15, 14, 22}, { 15, 15, 1}, { 15, 15, 22}, { 15, 18, 1}, -+ { 15, 18, 5}, { 15, 18, 9}, { 15, 18, 17}, { 15, 18, 19}, -+ { 15, 19, 23}, { 15, 20, 1}, { 15, 20, 2}, { 15, 20, 5}, -+ { 15, 20, 9}, { 15, 20, 17}, { 15, 20, 19}, { 15, 20, 23}, -+ { 15, 21, 1}, { 15, 21, 22}, { 15, 21, 23}, { 15, 23, 1}, -+ { 15, 26, 1}, { 15, 27, 1}, { 15, 27, 17}, { 15, 27, 21}, -+ { 15, 27, 23}, { 15, 29, 1}, { 15, 29, 2}, { 15, 29, 5}, -+ { 15, 29, 9}, { 15, 29, 17}, { 15, 29, 19}, { 15, 29, 23}, -+ { 15, 29, 24}, { 15, 29, 29}, { 16, 3, 1}, { 16, 3, 2}, -+ { 16, 3, 5}, { 16, 3, 7}, { 16, 3, 9}, { 16, 3, 17}, -+ { 16, 3, 19}, { 16, 3, 21}, { 16, 3, 22}, { 16, 3, 23}, -+ { 16, 3, 24}, { 16, 4, 1}, { 16, 4, 2}, { 16, 4, 5}, -+ { 16, 4, 9}, { 16, 4, 17}, { 16, 4, 19}, { 16, 4, 21}, -+ { 16, 4, 22}, { 16, 4, 23}, { 16, 5, 1}, { 16, 5, 5}, -+ { 16, 5, 7}, { 16, 5, 9}, { 16, 5, 17}, { 16, 5, 23}, -+ { 16, 7, 1}, { 16, 7, 2}, { 16, 7, 5}, { 16, 7, 9}, -+ { 16, 7, 17}, { 16, 7, 19}, { 16, 7, 21}, { 16, 7, 22}, -+ { 16, 7, 23}, { 16, 10, 1}, { 16, 10, 2}, { 16, 10, 5}, -+ { 16, 10, 9}, { 16, 10, 17}, { 16, 10, 19}, { 16, 10, 21}, -+ { 16, 10, 23}, { 16, 11, 1}, { 16, 11, 5}, { 16, 11, 22}, -+ { 16, 12, 1}, { 16, 12, 5}, { 16, 12, 23}, { 16, 13, 1}, -+ { 16, 13, 2}, { 16, 13, 5}, { 16, 13, 9}, { 16, 13, 17}, -+ { 16, 13, 19}, { 16, 13, 21}, { 16, 13, 23}, { 16, 14, 1}, -+ { 16, 14, 5}, { 16, 14, 9}, { 16, 14, 23}, { 16, 18, 1}, -+ { 16, 18, 5}, { 16, 18, 9}, { 16, 18, 17}, { 16, 18, 19}, -+ { 16, 18, 21}, { 16, 18, 23}, { 16, 19, 1}, { 16, 19, 17}, -+ { 16, 20, 1}, { 16, 20, 2}, { 16, 20, 5}, { 16, 20, 9}, -+ { 16, 20, 17}, { 16, 20, 19}, { 16, 20, 21}, { 16, 20, 23}, -+ { 16, 21, 1}, { 16, 21, 22}, { 16, 22, 1}, { 16, 22, 5}, -+ { 16, 23, 1}, { 16, 23, 5}, { 16, 23, 9}, { 16, 23, 17}, -+ { 16, 23, 19}, { 16, 23, 21}, { 16, 23, 23}, { 16, 26, 1}, -+ { 16, 26, 5}, { 16, 26, 9}, { 16, 26, 17}, { 16, 26, 23}, -+ { 16, 27, 1}, { 16, 27, 2}, { 16, 27, 5}, { 16, 27, 9}, -+ { 16, 27, 17}, { 16, 27, 19}, { 16, 27, 21}, { 16, 27, 23}, -+ { 16, 29, 1}, { 16, 29, 2}, { 16, 29, 5}, { 16, 29, 8}, -+ { 16, 29, 9}, { 16, 29, 10}, { 16, 29, 17}, { 16, 29, 19}, -+ { 16, 29, 21}, { 16, 29, 23}, { 17, 3, 1}, { 17, 3, 2}, -+ { 17, 3, 5}, { 17, 3, 9}, { 17, 3, 17}, { 17, 3, 19}, -+ { 17, 3, 21}, { 17, 3, 23}, { 17, 4, 1}, { 17, 4, 2}, -+ { 17, 4, 5}, { 17, 4, 9}, { 17, 4, 17}, { 17, 4, 19}, -+ { 17, 4, 21}, { 17, 4, 22}, { 17, 4, 23}, { 17, 5, 1}, -+ { 17, 5, 2}, { 17, 5, 23}, { 17, 7, 1}, { 17, 7, 2}, -+ { 17, 7, 5}, { 17, 7, 8}, { 17, 7, 9}, { 17, 7, 17}, -+ { 17, 7, 19}, { 17, 7, 21}, { 17, 7, 22}, { 17, 7, 23}, -+ { 17, 10, 1}, { 17, 10, 2}, { 17, 10, 5}, { 17, 10, 9}, -+ { 17, 10, 17}, { 17, 10, 19}, { 17, 10, 21}, { 17, 10, 23}, -+ { 17, 11, 1}, { 17, 11, 5}, { 17, 11, 9}, { 17, 11, 17}, -+ { 17, 11, 19}, { 17, 11, 21}, { 17, 11, 22}, { 17, 11, 23}, -+ { 17, 12, 1}, { 17, 13, 1}, { 17, 13, 2}, { 17, 13, 5}, -+ { 17, 13, 9}, { 17, 13, 17}, { 17, 13, 19}, { 17, 13, 21}, -+ { 17, 13, 23}, { 17, 14, 1}, { 17, 14, 2}, { 17, 14, 5}, -+ { 17, 14, 9}, { 17, 14, 17}, { 17, 14, 23}, { 17, 15, 1}, -+ { 17, 15, 23}, { 17, 18, 1}, { 17, 18, 9}, { 17, 19, 1}, -+ { 17, 20, 1}, { 17, 20, 2}, { 17, 20, 5}, { 17, 20, 9}, -+ { 17, 20, 17}, { 17, 20, 19}, { 17, 20, 21}, { 17, 20, 23}, -+ { 17, 21, 1}, { 17, 21, 5}, { 17, 21, 9}, { 17, 21, 23}, -+ { 17, 22, 1}, { 17, 22, 23}, { 17, 23, 1}, { 17, 23, 2}, -+ { 17, 23, 5}, { 17, 23, 9}, { 17, 23, 17}, { 17, 23, 19}, -+ { 17, 23, 21}, { 17, 23, 23}, { 17, 26, 1}, { 17, 26, 5}, -+ { 17, 26, 9}, { 17, 26, 17}, { 17, 27, 1}, { 17, 27, 2}, -+ { 17, 27, 5}, { 17, 27, 9}, { 17, 27, 17}, { 17, 27, 19}, -+ { 17, 27, 23}, { 17, 29, 1}, { 17, 29, 2}, { 17, 29, 5}, -+ { 17, 29, 9}, { 17, 29, 17}, { 17, 29, 19}, { 17, 29, 21}, -+ { 17, 29, 23}, { 18, 3, 1}, { 18, 3, 2}, { 18, 3, 5}, -+ { 18, 3, 9}, { 18, 3, 10}, { 18, 3, 17}, { 18, 3, 19}, -+ { 18, 3, 21}, { 18, 3, 22}, { 18, 3, 23}, { 18, 4, 1}, -+ { 18, 4, 2}, { 18, 4, 5}, { 18, 4, 9}, { 18, 4, 17}, -+ { 18, 4, 19}, { 18, 4, 21}, { 18, 4, 22}, { 18, 4, 23}, -+ { 18, 5, 1}, { 18, 5, 23}, { 18, 7, 1}, { 18, 7, 2}, -+ { 18, 7, 5}, { 18, 7, 9}, { 18, 7, 11}, { 18, 7, 17}, -+ { 18, 7, 19}, { 18, 7, 21}, { 18, 7, 22}, { 18, 7, 23}, -+ { 18, 10, 1}, { 18, 10, 2}, { 18, 10, 5}, { 18, 10, 9}, -+ { 18, 10, 17}, { 18, 10, 19}, { 18, 10, 21}, { 18, 10, 23}, -+ { 18, 11, 1}, { 18, 11, 5}, { 18, 11, 22}, { 18, 12, 1}, -+ { 18, 12, 5}, { 18, 13, 1}, { 18, 13, 2}, { 18, 13, 5}, -+ { 18, 13, 9}, { 18, 13, 17}, { 18, 13, 19}, { 18, 13, 21}, -+ { 18, 13, 23}, { 18, 13, 28}, { 18, 14, 1}, { 18, 14, 5}, -+ { 18, 15, 1}, { 18, 18, 1}, { 18, 18, 5}, { 18, 18, 21}, -+ { 18, 18, 23}, { 18, 19, 1}, { 18, 20, 1}, { 18, 20, 2}, -+ { 18, 20, 5}, { 18, 20, 9}, { 18, 20, 17}, { 18, 20, 19}, -+ { 18, 20, 21}, { 18, 20, 23}, { 18, 21, 1}, { 18, 21, 22}, -+ { 18, 22, 1}, { 18, 23, 1}, { 18, 23, 2}, { 18, 23, 5}, -+ { 18, 23, 9}, { 18, 23, 17}, { 18, 23, 19}, { 18, 23, 23}, -+ { 18, 26, 1}, { 18, 26, 5}, { 18, 26, 9}, { 18, 26, 17}, -+ { 18, 26, 23}, { 18, 27, 1}, { 18, 27, 2}, { 18, 27, 5}, -+ { 18, 27, 8}, { 18, 27, 9}, { 18, 27, 11}, { 18, 27, 17}, -+ { 18, 27, 19}, { 18, 27, 21}, { 18, 28, 1}, { 18, 28, 5}, -+ { 18, 28, 9}, { 18, 28, 17}, { 18, 28, 19}, { 18, 29, 1}, -+ { 18, 29, 2}, { 18, 29, 5}, { 18, 29, 9}, { 18, 29, 17}, -+ { 18, 29, 19}, { 18, 29, 21}, { 18, 29, 23}, { 19, 3, 1}, -+ { 19, 3, 2}, { 19, 3, 3}, { 19, 3, 5}, { 19, 3, 9}, -+ { 19, 3, 11}, { 19, 3, 17}, { 19, 3, 19}, { 19, 3, 21}, -+ { 19, 3, 22}, { 19, 3, 23}, { 19, 3, 27}, { 19, 4, 1}, -+ { 19, 4, 2}, { 19, 4, 5}, { 19, 4, 9}, { 19, 4, 17}, -+ { 19, 4, 19}, { 19, 4, 21}, { 19, 4, 22}, { 19, 4, 23}, -+ { 19, 5, 1}, { 19, 5, 2}, { 19, 7, 1}, { 19, 7, 2}, -+ { 19, 7, 5}, { 19, 7, 9}, { 19, 7, 17}, { 19, 7, 19}, -+ { 19, 7, 21}, { 19, 7, 22}, { 19, 7, 23}, { 19, 10, 1}, -+ { 19, 10, 2}, { 19, 10, 5}, { 19, 10, 9}, { 19, 10, 17}, -+ { 19, 10, 19}, { 19, 10, 21}, { 19, 10, 23}, { 19, 11, 1}, -+ { 19, 11, 5}, { 19, 11, 9}, { 19, 11, 17}, { 19, 11, 19}, -+ { 19, 11, 22}, { 19, 11, 23}, { 19, 12, 1}, { 19, 12, 9}, -+ { 19, 12, 19}, { 19, 12, 21}, { 19, 13, 1}, { 19, 13, 2}, -+ { 19, 13, 5}, { 19, 13, 9}, { 19, 13, 17}, { 19, 13, 19}, -+ { 19, 13, 21}, { 19, 13, 23}, { 19, 14, 1}, { 19, 14, 23}, -+ { 19, 18, 1}, { 19, 18, 5}, { 19, 19, 1}, { 19, 19, 5}, -+ { 19, 19, 9}, { 19, 19, 19}, { 19, 19, 21}, { 19, 20, 1}, -+ { 19, 20, 2}, { 19, 20, 5}, { 19, 20, 8}, { 19, 20, 9}, -+ { 19, 20, 11}, { 19, 20, 17}, { 19, 20, 19}, { 19, 20, 21}, -+ { 19, 20, 23}, { 19, 21, 1}, { 19, 21, 23}, { 19, 23, 1}, -+ { 19, 23, 5}, { 19, 23, 9}, { 19, 23, 17}, { 19, 23, 21}, -+ { 19, 26, 1}, { 19, 26, 5}, { 19, 26, 9}, { 19, 26, 17}, -+ { 19, 26, 21}, { 19, 26, 23}, { 19, 27, 1}, { 19, 27, 5}, -+ { 19, 27, 9}, { 19, 27, 17}, { 19, 27, 19}, { 19, 27, 21}, -+ { 19, 29, 1}, { 19, 29, 2}, { 19, 29, 5}, { 19, 29, 9}, -+ { 19, 29, 17}, { 19, 29, 19}, { 19, 29, 21}, { 19, 29, 23}, -+ { 20, 3, 1}, { 20, 3, 2}, { 20, 3, 5}, { 20, 3, 9}, -+ { 20, 3, 14}, { 20, 3, 17}, { 20, 3, 19}, { 20, 3, 21}, -+ { 20, 3, 23}, { 20, 4, 1}, { 20, 4, 2}, { 20, 4, 5}, -+ { 20, 4, 9}, { 20, 4, 17}, { 20, 4, 19}, { 20, 4, 21}, -+ { 20, 4, 22}, { 20, 4, 23}, { 20, 5, 1}, { 20, 5, 23}, -+ { 20, 7, 1}, { 20, 7, 2}, { 20, 7, 5}, { 20, 7, 9}, -+ { 20, 7, 11}, { 20, 7, 17}, { 20, 7, 19}, { 20, 7, 21}, -+ { 20, 7, 23}, { 20, 10, 1}, { 20, 10, 2}, { 20, 10, 5}, -+ { 20, 10, 9}, { 20, 10, 17}, { 20, 10, 19}, { 20, 10, 21}, -+ { 20, 10, 23}, { 20, 11, 1}, { 20, 11, 2}, { 20, 11, 5}, -+ { 20, 11, 9}, { 20, 11, 17}, { 20, 11, 19}, { 20, 11, 21}, -+ { 20, 11, 22}, { 20, 11, 23}, { 20, 12, 1}, { 20, 12, 5}, -+ { 20, 12, 9}, { 20, 12, 19}, { 20, 13, 1}, { 20, 13, 2}, -+ { 20, 13, 5}, { 20, 13, 9}, { 20, 13, 14}, { 20, 13, 17}, -+ { 20, 13, 19}, { 20, 13, 21}, { 20, 13, 23}, { 20, 13, 27}, -+ { 20, 14, 1}, { 20, 14, 2}, { 20, 14, 5}, { 20, 14, 9}, -+ { 20, 14, 21}, { 20, 14, 23}, { 20, 15, 1}, { 20, 15, 2}, -+ { 20, 15, 5}, { 20, 15, 21}, { 20, 15, 23}, { 20, 18, 1}, -+ { 20, 18, 2}, { 20, 18, 5}, { 20, 18, 9}, { 20, 18, 19}, -+ { 20, 18, 21}, { 20, 18, 23}, { 20, 19, 1}, { 20, 19, 5}, -+ { 20, 19, 9}, { 20, 19, 19}, { 20, 19, 21}, { 20, 20, 1}, -+ { 20, 20, 2}, { 20, 20, 5}, { 20, 20, 9}, { 20, 20, 14}, -+ { 20, 20, 17}, { 20, 20, 21}, { 20, 20, 23}, { 20, 21, 1}, -+ { 20, 21, 5}, { 20, 21, 9}, { 20, 21, 17}, { 20, 21, 23}, -+ { 20, 22, 1}, { 20, 22, 2}, { 20, 22, 5}, { 20, 22, 9}, -+ { 20, 22, 23}, { 20, 23, 1}, { 20, 23, 2}, { 20, 23, 5}, -+ { 20, 23, 9}, { 20, 23, 17}, { 20, 23, 19}, { 20, 23, 21}, -+ { 20, 23, 23}, { 20, 26, 1}, { 20, 26, 2}, { 20, 26, 5}, -+ { 20, 26, 9}, { 20, 26, 17}, { 20, 26, 21}, { 20, 26, 23}, -+ { 20, 27, 1}, { 20, 27, 2}, { 20, 27, 5}, { 20, 27, 7}, -+ { 20, 27, 8}, { 20, 27, 9}, { 20, 27, 10}, { 20, 27, 17}, -+ { 20, 27, 19}, { 20, 27, 21}, { 20, 27, 23}, { 20, 27, 27}, -+ { 20, 28, 1}, { 20, 28, 5}, { 20, 28, 9}, { 20, 28, 17}, -+ { 20, 28, 19}, { 20, 28, 23}, { 20, 29, 1}, { 20, 29, 2}, -+ { 20, 29, 5}, { 20, 29, 9}, { 20, 29, 17}, { 20, 29, 19}, -+ { 20, 29, 21}, { 20, 29, 23}, -+}; -+ -+ -+static const unsigned short ks_table2[][4] = -+{ -+ {0xa4bf, 1, 3, 1}, {0xa4c0, 1, 4, 1}, -+ {0xa4c1, 1, 5, 1}, {0xa4c2, 1, 6, 1}, -+ {0xa4c3, 1, 7, 1}, {0xa4c4, 1, 10, 1}, -+ {0xa4c5, 1, 11, 1}, {0xa4c6, 1, 12, 1}, -+ {0xa4c7, 1, 13, 1}, {0xa4c8, 1, 14, 1}, -+ {0xa4c9, 1, 15, 1}, {0xa4ca, 1, 18, 1}, -+ {0xa4cb, 1, 19, 1}, {0xa4cc, 1, 20, 1}, -+ {0xa4cd, 1, 21, 1}, {0xa4ce, 1, 22, 1}, -+ {0xa4cf, 1, 23, 1}, {0xa4d0, 1, 26, 1}, -+ {0xa4d1, 1, 27, 1}, {0xa4d2, 1, 28, 1}, -+ {0xa4d3, 1, 29, 1}, {0xa4a1, 2, 2, 1}, -+ {0xa4a2, 3, 2, 1}, {0xa4a4, 4, 2, 1}, -+ {0xa4a7, 5, 2, 1}, {0xa4a8, 6, 2, 1}, -+ {0xa4a9, 7, 2, 1}, {0xa4b1, 8, 2, 1}, -+ {0xa4b2, 9, 2, 1}, {0xa4b3, 10, 2, 1}, -+ {0xa4b5, 11, 2, 1}, {0xa4b6, 12, 2, 1}, -+ {0xa4b7, 13, 2, 1}, {0xa4b8, 14, 2, 1}, -+ {0xa4b9, 15, 2, 1}, {0xa4ba, 16, 2, 1}, -+ {0xa4bb, 17, 2, 1}, {0xa4bc, 18, 2, 1}, -+ {0xa4bd, 19, 2, 1}, {0xa4be, 20, 2, 1}, -+}; -+ -+/* Á¶ÇÕÇü Ãʼº - ¿Ï¼ºÇü ³¹ÀÚ º¯È¯ -+ * conversion: initial sound of compound type - ??? of completion type -+ */ -+ -+static const char_u johab_fcon_to_wan[] = -+{ -+ 0, -+ 0xd4, 0xa1, 0xa2, 0xa4, 0xa7, /* (ä¿ò),¤¡,¤¢,¤¤,¤§ */ -+ 0xa8, 0xa9, 0xb1, 0xb2, 0xb3, /* ¤¨,¤©,¤±,¤²,¤³ */ -+ 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* ¤µ,¤¶,¤·,¤¸,¤¹ */ -+ 0xba, 0xbb, 0xbc, 0xbd, 0xbe /* ¤º,¤»,¤¼,¤½,¤¾ */ -+}; -+ -+/* Á¶ÇÕÇü Áß¼º -> ¿Ï¼ºÇü ³¹ÀÚ º¯È¯ -+ * conversion: medial vowel of compound type - ??? of completion type -+ */ -+ -+static const char_u johab_vow_to_wan[] = -+{ -+ 0, 0, -+ 0xd4, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, /* (ä¿ò),¤¿,¤À,¤Á,¤Â,¤Ã */ -+ 0, 0, -+ 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* ¤Ä,¤Å,¤Æ,¤Ç,¤Ç¤¿,¤Ç¤À */ -+ 0, 0, -+ 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* ¤Ç¤Ó,¤Ë,¤Ì,¤Ì¤Ã,¤Ì¤Ä,¤Ì¤Ó */ -+ 0, 0, -+ 0xd0, 0xd1, 0xd2, 0xd3 /* ¤Ð,¤Ñ,¤Ñ¤Ó,¤Ó */ -+}; -+ -+/* Á¶ÇÕÇü Á¾¼º -> ¿Ï¼ºÇü ³¹ÀÚ º¯È¯ -+ * conversion: final consonant of compound type - ??? of completion type -+ */ -+ -+static const char_u johab_lcon_to_wan[] = -+{ -+ 0, -+ 0xd4, 0xa1, 0xa2, 0xa3, 0xa4, /* (ä¿ò), ¤¡, ¤¢, ¤¡¤µ, ¤¤ */ -+ 0xa5, 0xa6, 0xa7, 0xa9, 0xaa, /* ¤¤¤¸, ¤¤¤¾, ¤§, ¤©, ¤©¤¡ */ -+ 0xab, 0xac, 0xad, 0xae, 0xaf, /* ¤©¤±, ¤©¤², ¤©¤µ, ¤©¤¼, ¤©¤½ */ -+ 0xb0, 0xb1, 0, 0xb2, 0xb4, /* ¤©¤¾, ¤±, 0, ¤², ¤²¤µ */ -+ 0xb5, 0xb6, 0xb7, 0xb8, 0xba, /* ¤µ, ¤¶, ¤·, ¤¸, ¤º */ -+ 0xbb, 0xbc, 0xbd, 0xbe /* ¤», ¤¼, ¤½, ¤¾ */ -+}; -+ -+ static void -+convert_ks_to_3(src, fp, mp, lp) -+ const char_u *src; -+ int *fp; -+ int *mp; -+ int *lp; -+{ -+ int h = *src; -+ int low = *(src + 1); -+ int c; -+ int i; -+ -+ if ((i = han_index(h, low)) >= 0 -+ && i < sizeof(ks_table1)/sizeof(ks_table1[0])) -+ { -+ *fp = ks_table1[i][0]; -+ *mp = ks_table1[i][1]; -+ *lp = ks_table1[i][2]; -+ } -+ else -+ { -+ c = (h << 8) | low; -+ for (i = 0; i < 40; i++) -+ if (ks_table2[i][0] == c) -+ { -+ *fp = ks_table2[i][1]; -+ *mp = ks_table2[i][2]; -+ *lp = ks_table2[i][3]; -+ return; -+ } -+ *fp = 0xff; /* ±×·¡ÇÈ ÄÚµå (graphic code) */ -+ *mp = h; -+ *lp = low; -+ } -+} -+ -+ static int -+convert_3_to_ks(fv, mv, lv, des) -+ int fv; -+ int mv; -+ int lv; -+ char_u *des; -+{ -+ char_u key[3]; -+ register int hi, lo, mi = 0, result, found; -+ -+ if (fv == 0xff) -+ { -+ des[0] = mv; -+ des[1] = lv; -+ return 2; -+ } -+ key[0] = fv; -+ key[1] = mv; -+ key[2] = lv; -+ lo = 0; -+ hi = sizeof(ks_table1)/3 - 1; -+ found = 0; -+ while (lo + 1 < hi) -+ { -+ mi = (lo + hi)/2; -+ result = strncmp(ks_table1[mi], key, 3); -+ if (result == 0) -+ { -+ found = 1; -+ break; -+ } -+ else if (result > 0) -+ hi = mi; -+ else -+ lo = mi; -+ } -+ if (!found) -+ { -+ if (!strncmp(ks_table1[lo], key, 3)) -+ { -+ found = 1; -+ mi = lo; -+ } -+ if (!strncmp(ks_table1[hi], key, 3)) -+ { -+ found = 1; -+ mi = hi; -+ } -+ } -+ if (!found) -+ { -+ for (mi = 0; mi < 40; mi++) -+ if (ks_table2[mi][1] == fv && ks_table2[mi][2] == mv && -+ ks_table2[mi][3] == lv) -+ { -+ des[0] = (unsigned)(ks_table2[mi][0]) >> 8; -+ des[1] = ks_table2[mi][0]; -+ return 2; /* found */ -+ } -+ } -+ else -+ { -+ des[0] = mi / (0xff-0xa1) + 0xb0; -+ des[1] = mi % (0xff-0xa1) + 0xa1; -+ return 2; /* found */ -+ } -+ -+ /* ¿Ï¼ºÇü Ç¥¿¡ ¾ø´Ù. ``KS C 5601 - 1992 Á¤º¸ ±³È¯¿ë ºÎÈ£ Çؼ³'' -+ * 3.3 Àý¿¡ ¼³¸íµÈ ¹æ¹ýÀ¸·Î encoding ÇÑ´Ù. -+ */ -+ -+ *des++ = 0xa4; /* ä¿ò */ -+ *des++ = 0xd4; -+ *des++ = 0xa4; /* ³¹ÀÚ´Â ¸ðµÎ a4 Çà¿¡ ÀÖ´Ù. */ -+ *des++ = johab_fcon_to_wan[fv]; -+ *des++ = 0xa4; -+ *des++ = johab_vow_to_wan[mv]; -+ *des++ = 0xa4; -+ *des++ = johab_lcon_to_wan[lv]; -+ return 8; -+} -+#endif /* HANGUL_INPUT */ -diff -uNr Eterm-0.8.9.orig/src/hangulinput.h Eterm-0.8.9/src/hangulinput.h ---- src/hangulinput.h Thu Jan 1 09:00:00 1970 -+++ src/hangulinput.h Wed May 5 19:50:09 1999 -@@ -0,0 +1,15 @@ -+#ifndef __HANGULINPUT_H__ -+#define __HANGULINPUT_H__ -+ -+extern int composing_hangul; -+extern unsigned char composing_hangul_buffer[5]; -+extern unsigned char redraw_hangul_buffer[5]; -+ -+int hangul_input_state_get (void); -+void hangul_input_state_set (int state); -+void hangul_input_state_toggle (void); -+void hangul_keyboard_set (void); -+int hangul_input_process (unsigned char *s, int len); -+void hangul_input_clear (void); -+ -+#endif /* __HANGULINPUT_H__ */ -diff -uNr Eterm-0.8.9.orig/src/menubar.c Eterm-0.8.9/src/menubar.c ---- src/menubar.c Wed Apr 21 05:22:40 1999 -+++ src/menubar.c Wed May 5 19:52:02 1999 -@@ -2257,6 +2257,9 @@ - XmbDrawString(Xdisplay, menuBar.win, fontset, menubarGC, - Width2Pixel(x) + ((Arrows_x - Width2Pixel(x)) / 2 - (Width2Pixel(len) / 2)), - menuBar_height() - (TermWin.font->descent) + 1, title, len); -+#ifdef HANGUL_INPUT -+ XmbDrawString(Xdisplay, menuBar.win, fontset, menubarGC, Width2Pixel(x) + ((Arrows_x - Width2Pixel(x)) - (Width2Pixel(6))),menuBar_height() - (TermWin.font->descent) + 1, hangul_input_state_get()?"ÇѱÛ":"¿µ¾î", 4); -+#endif - } else - #endif - if (len > 0 && ncol >= 0) -diff -uNr Eterm-0.8.9.orig/src/screen.c Eterm-0.8.9/src/screen.c ---- src/screen.c Wed Apr 21 06:08:54 1999 -+++ src/screen.c Wed May 5 19:55:29 1999 -@@ -1857,6 +1857,56 @@ - # define MONO_BOLD(x) ((x) & (RS_Bold|RS_Blink)) - #endif - -+#ifdef HANGUL_INPUT -+#include "hangulinput.h" -+unsigned char redraw_hangul_buffer[5] = ""; -+void -+scr_write(int rel, char *s, int len) -+{ -+ int xpixel, ypixel; -+ int i; -+ XChar2b buf[10]; -+ long gcmask = 0; -+ XGCValues gcvalue; -+ int col; -+ -+ if (rel > 0) { -+ redraw_hangul_buffer[0]=s[0],redraw_hangul_buffer[1]=s[1]; -+ } -+ col = screen.col + rel; -+ -+ ypixel = TermWin.font->ascent + Row2Pixel(screen.row); -+ xpixel = Col2Pixel(col); -+ if (*s != ' ') { -+ if (PixColors[cursorColor] != PixColors[bgColor]) { -+ gcvalue.background = PixColors[cursorColor]; -+ gcmask |= GCBackground; -+ } -+ if (PixColors[cursorColor2] != PixColors[fgColor]) { -+ gcvalue.foreground = PixColors[cursorColor2]; -+ gcmask |= GCForeground; -+ } -+ if (gcmask) -+ XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue); -+ } -+ XSetFont(Xdisplay, TermWin.gc, TermWin.kanji->fid); -+ XClearArea(Xdisplay, drawBuffer, xpixel, ypixel - TermWin.kanji->ascent, -+ Width2Pixel(len), Height2Pixel(1), 0); -+ for (i = 0; i < len/sizeof(buf[0]) && i < sizeof(buf)/sizeof(buf[0]); i++) -+ { -+ buf[i].byte1 = (*s++) & 0x7f; -+ buf[i].byte2 = (*s++) & 0x7f; -+ } -+ XDrawImageString16(Xdisplay, drawBuffer, TermWin.gc, xpixel, ypixel, -+ buf, len/sizeof(buf[0])); -+ if (gcmask) { -+ gcvalue.background = PixColors[bgColor]; -+ gcvalue.foreground = PixColors[fgColor]; -+ XChangeGC(Xdisplay, TermWin.gc, gcmask, &gcvalue); -+ } -+} -+#endif -+ - void - scr_refresh(int type) - { -@@ -2287,6 +2337,13 @@ - } - #if defined(PIXMAP_SUPPORT) && defined(PIXMAP_BUFFERING) - XClearWindow(Xdisplay, TermWin.vt); -+#ifdef HANGUL_INPUT -+ if (redraw_hangul_buffer[0]) -+ { -+ scr_write(0, redraw_hangul_buffer, 2); -+ redraw_hangul_buffer[0] = 0; -+ } -+#endif - #endif - if (type & SMOOTH_REFRESH) - XSync(Xdisplay, False); diff --git a/korean/eterm/files/patch-ab b/korean/eterm/files/patch-ab deleted file mode 100644 index 33e44cb510a4..000000000000 --- a/korean/eterm/files/patch-ab +++ /dev/null @@ -1,169 +0,0 @@ -diff -uNr Eterm-0.8.9.orig/themes/Eterm/MAIN.in Eterm-0.8.9/themes/Eterm/MAIN.in ---- themes/Eterm/MAIN.in Mon Mar 15 03:17:31 1999 -+++ themes/Eterm/MAIN.in Wed May 5 21:24:35 1999 -@@ -105,14 +105,14 @@ - - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". --# begin kanji --# font 0 k14 --# font 1 jiskan16 --# font 2 jiskan18 --# font 3 jiskan24 --# font 4 jiskan26 -+ begin kanji -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* - # encoding eucj --# end kanji -+ end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", - # "off", or "false" for FALSE. -diff -uNr Eterm-0.8.9.orig/themes/chooser/MAIN.in Eterm-0.8.9/themes/chooser/MAIN.in ---- themes/chooser/MAIN.in Mon Mar 15 03:17:24 1999 -+++ themes/chooser/MAIN.in Wed May 5 21:25:30 1999 -@@ -105,14 +105,14 @@ - - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". --# begin kanji --# font 0 k14 --# font 1 jiskan16 --# font 2 jiskan18 --# font 3 jiskan24 --# font 4 jiskan26 -+ begin kanji -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* - # encoding eucj --# end kanji -+ end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", - # "off", or "false" for FALSE. -diff -uNr Eterm-0.8.9.orig/themes/emacs/MAIN.in Eterm-0.8.9/themes/emacs/MAIN.in ---- themes/emacs/MAIN.in Mon Mar 15 03:17:14 1999 -+++ themes/emacs/MAIN.in Wed May 5 21:26:47 1999 -@@ -105,14 +105,14 @@ - - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". --# begin kanji --# font 0 k14 --# font 1 jiskan16 --# font 2 jiskan18 --# font 3 jiskan24 --# font 4 jiskan26 -+ begin kanji -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* - # encoding eucj --# end kanji -+ end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", - # "off", or "false" for FALSE. -diff -uNr Eterm-0.8.9.orig/themes/irc/MAIN.in Eterm-0.8.9/themes/irc/MAIN.in ---- themes/irc/MAIN.in Mon Mar 15 03:28:13 1999 -+++ themes/irc/MAIN.in Wed May 5 21:27:15 1999 -@@ -105,14 +105,14 @@ - - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". --# begin kanji --# font 0 k14 --# font 1 jiskan16 --# font 2 jiskan18 --# font 3 jiskan24 --# font 4 jiskan26 -+ begin kanji -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* - # encoding eucj --# end kanji -+ end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", - # "off", or "false" for FALSE. -diff -uNr Eterm-0.8.9.orig/themes/mutt/MAIN.in Eterm-0.8.9/themes/mutt/MAIN.in ---- themes/mutt/MAIN.in Mon Mar 15 03:17:00 1999 -+++ themes/mutt/MAIN.in Wed May 5 21:27:38 1999 -@@ -106,12 +106,12 @@ - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". - begin kanji -- font 0 k14 -- font 1 jiskan16 -- font 2 jiskan18 -- font 3 jiskan24 -- font 4 jiskan26 -- encoding eucj -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* -+# encoding eucj - end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", -diff -uNr Eterm-0.8.9.orig/themes/tn3270/MAIN.in Eterm-0.8.9/themes/tn3270/MAIN.in ---- themes/tn3270/MAIN.in Mon Mar 15 03:16:46 1999 -+++ themes/tn3270/MAIN.in Wed May 5 21:28:03 1999 -@@ -106,12 +106,12 @@ - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". - begin kanji -- font 0 k14 -- font 1 jiskan16 -- font 2 jiskan18 -- font 3 jiskan24 -- font 4 jiskan26 -- encoding eucj -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* -+# encoding eucj - end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", -diff -uNr Eterm-0.8.9.orig/themes/trans/MAIN.in Eterm-0.8.9/themes/trans/MAIN.in ---- themes/trans/MAIN.in Fri Apr 16 06:21:22 1999 -+++ themes/trans/MAIN.in Wed May 5 21:28:27 1999 -@@ -107,14 +107,14 @@ - - # The Kanji support options. Same goes for these fonts as for the normal - # ones. The "encoding" attribute can be either "eucj" or "sjis". --# begin kanji --# font 0 k14 --# font 1 jiskan16 --# font 2 jiskan18 --# font 3 jiskan24 --# font 4 jiskan26 -+ begin kanji -+ font 0 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 1 *-kodig-medium-r-normal--12-*-ksc5601* -+ font 2 *-kodig-medium-r-normal--14-*-ksc5601* -+ font 3 *-kodig-medium-r-normal--16-*-ksc5601* -+ font 4 *-kodig-medium-r-normal--20-*-ksc5601* - # encoding eucj --# end kanji -+ end kanji - - # Boolean variables. The values can be "1", "on", or "true" for TRUE, or "0", - # "off", or "false" for FALSE. diff --git a/korean/eterm/files/patch-ac b/korean/eterm/files/patch-ac deleted file mode 100644 index c1158153b461..000000000000 --- a/korean/eterm/files/patch-ac +++ /dev/null @@ -1,11 +0,0 @@ ---- utils/Makefile.in.orig Mon May 3 12:39:18 1999 -+++ utils/Makefile.in Mon May 3 12:39:36 1999 -@@ -225,7 +225,7 @@ - - Etbg: $(Etbg_OBJECTS) $(Etbg_DEPENDENCIES) - @rm -f Etbg -- $(LINK) $(Etbg_LDFLAGS) $(Etbg_OBJECTS) $(Etbg_LDADD) $(LIBS) -+ $(LINK) $(Etbg_LDFLAGS) $(Etbg_OBJECTS) $(Etbg_LDADD) $(GRLIBS) $(LIBS) - - install-binSCRIPTS: $(bin_SCRIPTS) - @$(NORMAL_INSTALL) diff --git a/korean/eterm/files/patch-af b/korean/eterm/files/patch-af deleted file mode 100644 index c72092e442db..000000000000 --- a/korean/eterm/files/patch-af +++ /dev/null @@ -1,66 +0,0 @@ ---- themes/Eterm/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/Eterm/MAIN.in Sun Jun 13 00:28:40 1999 -@@ -94,7 +94,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - background %random(`cat pixmaps.list 2>/dev/null`) -- path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+ path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm ---- themes/emacs/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/emacs/MAIN.in Sun Jun 13 00:29:06 1999 -@@ -94,7 +94,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - background %random(`cat pixmaps.list 2>/dev/null`) -- path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+ path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm ---- themes/irc/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/irc/MAIN.in Sun Jun 13 00:29:24 1999 -@@ -94,7 +94,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - background %random(`cat pixmaps.list 2>/dev/null`) -- path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+ path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm ---- themes/mutt/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/mutt/MAIN.in Sun Jun 13 00:30:14 1999 -@@ -94,7 +94,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - background %random(`cat pixmaps.list 2>/dev/null`) -- path "~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+ path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm ---- themes/tn3270/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/tn3270/MAIN.in Sun Jun 13 00:30:36 1999 -@@ -94,7 +94,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - background %random(`cat pixmaps.list 2>/dev/null`) -- path "~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+ path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm ---- themes/trans/MAIN.in.orig Sun Jun 13 00:26:37 1999 -+++ themes/trans/MAIN.in Sun Jun 13 00:33:48 1999 -@@ -96,7 +96,7 @@ - # scale 100%, 0 to tile, any other number specifies W/H in pixels - begin pixmaps - # background %random(`cat pixmaps.list 2>/dev/null`) --# path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/" -+# path "./pix/:~/.Eterm/:~/.Eterm/themes/Eterm/pix:~/.Eterm/pix/:@DATADIR@/Eterm/pix/:@DATADIR@/Eterm/bg/scale/:@DATADIR@/Eterm/bg/tile/" - - # Support for these is forthcoming - # scroll_up -1 -1 ~/.Eterm/up_arrow.ppm diff --git a/korean/eterm/files/patch-ah b/korean/eterm/files/patch-ah deleted file mode 100644 index 959b1590bedf..000000000000 --- a/korean/eterm/files/patch-ah +++ /dev/null @@ -1,21 +0,0 @@ ---- utils/Etbg.c.orig Sat Mar 27 10:13:46 1999 -+++ utils/Etbg.c Mon Mar 24 14:03:40 2003 -@@ -26,12 +26,15 @@ - #include - #include - -+#ifndef FALSE -+#define FALSE (0) -+#define TRUE (1) -+#endif -+ - int - main(int argc, char **argv) - { -- enum { -- FALSE, TRUE -- } scale = FALSE, trans = FALSE; -+ int scale = FALSE, trans = FALSE; - unsigned int i, pic = 0, tint = 0, shade = 0; - - for (i = 1; i < argc; i++) { diff --git a/korean/eterm/pkg-descr b/korean/eterm/pkg-descr deleted file mode 100644 index 352e647d6cdd..000000000000 --- a/korean/eterm/pkg-descr +++ /dev/null @@ -1,12 +0,0 @@ -Eterm ------ - -Eterm is a color vt102 terminal emulator for X Window system. -It supports pixmap and pseudo-transparent background. -It also supports input and output for korean. - -- Added Hangul input patch. written by [aa] -- Patch theme for Hangul font set. [ab] -- Porting for FreeBSD. [ac] - -You can download scale and tile. - ftp://ftp.eterm.org/pub/Eterm/ diff --git a/korean/eterm/pkg-plist b/korean/eterm/pkg-plist deleted file mode 100644 index 8a6fbbd508e1..000000000000 --- a/korean/eterm/pkg-plist +++ /dev/null @@ -1,67 +0,0 @@ -bin/Esetroot -bin/Etbg -bin/Etcolors.sh -bin/Eterm -bin/Etmenu.sh -lib/libEterm.a -lib/libEterm.la -lib/libEterm.so -lib/libEterm.so.8 -lib/libmej.a -lib/libmej.la -lib/libmej.so -lib/libmej.so.8 -share/Eterm/pix/014.png -share/Eterm/pix/backwave.jpg -share/Eterm/pix/button1.jpg -share/Eterm/pix/button5.jpg -share/Eterm/pix/circuit.png -share/Eterm/pix/fourthday.jpg -share/Eterm/pix/gaia.jpg -share/Eterm/pix/galleon.jpg -share/Eterm/pix/nebula.jpg -share/Eterm/pix/night_of_the_dragon.jpg -share/Eterm/pix/pixmaps.list -share/Eterm/themes/Eterm/Eterm.menu -share/Eterm/themes/Eterm/MAIN -share/Eterm/themes/Eterm/MAIN.in.orig -share/Eterm/themes/Eterm/pixmaps.list -share/Eterm/themes/chooser/MAIN -share/Eterm/themes/chooser/MAIN.in.orig -share/Eterm/themes/chooser/chooser.menu -share/Eterm/themes/chooser/pixmaps.list -share/Eterm/themes/emacs/MAIN -share/Eterm/themes/emacs/MAIN.in.orig -share/Eterm/themes/emacs/emacs.menu -share/Eterm/themes/emacs/pixmaps.list -share/Eterm/themes/irc/MAIN -share/Eterm/themes/irc/MAIN.in.orig -share/Eterm/themes/irc/irc.menu -share/Eterm/themes/irc/pixmaps.list -share/Eterm/themes/mutt/MAIN -share/Eterm/themes/mutt/MAIN.in.orig -share/Eterm/themes/mutt/mutt.menu -share/Eterm/themes/mutt/pixmaps.list -share/Eterm/themes/tn3270/MAIN -share/Eterm/themes/tn3270/MAIN.in.orig -share/Eterm/themes/tn3270/pixmaps.list -share/Eterm/themes/trans/MAIN -share/Eterm/themes/trans/MAIN.in.orig -share/Eterm/themes/trans/trans.menu -share/Eterm/themes/trans/pixmaps.list -%%PORTDOCS%%%%DOCSDIR%%/Eterm_reference.html -%%PORTDOCS%%%%DOCSDIR%%/Eterm.tcap -%%PORTDOCS%%%%DOCSDIR%%/Eterm.ti -%%PORTDOCS%%%%DOCSDIR%%/FAQ.html -%%PORTDOCS%%%%DOCSDIR%%/ReleaseNotes -@dirrm share/Eterm/themes/trans -@dirrm share/Eterm/themes/tn3270 -@dirrm share/Eterm/themes/mutt -@dirrm share/Eterm/themes/irc -@dirrm share/Eterm/themes/emacs -@dirrm share/Eterm/themes/chooser -@dirrm share/Eterm/themes/Eterm -@dirrm share/Eterm/themes -@dirrm share/Eterm/pix -@dirrm share/Eterm -%%PORTDOCS%%@dirrm %%DOCSDIR%% diff --git a/mail/Makefile b/mail/Makefile index 0b8158724277..fa7dc8420261 100644 --- a/mail/Makefile +++ b/mail/Makefile @@ -32,7 +32,6 @@ SUBDIR += bayespam SUBDIR += bbmail SUBDIR += biabam - SUBDIR += biffer SUBDIR += bmf SUBDIR += bogofilter SUBDIR += bogofilter-sqlite diff --git a/mail/biffer/Makefile b/mail/biffer/Makefile deleted file mode 100644 index c6bee1b0c82d..000000000000 --- a/mail/biffer/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Created by: jsellens -# $FreeBSD$ - -PORTNAME= biffer -PORTVERSION= 1.0 -PORTREVISION= 1 -CATEGORIES= mail -MASTER_SITES= http://www.generalconcepts.com/resources/software/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Better mail notification server - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -RUN_DEPENDS= xmsg:${PORTSDIR}/x11/xmsg - -MAKE_JOBS_UNSAFE= yes - -MAN1= biffopt.1 -MAN8= biffer.8 biffer_comsat.8 - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: - @${REINPLACE_CMD} -e 's,/usr/local,${PREFIX},g' ${WRKSRC}/biffer_comsat/Makefile - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/biffer/biffer ${PREFIX}/libexec - ${INSTALL_PROGRAM} ${WRKSRC}/biffopt/biffopt ${PREFIX}/bin - ${INSTALL_MAN} ${WRKSRC}/biffopt/biffopt.1 ${MAN1PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/biffer/biffer.8 ${MAN8PREFIX}/man/man8 - cd ${WRKSRC}/biffer_comsat && ${MAKE} ${MFLAGS} install - -post-install: - @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} \ - POST-INSTALL - -.include diff --git a/mail/biffer/distinfo b/mail/biffer/distinfo deleted file mode 100644 index 0086445c4306..000000000000 --- a/mail/biffer/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (biffer-1.0.tar.gz) = a47a790a5397e8e62f6605e77e3347708d0324042a4085b01e667a5bcf45db91 -SIZE (biffer-1.0.tar.gz) = 27923 diff --git a/mail/biffer/files/patch-biffer::Makefile b/mail/biffer/files/patch-biffer::Makefile deleted file mode 100644 index a291d86ebf11..000000000000 --- a/mail/biffer/files/patch-biffer::Makefile +++ /dev/null @@ -1,13 +0,0 @@ ---- biffer/Makefile.orig Wed Oct 22 17:11:30 2003 -+++ biffer/Makefile Wed Oct 22 17:11:43 2003 -@@ -7,7 +7,9 @@ - - INCLUDES = ../Include/biffer.h ../Include/biffoptions.h - --CFLAGS = -O -I../Include -+CC ?= cc -+CFLAGS ?= -O -pipe -+CFLAGS += -I../Include - - LIBS = -lcompat - diff --git a/mail/biffer/files/patch-biffer_comsat::Makefile b/mail/biffer/files/patch-biffer_comsat::Makefile deleted file mode 100644 index 4a720e6cb97d..000000000000 --- a/mail/biffer/files/patch-biffer_comsat::Makefile +++ /dev/null @@ -1,17 +0,0 @@ ---- biffer_comsat/Makefile.orig Thu Oct 27 23:23:21 2005 -+++ biffer_comsat/Makefile Thu Oct 27 23:25:14 2005 -@@ -8,9 +8,12 @@ - - SRCS= comsat.c usebiffer.c - --BINDIR= /usr/local/libexec --MANDIR= /usr/local/man/man -+PREFIX= /usr/local -+BINDIR= ${PREFIX}/libexec -+MANDIR= ${PREFIX}/man/man - -+CC?= cc -+CFLAGS?= -O -pipe - CFLAGS+= -I../Include - - .include diff --git a/mail/biffer/files/patch-biffopt::Makefile b/mail/biffer/files/patch-biffopt::Makefile deleted file mode 100644 index b8220ba03248..000000000000 --- a/mail/biffer/files/patch-biffopt::Makefile +++ /dev/null @@ -1,13 +0,0 @@ ---- biffopt/Makefile.orig Wed Oct 22 17:12:06 2003 -+++ biffopt/Makefile Wed Oct 22 17:12:25 2003 -@@ -7,7 +7,9 @@ - - INCLUDES = ../Include/biffer.h ../Include/biffoptions.h - --CFLAGS = -O -I../Include -+CC ?= cc -+CFLAGS ?= -O -pipe -+CFLAGS += -I../Include - - LIBS = -lcompat - diff --git a/mail/biffer/pkg-deinstall b/mail/biffer/pkg-deinstall deleted file mode 100644 index 11aa64cf820a..000000000000 --- a/mail/biffer/pkg-deinstall +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -if [ x$2 != xDEINSTALL ]; then - exit -fi - -echo "Removing biffer from /etc/services ..." -cp /etc/services /etc/services.bak -egrep -v '^biffer' /etc/services.bak > /etc/services - -echo "Removing biffer and biffer_comsat from /etc/inetd.conf ..." -cp /etc/inetd.conf /etc/inetd.conf.bak -egrep -v '^biffer' /etc/inetd.conf.bak | egrep -v \ - '^comsat[[:space:]]+.*[[:space:]]+biffer_comsat' > /etc/inetd.conf diff --git a/mail/biffer/pkg-descr b/mail/biffer/pkg-descr deleted file mode 100644 index 5149bb203c4d..000000000000 --- a/mail/biffer/pkg-descr +++ /dev/null @@ -1,11 +0,0 @@ -biffer replaces and enhances the normal result of "biff(1)". It -can forward notifications between machines and userids (even if -the mail recipient is not currently signed on), ignore messages -that match user-specified patterns in mail headers, do text or X -notifications, and also run an arbitrary program. - -Needs a slight modification to the stock comsat, included here -as biffer_comsat. - -Written at the University of Waterloo circa 1988, and in use since -then with some modifications. diff --git a/mail/biffer/pkg-install b/mail/biffer/pkg-install deleted file mode 100644 index e4b3b5d682ef..000000000000 --- a/mail/biffer/pkg-install +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -if [ x$2 != xPOST-INSTALL ]; then - exit -fi - -needHUP="no" - -echo -n "/etc/services needs to mention biffer, checking... " -egrep '^biffer[[:space:]]+1243/tcp' /etc/services > /dev/null -if [ $? -eq 0 ]; then - echo "already there" -else - echo "adding entry" - echo 'biffer 1243/tcp # biffer(8) under inetd' >> \ - /etc/services -fi - -echo -n "/etc/inetd.conf needs to mention biffer, checking... " -egrep '^biffer[[:space:]]+stream' /etc/inetd.conf > /dev/null -if [ $? -eq 0 ]; then - echo "already there" -else - echo "adding entry" - echo "biffer stream tcp nowait root ${PKG_PREFIX}/libexec/biffer biffer" >> /etc/inetd.conf - needHUP="yes" -fi - -echo -n "/etc/inetd.conf needs to mentionn biffer_comsat, checking... " -egrep '^comsat[[:space:]]+.*[[:space:]]+biffer_comsat' /etc/inetd.conf > /dev/null -if [ $? -eq 0 ]; then - echo "already there" -else - echo "adding entry" - echo "comsat stream tcp nowait root ${PKG_PREFIX}/libexec/biffer_comsat biffer_comsat" >> /etc/inetd.conf - needHUP="yes" -fi - -if [ "$needHUP" = "yes" ]; then - echo - echo "------------------------------------------------------------------" - echo "inetd(8) needs to re-read /etc/inetd.conf. Please either kill -HUP" - echo "the inetd process, or reboot to allow biffer(8) to work." - echo "------------------------------------------------------------------" - echo -fi diff --git a/mail/biffer/pkg-plist b/mail/biffer/pkg-plist deleted file mode 100644 index 1a3f5eee1fcf..000000000000 --- a/mail/biffer/pkg-plist +++ /dev/null @@ -1,3 +0,0 @@ -bin/biffopt -libexec/biffer -libexec/biffer_comsat diff --git a/misc/Makefile b/misc/Makefile index ae5402b5a680..05e6196bbd8c 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -33,7 +33,6 @@ SUBDIR += boxquote.el SUBDIR += brs SUBDIR += buffer - SUBDIR += c-hey SUBDIR += callid SUBDIR += cave SUBDIR += cdcollect @@ -459,7 +458,6 @@ SUBDIR += window SUBDIR += wmScoreBoard SUBDIR += wmcalendar - SUBDIR += wminfo SUBDIR += wmjulia SUBDIR += wmpal SUBDIR += wmtunlo diff --git a/misc/c-hey/Makefile b/misc/c-hey/Makefile deleted file mode 100644 index aff6314c1889..000000000000 --- a/misc/c-hey/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# Created by: Philip Reynolds -# $FreeBSD$ - -PORTNAME= c-hey -PORTVERSION= 2.1 -CATEGORIES= misc -MASTER_SITES= http://www.redbrick.dcu.ie/~c-hey/src.gzipped/ -DISTNAME= c-hey2.1 - -MAINTAINER= ports@FreeBSD.org -COMMENT= Terminal based instant messaging utility - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -GNU_CONFIGURE= yes - -MAN1= c-hey.1 -MLINKS= c-hey.1 hey.1 -PLIST_FILES= bin/c-hey bin/hey - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/misc/c-hey/distinfo b/misc/c-hey/distinfo deleted file mode 100644 index 90f1a7ba493b..000000000000 --- a/misc/c-hey/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (c-hey2.1.tar.gz) = 71158aaa7f69e7cc9b27f060e088aff280d271b6d434440800d632c5b3c92a0d -SIZE (c-hey2.1.tar.gz) = 60672 diff --git a/misc/c-hey/pkg-descr b/misc/c-hey/pkg-descr deleted file mode 100644 index 45bac1a4a272..000000000000 --- a/misc/c-hey/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -This is a port of c-hey, a terminal based instant -messaging utility based on write(1) - -WWW: http://www.redbrick.dcu.ie/~c-hey/ diff --git a/misc/wminfo/Makefile b/misc/wminfo/Makefile deleted file mode 100644 index 8404f67a5001..000000000000 --- a/misc/wminfo/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# Created by: Thomas Kempka -# $FreeBSD$ - -PORTNAME= wminfo -PORTVERSION= 1.51 -PORTREVISION= 1 -CATEGORIES= misc windowmaker -MASTER_SITES= ${MASTER_SITE_LOCAL} -MASTER_SITE_SUBDIR= pav - -MAINTAINER= ports@FreeBSD.org -COMMENT= Dockapp to run shell scripts and display the output - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -WRKSRC= ${WRKDIR}/${PORTNAME}/${PORTNAME} - -USE_XORG= xpm - -NO_STAGE= yes -post-patch: - @${REINPLACE_CMD} -e 's|$$(LIBS)$$|& $$(OBJS)|g' \ - -e 's|/usr/X11R6|$$(LOCALBASE)|g' \ - -e 's|/share/include|/include|g' \ - ${WRKSRC}/Makefile - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/wminfo ${PREFIX}/bin - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/misc/wminfo/distinfo b/misc/wminfo/distinfo deleted file mode 100644 index e32be004947e..000000000000 --- a/misc/wminfo/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (wminfo-1.51.tar.gz) = a9d5b7439a77d538122ace6338f297e9c67709241a38ab61cdc31a3a80b8ba73 -SIZE (wminfo-1.51.tar.gz) = 19459 diff --git a/misc/wminfo/files/patch-wminfo.c b/misc/wminfo/files/patch-wminfo.c deleted file mode 100644 index 7615cecbe3cf..000000000000 --- a/misc/wminfo/files/patch-wminfo.c +++ /dev/null @@ -1,18 +0,0 @@ ---- wminfo.c.orig Thu Feb 19 21:22:58 2004 -+++ wminfo.c Thu Feb 19 21:24:27 2004 -@@ -142,9 +142,11 @@ - - strcpy(plugin_exec,"sh "); - strcat(plugin_exec,plugin); -- strcat(plugin_exec," > wmiout.tmp"); -- strcpy(plugin_out,getenv("PWD")); -- strcat(plugin_out,"/wmiout.tmp"); -+ strcat(plugin_exec," > "); -+ strcat(plugin_exec,plugin); -+ strcat(plugin_exec,".tmp"); -+ strcpy(plugin_out,plugin); -+ strcat(plugin_out,".tmp"); - - createXBMfromXPM(wminfo_mask_bits, wminfo_xpm, wminfo_mask_width, wminfo_mask_height); - openXwindow(argc, argv, wminfo_xpm, wminfo_mask_bits, wminfo_mask_width, wminfo_mask_height); - diff --git a/misc/wminfo/pkg-descr b/misc/wminfo/pkg-descr deleted file mode 100644 index c45795553517..000000000000 --- a/misc/wminfo/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -This dockapp is designed to be very general purpose. It can display -any kind of information as long as it is in text-format. It uses -plugins to retrieve the information. Any script or program that -sends its output to stdout can be used (have a look at the scripts -in the plugins directory of the source tarball for examples). - -Author: Robert Kling diff --git a/misc/wminfo/pkg-plist b/misc/wminfo/pkg-plist deleted file mode 100644 index 1f50faa112da..000000000000 --- a/misc/wminfo/pkg-plist +++ /dev/null @@ -1 +0,0 @@ -bin/wminfo diff --git a/net-im/Makefile b/net-im/Makefile index 173e4422034b..90721d6cad82 100644 --- a/net-im/Makefile +++ b/net-im/Makefile @@ -5,7 +5,6 @@ SUBDIR += ayttm SUBDIR += bsflite - SUBDIR += centericq SUBDIR += centerim SUBDIR += centerim-devel SUBDIR += chattahoochie diff --git a/net-im/centericq/Makefile b/net-im/centericq/Makefile deleted file mode 100644 index c12069e781e8..000000000000 --- a/net-im/centericq/Makefile +++ /dev/null @@ -1,137 +0,0 @@ -# Created by: Chris Piazza -# $FreeBSD$ - -PORTNAME= centericq -PORTVERSION= 4.21.0 -PORTREVISION= 16 -CATEGORIES= net-im -MASTER_SITES= http://thekonst.net/download/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Text mode menu- and window-driven IM interface - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -USES= iconv gmake tar:bzip2 -USE_OPENSSL= yes -GNU_CONFIGURE= yes -CPPFLAGS+= -I${LOCALBASE}/include -CXXFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib -lstdc++ -CONFIGURE_ARGS= --with-openssl --disable-konst - -OPTIONS_DEFINE= NLS MULTIBYTE FRIBIDI MSN YAHOO AIM IRC JABBER GPGME RSS LJ GG -FRIBIDI_DESC= Fribidi Support -MSN_DESC= MSN Protocol -YAHOO_DESC= Yahoo! Messenger Protocol -AIM_DESC= AOL's Instant Messenger Protocol -IRC_DESC= IRC Protocol -GPGME_DESC= PGP encrypted Jabber messages -RSS_DESC= RSS Support -LJ_DESC= LiveJournal Support -GG_DESC= Gadu-Gadu Protocol Support - -OPTIONS_DEFAULT= GPGME - -MAN1= cicqconv.1 cicqsync.1 - -PORTDOCS= FAQ README - -NO_STAGE= yes -.include - -.if ${ARCH} == "amd64" -# Don't use optimization since it sefgaults in some cases otherwise. -CFLAGS:= ${CFLAGS:C/-O[0123456789]*/-O0/} -.endif - -.if ${PORT_OPTIONS:MNLS} -USES+= gettext -PLIST_SUB+= NLS="" -.else -CONFIGURE_ARGS+=--disable-nls -PLIST_SUB+= NLS="@comment " -.endif - -.if ${PORT_OPTIONS:MMULTIBYTE} -CONFIGURE_ARGS+= --enable-locales-fix -.endif - -.if ${PORT_OPTIONS:MFRIBIDI} -LIB_DEPENDS+= libfribidi.so:${PORTSDIR}/converters/fribidi -CONFIGURE_ARGS+= --with-fribidi -.endif - -.if ${PORT_OPTIONS:MMSN} -LIB_DEPENDS+= libcurl.so:${PORTSDIR}/ftp/curl -.else -CONFIGURE_ARGS+= --disable-msn -.endif - -.if ! ${PORT_OPTIONS:MYAHOO} -CONFIGURE_ARGS+= --disable-yahoo -.endif - -.if ! ${PORT_OPTIONS:MAIM} -CONFIGURE_ARGS+= --disable-aim -.endif - -.if ! ${PORT_OPTIONS:MIRC} -CONFIGURE_ARGS+= --disable-irc -.endif - -.if ! ${PORT_OPTIONS:MJABBER} -CONFIGURE_ARGS+= --disable-jabber -.endif - -.if ${PORT_OPTIONS:MGPGME} -LIB_DEPENDS+= libgpgme.so:${PORTSDIR}/security/gpgme -CONFIGURE_ARGS+= --with-gpgme=${LOCALBASE} -.else -CONFIGURE_ARGS+= --without-gpgme -.endif - -.if ! ${PORT_OPTIONS:MRSS} -CONFIGURE_ARGS+= --disable-rss -.endif - -.if ! ${PORT_OPTIONS:MLJ} -CONFIGURE_ARGS+= --disable-lj -.endif - -.if ${PORT_OPTIONS:MGG} -LIB_DEPENDS+= libgadu.so:${PORTSDIR}/polish/ekg -LIBGADU= -lgadu -.else -CONFIGURE_ARGS+= --disable-gg -.endif - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: -.for file in kkconsui-0.1/include/conf.h kkstrtext-0.1/conf.h kksystr-0.1/include/conf.h - @(cd ${WRKSRC} ; \ - ${MV} -f ${file} ${file}.orig ; \ - ${GREP} -v "_G_config.h" ${file}.orig > ${file}) -.endfor - @${FIND} ${WRKSRC} -name "Makefile*" -type f -print0 | \ - ${XARGS} -0 \ - ${REINPLACE_CMD} -E \ - -e "s|-I\$$\(top_srcdir\)/libgadu-0.1|-I${LOCALBASE}/include|" \ - -e "s|-L\$$\(top_srcdir\)/libgadu-0.1|-L${LOCALBASE}/lib|" \ - -e 's|libgadu-0.1/*||' \ - -e 's|libgadu-0.1||' \ - -e 's|-llibgadu|${LIBGADU}|' - -.if ${PORT_OPTIONS:MDOCS} -post-install: - @${MKDIR} ${DOCSDIR} - @(cd ${WRKSRC} ; ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}) -.endif - -.include diff --git a/net-im/centericq/distinfo b/net-im/centericq/distinfo deleted file mode 100644 index 26aab8b97f90..000000000000 --- a/net-im/centericq/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (centericq-4.21.0.tar.bz2) = fc8d7e95f54c153b7004448b33118477e52831d071e930e21b473ad6b724fd76 -SIZE (centericq-4.21.0.tar.bz2) = 1422126 diff --git a/net-im/centericq/files/patch-configure b/net-im/centericq/files/patch-configure deleted file mode 100644 index e0f5294e7efd..000000000000 --- a/net-im/centericq/files/patch-configure +++ /dev/null @@ -1,18 +0,0 @@ ---- configure.orig Fri Sep 2 22:46:37 2005 -+++ configure Sat Sep 3 13:43:48 2005 -@@ -14315,12 +14315,15 @@ - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - ;; -+ *alias=* ) -+ ;; - *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; - esac - done - - # Always prepend --prefix to ensure using the same prefix - # in subdir configurations. -+ ac_sub_configure_args=`echo $ac_sub_configure_args | sed "s,'[A-Z][^']*',,g"` - ac_sub_configure_args="--prefix=$prefix $ac_sub_configure_args" - - ac_popdir=`pwd` diff --git a/net-im/centericq/files/patch-kkconsui-0.1_src_texteditor.cc b/net-im/centericq/files/patch-kkconsui-0.1_src_texteditor.cc deleted file mode 100644 index 73373cc7a75f..000000000000 --- a/net-im/centericq/files/patch-kkconsui-0.1_src_texteditor.cc +++ /dev/null @@ -1,79 +0,0 @@ - -$FreeBSD$ - ---- kkconsui-0.1/src/texteditor.cc.orig -+++ kkconsui-0.1/src/texteditor.cc -@@ -106,7 +106,7 @@ - fread(p, st.st_size, 1, f); - p[st.st_size] = 0; - i = load(p, strdup(id.c_str())); -- delete p; -+ delete[] p; - } - - return i; -@@ -124,7 +124,7 @@ - f.read(buf, size); - buf[size] = 0; - ret = load(buf, strdup(id.c_str())); -- delete buf; -+ delete[] buf; - - return ret; - } -@@ -172,7 +172,7 @@ - int texteditor::save(FILE *f, const char *linebreak) { - char *buf = save(linebreak); - fwrite(buf, strlen(buf), 1, f); -- delete buf; -+ free(buf); - modified = false; - return 0; - } -@@ -180,7 +180,7 @@ - int texteditor::save(ofstream &f, const string linebreak) { - char *buf = save(linebreak.c_str()); - f.write(buf, strlen(buf)); -- delete buf; -+ free(buf); - f.close(); - modified = false; - return 0; -@@ -526,7 +526,7 @@ - fread(buf, fsize, 1, f); - buf[fsize] = 0; - insert(buf); -- delete buf; -+ delete[] buf; - } - } - -@@ -576,8 +576,8 @@ - firstpass = false; - } - -- delete el; -- delete sl; -+ free(el); -+ free(sl); - - modification(uinsblock, sbuf); - } -@@ -1081,7 +1081,7 @@ - curfile->lines->replace(CURLINE, newline); - } - -- delete anext; -+ free(anext); - } else { - if(next) nextlen = strlen(next); else nextlen = 0; - char *newline = new char[nextlen+strlen(p)+1]; -@@ -1940,7 +1940,7 @@ - } - - int texteditor::findint(void *p1, void *p2) { -- return *(int *) p1 != (int) p2; -+ return *(int *) p1 != (intptr_t) p2; - } - - int texteditor::findhighline(void *p1, void *p2) { diff --git a/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc b/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc deleted file mode 100644 index 6cf4c4d43ac0..000000000000 --- a/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.cc +++ /dev/null @@ -1,61 +0,0 @@ - -$FreeBSD$ - ---- kkstrtext-0.1/kkstrtext.cc.orig -+++ kkstrtext-0.1/kkstrtext.cc -@@ -154,7 +154,7 @@ - string r; - char *buf = (char *) utf8_to_str(text.c_str()); - r = buf; -- delete buf; -+ delete[] buf; - return r; - } - -@@ -162,7 +162,7 @@ - string r; - char *buf = str_to_utf8(text.c_str()); - r = buf; -- delete buf; -+ delete[] buf; - return r; - } - -@@ -416,7 +416,7 @@ - - void charpointerfree(void *p) { - char *cp = (char *) p; -- if(cp) delete cp; -+ if(cp) free(cp); - } - - void nothingfree(void *p) { -@@ -431,7 +431,7 @@ - } - - int intcompare(void *s1, void *s2) { -- return (int) s1 != (int) s2; -+ return (intptr_t) s1 != (intptr_t) s2; - } - - string i2str(int i) { -@@ -885,7 +885,7 @@ - #ifdef HAVE_ICONV - iconv_t cd = iconv_open(tocs.c_str(), fromcs.c_str()); - -- if(((int) cd) != -1) { -+ if(((intptr_t) cd) != -1) { - string r, text(atext); - size_t inleft, outleft, soutleft; - char *inbuf, *outbuf, *sinbuf, *soutbuf; -@@ -907,8 +907,8 @@ - r += soutbuf; - text.erase(0, text.size()-inleft); - -- delete soutbuf; -- delete sinbuf; -+ delete[] soutbuf; -+ free(sinbuf); - - if(res == -1 && errno != EILSEQ) - break; diff --git a/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.h b/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.h deleted file mode 100644 index b443df08353b..000000000000 --- a/net-im/centericq/files/patch-kkstrtext-0.1_kkstrtext.h +++ /dev/null @@ -1,11 +0,0 @@ ---- kkstrtext-0.1/kkstrtext.h.orig Wed Aug 9 10:50:49 2006 -+++ kkstrtext-0.1/kkstrtext.h Wed Aug 9 10:51:12 2006 -@@ -87,7 +87,7 @@ - { \ - va_list vgs__ap; char vgs__buf[1024]; \ - va_start(vgs__ap, fmt); \ -- vsprintf(vgs__buf, fmt, vgs__ap); c = vgs__buf; \ -+ vsnprintf(vgs__buf, sizeof(vgs__buf), fmt, vgs__ap); c = vgs__buf; \ - va_end(vgs__ap); \ - } - diff --git a/net-im/centericq/files/patch-libicq2000-0.1_libicq2000_sigslot.h b/net-im/centericq/files/patch-libicq2000-0.1_libicq2000_sigslot.h deleted file mode 100644 index 81f384b377aa..000000000000 --- a/net-im/centericq/files/patch-libicq2000-0.1_libicq2000_sigslot.h +++ /dev/null @@ -1,10 +0,0 @@ ---- ./libicq2000-0.1/libicq2000/sigslot.h.orig Wed Aug 23 01:30:57 2006 -+++ ./libicq2000-0.1/libicq2000/sigslot.h Wed Aug 23 01:34:04 2006 -@@ -616,7 +616,6 @@ - if((*it)->getdest() == pslot) - { - m_connected_slots.erase(it); -- delete *it; - } - - it = itNext; diff --git a/net-im/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp b/net-im/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp deleted file mode 100644 index 95e5d6677931..000000000000 --- a/net-im/centericq/files/patch-libicq2000-0.1_src_DirectClient.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- libicq2000-0.1/src/DirectClient.cpp.orig Wed Aug 9 10:52:04 2006 -+++ libicq2000-0.1/src/DirectClient.cpp Wed Aug 9 10:53:26 2006 -@@ -162,6 +162,8 @@ - - m_recv.setLittleEndian(); - m_recv >> length; -+ if (length == 0) -+ return; - if (length > Incoming_Packet_Limit) throw ParseException("Received too long incoming packet"); - if (m_recv.remains() < length) return; // waiting for more of the packet - diff --git a/net-im/centericq/files/patch-msn-connection.cpp b/net-im/centericq/files/patch-msn-connection.cpp deleted file mode 100644 index 47dff454cd72..000000000000 --- a/net-im/centericq/files/patch-msn-connection.cpp +++ /dev/null @@ -1,12 +0,0 @@ ---- libmsn-0.1/msn/connection.cpp.orig Tue Jun 29 07:17:07 2004 -+++ libmsn-0.1/msn/connection.cpp Thu Jul 1 17:04:36 2004 -@@ -27,8 +27,8 @@ - #include - - #ifndef WIN32 --#include - #include -+#include - #else - #include - #include diff --git a/net-im/centericq/files/patch-msn-filetransfer.cpp b/net-im/centericq/files/patch-msn-filetransfer.cpp deleted file mode 100644 index 29cd6a6b8a80..000000000000 --- a/net-im/centericq/files/patch-msn-filetransfer.cpp +++ /dev/null @@ -1,10 +0,0 @@ ---- libmsn-0.1/msn/filetransfer.cpp.orig Tue Jun 29 18:59:04 2004 -+++ libmsn-0.1/msn/filetransfer.cpp Thu Jul 1 17:03:28 2004 -@@ -27,6 +27,7 @@ - - #ifndef WIN32 - #include -+#include - #include - #else - #include diff --git a/net-im/centericq/files/patch-msnhook.cc b/net-im/centericq/files/patch-msnhook.cc deleted file mode 100644 index 6f1486372147..000000000000 --- a/net-im/centericq/files/patch-msnhook.cc +++ /dev/null @@ -1,26 +0,0 @@ ---- src/hooks/msnhook.cc.orig Thu Jul 1 03:42:16 2004 -+++ src/hooks/msnhook.cc Thu Jul 29 10:02:57 2004 -@@ -155,6 +155,9 @@ - int hsock = 0; - MSN::Connection *c; - -+ FD_ZERO(&rs); -+ FD_ZERO(&ws); -+ FD_ZERO(&es); - getsockets(rs, ws, es, hsock); - tv.tv_sec = tv.tv_usec = 0; - -@@ -451,11 +454,11 @@ - - void msnhook::checkfriendly(icqcontact *c, const string friendlynick, bool forcefetch) { - string oldnick = c->getnick(); -- string newnick = unmime(friendlynick); -+ string newnick = rusconv("uk",unmime(friendlynick)); - - c->setnick(newnick); - -- if(forcefetch || (oldnick != newnick && c->getdispnick() == oldnick) || oldnick.empty()) { -+ if(forcefetch || (oldnick != newnick && c->getdispnick() != newnick) || oldnick.empty()) { - c->setdispnick(newnick); - face.relaxedupdate(); - } diff --git a/net-im/centericq/files/patch-src_icqdialogs.cc b/net-im/centericq/files/patch-src_icqdialogs.cc deleted file mode 100644 index 34fc6d081b8c..000000000000 --- a/net-im/centericq/files/patch-src_icqdialogs.cc +++ /dev/null @@ -1,71 +0,0 @@ - -$FreeBSD$ - ---- src/icqdialogs.cc.orig -+++ src/icqdialogs.cc -@@ -210,17 +210,17 @@ - switch(subj) { - case fsuser: - db.setbar(new horizontalbar(conf.getcolor(cp_dialog_text), conf.getcolor(cp_dialog_selected), -- _("lOad"), _("sAve"), _("cLear"), _("Change"), _("Search/Add"), 0)); -+ _("lOad"), _("sAve"), _("cLear"), _("Change"), _("Search/Add"), 0L)); - break; - - case fschannel: - db.setbar(new horizontalbar(conf.getcolor(cp_dialog_text), conf.getcolor(cp_dialog_selected), -- _("cLear"), _("Change"), _("Join/Create"), 0)); -+ _("cLear"), _("Change"), _("Join/Create"), 0L)); - break; - - case fsrss: - db.setbar(new horizontalbar(conf.getcolor(cp_dialog_text), conf.getcolor(cp_dialog_selected), -- _("cLear"), _("Change"), _("lInk"), 0)); -+ _("cLear"), _("Change"), _("lInk"), 0L)); - break; - } - -@@ -894,7 +894,7 @@ - i = m.open(); - m.close(); - -- if(i) f = (unsigned short) ((int) m.getref(i-1)); -+ if(i) f = (unsigned short) ((intptr_t) m.getref(i-1)); - } - - void icqface::selectlanguage(unsigned short &f) { -@@ -946,7 +946,7 @@ - int i = m.open(); - m.close(); - -- if(i) f = (imgender) ((int) m.getref(i-1)); -+ if(i) f = (imgender) ((intptr_t) m.getref(i-1)); - } - - void icqface::selectagerange(ICQ2000::AgeRange &r) { -@@ -967,7 +967,7 @@ - int i = m.open(); - m.close(); - -- if(i) r = (ICQ2000::AgeRange) ((int) m.getref(i-1)); -+ if(i) r = (ICQ2000::AgeRange) ((intptr_t) m.getref(i-1)); - } - - bool icqface::edit(string &txt, const string &header) { -@@ -1256,7 +1256,7 @@ - - void *p; - finished = !db.open(n, b, &p); -- i = (int) p; -+ i = (intptr_t) p; - - if(!finished) - switch(b) { -@@ -1750,7 +1750,7 @@ - it = transfers.end(); - - if(!db.gettree()->isnode(db.gettree()->getid(np-1))) -- it = transfers.begin() + (int) db.getmenu()->getref(n-1); -+ it = transfers.begin() + (intptr_t) db.getmenu()->getref(n-1); - - switch(b) { - case 0: diff --git a/net-im/centericq/files/patch-src_icqface.cc b/net-im/centericq/files/patch-src_icqface.cc deleted file mode 100644 index b21b48418e3a..000000000000 --- a/net-im/centericq/files/patch-src_icqface.cc +++ /dev/null @@ -1,68 +0,0 @@ - -$FreeBSD$ - ---- src/icqface.cc.orig -+++ src/icqface.cc -@@ -401,7 +401,7 @@ - - m.scale(); - m.idle = &menuidle; -- i = (int) m.getref(m.open()-1); -+ i = (intptr_t) m.getref(m.open()-1); - m.close(); - - if(i) lastr = i; -@@ -450,7 +450,7 @@ - - if(i) { - lastitem = i-1; -- r = (int) m.getref(lastitem); -+ r = (intptr_t) m.getref(lastitem); - } - - return r; -@@ -513,7 +513,7 @@ - g = 0; - } - -- if((unsigned int) c < 100) c = 0; -+ if((intptr_t) c < 100) c = 0; - - if(i) { - switch(action = extk) { -@@ -1484,7 +1484,7 @@ - m.scale(); - - i = m.open(); -- choice = (int) m.getref(i-1); -+ choice = (intptr_t) m.getref(i-1); - - m.close(); - } -@@ -1539,7 +1539,7 @@ - m.close(); - - if(r = i) { -- st = (imstatus) ((int) m.getref(i-1)); -+ st = (imstatus) ((intptr_t) m.getref(i-1)); - } - } - -@@ -2003,7 +2003,7 @@ - mvaddchnstr(i-1, sizeWArea.x1+1, logline, sizeWArea.x2-sizeWArea.x1); - } - -- delete logline; -+ delete[] logline; - - if(text.size() > sizeWArea.x2-sizeWArea.x1-2) text.resize(sizeWArea.x2-sizeWArea.x1-2); - mvhline(LINES-3, sizeWArea.x1+2, ' ', sizeWArea.x2-sizeWArea.x1-2); -@@ -2132,7 +2132,7 @@ - c = (icqcontact *) cm->getref(i); - } - -- if((unsigned int) c > 100) { -+ if((intptr_t) c > 100) { - string current = c->getdispnick(); - len = current.size(); - if(len > nick.size()) len = nick.size(); diff --git a/net-im/centericq/files/patch-src_impgp.cc b/net-im/centericq/files/patch-src_impgp.cc deleted file mode 100644 index cfa38bebf5f7..000000000000 --- a/net-im/centericq/files/patch-src_impgp.cc +++ /dev/null @@ -1,10 +0,0 @@ ---- ./src/impgp.cc.orig 2009-07-01 23:19:00.000000000 -0400 -+++ ./src/impgp.cc 2009-07-01 23:19:29.000000000 -0400 -@@ -12,6 +12,7 @@ - string impgp::passphrase[]; - - impgp::impgp() { -+ gpgme_check_version(NULL); - if(gpgme_new(&ctx)) - ctx = 0; - } diff --git a/net-im/centericq/pkg-descr b/net-im/centericq/pkg-descr deleted file mode 100644 index b52c41583c74..000000000000 --- a/net-im/centericq/pkg-descr +++ /dev/null @@ -1,14 +0,0 @@ -Centericq is a text mode menu- and window-driven IM interface that -supports the ICQ2000, Yahoo!, MSN, AIM, and IRC protocols. It allows you -to send, receive, and forward messages, URLs, SMSes, contacts, and email -express messages. It also lets you set your own and fetch others' away -messages, and define external handlers for incoming events. You can -mass message-send, search for users, view users' details, maintain -your contact list directly from the program, view the message history, -register a new UIN and update your details, be informed upon receipt -of email messages, automatically set away after the defined period of -inactivity, and have your own ignore, visible, and invisible lists. -It can also associate events with sounds, make log of events, and -allows arrangement of contacts into groups. - -WWW: http://konst.org.ua/centericq/ diff --git a/net-im/centericq/pkg-plist b/net-im/centericq/pkg-plist deleted file mode 100644 index 0131b9001715..000000000000 --- a/net-im/centericq/pkg-plist +++ /dev/null @@ -1,26 +0,0 @@ -bin/centericq -bin/cicqconv -bin/cicqsync -%%DATADIR%%/email.wav -%%DATADIR%%/msg.wav -%%DATADIR%%/offline.wav -%%DATADIR%%/online.wav -%%DATADIR%%/sms.wav -%%DATADIR%%/url.wav -%%NLS%%share/locale/bg/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/cs/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/de/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/es/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/fr/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/hu/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/it/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/ms/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/nl/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/pl/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/pt_BR/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/ro/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/ru/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/sv/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/uk/LC_MESSAGES/centericq.mo -%%NLS%%share/locale/zh_TW.Big5/LC_MESSAGES/centericq.mo -@dirrm %%DATADIR%% diff --git a/net/Makefile b/net/Makefile index 4d3e9f2d3af4..7da6a7525880 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1080,7 +1080,6 @@ SUBDIR += seda SUBDIR += self-service-password SUBDIR += sendemail - SUBDIR += sendfile SUBDIR += sendsms SUBDIR += sendsnpp SUBDIR += ser diff --git a/net/sendfile/Makefile b/net/sendfile/Makefile deleted file mode 100644 index 90f0e4c8b9c9..000000000000 --- a/net/sendfile/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# Created by: sec@42.org -# $FreeBSD$ - -PORTNAME= sendfile -PORTVERSION= 2.1a -PORTREVISION= 2 -CATEGORIES= net -MASTER_SITES= ftp://ftp.belwue.de/pub/unix/sendfile/current/ -DISTNAME= ${PORTNAME}-20010216 - -MAINTAINER= ports@FreeBSD.org -COMMENT= Simple Asynchronous File Transfer Reference Implementation - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -HAS_CONFIGURE= yes -CONFIGURE_SCRIPT= makeconfig -CONFIGURE_ENV= PREFIX="${PREFIX}" -USE_RC_SUBR= sendfiled -MAKE_ARGS+= BATCH=true -WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} - -MAN1= sendfile.1 sendmsg.1 receive.1 fetchfile.1 utf7encode.1 \ - wlock.1 -MAN7= fetchfile.7 -MAN8= sendfiled.8 -MLINKS= utf7encode.1 utf7decode.1 - -NO_STAGE= yes -post-install: - @if [ ! -f ${PREFIX}/etc/sendfile.cf ]; then \ - ${CP} -p ${PREFIX}/etc/sendfile.cf.sample ${PREFIX}/etc/sendfile.cf ; \ - fi - @if [ ! -f ${PREFIX}/etc/sendfile.deny ]; then \ - ${CP} -p ${PREFIX}/etc/sendfile.deny.sample ${PREFIX}/etc/sendfile.deny ; \ - fi - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/net/sendfile/distinfo b/net/sendfile/distinfo deleted file mode 100644 index 3e325f2e0d3e..000000000000 --- a/net/sendfile/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (sendfile-20010216.tar.gz) = d2e2e459e309f6cccfede2502b2f4ab94e02ef3c6b7daa8202da4df955c59bb5 -SIZE (sendfile-20010216.tar.gz) = 292130 diff --git a/net/sendfile/files/patch-aa b/net/sendfile/files/patch-aa deleted file mode 100644 index 03a4c24d4412..000000000000 --- a/net/sendfile/files/patch-aa +++ /dev/null @@ -1,31 +0,0 @@ ---- makeconfig.orig Mon Mar 5 23:06:22 2001 -+++ makeconfig Mon Mar 5 23:07:26 2001 -@@ -11,15 +11,14 @@ - - # default compiling settings - CC=gcc --CFLAGS=-O2 - LDFLAGS=-s - - # default installation settings - SPOOL=/var/spool/sendfile --BINDIR=/usr/local/bin --MANDIR=/usr/local/man --CONFIG=/usr/local/etc --SERVERDIR=/usr/local/sbin -+BINDIR=${PREFIX}/bin -+MANDIR=${PREFIX}/man -+CONFIG=${PREFIX}/etc -+SERVERDIR=${PREFIX}/sbin - INETDCONF=/etc/inetd.conf - SERVICES=/etc/services - -@@ -34,7 +33,7 @@ - #PGP=/usr/local/bin/pgp - #RECODE=/usr/local/bin/recode - #METAMAIL=/usr/local/bin/metamail --#SENDMAIL=/usr/lib/sendmail -+SENDMAIL=/usr/sbin/sendmail - - ######################### END OF USER CONFIGURATION ########################## - diff --git a/net/sendfile/files/patch-ab b/net/sendfile/files/patch-ab deleted file mode 100644 index 5ab752664dd6..000000000000 --- a/net/sendfile/files/patch-ab +++ /dev/null @@ -1,131 +0,0 @@ ---- develop/install.orig 1999-12-07 09:40:11.000000000 +0000 -+++ develop/install 2008-02-07 11:02:26.000000000 +0000 -@@ -82,7 +82,6 @@ - make_man fetchfile 7 $manmisc - make_man sendfiled 8 $manadmin - cp doc/wlock.1 doc/utf7encode.1 $MANDIR/man1 -- (cd $MANDIR/man1; ln -s utf7encode.1 utf7decode.1 2>/dev/null) - } - - SYSTEM=$1 -@@ -165,14 +164,6 @@ - To deinstall the sendfile-daemon, simply type: rm -f $SERVERDIR/sendfiled - - EOD --echo 'If you are satisfied with these defaults, then type "ok" now:' --read answer --if [ "$answer" != ok ]; then -- echo -- echo "You can install sendfile manually, too. Please type: more doc/README" -- echo -- exit --fi - - umask 022 - -@@ -233,16 +224,16 @@ - mv $NOSENDFILE $DENY - fi - fi --if [ ! -f $DENY -a ! -f $ALLOW ]; then -+if [ ! -f ${DENY}.sample -a ! -f $ALLOW ]; then - echo "installing the sendfile deny file as $DENY" -- cp etc/sendfile.deny $DENY -- chmod 644 $DENY -+ cp etc/sendfile.deny ${DENY}.sample -+ chmod 644 ${DENY}.sample - fi - --if [ ! -f $CONFIG ]; then -+if [ ! -f ${CONFIG}.sample ]; then - echo "installing the global sendfile config file as $CONFIG" -- cp etc/sendfile.cf $CONFIG -- chmod 644 $CONFIG -+ cp etc/sendfile.cf ${CONFIG}.sample -+ chmod 644 ${CONFIG}.sample - else - if [ "`diff etc/sendfile.cf $CONFIG`" ]; then - echo "Warning: `pwd`/etc/sendfile.cf differs from $CONFIG !" -@@ -250,6 +241,23 @@ - fi - fi - -+if [ -z "$BATCH" ] ; then -+echo '' -+echo 'I would now configure and start your sendfiled.' -+echo 'If you do not like this, enter "no" here' -+read answer -+fi -+if [ "$answer" = no ]; then -+ echo -+ echo "Things left to do if you want to start sendfiled:" -+ echo -+ echo " - Maybe add 'saft 487/tcp' to /etc/services (prior to FreeBSD-4)" -+ echo " - Add sendfiled to /etc/inetd.conf and killall -HUP inetd" -+ echo " - Add 'test -x $BINDIR/check_sendfile && $BINDIR/check_sendfile'" -+ echo " to /etc/profile and /etc/csh.login" -+ echo -+else -+ - if [ "$SYSTEM" = NEXT ]; then - SERVICE="`nidump services . | awk '/[ \t]487\/tcp/'`" - else -@@ -266,7 +274,6 @@ - echo "saft 487/tcp # simple asynchronous file transfer" | niload services . - else - echo "configuring $SERVICES" -- echo "#" >>$SERVICES - echo "saft 487/tcp # simple asynchronous file transfer" >>$SERVICES - fi - fi -@@ -279,8 +286,6 @@ - fi - RESTART=true - echo "configuring $INETDCONF" -- echo "#" >>$INETDCONF -- echo "# simple asynchronous file transfer" >>$INETDCONF - echo "saft stream tcp nowait root $SFD" >>$INETDCONF - fi - -@@ -308,6 +313,8 @@ - fi - fi - -+fi -+ - if [ ! -d "$SPOOL/OUTGOING" ]; then - echo "creating $SPOOL" - mkdir_recursive $SPOOL/OUTGOING -@@ -334,7 +341,7 @@ - fi - - free=`$SERVERDIR/sendfiled -f` --minfree=`awk '/minfree =/{print $3}' $CONFIG` -+minfree=`awk '/minfree =/{print $3}' ${CONFIG}.sample` - if [ "$free" -le "$minfree" ]; then - cat < -+ - - /* read n bytes from network socket */ - int readn(int, char *, int); diff --git a/net/sendfile/files/patch-ad b/net/sendfile/files/patch-ad deleted file mode 100644 index 3cbb33144599..000000000000 --- a/net/sendfile/files/patch-ad +++ /dev/null @@ -1,32 +0,0 @@ ---- src/sendfiled.c.org Tue Feb 6 00:42:53 2001 -+++ src/sendfiled.c Sun Aug 26 21:21:18 2001 -@@ -10,6 +10,7 @@ - * Chris Foote (chris@senet.com.au) - * Daniel Kobras - * Colin Phipps -+ * Stefan `Sec` Zehl - * - * History: - * -@@ -138,6 +139,7 @@ - * 2001-01-17 Framstag mail2user() now runs in a subprocess - * 2001-02-02 Framstag fixed openlog() bug - * 2001-02-06 Framstag added timeout on waiting response from client -+ * 2001-08-26 sec workaround for sete[ug]id on FreeBSD - * - * - * The sendfile-daemon of the sendfile package. -@@ -4000,11 +4002,13 @@ - * RETURN: nothing, but terminates program on error - */ - void setreugid() { -+ if (rgid != getegid()) - if (rgid && setegid(rgid)<0) { - printf("490 Internal error on setegid(%u): %s\r\n", - (unsigned int)rgid,strerror(errno)); - exit(1); - } -+ if (ruid != geteuid()) - if (ruid && seteuid(ruid)<0) { - printf("490 Internal error on seteuid(%u): %s\r\n", - (unsigned int)ruid,strerror(errno)); diff --git a/net/sendfile/files/sendfiled.in b/net/sendfile/files/sendfiled.in deleted file mode 100644 index d44fd695e9ea..000000000000 --- a/net/sendfile/files/sendfiled.in +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# PROVIDE: sendfiled -# REQUIRE: LOGIN -# BEFORE: securelevel -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable `sendfiled': -# -# sendfiled_enable="YES" -# sendfiled_flags="" -# -# See sendfiled(8) for sendfiled_flags - -. /etc/rc.subr - -name="sendfiled" -rcvar=sendfiled_enable - -command="%%PREFIX%%/sbin/sendfiled" -command_args="-Q" -required_files="%%PREFIX%%/etc/sendfile.cf" - -# read configuration and set defaults -load_rc_config "$name" -: ${sendfiled_enable="NO"} - -run_rc_command "$1" diff --git a/net/sendfile/pkg-descr b/net/sendfile/pkg-descr deleted file mode 100644 index 80225e5b9dcd..000000000000 --- a/net/sendfile/pkg-descr +++ /dev/null @@ -1,14 +0,0 @@ -SAFT (Simple Asynchronous File Transfer) is a new Internet protocol for -sending files and messages asynchronously. This is useful, because you don't -have to log on to the receiving site to do it. You simply tell the -sendfile program a file name and where to send it: -"sendfile your_file user@somedomain" (Of course there are options). - -The package includes: A sendfile client (which sends files), a sendmsg -client (which sends messages), a receive client (which copies files from -the local sendfile spool to the recipient's current directory) and a -sendfiled server (which receives files and messages and stores them in the -local sendfile spool). - -NOTE: If you wish to use fetchfile (which is an optional extension to - sendfile,) you need to have pgp installed, too. diff --git a/net/sendfile/pkg-plist b/net/sendfile/pkg-plist deleted file mode 100644 index 7ee30b89b02d..000000000000 --- a/net/sendfile/pkg-plist +++ /dev/null @@ -1,34 +0,0 @@ -bin/check_sendfile -bin/ewl -bin/fetchfile -bin/receive -bin/rf -bin/sendfile -bin/sendmsg -bin/sf -bin/sf_cleanup -bin/sfconf -bin/sfdconf -bin/sm -bin/utf7decode -bin/utf7encode -bin/wlock -sbin/sendfiled -@exec mkdir -p /var/spool/sendfile/OUTGOING /var/spool/sendfile/LOG -@exec chmod 755 /var/spool/sendfile -@exec chmod 1777 /var/spool/sendfile/OUTGOING -@exec chmod 700 /var/spool/sendfile/LOG -@exec touch /var/spool/sendfile/LOG/in /var/spool/sendfile/LOG/out -@exec chmod 600 /var/spool/sendfile/LOG/in /var/spool/sendfile/LOG/out -@exec echo -e 'saft\tstream\ttcp\tnowait\troot\t%D/sbin/sendfiled sendfiled' >> /etc/inetd.conf -@exec echo -e 'saft\t\t487/tcp\t# simple asynchronous file transfer'>>/etc/services -@exec kill -HUP `ps auxw|awk '$11 == "inetd" { print $2 } '` >/dev/null 2>&1 ||true -@unexec perl -pi.bak -e '/^saft/ && ($_="")' /etc/inetd.conf -@unexec kill -HUP `ps auxw|awk '$11 == "inetd" { print $2 } '` >/dev/null 2>&1||true -@unexec rm -R /var/spool/sendfile 2>&1 >/dev/null || true -@unexec if cmp -s %D/etc/sendfile.cf.sample %D/etc/sendfile.cf; then rm -f %D/etc/sendfile.cf; fi -@exec if [ ! -f %D/etc/sendfile.cf ] ; then cp -p %D/etc/sendfile.cf.sample %D/etc/sendfile.cf; fi -@unexec if cmp -s %D/etc/sendfile.deny.sample %D/etc/sendfile.deny; then rm -f %D/etc/sendfile.deny; fi -@exec if [ ! -f %D/etc/sendfile.deny ] ; then cp -p %D/etc/sendfile.deny.sample %D/etc/sendfile.deny; fi -etc/sendfile.cf.sample -etc/sendfile.deny.sample diff --git a/security/Makefile b/security/Makefile index 95c756feee2c..c665b2a91462 100644 --- a/security/Makefile +++ b/security/Makefile @@ -56,7 +56,6 @@ SUBDIR += chaosreader SUBDIR += checkpassword SUBDIR += checkpassword-pam - SUBDIR += chkrootkit SUBDIR += chntpw SUBDIR += chroot_safe SUBDIR += chrootuid @@ -347,7 +346,6 @@ SUBDIR += openconnect SUBDIR += opencryptoki SUBDIR += openct - SUBDIR += openfwtk SUBDIR += openpgpsdk SUBDIR += opensaml2 SUBDIR += opensc @@ -609,7 +607,6 @@ SUBDIR += pam-mysql SUBDIR += pam-pgsql SUBDIR += pam_abl - SUBDIR += pam_alreadyloggedin SUBDIR += pam_bsdbioapi SUBDIR += pam_fprint SUBDIR += pam_google_authenticator @@ -935,7 +932,6 @@ SUBDIR += sqlmap SUBDIR += sqlninja SUBDIR += srm - SUBDIR += srp SUBDIR += ssdeep SUBDIR += ssh-copy-id SUBDIR += ssh-gui @@ -964,7 +960,6 @@ SUBDIR += subversion-gnome-keyring SUBDIR += subversion-kwallet SUBDIR += subweb - SUBDIR += sud SUBDIR += sudo SUBDIR += sudoscript SUBDIR += super diff --git a/security/chkrootkit/Makefile b/security/chkrootkit/Makefile deleted file mode 100644 index 668efcb3c2a4..000000000000 --- a/security/chkrootkit/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# Created by: Luiz Eduardo R. Cordeiro -# $FreeBSD$ - -PORTNAME= chkrootkit -PORTVERSION= 0.49 -CATEGORIES= security -MASTER_SITES= ftp://ftp.pangeia.com.br/pub/seg/pac/ \ - ftp://gd.tuwien.ac.at/infosys/security/chkrootkit/ \ - ftp://ftp.digitalvoodoo.org/pub/mirrors/chkrootkit/ \ - http://www.spenneberg.org/chkrootkit-mirror/files/ \ - http://www.mirrors.wiretapped.net/security/host-security/chkrootkit/ \ - http://ftp.uni-stuttgart.de/pub/security/unix/forensics/chkrootkit/ \ - http://ftp.bit.nl/mirror/chkrootkit/ \ - http://chkrootkit.mirror.fr/ - -MAINTAINER= cordeiro@nic.br -COMMENT= Tool to locally check for signs of a rootkit - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -OPTIONS_DEFINE= DOCS - -SCRIPT_FILES= chkrootkit -PROG_FILES= chklastlog \ - chkwtmp \ - chkutmp \ - chkproc \ - chkdirs \ - ifpromisc \ - check_wtmpx \ - strings -ALL_TARGET= ${SCRIPT_FILES} ${PROG_FILES} -PORTDOCS= ACKNOWLEDGMENTS \ - COPYRIGHT \ - README \ - README.chklastlog \ - README.chkwtmp - -PLIST_FILES= ${ALL_TARGET:C,^,sbin/,} - -BINMODE= 0700 - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: - @${REINPLACE_CMD} -E "s/^(CC|CFLAGS)[^a-zA-Z]*=/\1 ?=/" \ - ${WRKSRC}/Makefile - -.for prog in ${PROG_FILES} - @${REINPLACE_CMD} -E 's,\./(${prog}),${PREFIX}/sbin/\1,g' \ - ${WRKSRC}/chkrootkit -.endfor - -do-install: - ${INSTALL_SCRIPT} ${SCRIPT_FILES:C,^,${WRKSRC}/,} ${STAGEDIR}${PREFIX}/sbin - ${INSTALL_PROGRAM} ${PROG_FILES:C,^,${WRKSRC}/,} ${STAGEDIR}${PREFIX}/sbin - @${MKDIR} ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${PORTDOCS:C,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR} - -.include diff --git a/security/chkrootkit/distinfo b/security/chkrootkit/distinfo deleted file mode 100644 index c9cf12673e83..000000000000 --- a/security/chkrootkit/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (chkrootkit-0.49.tar.gz) = ccb87be09e8923d51f450a167f484414f70c36c942f8ef5b9e5e4a69b7baa17f -SIZE (chkrootkit-0.49.tar.gz) = 39421 diff --git a/security/chkrootkit/pkg-descr b/security/chkrootkit/pkg-descr deleted file mode 100644 index 482d1e734c8b..000000000000 --- a/security/chkrootkit/pkg-descr +++ /dev/null @@ -1,24 +0,0 @@ - Chkrootkit is a tool to locally check for signs of a rootkit. - ------------------------------------------------------------- - - It contains: - - * chkrootkit: a shell script that checks system binaries for - rootkit modification. - * ifpromisc.c: checks if the network interface is in promiscuous - mode. - * chklastlog.c: checks for lastlog deletions. - * chkwtmp.c: checks for wtmp deletions. - * check_wtmpx.c: checks for wtmpx deletions. (Solaris only) - * chkproc.c: checks for signs of LKM trojans. - * chkdirs.c: checks for signs of LKM trojans. - * strings.c: quick and dirty strings replacement. - * chkutmp.c: checks for utmp deletions. - - For an updated list of rootkits, worms and LKMs detected by - chkrootkit please visit: http://www.chkrootkit.org/ - -Nelson Murilo -Klaus Steding-Jessen - -WWW: http://www.chkrootkit.org/ diff --git a/security/openfwtk/Makefile b/security/openfwtk/Makefile deleted file mode 100644 index 3aba294a3e89..000000000000 --- a/security/openfwtk/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -# Created by: Anton Karpov -# $FreeBSD$ - -PORTNAME= openfwtk -PORTVERSION= 2.0 -PORTREVISION= 1 -CATEGORIES= security -MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/Release%20${PORTVERSION} -DISTNAME= ${PORTNAME}${PORTVERSION} - -MAINTAINER= ports@FreeBSD.org -COMMENT= Application proxy toolkit which inherits the ideology of TIS fwtk - -LICENSE= BSD - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -OPTIONS_DEFINE= GUI -GUI_DESC= Install fw-watch GUI (require TCL/TK!) - -WRKSRC= ${WRKDIR}/fwtk -WRKSRC_WATCH= ${WRKDIR}/fw_watch -WRKSRC_MILTER= ${WRKDIR}/libci_milter - -MAKE_JOBS_UNSAFE=yes - -SUB_FILES= pkg-message -MANCOMPRESSED= no - -NO_STAGE= yes -.include - -.if ${PORT_OPTIONS:MGUI} -USES+= tk:wrapper -PLIST_SUB+= WATCH="" -.else -PLIST_SUB+= WATCH="@comment " -.endif - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: -.for conf in auth/authadduser.sh reports/summ_resources.sh \ - reports/daily_report reports/frequentcheck \ - reports/frequentcheck.sh squid-gw/squid-gw.restart - @${REINPLACE_CMD} -e \ - 's|/etc/openfwtk.conf|${PREFIX}/etc/openfwtk.conf|g' ${WRKSRC}/${conf} -.endfor -.for wish in fileselect.tcl fw_watch - @${REINPLACE_CMD} -e \ - 's|/usr/bin/|${LOCALBASE}/bin/|g' ${WRKSRC_WATCH}/${wish} -.endfor - @${REINPLACE_CMD} -e \ - '/^CC/s|=.*|= ${CC}|g ; \ - /^COPT/s|=.*|= ${CFLAGS}|g' ${WRKSRC_MILTER}/Makefile - @${REINPLACE_CMD} -e \ - '/^CC/s|=.*|= ${CC}|g ; \ - /^COPT/s|-std=c99|${CFLAGS}|g' ${WRKSRC}/configs/FreeBSD - -pre-build: - @(cd ${WRKSRC_MILTER}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) - -pre-install: - @${MKDIR} ${ETCDIR} - -post-install: -.if ${PORT_OPTIONS:MGUI} - @${MKDIR} ${PREFIX}/share/fw_watch -.for data in fileselect.tcl fw_watch newsb.tcl searchbox.tcl taputils.tcl - ${INSTALL_DATA} ${WRKSRC_WATCH}/${data} ${PREFIX}/share/fw_watch -.endfor -.endif - ${ECHO_CMD} "root@`hostname`" > ${ETCDIR}/admin - @${CAT} ${PKGMESSAGE} - -.include "Makefile.man" -.include diff --git a/security/openfwtk/Makefile.man b/security/openfwtk/Makefile.man deleted file mode 100644 index 5eb77b16ecb1..000000000000 --- a/security/openfwtk/Makefile.man +++ /dev/null @@ -1,58 +0,0 @@ -# $FreeBSD$ - -MAN3= \ - cfg_append.3 \ - cfg_free.3 \ - cfg_get.3 \ - cfg_read.3 \ - cfg_setpfile.3 \ - conn_server.3 \ - daemonize.3 \ - do_daemon.3 \ - enargv.3 \ - getpassword.3 \ - hostmatch.3 \ - hup_exit.3 \ - isalldigits.3 \ - lock_fd.3 \ - locktest_fd.3 \ - lockun_fd.3 \ - mapgid.3 \ - maphostname.3 \ - mapuid.3 \ - nacasematch.3 \ - namatch.3 \ - peername.3 \ - randomnumber.3 \ - set_oob_notification.3 \ - str_to_port.3 \ - waitwaitwait.3 \ - xmalloc.3 \ - xrealloc.3 \ - xstrdup.3 - -MAN5= netperm-table.5 - -MAN8= \ - auth_telnetd.8 \ - authdump.8 \ - authmgr.8 \ - authsrv.8 \ - cmd-gw.8 \ - cvs-gw.8 \ - dnsctl.8 \ - ftp-gw.8 \ - hqdaemon.8 \ - ident-spoofer.8 \ - lp-gw.8 \ - netacl.8 \ - nntp-gw.8 \ - plug-gw.8 \ - pop3-gw.8 \ - rexec-gw.8 \ - rsh-gw.8 \ - smtpd.8 \ - smtpfwdd.8 \ - squid-gw.8 \ - ssmtp.8 - diff --git a/security/openfwtk/distinfo b/security/openfwtk/distinfo deleted file mode 100644 index 950ef0665c85..000000000000 --- a/security/openfwtk/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (openfwtk2.0.tar.gz) = e09b30f13edcc0ec297add629259fc5414081d26aeb3ecc6bfc67f3a27f8d5b6 -SIZE (openfwtk2.0.tar.gz) = 615400 diff --git a/security/openfwtk/files/patch-Makefile.common b/security/openfwtk/files/patch-Makefile.common deleted file mode 100644 index 5b579f191f3d..000000000000 --- a/security/openfwtk/files/patch-Makefile.common +++ /dev/null @@ -1,29 +0,0 @@ ---- Makefile.common.orig 2007-09-25 06:26:36.000000000 +0400 -+++ Makefile.common 2007-10-12 04:55:16.000000000 +0400 -@@ -34,11 +34,11 @@ - install-etc: $(ETCOBJS) - @for CETC in $(ETCOBJS) ""; do \ - if [ "$$CETC" = "" ]; then continue; fi; \ -- if [ -f $(PREFIX)/etc/$$CETC ]; then \ -- echo "NOT installing $(PREFIX)/$$CETC: exists, skipped"; \ -+ if [ -f $(PREFIX)/etc/openfwtk/$$CETC ]; then \ -+ echo "NOT installing $(PREFIX)/openfwtk/$$CETC: exists, skipped"; \ - else \ -- echo "Installing ETC: $$CETC -> $(PREFIX)/etc"; \ -- cp $$CETC $(PREFIX)/etc; \ -+ echo "Installing ETC: $$CETC -> $(PREFIX)/etc/openfwtk"; \ -+ cp $$CETC $(PREFIX)/etc/openfwtk; \ - fi; \ - done; \ - -@@ -57,8 +57,7 @@ - echo "Creating/updating directory: $$CDIR"; \ - mkdir -p $$CDIR; \ - done; \ -- echo "Installing OpenFWTK base path: OFWTKPATH -> /etc/openfwtk.conf"; \ -- echo "OFWTKPATH=\"$(PREFIX)\"" > /etc/openfwtk.conf -+ echo "Installing OpenFWTK base path: OFWTKPATH -> ${PREFIX}/etc/openfwtk.conf"; \ -+ echo "OFWTKPATH=\"$(PREFIX)\"" > ${PREFIX}/etc/openfwtk.conf - - install: all install-common install-bin install-man install-etc -- $(INSTALLADD) diff --git a/security/openfwtk/files/patch-Makefile.config b/security/openfwtk/files/patch-Makefile.config deleted file mode 100644 index 6038b4f485c7..000000000000 --- a/security/openfwtk/files/patch-Makefile.config +++ /dev/null @@ -1,10 +0,0 @@ ---- Makefile.config.orig 2007-10-12 02:30:32.000000000 +0400 -+++ Makefile.config 2007-10-12 02:30:52.000000000 +0400 -@@ -1,6 +1,6 @@ - # Define here one of the supported OS-es: - # Linux, FreeBSD, OpenBSD, Solaris, Solaris64, HP-UX, MacOSX --OSTYPE = Linux -+OSTYPE = FreeBSD - - include $(GMKPATH)/configs/$(OSTYPE) - include $(GMKPATH)/Makefile.common diff --git a/security/openfwtk/files/patch-configs-FreeBSD b/security/openfwtk/files/patch-configs-FreeBSD deleted file mode 100644 index 481a8ae52a87..000000000000 --- a/security/openfwtk/files/patch-configs-FreeBSD +++ /dev/null @@ -1,64 +0,0 @@ ---- configs/FreeBSD.orig 2007-10-12 02:53:28.000000000 +0400 -+++ configs/FreeBSD 2007-10-12 03:03:56.000000000 +0400 -@@ -2,25 +2,25 @@ - CC = cc - CP = cp - MAKE = make --PREFIX = /usr/firewall -+PREFIX = /usr/local - - # Defines path where to find ncurses libraries --NCURSES_LIBDIR=/usr/local/lib -+NCURSES_LIBDIR=/usr/lib - - # Defines path where to find ncurses headers --NCURSES_INCDIR=/usr/local/include/ncurses -+NCURSES_INCDIR=/usr/include/ncurses - - # Defines path where to find SSL libraries --SSL_LIBDIR=/usr/local/ssl/lib -+SSL_LIBDIR=/usr/lib - - # Defines path where to find SSL headers --SSL_INCDIR=/usr/local/ssl/include -+SSL_INCDIR=/usr/include/openssl - - # Defines path where to find GNU Magic/File libraries --MAGIC_LIBDIR=/usr/local/lib -+MAGIC_LIBDIR=/usr/lib - - # Defines path where to find GNU Magic/File headers --MAGIC_INCDIR=/usr/local/include -+MAGIC_INCDIR=/usr/include - - # Defines path where to find Milter client library (libci_milter) - MILTER_LIBDIR=../../libci_milter -@@ -29,7 +29,7 @@ - MILTER_INCDIR=../../libci_milter/include - - # Defines path where to find berkeley bd headers --DBM_INCDIR=/usr/include/gdbm -+DBM_INCDIR=/usr/include - - # Defines for your operating system - DEFINES=-DPREFIX=\"$(PREFIX)\" -@@ -70,16 +70,16 @@ - FWTKSRCDIR=$(PREFIX)/src/fwtk - - # Location of X libraries for X-gw --XLIBDIR=/usr/X11R6/lib -+XLIBDIR=${LOCALBASE}lib/X11 - - # X Libraries - XLIBS = -L$(XLIBDIR) -lXaw -lXmu -lXt -lXext -lX11 -lSM -lICE -lXext - - # Location of X include files --XINCLUDE=/usr/X11R6/include -+XINCLUDE=${LOCALBASE}/include/X11 - - # IPFilter location - #IPFILTER=$(PREFIX)/development/src/ipfilter/ip_fil3.2.9 - - # authsrv agent communication socket --AUTHSRV_SOCK_PATH=$(PREFIX)/var/ -+AUTHSRV_SOCK_PATH=/var/run/openfwtk diff --git a/security/openfwtk/files/patch-reports-Makefile b/security/openfwtk/files/patch-reports-Makefile deleted file mode 100644 index 008d0eb2e85f..000000000000 --- a/security/openfwtk/files/patch-reports-Makefile +++ /dev/null @@ -1,13 +0,0 @@ ---- reports/Makefile.orig 2007-09-25 00:20:36.000000000 +0400 -+++ reports/Makefile 2007-10-12 04:54:53.000000000 +0400 -@@ -16,10 +16,3 @@ - logtail: $(LTLOBJS) - $(OFWTKLINK) $(LTLOBJS) - --INSTALLADD = \ -- if ! grep -q frequentcheck /etc/crontab; then \ -- echo "59 * * * * root $(DEST)/frequentcheck">>/etc/crontab ;\ -- fi; \ -- if ! grep -q daily_report /etc/crontab; then \ -- echo "58 23 * * * root $(DEST)/daily_report">>/etc/crontab ; \ -- fi diff --git a/security/openfwtk/files/patch-reports-frequentcheck.sh b/security/openfwtk/files/patch-reports-frequentcheck.sh deleted file mode 100644 index 10df4b1f7c13..000000000000 --- a/security/openfwtk/files/patch-reports-frequentcheck.sh +++ /dev/null @@ -1,17 +0,0 @@ ---- reports/frequentcheck.sh.orig 2007-10-12 04:42:16.000000000 +0400 -+++ reports/frequentcheck.sh 2007-10-12 04:42:45.000000000 +0400 -@@ -43,10 +43,10 @@ - - PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin - --PATFILE=$OFWTKPATH/etc/frequentcheck.ignore --ALERTFILE=$OFWTKPATH/etc/securityalerts.ignore --WARNFILE=$OFWTKPATH/etc/securitywarnings.ignore --ERRFILE=$OFWTKPATH/etc/syserr.ignore -+PATFILE=$OFWTKPATH/etc/openfwtk/frequentcheck.ignore -+ALERTFILE=$OFWTKPATH/etc/openfwtk/securityalerts.ignore -+WARNFILE=$OFWTKPATH/etc/openfwtk/securitywarnings.ignore -+ERRFILE=$OFWTKPATH/etc/openfwtk/syserr.ignore - - # Set the flag variables - FOUND=0 diff --git a/security/openfwtk/files/patch-squid-gw-squid-gw.restart b/security/openfwtk/files/patch-squid-gw-squid-gw.restart deleted file mode 100644 index 1488605a913b..000000000000 --- a/security/openfwtk/files/patch-squid-gw-squid-gw.restart +++ /dev/null @@ -1,8 +0,0 @@ ---- squid-gw/squid-gw.restart.orig 2007-10-12 18:09:43.000000000 +0400 -+++ squid-gw/squid-gw.restart 2007-10-12 18:10:12.000000000 +0400 -@@ -9,4 +9,4 @@ - exit 1 - fi - --kill -HUP `cat $OFWTKPATH/var/pid/squid-gw.pid` -+kill -HUP `cat /var/run/openfwtk/squid-gw.pid` diff --git a/security/openfwtk/files/pkg-message.in b/security/openfwtk/files/pkg-message.in deleted file mode 100644 index 4bfe43abb428..000000000000 --- a/security/openfwtk/files/pkg-message.in +++ /dev/null @@ -1,24 +0,0 @@ -=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= -* NOTE: - -* In order to use OpenFWTK proxies you need to have -procfs(5) filesystem mounted. - -* You are advised to add following to /etc/crontab: - -59 * * * * root %%LOCALBASE%%/bin/frequentcheck -58 23 * * * root %%LOCALBASE%%/bin/daily_report - -* In order to get this reports, run: -echo "admin@email.addr" > %%LOCALBASE%%/etc/openfwtk/admin - -* fw_check installed in %%LOCALBASE%%/share/fw_watch. - -* In order to user openfwtk, you need to create -%%LOCALBASE%%/etc/netperm-table, there is no predefined -example for now! - -* netperm-table(5) is a good place to start read about -various configuration options - -=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~= diff --git a/security/openfwtk/pkg-descr b/security/openfwtk/pkg-descr deleted file mode 100644 index 7134afbfd1c1..000000000000 --- a/security/openfwtk/pkg-descr +++ /dev/null @@ -1,6 +0,0 @@ -OpenFWTK is an application proxy toolkit which inherits the ideology -of TIS fwtk and maintains API backwards compatibility. The design goal -is to make it simple yet powerful; no performance hacks allowed in the -code and library dependencies are reduced to minimum. - -WWW: http://sourceforge.net/projects/openfwtk diff --git a/security/openfwtk/pkg-plist b/security/openfwtk/pkg-plist deleted file mode 100644 index 1463b3dab541..000000000000 --- a/security/openfwtk/pkg-plist +++ /dev/null @@ -1,53 +0,0 @@ -bin/auth_cons -bin/auth_telnetd -bin/authadduser.sh -bin/authdump -bin/authload -bin/authmgr -bin/authsrv -bin/chart.pl -bin/cmd-gw -bin/cmd-tn -bin/cvs-gw -bin/daily_report -bin/dnsctl -bin/frequentcheck -bin/frequentcheck.sh -bin/ftp-gw -bin/get_today -bin/hqdaemon -bin/ident-spoofer -bin/logtail -bin/lp-gw -bin/netacl -bin/nntp-gw -bin/nntp-top -bin/plug-gw -bin/pop3-gw -bin/rexec-gw -bin/rsh-gw -bin/smtpd -bin/smtpfwdd -bin/squid-gw -bin/squid-gw.restart -bin/squid-log -bin/squid-top -bin/ssl-gw -bin/ssmtp -bin/summ_complete.pl -bin/summ_resources.sh -etc/openfwtk/alerts.add -etc/openfwtk/frequentcheck.ignore -etc/openfwtk/securityalerts.ignore -etc/openfwtk/securitywarnings.ignore -etc/openfwtk/syserr.ignore -etc/openfwtk/warnings.add -etc/openfwtk/admin -etc/openfwtk.conf -%%WATCH%%share/fw_watch/fileselect.tcl -%%WATCH%%share/fw_watch/fw_watch -%%WATCH%%share/fw_watch/newsb.tcl -%%WATCH%%share/fw_watch/searchbox.tcl -%%WATCH%%share/fw_watch/taputils.tcl -%%WATCH%%@dirrm share/fw_watch -@dirrm etc/openfwtk diff --git a/security/pam_alreadyloggedin/Makefile b/security/pam_alreadyloggedin/Makefile deleted file mode 100644 index 97b0332b9e56..000000000000 --- a/security/pam_alreadyloggedin/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Created by: green@FreeBSD.org -# $FreeBSD$ - -PORTNAME= pam_alreadyloggedin -PORTVERSION= 0.3 -PORTREVISION= 2 -CATEGORIES= security -MASTER_SITES= ${MASTER_SITE_LOCAL} \ - http://green.homeunix.org/~green/ -MASTER_SITE_SUBDIR= green - -MAINTAINER= ports@FreeBSD.org -COMMENT= PAM module based on whether a user is already logged in - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -MANCOMPRESSED= yes - -NO_STAGE= yes -.include - -.if ${OSVERSION} >= 900007 -BROKEN= Does not build with utmpx. -.endif - -MAN8= pam_alreadyloggedin.8 -PLIST_FILES= lib/pam_alreadyloggedin.so lib/pam_alreadyloggedin.so.2 - -do-configure: - ${LN} -s ${FILESDIR}/Makefile.inc ${WRKDIR}/ - -.include diff --git a/security/pam_alreadyloggedin/distinfo b/security/pam_alreadyloggedin/distinfo deleted file mode 100644 index 23bab351a63a..000000000000 --- a/security/pam_alreadyloggedin/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (pam_alreadyloggedin-0.3.tar.gz) = dad16b73008b0cc78c709472ad1ba12d61e090db990076e1c79bcfb77e136f5f -SIZE (pam_alreadyloggedin-0.3.tar.gz) = 3741 diff --git a/security/pam_alreadyloggedin/files/Makefile.inc b/security/pam_alreadyloggedin/files/Makefile.inc deleted file mode 100644 index 0e3fe2882b4a..000000000000 --- a/security/pam_alreadyloggedin/files/Makefile.inc +++ /dev/null @@ -1,2 +0,0 @@ -NO_INSTALLLIB= # don't install static version -NO_PROFILE= # don't even build the profile version diff --git a/security/pam_alreadyloggedin/files/patch-pam_alreadyloggedin.c b/security/pam_alreadyloggedin/files/patch-pam_alreadyloggedin.c deleted file mode 100644 index f676d9a38c5d..000000000000 --- a/security/pam_alreadyloggedin/files/patch-pam_alreadyloggedin.c +++ /dev/null @@ -1,14 +0,0 @@ ---- pam_alreadyloggedin.c.orig Tue Sep 21 17:41:20 2004 -+++ pam_alreadyloggedin.c Thu Dec 23 00:58:02 2004 -@@ -70,6 +70,11 @@ - int inutmp(struct utmp *utmp, const char *lineglob, const char *username, - uid_t uid); - -+#ifdef PAM_MAX_OPTIONS -+/* The old PAM requires this structure. */ -+static struct options options; -+#endif -+ - PAM_EXTERN int - pam_sm_authenticate(pam_handle_t *pamh, int flags __unused, int argc, - const char **argv) diff --git a/security/pam_alreadyloggedin/pkg-descr b/security/pam_alreadyloggedin/pkg-descr deleted file mode 100644 index a335db1cb486..000000000000 --- a/security/pam_alreadyloggedin/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -This is a PAM module which will, given restrictions upon whether the -user to be authenticated is root or logging in on a given terminal, will -allow the user to be authenticated successfully if the user is currently -already logged in on another terminal. diff --git a/security/srp/Makefile b/security/srp/Makefile deleted file mode 100644 index 9dfd5fcbc27f..000000000000 --- a/security/srp/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# Created by: nectar@FreeBSD.org -# $FreeBSD$ - -PORTNAME= srp -PORTVERSION= 2.1.2 -CATEGORIES= security net -MASTER_SITES= http://srp.stanford.edu/source/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Secure Remote Password protocol library, TELNET, and FTP - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -CONFLICTS= krb4-[0-9]* krb5-[0-9]* krb5-maint-[0-9]* heimdal-[0-9]* - -GNU_CONFIGURE= yes -CONFIGURE_ENV= INSTALL="/usr/bin/install -C" -CONFIGURE_ARGS= --with-openssl=/usr \ - --with-zlib \ - --enable-loginf - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: - @${GREP} -slR "malloc\.h" ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e \ - 's|malloc\.h|stdlib\.h|g' - @${REINPLACE_CMD} -e 's/^struct.*\*sgetspent.*(const.*//' ${WRKSRC}/base/lib/shadow_.h - -post-install: -.if !defined(NOPORTDOCS) - @${MKDIR} ${DOCSDIR} - cd ${WRKSRC}/docs && ${FIND} . | \ - ${CPIO} -pdm -L -R ${SHAREOWN}:${SHAREGRP} ${DOCSDIR} -.endif - -.include diff --git a/security/srp/distinfo b/security/srp/distinfo deleted file mode 100644 index 0ecd11497bee..000000000000 --- a/security/srp/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (srp-2.1.2.tar.gz) = 29f129de4aac4bb11fc4b56a14f2bc4e0c4d6774112eef350e740f04afae6555 -SIZE (srp-2.1.2.tar.gz) = 1453087 diff --git a/security/srp/files/patch-base::lib::utent.c b/security/srp/files/patch-base::lib::utent.c deleted file mode 100644 index cd4b0dcf23e0..000000000000 --- a/security/srp/files/patch-base::lib::utent.c +++ /dev/null @@ -1,12 +0,0 @@ ---- base/lib/utent.c.orig Wed Aug 15 20:50:34 2001 -+++ base/lib/utent.c Wed Aug 15 20:54:08 2001 -@@ -47,6 +47,9 @@ - * setutent - open or rewind the utmp file - */ - -+#if defined(__FreeBSD__) -+#define _UTMP_FILE _PATH_UTMP -+#endif - void - setutent () - { diff --git a/security/srp/files/patch-base::libmisc::utmp.c b/security/srp/files/patch-base::libmisc::utmp.c deleted file mode 100644 index aa3c3994ff05..000000000000 --- a/security/srp/files/patch-base::libmisc::utmp.c +++ /dev/null @@ -1,12 +0,0 @@ ---- base/libmisc/utmp.c.orig Tue Aug 21 09:00:37 2001 -+++ base/libmisc/utmp.c Tue Aug 21 09:01:33 2001 -@@ -371,6 +371,9 @@ - int found = 0; - off_t pos; - -+#if defined(__FreeBSD__) -+#define _UTMP_FILE _PATH_UTMP -+#endif - if ((fd = open(_UTMP_FILE, O_RDWR)) < 0) - return; - diff --git a/security/srp/files/patch-base::pam_eps::Makefile.in b/security/srp/files/patch-base::pam_eps::Makefile.in deleted file mode 100644 index e0c4b3b21efc..000000000000 --- a/security/srp/files/patch-base::pam_eps::Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ ---- base/pam_eps/Makefile.in.orig Sun Apr 8 17:11:31 2001 -+++ base/pam_eps/Makefile.in Wed Jul 25 14:10:29 2001 -@@ -23,7 +23,7 @@ - CHKPWD = eps_chkpwd - FAKEROOT = @prefix@ - SUPPLEMENTED = /sbin --SECUREDIR = /lib/security -+SECUREDIR = /lib - EXTRAS = -DCHKPWD_HELPER=\"$(SUPPLEMENTED)/$(CHKPWD)\" - - CPPFLAGS = @CPPFLAGS@ -I../../libsrp $(USE_LCKPWDF) $(NEED_LCKPWDF) $(EXTRAS) diff --git a/security/srp/files/patch-configure b/security/srp/files/patch-configure deleted file mode 100644 index f014b3d11bc2..000000000000 --- a/security/srp/files/patch-configure +++ /dev/null @@ -1,10 +0,0 @@ ---- configure.orig Fri May 25 23:22:27 2001 -+++ configure Wed Jul 25 13:28:17 2001 -@@ -594,6 +594,7 @@ - INSTALL="$ac_install_sh" - fi - fi -+ac_given_INSTALL="$INSTALL" - echo "$ac_t""$INSTALL" 1>&6 - - # Use test -z because SunOS4 sh mishandles braces in ${var-val}. diff --git a/security/srp/files/patch-telnet::telnetd::sys_term.c b/security/srp/files/patch-telnet::telnetd::sys_term.c deleted file mode 100644 index e971bbaf307c..000000000000 --- a/security/srp/files/patch-telnet::telnetd::sys_term.c +++ /dev/null @@ -1,12 +0,0 @@ ---- telnet/telnetd/sys_term.c.orig Tue Jul 31 01:27:05 2001 -+++ telnet/telnetd/sys_term.c Tue Jan 22 16:31:27 2002 -@@ -111,6 +111,9 @@ - # else - char wtmpf[] = "/usr/adm/wtmp"; - # endif -+#if defined(__FreeBSD__) -+#define UTMP_FILE _PATH_UTMP -+#endif - # ifdef UTMP_FILE - char utmpf[] = UTMP_FILE; - # else diff --git a/security/srp/pkg-descr b/security/srp/pkg-descr deleted file mode 100644 index 4aaf84f96304..000000000000 --- a/security/srp/pkg-descr +++ /dev/null @@ -1,15 +0,0 @@ -Excerpt from the README: - SRP stands for the Secure Remote Password protocol, which is a secure - password-based authentication and key-exchange mechanism that can be - used to establish session security and mutual authentication over - untrusted networks without requiring an external public-key infrastructure - or trusted third parties. The SRP distribution consists of a fully- - featured, portable library that implements SRP-based secure password - authentication as well as implementations of popular applications and - services like Telnet and FTP with support for transport security and - SRP. These password-based applications leverage the strength of the - SRP authentication mechanism to offer fairly good protection against - both passive and active network attacks, which is an improvement over - most existing password-only techniques. - -WWW: http://srp.stanford.edu/ diff --git a/security/srp/pkg-plist b/security/srp/pkg-plist deleted file mode 100644 index 536530274ca0..000000000000 --- a/security/srp/pkg-plist +++ /dev/null @@ -1,43 +0,0 @@ -bin/ftp -bin/login -bin/passwd -bin/su -bin/tconf -bin/telnet -include/cstr.h -include/krypto.h -include/srp.h -include/srp_aux.h -include/t_client.h -include/t_pwd.h -include/t_server.h -include/t_sha.h -lib/libkrypto.a -lib/libsrp.a -lib/pam_eps_auth.so -lib/pam_eps_passwd.so -sbin/eps_chkpwd -sbin/ftpd -sbin/telnetd -%%PORTDOCS%%%%DOCSDIR%%/Acknowledgements -%%PORTDOCS%%%%DOCSDIR%%/Copyrights -%%PORTDOCS%%%%DOCSDIR%%/LICENSE -%%PORTDOCS%%%%DOCSDIR%%/copyright.c -%%PORTDOCS%%%%DOCSDIR%%/draft-altman-rfc2942bis-00.txt -%%PORTDOCS%%%%DOCSDIR%%/draft-altman-rfc2944bis-01.txt -%%PORTDOCS%%%%DOCSDIR%%/draft-altman-telnet-fwdx-02.txt -%%PORTDOCS%%%%DOCSDIR%%/draft-ietf-tls-srp-13.txt -%%PORTDOCS%%%%DOCSDIR%%/draft-ietf-tn3270e-telnet-tls-05.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2941.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2942.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2944.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2945.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2946.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2947.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2948.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2949.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2950.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2952.txt -%%PORTDOCS%%%%DOCSDIR%%/rfc2953.txt -%%PORTDOCS%%%%DOCSDIR%%/srp.ps -%%PORTDOCS%%@dirrm %%DOCSDIR%% diff --git a/security/sud/Makefile b/security/sud/Makefile deleted file mode 100644 index 89bb60630877..000000000000 --- a/security/sud/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# Created by: bugghy -# $FreeBSD$ - -PORTNAME= sud -PORTVERSION= 1.3 -PORTREVISION= 1 -CATEGORIES= security sysutils -MASTER_SITES= SF - -MAINTAINER= ports@FreeBSD.org -COMMENT= Execute processes with special privileges in a nosuid environment - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -GNU_CONFIGURE= yes -MAN1= sud.1 suz.1 ilogin.1 - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -post-patch: - @${REINPLACE_CMD} -e 's|/etc|${PREFIX}/etc|g' \ - ${WRKSRC}/ilogin.1 ${WRKSRC}/sud.1 ${WRKSRC}/login/login.c ${WRKSRC}/sud/main.c - @${REINPLACE_CMD} -e 's|/usr/sbin/ilogin|${PREFIX}/ilogin| ; s|/usr/bin/ls|/bin/ls|' \ - ${WRKSRC}/miscs/sud.conf.sample - -post-install: - ${INSTALL_MAN} ${WRKSRC}/sud.1 ${MAN1PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/suz.1 ${MAN1PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/ilogin.1 ${MAN1PREFIX}/man/man1 - -.for i in issue.suz motd.suz sud.conf.sample - ${INSTALL_DATA} ${WRKSRC}/miscs/${i} ${PREFIX}/etc -.endfor - @if [ ! -f ${PREFIX}/etc/sud.conf ]; then \ - ${CP} -p ${PREFIX}/etc/sud.conf.sample ${PREFIX}/etc/sud.conf ; \ - fi - -.include diff --git a/security/sud/distinfo b/security/sud/distinfo deleted file mode 100644 index 013e27acf163..000000000000 --- a/security/sud/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (sud-1.3.tar.gz) = c4fdf9dfc7a58daf75cb37d2bc4d10d3767216e2b8e4861a87c2d274bac252a0 -SIZE (sud-1.3.tar.gz) = 117542 diff --git a/security/sud/pkg-descr b/security/sud/pkg-descr deleted file mode 100644 index 9b0a6b4226cb..000000000000 --- a/security/sud/pkg-descr +++ /dev/null @@ -1,6 +0,0 @@ -Sud is a daemon to execute interactive and non-interactive -processes with special (and customizable) privileges in a -nosuid environment. It is based on a client/server model -and on the ability to pass file descriptors between processes. - -WWW: http://sourceforge.net/projects/sud/ diff --git a/security/sud/pkg-plist b/security/sud/pkg-plist deleted file mode 100644 index 6be92aac5ccf..000000000000 --- a/security/sud/pkg-plist +++ /dev/null @@ -1,8 +0,0 @@ -bin/suz -etc/issue.suz -etc/motd.suz -@unexec if cmp -s %D/etc/sud.conf.sample %D/etc/sud.conf; then rm -f %D/etc/sud.conf; fi -etc/sud.conf.sample -@exec if [ ! -f %D/etc/sud.conf ] ; then cp -p %D/%F %B/sud.conf; fi -sbin/ilogin -sbin/sud diff --git a/sysutils/Makefile b/sysutils/Makefile index 5a45ffe059df..1599bfe19a8f 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -382,7 +382,6 @@ SUBDIR += htop SUBDIR += httplog SUBDIR += hwstat - SUBDIR += hyperic-sigar SUBDIR += i2c-tools SUBDIR += i7z SUBDIR += iat @@ -475,8 +474,6 @@ SUBDIR += logtool SUBDIR += logwatch SUBDIR += lookat - SUBDIR += lookupd - SUBDIR += lookupd_ldap SUBDIR += lsof SUBDIR += ltrace SUBDIR += luckybackup @@ -627,7 +624,6 @@ SUBDIR += p5-Sys-Load SUBDIR += p5-Sys-Syslog SUBDIR += p5-Sys-User-UIDhelper - SUBDIR += p5-Sys-Utmp SUBDIR += p5-Sysadm-Install SUBDIR += p5-SyslogScan SUBDIR += p5-Tail-Stat @@ -907,7 +903,6 @@ SUBDIR += syslinux SUBDIR += syslog-ng SUBDIR += syslog-ng-incubator - SUBDIR += syslog-ng2 SUBDIR += syslog-ng33 SUBDIR += syslog-ng34 SUBDIR += syslogger @@ -1060,7 +1055,6 @@ SUBDIR += xstow SUBDIR += xsysstats SUBDIR += xvidcap - SUBDIR += yawho SUBDIR += yum SUBDIR += zeitgeist SUBDIR += zeroer diff --git a/sysutils/hyperic-sigar/Makefile b/sysutils/hyperic-sigar/Makefile deleted file mode 100644 index 05c84986022b..000000000000 --- a/sysutils/hyperic-sigar/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# Created by: Sergey Skvortsov -# $FreeBSD$ - -PORTNAME= hyperic-sigar -PORTVERSION= 1.6.4 -CATEGORIES= sysutils -MASTER_SITES= SF -MASTER_SITE_SUBDIR= sigar/sigar/${PORTVERSION:C/\.[0-9]+$//} -DISTNAME= ${PORTNAME}-${PORTVERSION}-src - -MAINTAINER= ports@FreeBSD.org -COMMENT= SIGAR - System Information Gatherer and Reporter - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -WRKSRC= ${WRKDIR}/${DISTNAME}/bindings/java/ - -USES= perl5 -USE_JAVA= yes -JAVA_VERSION= 1.6+ -USE_ANT= yes -USE_PERL5= build -USE_LDCONFIG= yes - -SHLIB_MAJOR= 0 -PLIST_SUB= SHLIB_MAJOR="${SHLIB_MAJOR}" - -NO_STAGE= yes -.include -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -do-install: - ${MKDIR} ${PREFIX}/include ${PREFIX}/lib ${JAVAJARDIR} - ${INSTALL_DATA} ${WRKSRC}/sigar-bin/include/*.h ${PREFIX}/include/ - ${INSTALL_DATA} ${WRKSRC}/sigar-bin/lib/libsigar-*.so ${PREFIX}/lib/libsigar.so.${SHLIB_MAJOR} - ${LN} -sf ${PREFIX}/lib/libsigar.so.${SHLIB_MAJOR} ${PREFIX}/lib/libsigar.so - ${INSTALL_DATA} ${WRKSRC}/sigar-bin/lib/sigar.jar ${JAVAJARDIR}/ - -.include diff --git a/sysutils/hyperic-sigar/distinfo b/sysutils/hyperic-sigar/distinfo deleted file mode 100644 index 33f2c22bd833..000000000000 --- a/sysutils/hyperic-sigar/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (hyperic-sigar-1.6.4-src.tar.gz) = dcf8348e3979b6f5d9b129571cf4bbc8fce87b866f5b9a682880d99f6c3e692f -SIZE (hyperic-sigar-1.6.4-src.tar.gz) = 1253729 diff --git a/sysutils/hyperic-sigar/pkg-descr b/sysutils/hyperic-sigar/pkg-descr deleted file mode 100644 index d10b31efb27c..000000000000 --- a/sysutils/hyperic-sigar/pkg-descr +++ /dev/null @@ -1,23 +0,0 @@ -Hyperic's System Information Gatherer (SIGAR) is a cross-platform API -for collecting software inventory data. SIGAR is core of HQ's -auto-discovery functionality, and you can use it to extend -auto-discovery behavior. - -SIGAR includes support for Linux, FreeBSD, Windows, Solaris, AIX, HP-UX -and Mac OSX across a variety of versions and architectures. Users of -the SIGAR API are given portable access to inventory and monitoring data -including: - - * System memory, swap, cpu, load average, uptime, logins - * Per-process memory, cpu, credential info, state, arguments, - environment, open files - * File system detection and metrics - * Network interface detection, configuration information and metrics - * TCP and UDP connection tables - * Network route tables - -This information is available in most operating systems, but each OS has -its own way(s) providing it. SIGAR provides developers with one API to -access this information regardless of the underlying platform. - -WWW: http://support.hyperic.com/display/SIGAR/Home diff --git a/sysutils/hyperic-sigar/pkg-plist b/sysutils/hyperic-sigar/pkg-plist deleted file mode 100644 index 6d598ca6b6b2..000000000000 --- a/sysutils/hyperic-sigar/pkg-plist +++ /dev/null @@ -1,8 +0,0 @@ -include/sigar.h -include/sigar_fileinfo.h -include/sigar_format.h -include/sigar_log.h -include/sigar_ptql.h -lib/libsigar.so.%%SHLIB_MAJOR%% -lib/libsigar.so -%%JAVAJARDIR%%/sigar.jar diff --git a/sysutils/lookupd/Makefile b/sysutils/lookupd/Makefile deleted file mode 100644 index 0dce790bc642..000000000000 --- a/sysutils/lookupd/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# Created by: Michael Bushkov -# $FreeBSD$ - -PORTNAME= lookupd -PORTVERSION= 0.3.c -PORTREVISION= 1 -CATEGORIES= sysutils -MASTER_SITES= http://sfedu.ru/~bushman/lookupd/downloads/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Lookupd daemon - IPC nsswitch implementation with system-wide caching - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -USE_LDCONFIG= yes -USE_RC_SUBR= lookupd -SUB_FILES= pkg-message - -MAKE_ENV= WARNS=0 - -MAN5= lookupd.conf.5 -MAN8= lookupd.8 - -NO_STAGE= yes -post-install: - @${CAT} ${PKGMESSAGE} - -.include - -.if ${ARCH} == "amd64" || ${ARCH} == "ia64" -CFLAGS+= -fPIC -.endif - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/sysutils/lookupd/distinfo b/sysutils/lookupd/distinfo deleted file mode 100644 index 24cf94f02bfd..000000000000 --- a/sysutils/lookupd/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (lookupd-0.3.c.tar.gz) = 01f67813f581b81ad787d9bef2083d86710375569f891dcd0bbefeb5ee9f8637 -SIZE (lookupd-0.3.c.tar.gz) = 113253 diff --git a/sysutils/lookupd/files/lookupd.in b/sysutils/lookupd/files/lookupd.in deleted file mode 100644 index 7a987a12f68f..000000000000 --- a/sysutils/lookupd/files/lookupd.in +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# PROVIDE: lookupd -# REQUIRE: mountcritlocal -# BEFORE: LOGIN - -# -# Add the following lines to /etc/rc.conf to enable lookupd: -# -# lookupd_enable="YES" -# lookupd_flags="" -# -# See lookupd(8) for flags - -. /etc/rc.subr - -name=lookupd -rcvar=lookupd_enable - -command=%%PREFIX%%/sbin/lookupd - -lookupd_enable=${lookupd_enable:-"NO"} -lookupd_pidfile=${lookupd_pidfile:-"/var/run/lookupd.pid"} - -load_rc_config $name -run_rc_command "$1" diff --git a/sysutils/lookupd/files/patch-lookupd.c b/sysutils/lookupd/files/patch-lookupd.c deleted file mode 100644 index 084711b1974b..000000000000 --- a/sysutils/lookupd/files/patch-lookupd.c +++ /dev/null @@ -1,11 +0,0 @@ ---- bin/lookupd.c.orig Tue Aug 10 14:37:18 2004 -+++ bin/lookupd.c Tue Aug 10 14:37:24 2004 -@@ -174,7 +174,7 @@ - - for (i = 0; i < event_data->data; i++) { - struct sockaddr addr; -- size_t addrlen; -+ socklen_t addrlen; - - addrlen = sizeof(addr); - fd = accept(event_data->ident, &addr, &addrlen); diff --git a/sysutils/lookupd/files/patch-modules-dns-Makefile b/sysutils/lookupd/files/patch-modules-dns-Makefile deleted file mode 100644 index 15ff7dae8b75..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-Makefile +++ /dev/null @@ -1,11 +0,0 @@ ---- modules/dns/Makefile.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/Makefile Tue Aug 1 18:11:07 2006 -@@ -6,7 +6,7 @@ - STRIP= - SRCS= dns_ht.c dns_htinfo.c - WARNS?=2 --CFLAGS+=-pthread -I${.CURDIR}/../../include -+CFLAGS+=-pthread -I${.CURDIR}/../../include -DINET6 - LDFLAGS+=-nostdlib - NOMAN= 1 - diff --git a/sysutils/lookupd/files/patch-modules-dns-dns_ht.c b/sysutils/lookupd/files/patch-modules-dns-dns_ht.c deleted file mode 100644 index 597f1b3ff6b8..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-dns_ht.c +++ /dev/null @@ -1,117 +0,0 @@ ---- modules/dns/dns_ht.c.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/dns_ht.c Tue Aug 1 18:11:07 2006 -@@ -32,7 +32,11 @@ - #include - - #include "dns_ht.h" --#include "resolv/resolv.h" -+ -+#ifndef res_hostalias -+extern const char *_res_hostalias(const char *, char *, size_t); -+#define res_hostalias(a, b, c, d) _res_hostalias(b, c, d) -+#endif - - #define SPRINTF(x) ((size_t)sprintf x) - -@@ -58,6 +62,7 @@ - char ac; - } align; - -+#if 0 - pthread_key_t _res_key; - pthread_key_t _res_ext_key; - pthread_key_t _herrno_key; -@@ -99,15 +104,18 @@ - } - - extern void lookupd_res_send_init_keys(); -+#endif - - void - _init() - { -+#if 0 - pthread_key_create(&_res_key, NULL); - pthread_key_create(&_res_ext_key, NULL); - pthread_key_create(&_herrno_key, NULL); - - lookupd_res_send_init_keys(); -+#endif - } - - #ifdef DEBUG -@@ -168,10 +176,10 @@ - switch (qtype) { - case T_A: - case T_AAAA: -- name_ok = lookupd_res_hnok; -+ name_ok = res_hnok; - break; - case T_PTR: -- name_ok = lookupd_res_dnok; -+ name_ok = res_dnok; - break; - default: - h_errno = NO_RECOVERY; -@@ -320,7 +328,7 @@ - continue; /* XXX - had_error++ ? */ - } - n = dn_expand(answer->buf, eom, cp, bp, buflen); -- if ((n < 0) || !lookupd_res_hnok(bp)) { -+ if ((n < 0) || !res_hnok(bp)) { - had_error++; - break; - } -@@ -473,8 +481,9 @@ - char *bp; - int n, size, type, len; - struct hostent *hp; -+ char abuf[MAXDNAME]; - -- if ((_res.options & RES_INIT) == 0 && lookupd_res_init() == -1) { -+ if ((_res.options & RES_INIT) == 0 && res_init() == -1) { - h_errno = NETDB_INTERNAL; - return (NULL); - } -@@ -499,7 +508,8 @@ - /* - * if there aren't any dots, it could be a user-level alias. this is also done in res_query() since we are not the only function that looks up host names. - */ -- if (!strchr(name, '.') && (cp = lookupd_hostalias(name))) -+ if (!strchr(name, '.') && -+ (cp = res_hostalias(&_res, name, abuf, sizeof abuf))) - name = cp; - - /* -@@ -572,7 +582,7 @@ - h_errno = NETDB_INTERNAL; - return (NULL); - } -- n = lookupd_res_search(name, C_IN, type, buf->buf, sizeof(buf->buf)); -+ n = res_search(name, C_IN, type, buf->buf, sizeof(buf->buf)); - if (n < 0) { - free(buf); - dprintf("res_search failed %s %d (%d)\n", name, type, n); -@@ -604,7 +614,7 @@ - char hname2[MAXDNAME + 1]; - #endif /* SUNSECURITY */ - -- if ((_res.options & RES_INIT) == 0 && lookupd_res_init() == -1) { -+ if ((_res.options & RES_INIT) == 0 && res_init() == -1) { - h_errno = NETDB_INTERNAL; - return (NULL); - } -@@ -659,11 +669,11 @@ - h_errno = NETDB_INTERNAL; - return (NULL); - } -- n = lookupd_res_query(qbuf, C_IN, T_PTR, (u_char *) buf->buf, sizeof buf->buf); -+ n = res_query(qbuf, C_IN, T_PTR, (u_char *) buf->buf, sizeof buf->buf); - if (n < 0 && af == AF_INET6) { - *qp = '\0'; - strlcat(qbuf, "ip6.int", sizeof(qbuf)); -- n = lookupd_res_query(qbuf, C_IN, T_PTR, (u_char *) buf->buf, -+ n = res_query(qbuf, C_IN, T_PTR, (u_char *) buf->buf, - sizeof buf->buf); - } - if (n < 0) { diff --git a/sysutils/lookupd/files/patch-modules-dns-resolv-Makefile.inc b/sysutils/lookupd/files/patch-modules-dns-resolv-Makefile.inc deleted file mode 100644 index b7cd257ad9a6..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-resolv-Makefile.inc +++ /dev/null @@ -1,10 +0,0 @@ ---- modules/dns/resolv/Makefile.inc.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/resolv/Makefile.inc Tue Aug 1 18:11:07 2006 -@@ -1,6 +1,4 @@ - # $FreeBSD$ - - .PATH: ${.CURDIR}/resolv --SRCS+=getaddrinfo.c res_comp.c res_mkquery.c res_send.c herror.c \ -- res_data.c res_mkupdate.c res_update.c \ -- name6.c res_init.c res_query.c -+SRCS+=getaddrinfo.c name6.c diff --git a/sysutils/lookupd/files/patch-modules-dns-resolv-getaddrinfo.c b/sysutils/lookupd/files/patch-modules-dns-resolv-getaddrinfo.c deleted file mode 100644 index d331f068f96f..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-resolv-getaddrinfo.c +++ /dev/null @@ -1,2456 +0,0 @@ ---- modules/dns/resolv/getaddrinfo.c.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/resolv/getaddrinfo.c Tue Aug 1 18:11:07 2006 -@@ -1,46 +1,77 @@ --/* $KAME: getaddrinfo.c,v 1.15 2000/07/09 04:37:24 itojun Exp $ */ --/* Copyright (c) 2004 Michael Bushkov */ -+/* $KAME: getaddrinfo.c,v 1.15 2000/07/09 04:37:24 itojun Exp $ */ -+ - /* -- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. All rights reserved. -- * -- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -- * -- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * 3. Neither the name of the project nor the names of its contributors -+ * may be used to endorse or promote products derived from this software -+ * without specific prior written permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. - */ - - /* - * "#ifdef FAITH" part is local hack for supporting IPv4-v6 translator. -- * -- * Issues to be discussed: - Thread safe-ness must be checked. - Return values. There are nonstandard return values defined and used in the source code. This is because RFC2553 is silent about which error code must be returned for which situation. - freeaddrinfo(NULL). RFC2553 is silent about it. XNET 5.2 says it is invalid. current code - SEGV on freeaddrinfo(NULL) -- * -- * Note: - The code filters out AFs that are not supported by the kernel, when globbing NULL hostname (to loopback, or wildcard). Is it the right thing to do? What is the relationship with post-RFC2553 AI_ADDRCONFIG in ai_flags? - (post-2553) semantics of AI_ADDRCONFIG itself is too vague. (1) what should we do against numeric hostname (2) what should we do against NULL hostname (3) what is AI_ADDRCONFIG itself. AF not ready? non-loopback address configured? global address configured? -- * -- * OS specific notes for netbsd/openbsd/freebsd4/bsdi4: - To avoid search order issue, we have a big amount of code duplicate from gethnamaddr.c and some other places. The issues that there's no lower layer function to lookup "IPv4 or IPv6" record. Calling gethostbyname2 from getaddrinfo will end up in wrong search order, as presented above. -- * -- * OS specific notes for freebsd4: - FreeBSD supported $GAI. The code does not. - FreeBSD allowed classful IPv4 numeric (127.1), the code does not. -+ * -+ * Issues to be discussed: -+ * - Thread safe-ness must be checked. -+ * - Return values. There are nonstandard return values defined and used -+ * in the source code. This is because RFC2553 is silent about which error -+ * code must be returned for which situation. -+ * - freeaddrinfo(NULL). RFC2553 is silent about it. XNET 5.2 says it is -+ * invalid. current code - SEGV on freeaddrinfo(NULL) -+ * -+ * Note: -+ * - The code filters out AFs that are not supported by the kernel, -+ * when globbing NULL hostname (to loopback, or wildcard). Is it the right -+ * thing to do? What is the relationship with post-RFC2553 AI_ADDRCONFIG -+ * in ai_flags? -+ * - (post-2553) semantics of AI_ADDRCONFIG itself is too vague. -+ * (1) what should we do against numeric hostname (2) what should we do -+ * against NULL hostname (3) what is AI_ADDRCONFIG itself. AF not ready? -+ * non-loopback address configured? global address configured? -+ * -+ * OS specific notes for netbsd/openbsd/freebsd4/bsdi4: -+ * - To avoid search order issue, we have a big amount of code duplicate -+ * from gethnamaddr.c and some other places. The issues that there's no -+ * lower layer function to lookup "IPv4 or IPv6" record. Calling -+ * gethostbyname2 from getaddrinfo will end up in wrong search order, as -+ * presented above. -+ * -+ * OS specific notes for freebsd4: -+ * - FreeBSD supported $GAI. The code does not. -+ * - FreeBSD allowed classful IPv4 numeric (127.1), the code does not. - */ - - #include --__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.49 2004/02/25 21:03:45 green Exp $"); -+__FBSDID("$FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.49 2004/02/25 21:03:45 green Exp $"); - - #include - #include --#include --#include - #include --#include --#ifdef INET6 --#include --#include --#include /* XXX */ --#endif - #include - #include --#include --#include --#include - #include --#include -+#include - #include - #include - #include -@@ -48,1117 +79,140 @@ - #include - #include - #include --#include --#include -- --#include "un-namespace.h" --#include "namespace.h" --#include "res_config.h" --#include "resolv.h" -- --#if defined(__KAME__) && defined(INET6) --#define FAITH --#endif -- --#define SUCCESS 0 --#define ANY 0 --#define YES 1 --#define NO 0 -- --#ifdef DEBUG --#include --#endif -- --static const char in_addrany[] = {0, 0, 0, 0}; --static const char in_loopback[] = {127, 0, 0, 1}; --#ifdef INET6 --static const char in6_addrany[] = { -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 --}; --static const char in6_loopback[] = { -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 --}; --#endif -- --struct policyqueue { -- TAILQ_ENTRY(policyqueue) pc_entry; --#ifdef INET6 -- struct in6_addrpolicy pc_policy; --#endif --}; --TAILQ_HEAD(policyhead, policyqueue); -- --static const struct afd { -- int a_af; -- int a_addrlen; -- int a_socklen; -- int a_off; -- const char *a_addrany; -- const char *a_loopback; -- int a_scoped; --} afdl[] = { --#ifdef INET6 --#define N_INET6 0 -- { -- PF_INET6, sizeof(struct in6_addr), -- sizeof(struct sockaddr_in6), -- offsetof(struct sockaddr_in6, sin6_addr), -- in6_addrany, in6_loopback, 1 -- }, --#define N_INET 1 --#else --#define N_INET 0 --#endif -- { -- PF_INET, sizeof(struct in_addr), -- sizeof(struct sockaddr_in), -- offsetof(struct sockaddr_in, sin_addr), -- in_addrany, in_loopback, 0 -- }, -- { -- 0, 0, 0, 0, NULL, NULL, 0 -- }, --}; -- --struct explore { -- int e_af; -- int e_socktype; -- int e_protocol; -- const char *e_protostr; -- int e_wild; --#define WILD_AF(ex) ((ex)->e_wild & 0x01) --#define WILD_SOCKTYPE(ex) ((ex)->e_wild & 0x02) --#define WILD_PROTOCOL(ex) ((ex)->e_wild & 0x04) --}; -- --static const struct explore explore[] = { --#if 0 -- {PF_LOCAL, 0, ANY, ANY, NULL, 0x01}, --#endif --#ifdef INET6 -- {PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07}, -- {PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07}, -- {PF_INET6, SOCK_RAW, ANY, NULL, 0x05}, --#endif -- {PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07}, -- {PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07}, -- {PF_INET, SOCK_RAW, ANY, NULL, 0x05}, -- {PF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07}, -- {PF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07}, -- {PF_UNSPEC, SOCK_RAW, ANY, NULL, 0x05}, -- {-1, 0, 0, NULL, 0}, --}; -- --#ifdef INET6 --#define PTON_MAX 16 --#else --#define PTON_MAX 4 --#endif -- --#define AIO_SRCFLAG_DEPRECATED 0x1 -- --struct ai_order { -- union { -- struct sockaddr_storage aiou_ss; -- struct sockaddr aiou_sa; -- } aio_src_un; --#define aio_srcsa aio_src_un.aiou_sa -- u_int32_t aio_srcflag; -- int aio_srcscope; -- int aio_dstscope; -- struct policyqueue *aio_srcpolicy; -- struct policyqueue *aio_dstpolicy; -- struct addrinfo *aio_ai; -- int aio_matchlen; --}; -- --struct res_target { -- struct res_target *next; -- const char *name; /* domain name */ -- int qclass, qtype; /* class and type of query */ -- u_char *answer; /* buffer to put answer */ -- int anslen; /* size of answer buffer */ -- int n; /* result length */ --}; -- --#define MAXPACKET (64*1024) -- --typedef union { -- HEADER hdr; -- u_char buf[MAXPACKET]; --} querybuf; -- --static int str_isnumber(const char *); --static int --explore_null(const struct addrinfo *, -- const char *, struct addrinfo **); --static int --explore_numeric(const struct addrinfo *, const char *, -- const char *, struct addrinfo **); --static int --explore_numeric_scope(const struct addrinfo *, const char *, -- const char *, struct addrinfo **); --static int --get_canonname(const struct addrinfo *, -- struct addrinfo *, const char *); --static struct addrinfo * --get_ai(const struct addrinfo *, -- const struct afd *, const char *); --static int get_portmatch(const struct addrinfo *, const char *); --static int get_port(struct addrinfo *, const char *, int); --static const struct afd *find_afd(int); --static int addrconfig(struct addrinfo *); --static int comp_dst(const void *, const void *); --#ifdef INET6 --static int ip6_str2scopeid(char *, struct sockaddr_in6 *, u_int32_t *); --#endif --static int gai_addr2scopetype(struct sockaddr *); -- --static int --explore_fqdn(const struct addrinfo *, const char *, -- const char *, struct addrinfo **); -- --static int reorder(struct addrinfo *); --static int get_addrselectpolicy(struct policyhead *); --static void free_addrselectpolicy(struct policyhead *); --static struct policyqueue * --match_addrselectpolicy(struct sockaddr *, -- struct policyhead *); -- --static struct addrinfo * --getanswer(const querybuf *, int, const char *, int, -- const struct addrinfo *); --#if defined(RESOLVSORT) --static int addr4sort(struct addrinfo *); --#endif --int lookupd_dns_getaddrinfo(void *, const char *, const struct addrinfo *); -- --static int res_queryN(const char *, struct res_target *); --static int res_searchN(const char *, struct res_target *); --static int --res_querydomainN(const char *, const char *, -- struct res_target *); -- --static struct ai_errlist { -- const char *str; -- int code; --} ai_errlist[] = { -- { -- "Success", 0, -- }, -- { -- "Temporary failure in name resolution", EAI_AGAIN, -- }, -- { -- "Invalid value for ai_flags", EAI_BADFLAGS, -- }, -- { -- "Non-recoverable failure in name resolution", EAI_FAIL, -- }, -- { -- "ai_family not supported", EAI_FAMILY, -- }, -- { -- "Memory allocation failure", EAI_MEMORY, -- }, -- { -- "hostname nor servname provided, or not known", EAI_NONAME, -- }, -- { -- "servname not supported for ai_socktype", EAI_SERVICE, -- }, -- { -- "ai_socktype not supported", EAI_SOCKTYPE, -- }, -- { -- "System error returned in errno", EAI_SYSTEM, -- }, -- { -- "Invalid value for hints", EAI_BADHINTS, -- }, -- { -- "Resolved protocol is unknown", EAI_PROTOCOL, -- }, -- /* backward compatibility with userland code prior to 2553bis-02 */ -- { -- "Address family for hostname not supported", 1, -- }, -- { -- "No address associated with hostname", 7, -- }, -- { -- NULL, -1, -- }, --}; -- --/* -- * XXX: Many dependencies are not thread-safe. So, we share lock between getaddrinfo() and getipnodeby*(). Still, we cannot use getaddrinfo() and getipnodeby*() in conjunction with other functions which call them. -- */ --pthread_mutex_t __getaddrinfo_thread_lock = PTHREAD_MUTEX_INITIALIZER; --#define THREAD_LOCK() pthread_mutex_lock(&__getaddrinfo_thread_lock); --#define THREAD_UNLOCK() pthread_mutex_unlock(&__getaddrinfo_thread_lock); -- --/* XXX macros that make external reference is BAD. */ -- --#define GET_AI(ai, afd, addr) \ --do { \ -- /* external reference: pai, error, and label free */ \ -- (ai) = get_ai(pai, (afd), (addr)); \ -- if ((ai) == NULL) { \ -- error = EAI_MEMORY; \ -- goto free; \ -- } \ --} while (/*CONSTCOND*/0) -- --#define GET_PORT(ai, serv) \ --do { \ -- /* external reference: error and label free */ \ -- error = get_port((ai), (serv), 0); \ -- if (error != 0) \ -- goto free; \ --} while (/*CONSTCOND*/0) -- --#define GET_CANONNAME(ai, str) \ --do { \ -- /* external reference: pai, error and label free */ \ -- error = get_canonname(pai, (ai), (str)); \ -- if (error != 0) \ -- goto free; \ --} while (/*CONSTCOND*/0) -- --#define ERR(err) \ --do { \ -- /* external reference: error, and label bad */ \ -- error = (err); \ -- goto bad; \ -- /*NOTREACHED*/ \ --} while (/*CONSTCOND*/0) -- --#define MATCH_FAMILY(x, y, w) \ -- ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == PF_UNSPEC || (y) == PF_UNSPEC))) --#define MATCH(x, y, w) \ -- ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == ANY || (y) == ANY))) -- --char * --gai_strerror(ecode) -- int ecode; --{ -- struct ai_errlist *p; -- -- for (p = ai_errlist; p->str; p++) { -- if (p->code == ecode) -- return (char *)p->str; -- } -- return "Unknown error"; --} -- --void --freeaddrinfo(ai) -- struct addrinfo *ai; --{ -- struct addrinfo *next; -- -- do { -- next = ai->ai_next; -- if (ai->ai_canonname) -- free(ai->ai_canonname); -- /* no need to free(ai->ai_addr) */ -- free(ai); -- ai = next; -- } while (ai); --} -- --static int --str_isnumber(p) -- const char *p; --{ -- char *ep; -- -- if (*p == '\0') -- return NO; -- ep = NULL; -- errno = 0; -- (void)strtoul(p, &ep, 10); -- if (errno == 0 && ep && *ep == '\0') -- return YES; -- else -- return NO; --} -- --int --lookupd_getaddrinfo(hostname, servname, hints, res) -- const char *hostname, *servname; -- const struct addrinfo *hints; -- struct addrinfo **res; --{ -- struct addrinfo sentinel; -- struct addrinfo *cur; -- int error = 0; -- struct addrinfo ai; -- struct addrinfo ai0; -- struct addrinfo *pai; -- const struct explore *ex; -- int numeric = 0; -- -- memset(&sentinel, 0, sizeof(sentinel)); -- cur = &sentinel; -- pai = &ai; -- pai->ai_flags = 0; -- pai->ai_family = PF_UNSPEC; -- pai->ai_socktype = ANY; -- pai->ai_protocol = ANY; -- pai->ai_addrlen = 0; -- pai->ai_canonname = NULL; -- pai->ai_addr = NULL; -- pai->ai_next = NULL; -- -- if (hostname == NULL && servname == NULL) -- return EAI_NONAME; -- if (hints) { -- /* error check for hints */ -- if (hints->ai_addrlen || hints->ai_canonname || -- hints->ai_addr || hints->ai_next) -- ERR(EAI_BADHINTS); /* xxx */ -- if (hints->ai_flags & ~AI_MASK) -- ERR(EAI_BADFLAGS); -- switch (hints->ai_family) { -- case PF_UNSPEC: -- case PF_INET: --#ifdef INET6 -- case PF_INET6: --#endif -- break; -- default: -- ERR(EAI_FAMILY); -- } -- memcpy(pai, hints, sizeof(*pai)); -- -- /* -- * if both socktype/protocol are specified, check if they are meaningful combination. -- */ -- if (pai->ai_socktype != ANY && pai->ai_protocol != ANY) { -- for (ex = explore; ex->e_af >= 0; ex++) { -- if (pai->ai_family != ex->e_af) -- continue; -- if (ex->e_socktype == ANY) -- continue; -- if (ex->e_protocol == ANY) -- continue; -- if (pai->ai_socktype == ex->e_socktype && -- pai->ai_protocol != ex->e_protocol) { -- ERR(EAI_BADHINTS); -- } -- } -- } -- } -- /* -- * post-2553: AI_ALL and AI_V4MAPPED are effective only against AF_INET6 query. They need to be ignored if specified in other occassions. -- */ -- switch (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) { -- case AI_V4MAPPED: -- case AI_ALL | AI_V4MAPPED: -- if (pai->ai_family != AF_INET6) -- pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); -- break; -- case AI_ALL: --#if 1 -- /* illegal */ -- ERR(EAI_BADFLAGS); --#else -- pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); --#endif -- break; -- } -- -- /* -- * check for special cases. (1) numeric servname is disallowed if socktype/protocol are left unspecified. (2) servname is disallowed for raw and other inet{,6} sockets. -- */ -- if (MATCH_FAMILY(pai->ai_family, PF_INET, 1) --#ifdef PF_INET6 -- || MATCH_FAMILY(pai->ai_family, PF_INET6, 1) --#endif -- ) { -- ai0 = *pai; /* backup *pai */ -- -- if (pai->ai_family == PF_UNSPEC) { --#ifdef PF_INET6 -- pai->ai_family = PF_INET6; --#else -- pai->ai_family = PF_INET; --#endif -- } -- error = get_portmatch(pai, servname); -- if (error) -- ERR(error); -- -- *pai = ai0; -- } -- ai0 = *pai; -- -- /* NULL hostname, or numeric hostname */ -- for (ex = explore; ex->e_af >= 0; ex++) { -- *pai = ai0; -- -- /* PF_UNSPEC entries are prepared for DNS queries only */ -- if (ex->e_af == PF_UNSPEC) -- continue; -- -- if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex))) -- continue; -- if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex))) -- continue; -- if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex))) -- continue; -- -- if (pai->ai_family == PF_UNSPEC) -- pai->ai_family = ex->e_af; -- if (pai->ai_socktype == ANY && ex->e_socktype != ANY) -- pai->ai_socktype = ex->e_socktype; -- if (pai->ai_protocol == ANY && ex->e_protocol != ANY) -- pai->ai_protocol = ex->e_protocol; -- -- if (hostname == NULL) -- error = explore_null(pai, servname, &cur->ai_next); -- else -- error = explore_numeric_scope(pai, hostname, servname, &cur->ai_next); -- -- if (error) -- goto free; -- -- while (cur && cur->ai_next) -- cur = cur->ai_next; -- } - -- /* -- * XXX If numreic representation of AF1 can be interpreted as FQDN representation of AF2, we need to think again about the code below. -- */ -- if (sentinel.ai_next) { -- numeric = 1; -- goto good; -- } -- if (hostname == NULL) -- ERR(EAI_NONAME);/* used to be EAI_NODATA */ -- if (pai->ai_flags & AI_NUMERICHOST) -- ERR(EAI_NONAME); -- -- if ((pai->ai_flags & AI_ADDRCONFIG) != 0 && !addrconfig(&ai0)) -- ERR(EAI_FAIL); -- -- /* -- * hostname as alphabetical name. we would like to prefer AF_INET6 than AF_INET, so we'll make a outer loop by AFs. -- */ -- for (ex = explore; ex->e_af >= 0; ex++) { -- *pai = ai0; -- -- /* require exact match for family field */ -- if (pai->ai_family != ex->e_af) -- continue; -- -- if (!MATCH(pai->ai_socktype, ex->e_socktype, -- WILD_SOCKTYPE(ex))) { -- continue; -- } -- if (!MATCH(pai->ai_protocol, ex->e_protocol, -- WILD_PROTOCOL(ex))) { -- continue; -- } -- if (pai->ai_socktype == ANY && ex->e_socktype != ANY) -- pai->ai_socktype = ex->e_socktype; -- if (pai->ai_protocol == ANY && ex->e_protocol != ANY) -- pai->ai_protocol = ex->e_protocol; -- -- error = explore_fqdn(pai, hostname, servname, -- &cur->ai_next); -- -- while (cur && cur->ai_next) -- cur = cur->ai_next; -- } -- -- /* XXX inhibit errors if we have the result */ -- if (sentinel.ai_next) -- error = 0; -- --good: -- /* -- * ensure we return either: - error == 0, non-NULL *res - error != 0, NULL *res -- */ -- if (error == 0) { -- if (sentinel.ai_next) { -- /* -- * If the returned entry is for an active connection, and the given name is not numeric, reorder the list, so that the application would try the list in the most efficient order. -- */ -- if (hints == NULL || !(hints->ai_flags & AI_PASSIVE)) { -- if (!numeric) -- (void)reorder(&sentinel); -- } -- *res = sentinel.ai_next; -- return SUCCESS; -- } else -- error = EAI_FAIL; -- } --free: --bad: -- if (sentinel.ai_next) -- freeaddrinfo(sentinel.ai_next); -- *res = NULL; -- return error; --} -- --static int --reorder(sentinel) -- struct addrinfo *sentinel; --{ -- struct addrinfo *ai, **aip; -- struct ai_order *aio; -- int i, n; -- struct policyhead policyhead; -- -- /* count the number of addrinfo elements for sorting. */ -- for (n = 0, ai = sentinel->ai_next; ai != NULL; ai = ai->ai_next, n++); -- -- /* -- * If the number is small enough, we can skip the reordering process. -- */ -- if (n <= 1) -- return (n); -- -- /* allocate a temporary array for sort and initialization of it. */ -- if ((aio = malloc(sizeof(*aio) * n)) == NULL) -- return (n); /* give up reordering */ -- memset(aio, 0, sizeof(*aio) * n); -- -- /* retrieve address selection policy from the kernel */ -- TAILQ_INIT(&policyhead); -- if (!get_addrselectpolicy(&policyhead)) { -- /* no policy is installed into kernel, we don't sort. */ -- free(aio); -- return (n); -- } -- for (i = 0, ai = sentinel->ai_next; i < n; ai = ai->ai_next, i++) { -- aio[i].aio_ai = ai; -- aio[i].aio_dstscope = gai_addr2scopetype(ai->ai_addr); -- aio[i].aio_dstpolicy = match_addrselectpolicy(ai->ai_addr, -- &policyhead); -- } -- -- /* perform sorting. */ -- qsort(aio, n, sizeof(*aio), comp_dst); -- -- /* reorder the addrinfo chain. */ -- for (i = 0, aip = &sentinel->ai_next; i < n; i++) { -- *aip = aio[i].aio_ai; -- aip = &aio[i].aio_ai->ai_next; -- } -- *aip = NULL; -- -- /* cleanup and return */ -- free(aio); -- free_addrselectpolicy(&policyhead); -- return (n); --} -- --static int --get_addrselectpolicy(head) -- struct policyhead *head; --{ --#ifdef INET6 -- int mib[] = {CTL_NET, PF_INET6, IPPROTO_IPV6, IPV6CTL_ADDRCTLPOLICY}; -- size_t l; -- char *buf; -- struct in6_addrpolicy *pol, *ep; -- -- if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0) -- return (0); -- if ((buf = malloc(l)) == NULL) -- return (0); -- if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &l, NULL, 0) < 0) { -- free(buf); -- return (0); -- } -- ep = (struct in6_addrpolicy *) (buf + l); -- for (pol = (struct in6_addrpolicy *) buf; pol + 1 <= ep; pol++) { -- struct policyqueue *new; -- -- if ((new = malloc(sizeof(*new))) == NULL) { -- free_addrselectpolicy(head); /* make the list empty */ -- break; -- } -- new->pc_policy = *pol; -- TAILQ_INSERT_TAIL(head, new, pc_entry); -- } -- -- free(buf); -- return (1); --#else -- return (0); --#endif --} -- --static void --free_addrselectpolicy(head) -- struct policyhead *head; --{ -- struct policyqueue *ent, *nent; -- -- for (ent = TAILQ_FIRST(head); ent; ent = nent) { -- nent = TAILQ_NEXT(ent, pc_entry); -- TAILQ_REMOVE(head, ent, pc_entry); -- free(ent); -- } --} -- --static struct policyqueue * --match_addrselectpolicy(addr, head) -- struct sockaddr *addr; -- struct policyhead *head; --{ --#ifdef INET6 -- struct policyqueue *ent, *bestent = NULL; -- struct in6_addrpolicy *pol; -- int matchlen, bestmatchlen = -1; -- u_char *mp, *ep, *k, *p, m; -- struct sockaddr_in6 key; -- -- switch (addr->sa_family) { -- case AF_INET6: -- key = *(struct sockaddr_in6 *) addr; -- break; -- case AF_INET: -- /* convert the address into IPv4-mapped IPv6 address. */ -- memset(&key, 0, sizeof(key)); -- key.sin6_family = AF_INET6; -- key.sin6_len = sizeof(key); -- key.sin6_addr.s6_addr[10] = 0xff; -- key.sin6_addr.s6_addr[11] = 0xff; -- memcpy(&key.sin6_addr.s6_addr[12], -- &((struct sockaddr_in *) addr)->sin_addr, 4); -- break; -- default: -- return (NULL); -- } -- -- for (ent = TAILQ_FIRST(head); ent; ent = TAILQ_NEXT(ent, pc_entry)) { -- pol = &ent->pc_policy; -- matchlen = 0; -- -- mp = (u_char *) & pol->addrmask.sin6_addr; -- ep = mp + 16; /* XXX: scope field? */ -- k = (u_char *) & key.sin6_addr; -- p = (u_char *) & pol->addr.sin6_addr; -- for (; mp < ep && *mp; mp++, k++, p++) { -- m = *mp; -- if ((*k & m) != *p) -- goto next; /* not match */ -- if (m == 0xff) /* short cut for a typical case */ -- matchlen += 8; -- else { -- while (m >= 0x80) { -- matchlen++; -- m <<= 1; -- } -- } -- } -- -- /* matched. check if this is better than the current best. */ -- if (matchlen > bestmatchlen) { -- bestent = ent; -- bestmatchlen = matchlen; -- } --next: -- continue; -- } -- -- return (bestent); --#else -- return (NULL); --#endif -- --} -- --static int --comp_dst(arg1, arg2) -- const void *arg1, *arg2; --{ -- const struct ai_order *dst1 = arg1, *dst2 = arg2; -- -- /* -- * Rule 1: Avoid unusable destinations. XXX: we currently do not consider if an appropriate route exists. -- */ -- if (dst1->aio_srcsa.sa_family != AF_UNSPEC && -- dst2->aio_srcsa.sa_family == AF_UNSPEC) { -- return (-1); -- } -- if (dst1->aio_srcsa.sa_family == AF_UNSPEC && -- dst2->aio_srcsa.sa_family != AF_UNSPEC) { -- return (1); -- } -- /* Rule 2: Prefer matching scope. */ -- if (dst1->aio_dstscope == dst1->aio_srcscope && -- dst2->aio_dstscope != dst2->aio_srcscope) { -- return (-1); -- } -- if (dst1->aio_dstscope != dst1->aio_srcscope && -- dst2->aio_dstscope == dst2->aio_srcscope) { -- return (1); -- } -- /* Rule 3: Avoid deprecated addresses. */ -- if (dst1->aio_srcsa.sa_family != AF_UNSPEC && -- dst2->aio_srcsa.sa_family != AF_UNSPEC) { -- if (!(dst1->aio_srcflag & AIO_SRCFLAG_DEPRECATED) && -- (dst2->aio_srcflag & AIO_SRCFLAG_DEPRECATED)) { -- return (-1); -- } -- if ((dst1->aio_srcflag & AIO_SRCFLAG_DEPRECATED) && -- !(dst2->aio_srcflag & AIO_SRCFLAG_DEPRECATED)) { -- return (1); -- } -- } -- /* Rule 4: Prefer home addresses. */ -- /* XXX: not implemented yet */ -- -- /* Rule 5: Prefer matching label. */ --#ifdef INET6 -- if (dst1->aio_srcpolicy && dst1->aio_dstpolicy && -- dst1->aio_srcpolicy->pc_policy.label == -- dst1->aio_dstpolicy->pc_policy.label && -- (dst2->aio_srcpolicy == NULL || dst2->aio_dstpolicy == NULL || -- dst2->aio_srcpolicy->pc_policy.label != -- dst2->aio_dstpolicy->pc_policy.label)) { -- return (-1); -- } -- if (dst2->aio_srcpolicy && dst2->aio_dstpolicy && -- dst2->aio_srcpolicy->pc_policy.label == -- dst2->aio_dstpolicy->pc_policy.label && -- (dst1->aio_srcpolicy == NULL || dst1->aio_dstpolicy == NULL || -- dst1->aio_srcpolicy->pc_policy.label != -- dst1->aio_dstpolicy->pc_policy.label)) { -- return (1); -- } --#endif -- -- /* Rule 6: Prefer higher precedence. */ --#ifdef INET6 -- if (dst1->aio_dstpolicy && -- (dst2->aio_dstpolicy == NULL || -- dst1->aio_dstpolicy->pc_policy.preced > -- dst2->aio_dstpolicy->pc_policy.preced)) { -- return (-1); -- } -- if (dst2->aio_dstpolicy && -- (dst1->aio_dstpolicy == NULL || -- dst2->aio_dstpolicy->pc_policy.preced > -- dst1->aio_dstpolicy->pc_policy.preced)) { -- return (1); -- } --#endif -- -- /* Rule 7: Prefer native transport. */ -- /* XXX: not implemented yet */ -- -- /* Rule 8: Prefer smaller scope. */ -- if (dst1->aio_dstscope >= 0 && -- dst1->aio_dstscope < dst2->aio_dstscope) { -- return (-1); -- } -- if (dst2->aio_dstscope >= 0 && -- dst2->aio_dstscope < dst1->aio_dstscope) { -- return (1); -- } -- /* -- * Rule 9: Use longest matching prefix. We compare the match length in a same AF only. -- */ -- if (dst1->aio_ai->ai_addr->sa_family == -- dst2->aio_ai->ai_addr->sa_family) { -- if (dst1->aio_matchlen > dst2->aio_matchlen) { -- return (-1); -- } -- if (dst1->aio_matchlen < dst2->aio_matchlen) { -- return (1); -- } -- } -- /* Rule 10: Otherwise, leave the order unchanged. */ -- return (-1); --} -- --/* -- * Copy from scope.c. XXX: we should standardize the functions and link them as standard library. -- */ --static int --gai_addr2scopetype(sa) -- struct sockaddr *sa; --{ --#ifdef INET6 -- struct sockaddr_in6 *sa6; --#endif -- struct sockaddr_in *sa4; -- -- switch (sa->sa_family) { --#ifdef INET6 -- case AF_INET6: -- sa6 = (struct sockaddr_in6 *) sa; -- if (IN6_IS_ADDR_MULTICAST(&sa6->sin6_addr)) { -- /* just use the scope field of the multicast address */ -- return (sa6->sin6_addr.s6_addr[2] & 0x0f); -- } -- /* -- * Unicast addresses: map scope type to corresponding scope value defined for multcast addresses. XXX: hardcoded scope type values are bad... -- */ -- if (IN6_IS_ADDR_LOOPBACK(&sa6->sin6_addr)) -- return (1); /* node local scope */ -- if (IN6_IS_ADDR_LINKLOCAL(&sa6->sin6_addr)) -- return (2); /* link-local scope */ -- if (IN6_IS_ADDR_SITELOCAL(&sa6->sin6_addr)) -- return (5); /* site-local scope */ -- return (14); /* global scope */ -- break; --#endif -- case AF_INET: -- /* -- * IPv4 pseudo scoping according to RFC 3484. -- */ -- sa4 = (struct sockaddr_in *) sa; -- /* IPv4 autoconfiguration addresses have link-local scope. */ -- if (((u_char *) & sa4->sin_addr)[0] == 169 && -- ((u_char *) & sa4->sin_addr)[1] == 254) -- return (2); -- /* Private addresses have site-local scope. */ -- if (((u_char *) & sa4->sin_addr)[0] == 10 || -- (((u_char *) & sa4->sin_addr)[0] == 172 && -- (((u_char *) & sa4->sin_addr)[1] & 0xf0) == 16) || -- (((u_char *) & sa4->sin_addr)[0] == 192 && -- ((u_char *) & sa4->sin_addr)[1] == 168)) -- return (5); -- /* Loopback addresses have link-local scope. */ -- if (((u_char *) & sa4->sin_addr)[0] == 127) -- return (2); -- return (14); -- break; -- default: -- errno = EAFNOSUPPORT; /* is this a good error? */ -- return (-1); -- } --} -- --/* -- * hostname == NULL. passive socket -> anyaddr (0.0.0.0 or ::) non-passive socket -> localhost (127.0.0.1 or ::1) -- */ --static int --explore_null(pai, servname, res) -- const struct addrinfo *pai; -- const char *servname; -- struct addrinfo **res; --{ -- int s; -- const struct afd *afd; -- struct addrinfo *cur; -- struct addrinfo sentinel; -- int error; -- -- *res = NULL; -- sentinel.ai_next = NULL; -- cur = &sentinel; -- -- /* -- * filter out AFs that are not supported by the kernel XXX errno? -- */ -- s = socket(pai->ai_family, SOCK_DGRAM, 0); -- if (s < 0) { -- if (errno != EMFILE) -- return 0; -- } else -- close(s); -- -- /* -- * if the servname does not match socktype/protocol, ignore it. -- */ -- if (get_portmatch(pai, servname) != 0) -- return 0; -- -- afd = find_afd(pai->ai_family); -- if (afd == NULL) -- return 0; -- -- if (pai->ai_flags & AI_PASSIVE) { -- GET_AI(cur->ai_next, afd, afd->a_addrany); -- /* -- * xxx meaningless? GET_CANONNAME(cur->ai_next, "anyaddr"); -- */ -- GET_PORT(cur->ai_next, servname); -- } else { -- GET_AI(cur->ai_next, afd, afd->a_loopback); -- /* -- * xxx meaningless? GET_CANONNAME(cur->ai_next, "localhost"); -- */ -- GET_PORT(cur->ai_next, servname); -- } -- cur = cur->ai_next; -- -- *res = sentinel.ai_next; -- return 0; -- --free: -- if (sentinel.ai_next) -- freeaddrinfo(sentinel.ai_next); -- return error; --} -- --/* -- * numeric hostname -- */ --static int --explore_numeric(pai, hostname, servname, res) -- const struct addrinfo *pai; -- const char *hostname; -- const char *servname; -- struct addrinfo **res; --{ -- const struct afd *afd; -- struct addrinfo *cur; -- struct addrinfo sentinel; -- int error; -- char pton[PTON_MAX]; -+#define DEBUG 1 /* enable debugging code (needed for dig) */ -+#define RESOLVSORT /* allow sorting of addresses in gethostbyname */ - -- *res = NULL; -- sentinel.ai_next = NULL; -- cur = &sentinel; -+#ifdef DEBUG -+#include -+#endif - -- /* -- * if the servname does not match socktype/protocol, ignore it. -- */ -- if (get_portmatch(pai, servname) != 0) -- return 0; -+#include -+#include - -- afd = find_afd(pai->ai_family); -- if (afd == NULL) -- return 0; -+#ifndef res_ninit -+#define res_ninit(r) res_init() -+#define res_nmkquery(r,a, b, c, d, e, f, g, h, i) \ -+ res_mkquery(a, b, c, d, e, f, g, h, i) -+#define res_nopt(r, a, b, c, d) res_opt(a, b, c, d) -+#define res_nsend(r, a, b, c, d) res_send(a, b, c, d) -+#endif -+ -+#ifndef res_hostalias -+extern const char *_res_hostalias(const char *, char *, size_t); -+#define res_hostalias(a, b, c, d) _res_hostalias(b, c, d) -+#endif -+ -+#ifndef RES_SET_H_ERRNO -+typedef struct __res_state *res_state; -+#define RES_SET_H_ERRNO(r,x) h_errno -+#define H_ERRNO(r) h_errno -+#else -+#define H_ERRNO(r) (r)->res_h_errno -+#endif - -- switch (afd->a_af) { --#if 1 /* X/Open spec */ -- case AF_INET: -- if (inet_aton(hostname, (struct in_addr *) pton) == 1) { -- if (pai->ai_family == afd->a_af || -- pai->ai_family == PF_UNSPEC /* ? */ ) { -- GET_AI(cur->ai_next, afd, pton); -- GET_PORT(cur->ai_next, servname); -- while (cur && cur->ai_next) -- cur = cur->ai_next; -- } else -- ERR(EAI_FAMILY); /* xxx */ -- } -- break; -+#ifndef RES_USE_DNSSEC -+#define RES_USE_DNSSEC 0 - #endif -- default: -- if (inet_pton(afd->a_af, hostname, pton) == 1) { -- if (pai->ai_family == afd->a_af || -- pai->ai_family == PF_UNSPEC /* ? */ ) { -- GET_AI(cur->ai_next, afd, pton); -- GET_PORT(cur->ai_next, servname); -- while (cur && cur->ai_next) -- cur = cur->ai_next; -- } else -- ERR(EAI_FAMILY); /* XXX */ -- } -- break; -- } - -- *res = sentinel.ai_next; -- return 0; -+#if defined(__KAME__) && defined(INET6) -+# define FAITH -+#endif - --free: --bad: -- if (sentinel.ai_next) -- freeaddrinfo(sentinel.ai_next); -- return error; --} -+static const char in_addrany[] = { 0, 0, 0, 0 }; -+static const char in_loopback[] = { 127, 0, 0, 1 }; -+#ifdef INET6 -+static const char in6_addrany[] = { -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -+}; -+static const char in6_loopback[] = { -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 -+}; -+#endif - --/* -- * numeric hostname with scope -- */ --static int --explore_numeric_scope(pai, hostname, servname, res) -- const struct addrinfo *pai; -- const char *hostname; -- const char *servname; -- struct addrinfo **res; --{ --#if !defined(SCOPE_DELIMITER) || !defined(INET6) -- return explore_numeric(pai, hostname, servname, res); -+static const struct afd { -+ int a_af; -+ int a_addrlen; -+ socklen_t a_socklen; -+ int a_off; -+ const char *a_addrany; -+ const char *a_loopback; -+ int a_scoped; -+} afdl [] = { -+#ifdef INET6 -+#define N_INET6 0 -+ {PF_INET6, sizeof(struct in6_addr), -+ sizeof(struct sockaddr_in6), -+ offsetof(struct sockaddr_in6, sin6_addr), -+ in6_addrany, in6_loopback, 1}, -+#define N_INET 1 - #else -- const struct afd *afd; -- struct addrinfo *cur; -- int error; -- char *cp, *hostname2 = NULL, *scope, *addr; -- struct sockaddr_in6 *sin6; -+#define N_INET 0 -+#endif -+ {PF_INET, sizeof(struct in_addr), -+ sizeof(struct sockaddr_in), -+ offsetof(struct sockaddr_in, sin_addr), -+ in_addrany, in_loopback, 0}, -+ {0, 0, 0, 0, NULL, NULL, 0}, -+}; - -- /* -- * if the servname does not match socktype/protocol, ignore it. -- */ -- if (get_portmatch(pai, servname) != 0) -- return 0; -+struct res_target { -+ struct res_target *next; -+ const char *name; /* domain name */ -+ int qclass, qtype; /* class and type of query */ -+ u_char *answer; /* buffer to put answer */ -+ int anslen; /* size of answer buffer */ -+ int n; /* result length */ -+}; - -- afd = find_afd(pai->ai_family); -- if (afd == NULL) -- return 0; -+#define MAXPACKET (64*1024) - -- if (!afd->a_scoped) -- return explore_numeric(pai, hostname, servname, res); -+typedef union { -+ HEADER hdr; -+ u_char buf[MAXPACKET]; -+} querybuf; - -- cp = strchr(hostname, SCOPE_DELIMITER); -- if (cp == NULL) -- return explore_numeric(pai, hostname, servname, res); -+static int get_canonname(const struct addrinfo *, -+ struct addrinfo *, const char *); -+static struct addrinfo *get_ai(const struct addrinfo *, -+ const struct afd *, const char *); -+static const struct afd *find_afd(int); -+static struct addrinfo *getanswer(const querybuf *, int, const char *, int, -+ const struct addrinfo *, res_state); -+#if defined(RESOLVSORT) -+static int addr4sort(struct addrinfo *, res_state); -+#endif - -- /* -- * Handle special case of -- */ -- hostname2 = strdup(hostname); -- if (hostname2 == NULL) -- return EAI_MEMORY; -- /* terminate at the delimiter */ -- hostname2[cp - hostname] = '\0'; -- addr = hostname2; -- scope = cp + 1; -- -- error = explore_numeric(pai, addr, servname, res); -- if (error == 0) { -- u_int32_t scopeid; -+static int res_queryN(const char *, struct res_target *, res_state); -+static int res_searchN(const char *, struct res_target *, res_state); -+static int res_querydomainN(const char *, const char *, -+ struct res_target *, res_state); - -- for (cur = *res; cur; cur = cur->ai_next) { -- if (cur->ai_family != AF_INET6) -- continue; -- sin6 = (struct sockaddr_in6 *) (void *)cur->ai_addr; -- if (ip6_str2scopeid(scope, sin6, &scopeid) == -1) { -- free(hostname2); -- return (EAI_NONAME); /* XXX: is return OK? */ -- } -- sin6->sin6_scope_id = scopeid; -- } -- } -- free(hostname2); -+/* XXX macros that make external reference is BAD. */ - -- return error; --#endif --} -+#define GET_AI(ai, afd, addr) \ -+do { \ -+ /* external reference: pai, error, and label free */ \ -+ (ai) = get_ai(pai, (afd), (addr)); \ -+ if ((ai) == NULL) { \ -+ error = EAI_MEMORY; \ -+ goto free; \ -+ } \ -+} while (/*CONSTCOND*/0) - - static int --get_canonname(pai, ai, str) -- const struct addrinfo *pai; -- struct addrinfo *ai; -- const char *str; -+get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str) - { - if ((pai->ai_flags & AI_CANONNAME) != 0) { -- ai->ai_canonname = (char *)malloc(strlen(str) + 1); -+ ai->ai_canonname = strdup(str); - if (ai->ai_canonname == NULL) - return EAI_MEMORY; -- strlcpy(ai->ai_canonname, str, strlen(str) + 1); - } - return 0; - } - - static struct addrinfo * --get_ai(pai, afd, addr) -- const struct addrinfo *pai; -- const struct afd *afd; -- const char *addr; -+get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr) - { - char *p; - struct addrinfo *ai; -@@ -1170,148 +224,63 @@ - - #ifdef FAITH - /* -- * Transfrom an IPv4 addr into a special IPv6 addr format for IPv6->IPv4 translation gateway. (only TCP is supported now) -- * -- * +-----------------------------------+------------+ | faith prefix part (12 bytes) | embedded | | | IPv4 addr part (4 bytes) +-----------------------------------+------------+ -- * -- * faith prefix part is specified as ascii IPv6 addr format in environmental variable GAI. For FAITH to work correctly, routing to faith prefix must be setup toward a machine where a FAITH daemon operates. Also, the machine must enable some mechanizm (e.g. faith interface hack) to divert those packet with faith prefixed destination addr to user-land FAITH daemon. -+ * Transfrom an IPv4 addr into a special IPv6 addr format for -+ * IPv6->IPv4 translation gateway. (only TCP is supported now) -+ * -+ * +-----------------------------------+------------+ -+ * | faith prefix part (12 bytes) | embedded | -+ * | | IPv4 addr part (4 bytes) -+ * +-----------------------------------+------------+ -+ * -+ * faith prefix part is specified as ascii IPv6 addr format -+ * in environmental variable GAI. -+ * For FAITH to work correctly, routing to faith prefix must be -+ * setup toward a machine where a FAITH daemon operates. -+ * Also, the machine must enable some mechanizm -+ * (e.g. faith interface hack) to divert those packet with -+ * faith prefixed destination addr to user-land FAITH daemon. - */ - fp_str = getenv("GAI"); - if (fp_str && inet_pton(AF_INET6, fp_str, &faith_prefix) == 1 && -- afd->a_af == AF_INET && pai->ai_socktype == SOCK_STREAM) { -+ afd->a_af == AF_INET && pai->ai_socktype == SOCK_STREAM) { - u_int32_t v4a; - u_int8_t v4a_top; - - memcpy(&v4a, addr, sizeof v4a); - v4a_top = v4a >> IN_CLASSA_NSHIFT; - if (!IN_MULTICAST(v4a) && !IN_EXPERIMENTAL(v4a) && -- v4a_top != 0 && v4a != IN_LOOPBACKNET) { -+ v4a_top != 0 && v4a != IN_LOOPBACKNET) { - afd = &afdl[N_INET6]; - memcpy(&faith_prefix.s6_addr[12], addr, -- sizeof(struct in_addr)); -+ sizeof(struct in_addr)); - translate = 1; - } - } - #endif - -- ai = (struct addrinfo *) malloc(sizeof(struct addrinfo) -+ ai = (struct addrinfo *)malloc(sizeof(struct addrinfo) - + (afd->a_socklen)); - if (ai == NULL) - return NULL; - - memcpy(ai, pai, sizeof(struct addrinfo)); -- ai->ai_addr = (struct sockaddr *) (void *)(ai + 1); -- memset(ai->ai_addr, 0, (size_t) afd->a_socklen); -+ ai->ai_addr = (struct sockaddr *)(void *)(ai + 1); -+ memset(ai->ai_addr, 0, (size_t)afd->a_socklen); - ai->ai_addr->sa_len = afd->a_socklen; - ai->ai_addrlen = afd->a_socklen; - ai->ai_addr->sa_family = ai->ai_family = afd->a_af; - p = (char *)(void *)(ai->ai_addr); - #ifdef FAITH - if (translate == 1) -- memcpy(p + afd->a_off, &faith_prefix, (size_t) afd->a_addrlen); -+ memcpy(p + afd->a_off, &faith_prefix, (size_t)afd->a_addrlen); - else - #endif -- memcpy(p + afd->a_off, addr, (size_t) afd->a_addrlen); -+ memcpy(p + afd->a_off, addr, (size_t)afd->a_addrlen); - return ai; - } - --static int --get_portmatch(ai, servname) -- const struct addrinfo *ai; -- const char *servname; --{ -- -- /* get_port does not touch first argument. when matchonly == 1. */ -- /* LINTED const cast */ -- return get_port((struct addrinfo *) ai, servname, 1); --} -- --static int --get_port(ai, servname, matchonly) -- struct addrinfo *ai; -- const char *servname; -- int matchonly; --{ -- const char *proto; -- struct servent *sp; -- int port; -- int allownumeric; -- -- if (servname == NULL) -- return 0; -- switch (ai->ai_family) { -- case AF_INET: --#ifdef AF_INET6 -- case AF_INET6: --#endif -- break; -- default: -- return 0; -- } -- -- switch (ai->ai_socktype) { -- case SOCK_RAW: -- return EAI_SERVICE; -- case SOCK_DGRAM: -- case SOCK_STREAM: -- allownumeric = 1; -- break; -- case ANY: -- allownumeric = 0; -- break; -- default: -- return EAI_SOCKTYPE; -- } -- -- if (str_isnumber(servname)) { -- if (!allownumeric) -- return EAI_SERVICE; -- port = atoi(servname); -- if (port < 0 || port > 65535) -- return EAI_SERVICE; -- port = htons(port); -- } else { -- switch (ai->ai_socktype) { -- case SOCK_DGRAM: -- proto = "udp"; -- break; -- case SOCK_STREAM: -- proto = "tcp"; -- break; -- default: -- proto = NULL; -- break; -- } -- -- THREAD_LOCK(); -- if ((sp = getservbyname(servname, proto)) == NULL) { -- THREAD_UNLOCK(); -- return EAI_SERVICE; -- } -- port = sp->s_port; -- THREAD_UNLOCK(); -- } -- -- if (!matchonly) { -- switch (ai->ai_family) { -- case AF_INET: -- ((struct sockaddr_in *) (void *) -- ai->ai_addr)->sin_port = port; -- break; --#ifdef INET6 -- case AF_INET6: -- ((struct sockaddr_in6 *) (void *) -- ai->ai_addr)->sin6_port = port; -- break; --#endif -- } -- } -- return 0; --} -- - static const struct afd * --find_afd(af) -- int af; -+find_afd(int af) - { - const struct afd *afd; - -@@ -1324,173 +293,29 @@ - return NULL; - } - --/* -- * post-2553: AI_ADDRCONFIG check. if we use getipnodeby* as backend, backend will take care of it. the semantics of AI_ADDRCONFIG is not defined well. we are not sure if the code is right or not. -- * -- * XXX PF_UNSPEC -> PF_INET6 + PF_INET mapping needs to be in sync with _dns_getaddrinfo. -- */ --static int --addrconfig(pai) -- struct addrinfo *pai; --{ -- int s, af; -- -- /* -- * TODO: Note that implementation dependent test for address configuration should be done everytime called (or apropriate interval), because addresses will be dynamically assigned or deleted. -- */ -- af = pai->ai_family; -- if (af == AF_UNSPEC) { -- if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) -- af = AF_INET; -- else { -- close(s); -- if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) -- af = AF_INET6; -- else -- close(s); -- } -- } -- if (af != AF_UNSPEC) { -- if ((s = socket(af, SOCK_DGRAM, 0)) < 0) -- return 0; -- close(s); -- } -- pai->ai_family = af; -- return 1; --} -- --#ifdef INET6 --/* convert a string to a scope identifier. XXX: IPv6 specific */ --static int --ip6_str2scopeid(scope, sin6, scopeid) -- char *scope; -- struct sockaddr_in6 *sin6; -- u_int32_t *scopeid; --{ -- u_long lscopeid; -- struct in6_addr *a6; -- char *ep; -- -- a6 = &sin6->sin6_addr; -- -- /* empty scopeid portion is invalid */ -- if (*scope == '\0') -- return -1; -- -- if (IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6)) { -- /* -- * We currently assume a one-to-one mapping between links and interfaces, so we simply use interface indices for like-local scopes. -- */ -- *scopeid = if_nametoindex(scope); -- if (*scopeid == 0) -- goto trynumeric; -- return 0; -- } -- /* still unclear about literal, allow numeric only - placeholder */ -- if (IN6_IS_ADDR_SITELOCAL(a6) || IN6_IS_ADDR_MC_SITELOCAL(a6)) -- goto trynumeric; -- if (IN6_IS_ADDR_MC_ORGLOCAL(a6)) -- goto trynumeric; -- else -- goto trynumeric;/* global */ -- -- /* try to convert to a numeric id as a last resort */ --trynumeric: -- errno = 0; -- lscopeid = strtoul(scope, &ep, 10); -- *scopeid = (u_int32_t) (lscopeid & 0xffffffffUL); -- if (errno == 0 && ep && *ep == '\0' && *scopeid == lscopeid) -- return 0; -- else -- return -1; --} --#endif -- --/* -- * FQDN hostname, DNS lookup -- */ --static int --explore_fqdn(pai, hostname, servname, res) -- const struct addrinfo *pai; -- const char *hostname; -- const char *servname; -- struct addrinfo **res; --{ -- struct addrinfo *result; -- struct addrinfo *cur; -- int error = 0; -- /* -- * static const ns_dtab dtab[] = { NS_FILES_CB(_files_getaddrinfo, NULL) { NSSRC_DNS, _dns_getaddrinfo, NULL }, // force -DHESIOD NS_NIS_CB(_yp_getaddrinfo, NULL) { 0 } }; -- */ -- -- result = NULL; -- -- /* -- * if the servname does not match socktype/protocol, ignore it. -- */ -- if (get_portmatch(pai, servname) != 0) -- return 0; -- -- /* -- * switch (_nsdispatch(&result, dtab, NSDB_HOSTS, "getaddrinfo", default_dns_files, hostname, pai)) { -- */ -- switch (lookupd_dns_getaddrinfo(&result, hostname, pai)) { -- case NS_TRYAGAIN: -- error = EAI_AGAIN; -- goto free; -- case NS_UNAVAIL: -- error = EAI_FAIL; -- goto free; -- case NS_NOTFOUND: -- error = EAI_NONAME; -- goto free; -- case NS_SUCCESS: -- error = 0; -- for (cur = result; cur; cur = cur->ai_next) { -- GET_PORT(cur, servname); -- /* canonname should be filled already */ -- } -- break; -- } -- -- *res = result; -- -- return 0; -- --free: -- if (result) -- freeaddrinfo(result); -- return error; --} -- - #ifdef DEBUG - static const char AskedForGot[] = --"gethostby*.getanswer: asked for \"%s\", got \"%s\""; -+ "gethostby*.getanswer: asked for \"%s\", got \"%s\""; - #endif --/* static FILE *hostf = NULL; */ - - static struct addrinfo * --getanswer(answer, anslen, qname, qtype, pai) --const querybuf * answer; -- int anslen; -- const char *qname; -- int qtype; -- const struct addrinfo *pai; -+getanswer(const querybuf *answer, int anslen, const char *qname, int qtype, -+ const struct addrinfo *pai, res_state res) - { - struct addrinfo sentinel, *cur; - struct addrinfo ai; - const struct afd *afd; - char *canonname; -- const HEADER * hp; -- const u_char * cp; -+ const HEADER *hp; -+ const u_char *cp; - int n; -- const u_char * eom; -+ const u_char *eom; - char *bp, *ep; - int type, class, ancount, qdcount; - int haveanswer, had_error; - char tbuf[MAXDNAME]; -- int (*name_ok) (const char *); -- char hostbuf[8 * 1024]; -+ int (*name_ok)(const char *); -+ char hostbuf[8*1024]; - - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; -@@ -1500,8 +325,8 @@ - switch (qtype) { - case T_A: - case T_AAAA: -- case T_ANY: /* use T_ANY only for T_A/T_AAAA lookup */ -- name_ok = lookupd_res_hnok; -+ case T_ANY: /*use T_ANY only for T_A/T_AAAA lookup*/ -+ name_ok = res_hnok; - break; - default: - return (NULL); /* XXX should be abort(); */ -@@ -1516,22 +341,23 @@ - ep = hostbuf + sizeof hostbuf; - cp = answer->buf + HFIXEDSZ; - if (qdcount != 1) { -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (NULL); - } - n = dn_expand(answer->buf, eom, cp, bp, ep - bp); -- if ((n < 0) || !(*name_ok) (bp)) { -- h_errno = NO_RECOVERY; -+ if ((n < 0) || !(*name_ok)(bp)) { -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (NULL); - } - cp += n + QFIXEDSZ; - if (qtype == T_A || qtype == T_AAAA || qtype == T_ANY) { -- /* -- * res_send() has already verified that the query name is the same as the one we sent; this just gets the expanded name (i.e., with the succeeding search-domain tacked on). -+ /* res_send() has already verified that the query name is the -+ * same as the one we sent; this just gets the expanded name -+ * (i.e., with the succeeding search-domain tacked on). - */ -- n = strlen(bp) + 1; /* for the \0 */ -+ n = strlen(bp) + 1; /* for the \0 */ - if (n >= MAXHOSTNAMELEN) { -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (NULL); - } - canonname = bp; -@@ -1543,26 +369,26 @@ - had_error = 0; - while (ancount-- > 0 && cp < eom && !had_error) { - n = dn_expand(answer->buf, eom, cp, bp, ep - bp); -- if ((n < 0) || !(*name_ok) (bp)) { -+ if ((n < 0) || !(*name_ok)(bp)) { - had_error++; - continue; - } -- cp += n; /* name */ -+ cp += n; /* name */ - type = _getshort(cp); -- cp += INT16SZ; /* type */ -+ cp += INT16SZ; /* type */ - class = _getshort(cp); -- cp += INT16SZ + INT32SZ; /* class, TTL */ -+ cp += INT16SZ + INT32SZ; /* class, TTL */ - n = _getshort(cp); -- cp += INT16SZ; /* len */ -+ cp += INT16SZ; /* len */ - if (class != C_IN) { - /* XXX - debug? syslog? */ - cp += n; -- continue; /* XXX - had_error++ ? */ -+ continue; /* XXX - had_error++ ? */ - } - if ((qtype == T_A || qtype == T_AAAA || qtype == T_ANY) && -- type == T_CNAME) { -+ type == T_CNAME) { - n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf); -- if ((n < 0) || !(*name_ok) (tbuf)) { -+ if ((n < 0) || !(*name_ok)(tbuf)) { - had_error++; - continue; - } -@@ -1586,21 +412,21 @@ - } else if (type != qtype) { - #ifdef DEBUG - if (type != T_KEY && type != T_SIG) -- syslog(LOG_NOTICE | LOG_AUTH, -- "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", -- qname, p_class(C_IN), p_type(qtype), -- p_type(type)); -+ syslog(LOG_NOTICE|LOG_AUTH, -+ "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", -+ qname, p_class(C_IN), p_type(qtype), -+ p_type(type)); - #endif - cp += n; -- continue; /* XXX - had_error++ ? */ -+ continue; /* XXX - had_error++ ? */ - } - switch (type) { - case T_A: - case T_AAAA: - if (strcasecmp(canonname, bp) != 0) { - #ifdef DEBUG -- syslog(LOG_NOTICE | LOG_AUTH, -- AskedForGot, canonname, bp); -+ syslog(LOG_NOTICE|LOG_AUTH, -+ AskedForGot, canonname, bp); - #endif - cp += n; - continue; /* XXX - had_error++ ? */ -@@ -1630,6 +456,7 @@ - nn = strlen(bp) + 1; /* for the \0 */ - bp += nn; - } -+ - /* don't overwrite pai */ - ai = *pai; - ai.ai_family = (type == T_A) ? AF_INET : AF_INET6; -@@ -1654,24 +481,26 @@ - if (haveanswer) { - #if defined(RESOLVSORT) - /* -- * We support only IPv4 address for backward compatibility against gethostbyname(3). -+ * We support only IPv4 address for backward -+ * compatibility against gethostbyname(3). - */ -- if (_res.nsort && qtype == T_A) { -- if (addr4sort(&sentinel) < 0) { -+ if (res->nsort && qtype == T_A) { -+ if (addr4sort(&sentinel, res) < 0) { - freeaddrinfo(sentinel.ai_next); -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return NULL; - } - } --#endif /* RESOLVSORT */ -+#endif /*RESOLVSORT*/ - if (!canonname) - (void)get_canonname(pai, sentinel.ai_next, qname); - else - (void)get_canonname(pai, sentinel.ai_next, canonname); -- h_errno = NETDB_SUCCESS; -+ RES_SET_H_ERRNO(res, NETDB_SUCCESS); - return sentinel.ai_next; - } -- h_errno = NO_RECOVERY; -+ -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return NULL; - } - -@@ -1682,7 +511,7 @@ - }; - - static int --addr4sort(struct addrinfo * sentinel) -+addr4sort(struct addrinfo *sentinel, res_state res) - { - struct addrinfo *ai; - struct addr_ptr *addrs, addr; -@@ -1696,15 +525,15 @@ - for (ai = sentinel->ai_next; ai; ai = ai->ai_next) - naddrs++; - if (naddrs < 2) -- return 0; /* We don't need sorting. */ -+ return 0; /* We don't need sorting. */ - if ((addrs = malloc(sizeof(struct addr_ptr) * naddrs)) == NULL) - return -1; - i = 0; - for (ai = sentinel->ai_next; ai; ai = ai->ai_next) { -- sin = (struct sockaddr_in *) ai->ai_addr; -- for (j = 0; (unsigned)j < _res.nsort; j++) { -- if (_res.sort_list[j].addr.s_addr == -- (sin->sin_addr.s_addr & _res.sort_list[j].mask)) -+ sin = (struct sockaddr_in *)ai->ai_addr; -+ for (j = 0; (unsigned)j < res->nsort; j++) { -+ if (res->sort_list[j].addr.s_addr == -+ (sin->sin_addr.s_addr & res->sort_list[j].mask)) - break; - } - addrs[i].ai = ai; -@@ -1717,16 +546,17 @@ - free(addrs); - return 0; - } -+ - while (needsort < naddrs) { -- for (j = needsort - 1; j >= 0; j--) { -- if (addrs[j].aval > addrs[j + 1].aval) { -- addr = addrs[j]; -- addrs[j] = addrs[j + 1]; -- addrs[j + 1] = addr; -- } else -- break; -- } -- needsort++; -+ for (j = needsort - 1; j >= 0; j--) { -+ if (addrs[j].aval > addrs[j+1].aval) { -+ addr = addrs[j]; -+ addrs[j] = addrs[j + 1]; -+ addrs[j + 1] = addr; -+ } else -+ break; -+ } -+ needsort++; - } - - ai = sentinel; -@@ -1738,56 +568,58 @@ - free(addrs); - return 0; - } --#endif /* RESOLVSORT */ -+#endif /*RESOLVSORT*/ - - int --lookupd_dns_getaddrinfo(void *rv, const char *name, const struct addrinfo * pai) -+lookupd_dns_getaddrinfo(void *rv, const char *hostname, -+ const struct addrinfo *pai) - { - struct addrinfo *ai; - querybuf *buf, *buf2; - struct addrinfo sentinel, *cur; - struct res_target q, q2; -+ res_state res; - -- memset(&q, 0, sizeof(q2)); -+ memset(&q, 0, sizeof(q)); - memset(&q2, 0, sizeof(q2)); - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; - - buf = malloc(sizeof(*buf)); - if (!buf) { -- h_errno = NETDB_INTERNAL; -+ RES_SET_H_ERRNO(res, NETDB_INTERNAL); - return NS_NOTFOUND; - } - buf2 = malloc(sizeof(*buf2)); - if (!buf2) { - free(buf); -- h_errno = NETDB_INTERNAL; -+ RES_SET_H_ERRNO(res, NETDB_INTERNAL); - return NS_NOTFOUND; - } -+ - switch (pai->ai_family) { - case AF_UNSPEC: -- /* prefer IPv6 */ -- q.name = name; -+ q.name = hostname; - q.qclass = C_IN; -- q.qtype = T_AAAA; -+ q.qtype = T_A; - q.answer = buf->buf; - q.anslen = sizeof(buf->buf); - q.next = &q2; -- q2.name = name; -+ q2.name = hostname; - q2.qclass = C_IN; -- q2.qtype = T_A; -+ q2.qtype = T_AAAA; - q2.answer = buf2->buf; - q2.anslen = sizeof(buf2->buf); - break; - case AF_INET: -- q.name = name; -+ q.name = hostname; - q.qclass = C_IN; - q.qtype = T_A; - q.answer = buf->buf; - q.anslen = sizeof(buf->buf); - break; - case AF_INET6: -- q.name = name; -+ q.name = hostname; - q.qclass = C_IN; - q.qtype = T_AAAA; - q.answer = buf->buf; -@@ -1799,26 +631,35 @@ - return NS_UNAVAIL; - } - -- if (res_searchN(name, &q) < 0) { -+ res = &_res; -+ if ((res->options & RES_INIT) == 0 && res_ninit(res) == -1) { -+ RES_SET_H_ERRNO(res, NETDB_INTERNAL); - free(buf); - free(buf2); - return NS_NOTFOUND; - } -- ai = getanswer(buf, q.n, q.name, q.qtype, pai); -- if (ai) { -- cur->ai_next = ai; -- while (cur && cur->ai_next) -- cur = cur->ai_next; -+ -+ if (res_searchN(hostname, &q, res) < 0) { -+ free(buf); -+ free(buf2); -+ return NS_NOTFOUND; - } -+ /* prefer IPv6 */ - if (q.next) { -- ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai); -- if (ai) -+ ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai, res); -+ if (ai) { - cur->ai_next = ai; -+ while (cur && cur->ai_next) -+ cur = cur->ai_next; -+ } - } -+ ai = getanswer(buf, q.n, q.name, q.qtype, pai, res); -+ if (ai) -+ cur->ai_next = ai; - free(buf); - free(buf2); - if (sentinel.ai_next == NULL) -- switch (h_errno) { -+ switch (H_ERRNO(res)) { - case HOST_NOT_FOUND: - return NS_NOTFOUND; - case TRY_AGAIN: -@@ -1826,28 +667,31 @@ - default: - return NS_UNAVAIL; - } -- -- *((struct addrinfo **) rv) = sentinel.ai_next; -+ *((struct addrinfo **)rv) = sentinel.ai_next; - return NS_SUCCESS; - } - - /* resolver logic */ - --extern const char *__hostalias(const char *); -- - /* -- * Formulate a normal query, send, and await answer. Returned answer is placed in supplied buffer "answer". Perform preliminary check of answer, returning success only if no error is indicated and the answer count is nonzero. Return the size of the response on success, -1 on error. Error number is left in h_errno. -- * -+ * Formulate a normal query, send, and await answer. -+ * Returned answer is placed in supplied buffer "answer". -+ * Perform preliminary check of answer, returning success only -+ * if no error is indicated and the answer count is nonzero. -+ * Return the size of the response on success, -1 on error. -+ * Error number is left in h_errno. -+ * - * Caller must parse answer and determine whether it answers the question. - */ - static int --res_queryN(name, target) -- const char *name; /* domain name */ -- struct res_target *target; -+res_queryN(const char *name, struct res_target *target, res_state res) - { - u_char *buf; - HEADER *hp; - int n; -+#ifdef RES_F_EDNS0ERR -+ u_int oflags; -+#endif - struct res_target *t; - int rcode; - int ancount; -@@ -1855,70 +699,90 @@ - rcode = NOERROR; - ancount = 0; - -- if ((_res.options & RES_INIT) == 0 && lookupd_res_init() == -1) { -- h_errno = NETDB_INTERNAL; -- return (-1); -- } - buf = malloc(MAXPACKET); - if (!buf) { -- h_errno = NETDB_INTERNAL; -+ RES_SET_H_ERRNO(res, NETDB_INTERNAL); - return -1; - } -+ - for (t = target; t; t = t->next) { - int class, type; - u_char *answer; - int anslen; - -- hp = (HEADER *) (void *)t->answer; -- hp->rcode = NOERROR; /* default */ -+ hp = (HEADER *)(void *)t->answer; - - /* make it easier... */ - class = t->qclass; - type = t->qtype; - answer = t->answer; - anslen = t->anslen; -+ -+#ifdef RES_F_EDNS0ERR -+ oflags = res->_flags; -+ -+again: -+#endif -+ hp->rcode = NOERROR; /* default */ -+ - #ifdef DEBUG -- if (_res.options & RES_DEBUG) -+ if (res->options & RES_DEBUG) - printf(";; res_query(%s, %d, %d)\n", name, class, type); - #endif - -- n = lookupd_res_mkquery(QUERY, name, class, type, NULL, 0, NULL, -- buf, MAXPACKET); -- if (n > 0 && (_res.options & RES_USE_EDNS0) != 0) -- n = lookupd_res_opt(n, buf, MAXPACKET, anslen); -+ n = res_nmkquery(res, QUERY, name, class, type, NULL, 0, NULL, -+ buf, MAXPACKET); -+ if (n > 0 && -+#ifdef RES_F_EDNS0ERR -+ (res->_flags & RES_F_EDNS0ERR) == 0 && -+#endif -+ (res->options & (RES_USE_EDNS0|RES_USE_DNSSEC)) != 0U) -+ n = res_nopt(res, n, buf, MAXPACKET, anslen); - if (n <= 0) { - #ifdef DEBUG -- if (_res.options & RES_DEBUG) -+ if (res->options & RES_DEBUG) - printf(";; res_query: mkquery failed\n"); - #endif - free(buf); -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (n); - } -- n = lookupd_res_send(buf, n, answer, anslen); --#if 0 -+ n = res_nsend(res, buf, n, answer, anslen); - if (n < 0) { -+#ifdef RES_F_EDNS0ERR -+ /* -+ * if the query choked with EDNS0, retry -+ * without EDNS0 -+ */ -+ if ((res->options & (RES_USE_EDNS0|RES_USE_DNSSEC)) -+ != 0U && -+ ((oflags ^ res->_flags) & RES_F_EDNS0ERR) != 0) { -+ res->_flags |= RES_F_EDNS0ERR; -+ if (res->options & RES_DEBUG) -+ printf(";; res_nquery: retry without EDNS0\n"); -+ goto again; -+ } -+#endif -+ rcode = hp->rcode; /* record most recent error */ - #ifdef DEBUG -- if (_res.options & RES_DEBUG) -+ if (res->options & RES_DEBUG) - printf(";; res_query: send error\n"); - #endif -- free(buf); -- h_errno = TRY_AGAIN; -- return (n); -+ continue; - } --#endif - -- if (n < 0 || n > anslen) -- hp->rcode = FORMERR; /* XXX not very informative */ -+ if (n > anslen) -+ hp->rcode = FORMERR; /* XXX not very informative */ - if (hp->rcode != NOERROR || ntohs(hp->ancount) == 0) { - rcode = hp->rcode; /* record most recent error */ - #ifdef DEBUG -- if (_res.options & RES_DEBUG) -+ if (res->options & RES_DEBUG) - printf(";; rcode = %u, ancount=%u\n", hp->rcode, -- ntohs(hp->ancount)); -+ ntohs(hp->ancount)); - #endif - continue; - } -+ - ancount += ntohs(hp->ancount); - - t->n = n; -@@ -1929,19 +793,19 @@ - if (ancount == 0) { - switch (rcode) { - case NXDOMAIN: -- h_errno = HOST_NOT_FOUND; -+ RES_SET_H_ERRNO(res, HOST_NOT_FOUND); - break; - case SERVFAIL: -- h_errno = TRY_AGAIN; -+ RES_SET_H_ERRNO(res, TRY_AGAIN); - break; - case NOERROR: -- h_errno = NO_DATA; -+ RES_SET_H_ERRNO(res, NO_DATA); - break; - case FORMERR: - case NOTIMP: - case REFUSED: - default: -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - break; - } - return (-1); -@@ -1950,25 +814,25 @@ - } - - /* -- * Formulate a normal query, send, and retrieve answer in supplied buffer. Return the size of the response on success, -1 on error. If enabled, implement search rules until answer or unrecoverable failure is detected. Error code, if any, is left in h_errno. -+ * Formulate a normal query, send, and retrieve answer in supplied buffer. -+ * Return the size of the response on success, -1 on error. -+ * If enabled, implement search rules until answer or unrecoverable failure -+ * is detected. Error code, if any, is left in h_errno. - */ - static int --res_searchN(name, target) -- const char *name; /* domain name */ -- struct res_target *target; -+res_searchN(const char *name, struct res_target *target, res_state res) - { -- const char *cp, *const *domain; -- HEADER *hp = (HEADER *) (void *)target->answer; /* XXX */ -+ const char *cp, * const *domain; -+ HEADER *hp = (HEADER *)(void *)target->answer; /*XXX*/ - u_int dots; - int trailing_dot, ret, saved_herrno; -- int got_nodata = 0, got_servfail = 0, tried_as_is = 0; -+ int got_nodata = 0, got_servfail = 0, root_on_list = 0; -+ int tried_as_is = 0; -+ int searched = 0; -+ char abuf[MAXDNAME]; - -- if ((_res.options & RES_INIT) == 0 && lookupd_res_init() == -1) { -- h_errno = NETDB_INTERNAL; -- return (-1); -- } - errno = 0; -- h_errno = HOST_NOT_FOUND; /* default, if we never query */ -+ RES_SET_H_ERRNO(res, HOST_NOT_FOUND); /* default, if we never query */ - dots = 0; - for (cp = name; *cp; cp++) - dots += (*cp == '.'); -@@ -1979,43 +843,84 @@ - /* - * if there aren't any dots, it could be a user-level alias - */ -- if (!dots && (cp = __hostalias(name)) != NULL) -- return (res_queryN(cp, target)); -+ if (!dots && -+ (cp = res_hostalias(res, name, abuf, sizeof(abuf))) != NULL) -+ return (res_queryN(cp, target, res)); - - /* -- * If there are dots in the name already, let's just give it a try 'as is'. The threshold can be set with the "ndots" option. -+ * If there are enough dots in the name, let's just give it a -+ * try 'as is'. The threshold can be set with the "ndots" option. -+ * Also, query 'as is', if there is a trailing dot in the name. - */ - saved_herrno = -1; -- if (dots >= _res.ndots) { -- ret = res_querydomainN(name, NULL, target); -- if (ret > 0) -+ if (dots >= res->ndots || trailing_dot) { -+ ret = res_querydomainN(name, NULL, target, res); -+ if (ret > 0 || trailing_dot) - return (ret); -- saved_herrno = h_errno; -+ if (errno == ECONNREFUSED) { -+ RES_SET_H_ERRNO(res, TRY_AGAIN); -+ return (-1); -+ } -+ switch (H_ERRNO(res)) { -+ case NO_DATA: -+ case HOST_NOT_FOUND: -+ break; -+ case TRY_AGAIN: -+ if (hp->rcode == SERVFAIL) -+ break; -+ /* FALLTHROUGH */ -+ default: -+ return (-1); -+ } -+ saved_herrno = H_ERRNO(res); - tried_as_is++; - } -+ - /* -- * We do at least one level of search if - there is no dot and RES_DEFNAME is set, or - there is at least one dot, there is no trailing dot, and RES_DNSRCH is set. -+ * We do at least one level of search if -+ * - there is no dot and RES_DEFNAME is set, or -+ * - there is at least one dot, there is no trailing dot, -+ * and RES_DNSRCH is set. - */ -- if ((!dots && (_res.options & RES_DEFNAMES)) || -- (dots && !trailing_dot && (_res.options & RES_DNSRCH))) { -+ if ((!dots && (res->options & RES_DEFNAMES)) || -+ (dots && !trailing_dot && (res->options & RES_DNSRCH))) { - int done = 0; - -- for (domain = (const char *const *)_res.dnsrch; -- *domain && !done; -- domain++) { -+ for (domain = (const char * const *)res->dnsrch; -+ *domain && !done; -+ domain++) { -+ searched = 1; -+ -+ if (domain[0][0] == '\0' || -+ (domain[0][0] == '.' && domain[0][1] == '\0')) -+ root_on_list++; -+ -+ if (root_on_list && tried_as_is) -+ continue; - -- ret = res_querydomainN(name, *domain, target); -+ ret = res_querydomainN(name, *domain, target, res); - if (ret > 0) - return (ret); - - /* -- * If no server present, give up. If name isn't found in this domain, keep trying higher domains in the search list (if that's enabled). On a NO_DATA error, keep trying, otherwise a wildcard entry of another type could keep us from finding this entry higher in the domain. If we get some other error (negative answer or server failure), then stop searching up, but try the input name below in case it's fully-qualified. -+ * If no server present, give up. -+ * If name isn't found in this domain, -+ * keep trying higher domains in the search list -+ * (if that's enabled). -+ * On a NO_DATA error, keep trying, otherwise -+ * a wildcard entry of another type could keep us -+ * from finding this entry higher in the domain. -+ * If we get some other error (negative answer or -+ * server failure), then stop searching up, -+ * but try the input name below in case it's -+ * fully-qualified. - */ - if (errno == ECONNREFUSED) { -- h_errno = TRY_AGAIN; -+ RES_SET_H_ERRNO(res, TRY_AGAIN); - return (-1); - } -- switch (h_errno) { -+ -+ switch (H_ERRNO(res)) { - case NO_DATA: - got_nodata++; - /* FALLTHROUGH */ -@@ -2023,9 +928,9 @@ - /* keep trying */ - break; - case TRY_AGAIN: -+ got_servfail++; - if (hp->rcode == SERVFAIL) { - /* try next search element, if any */ -- got_servfail++; - break; - } - /* FALLTHROUGH */ -@@ -2034,60 +939,80 @@ - done++; - } - /* -- * if we got here for some reason other than DNSRCH, we only wanted one iteration of the loop, so stop. -+ * if we got here for some reason other than DNSRCH, -+ * we only wanted one iteration of the loop, so stop. - */ -- if (!(_res.options & RES_DNSRCH)) -- done++; -+ if (!(res->options & RES_DNSRCH)) -+ done++; - } - } -+ -+ switch (H_ERRNO(res)) { -+ case NO_DATA: -+ case HOST_NOT_FOUND: -+ break; -+ case TRY_AGAIN: -+ if (hp->rcode == SERVFAIL) -+ break; -+ /* FALLTHROUGH */ -+ default: -+ goto giveup; -+ } -+ - /* -- * if we have not already tried the name "as is", do that now. note that we do this regardless of how many dots were in the name or whether it ends with a dot. -+ * If the query has not already been tried as is then try it -+ * unless RES_NOTLDQUERY is set and there were no dots. - */ -- if (!tried_as_is && (dots || !(_res.options & RES_NOTLDQUERY))) { -- ret = res_querydomainN(name, NULL, target); -+ if ((dots || !searched || !(res->options & RES_NOTLDQUERY)) && -+ !(tried_as_is || root_on_list)) { -+ ret = res_querydomainN(name, NULL, target, res); - if (ret > 0) - return (ret); - } -+ - /* -- * if we got here, we didn't satisfy the search. if we did an initial full query, return that query's h_errno (note that we wouldn't be here if that query had succeeded). else if we ever got a nodata, send that back as the reason. else send back meaningless h_errno, that being the one from the last DNSRCH we did. -+ * if we got here, we didn't satisfy the search. -+ * if we did an initial full query, return that query's h_errno -+ * (note that we wouldn't be here if that query had succeeded). -+ * else if we ever got a nodata, send that back as the reason. -+ * else send back meaningless h_errno, that being the one from -+ * the last DNSRCH we did. - */ -+giveup: - if (saved_herrno != -1) -- h_errno = saved_herrno; -+ RES_SET_H_ERRNO(res, saved_herrno); - else if (got_nodata) -- h_errno = NO_DATA; -+ RES_SET_H_ERRNO(res, NO_DATA); - else if (got_servfail) -- h_errno = TRY_AGAIN; -+ RES_SET_H_ERRNO(res, TRY_AGAIN); - return (-1); - } - - /* -- * Perform a call on res_query on the concatenation of name and domain, removing a trailing dot from name if domain is NULL. -+ * Perform a call on res_query on the concatenation of name and domain, -+ * removing a trailing dot from name if domain is NULL. - */ - static int --res_querydomainN(name, domain, target) -- const char *name, *domain; -- struct res_target *target; -+res_querydomainN(const char *name, const char *domain, -+ struct res_target *target, res_state res) - { - char nbuf[MAXDNAME]; - const char *longname = nbuf; - size_t n, d; - -- if ((_res.options & RES_INIT) == 0 && lookupd_res_init() == -1) { -- h_errno = NETDB_INTERNAL; -- return (-1); -- } - #ifdef DEBUG -- if (_res.options & RES_DEBUG) -+ if (res->options & RES_DEBUG) - printf(";; res_querydomain(%s, %s)\n", -- name, domain ? domain : ""); -+ name, domain?domain:""); - #endif - if (domain == NULL) { - /* -- * Check for trailing '.'; copy without '.' if present. -+ * Check for trailing '.'; -+ * copy without '.' if present. - */ - n = strlen(name); - if (n >= MAXDNAME) { -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (-1); - } - if (n > 0 && name[--n] == '.') { -@@ -2099,10 +1024,10 @@ - n = strlen(name); - d = strlen(domain); - if (n + d + 1 >= MAXDNAME) { -- h_errno = NO_RECOVERY; -+ RES_SET_H_ERRNO(res, NO_RECOVERY); - return (-1); - } - snprintf(nbuf, sizeof(nbuf), "%s.%s", name, domain); - } -- return (res_queryN(longname, target)); -+ return (res_queryN(longname, target, res)); - } diff --git a/sysutils/lookupd/files/patch-modules-dns-resolv-name6.c b/sysutils/lookupd/files/patch-modules-dns-resolv-name6.c deleted file mode 100644 index a3e5d8d461ba..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-resolv-name6.c +++ /dev/null @@ -1,97 +0,0 @@ ---- modules/dns/resolv/name6.c.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/resolv/name6.c Tue Aug 1 18:11:07 2006 -@@ -40,6 +40,7 @@ - #include - - #include -+#include - #include - #include - #include -@@ -54,7 +55,6 @@ - #include "namespace.h" - #include "un-namespace.h" - #include "../dns_ht.h" --#include "resolv.h" - - - #ifndef _PATH_HOSTS -@@ -103,6 +103,11 @@ - #define map_inaddr map_addr_un.mau_inaddr - }; - -+#ifndef res_hostalias -+extern const char *_res_hostalias(const char *, char *, size_t); -+#define res_hostalias(a, b, c, d) _res_hostalias(b, c, d) -+#endif -+ - static struct hostent *_hpcopy(struct hostent * hp); - static struct hostent *_hpmerge(struct hostent * hp1, struct hostent * hp2); - #ifdef INET6 -@@ -284,7 +289,7 @@ - hp6->h_addrtype = AF_INET6; - hp6->h_length = sizeof(struct in6_addr); - hp6->h_addr_list = NULL; -- return _hpmerge(hp6, hp, errp); -+ return _hpmerge(hp6, hp); - } - #endif - -@@ -358,10 +363,10 @@ - switch (qtype) { - case T_A: - case T_AAAA: -- name_ok = lookupd_res_hnok; -+ name_ok = res_hnok; - break; - case T_PTR: -- name_ok = lookupd_res_dnok; -+ name_ok = res_dnok; - break; - default: - return (NULL); /* XXX should be abort(); */ -@@ -450,7 +455,7 @@ - } - if (qtype == T_PTR && type == T_CNAME) { - n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf); -- if (n < 0 || !lookupd_res_dnok(tbuf)) { -+ if (n < 0 || !res_dnok(tbuf)) { - had_error++; - continue; - } -@@ -476,7 +481,7 @@ - DNS_ASSERT(strcasecmp(tname, bp) == 0); - n = dn_expand(answer->buf, eom, cp, bp, ep - bp); - DNS_FATAL(n >= 0); -- DNS_FATAL(lookupd_res_hnok(bp)); -+ DNS_FATAL(res_hnok(bp)); - #if MULTI_PTRS_ARE_ALIASES - cp += n; - if (cp != erdata) { -@@ -574,6 +579,7 @@ - int got_nodata = 0, got_servfail = 0, tried_as_is = 0; - struct __res_type_list *rtl0 = rtl; - querybuf *buf; -+ char abuf[MAXDNAME]; - - if ((_res.options & RES_INIT) == 0 && res_init() == -1) { - h_errno = NETDB_INTERNAL; -@@ -592,7 +598,8 @@ - return NULL; - } - /* If there aren't any dots, it could be a user-level alias */ -- if (!dots && (cp = lookupd_hostalias(name)) != NULL) { -+ if (!dots && -+ (cp = res_hostalias(&_res, name, abuf, sizeof(abuf))) != NULL) { - for (rtl = rtl0; rtl != NULL; - rtl = SLIST_NEXT(rtl, rtl_entry)) { - ret = res_query(cp, C_IN, rtl->rtl_type, buf->buf, -@@ -866,7 +873,7 @@ - break; - } - -- n = lookupd_res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf); -+ n = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf); - if (n < 0) { - err = NS_UNAVAIL; - continue; diff --git a/sysutils/lookupd/files/patch-modules-dns-resolv-res_send.c b/sysutils/lookupd/files/patch-modules-dns-resolv-res_send.c deleted file mode 100644 index 9e7b51c6f484..000000000000 --- a/sysutils/lookupd/files/patch-modules-dns-resolv-res_send.c +++ /dev/null @@ -1,20 +0,0 @@ ---- modules/dns/resolv/res_send.c.orig Tue Aug 1 18:10:57 2006 -+++ modules/dns/resolv/res_send.c Tue Aug 1 18:11:02 2006 -@@ -201,7 +201,7 @@ - if (_res.options & RES_DEBUG) { - if (getnameinfo(address, address->sa_len, abuf, sizeof(abuf), - pbuf, sizeof(pbuf), -- NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID) != 0) { -+ NI_NUMERICHOST | NI_NUMERICSERV ) != 0) { - strncpy(abuf, "?", sizeof(abuf)); - strncpy(pbuf, "?", sizeof(pbuf)); - } -@@ -475,7 +475,7 @@ - } - Dprint((_res.options & RES_DEBUG) && - getnameinfo(nsap, salen, abuf, sizeof(abuf), -- NULL, 0, NI_NUMERICHOST | NI_WITHSCOPEID) == 0, -+ NULL, 0, NI_NUMERICHOST ) == 0, - (stdout, ";; Querying server (# %d) address = %s\n", - ns + 1, abuf)); - diff --git a/sysutils/lookupd/files/patch-modules-files-Makefile b/sysutils/lookupd/files/patch-modules-files-Makefile deleted file mode 100644 index ea65a21f5173..000000000000 --- a/sysutils/lookupd/files/patch-modules-files-Makefile +++ /dev/null @@ -1,11 +0,0 @@ ---- modules/files/Makefile.orig Tue Aug 1 18:10:57 2006 -+++ modules/files/Makefile Tue Aug 1 18:11:07 2006 -@@ -6,7 +6,7 @@ - STRIP= - SRCS= files_grp.c files_ht.c files_htinfo.c files_htnode.c files_pwd.c - WARNS?=2 --CFLAGS+=-pthread -I${.CURDIR}/../../include -+CFLAGS+=-pthread -I${.CURDIR}/../../include -DINET6 - LDFLAGS+=-nostdlib - NOMAN= 1 - diff --git a/sysutils/lookupd/files/patch-parser.c b/sysutils/lookupd/files/patch-parser.c deleted file mode 100644 index f64e849ca88b..000000000000 --- a/sysutils/lookupd/files/patch-parser.c +++ /dev/null @@ -1,11 +0,0 @@ ---- bin/parser.c.orig Tue Aug 10 14:33:43 2004 -+++ bin/parser.c Tue Aug 10 14:34:32 2004 -@@ -460,7 +460,7 @@ - int - parser_get_next_line(struct parser_state * pstate) - { -- int len; -+ size_t len; - char *new_line; - char *next_stream_line; - diff --git a/sysutils/lookupd/files/pkg-message.in b/sysutils/lookupd/files/pkg-message.in deleted file mode 100644 index f6316a861cb7..000000000000 --- a/sysutils/lookupd/files/pkg-message.in +++ /dev/null @@ -1,11 +0,0 @@ -*************************************************** -Configuration file for lookupd should be named lookupd.conf -and must be placed in %%PREFIX%%/etc. -To make lookupd working, you should plug it into the nsswitch. -You must tune %%PREFIX%%/etc/nsswitch.conf, by adding lookupd -keyword to the appropriate lines. - -Startup script lookupd.sh was placed in %%PREFIX%%/etc/rc.d. - -Examples of both of these files were installed into the examples folder. -*************************************************** diff --git a/sysutils/lookupd/pkg-descr b/sysutils/lookupd/pkg-descr deleted file mode 100644 index 73410219c557..000000000000 --- a/sysutils/lookupd/pkg-descr +++ /dev/null @@ -1,16 +0,0 @@ -This is an implementation of lookupd - name service switch daemon. -It gives an ability to use IPC model for different lookup operations -(just like nsswitch, but all requests are processed by lookupd daemon), -which in turn makes system-wide caching possible. Besides, unlike -the nsswitch lookupd can use persistent connections and different -other optimizations. - -As current nsswitch implementation, lookupd is also based on plugins, -which are a bit different from standard nss_* plugins such as nss_ldap, -but they are easy to port. Files and dns plugins are installed by -default and lookupd_ldap module can be found in ports. - -Lookupd should be plugged into the current FreeBSD -nsswitch implementation using a standard module - nss_lookupd.so. - -WWW: http://www.sfedu.ru/~bushman/lookupd/ diff --git a/sysutils/lookupd/pkg-plist b/sysutils/lookupd/pkg-plist deleted file mode 100644 index 67cc06b809ea..000000000000 --- a/sysutils/lookupd/pkg-plist +++ /dev/null @@ -1,15 +0,0 @@ -sbin/lookupd -lib/lkpd_files.so -lib/lkpd_files.so.1 -lib/lkpd_dns.so -lib/lkpd_dns.so.1 -lib/nss_lookupd.so -lib/nss_lookupd.so.1 -include/lookupd/passwd_defs.h -include/lookupd/group_defs.h -include/lookupd/host_defs.h -include/lookupd/lookupd_defs.h -@dirrm include/lookupd -%%EXAMPLESDIR%%/nsswitch.conf.sample -%%EXAMPLESDIR%%/lookupd.conf.sample -@dirrm %%EXAMPLESDIR%% diff --git a/sysutils/lookupd_ldap/Makefile b/sysutils/lookupd_ldap/Makefile deleted file mode 100644 index 756285e00a6e..000000000000 --- a/sysutils/lookupd_ldap/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Created by: Michael Bushkov -# $FreeBSD$ - -PORTNAME= lookupd_ldap -PORTVERSION= 0.1.a -PORTREVISION= 5 -CATEGORIES= sysutils net -MASTER_SITES= http://www.rsu.ru/~bushman/lookupd/ldap/downloads/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= The LDAP plugin for the lookupd daemon - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -BUILD_DEPENDS= ${LOCALBASE}/sbin/lookupd:${PORTSDIR}/sysutils/lookupd - -USE_LDCONFIG= yes -USE_OPENLDAP= yes - -PLIST_FILES= lib/lkpd_ldap.so lib/lkpd_ldap.so.1 - -.if !defined(WITH_OPENLDAP_VER) || ${WITH_OPENLDAP_VER} != "23" -EXTRA_PATCHES= ${FILESDIR}/extrapatch-config.h -.endif - -NO_STAGE= yes -.include - -post-install: - @${CAT} ${PKGMESSAGE} - -.include diff --git a/sysutils/lookupd_ldap/distinfo b/sysutils/lookupd_ldap/distinfo deleted file mode 100644 index eb322ec6a0b1..000000000000 --- a/sysutils/lookupd_ldap/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (lookupd_ldap-0.1.a.tar.gz) = 4d80bb2dd91a90dfb3e2a1b44cec041a94150b1dbc9920f58f8141487ad99b67 -SIZE (lookupd_ldap-0.1.a.tar.gz) = 54024 diff --git a/sysutils/lookupd_ldap/files/extrapatch-config.h b/sysutils/lookupd_ldap/files/extrapatch-config.h deleted file mode 100644 index e3195cf191fe..000000000000 --- a/sysutils/lookupd_ldap/files/extrapatch-config.h +++ /dev/null @@ -1,20 +0,0 @@ ---- config.h.orig 2004-06-24 01:17:16.000000000 -0700 -+++ config.h 2008-07-24 13:58:30.013821799 -0700 -@@ -98,7 +98,7 @@ - #define HAVE_LDAP_CREATE_CONTROL 1 - - /* Define to 1 if you have the `ldap_create_page_control' function. */ --/* #undef HAVE_LDAP_CREATE_PAGE_CONTROL */ -+#define HAVE_LDAP_CREATE_PAGE_CONTROL - - /* Define to 1 if you have the `ldap_explode_rdn' function. */ - #define HAVE_LDAP_EXPLODE_RDN 1 -@@ -125,7 +125,7 @@ - #define HAVE_LDAP_MEMFREE 1 - - /* Define to 1 if you have the `ldap_parse_page_control' function. */ --/* #undef HAVE_LDAP_PARSE_PAGE_CONTROL */ -+#define HAVE_LDAP_PARSE_PAGE_CONTROL - - /* Define to 1 if you have the `ldap_parse_result' function. */ - #define HAVE_LDAP_PARSE_RESULT 1 diff --git a/sysutils/lookupd_ldap/files/patch-Makefile b/sysutils/lookupd_ldap/files/patch-Makefile deleted file mode 100644 index a502609e5866..000000000000 --- a/sysutils/lookupd_ldap/files/patch-Makefile +++ /dev/null @@ -1,14 +0,0 @@ ---- Makefile.orig Sat Oct 7 19:15:49 2006 -+++ Makefile Sat Oct 7 19:17:26 2006 -@@ -13,8 +13,9 @@ - - WARNS?=2 - STRIP= --LDFLAGS+=-nostdlib -lc -shared -L${PREFIX}/lib -lldap_r --CFLAGS+=-pthread -I${PREFIX}/include/lookupd -I${PREFIX}/include -+LDFLAGS+=-nostdlib -lc -shared -L${LOCALBASE}/lib -lldap_r -+CFLAGS+=-pthread -I${LOCALBASE}/include/lookupd -I${LOCALBASE}/include \ -+ -DLDAP_DEPRECATED=1 - NOMAN= 1 - - .include diff --git a/sysutils/lookupd_ldap/files/patch-bsdtss.h b/sysutils/lookupd_ldap/files/patch-bsdtss.h deleted file mode 100644 index 5b7e7dc17977..000000000000 --- a/sysutils/lookupd_ldap/files/patch-bsdtss.h +++ /dev/null @@ -1,20 +0,0 @@ ---- bsdtss.h.orig 2004-07-03 00:53:00.000000000 -0700 -+++ bsdtss.h 2008-07-24 13:55:53.489372983 -0700 -@@ -29,7 +29,7 @@ - #include - - #define DECLARE_TSS(x,ytype,shouldinit,y) \ -- static pthread_key_t _##x##_tss_key=(pthread_key_t)NULL; \ -+ static pthread_key_t _##x##_tss_key=(pthread_key_t)0; \ - \ - static void _##x##_tss_init(void)\ - {\ -@@ -52,7 +52,7 @@ - } - - #define DECLARE_TSS_WITH_INIT(x,ytype,fn) \ -- static pthread_key_t _##x##_tss_key=(pthread_key_t)NULL; \ -+ static pthread_key_t _##x##_tss_key=(pthread_key_t)0; \ - \ - static void _##x##_tss_init(void)\ - {\ diff --git a/sysutils/lookupd_ldap/pkg-descr b/sysutils/lookupd_ldap/pkg-descr deleted file mode 100644 index daf6fd110d94..000000000000 --- a/sysutils/lookupd_ldap/pkg-descr +++ /dev/null @@ -1,11 +0,0 @@ -lookupd_ldap is the LDAP plugin for the lookupd daemon. -It is, basically, a slightly changed PADL.com's nss_ldap. The -most important changes are: - 1) It's a bit smaller and is only for FreeBSD - 2) It's adapted to the lookupd threaded model - -For the information about configuring lookupd-ldap see -the nss_ldap website (we use the same configuration -file: /usr/local/etc/nss_ldap.conf). - -WWW: http://www.rsu.ru/~bushman/lookupd/ldap/ diff --git a/sysutils/lookupd_ldap/pkg-message b/sysutils/lookupd_ldap/pkg-message deleted file mode 100644 index 5fb5a81d62da..000000000000 --- a/sysutils/lookupd_ldap/pkg-message +++ /dev/null @@ -1,5 +0,0 @@ -*************************************************** -lookupd ldap module uses nss_ldap.conf configuration file, as -it is based on nss_ldap from PADL.com. For information on -nss_ldap.conf file, see corresponding documentation for nss_ldap. -*************************************************** diff --git a/sysutils/p5-Sys-Utmp/Makefile b/sysutils/p5-Sys-Utmp/Makefile deleted file mode 100644 index 4faddc0f2e59..000000000000 --- a/sysutils/p5-Sys-Utmp/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# Created by: Alexander Zhuravlev -# $FreeBSD$ - -PORTNAME= Sys-Utmp -PORTVERSION= 1.6 -CATEGORIES= sysutils perl5 -MASTER_SITES= CPAN -PKGNAMEPREFIX= p5- - -MAINTAINER= zaa@ulstu.ru -COMMENT= Perl5 module which provides Object(ish) Interface to UTMP files - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -USES= perl5 -USE_PERL5= configure - -post-patch: - @${REINPLACE_CMD} -e '254 s,strcpy,strncpy,' ${WRKSRC}/Utmp.xs - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/sysutils/p5-Sys-Utmp/distinfo b/sysutils/p5-Sys-Utmp/distinfo deleted file mode 100644 index c9489ed73e27..000000000000 --- a/sysutils/p5-Sys-Utmp/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (Sys-Utmp-1.6.tar.gz) = 8d8907bc14065017b0431ce856d509945aad44742c4d0ef380b4d9e7713f156d -SIZE (Sys-Utmp-1.6.tar.gz) = 8818 diff --git a/sysutils/p5-Sys-Utmp/pkg-descr b/sysutils/p5-Sys-Utmp/pkg-descr deleted file mode 100644 index cea1efad28b1..000000000000 --- a/sysutils/p5-Sys-Utmp/pkg-descr +++ /dev/null @@ -1,6 +0,0 @@ -Sys::Utmp provides a vaguely object oriented interface to the Unix -user accounting file ( usually /etc/utmp ). Whilst it would prefer -to use the getutent() function from the systems C libraries it will -attempt to provide its own if they are missing. - -WWW: http://search.cpan.org/dist/Sys-Utmp/ diff --git a/sysutils/p5-Sys-Utmp/pkg-plist b/sysutils/p5-Sys-Utmp/pkg-plist deleted file mode 100644 index f36cb187d8f2..000000000000 --- a/sysutils/p5-Sys-Utmp/pkg-plist +++ /dev/null @@ -1,10 +0,0 @@ -%%SITE_PERL%%/%%PERL_ARCH%%/Sys/Utmp.pm -%%SITE_PERL%%/%%PERL_ARCH%%/Sys/Utmp/Utent.pm -%%SITE_PERL%%/%%PERL_ARCH%%/auto/Sys/Utmp/.packlist -%%SITE_PERL%%/%%PERL_ARCH%%/auto/Sys/Utmp/Utmp.so -%%PERL5_MAN3%%/Sys::Utmp.3.gz -%%PERL5_MAN3%%/Sys::Utmp::Utent.3.gz -@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Sys/Utmp -@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/Sys -@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/Sys/Utmp -@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/Sys diff --git a/sysutils/syslog-ng2/Makefile b/sysutils/syslog-ng2/Makefile deleted file mode 100644 index f62b5bfb3960..000000000000 --- a/sysutils/syslog-ng2/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# Created by: Ivan Lago -# $FreeBSD$ - -PORTNAME= syslog-ng -PORTVERSION= 2.0.10 -PORTREVISION= 2 -CATEGORIES= sysutils -MASTER_SITES= http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/ -PKGNAMESUFFIX= 2 - -MAINTAINER= ports@FreeBSD.org -COMMENT= Powerful syslogd replacement - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -LIB_DEPENDS= libnet.so:${PORTSDIR}/net/libnet \ - libevtlog.so:${PORTSDIR}/sysutils/eventlog - -MAN5= syslog-ng.conf.5 -MAN8= syslog-ng.8 - -USE_RC_SUBR= syslog-ng -USES= pkgconfig -GNU_CONFIGURE= yes -USE_GNOME= glib20 -SUB_FILES= pkg-message - -LIBNET_CONFIG?= ${LOCALBASE}/bin/libnet11-config - -CONFIGURE_ARGS= --sysconfdir=${LOCALBASE}/etc --localstatedir=/var/db \ - --enable-dynamic-linking --with-libnet=${LOCALBASE}/bin -LDFLAGS+= `${LIBNET_CONFIG} --libs` -CFLAGS+= `${LIBNET_CONFIG} --cflags` - -NO_STAGE= yes -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.if defined(WITH_TCP_WRAPPERS) -CONFIGURE_ARGS+=--enable-tcp-wrapper -.endif - -post-patch: - @${REINPLACE_CMD} -e 's:__PREFIX__:${PREFIX}:g' ${WRKSRC}/src/syslog-ng.h - @${REINPLACE_CMD} -e 's:libnet-config:libnet11-config:g' ${WRKSRC}/configure - -post-install: -.if !defined(NOPORTDOCS) - ${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} \ - ${PREFIX}/share/doc/syslog-ng \ - ${PREFIX}/share/doc/syslog-ng/sgml - ${INSTALL_DATA} ${WRKSRC}/AUTHORS ${PREFIX}/share/doc/syslog-ng - ${INSTALL_DATA} ${WRKSRC}/COPYING ${PREFIX}/share/doc/syslog-ng - ${INSTALL_DATA} ${WRKSRC}/ChangeLog ${PREFIX}/share/doc/syslog-ng - ${INSTALL_DATA} ${WRKSRC}/NEWS ${PREFIX}/share/doc/syslog-ng - ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/syslog-ng -.endif - @if [ ! -f ${PREFIX}/etc/syslog-ng/syslog-ng.conf.sample ]; then \ - ${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} ${PREFIX}/etc/syslog-ng; \ - ${INSTALL_DATA} ${FILESDIR}/syslog-ng.conf.sample ${PREFIX}/etc/syslog-ng; \ - fi - @${CAT} ${PKGMESSAGE} - -.include diff --git a/sysutils/syslog-ng2/distinfo b/sysutils/syslog-ng2/distinfo deleted file mode 100644 index ea87b0524b8e..000000000000 --- a/sysutils/syslog-ng2/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (syslog-ng-2.0.10.tar.gz) = f9155bcab40b572807796348d3ee8fbef3b5ff9aad213f74a09b321ac1d5b4ef -SIZE (syslog-ng-2.0.10.tar.gz) = 403808 diff --git a/sysutils/syslog-ng2/files/patch-syslog-names.c b/sysutils/syslog-ng2/files/patch-syslog-names.c deleted file mode 100644 index 1e9d02e3ea58..000000000000 --- a/sysutils/syslog-ng2/files/patch-syslog-names.c +++ /dev/null @@ -1,20 +0,0 @@ ---- src/syslog-names.c.orig Wed Feb 28 10:19:12 2007 -+++ src/syslog-names.c Wed Aug 22 15:48:07 2007 -@@ -45,6 +45,7 @@ - #ifdef LOG_AUTHPRIV - {"authpriv", LOG_AUTHPRIV}, - #endif -+ {"console", LOG_CONSOLE }, - #ifdef LOG_CRON - {"cron", LOG_CRON}, - #endif -@@ -56,7 +57,8 @@ - {"lpr", LOG_LPR}, - {"mail", LOG_MAIL}, - {"news", LOG_NEWS}, -- {"security", LOG_AUTH}, /* DEPRECATED */ -+ {"ntp", LOG_NTP }, -+ {"security", LOG_SECURITY }, - {"syslog", LOG_SYSLOG}, - {"user", LOG_USER}, - {"uucp", LOG_UUCP}, diff --git a/sysutils/syslog-ng2/files/patch-syslog-ng.h b/sysutils/syslog-ng2/files/patch-syslog-ng.h deleted file mode 100644 index 9e46c58be330..000000000000 --- a/sysutils/syslog-ng2/files/patch-syslog-ng.h +++ /dev/null @@ -1,11 +0,0 @@ ---- src/syslog-ng.h.orig Thu Apr 3 15:18:31 2008 -+++ src/syslog-ng.h Thu Apr 3 15:17:05 2008 -@@ -37,7 +37,7 @@ - #include - - #define PATH_SYSLOG_NG_CONF PATH_SYSCONFDIR "/syslog-ng.conf" --#define PATH_PIDFILE "/var/run/syslog-ng.pid" -+#define PATH_PIDFILE "/var/run/syslog.pid" - #define PATH_PERSIST_CONFIG PATH_LOCALSTATEDIR "/syslog-ng.persist" - - #define LOG_PRIORITY_LISTEN 0 diff --git a/sysutils/syslog-ng2/files/pkg-message.in b/sysutils/syslog-ng2/files/pkg-message.in deleted file mode 100644 index 7be559337413..000000000000 --- a/sysutils/syslog-ng2/files/pkg-message.in +++ /dev/null @@ -1,29 +0,0 @@ - -syslog-ng is now installed! To replace FreeBSD's standard syslogd -(/usr/sbin/syslogd), complete these steps: - -1. Create a configuration file named %%PREFIX%%/etc/syslog-ng.conf - (a sample named syslog-ng.conf.sample has been included in - %%PREFIX%%/etc/syslog-ng). Note that this is a change in 2.0.2 - version, previous ones put the config file in - %%PREFIX%%/etc/syslog-ng/syslog-ng.conf, so if this is an update - move that file in the right place - -2. Configure syslog-ng to start automatically by adding the following - to /etc/rc.conf: - - syslog_ng_enable="YES" - -3. Prevent the standard FreeBSD syslogd from starting automatically by - adding a line to the end of your /etc/rc.conf file that reads: - - syslogd_enable="NO" - -4. Shut down the standard FreeBSD syslogd: - - kill `cat /var/run/syslog.pid` - -5. Start syslog-ng: - - %%PREFIX%%/etc/rc.d/syslog-ng start - diff --git a/sysutils/syslog-ng2/files/syslog-ng.conf.sample b/sysutils/syslog-ng2/files/syslog-ng.conf.sample deleted file mode 100644 index c2059c4165db..000000000000 --- a/sysutils/syslog-ng2/files/syslog-ng.conf.sample +++ /dev/null @@ -1,181 +0,0 @@ -# -# This sample configuration file is essentially equilivent to the stock -# FreeBSD /etc/syslog.conf file. -# - -# -# options -# -options { long_hostnames(off); sync(0); }; - -# -# sources -# -source src { unix-dgram("/var/run/log"); - unix-dgram("/var/run/logpriv" perm(0600)); - udp(); internal(); file("/dev/klog"); }; - -# -# destinations -# -destination messages { file("/var/log/messages"); }; -destination security { file("/var/log/security"); }; -destination authlog { file("/var/log/auth.log"); }; -destination maillog { file("/var/log/maillog"); }; -destination lpd-errs { file("/var/log/lpd-errs"); }; -destination xferlog { file("/var/log/xferlog"); }; -destination cron { file("/var/log/cron"); }; -destination debuglog { file("/var/log/debug.log"); }; -destination consolelog { file("/var/log/console.log"); }; -destination all { file("/var/log/all.log"); }; -destination newscrit { file("/var/log/news/news.crit"); }; -destination newserr { file("/var/log/news/news.err"); }; -destination newsnotice { file("/var/log/news/news.notice"); }; -destination slip { file("/var/log/slip.log"); }; -destination ppp { file("/var/log/ppp.log"); }; -destination console { file("/dev/console"); }; -destination allusers { usertty("*"); }; -#destination loghost { udp("loghost" port(514)); }; - -# -# log facility filters -# -filter f_auth { facility(auth); }; -filter f_authpriv { facility(authpriv); }; -filter f_not_authpriv { not facility(authpriv); }; -filter f_console { facility(console); }; -filter f_cron { facility(cron); }; -filter f_daemon { facility(daemon); }; -filter f_ftp { facility(ftp); }; -filter f_kern { facility(kern); }; -filter f_lpr { facility(lpr); }; -filter f_mail { facility(mail); }; -filter f_news { facility(news); }; -filter f_security { facility(security); }; -filter f_user { facility(user); }; -filter f_uucp { facility(uucp); }; -filter f_local0 { facility(local0); }; -filter f_local1 { facility(local1); }; -filter f_local2 { facility(local2); }; -filter f_local3 { facility(local3); }; -filter f_local4 { facility(local4); }; -filter f_local5 { facility(local5); }; -filter f_local6 { facility(local6); }; -filter f_local7 { facility(local7); }; - -# -# log level filters -# -filter f_emerg { level(emerg); }; -filter f_alert { level(alert..emerg); }; -filter f_crit { level(crit..emerg); }; -filter f_err { level(err..emerg); }; -filter f_warning { level(warning..emerg); }; -filter f_notice { level(notice..emerg); }; -filter f_info { level(info..emerg); }; -filter f_debug { level(debug..emerg); }; -filter f_is_debug { level(debug); }; - -# -# program filters -# -filter f_ppp { program("ppp"); }; -filter f_slip { program("startslip"); }; - -# -# *.err;kern.warning;auth.notice;mail.crit /dev/console -# -log { source(src); filter(f_err); destination(console); }; -log { source(src); filter(f_kern); filter(f_warning); destination(console); }; -log { source(src); filter(f_auth); filter(f_notice); destination(console); }; -log { source(src); filter(f_mail); filter(f_crit); destination(console); }; - -# -# *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages -# -log { source(src); filter(f_notice); filter(f_not_authpriv); destination(messages); }; -log { source(src); filter(f_kern); filter(f_debug); destination(messages); }; -log { source(src); filter(f_lpr); filter(f_info); destination(messages); }; -log { source(src); filter(f_mail); filter(f_crit); destination(messages); }; -log { source(src); filter(f_news); filter(f_err); destination(messages); }; - -# -# security.* /var/log/security -# -log { source(src); filter(f_security); destination(security); }; - -# -# auth.info;authpriv.info /var/log/auth.log -log { source(src); filter(f_auth); filter(f_info); destination(authlog); }; -log { source(src); filter(f_authpriv); filter(f_info); destination(authlog); }; - -# -# mail.info /var/log/maillog -# -log { source(src); filter(f_mail); filter(f_info); destination(maillog); }; - -# -# lpr.info /var/log/lpd-errs -# -log { source(src); filter(f_lpr); filter(f_info); destination(lpd-errs); }; - -# -# ftp.info /var/log/xferlog -# -log { source(src); filter(f_ftp); filter(f_info); destination(xferlog); }; - -# -# cron.* /var/log/cron -# -log { source(src); filter(f_cron); destination(cron); }; - -# -# *.=debug /var/log/debug.log -# -log { source(src); filter(f_is_debug); destination(debuglog); }; - -# -# *.emerg * -# -log { source(src); filter(f_emerg); destination(allusers); }; - -# -# uncomment this to log all writes to /dev/console to /var/log/console.log -# console.info /var/log/console.log -# -#log { source(src); filter(f_console); filter(f_info); destination(consolelog); }; - -# -# uncomment this to enable logging of all log messages to /var/log/all.log -# touch /var/log/all.log and chmod it to mode 600 before it will work -# *.* /var/log/all.log -# -#log { source(src); destination(all); }; - -# -# uncomment this to enable logging to a remote loghost named loghost -# *.* @loghost -# -#log { source(src); destination(loghost); }; - -# -# uncomment these if you're running inn -# news.crit /var/log/news/news.crit -# news.err /var/log/news/news.err -# news.notice /var/log/news/news.notice -# -#log { source(src); filter(f_news); filter(f_crit); destination(newscrit); }; -#log { source(src); filter(f_news); filter(f_err); destination(newserr); }; -#log { source(src); filter(f_news); filter(f_notice); destination(newsnotice); }; - -# -# !startslip -# *.* /var/log/slip.log -# -log { source(src); filter(f_slip); destination(slip); }; - -# -# !ppp -# *.* /var/log/ppp.log -# -log { source(src); filter(f_ppp); destination(ppp); }; diff --git a/sysutils/syslog-ng2/files/syslog-ng.in b/sysutils/syslog-ng2/files/syslog-ng.in deleted file mode 100644 index 804bf6ec36fa..000000000000 --- a/sysutils/syslog-ng2/files/syslog-ng.in +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ -# - -# PROVIDE: syslogd -# REQUIRE: mountcritremote cleanvar ldconfig -# BEFORE: SERVERS - -# -# Add the following line to /etc/rc.conf.local or /etc/rc.conf -# to enable this service: -# -#syslog_ng_enable="YES" -#syslog_ng_config="-u daemon" -#syslog_ng_pid="/var/run/syslog-ng.pid" -# - -syslog_ng_purgeklog=${syslog_ng_purgeklog-"NO"} - -. /etc/rc.subr - -name=syslog_ng -rcvar=syslog_ng_enable - -command=%%PREFIX%%/sbin/syslog-ng -required_files=%%PREFIX%%/etc/syslog-ng.conf -extra_commands=reload - -if checkyesno syslog_ng_purgeklog; then - start_precmd="echo \"Purging klog(9)\" && sysctl -w kern.msgbuf_clear=1 $start_precmd"; -fi - -stop_postcmd=stop_postcmd - -load_rc_config $name - -: ${syslog_ng_enable:="NO"} -pidfile=${syslog_ng_pid:-"/var/run/syslog.pid"} -command_args="-p ${pidfile} ${syslog_ng_config}" - -stop_postcmd() { - rm -f $pidfile -} - -run_rc_command "$1" diff --git a/sysutils/syslog-ng2/pkg-descr b/sysutils/syslog-ng2/pkg-descr deleted file mode 100644 index fa72550fde2a..000000000000 --- a/sysutils/syslog-ng2/pkg-descr +++ /dev/null @@ -1,17 +0,0 @@ -syslog-ng is an enhanced log daemon, supporting a wide range of input and -output methods: syslog, unstructured text, message queues, databases (SQL -and NoSQL alike) and more. - -Key features: - - * receive and send RFC3164 and RFC5424 style syslog messages - * work with any kind of unstructured data - * receive and send JSON formatted messages - * classify and structure logs with builtin parsers (csv-parser(), - db-parser(), ...) - * normalize, crunch and process logs as they flow through the system - * hand on messages for further processing using message queues (like - AMQP), files or databases (like PostgreSQL or MongoDB). - -The official home page of syslog-ng is: -http://www.balabit.com/network-security/syslog-ng/ diff --git a/sysutils/syslog-ng2/pkg-plist b/sysutils/syslog-ng2/pkg-plist deleted file mode 100644 index c60b6b04e8da..000000000000 --- a/sysutils/syslog-ng2/pkg-plist +++ /dev/null @@ -1,12 +0,0 @@ -@unexec %D/etc/rc.d/syslog-ng.sh stop > /dev/null 2>&1 || true -etc/syslog-ng/syslog-ng.conf.sample -bin/loggen -sbin/syslog-ng -%%PORTDOCS%%%%DOCSDIR%%/AUTHORS -%%PORTDOCS%%%%DOCSDIR%%/COPYING -%%PORTDOCS%%%%DOCSDIR%%/ChangeLog -%%PORTDOCS%%%%DOCSDIR%%/NEWS -%%PORTDOCS%%%%DOCSDIR%%/README -%%PORTDOCS%%@dirrm %%DOCSDIR%%/sgml -%%PORTDOCS%%@dirrm %%DOCSDIR%% -@dirrm etc/syslog-ng diff --git a/sysutils/yawho/Makefile b/sysutils/yawho/Makefile deleted file mode 100644 index ce6bf19703e7..000000000000 --- a/sysutils/yawho/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# Created by: Daniel Harris -# $FreeBSD$ - -PORTNAME= yawho -PORTVERSION= 1.2 -CATEGORIES= sysutils -MASTER_SITES= http://wizard.ae.krakow.pl/~mike/download/ - -MAINTAINER= ports@FreeBSD.org -COMMENT= Simple 'w'-like program; displays connection type and login shell PID - -DEPRECATED= Fails to build with new utmpx -EXPIRATION_DATE= 2014-07-23 - -GNU_CONFIGURE= yes - -PLIST_FILES= bin/yawho - -NO_STAGE= yes -pre-patch: - @${REINPLACE_CMD} -E -e 's/kp_.?proc\.._/ki_/' ${WRKSRC}/process.c - -.include - -.if ${OSVERSION} > 900007 -BROKEN= fails to build with new utmpx -.endif - -.include diff --git a/sysutils/yawho/distinfo b/sysutils/yawho/distinfo deleted file mode 100644 index 3046205fba0d..000000000000 --- a/sysutils/yawho/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (yawho-1.2.tar.gz) = 983287063204372e6bbb70f8dc1b2665fc041ccb6d8d7fd5ac1d8d4cf9a34ef1 -SIZE (yawho-1.2.tar.gz) = 27489 diff --git a/sysutils/yawho/files/patch-aa b/sysutils/yawho/files/patch-aa deleted file mode 100644 index 088b59121a7b..000000000000 --- a/sysutils/yawho/files/patch-aa +++ /dev/null @@ -1,11 +0,0 @@ ---- Makefile.in Fri May 19 14:15:10 2000 -+++ Makefile.in.new Sat Dec 16 15:01:07 2000 -@@ -64,7 +64,7 @@ - @rm -f yawho - $(LINK) $(yawho_LDFLAGS) $(yawho_OBJECTS) $(yawho_LDADD) $(LIBS) - install: -- $(INSTALL) -o root -m 0755 yawho $(bindir)/yawho -+ $(BSD_INSTALL_PROGRAM) yawho $(bindir)/yawho - clean: - rm -f ./*.o - rm -f yawho diff --git a/sysutils/yawho/pkg-descr b/sysutils/yawho/pkg-descr deleted file mode 100644 index ba14782b6590..000000000000 --- a/sysutils/yawho/pkg-descr +++ /dev/null @@ -1,5 +0,0 @@ -Yawho is a fast and simple program similar to 'w'. -For each logged in user yawho displays the connection type, -tty, login shell PID, 'from' host, and the user's current command. - -WWW: http://wizard.ae.krakow.pl/~mike/