diff options
author | Alin Năstac <mrness@gentoo.org> | 2008-01-29 22:16:59 +0000 |
---|---|---|
committer | Alin Năstac <mrness@gentoo.org> | 2008-01-29 22:16:59 +0000 |
commit | 677ca7f9f3de465459b5e62628a918b921001a4c (patch) | |
tree | fa33abb0e497eeab4b5acb26a98b46bee9d80d10 /net-dialup | |
parent | Make it _p25 rather than _p33... (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | net-dialup/mingetty/files/digest-mingetty-1.08 | 3 | ||||
-rw-r--r-- | net-dialup/mingetty/files/mingetty-1.08-utf8.patch | 156 | ||||
-rw-r--r-- | net-dialup/mingetty/mingetty-1.08.ebuild | 29 |
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" +} |