diff --git a/.gitignore b/.gitignore index 8933802..e871521 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/texinfo-6.5.tar.xz +texinfo-7.1.tar.xz diff --git a/.texinfo.metadata b/.texinfo.metadata deleted file mode 100644 index 2689fd8..0000000 --- a/.texinfo.metadata +++ /dev/null @@ -1 +0,0 @@ -72a06b48862911c638787cc3307871b990a59726 SOURCES/texinfo-6.5.tar.xz diff --git a/SOURCES/macros.info b/SOURCES/macros.info deleted file mode 100644 index a889fbb..0000000 --- a/SOURCES/macros.info +++ /dev/null @@ -1,15 +0,0 @@ -%info_requires \ -Requires(post): /sbin/install-info \ -Requires(preun): /sbin/install-info - -%info_post() \ -if [ -f %{_infodir}/%1 ]; then # --excludedocs? \ - /sbin/install-info %{_infodir}/%1 %{_infodir}/dir || : \ -fi - -%info_preun() \ -if [ $1 == 0 ]; then \ - if [ -f %{_infodir}/%1 ]; then # --excludedocs? \ - /sbin/install-info --delete %{_infodir}/%1 %{_infodir}/dir || : \ - fi \ -fi diff --git a/SOURCES/texinfo-4.12-zlib.patch b/SOURCES/texinfo-4.12-zlib.patch deleted file mode 100644 index 0fc5bb4..0000000 --- a/SOURCES/texinfo-4.12-zlib.patch +++ /dev/null @@ -1,236 +0,0 @@ -diff -up texinfo-6.4/install-info/install-info.c.orig texinfo-6.4/install-info/install-info.c ---- texinfo-6.4/install-info/install-info.c.orig 2016-03-04 18:52:26.000000000 +0100 -+++ texinfo-6.4/install-info/install-info.c 2017-06-27 15:14:20.167998983 +0200 -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #define TAB_WIDTH 8 - -@@ -684,15 +685,15 @@ The first time you invoke Info you start - - Return either stdin reading the file, or a non-stdin pipe reading - the output of the compression program. */ --FILE * -+void * - open_possibly_compressed_file (char *filename, - void (*create_callback) (char *), -- char **opened_filename, char **compression_program) -+ char **opened_filename, char **compression_program, int *is_pipe) - { - 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. */ -@@ -700,48 +701,48 @@ 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, ".xz", ""); -- 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, ".lz", ""); -- 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__ - if (!f) - { - 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 /* __MSDOS__ */ - if (!f) -@@ -757,7 +758,7 @@ open_possibly_compressed_file (char *fil - (*create_callback) (filename); - - /* And try opening it again. */ -- f = fopen (*opened_filename, FOPEN_RBIN); -+ f = gzopen (*opened_filename, FOPEN_RBIN); - if (!f) - return 0; - } -@@ -767,26 +768,26 @@ 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)) - { -- if (nread == 0) -+ if (nread >= 0) - { - /* Try to create the file if its empty. */ -- if (feof (f) && create_callback) -+ if (gzeof (f) && create_callback) - { -- if (fclose (f) != 0) -+ if (gzclose (f) < 0) - return 0; /* unknown error closing file */ - - if (remove (filename) != 0) - return 0; /* unknown error deleting file */ - - (*create_callback) (filename); -- f = fopen (*opened_filename, FOPEN_RBIN); -+ f = gzopen (*opened_filename, FOPEN_RBIN); - if (!f) - return 0; -- nread = fread (data, sizeof (data), 1, f); -- if (nread == 0) -+ nread = gzread (f, data, sizeof (data)); -+ if (nread <= 0) - return 0; - goto determine_file_type; /* success */ - } -@@ -857,35 +858,40 @@ determine_file_type: - *compression_program = NULL; - - /* Seek back over the magic bytes. */ -- if (fseek (f, 0, 0) < 0) -+ if (gzseek (f, 0, SEEK_SET) == -1) - return 0; - - if (*compression_program) - { /* It's compressed, so open a pipe. */ -+ FILE *p; - char *command = concat (*compression_program, " -d", ""); - -- if (fclose (f) < 0) -+ if (gzclose (f) < 0) - return 0; -- f = freopen (*opened_filename, FOPEN_RBIN, stdin); -- if (!f) -+ p = freopen (*opened_filename, FOPEN_RBIN, stdin); -+ if (!p) - return 0; -- f = popen (command, "r"); -- if (!f) -+ p = popen (command, "r"); -+ if (!p) - { - /* Used for error message in calling code. */ - *opened_filename = command; - return 0; - } -+ else -+ *is_pipe = 1; -+ return p; - } - else - { --#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); - if (! f) - return 0; - #endif -+ *is_pipe = 0; - } - - return f; -@@ -904,7 +910,8 @@ readfile (char *filename, int *sizep, - void (*create_callback) (char *), char **opened_filename, - char **compression_program) - { -- FILE *f; -+ void *f; -+ int pipe_p; - int filled = 0; - int data_size = 8192; - char *data = xmalloc (data_size); -@@ -912,14 +919,20 @@ readfile (char *filename, int *sizep, - /* If they passed the space for the file name to return, use it. */ - f = open_possibly_compressed_file (filename, create_callback, - opened_filename, -- compression_program); -+ compression_program, -+ &pipe_p); - - if (!f) - return 0; - - 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) - return 0; - if (nread == 0) -@@ -938,8 +951,10 @@ readfile (char *filename, int *sizep, - /* We need to close the stream, since on some systems the pipe created - by popen is simulated by a temporary file which only gets removed - inside pclose. */ -- if (f != stdin) -+ if (pipe_p) - pclose (f); -+ else -+ gzclose (f); - - *sizep = filled; - return data; -diff -up texinfo-6.4/install-info/Makefile.in.orig texinfo-6.4/install-info/Makefile.in ---- texinfo-6.4/install-info/Makefile.in.orig 2017-06-23 08:04:39.000000000 +0200 -+++ texinfo-6.4/install-info/Makefile.in 2017-06-27 15:14:20.167998983 +0200 -@@ -221,7 +221,7 @@ am__installdirs = "$(DESTDIR)$(bindir)" - 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 = $(top_builddir)/gnulib/lib/libgnu.a \ - $(am__DEPENDENCIES_1) diff --git a/SOURCES/texinfo-6.0-disable-failing-info-test.patch b/SOURCES/texinfo-6.0-disable-failing-info-test.patch deleted file mode 100644 index 813cc4b..0000000 --- a/SOURCES/texinfo-6.0-disable-failing-info-test.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -up texinfo-6.4.90/info/Makefile.in.orig texinfo-6.4.90/info/Makefile.in ---- texinfo-6.4.90/info/Makefile.in.orig 2017-07-10 21:06:01.000000000 +0200 -+++ texinfo-6.4.90/info/Makefile.in 2017-07-11 09:58:06.501153160 +0200 -@@ -1367,7 +1367,6 @@ TESTS = \ - t/end-of-line.sh \ - t/goal-column.sh \ - t/star-note-non-whitespace.sh \ -- t/c-u-m-x-scroll-forward.sh \ - t/last-no-history.sh \ - t/split-footnotes.sh \ - t/window-split-dir.sh \ -@@ -1392,10 +1391,6 @@ TESTS = \ - t/search-skip-screen.sh \ - t/search-empty.sh \ - t/close-window-after-search.sh \ -- t/inc-sea-forward.sh \ -- t/inc-sea-forward-nonregex.sh \ -- t/inc-sea-insensitive.sh \ -- t/inc-sea-history.sh \ - t/inc-sea-bs.sh \ - t/gc-split.sh \ - t/anchor-positions.sh \ -diff -up texinfo-6.4.90/tp/tests/Makefile.in.orig texinfo-6.4.90/tp/tests/Makefile.in ---- texinfo-6.4.90/tp/tests/Makefile.in.orig 2017-07-10 20:52:24.000000000 +0200 -+++ texinfo-6.4.90/tp/tests/Makefile.in 2017-07-11 09:59:30.838233561 +0200 -@@ -1308,7 +1308,6 @@ one_test_files_generated_list = \ - test_scripts/formatting_simplest_test_prefix_info.sh \ - test_scripts/formatting_simplest_test_css.sh \ - test_scripts/formatting_simplest_test_date_in_header.sh \ -- test_scripts/formatting_documentlanguage_set_option.sh \ - test_scripts/formatting_documentlanguage_set_unknown.sh \ - test_scripts/formatting_documentlanguage_set_option_info.sh \ - test_scripts/formatting_float_copying.sh \ -@@ -1348,7 +1347,6 @@ one_test_files_generated_list = \ - test_scripts/sectioning_top_node_up_explicit.sh \ - test_scripts/coverage_texi_formatting.sh \ - test_scripts/coverage_formatting.sh \ -- test_scripts/coverage_formatting_fr.sh \ - test_scripts/indices_double_index_entry.sh \ - test_scripts/indices_split_chapter_index.sh \ - test_scripts/indices_index_split.sh \ -@@ -1447,7 +1445,6 @@ one_test_files_generated_list = \ - test_scripts/layout_formatting_html32.sh \ - test_scripts/layout_formatting_regions.sh \ - test_scripts/layout_formatting_exotic.sh \ -- test_scripts/layout_formatting_fr_icons.sh \ - test_scripts/layout_formatting_chm.sh \ - test_scripts/layout_formatting_nodes.sh \ - test_scripts/tex_html_block_EOL_tex.sh \ diff --git a/SOURCES/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch b/SOURCES/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch deleted file mode 100644 index ab8e072..0000000 --- a/SOURCES/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff -up texinfo-6.1/install-info/install-info.c.orig texinfo-6.1/install-info/install-info.c ---- texinfo-6.1/install-info/install-info.c.orig 2016-06-22 09:49:38.766013018 +0200 -+++ texinfo-6.1/install-info/install-info.c 2016-06-22 14:11:58.673780736 +0200 -@@ -973,18 +973,23 @@ output_dirfile (char *dirfile, int dir_n - int n_entries_added = 0; - int i; - FILE *output; -+ char *dirfile_tmp = NULL; -+ -+ asprintf (&dirfile_tmp, "%s.tmp", dirfile); -+ if (!dirfile_tmp) -+ xalloc_die (); - - if (compression_program) - { -- char *command = concat (compression_program, ">", dirfile); -+ char *command = concat (compression_program, ">", dirfile_tmp); - output = popen (command, "w"); - } - else -- output = fopen (dirfile, "w"); -+ output = fopen (dirfile_tmp, "w"); - - if (!output) - { -- perror (dirfile); -+ perror (dirfile_tmp); - exit (EXIT_FAILURE); - } - -@@ -1095,6 +1100,13 @@ output_dirfile (char *dirfile, int dir_n - pclose (output); - else - fclose (output); -+ -+ if (rename (dirfile_tmp, dirfile) < 0) -+ { -+ perror (dirfile_tmp); -+ exit (EXIT_FAILURE); -+ } -+ free (dirfile_tmp); - } - - /* Read through the input LINES, to find the section names and the diff --git a/SOURCES/texinfo-6.5-covscan-fixes.patch b/SOURCES/texinfo-6.5-covscan-fixes.patch deleted file mode 100644 index 7861976..0000000 --- a/SOURCES/texinfo-6.5-covscan-fixes.patch +++ /dev/null @@ -1,190 +0,0 @@ -diff -up texinfo-6.5/contrib/fix-info-dir.orig texinfo-6.5/contrib/fix-info-dir ---- texinfo-6.5/contrib/fix-info-dir.orig 2018-10-04 11:34:13.664483757 +0200 -+++ texinfo-6.5/contrib/fix-info-dir 2018-10-04 11:34:13.666483758 +0200 -@@ -28,7 +28,6 @@ if test -z "$LINENO"; then - fi - - MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:' --MENU_ITEM='^\* ([^ ]).*:([ ])+\(' - MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /' - MENU_FILTER2='s/\([ ]\)\{1,\}$//g' - -diff -up texinfo-6.5/info/echo-area.c.orig texinfo-6.5/info/echo-area.c ---- texinfo-6.5/info/echo-area.c.orig 2017-02-04 02:02:43.000000000 +0100 -+++ texinfo-6.5/info/echo-area.c 2018-10-04 11:34:13.667483758 +0200 -@@ -979,6 +979,7 @@ info_read_completing_internal (const cha - inform_in_echo_area (_("No completions")); - else - inform_in_echo_area (_("Not complete")); -+ free (line); - continue; - } - } -diff -up texinfo-6.5/info/info.c.orig texinfo-6.5/info/info.c ---- texinfo-6.5/info/info.c.orig 2017-07-09 17:12:57.000000000 +0200 -+++ texinfo-6.5/info/info.c 2018-10-04 11:34:13.667483758 +0200 -@@ -295,6 +295,7 @@ get_initial_file (int *argc, char ***arg - ref_index, ref_list, ref_slots, 2); - - initial_file = MANPAGE_FILE_BUFFER_NAME; -+ free (man_node); - return; - } - } -diff -up texinfo-6.5/info/infomap.c.orig texinfo-6.5/info/infomap.c ---- texinfo-6.5/info/infomap.c.orig 2017-05-15 18:35:24.000000000 +0200 -+++ texinfo-6.5/info/infomap.c 2018-10-04 11:34:13.667483758 +0200 -@@ -603,6 +603,7 @@ fetch_user_maps (char *init_file) - compile (inf, filename, &sup_info, &sup_ea); - - free (filename); -+ fclose (inf); - return 1; - } - -diff -up texinfo-6.5/info/makedoc.c.orig texinfo-6.5/info/makedoc.c ---- texinfo-6.5/info/makedoc.c.orig 2014-11-07 11:58:55.000000000 +0100 -+++ texinfo-6.5/info/makedoc.c 2018-10-04 11:34:13.667483758 +0200 -@@ -427,7 +427,11 @@ process_one_file (char *filename, FILE * - - offset++; - if (offset >= file_size) -- break; -+ { -+ free (func_name); -+ free (func); -+ break; -+ } - - doc = xmalloc (1 + (offset - point)); - strncpy (doc, buffer + point, offset - point); -diff -up texinfo-6.5/info/m-x.c.orig texinfo-6.5/info/m-x.c ---- texinfo-6.5/info/m-x.c.orig 2017-05-14 12:55:17.000000000 +0200 -+++ texinfo-6.5/info/m-x.c 2018-10-04 11:34:13.667483758 +0200 -@@ -81,7 +81,10 @@ DECLARE_INFO_COMMAND (describe_command, - InfoCommand *cmd = named_function (line); - - if (!cmd) -- return; -+ { -+ free (line); -+ return; -+ } - - window_message_in_echo_area ("%s: %s.", - line, function_documentation (cmd)); -diff -up texinfo-6.5/info/nodes.c.orig texinfo-6.5/info/nodes.c ---- texinfo-6.5/info/nodes.c.orig 2017-07-09 20:51:40.000000000 +0200 -+++ texinfo-6.5/info/nodes.c 2018-10-04 11:34:13.668483758 +0200 -@@ -306,7 +306,10 @@ get_nodes_of_tags_table (FILE_BUFFER *fi - for (p = 0; nodedef[p] && nodedef[p] != INFO_TAGSEP; p++) - ; - if (nodedef[p] != INFO_TAGSEP) -- continue; -+ { -+ free (entry); -+ continue; -+ } - - entry->nodename = xmalloc (p + 1); - strncpy (entry->nodename, nodedef, p); -@@ -480,6 +483,7 @@ get_tags_of_indirect_tags_table (FILE_BU - } - file_buffer->subfiles = NULL; - free_file_buffer_tags (file_buffer); -+ free (subfiles); - return; - } - -diff -up texinfo-6.5/info/session.c.orig texinfo-6.5/info/session.c ---- texinfo-6.5/info/session.c.orig 2017-07-06 20:49:26.000000000 +0200 -+++ texinfo-6.5/info/session.c 2018-10-04 11:34:13.668483758 +0200 -@@ -3554,6 +3554,7 @@ DECLARE_INFO_COMMAND (info_goto_invocati - if (!line) - { - info_abort_key (window, 0); -+ free (default_program_name); - return; - } - if (*line) -diff -up texinfo-6.5/info/variables.c.orig texinfo-6.5/info/variables.c ---- texinfo-6.5/info/variables.c.orig 2017-05-03 21:48:19.000000000 +0200 -+++ texinfo-6.5/info/variables.c 2018-10-04 11:34:13.669483758 +0200 -@@ -361,6 +361,7 @@ read_variable_name (char *prompt, WINDOW - { - char *line; - REFERENCE **variables; -+ VARIABLE_ALIST *alist; - - /* Get the completion array of variable names. */ - variables = make_variable_completions_array (); -@@ -384,7 +385,9 @@ read_variable_name (char *prompt, WINDOW - return NULL; - } - -- return variable_by_name (line); -+ alist = variable_by_name (line); -+ free (line); -+ return alist; - } - - /* Make an array of REFERENCE which actually contains the names of the -diff -up texinfo-6.5/install-info/install-info.c.orig texinfo-6.5/install-info/install-info.c ---- texinfo-6.5/install-info/install-info.c.orig 2018-10-04 11:34:13.661483757 +0200 -+++ texinfo-6.5/install-info/install-info.c 2018-10-04 11:34:13.669483758 +0200 -@@ -867,10 +867,16 @@ determine_file_type: - char *command = concat (*compression_program, " -d", ""); - - if (gzclose (f) < 0) -- return 0; -+ { -+ free (command); -+ return 0; -+ } - p = freopen (*opened_filename, FOPEN_RBIN, stdin); - if (!p) -- return 0; -+ { -+ free (command); -+ return 0; -+ } - p = popen (command, "r"); - if (!p) - { -@@ -880,6 +886,7 @@ determine_file_type: - } - else - *is_pipe = 1; -+ free (command); - return p; - } - else -@@ -923,7 +930,10 @@ readfile (char *filename, int *sizep, - &pipe_p); - - if (!f) -- return 0; -+ { -+ free (data); -+ return 0; -+ } - - for (;;) - { -@@ -983,6 +993,7 @@ output_dirfile (char *dirfile, int dir_n - { - char *command = concat (compression_program, ">", dirfile_tmp); - output = popen (command, "w"); -+ free (command); - } - else - output = fopen (dirfile_tmp, "w"); -@@ -1724,6 +1735,8 @@ reformat_new_entries (struct spec_entry - - format_entry (name, name_len, desc, desc_len, calign, align, - maxwidth, &entry->text, &entry->text_len); -+ free (desc); -+ free (name); - } - } - diff --git a/SOURCES/texinfo-6.5.tar.xz.sig b/SOURCES/texinfo-6.5.tar.xz.sig deleted file mode 100644 index ade40b6..0000000 --- a/SOURCES/texinfo-6.5.tar.xz.sig +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iF4EABEIAAYFAlm4QBsACgkQ3bxXnas3+6mlNwD/Tzn0IxHxWCII18A72dLZ0rDB -0GtvrWV4c/wtYHSGSNEA/3iIAv2qbGreDAXAzLHKsWm5vKzFvRPeDS7GBJQg018q -=EUkI ------END PGP SIGNATURE----- diff --git a/fix-info-dir b/fix-info-dir new file mode 100755 index 0000000..0659552 --- /dev/null +++ b/fix-info-dir @@ -0,0 +1,316 @@ +#!/bin/sh +#fix-info-dir (GNU texinfo) +VERSION=1.1 +#Copyright (C) 1998, 2003 Free Software Foundation, Inc. +#fix-info-dir comes with NO WARRANTY, to the extent permitted by law. +#You may redistribute copies of fix-info-dir +#under the terms of the GNU General Public License. +#For more information about these matters, see the files named COPYING." +#fix-info-dir was derived from update-info and gen-dir-node +# The skeleton file contains info topic names in the +# order they should appear in the output. There are three special +# lines that alter the behavior: a line consisting of just "--" causes +# the next line to be echoed verbatim to the output. A line +# containing just "%%" causes all the remaining filenames (wildcards +# allowed) in the rest of the file to be ignored. A line containing +# just "!!" exits the script when reached (unless preceded by a line +# containing just "--"). +#Author: Richard L. Hawes, rhawes@dmapub.dma.org. + +# ###SECTION 1### Constants +set -h 2>/dev/null +# ENVIRONMENT +if test -z "$TMPDIR"; then + TMPDIR="/usr/tmp" +fi +if test -z "$LINENO"; then + LINENO="0" +fi + +MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:' +MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /' +MENU_FILTER2='s/\([ ]\)\{1,\}$//g' + +TMP_FILE1="${TMPDIR}/fx${$}.info" +TMP_FILE2="${TMPDIR}/fy${$}.info" +TMP_FILE_LIST="$TMP_FILE1 $TMP_FILE2" + +TRY_HELP_MSG="Try --help for more information" + +# ###SECTION 100### main program +#variables set by options +CREATE_NODE="" +DEBUG=":" +MODE="" +# +Total="0" +Changed="" + +while test "$*"; do + case "$1" in + -c|--create) CREATE_NODE="y";; + --debug) set -eux; DEBUG="set>&2";; + -d|--delete) MODE="Detect_Invalid";; + +d);; + --version) +cat<&2 + echo "$TRY_HELP_MSG">&2 + exit 2;; + *) break;; + esac + shift +done + +ORIGINAL_DIR=`pwd` + +if test "$#" -gt "0"; then + INFO_DIR="$1" + shift +else + INFO_DIR=$DEFAULT_INFO_DIR +fi + +if test ! -d "${INFO_DIR}"; then + DIR_FILE=`basename ${INFO_DIR}`; + INFO_DIR=`dirname ${INFO_DIR}`; +else + DIR_FILE="dir" +fi + +cd "$INFO_DIR"||exit + + +if test "$CREATE_NODE"; then + if test "$#" -gt "0"; then + if test `expr $1 : /` = '1'; then + SKELETON="$1" + else + SKELETON="$ORIGINAL_DIR/$1" + fi + if test ! -r "$SKELETON" && test -f "$SKELETON"; then + echo "$0:$LINENO: $SKELETON is not readable">&2 + exit 2 + fi + shift + else + SKELETON=/dev/null + + fi +else + if test ! -f "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is irregular or nonexistant">&2 + exit 2 + elif test ! -r "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is not readable">&2 + exit 2 + elif test ! -w "$DIR_FILE"; then + echo "$0:$LINENO: $DIR_FILE is not writeable">&2 + exit 2 + fi +fi + +if test "$#" -gt "0"; then + echo "$0:$LINENO: Too many parameters">&2 + echo "$TRY_HELP_MSG">&2 + exit 2 +fi + +if test -f "$DIR_FILE"; then + cp "$DIR_FILE" "$DIR_FILE.old" + echo "Backed up $DIR_FILE to $DIR_FILE.old." +fi + +if test "$CREATE_NODE"; then + if test "$MODE"; then + echo "$0:$LINENO: ERROR: Illogical option combination: -d -c">&2 + echo "$TRY_HELP_MSG">&2 + exit 2 + fi + echo "Creating new Info Node: `pwd`/$DIR_FILE" + Changed="y" + +{ + + ### output the dir header + echo "-*- Text -*-" + echo "This file was generated automatically by $0." + echo "This version was generated on `date`" + echo "by `whoami`@`hostname` for `pwd`" + + cat<" visits the Emacs topic, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: The list of major topics begins on the next line. + +DIR_FILE_END_OF_FILE + +### go through the list of files in the skeleton. If an info file +### exists, grab the ENTRY information from it. If an entry exists +### use it, otherwise create a minimal $DIR_FILE entry. + + # Read one line from the file. This is so that we can echo lines with + # whitespace and quoted characters in them. + while read fileline; do + # flag fancy features + if test ! -z "$echoline"; then # echo line + echo "$fileline" + echoline="" + continue + elif test "${fileline}" = "--"; then + # echo the next line + echoline="1" + continue + elif test "${fileline}" = "%%"; then + # skip remaining files listed in skeleton file + skip="1" + continue + elif test "${fileline}" = "!!"; then + # quit now + break + fi + + # handle files if they exist + for file in $fileline""; do + fname= + if test -z "$file"; then + break + fi + # Find the file to operate upon. + if test -r "$file"; then + fname="$file" + elif test -r "${file}.info"; then + fname="${file}.info" + elif test -r "${file}.gz"; then + fname="${file}.gz" + elif test -r "${file}.info.gz"; then + fname="${file}.info.gz" + else + echo "$0:$LINENO: can't find info file for ${file}?">&2 + continue + fi + + # if we found something and aren't skipping, do the entry + if test "$skip"; then + continue + fi + + infoname=`echo $file|sed -e 's/.info$//'` + entry=`zcat -f $fname|\ + sed -e '1,/START-INFO-DIR-ENTRY/d'\ + -e '/END-INFO-DIR-ENTRY/,$d'` + if [ ! -z "${entry}" ]; then + echo "${entry}" + else + echo "* ${infoname}: (${infoname})." + fi + Total=`expr "$Total" + "1"` + done + done +}>$DIR_FILE<$SKELETON +fi + +trap ' eval "$DEBUG"; rm -f $TMP_FILE_LIST; exit ' 0 +trap ' rm -f $TMP_FILE_LIST + exit ' 1 +trap ' rm -f $TMP_FILE_LIST + echo "$0:$LINENO: received INT signal.">&2 + exit ' 2 +trap ' rm -f $TMP_FILE_LIST + echo "$0:$LINENO: received QUIT signal.">&2 + exit ' 3 + +sed -e "1,/$MENU_BEGIN/d" -e "$MENU_FILTER1" -e "$MENU_FILTER2"<$DIR_FILE\ +|sed -n -e '/\* /{ +s/).*$//g +s/\.gz$// +s/\.info$// +s/^.*(//p +}'|sort -u>$TMP_FILE1 +ls -F|sed -e '/\/$/d' -e '/[-.][0-9]/d'\ + -e "/^$DIR_FILE\$/d" -e "/^$DIR_FILE.old\$/d"\ + -e 's/[*@]$//' -e 's/\.gz$//' -e 's/\.info$//'|sort>$TMP_FILE2 + +if test -z "$MODE"; then + #Detect Missing + DONE_MSG="total menu item(s) were inserted into `pwd`/$DIR_FILE" + for Info_Name in `comm -13 $TMP_FILE1 $TMP_FILE2`; do + if test -r "$Info_Name"; then + Info_File="$Info_Name" + elif test -r "${Info_Name}.info"; then + Info_File="${Info_Name}.info" + elif test -r "${Info_Name}.gz"; then + Info_File="${Info_Name}.gz" + elif test -r "${Info_Name}.info.gz"; then + Info_File="${Info_Name}.info.gz" + else + echo "$0:$LINENO: can't find info file for ${Info_Name}?">&2 + continue + fi + Changed="y" + if install-info $Info_File $DIR_FILE; then + Total=`expr "$Total" + "1"` + fi + done +else + # Detect Invalid + DONE_MSG="total invalid menu item(s) were removed from `pwd`/$DIR_FILE" + for Info_Name in `comm -23 $TMP_FILE1 $TMP_FILE2`; do + Changed="y" + if install-info --remove $Info_Name $DIR_FILE; then + Total=`expr "$Total" + "1"` + fi + done +fi + +# print summary +if test "$Changed"; then + echo "$Total $DONE_MSG" +else + echo "Nothing to do" +fi +rm -f $TMP_FILE_LIST +eval "$DEBUG" +exit 0 diff --git a/SOURCES/info-6.5-sync-fix-info-dir.patch b/info-6.5-sync-fix-info-dir.patch similarity index 100% rename from SOURCES/info-6.5-sync-fix-info-dir.patch rename to info-6.5-sync-fix-info-dir.patch diff --git a/sources b/sources new file mode 100644 index 0000000..9ecb3f6 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (texinfo-7.1.tar.xz) = ceab03e8422d800b08c7b44e8263b0a1f35bb7758d83a81136df6f3304a14daecda98a12a282afb85406d2ca2f665b2295e10b6f4064156ea1285d80d5d355db diff --git a/texinfo-6.5-covscan-fixes.patch b/texinfo-6.5-covscan-fixes.patch new file mode 100644 index 0000000..0a44df2 --- /dev/null +++ b/texinfo-6.5-covscan-fixes.patch @@ -0,0 +1,34 @@ +diff -up texinfo-7.0.92/info/infomap.c.orig texinfo-7.0.92/info/infomap.c +--- texinfo-7.0.92/info/infomap.c.orig 2023-09-14 13:19:30.417330487 +0200 ++++ texinfo-7.0.92/info/infomap.c 2023-09-14 13:19:55.870353408 +0200 +@@ -590,6 +590,7 @@ fetch_user_maps (char *init_file) + compile (inf, filename, &sup_info, &sup_ea); + + free (filename); ++ fclose (inf); + return 1; + } + +diff -up texinfo-7.0.92/info/variables.c.orig texinfo-7.0.92/info/variables.c +--- texinfo-7.0.92/info/variables.c.orig 2023-09-14 13:20:14.464370153 +0200 ++++ texinfo-7.0.92/info/variables.c 2023-09-14 13:21:00.343411464 +0200 +@@ -359,6 +359,7 @@ read_variable_name (char *prompt, WINDOW + { + char *line; + REFERENCE **variables; ++ VARIABLE_ALIST *alist; + + /* Get the completion array of variable names. */ + variables = make_variable_completions_array (); +@@ -382,7 +383,9 @@ read_variable_name (char *prompt, WINDOW + return NULL; + } + +- return variable_by_name (line); ++ alist = variable_by_name (line); ++ free (line); ++ return alist; + } + + /* Make an array of REFERENCE which actually contains the names of the +diff -up texinfo-7.0.92/install-info/install-info.c.orig texinfo-7.0.92/install-info/install-info.c diff --git a/SOURCES/texinfo-6.5-fix-info-dir.patch b/texinfo-6.5-fix-info-dir.patch similarity index 100% rename from SOURCES/texinfo-6.5-fix-info-dir.patch rename to texinfo-6.5-fix-info-dir.patch diff --git a/texinfo-7.1-make-tainted-data-safe.patch b/texinfo-7.1-make-tainted-data-safe.patch new file mode 100644 index 0000000..aafae60 --- /dev/null +++ b/texinfo-7.1-make-tainted-data-safe.patch @@ -0,0 +1,12 @@ +diff -up texinfo-7.1/info/makedoc.c.orig texinfo-7.1/info/makedoc.c +--- texinfo-7.1/info/makedoc.c.orig 2023-08-14 20:53:20.000000000 +0200 ++++ texinfo-7.1/info/makedoc.c 2024-10-09 10:13:13.476369921 +0200 +@@ -296,7 +296,7 @@ process_one_file (char *filename, FILE * + char *func, *doc; + char *func_name; + +- for (; offset < (file_size - decl_len); offset++) ++ for (; offset < (file_size - decl_len) && offset < (LONG_MAX - decl_len); offset++) + { + if (buffer[offset] == '\n') + { diff --git a/texinfo-7.1-various-sast-fixes.patch b/texinfo-7.1-various-sast-fixes.patch new file mode 100644 index 0000000..fb393ac --- /dev/null +++ b/texinfo-7.1-various-sast-fixes.patch @@ -0,0 +1,150 @@ +diff -up texinfo-7.1/info/filesys.c.orig texinfo-7.1/info/filesys.c +diff -up texinfo-7.1/info/infokey.c.orig texinfo-7.1/info/infokey.c +--- texinfo-7.1/info/infokey.c.orig 2023-08-14 20:53:20.000000000 +0200 ++++ texinfo-7.1/info/infokey.c 2024-08-07 12:12:04.651748655 +0200 +@@ -208,7 +208,7 @@ compile (FILE *fp, const char *filename, + char oval = 0; + char comment[10]; + unsigned int clen = 0; +- int seq[20]; ++ int seq[20] = { 0 }; + unsigned int slen = 0; + char act[80]; + unsigned int alen = 0; +diff -up texinfo-7.1/info/session.c.orig texinfo-7.1/info/session.c +--- texinfo-7.1/info/session.c.orig 2023-08-15 14:52:09.000000000 +0200 ++++ texinfo-7.1/info/session.c 2024-08-08 13:14:28.320463664 +0200 +@@ -2335,7 +2335,7 @@ info_menu_or_ref_item (WINDOW *window, i + if (defentry) + { + prompt = xmalloc (strlen (defentry->label) +- + strlen (_("Menu item (%s): "))); ++ + strlen (_("Menu item (%s): ")) + 1); + sprintf (prompt, _("Menu item (%s): "), defentry->label); + } + else +@@ -2346,7 +2346,7 @@ info_menu_or_ref_item (WINDOW *window, i + if (defentry) + { + prompt = xmalloc (strlen (defentry->label) +- + strlen (_("Follow xref (%s): "))); ++ + strlen (_("Follow xref (%s): ")) + 1); + sprintf (prompt, _("Follow xref (%s): "), defentry->label); + } + else +@@ -2923,7 +2923,7 @@ DECLARE_INFO_COMMAND (info_menu_sequence + static int + info_handle_pointer (char *label, WINDOW *window) + { +- char *description; ++ char *description = NULL; + NODE *node; + + if (!strcmp (label, "Up")) +@@ -3480,7 +3480,7 @@ info_intuit_options_node (NODE *node, ch + { + char *nodename; + +- nodename = xmalloc (strlen (program) + strlen (*try_node)); ++ nodename = xmalloc (strlen (program) + strlen (*try_node) + 1); + sprintf (nodename, *try_node, program); + /* The last resort "%s" is dangerous, so we restrict it + to exact matches here. */ +@@ -3556,7 +3556,7 @@ DECLARE_INFO_COMMAND (info_goto_invocati + default_program_name = program_name_from_file_name (file_name); + + prompt = xmalloc (strlen (default_program_name) + +- strlen (invocation_prompt)); ++ strlen (invocation_prompt) + 1); + sprintf (prompt, invocation_prompt, default_program_name); + line = info_read_in_echo_area (prompt); + free (prompt); +diff -up texinfo-7.1/info/util.c.orig texinfo-7.1/info/util.c +--- texinfo-7.1/info/util.c.orig 2023-08-14 20:53:20.000000000 +0200 ++++ texinfo-7.1/info/util.c 2024-08-07 12:12:04.656748661 +0200 +@@ -34,9 +34,12 @@ xvasprintf (char **ptr, const char *temp + int + xasprintf (char **ptr, const char *template, ...) + { ++ int ret; + va_list v; + va_start (v, template); +- return xvasprintf (ptr, template, v); ++ ret = xvasprintf (ptr, template, v); ++ va_end (v); ++ return ret; + } + + /* Return the file buffer which belongs to WINDOW's node. */ +diff -up texinfo-7.1/install-info/install-info.c.orig texinfo-7.1/install-info/install-info.c +--- texinfo-7.1/install-info/install-info.c.orig 2023-10-08 17:57:24.000000000 +0200 ++++ texinfo-7.1/install-info/install-info.c 2024-08-07 12:12:04.657748663 +0200 +@@ -752,11 +752,15 @@ open_possibly_compressed_file (char *fil + return 0; + nread = fread (data, sizeof (data), 1, f); + if (nread == 0) +- return 0; ++ { ++ fclose (f); ++ return 0; ++ } + goto determine_file_type; /* success */ + } + } + errno = 0; ++ fclose (f); + return 0; /* unknown error */ + } + +@@ -829,10 +833,16 @@ determine_file_type: + FILE *f2; + + if (fclose (f) < 0) +- return 0; ++ { ++ free (command); ++ return 0; ++ } + f2 = freopen (*opened_filename, FOPEN_RBIN, stdin); + if (!f) +- return 0; ++ { ++ fclose (f2); ++ return 0; ++ } + f = popen (command, "r"); + fclose (f2); + if (!f) +@@ -854,7 +864,10 @@ determine_file_type: + #else + /* Seek back over the magic bytes. */ + if (fseek (f, 0, 0) < 0) +- return 0; ++ { ++ fclose (f); ++ return 0; ++ } + #endif + } + +@@ -885,7 +898,10 @@ readfile (char *filename, int *sizep, + compression_program); + + if (!f) +- return 0; ++ { ++ free (data); ++ return 0; ++ } + + for (;;) + { +@@ -1836,7 +1852,7 @@ munge_old_style_debian_options (int argc + int *new_argc, char ***new_argv) + { + char *opt = NULL; +- int i, err; ++ int i, err = 0; + char *argz = NULL; + size_t argz_len = 0; + const char *regex, *title; diff --git a/texinfo-7.1.tar.xz.sig b/texinfo-7.1.tar.xz.sig new file mode 100644 index 0000000..490067b --- /dev/null +++ b/texinfo-7.1.tar.xz.sig @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- + +iI8EABEIADcWIQTq9mmzHjHh3svRFRPdvFedqzf7qQUCZS/iphkcZ2F2aW5zbWl0 +aDAxMjNAZ21haWwuY29tAAoJEN28V52rN/up5LYBALwlhLMF0ms2VhWq8mXvHbii +L2ySgaLsL1Pe3bFv6UC5AP0XSWsH5VQGq3wRVvo5KCH9TIi2aAMZ3RrfJbaPmxHS +xA== +=bAky +-----END PGP SIGNATURE----- diff --git a/SPECS/texinfo.spec b/texinfo.spec similarity index 77% rename from SPECS/texinfo.spec rename to texinfo.spec index b8f3740..a69d486 100644 --- a/SPECS/texinfo.spec +++ b/texinfo.spec @@ -1,31 +1,31 @@ -%global tex_texinfo %{_datadir}/texmf/tex/texinfo +%global tex_texinfo %{_datadir}/texlive/texmf-dist/tex/texinfo Summary: Tools needed to create Texinfo format documentation files Name: texinfo -Version: 6.5 -Release: 7%{?dist} -License: GPLv3+ +Version: 7.1 +Release: 6%{?dist} +License: GPL-3.0-or-later Url: http://www.gnu.org/software/texinfo/ Source0: ftp://ftp.gnu.org/gnu/texinfo/texinfo-%{version}.tar.xz Source1: ftp://ftp.gnu.org/gnu/texinfo/texinfo-%{version}.tar.xz.sig -# Source5: macro definitions -Source5: macros.info -Patch0: texinfo-4.12-zlib.patch -# Patch1: this is needed just for koji/mock, all tests pass fine in local build -Patch1: texinfo-6.0-disable-failing-info-test.patch -# Patch2: rhbz#1348671, because of OSTree -Patch2: texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch -# Patch3: we need to fix template fix-info-dir generates -Patch3: info-6.5-sync-fix-info-dir.patch -# Patch4: fixes issues detected by static analysis -Patch4: texinfo-6.5-covscan-fixes.patch -# Patch5: rhbz#2022201, fixes a loop when /dev/null doesn't exist -Patch5: texinfo-6.5-fix-info-dir.patch +Source2: fix-info-dir +# Patch0: we need to fix template fix-info-dir generates +Patch0: info-6.5-sync-fix-info-dir.patch +# Patch1: rhbz#1592433, bug in fix-info-dir --delete +Patch1: texinfo-6.5-fix-info-dir.patch +# Patch2: fixes issues detected by static analysis +Patch2: texinfo-6.5-covscan-fixes.patch +# Patch3: fixes various issues found by static analysis +Patch3: texinfo-7.1-various-sast-fixes.patch +# Patch4: makes tainted data safe +Patch4: texinfo-7.1-make-tainted-data-safe.patch + +BuildRequires: make BuildRequires: gcc BuildRequires: perl-generators -BuildRequires: zlib-devel, ncurses-devel, help2man, perl(Data::Dumper) +BuildRequires: ncurses-devel, help2man, perl(Data::Dumper) BuildRequires: perl(Locale::Messages), perl(Unicode::EastAsianWidth), perl(Text::Unidecode) -BuildRequires: perl(Storable) +BuildRequires: perl(Storable), perl(Unicode::Normalize), perl(File::Copy) # Texinfo perl packages are not installed in default perl library dirs %global __provides_exclude ^perl\\(.*Texinfo.*\\)$ @@ -42,6 +42,7 @@ are going to write documentation for the GNU Project. %package -n info Summary: A stand-alone TTY-based reader for GNU texinfo documentation +Provides: /sbin/install-info %description -n info The GNU project uses the texinfo file format for much of its @@ -54,6 +55,9 @@ Requires: texinfo = %{version}-%{release} Requires: tex(tex) tex(epsf.tex) Requires(post): %{_bindir}/texconfig-sys Requires(postun): %{_bindir}/texconfig-sys +Provides: tex-texinfo +Provides: texlive-texinfo +Obsoletes: texlive-texinfo <= 9:2019-15 %description tex Texinfo is a documentation system that can produce both online @@ -64,7 +68,10 @@ The texinfo-tex package provides tools to format Texinfo documents for printing using TeX. %prep -%autosetup -p1 +%setup -q +mkdir contrib +install -Dpm0755 -t contrib %{SOURCE2} +%autopatch -p1 %build %configure --with-external-Text-Unidecode \ @@ -81,13 +88,11 @@ mkdir -p ${RPM_BUILD_ROOT}/sbin mkdir -p $RPM_BUILD_ROOT%{tex_texinfo} install -p -m644 doc/texinfo.tex doc/txi-??.tex $RPM_BUILD_ROOT%{tex_texinfo} -mv $RPM_BUILD_ROOT%{_bindir}/install-info $RPM_BUILD_ROOT/sbin +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +mv $RPM_BUILD_ROOT%{_bindir}/install-info $RPM_BUILD_ROOT%{_sbindir} install -Dpm0755 -t %{buildroot}%{_sbindir} contrib/fix-info-dir -mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d -cp %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d - %find_lang %{name} %find_lang %{name}_document @@ -116,6 +121,8 @@ export ALL_TESTS=yes %{_bindir}/pod2texi %{_datadir}/texinfo %{_infodir}/texinfo* +%{_infodir}/texi2any_api.info* +%{_infodir}/texi2any_internals.info* %{_mandir}/man1/makeinfo.1* %{_mandir}/man5/texinfo.5* %{_mandir}/man1/texi2any.1* @@ -125,12 +132,11 @@ export ALL_TESTS=yes %license COPYING %{_bindir}/info %{_infodir}/info-stnd.info* -/sbin/install-info +%{_sbindir}/install-info %{_sbindir}/fix-info-dir %{_mandir}/man1/info.1* %{_mandir}/man1/install-info.1* %{_mandir}/man5/info.5* -%{_rpmconfigdir}/macros.d/macros.info %ghost %{_infodir}/dir %ghost %attr(644, root, root) %{_infodir}/dir.old @@ -146,23 +152,149 @@ export ALL_TESTS=yes %{_mandir}/man1/pdftexi2dvi.1* %changelog -* Mon Jan 17 2022 Vitezslav Crhonek - 6.5-7 -- Fix a loop in fix-info-dir when /dev/null doesn't exist - Resolves: #2022201 +* Tue Dec 03 2024 Vitezslav Crhonek - 7.1-6 +- Make tainted data safe + Resolves: RHEL-43596 -* Thu Jan 09 2020 Vitezslav Crhonek - 6.5-6 -- Fix file mode for dir.old (fixes failing rpm -V info) - Related: #1708912 +* Tue Oct 29 2024 Troy Dawson - 7.1-5 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Thu Dec 12 2019 Vitezslav Crhonek - 6.5-5 -- Rebuild - Resolves: #1708912 -- Enable gating on OSCI - Resolves: #1681507 +* Thu Aug 08 2024 Vitezslav Crhonek - 7.1-4 +- Fix memory/resource leaks, insufficient memory allocations and + variable declarations without initializer + Resolves: RHEL-43595 -* Tue Oct 09 2018 Vitezslav Crhonek - 6.5-4 +* Mon Jun 24 2024 Troy Dawson - 7.1-3 +- Bump release for June 2024 mass rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Oct 24 2023 Vitezslav Crhonek - 7.1-1 +- Update to texinfo-7.1 + Resolves: #2244846 + +* Sat Jul 22 2023 Fedora Release Engineering - 7.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed May 31 2023 Vitezslav Crhonek - 7.0.3-2 +- SPDX migration + +* Thu Mar 30 2023 Vitezslav Crhonek - 7.0.3-1 +- Update to texinfo-7.0.3 + Resolves: #2181837 + +* Wed Feb 22 2023 Vitezslav Crhonek - 7.0.2-2 +- Fix possible use of an undefined value as an ARRAY reference in ParserNonXS.pm + (causes FTBFS of a2ps) + Resolves: #2171433 + +* Mon Jan 23 2023 Vitezslav Crhonek - 7.0.2-1 +- Update to texinfo-7.0.2 + Resolves: #2162979 + +* Sat Jan 21 2023 Fedora Release Engineering - 7.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 01 2022 Vitezslav Crhonek - 7.0.1-1 +- Update to texinfo-7.0.1 + Resolves: #2149772 + +* Fri Nov 18 2022 Vitezslav Crhonek - 7.0-1 +- Update to texinfo-7.0 + Resolves: #2140872 + +* Sat Jul 23 2022 Fedora Release Engineering - 6.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 6.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 6.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 20 2021 Vitezslav Crhonek - 6.8-1 +- Update to texinfo-6.8 + Resolves: #1978903 + +* Mon Jun 14 2021 Vitezslav Crhonek - 6.7-11 +- Fix install path of install-info + +* Tue Feb 02 2021 Vitezslav Crhonek - 6.7-10 +- Fix problem in shell code found by ShellCheck in test script + +* Wed Jan 27 2021 Fedora Release Engineering - 6.7-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 6.7-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Mar 16 2020 Jitka Plesnikova - 6.7-7 +- Add BR: perl(Unicode::Normalize) + +* Thu Mar 5 2020 Tom Callaway - 6.7-6 +- add additional Provides: tex-texinfo ("it's an older code sir, but it checks out") + +* Fri Jan 31 2020 Fedora Release Engineering - 6.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 24 2020 Vitezslav Crhonek - 6.7-4 +- Move texlive-tex files to more approriate location again, this + time in sync with dropping texlive-texinfo from texlive + Resolves: #1719379 + +* Thu Jan 09 2020 Vitezslav Crhonek - 6.7-3 +- Fix mode of dir.old + +* Tue Oct 08 2019 Vitezslav Crhonek - 6.7-2 +- Revert move of texinfo-tex files + Resolves: #1758817 + +* Thu Sep 26 2019 Vitezslav Crhonek - 6.7-1 +- Update to texinfo-6.7 + Resolves: #1754648 +- Move texlive-tex files to more approriate location + Resolves: #1719379 + +* Sat Jul 27 2019 Fedora Release Engineering - 6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Feb 18 2019 Vitezslav Crhonek - 6.6-1 +- Update to texinfo-6.6 + Resolves: #1677911 + +* Sun Feb 03 2019 Fedora Release Engineering - 6.5-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Oct 04 2018 Jason L Tibbitts III - 6.5-11 +- Fix another issue in fix-info-dir which could lead to an infinite loop in odd + circumstances. + Resolves: #1614162 + +* Thu Aug 09 2018 Igor Gnatenko - 6.5-10 +- Drop macros.info + +* Wed Aug 08 2018 Vitezslav Crhonek - 6.5-9 - Fix issues detected by static analysis - Resolves: #1606966 + +* Sat Jul 14 2018 Fedora Release Engineering - 6.5-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Jitka Plesnikova - 6.5-7 +- Perl 5.28 rebuild + +* Thu Jun 21 2018 Vitezslav Crhonek - 6.5-6 +- Fix fail of test because of unescaped left brace with Perl 5.28 + (patch by Jitka Plesnikova) + Resolves: #1590308 + +* Tue Jun 19 2018 Jason L Tibbitts III - 6.5-5 +- Fix bug in fix-info-dir which prevented the transfiletriggerpostun script + from working properly. + +* Fri Mar 30 2018 Tom Callaway - 6.5-4 +- update texinfo.tex * Tue Feb 13 2018 Igor Gnatenko - 6.5-3 - Implement transaction filetriggers for crating info/dir