summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-text/uudeview
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-text/uudeview')
-rw-r--r--app-text/uudeview/Manifest1
-rw-r--r--app-text/uudeview/files/uudeview-0.5.20-CVE-2004-2265.patch47
-rw-r--r--app-text/uudeview/files/uudeview-0.5.20-CVE-2008-2266.patch166
-rw-r--r--app-text/uudeview/files/uudeview-0.5.20-bugfixes.patch100
-rw-r--r--app-text/uudeview/files/uudeview-0.5.20-man.patch95
-rw-r--r--app-text/uudeview/files/uudeview-0.5.20-rename.patch57
-rw-r--r--app-text/uudeview/metadata.xml8
-rw-r--r--app-text/uudeview/uudeview-0.5.20-r1.ebuild43
8 files changed, 517 insertions, 0 deletions
diff --git a/app-text/uudeview/Manifest b/app-text/uudeview/Manifest
new file mode 100644
index 000000000000..f47afed0cc0b
--- /dev/null
+++ b/app-text/uudeview/Manifest
@@ -0,0 +1 @@
+DIST uudeview-0.5.20.tar.gz 261574 SHA256 e49a510ddf272022af204e96605bd454bb53da0b3fe0be437115768710dae435 SHA512 d080e9c3940bad7bacd28457f21133056384a01e33ba014de42502d23f81f2c7f5fa7f6c472ce9f37bec2edb8e18d27135bf18426cf2f23188a3683558e1721c WHIRLPOOL 4c18f8b1930852c89d2d0ca31e64d3eb06c19cef58d0901e3cafe0ae73b1245b749e7548d1726f772a631c2ffa2ad15b815861ab6dc779e8184334948c149326
diff --git a/app-text/uudeview/files/uudeview-0.5.20-CVE-2004-2265.patch b/app-text/uudeview/files/uudeview-0.5.20-CVE-2004-2265.patch
new file mode 100644
index 000000000000..ac1f39410e4b
--- /dev/null
+++ b/app-text/uudeview/files/uudeview-0.5.20-CVE-2004-2265.patch
@@ -0,0 +1,47 @@
++uudeview (0.5.20-2.1) unstable; urgency=low
++
++ * Fix possible (but highly unlikely) race in temporary file generation
++ (CAN-2004-2265), by passing the "x" (O_EXCL) flag to fopen when opening
++ such files. (Closes: #320541)
++
++ -- Steinar H. Gunderson <sesse@debian.org> Wed, 14 Jun 2006 18:44:05 +0200
++
+
+Index: uudeview-0.5.20/unix/uudeview.c
+===================================================================
+--- uudeview-0.5.20.orig/unix/uudeview.c
++++ uudeview-0.5.20/unix/uudeview.c
+@@ -454,7 +454,7 @@ proc_stdin (void)
+ return 0;
+ }
+
+- if ((target = fopen (stdfile, "wb")) == NULL) {
++ if ((target = fopen (stdfile, "wbx")) == NULL) {
+ fprintf (stderr, "proc_stdin: cannot open temp file %s for writing: %s\n",
+ stdfile, strerror (errno));
+ _FP_free (stdfile);
+Index: uudeview-0.5.20/uulib/uunconc.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uunconc.c
++++ uudeview-0.5.20/uulib/uunconc.c
+@@ -1325,9 +1325,9 @@ UUDecode (uulist *data)
+ return UURET_NODATA;
+
+ if (data->uudet == PT_ENCODED)
+- mode = "wt"; /* open text files in text mode */
++ mode = "wtx"; /* open text files in text mode */
+ else
+- mode = "wb"; /* otherwise in binary */
++ mode = "wbx"; /* otherwise in binary */
+
+ if ((data->binfile = tempnam (NULL, "uu")) == NULL) {
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+@@ -1502,7 +1502,7 @@ UUDecode (uulist *data)
+ progress.action = 0;
+ return UURET_NOMEM;
+ }
+- if ((datain = fopen (data->binfile, "rb")) == NULL) {
++ if ((datain = fopen (data->binfile, "rbx")) == NULL) {
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+ uustring (S_NOT_OPEN_FILE),
+ data->binfile, strerror (uu_errno = errno));
diff --git a/app-text/uudeview/files/uudeview-0.5.20-CVE-2008-2266.patch b/app-text/uudeview/files/uudeview-0.5.20-CVE-2008-2266.patch
new file mode 100644
index 000000000000..ba0de28dcacc
--- /dev/null
+++ b/app-text/uudeview/files/uudeview-0.5.20-CVE-2008-2266.patch
@@ -0,0 +1,166 @@
++uudeview (0.5.20-3.1) unstable; urgency=high
+...
++ * Fixed a classical tempfile symlink attack vulnerability in libuu.
++ Thanks to Nico Golde for the patch. (Closes: #480972)
+...
++ -- Marco d'Itri <md@linux.it> Wed, 21 May 2008 01:34:35 +0200
+
+Index: uudeview-0.5.20/unix/uudeview.c
+===================================================================
+--- uudeview-0.5.20.orig/unix/uudeview.c
++++ uudeview-0.5.20/unix/uudeview.c
+@@ -443,18 +443,46 @@ proc_stdin (void)
+ FILE *target;
+ size_t bytes;
+ int res;
++#define HAVE_MKSTEMP
++#ifdef HAVE_MKSTEMP
++ int tmpfd;
++ const char *tmpprefix = "uuXXXXXX";
++ char *tmpdir = NULL;
++#endif /* HAVE_MKSTEMP */
+
+ if (stdinput) {
+ fprintf (stderr, "proc_stdin: cannot process stdin twice\n");
+ return 0;
+ }
+
++#ifdef HAVE_MKSTEMP
++ if ((getuid()==geteuid()) && (getgid()==getegid())) {
++ tmpdir=getenv("TMPDIR");
++ }
++
++ if (!tmpdir) {
++ tmpdir = "/tmp";
++ }
++ stdfile = malloc(strlen(tmpdir)+strlen(tmpprefix)+2);
++
++ if (!stdfile) {
++#else
+ if ((stdfile = tempnam (NULL, "uu")) == NULL) {
++#endif
+ fprintf (stderr, "proc_stdin: cannot get temporary file\n");
+ return 0;
+ }
+
++#ifdef HAVE_MKSTEMP
++ strcpy(stdfile, tmpdir);
++ strcat(stdfile, "/");
++ strcat(stdfile, tmpprefix);
++
++ if ((tmpfd = mkstemp(stdfile)) == -1 ||
++ (target = fdopen(tmpfd, "wbx")) == NULL) {
++#else
+ if ((target = fopen (stdfile, "wbx")) == NULL) {
++#endif
+ fprintf (stderr, "proc_stdin: cannot open temp file %s for writing: %s\n",
+ stdfile, strerror (errno));
+ _FP_free (stdfile);
+Index: uudeview-0.5.20/uulib/uunconc.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uunconc.c
++++ uudeview-0.5.20/uulib/uunconc.c
+@@ -1311,6 +1311,12 @@ UUDecode (uulist *data)
+ char *mode, *ntmp;
+ uufile *iter;
+ size_t bytes;
++#define HAVE_MKSTEMP
++#ifdef HAVE_MKSTEMP
++ int tmpfd;
++ const char *tmpprefix = "uuXXXXXX";
++ char *tmpdir = NULL;
++#endif /* HAVE_MKSTEMP */
+
+ if (data == NULL || data->thisfile == NULL)
+ return UURET_ILLVAL;
+@@ -1329,13 +1335,35 @@ UUDecode (uulist *data)
+ else
+ mode = "wbx"; /* otherwise in binary */
+
++#ifdef HAVE_MKSTEMP
++ if ((getuid()==geteuid()) && (getgid()==getegid())) {
++ tmpdir=getenv("TMPDIR");
++ }
++
++ if (!tmpdir) {
++ tmpdir = "/tmp";
++ }
++ data->binfile = malloc(strlen(tmpdir)+strlen(tmpprefix)+2);
++
++ if (!data->binfile) {
++#else
+ if ((data->binfile = tempnam (NULL, "uu")) == NULL) {
++#endif /* HAVE_MKSTEMP */
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+ uustring (S_NO_TEMP_NAME));
+ return UURET_NOMEM;
+ }
+
++#ifdef HAVE_MKSTEMP
++ strcpy(data->binfile, tmpdir);
++ strcat(data->binfile, "/");
++ strcat(data->binfile, tmpprefix);
++
++ if ((tmpfd = mkstemp(data->binfile)) == -1 ||
++ (dataout = fdopen(tmpfd, mode)) == NULL) {
++#else
+ if ((dataout = fopen (data->binfile, mode)) == NULL) {
++#endif /* HAVE_MKSTEMP */
+ /*
+ * we couldn't create a temporary file. Usually this means that TMP
+ * and TEMP aren't set
+@@ -1343,6 +1371,12 @@ UUDecode (uulist *data)
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+ uustring (S_WR_ERR_TARGET),
+ data->binfile, strerror (uu_errno = errno));
++#ifdef HAVE_MKSTEMP
++ if (tmpfd != -1) {
++ unlink(data->binfile);
++ close(tmpfd);
++ }
++#endif /* HAVE_MKSTEMP */
+ _FP_free (data->binfile);
+ data->binfile = NULL;
+ uu_errno = errno;
+@@ -1499,7 +1533,13 @@ UUDecode (uulist *data)
+ */
+
+ if (data->uudet == BH_ENCODED && data->binfile) {
++#ifdef HAVE_MKSTEMP
++ ntmp = malloc(strlen(tmpdir)+strlen(tmpprefix)+2);
++
++ if (ntmp == NULL) {
++#else
+ if ((ntmp = tempnam (NULL, "uu")) == NULL) {
++#endif /* HAVE_MKSTEMP */
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+ uustring (S_NO_TEMP_NAME));
+ progress.action = 0;
+@@ -1513,12 +1553,27 @@ UUDecode (uulist *data)
+ free (ntmp);
+ return UURET_IOERR;
+ }
++
++#ifdef HAVE_MKSTEMP
++ strcpy(ntmp, tmpdir);
++ strcat(ntmp, "/");
++ strcat(ntmp, tmpprefix);
++ if ((tmpfd = mkstemp(ntmp)) == -1 ||
++ (dataout = fdopen(tmpfd, "wb")) == NULL) {
++#else
+ if ((dataout = fopen (ntmp, "wb")) == NULL) {
++#endif /* HAVE_MKSTEMP */
+ UUMessage (uunconc_id, __LINE__, UUMSG_ERROR,
+ uustring (S_NOT_OPEN_TARGET),
+ ntmp, strerror (uu_errno = errno));
+ progress.action = 0;
+ fclose (datain);
++#ifdef HAVE_MKSTEMP
++ if (tmpfd != -1) {
++ unlink(ntmp);
++ close(tmpfd);
++ }
++#endif /* HAVE_MKSTEMP */
+ free (ntmp);
+ return UURET_IOERR;
+ }
diff --git a/app-text/uudeview/files/uudeview-0.5.20-bugfixes.patch b/app-text/uudeview/files/uudeview-0.5.20-bugfixes.patch
new file mode 100644
index 000000000000..3056dd2af59b
--- /dev/null
+++ b/app-text/uudeview/files/uudeview-0.5.20-bugfixes.patch
@@ -0,0 +1,100 @@
++uudeview (0.5.20-3) unstable; urgency=low
++
++ * Ack NMU. (closes: Bug#373630)
++ * Don't force overwrite mode if auto-rename enabled. (closes: Bug#378076)
++ * Don't ignore special chars when parsing MIME. (closes: Bug#341440)
++ * Fix for #320541 also fixes #242999. (closes: Bug#242999)
++ * Incorporate suspicious-file patch from Peter Muir. (closes: Bug#166077)
+...
+
++ -- Chris Hanson <cph@debian.org> Tue, 15 Aug 2006 00:40:50 -0400
+
+Index: uudeview-0.5.20/unix/uudeview.c
+===================================================================
+--- uudeview-0.5.20.orig/unix/uudeview.c
++++ uudeview-0.5.20/unix/uudeview.c
+@@ -657,9 +657,6 @@ work_comline (int argc, char *argv[])
+ else switch (*(argv[number] + 1)) {
+ case '\0':
+ interact = 0;
+- if (overwrite == 0) {
+- overwrite = 1;
+- }
+ proc_stdin ();
+ break;
+ case 'a':
+@@ -699,10 +696,7 @@ work_comline (int argc, char *argv[])
+ fprintf (stderr, "WARNING: cannot interact when reading from stdin\n");
+ }
+ else {
+- interact = (*argv[number] == '+') ? 1 : 0;
+- if (overwrite == 0 && *argv[number] == '-') {
+- overwrite = 1;
+- }
++ interact = (*argv[number] == '+') ? 1 : 0;
+ }
+ break;
+ case 'm':
+@@ -773,6 +767,8 @@ work_comline (int argc, char *argv[])
+ break;
+ }
+ }
++ if (overwrite == 0 && interact == 0 && autoren == 0)
++ overwrite = 1;
+
+ return 1;
+ }
+Index: uudeview-0.5.20/uulib/uunconc.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uunconc.c
++++ uudeview-0.5.20/uulib/uunconc.c
+@@ -1437,6 +1437,9 @@ UUDecode (uulist *data)
+ res = UURET_IOERR;
+ break;
+ }
++ UUMessage (uunconc_id, __LINE__, UUMSG_MESSAGE,
++ uustring (S_OPEN_FILE),
++ iter->data->sfname);
+ _FP_strncpy (uugen_fnbuffer, iter->data->sfname, 1024);
+ }
+
+Index: uudeview-0.5.20/uulib/uuscan.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uuscan.c
++++ uudeview-0.5.20/uulib/uuscan.c
+@@ -387,10 +387,10 @@ ParseValue (char *attribute)
+ *attribute != '(' && *attribute != ')' &&
+ *attribute != '<' && *attribute != '>' &&
+ *attribute != '@' && *attribute != ',' &&
+- /* *attribute != ';' && */ *attribute != ':' &&
+- *attribute != '\\' &&*attribute != '"' &&
+- *attribute != '/' && /* *attribute != '[' &&
+- *attribute != ']' && */ *attribute != '?' &&
++ *attribute != ';' && *attribute != ':' &&
++ *attribute != '\\' && *attribute != '"' &&
++ *attribute != '/' && *attribute != '[' &&
++ *attribute != ']' && *attribute != '?' &&
+ *attribute != '=' && length < 255) {
+ *ptr++ = *attribute++;
+ length++;
+Index: uudeview-0.5.20/uulib/uustring.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uustring.c
++++ uudeview-0.5.20/uulib/uustring.c
+@@ -107,6 +107,7 @@ static stringmap messages[] = {
+ { S_MIME_B_NOT_FOUND, "Boundary expected on Multipart message but found EOF" },
+ { S_MIME_MULTI_DEPTH, "Multipart message nested too deep" },
+ { S_MIME_PART_MULTI, "Handling partial multipart message as plain text" },
++ { S_OPEN_FILE, "Opened file %s" },
+
+ { 0, "" }
+ };
+Index: uudeview-0.5.20/uulib/uustring.h
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uustring.h
++++ uudeview-0.5.20/uulib/uustring.h
+@@ -36,3 +36,4 @@
+ #define S_MIME_B_NOT_FOUND 35
+ #define S_MIME_MULTI_DEPTH 36
+ #define S_MIME_PART_MULTI 37
++#define S_OPEN_FILE 38
diff --git a/app-text/uudeview/files/uudeview-0.5.20-man.patch b/app-text/uudeview/files/uudeview-0.5.20-man.patch
new file mode 100644
index 000000000000..b03e15a5a5f2
--- /dev/null
+++ b/app-text/uudeview/files/uudeview-0.5.20-man.patch
@@ -0,0 +1,95 @@
++uudeview (0.5.13-2.1) unstable; urgency=low
+...
++ * Added man page for uuwish(1).
+...
++ -- Roland Rosenfeld <roland@debian.org> Thu, 16 Sep 1999 18:48:47 +0200
+
+
++Thu Oct 24 22:12:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
+...
++ * Corrected some manpages
+
+Index: uudeview-0.5.20/man/uudeview.1
+===================================================================
+--- uudeview-0.5.20.orig/man/uudeview.1
++++ uudeview-0.5.20/man/uudeview.1
+@@ -164,6 +164,16 @@ delivered in have different subject line
+ verbosity. Normally, the program prints some status messages
+ while reading the input files, which can be very helpful if something
+ should go wrong. Use if these messages disturb you.
++Disables progress bars. See
++.B -n
++option.
++.TP
++.B -v
++(disables Verbosity) Disables verbose messages, i.e. notes are not
++displayed, but does not remove warnings and errors. Is not as quiet as
++the
++.B -q
++(Quiet) option.
+ .TP
+ .B -n
+ No progress bars. Normally, UUDeview prints ASCII bars crawling up
+Index: uudeview-0.5.20/man/uuwish.1
+===================================================================
+--- /dev/null
++++ uudeview-0.5.20/man/uuwish.1
+@@ -0,0 +1,45 @@
++.\" Copyright (c) 1999 Roland Rosenfeld <roland@spinnaker.de>
++.\" changes Copyright (c) 2001 Chris Hanson <cph@debian.org>
++.\"
++.\" This program is free software; you can redistribute it and/or modify
++.\" it under the terms of the GNU General Public License as published by
++.\" the Free Software Foundation; either version 2 of the License, or
++.\" (at your option) any later version.
++.\"
++.\" This program is distributed in the hope that it will be useful,
++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++.\" GNU General Public License for more details.
++.\"
++.\" You should have received a copy of the GNU General Public License
++.\" along with this program; if not, write to the Free Software
++.\" Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++.\"
++.\" This manual page is written especially for Debian Linux.
++.\"
++.TH UUWISH 1 "February 2001" "Debian Project" "Debian GNU/Linux"
++.SH NAME
++uuwish \- A minimal wish extended by the UU commands
++.SH SYNOPSIS
++.B uuwish
++is a minimal
++.BR wish (1)
++extended by the UU commands that are available in
++.BR uudeview (1)
++and
++.BR uuenview (1).
++.B uuwish
++isn't meant to be called directly; it is a Tcl/Tk script interpreter,
++which is meant to be used by
++.BR xdeview (1).
++.SH "SEE ALSO"
++.BR xdeview (1),
++.BR uudeview (1),
++.BR uuenview (1),
++.BR wish (1).
++.SH AUTHOR
++.B uuwish
++was written by Frank Pilhofer <fp@informatik.uni-frankfurt.de>.
++.PP
++This manual page was written by Roland Rosenfeld <roland@debian.org>,
++for the Debian GNU/Linux system (but may be used by others).
+Index: uudeview-0.5.20/configure.in
+===================================================================
+--- uudeview-0.5.20.orig/configure.in
++++ uudeview-0.5.20/configure.in
+@@ -607,7 +607,7 @@ if test "x$have_minews" = "xyes" ; then
+ fi
+ if test "x$have_tk" != "xno" ; then
+ PROGS="$PROGS xdeview"
+- MPAGES="$MPAGES xdeview.1"
++ MPAGES="$MPAGES xdeview.1 uuwish.1"
+ DOINST="$DOINST install-tcl"
+ fi
+
diff --git a/app-text/uudeview/files/uudeview-0.5.20-rename.patch b/app-text/uudeview/files/uudeview-0.5.20-rename.patch
new file mode 100644
index 000000000000..c62c64c70eb3
--- /dev/null
+++ b/app-text/uudeview/files/uudeview-0.5.20-rename.patch
@@ -0,0 +1,57 @@
++uudeview (0.5.19+beta20030413-1) unstable; urgency=low
+...
++ * Use rename() in preference to copy if possible.
++ (closes: Bug#166040)
+...
++ -- Chris Hanson <cph@debian.org> Sun, 7 Sep 2003 01:05:07 -0400
+
+Index: uudeview-0.5.20/uulib/uulib.c
+===================================================================
+--- uudeview-0.5.20.orig/uulib/uulib.c
++++ uudeview-0.5.20/uulib/uulib.c
+@@ -872,7 +872,10 @@ UUDecodeToTemp (uulist *thefile)
+ }
+
+ /*
+- * decode file first to temp file, then copy it to a final location
++ * Decode file first to temp file, then copy it to a final location.
++ * A move is preferable to a copy. If the file is on the same
++ * partition, no copy is performed. This is important for large
++ * files.
+ */
+
+ int UUEXPORT
+@@ -978,6 +981,12 @@ UUDecodeFile (uulist *thefile, char *des
+ return UURET_IOERR;
+ }
+
++ if (rename(thefile->binfile, uugen_fnbuffer) == 0) {
++ fclose(source);
++ close(fildes);
++ goto finish_ok;
++ }
++
+ if ((target = fdopen (fildes, "wb")) == NULL) {
+ progress.action = 0;
+ UUMessage (uulib_id, __LINE__, UUMSG_ERROR,
+@@ -1042,6 +1051,8 @@ UUDecodeFile (uulist *thefile, char *des
+ thefile->binfile,
+ strerror (uu_errno = errno));
+ }
++
++ finish_ok:
+ _FP_free (thefile->binfile);
+ thefile->binfile = NULL;
+ thefile->state &= ~UUFILE_TMPFILE;
+@@ -1103,9 +1114,9 @@ UUInfoFile (uulist *thefile, void *opaqu
+
+ while (!feof (inpfile) &&
+ (uu_fast_scanning || ftell(inpfile) < maxpos)) {
+- if (_FP_fgets (uugen_inbuffer, 511, inpfile) == NULL)
++ if (_FP_fgets (uugen_inbuffer, 1023, inpfile) == NULL)
+ break;
+- uugen_inbuffer[511] = '\0';
++ uugen_inbuffer[1023] = '\0';
+
+ if (ferror (inpfile))
+ break;
diff --git a/app-text/uudeview/metadata.xml b/app-text/uudeview/metadata.xml
new file mode 100644
index 000000000000..f9d50da18d39
--- /dev/null
+++ b/app-text/uudeview/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>maintainer-needed@gentoo.org</email>
+ <description>This package lacks a primary herd or maintainer.</description>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-text/uudeview/uudeview-0.5.20-r1.ebuild b/app-text/uudeview/uudeview-0.5.20-r1.ebuild
new file mode 100644
index 000000000000..8277e3829eb1
--- /dev/null
+++ b/app-text/uudeview/uudeview-0.5.20-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+inherit eutils autotools
+
+DESCRIPTION="uu, xx, base64, binhex decoder"
+HOMEPAGE="http://www.fpx.de/fp/Software/UUDeview/"
+SRC_URI="http://www.fpx.de/fp/Software/UUDeview/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="tk"
+
+RDEPEND="tk? ( dev-lang/tk )"
+
+DEPEND="${RDEPEND}
+ sys-devel/autoconf"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-bugfixes.patch"
+ epatch "${FILESDIR}/${P}-CVE-2004-2265.patch"
+ epatch "${FILESDIR}/${P}-CVE-2008-2266.patch"
+ epatch "${FILESDIR}/${P}-man.patch"
+ epatch "${FILESDIR}/${P}-rename.patch"
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable tk tcl) \
+ $(use_enable tk)
+}
+
+src_install() {
+ # upstream's Makefiles are just broken
+ einstall MANDIR="${ED}/usr/share/man/" || die "Failed to install"
+ dodoc HISTORY INSTALL README
+}