Fix segfault in previous tempfile fix #108416.
authorMike Frysinger <vapier@gentoo.org>
Sat, 8 Oct 2005 17:24:42 +0000 (17:24 +0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 8 Oct 2005 17:24:42 +0000 (17:24 +0000)
Package-Manager: portage-2.0.53_rc4

sys-apps/texinfo/ChangeLog
sys-apps/texinfo/Manifest
sys-apps/texinfo/files/digest-texinfo-4.8-r2 [new file with mode: 0644]
sys-apps/texinfo/files/texinfo-4.8-tempfile.patch
sys-apps/texinfo/texinfo-4.8-r2.ebuild [new file with mode: 0644]

index cb9f6d03259fd6007ab7845cd31f33ee03f780e1..9c087450f8dcee8eb33c8110f469f597fed94bcb 100644 (file)
@@ -1,33 +1,12 @@
 # ChangeLog for sys-apps/texinfo
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/ChangeLog,v 1.67 2005/10/02 00:30:05 kloeri Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/ChangeLog,v 1.68 2005/10/08 17:24:42 vapier Exp $
 
-  02 Oct 2005; Bryan Ã˜stergaard <kloeri@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on ia64, bug 106105.
+*texinfo-4.8-r2 (08 Oct 2005)
 
-  30 Sep 2005; MATSUU Takuto <matsuu@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on sh wrt #106105.
-
-  30 Sep 2005; Simon Stelling <blubb@gentoo.org> texinfo-4.8-r1.ebuild:
-  stable on amd64 wrt bug 106105
-
-  30 Sep 2005; Markus Rothe <corsair@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on ppc64 (bug #106105)
-
-  29 Sep 2005; Gustavo Zacarias <gustavoz@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on sparc wrt #106105
-
-  29 Sep 2005; Aaron Walker <ka0ttic@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on mips for bug #106105.
-
-  29 Sep 2005; Andrej Kacian <ticho@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on x86, security bug #106105.
-
-  29 Sep 2005; Michael Hanselmann <hansmi@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on hppa, ppc.
-
-  29 Sep 2005; Fernando J. Pereda <ferdy@gentoo.org> texinfo-4.8-r1.ebuild:
-  Stable on alpha wrt bug #106105
+  08 Oct 2005; Mike Frysinger <vapier@gentoo.org>
+  files/texinfo-4.8-tempfile.patch, +texinfo-4.8-r2.ebuild:
+  Fix segfault in previous tempfile fix #108416.
 
 *texinfo-4.8-r1 (29 Sep 2005)
 
index f585533c524c3990e0f60c5eb795783550d7e1ca..2a624cc27035f56e3130b7825a44317ca4d07de8 100644 (file)
@@ -1,22 +1,24 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
+MD5 046cd32319d1a54845012f175d325695 ChangeLog 7686
+MD5 a2c21c53079eb65c306a08d230d15b2b files/digest-texinfo-4.7-r1 65
+MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8 65
+MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8-r1 65
+MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8-r2 65
+MD5 a0df107ca9e3036e2ee2d501343cbf2b files/makeinfo.patch 790
+MD5 690fb86d0c0215155b1d18671099115a files/mkinfodir 7318
+MD5 7246b5d34e673e1eb937186e4f18f56d files/texinfo-4.8-freebsd.patch 3787
+MD5 a30131625cc3b1393c59b9603e982f24 files/texinfo-4.8-tempfile.patch 708
 MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
 MD5 75c60847c4f9b9d75375567cd1a3ba81 texinfo-4.7-r1.ebuild 1979
 MD5 85306271dc0f544e3b5da1761895b881 texinfo-4.8-r1.ebuild 1963
+MD5 7b944058f6712de4dec1796d99f5ebfc texinfo-4.8-r2.ebuild 1962
 MD5 51d0756296f7f75f5a8cf3ec558fe1aa texinfo-4.8.ebuild 1909
-MD5 4065df1aaeaa198b62092044bcb7025c ChangeLog 8452
-MD5 7246b5d34e673e1eb937186e4f18f56d files/texinfo-4.8-freebsd.patch 3787
-MD5 6db903b811b98699388c8e765d2721c4 files/texinfo-4.8-tempfile.patch 1406
-MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8-r1 65
-MD5 690fb86d0c0215155b1d18671099115a files/mkinfodir 7318
-MD5 a2c21c53079eb65c306a08d230d15b2b files/digest-texinfo-4.7-r1 65
-MD5 1c6181fd6a19db98315a1f737a5ae839 files/digest-texinfo-4.8 65
-MD5 a0df107ca9e3036e2ee2d501343cbf2b files/makeinfo.patch 790
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDRJevgIKl8Uu19MoRAsKwAJ0T4xeHM6/420hhiAZABYlN1XzZqwCfeXXw
-KTuqtm9TWNwbq+Cee+bMwYM=
-=UxUl
+iD4DBQFDSAFOgIKl8Uu19MoRAiZkAJ41VcRv7W+wXHyGgKhWUOjHOytLhwCVG2r2
+ugcb4K8MxZHiCwTZKEtJZA==
+=CMt8
 -----END PGP SIGNATURE-----
diff --git a/sys-apps/texinfo/files/digest-texinfo-4.8-r2 b/sys-apps/texinfo/files/digest-texinfo-4.8-r2
new file mode 100644 (file)
index 0000000..89aa6b2
--- /dev/null
@@ -0,0 +1 @@
+MD5 6ba369bbfe4afaa56122e65b3ee3a68c texinfo-4.8.tar.bz2 1521822
index c3c9e93d7a5ed5679bc419428a175707ea8fdd1a..95a8c3f19142061de6cc586809532940934e8ca4 100644 (file)
@@ -1,60 +1,34 @@
+Patch based off code from: Martin Pitt <martin.pitt at ubuntu.com>
+
 http://bugs.gentoo.org/106105
 
 --- util/texindex.c
 +++ util/texindex.c
-@@ -99,6 +99,9 @@ long nlines;
- /* Directory to use for temporary files.  On Unix, it ends with a slash.  */
- char *tempdir;
- 
-+/* Basename for temp files inside of tempdir.  */
-+char *tempbase;
-+
- /* Number of last temporary file.  */
- int tempcount;
- 
-@@ -190,6 +193,11 @@ main (int argc, char **argv)
- 
-   decode_command (argc, argv);
- 
-+  /* XXX mkstemp not appropriate, as we need to have somewhat predictable
-+   * names. But race condition was fixed, see maketempname. 
-+   */
-+  tempbase = mktemp ("txidxXXXXXX");
-+
-   /* Process input files completely, one by one.  */
- 
-   for (i = 0; i < num_infiles; i++)
-@@ -392,21 +400,21 @@ For more information about these matters
- static char *
+@@ -390,11 +390,12 @@
  maketempname (int count)
  {
--  static char *tempbase = NULL;
+   static char *tempbase = NULL;
++  char *tempname;
    char tempsuffix[10];
--
--  if (!tempbase)
--    {
--      int fd;
--      tempbase = concat (tempdir, "txidxXXXXXX");
--
--      fd = mkstemp (tempbase);
--      if (fd == -1)
--        pfatal_with_name (tempbase);
--    }
-+  char *name, *tmp_name;
 +  int fd;
  
+   if (!tempbase)
+     {
+-      int fd;
+       tempbase = concat (tempdir, "txidxXXXXXX");
+ 
+       fd = mkstemp (tempbase);
+@@ -403,7 +404,12 @@
+     }
+ 
    sprintf (tempsuffix, ".%d", count);
 -  return concat (tempbase, tempsuffix);
-+  tmp_name = concat (tempdir, tempbase);
-+  name = concat (tmp_name, tempsuffix);
-+  free(tmp_name);
-+
-+  fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600);
++  tempname = concat (tempbase, tempsuffix);
++  fd = open (tempname, O_CREAT|O_EXCL|O_WRONLY, 0600);
 +  if (fd == -1)
-+    pfatal_with_name (name);
-+
-+  close(fd);
-+  return name;
++    pfatal_with_name (tempname);
++  close (fd);
++  return tempname;
  }
  
  
diff --git a/sys-apps/texinfo/texinfo-4.8-r2.ebuild b/sys-apps/texinfo/texinfo-4.8-r2.ebuild
new file mode 100644 (file)
index 0000000..6807160
--- /dev/null
@@ -0,0 +1,69 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/texinfo/texinfo-4.8-r2.ebuild,v 1.1 2005/10/08 17:24:42 vapier Exp $
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="The GNU info program and utilities"
+HOMEPAGE="http://www.gnu.org/software/texinfo/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ~ppc-macos ppc64 s390 sh sparc x86"
+IUSE="nls build static"
+
+RDEPEND="!build? ( >=sys-libs/ncurses-5.2-r2 )"
+DEPEND="${RDEPEND}
+       !build? ( nls? ( sys-devel/gettext ) )"
+
+src_unpack() {
+       unpack ${A}
+       cd "${S}"
+       epatch "${FILESDIR}"/${P}-freebsd.patch
+       epatch "${FILESDIR}"/${P}-tempfile.patch #106105
+
+       cd doc
+       # Get the texinfo info page to have a proper name of texinfo.info
+       sed -i 's:setfilename texinfo:setfilename texinfo.info:' texinfo.txi
+       sed -i \
+               -e 's:INFO_DEPS = texinfo:INFO_DEPS = texinfo.info:' \
+               -e 's:texinfo\::texinfo.info\::' \
+               Makefile.in
+}
+
+src_compile() {
+       local myconf=
+       if ! use nls || use build ; then
+               myconf="--disable-nls"
+       fi
+       use static && append-ldflags -static
+
+       econf ${myconf} || die
+
+       # work around broken dependency's in info/Makefile.am #85540
+       emake -C lib || die "emake lib"
+       emake -C info makedoc || die "emake makedoc"
+       emake -C info doc.c || die "emake doc.c"
+       emake || die "emake"
+}
+
+src_install() {
+       if use build ; then
+               newbin util/ginstall-info install-info
+               dobin makeinfo/makeinfo util/{texi2dvi,texindex}
+       else
+               make DESTDIR="${D}" install || die "install failed"
+               dosbin ${FILESDIR}/mkinfodir
+               # tetex installs this guy #76812
+               has_version '<app-text/tetex-3' && rm -f "${D}"/usr/bin/texi2pdf
+
+               if [[ ! -f ${D}/usr/share/info/texinfo.info ]] ; then
+                       die "Could not install texinfo.info!!!"
+               fi
+
+               dodoc AUTHORS ChangeLog INTRODUCTION NEWS README TODO
+               newdoc info/README README.info
+               newdoc makeinfo/README README.makeinfo
+       fi
+}