summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlin Năstac <mrness@gentoo.org>2008-01-29 22:16:59 +0000
committerAlin Năstac <mrness@gentoo.org>2008-01-29 22:16:59 +0000
commit677ca7f9f3de465459b5e62628a918b921001a4c (patch)
treefa33abb0e497eeab4b5acb26a98b46bee9d80d10 /net-dialup
parentMake it _p25 rather than _p33... (diff)
downloadgentoo-2-677ca7f9f3de465459b5e62628a918b921001a4c.tar.gz
gentoo-2-677ca7f9f3de465459b5e62628a918b921001a4c.tar.bz2
gentoo-2-677ca7f9f3de465459b5e62628a918b921001a4c.zip
Version bump (#208053).
(Portage version: 2.1.3.19)
Diffstat (limited to 'net-dialup')
-rw-r--r--net-dialup/mingetty/ChangeLog10
-rw-r--r--net-dialup/mingetty/files/digest-mingetty-1.083
-rw-r--r--net-dialup/mingetty/files/mingetty-1.08-utf8.patch156
-rw-r--r--net-dialup/mingetty/mingetty-1.08.ebuild29
4 files changed, 196 insertions, 2 deletions
diff --git a/net-dialup/mingetty/ChangeLog b/net-dialup/mingetty/ChangeLog
index 8bb275269b6f..cbeeb1f5c976 100644
--- a/net-dialup/mingetty/ChangeLog
+++ b/net-dialup/mingetty/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-dialup/mingetty
-# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-dialup/mingetty/ChangeLog,v 1.48 2007/08/25 15:35:06 mrness Exp $
+# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/mingetty/ChangeLog,v 1.49 2008/01/29 22:16:58 mrness Exp $
+
+*mingetty-1.08 (29 Jan 2008)
+
+ 29 Jan 2008; Alin Năstac <mrness@gentoo.org>
+ +files/mingetty-1.08-utf8.patch, +mingetty-1.08.ebuild:
+ Version bump (#208053).
25 Aug 2007; Alin Năstac <mrness@gentoo.org> -mingetty-1.07.ebuild:
Remove old revision.
diff --git a/net-dialup/mingetty/files/digest-mingetty-1.08 b/net-dialup/mingetty/files/digest-mingetty-1.08
new file mode 100644
index 000000000000..c5465382c31e
--- /dev/null
+++ b/net-dialup/mingetty/files/digest-mingetty-1.08
@@ -0,0 +1,3 @@
+MD5 2a75ad6487ff271424ffc00a64420990 mingetty-1.08.tar.gz 13476
+RMD160 f88f284a517a70d75274935da4152c09299cb31b mingetty-1.08.tar.gz 13476
+SHA256 0f55c90ba4faa913d91ef99cbf5cb2eb4dbe2780314c3bb17953f849c8cddd17 mingetty-1.08.tar.gz 13476
diff --git a/net-dialup/mingetty/files/mingetty-1.08-utf8.patch b/net-dialup/mingetty/files/mingetty-1.08-utf8.patch
new file mode 100644
index 000000000000..c57bc0b6ad4e
--- /dev/null
+++ b/net-dialup/mingetty/files/mingetty-1.08-utf8.patch
@@ -0,0 +1,156 @@
+diff -Nru mingetty-1.08.orig/mingetty.c mingetty-1.08/mingetty.c
+--- mingetty-1.08.orig/mingetty.c 2008-01-18 13:13:07.000000000 +0200
++++ mingetty-1.08/mingetty.c 2008-01-30 00:14:25.000000000 +0200
+@@ -16,10 +16,15 @@
+ * - autologin only at first login
+ * - /etc/mingetty.conf that can be used instead of /etc/inittab for
+ * command line options
+- * - Can UTF-8 setup be done within mingetty?
++ * - Can UTF-8 setup be done within mingetty? Let's try now :-) (VinzC)
+ * - Also add /bin/login-type functionality in here?
+ */
+
++/* Additional comments: Vincent Cadet <vcadet@hotmail.com> (2006-11-21)
++ * - Attempt to make mingetty support UTF-8. Modifications were imported
++ * from Suse migetty.c 0.9.6s.
++ */
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -39,6 +44,19 @@
+ #include <syslog.h>
+ #include <sys/utsname.h>
+ #include <time.h>
++#include <locale.h>
++#include <iconv.h>
++#include <wctype.h>
++#include <sys/kd.h>
++#include <sys/ttydefaults.h>
++
++#ifndef IUTF8
++# ifndef ASM_IUTF8
++# error ASM_IUTF8 input flag not defined - Cannot define IUTF8
++# else
++# define IUTF8 ASM_IUTF8
++# endif
++#endif
+
+ /* name of this program (argv[0]) */
+ static char *progname;
+@@ -76,6 +94,8 @@
+ static char *autologin = NULL;
+ /* try to read a char before dropping to login prompt */
+ static int loginpause = 0;
++/* terminal mode */
++static int mode = K_RAW;
+
+ /* error() - output error messages */
+ static void error (const char *fmt, ...)
+@@ -189,10 +209,21 @@
+ if (fd > 2)
+ close (fd);
+
++ /* Detect mode of current keyboard setup, e.g. for UTF-8 */
++ if (ioctl(0, KDGKBMODE, &mode) < 0)
++ mode = K_RAW;
++
+ /* Write a reset string to the terminal. This is very linux-specific
+ and should be checked for other systems. */
+ if (noclear == 0)
+- write (0, "\033c", 2);
++ /* don't write a full reset (ESC c) because this leaves the
++ unicode mode again if the terminal was in unicode mode
++ and also undos the ESC sequences in CONSOLE_MAGIC which
++ are needed for some languages/console-fonts.
++ Just put the cursor to the home position (ESC [ H),
++ erase everything below the cursor (ESC [ J), and set the
++ scrolling region to the full window (ESC [ r) */
++ write (0, "\033[r\033[H\033[J", 9);
+
+ sigaction (SIGHUP, &sa_old, NULL);
+ }
+@@ -298,32 +329,75 @@
+
+ static char *get_logname (void)
+ {
+- static char logname[40];
++ static char logname[4*UT_NAMESIZE];
+ char *bp;
+ unsigned char c;
++ int ascii;
++ iconv_t ic;
+
+ tcflush (0, TCIFLUSH); /* flush pending input */
++
++ /* Check for UTF-8 mode */
++ switch(mode) {
++ case K_UNICODE:
++ ascii = 0;
++ setlocale(LC_CTYPE, "en_US.UTF-8");
++ break;
++ case K_RAW:
++ case K_MEDIUMRAW:
++ case K_XLATE:
++ default:
++ ascii = 1;
++ setlocale(LC_CTYPE, "POSIX");
++ break;
++ }
++
+ for (*logname = 0; *logname == 0;) {
+ do_prompt (1);
+ for (bp = logname;;) {
+ if (read (0, &c, 1) < 1) {
+- if (errno == EINTR || errno == EIO
+- || errno == ENOENT)
++ if (errno == EINTR || errno == EAGAIN) {
++ usleep(1000);
++ continue;
++ }
++ if (errno == EIO || errno == ENOENT)
+ exit (EXIT_SUCCESS);
+ error ("%s: read: %s", tty, strerror (errno));
+ }
+ if (c == '\n' || c == '\r') {
+ *bp = 0;
+ break;
+- } else if (!isprint (c))
+- error ("%s: invalid character 0x%x in login"
+- " name", tty, c);
++ }
++
++ if (ascii && !isprint (c))
++ error ("%s: invalid character 0x%x in login name", tty, c);
+ else if ((size_t)(bp - logname) >= sizeof (logname) - 1)
+ error ("%s: too long login name", tty);
+- else
+- *bp++ = c;
++
++ *bp++ = c;
+ }
+ }
++
++ if (!ascii && (ic = iconv_open("WCHAR_T", "UTF-8"))) {
++ char tmpbuf[4*sizeof(logname)], *op, *lp;
++ size_t len = bp - logname;
++ size_t out = sizeof(tmpbuf) - 1;
++ size_t wcl;
++ wint_t *wcp;
++
++ op = tmpbuf;
++ lp = logname;
++ if ((wcl = iconv(ic , &lp, &len, &op, &out)) == (size_t)-1)
++ error ("%s: invalid character conversion for login name", tty);
++ iconv_close(ic);
++
++ wcp = (wint_t*)tmpbuf;
++ wcp[wcl] = (wint_t)0;
++ while (*wcp) {
++ if (!iswprint(*wcp++))
++ error ("%s: invalid character for login name found", tty);
++ }
++ }
+ return logname;
+ }
+
diff --git a/net-dialup/mingetty/mingetty-1.08.ebuild b/net-dialup/mingetty/mingetty-1.08.ebuild
new file mode 100644
index 000000000000..15058212dda6
--- /dev/null
+++ b/net-dialup/mingetty/mingetty-1.08.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/mingetty/mingetty-1.08.ebuild,v 1.1 2008/01/29 22:16:58 mrness Exp $
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="A compact getty program for virtual consoles only."
+HOMEPAGE="http://sourceforge.net/projects/mingetty"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="unicode"
+
+src_unpack() {
+ unpack ${A}
+
+ use unicode && epatch "${FILESDIR}"/${P}-utf8.patch
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS} -Wall -W -pipe -D_GNU_SOURCE" CC="$(tc-getCC)" || die "compile failed"
+}
+
+src_install () {
+ dodir /sbin /usr/share/man/man8
+ emake DESTDIR="${D}" install || die "install failed"
+}