diff --git a/texinfo-6.4-info-fix-following-more-than-one-line-cross-reference.patch b/texinfo-6.4-info-fix-following-more-than-one-line-cross-reference.patch new file mode 100644 index 0000000..59bebde --- /dev/null +++ b/texinfo-6.4-info-fix-following-more-than-one-line-cross-reference.patch @@ -0,0 +1,11 @@ +diff -up texinfo-6.4/info/info-utils.c.orig texinfo-6.4/info/info-utils.c +--- texinfo-6.4/info/info-utils.c.orig 2017-07-10 10:37:50.713333292 +0200 ++++ texinfo-6.4/info/info-utils.c 2017-07-10 10:38:16.342348756 +0200 +@@ -1280,6 +1280,7 @@ scan_reference_label (REFERENCE *entry, + &entry->nodename); + if (!len) + return 0; /* Input invalid. */ ++ canonicalize_whitespace (entry->nodename); + label_len += len; + } + else diff --git a/texinfo-6.4-info-fix-possible-incorrect-selection-of-already-loaded-file.patch b/texinfo-6.4-info-fix-possible-incorrect-selection-of-already-loaded-file.patch new file mode 100644 index 0000000..4b3d951 --- /dev/null +++ b/texinfo-6.4-info-fix-possible-incorrect-selection-of-already-loaded-file.patch @@ -0,0 +1,22 @@ +diff -up texinfo-6.4/info/nodes.c.orig texinfo-6.4/info/nodes.c +--- texinfo-6.4/info/nodes.c.orig 2017-06-18 14:50:42.000000000 +0200 ++++ texinfo-6.4/info/nodes.c 2017-07-10 09:39:10.195209219 +0200 +@@ -678,6 +678,7 @@ info_find_subfile (char *fullpath) + char *with_extension = 0; + int i; + FILE_BUFFER *file_buffer = 0; ++ int fullpath_len = strlen (fullpath); + + /* First try to find the file in our list of already loaded files. */ + if (info_loaded_files) +@@ -685,7 +686,9 @@ info_find_subfile (char *fullpath) + for (i = 0; (file_buffer = info_loaded_files[i]); i++) + /* Check if fullpath starts the name of the recorded file (extra + extensions like ".info.gz" could be added.) */ +- if (!strncmp (file_buffer->fullpath, fullpath, strlen (fullpath))) ++ if (!strncmp (file_buffer->fullpath, fullpath, fullpath_len) ++ && (file_buffer->fullpath[fullpath_len] == '\0' ++ || file_buffer->fullpath[fullpath_len] == '.')) + { + struct stat new_info, *old_info; + diff --git a/texinfo.spec b/texinfo.spec index ab5d982..dac61e7 100644 --- a/texinfo.spec +++ b/texinfo.spec @@ -3,7 +3,7 @@ Summary: Tools needed to create Texinfo format documentation files Name: texinfo Version: 6.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ Group: Applications/Publishing Url: http://www.gnu.org/software/texinfo/ @@ -13,10 +13,13 @@ Source2: info-dir # Source5: macro definitions Source5: macros.info Patch0: texinfo-4.12-zlib.patch -# Patch1: this is needed just for koji/mock, all test pass fine in local build +# 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 +# Patches 3-4 are already upstream +Patch3: texinfo-6.4-info-fix-following-more-than-one-line-cross-reference.patch +Patch4: texinfo-6.4-info-fix-possible-incorrect-selection-of-already-loaded-file.patch Requires(post): /sbin/install-info Requires(preun): /sbin/install-info Requires: perl >= 5.7.3, perl(Text::Unidecode) @@ -69,6 +72,8 @@ for printing using TeX. %patch0 -p1 -b .zlib %patch1 -p1 -b .disable-failing-info-test %patch2 -p1 -b .install-info-use-create-tmp-then-rename-pattern +%patch3 -p1 -b .info-fix-following-more-than-one-line-cross-reference +%patch4 -p1 -b .info-fix-possible-incorrect-selection-of-already-loaded-file %build %configure --with-external-Text-Unidecode \ @@ -171,6 +176,13 @@ fi %{_mandir}/man1/pdftexi2dvi.1* %changelog +* Mon Jul 10 2017 Vitezslav Crhonek - 6.4-2 +- Fix broken reference following when the reference is split to + more than one line +- Fix possible incorrect selection of already loaded file when + following cross reference + Resolves: #1383057 + * Tue Jun 27 2017 Vitezslav Crhonek - 6.4-1 - Update to texinfo-6.4 Resolves: #1464624