From 56c897d8d0a31aba4c887eacdd3dbe1ee2d368a1 Mon Sep 17 00:00:00 2001 From: Jingdong Lu Date: Sat, 25 Sep 2010 15:04:47 +0800 Subject: texinfo: Add new package Texinfo is a documentation system that can produce both online information and printed output from a single source file. Signed-off-by: Jingdong Lu --- .../texinfo/texinfo-4.13a/texinfo-4.12-zlib.patch | 169 +++++++++++++++++++++ .../texinfo-4.13a/texinfo-4.13a-data_types.patch | 32 ++++ .../texinfo-4.13a-help-index-segfault.patch | 23 +++ .../texinfo-4.13a/texinfo-4.13a-mosdo-crash.patch | 11 ++ .../texinfo-4.13a/texinfo-4.13a-powerpc.patch | 12 ++ meta/recipes-extended/texinfo/texinfo_4.13a.bb | 57 +++++++ 6 files changed, 304 insertions(+) create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.12-zlib.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-data_types.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-help-index-segfault.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-mosdo-crash.patch create mode 100644 meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-powerpc.patch create mode 100644 meta/recipes-extended/texinfo/texinfo_4.13a.bb (limited to 'meta/recipes-extended/texinfo') diff --git a/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.12-zlib.patch b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.12-zlib.patch new file mode 100644 index 0000000000..3635b55e33 --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.12-zlib.patch @@ -0,0 +1,169 @@ +diff -up texinfo-4.12/install-info/Makefile.in_old texinfo-4.12/install-info/Makefile.in +--- texinfo-4.12/install-info/Makefile.in_old 2008-05-13 13:33:55.000000000 +0200 ++++ texinfo-4.12/install-info/Makefile.in 2008-05-13 13:52:35.000000000 +0200 +@@ -114,7 +114,7 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) + PROGRAMS = $(bin_PROGRAMS) + am_ginstall_info_OBJECTS = install-info.$(OBJEXT) + ginstall_info_OBJECTS = $(am_ginstall_info_OBJECTS) +-ginstall_info_LDADD = $(LDADD) ++ginstall_info_LDADD = $(LDADD) -lz + am__DEPENDENCIES_1 = + ginstall_info_DEPENDENCIES = ../lib/libtxi.a \ + $(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1) +diff -up texinfo-4.12/install-info/install-info.c_old texinfo-4.12/install-info/install-info.c +--- texinfo-4.12/install-info/install-info.c_old 2008-05-13 13:52:44.000000000 +0200 ++++ texinfo-4.12/install-info/install-info.c 2008-05-14 10:30:53.000000000 +0200 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #define TAB_WIDTH 8 + +@@ -638,7 +639,7 @@ The first time you invoke Info you start + COMPRESSION_PROGRAM. The compression program is determined by the + magic number, not the filename. */ + +-FILE * ++void * + open_possibly_compressed_file (char *filename, + void (*create_callback) (char *), + char **opened_filename, char **compression_program, int *is_pipe) +@@ -646,7 +647,7 @@ open_possibly_compressed_file (char *fil + char *local_opened_filename, *local_compression_program; + int nread; + char data[13]; +- FILE *f; ++ gzFile *f; + + /* We let them pass NULL if they don't want this info, but it's easier + to always determine it. */ +@@ -654,22 +655,22 @@ open_possibly_compressed_file (char *fil + opened_filename = &local_opened_filename; + + *opened_filename = filename; +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + if (!f) + { + *opened_filename = concat (filename, ".gz", ""); +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + if (!f) + { + free (*opened_filename); + *opened_filename = concat (filename, ".bz2", ""); +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + } + if (!f) + { + free (*opened_filename); + *opened_filename = concat (filename, ".lzma", ""); +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + } + + #ifdef __MSDOS__ +@@ -677,13 +678,13 @@ open_possibly_compressed_file (char *fil + { + free (*opened_filename); + *opened_filename = concat (filename, ".igz", ""); +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + } + if (!f) + { + free (*opened_filename); + *opened_filename = concat (filename, ".inz", ""); +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + } + #endif + if (!f) +@@ -695,7 +696,7 @@ open_possibly_compressed_file (char *fil + /* And try opening it again. */ + free (*opened_filename); + *opened_filename = filename; +- f = fopen (*opened_filename, FOPEN_RBIN); ++ f = gzopen (*opened_filename, FOPEN_RBIN); + if (!f) + pfatal_with_name (filename); + } +@@ -706,12 +707,12 @@ open_possibly_compressed_file (char *fil + + /* Read first few bytes of file rather than relying on the filename. + If the file is shorter than this it can't be usable anyway. */ +- nread = fread (data, sizeof (data), 1, f); +- if (nread != 1) ++ nread = gzread (f, data, sizeof (data)); ++ if (nread != sizeof (data)) + { + /* Empty files don't set errno, so we get something like + "install-info: No error for foo", which is confusing. */ +- if (nread == 0) ++ if (nread >= 0) + fatal (_("%s: empty file"), *opened_filename, 0); + pfatal_with_name (*opened_filename); + } +@@ -758,20 +759,22 @@ open_possibly_compressed_file (char *fil + + if (*compression_program) + { /* It's compressed, so fclose the file and then open a pipe. */ ++ FILE *p; + char *command = concat (*compression_program," -cd <", *opened_filename); +- if (fclose (f) < 0) ++ if (gzclose (f) < 0) + pfatal_with_name (*opened_filename); +- f = popen (command, "r"); +- if (f) ++ p = popen (command, "r"); ++ if (p) + *is_pipe = 1; + else + pfatal_with_name (command); ++ return p; + } + else + { /* It's a plain file, seek back over the magic bytes. */ +- if (fseek (f, 0, 0) < 0) ++ if (gzseek (f, 0, SEEK_SET) < 0) + pfatal_with_name (*opened_filename); +-#if O_BINARY ++#if 0 && O_BINARY + /* Since this is a text file, and we opened it in binary mode, + switch back to text mode. */ + f = freopen (*opened_filename, "r", f); +@@ -796,7 +799,7 @@ readfile (char *filename, int *sizep, + char **compression_program) + { + char *real_name; +- FILE *f; ++ void *f; + int pipe_p; + int filled = 0; + int data_size = 8192; +@@ -810,7 +813,12 @@ readfile (char *filename, int *sizep, + + for (;;) + { +- int nread = fread (data + filled, 1, data_size - filled, f); ++ int nread; ++ ++ if (pipe_p) ++ nread = fread (data + filled, 1, data_size - filled, f); ++ else ++ nread = gzread (f, data + filled, data_size - filled); + if (nread < 0) + pfatal_with_name (real_name); + if (nread == 0) +@@ -832,7 +840,7 @@ readfile (char *filename, int *sizep, + if (pipe_p) + pclose (f); + else +- fclose (f); ++ gzclose (f); + + *sizep = filled; + return data; diff --git a/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-data_types.patch b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-data_types.patch new file mode 100644 index 0000000000..2a87c2146d --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-data_types.patch @@ -0,0 +1,32 @@ +diff -up texinfo-4.13/info/window.c_old texinfo-4.13/info/window.c +--- texinfo-4.13/info/window.c_old 2009-08-04 13:46:15.000000000 +0200 ++++ texinfo-4.13/info/window.c 2009-08-04 13:47:29.000000000 +0200 +@@ -1581,7 +1581,7 @@ process_node_text (WINDOW *win, char *st + const char *carried_over_ptr; + size_t carried_over_len, carried_over_count; + const char *cur_ptr = mbi_cur_ptr (iter); +- int cur_len = mb_len (mbi_cur (iter)); ++ size_t cur_len = mb_len (mbi_cur (iter)); + int replen; + int delim = 0; + int rc; +@@ -1754,7 +1754,7 @@ clean_manpage (char *manpage) + mbi_advance (iter)) + { + const char *cur_ptr = mbi_cur_ptr (iter); +- int cur_len = mb_len (mbi_cur (iter)); ++ size_t cur_len = mb_len (mbi_cur (iter)); + + if (cur_len == 1) + { +@@ -1852,8 +1852,8 @@ window_scan_line (WINDOW *win, int line, + mbi_advance (iter)) + { + const char *cur_ptr = mbi_cur_ptr (iter); +- int cur_len = mb_len (mbi_cur (iter)); +- int replen; ++ size_t cur_len = mb_len (mbi_cur (iter)); ++ size_t replen; + + if (cur_ptr >= endp) + break; diff --git a/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-help-index-segfault.patch b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-help-index-segfault.patch new file mode 100644 index 0000000000..6194176db6 --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-help-index-segfault.patch @@ -0,0 +1,23 @@ +diff -up texinfo-4.13/info/indices.c.orig texinfo-4.13/info/indices.c +--- texinfo-4.13/info/indices.c.orig 2010-08-31 12:04:38.317462471 +0200 ++++ texinfo-4.13/info/indices.c 2010-08-31 12:11:49.322624552 +0200 +@@ -192,6 +192,7 @@ do_info_index_search (WINDOW *window, in + index for, build and remember an index now. */ + fb = file_buffer_of_window (window); + if (!initial_index_filename || ++ !fb || + (FILENAME_CMP (initial_index_filename, fb->filename) != 0)) + { + info_free_references (index_index); +@@ -287,8 +288,9 @@ index_entry_exists (WINDOW *window, char + return 0; + + fb = file_buffer_of_window (window); +- if (!initial_index_filename +- || (FILENAME_CMP (initial_index_filename, fb->filename) != 0)) ++ if (!initial_index_filename || ++ !fb || ++ (FILENAME_CMP (initial_index_filename, fb->filename) != 0)) + { + info_free_references (index_index); + index_index = info_indices_of_file_buffer (fb); diff --git a/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-mosdo-crash.patch b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-mosdo-crash.patch new file mode 100644 index 0000000000..77e3a76dec --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-mosdo-crash.patch @@ -0,0 +1,11 @@ +--- texinfo-4.13/install-info/install-info.c.mosdo-crash 2009-09-02 20:18:44.000000000 -0400 ++++ texinfo-4.13/install-info/install-info.c 2009-09-02 20:19:53.000000000 -0400 +@@ -1765,7 +1765,7 @@ + err = argz_add (&argz, &argz_len, opt); + free (opt); opt = NULL; + +- opt = xmalloc (strlen (regex) + sizeof ("--section=")); ++ opt = xmalloc (strlen (title) + sizeof ("--section=")); + if (sprintf (opt, "--section=%s", title) == -1) + err = 1; + if (!err) diff --git a/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-powerpc.patch b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-powerpc.patch new file mode 100644 index 0000000000..b6c046e792 --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo-4.13a/texinfo-4.13a-powerpc.patch @@ -0,0 +1,12 @@ +diff -up texinfo-4.13/install-info/install-info.c.patch texinfo-4.13/install-info/install-info.c +--- texinfo-4.13/install-info/install-info.c.patch 2010-01-11 14:46:32.000000000 +0100 ++++ texinfo-4.13/install-info/install-info.c 2010-01-11 14:48:47.162152695 +0100 +@@ -772,7 +772,7 @@ open_possibly_compressed_file (char *fil + } + else + { /* It's a plain file, seek back over the magic bytes. */ +- if (gzseek (f, 0, SEEK_SET) < 0) ++ if (gzseek (f, 0, SEEK_SET) == -1) + pfatal_with_name (*opened_filename); + #if 0 && O_BINARY + /* Since this is a text file, and we opened it in binary mode, diff --git a/meta/recipes-extended/texinfo/texinfo_4.13a.bb b/meta/recipes-extended/texinfo/texinfo_4.13a.bb new file mode 100644 index 0000000000..be10c26a0b --- /dev/null +++ b/meta/recipes-extended/texinfo/texinfo_4.13a.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "Texinfo is a documentation system that can produce both online \ +information and printed output from a single source file. The GNU \ +Project uses the Texinfo file format for most of its documentation." + +SECTION = "console/utils" +HOMEPAGE = "http://www.gnu.org/software/texinfo/" +PRIORITY = "required" +LICENSE = "GPLV3+" +PR = "r0" + +LIC_FILES_CHKSUM = "file://COPYING;md5=adefda309052235aa5d1e99ce7557010" + +DEPENDS = "zlib" + +SRC_URI = "http://ftp.gnu.org/gnu/texinfo/texinfo-${PV}.tar.gz \ + file://texinfo-4.12-zlib.patch;striplevel=1 \ + file://texinfo-4.13a-data_types.patch;striplevel=1 \ + file://texinfo-4.13a-mosdo-crash.patch;striplevel=1 \ + file://texinfo-4.13a-powerpc.patch;striplevel=1 \ + file://texinfo-4.13a-help-index-segfault.patch;striplevel=1" + +inherit gettext autotools + +S = ${WORKDIR}/texinfo-4.13 +tex_texinfo = "texmf/tex/texinfo" + +do_configure() { + oe_runconf +} + +do_compile_prepend(){ + if [ -d tools ];then + make -C tools/gnulib/lib + fi +} + +do_install_append() { + mkdir -p ${D}${datadir}/${tex_texinfo} + install -p -m644 doc/texinfo.tex doc/txi-??.tex ${D}${datadir}/${tex_texinfo} +} + +PACKAGES += "info info-doc info-dbg" + +FILES_info = "${bindir}/info ${bindir}/infokey ${bindir}/install-info" +FILES_info-doc = "${infodir}/info.info ${infodir}/dir ${infodir}/info-*.info \ + ${mandir}/man1/info.1* ${mandir}/man5/info.5* \ + ${mandir}/man1/infokey.1* ${mandir}/man1/install-info.1*" +FILES_info-dbg = "${bindir}/.debug/info ${bindir}/.debug/install-info \ + ${bindir}/.debug/infokey" + +FILES_${PN} = "${bindir}/makeinfo ${bindir}/texi* ${bindir}/pdftexi2dvi" +FILES_${PN}-doc = "${datadir}/texinfo ${infodir}/texinfo* \ + ${datadir}/${tex_texinfo} \ + ${mandir}/man1/makeinfo.1* ${mandir}/man5/texinfo.5* \ + ${mandir}/man1/texindex.1* ${mandir}/man1/texi2dvi.1* \ + ${mandir}/man1/texi2pdf.1* ${mandir}/man1/pdftexi2dvi.1*" +FILES_${PN}-dbg = "${bindir}/.debug/texindex ${bindir}/.debug/makeinfo" -- cgit v1.2.3-54-g00ecf