diff --git a/.gitignore b/.gitignore index b40ef00..108f7be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ -/texinfo-7.1.1.tar.xz -/texinfo-7.1.1.tar.xz.sig -/texinfo-7.2.tar.xz -/texinfo-7.2.tar.xz.sig +/texinfo-6.8.tar.xz +/texinfo-6.8.tar.xz.sig diff --git a/fix-info-dir b/fix-info-dir deleted file mode 100755 index 0659552..0000000 --- a/fix-info-dir +++ /dev/null @@ -1,316 +0,0 @@ -#!/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 b/sources index aa3d69e..8653407 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (texinfo-7.2.tar.xz) = 8e67337ae12a552fc620c43725507a4978710ea6630e98b0f5e98eb3f79a90e191dde5225699aa6217c26f171d277461f76150f0459cd07b40c3234d2f3d89bf -SHA512 (texinfo-7.2.tar.xz.sig) = fcb5bcf655e16f8994b33242516cff7f5dc6684555c889fee4a4e5b01cbc9c8163d6ea5c77722b2bb8d6f65120650de4daff027bee135d1c29f82316211d8fb4 +SHA512 (texinfo-6.8.tar.xz) = 0ff9290b14e4d83e32b889cfa24e6d065f98b2a764daf6b92c6c895fddbb35258398da6257c113220d5a4d886f7b54b09c4b117ca5eacfee6797f9bffde0f909 +SHA512 (texinfo-6.8.tar.xz.sig) = 3b41ddf6b5a04c7f5fe1b4708a76f96b042cc3da0c786a2858d16c3db62d5506cc56e66199f69df92a6f039d42a8d670455f24f4c94056a9c0f500dfad51fabf diff --git a/texinfo-6.0-disable-failing-info-test.patch b/texinfo-6.0-disable-failing-info-test.patch new file mode 100644 index 0000000..5a8b72a --- /dev/null +++ b/texinfo-6.0-disable-failing-info-test.patch @@ -0,0 +1,25 @@ +diff -up texinfo-6.5.92/install-info/tests/Makefile.in.orig texinfo-6.5.92/install-info/tests/Makefile.in +--- texinfo-6.5.92/install-info/tests/Makefile.in.orig 2019-02-01 16:16:49.000000000 +0100 ++++ texinfo-6.5.92/install-info/tests/Makefile.in 2019-02-18 10:33:52.078877104 +0100 +@@ -1229,8 +1229,8 @@ ii-0021-test ii-0022-test ii-0023-test i + ii-0026-test ii-0027-test ii-0028-test ii-0029-test ii-0030-test \ + ii-0031-test ii-0032-test ii-0033-test ii-0034-test ii-0035-test \ + ii-0036-test ii-0037-test ii-0038-test ii-0039-test ii-0040-test \ +-ii-0041-test ii-0042-test ii-0043-test ii-0044-test ii-0045-test \ +-ii-0046-test ii-0047-test ii-0048-test ii-0049-test ii-0050-test \ ++ii-0042-test ii-0043-test ii-0044-test ii-0045-test \ ++ii-0046-test ii-0047-test ii-0048-test ii-0049-test \ + ii-0051-test ii-0052-test ii-0053-test ii-0054-test ii-0055-test \ + ii-0056-test ii-0057-test + +diff -up texinfo-6.5.92/tp/tests/Makefile.in.orig texinfo-6.5.92/tp/tests/Makefile.in +--- texinfo-6.5.92/tp/tests/Makefile.in.orig 2019-02-01 16:16:50.000000000 +0100 ++++ texinfo-6.5.92/tp/tests/Makefile.in 2019-02-18 10:33:13.774827269 +0100 +@@ -1374,7 +1374,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/layout_formatting.sh \ diff --git a/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch b/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch new file mode 100644 index 0000000..ab8e072 --- /dev/null +++ b/texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch @@ -0,0 +1,44 @@ +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/texinfo-6.5-covscan-fixes.patch b/texinfo-6.5-covscan-fixes.patch new file mode 100644 index 0000000..63e5167 --- /dev/null +++ b/texinfo-6.5-covscan-fixes.patch @@ -0,0 +1,45 @@ +diff -up texinfo-6.7.90/info/infomap.c.orig texinfo-6.7.90/info/infomap.c +--- texinfo-6.7.90/info/infomap.c.orig 2019-12-01 12:26:46.000000000 +0100 ++++ texinfo-6.7.90/info/infomap.c 2021-02-24 12:56:06.865568572 +0100 +@@ -589,6 +589,7 @@ fetch_user_maps (char *init_file) + compile (inf, filename, &sup_info, &sup_ea); + + free (filename); ++ fclose (inf); + return 1; + } + +diff -up texinfo-6.7.90/info/variables.c.orig texinfo-6.7.90/info/variables.c +--- texinfo-6.7.90/info/variables.c.orig 2021-02-24 13:00:21.056060523 +0100 ++++ texinfo-6.7.90/info/variables.c 2021-02-24 13:36:27.089318922 +0100 +@@ -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-6.7.90/install-info/install-info.c.orig texinfo-6.7.90/install-info/install-info.c +--- texinfo-6.7.90/install-info/install-info.c.orig 2021-02-24 13:36:42.839472560 +0100 ++++ texinfo-6.7.90/install-info/install-info.c 2021-02-24 13:41:36.219280631 +0100 +@@ -1717,6 +1728,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/texinfo-6.7-zstd-compression.patch b/texinfo-6.7-zstd-compression.patch deleted file mode 100644 index a08a454..0000000 --- a/texinfo-6.7-zstd-compression.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -up texinfo-6.7/info/filesys.c.omv~ texinfo-6.7/info/filesys.c ---- texinfo-6.7/info/filesys.c.omv~ 2020-01-05 02:24:32.094858726 +0100 -+++ texinfo-6.7/info/filesys.c 2020-01-05 02:25:59.789854472 +0100 -@@ -58,9 +58,11 @@ static COMPRESSION_ALIST compress_suffix - #if STRIP_DOT_EXE - { ".gz", "gunzip" }, - { ".lz", "lunzip" }, -+ { ".zst", "unzstd" }, - #else - { ".gz", "gzip -d" }, - { ".lz", "lzip -d" }, -+ { ".zst", "zstd -d" }, - #endif - { ".xz", "unxz" }, - { ".bz2", "bunzip2" }, -diff -up texinfo-6.7/install-info/install-info.c.omv~ texinfo-6.7/install-info/install-info.c ---- texinfo-6.7/install-info/install-info.c.omv~ 2020-01-05 02:20:38.837870043 +0100 -+++ texinfo-6.7/install-info/install-info.c 2020-01-05 02:24:03.029860136 +0100 -@@ -451,6 +451,16 @@ strip_info_suffix (char *fname) - len -= 4; - ret[len] = 0; - } -+ else if (len > 4 && FILENAME_CMP (ret + len - 4, ".zst") == 0) -+ { -+ len -= 4; -+ ret[len] = 0; -+ } -+ else if (len > 5 && FILENAME_CMP (ret + len - 5, ".zstd") == 0) -+ { -+ len -= 5; -+ ret[len] = 0; -+ } - #ifdef __MSDOS__ - else if (len > 4 && (FILENAME_CMP (ret + len - 4, ".inz") == 0 - || FILENAME_CMP (ret + len - 4, ".igz") == 0)) -@@ -727,6 +737,18 @@ open_possibly_compressed_file (char *fil - *opened_filename = concat (filename, ".lzma", ""); - f = fopen (*opened_filename, FOPEN_RBIN); - } -+ if (!f) -+ { -+ free (*opened_filename); -+ *opened_filename = concat (filename, ".zst", ""); -+ f = fopen (*opened_filename, FOPEN_RBIN); -+ } -+ if (!f) -+ { -+ free (*opened_filename); -+ *opened_filename = concat (filename, ".zstd", ""); -+ f = fopen (*opened_filename, FOPEN_RBIN); -+ } - #ifdef __MSDOS__ - if (!f) - { -@@ -850,6 +872,14 @@ determine_file_type: - *compression_program = "lzma"; - #endif - -+ else if (data[0] == 0x28 && data[1] == 0xb5 && data[2] == 0x2f -+ && data[3] == 0xfd) -+#ifndef STRIP_DOT_EXE -+ *compression_program = "zstd.exe"; -+#else -+ *compression_program = "zstd"; -+#endif -+ - else - *compression_program = NULL; - diff --git a/texinfo-6.8-undo-gnulib-nonnul.patch b/texinfo-6.8-undo-gnulib-nonnul.patch new file mode 100644 index 0000000..ef60038 --- /dev/null +++ b/texinfo-6.8-undo-gnulib-nonnul.patch @@ -0,0 +1,182 @@ +diff -up texinfo-6.8/gnulib/lib/cdefs.h.orig texinfo-6.8/gnulib/lib/cdefs.h +--- texinfo-6.8/gnulib/lib/cdefs.h.orig 2021-03-11 19:57:53.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/cdefs.h 2021-07-19 12:26:46.985176475 +0200 +@@ -321,15 +321,15 @@ + + /* The nonnull function attribute marks pointer parameters that + must not be NULL. */ +-#ifndef __attribute_nonnull__ ++#ifndef __nonnull + # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) +-# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) ++# define __nonnull(params) __attribute__ ((__nonnull__ params)) + # else +-# define __attribute_nonnull__(params) ++# define __nonnull(params) + # endif +-#endif +-#ifndef __nonnull +-# define __nonnull(params) __attribute_nonnull__ (params) ++#elif !defined __GLIBC__ ++# undef __nonnull ++# define __nonnull(params) _GL_ATTRIBUTE_NONNULL (params) + #endif + + /* If fortification mode, we warn about unused results of certain +diff -up texinfo-6.8/gnulib/lib/libc-config.h.orig texinfo-6.8/gnulib/lib/libc-config.h +--- texinfo-6.8/gnulib/lib/libc-config.h.orig 2021-03-11 19:57:54.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/libc-config.h 2021-07-19 12:27:58.810590975 +0200 +@@ -33,9 +33,9 @@ + #include + + /* On glibc this includes and and #defines +- _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and +- DragonFlyBSD 5.9 it includes which defines __nonnull. +- Elsewhere it is harmless. */ ++ _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it ++ includes which defines __nonnull. Elsewhere it ++ is harmless. */ + #include + + /* From glibc . */ +diff -up texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c +--- texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c.orig 2021-03-11 19:57:54.000000000 +0100 ++++ texinfo-6.8/gnulib/lib/malloc/dynarray-skeleton.c 2021-07-19 12:24:46.878419397 +0200 +@@ -192,7 +192,7 @@ DYNARRAY_NAME (free__array__) (struct DY + + /* Initialize a dynamic array object. This must be called before any + use of the object. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static void + DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) + { +@@ -202,7 +202,7 @@ DYNARRAY_NAME (init) (struct DYNARRAY_ST + } + + /* Deallocate the dynamic array and its elements. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) + { +@@ -213,7 +213,7 @@ DYNARRAY_FREE (struct DYNARRAY_STRUCT *l + } + + /* Return true if the dynamic array is in an error state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline bool + DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) + { +@@ -222,7 +222,7 @@ DYNARRAY_NAME (has_failed) (const struct + + /* Mark the dynamic array as failed. All elements are deallocated as + a side effect. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static void + DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) + { +@@ -236,7 +236,7 @@ DYNARRAY_NAME (mark_failed) (struct DYNA + + /* Return the number of elements which have been added to the dynamic + array. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline size_t + DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) + { +@@ -245,7 +245,7 @@ DYNARRAY_NAME (size) (const struct DYNAR + + /* Return a pointer to the array element at INDEX. Terminate the + process if INDEX is out of bounds. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) + { +@@ -257,7 +257,7 @@ DYNARRAY_NAME (at) (struct DYNARRAY_STRU + /* Return a pointer to the first array element, if any. For a + zero-length array, the pointer can be NULL even though the dynamic + array has not entered the failure state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) + { +@@ -267,7 +267,7 @@ DYNARRAY_NAME (begin) (struct DYNARRAY_S + /* Return a pointer one element past the last array element. For a + zero-length array, the pointer can be NULL even though the dynamic + array has not entered the failure state. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline DYNARRAY_ELEMENT * + DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) + { +@@ -294,7 +294,7 @@ DYNARRAY_NAME (add__) (struct DYNARRAY_S + /* Add ITEM at the end of the array, enlarging it by one element. + Mark *LIST as failed if the dynamic array allocation size cannot be + increased. */ +-__attribute_nonnull__ ((1)) ++__nonnull ((1)) + static inline void + DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) + { +@@ -348,8 +348,7 @@ DYNARRAY_NAME (emplace__) (struct DYNARR + /* Allocate a place for a new element in *LIST and return a pointer to + it. The pointer can be NULL if the dynamic array cannot be + enlarged due to a memory allocation failure. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) + static + /* Avoid inlining with the larger initialization code. */ + #if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) +@@ -373,7 +372,7 @@ DYNARRAY_NAME (emplace) (struct DYNARRAY + existing size, new elements are added (which can be initialized). + Otherwise, the list is truncated, and elements are freed. Return + false on memory allocation failure (and mark *LIST as failed). */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static bool + DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) + { +@@ -418,7 +417,7 @@ DYNARRAY_NAME (resize) (struct DYNARRAY_ + } + + /* Remove the last element of LIST if it is present. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) + { +@@ -435,7 +434,7 @@ DYNARRAY_NAME (remove_last) (struct DYNA + + /* Remove all elements from the list. The elements are freed, but the + list itself is not. */ +-__attribute_maybe_unused__ __attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __nonnull ((1)) + static void + DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) + { +@@ -453,8 +452,7 @@ DYNARRAY_NAME (clear) (struct DYNARRAY_S + stored in *RESULT if LIST refers to an empty list. On success, the + pointer in *RESULT is heap-allocated and must be deallocated using + free. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1, 2)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1, 2)) + static bool + DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, + DYNARRAY_FINAL_TYPE *result) +@@ -485,8 +483,7 @@ DYNARRAY_NAME (finalize) (struct DYNARRA + have a sentinel at the end). If LENGTHP is not NULL, the array + length is written to *LENGTHP. *LIST is re-initialized and can be + reused. */ +-__attribute_maybe_unused__ __attribute_warn_unused_result__ +-__attribute_nonnull__ ((1)) ++__attribute_maybe_unused__ __attribute_warn_unused_result__ __nonnull ((1)) + static DYNARRAY_ELEMENT * + DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) + { diff --git a/texinfo-7.1-make-tainted-data-safe.patch b/texinfo-7.1-make-tainted-data-safe.patch deleted file mode 100644 index aafae60..0000000 --- a/texinfo-7.1-make-tainted-data-safe.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 77c912b..0000000 --- a/texinfo-7.1-various-sast-fixes.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -up texinfo-7.1.90/info/infokey.c.orig texinfo-7.1.90/info/infokey.c ---- texinfo-7.1.90/info/infokey.c.orig 2024-10-21 14:26:11.000000000 +0200 -+++ texinfo-7.1.90/info/infokey.c 2024-11-07 12:55:41.197343929 +0100 -@@ -208,7 +208,7 @@ compile (FILE *fp, const char *filename, - int 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.90/info/session.c.orig texinfo-7.1.90/info/session.c ---- texinfo-7.1.90/info/session.c.orig 2024-10-21 14:26:11.000000000 +0200 -+++ texinfo-7.1.90/info/session.c 2024-11-07 12:59:30.401861317 +0100 -@@ -2941,7 +2941,7 @@ DECLARE_INFO_COMMAND (info_menu_sequence - static int - info_handle_pointer (const char *label, WINDOW *window) - { -- char *description; -+ char *description = NULL; - NODE *node; - - if (!strcmp (label, "Up")) -diff -up texinfo-7.1.90/info/util.c.orig texinfo-7.1.90/info/util.c -diff -up texinfo-7.1.90/install-info/install-info.c.orig texinfo-7.1.90/install-info/install-info.c diff --git a/texinfo-7.2-fix-perl-precedence-warnings.patch b/texinfo-7.2-fix-perl-precedence-warnings.patch deleted file mode 100644 index e2a29cb..0000000 --- a/texinfo-7.2-fix-perl-precedence-warnings.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up texinfo-7.2/tp/Texinfo/Convert/Converter.pm.orig texinfo-7.2/tp/Texinfo/Convert/Converter.pm ---- texinfo-7.2/tp/Texinfo/Convert/Converter.pm.orig 2024-12-19 19:31:42.000000000 +0100 -+++ texinfo-7.2/tp/Texinfo/Convert/Converter.pm 2025-08-01 10:31:55.845929864 +0200 -@@ -386,7 +386,7 @@ sub output_tree($$) - - my $fh; - my $encoded_output_file; -- if (! $output_file eq '') { -+ if ($output_file ne '') { - my $path_encoding; - ($encoded_output_file, $path_encoding) - = $self->encoded_output_file_name($output_file); -diff -up texinfo-7.2/tp/Texinfo/Convert/LaTeX.pm.orig texinfo-7.2/tp/Texinfo/Convert/LaTeX.pm ---- texinfo-7.2/tp/Texinfo/Convert/LaTeX.pm.orig 2024-12-19 19:31:42.000000000 +0100 -+++ texinfo-7.2/tp/Texinfo/Convert/LaTeX.pm 2025-08-01 10:32:57.790836873 +0200 -@@ -1085,7 +1085,7 @@ sub output($$) - - my $fh; - my $encoded_output_file; -- if (! $output_file eq '') { -+ if ($output_file ne '') { - my $path_encoding; - ($encoded_output_file, $path_encoding) - = $self->encoded_output_file_name($output_file); diff --git a/texinfo.spec b/texinfo.spec index 719db85..dff4a36 100644 --- a/texinfo.spec +++ b/texinfo.spec @@ -2,25 +2,25 @@ Summary: Tools needed to create Texinfo format documentation files Name: texinfo -Version: 7.2 -Release: 7%{?dist} -License: GPL-3.0-or-later +Version: 6.8 +Release: 4%{?dist} +License: GPLv3+ 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 -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 -# Patch3: fixes issues detected by static analysis -Patch3: texinfo-7.1-various-sast-fixes.patch +# Patch0: this is needed just for koji/mock, all tests pass fine in local build +Patch0: texinfo-6.0-disable-failing-info-test.patch +# Patch1: rhbz#1348671, because of OSTree +Patch1: texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch +# Patch2: we need to fix template fix-info-dir generates +Patch2: info-6.5-sync-fix-info-dir.patch +# Patch3: rhbz#1592433, bug in fix-info-dir --delete +Patch3: texinfo-6.5-fix-info-dir.patch # Patch4: fixes issues detected by static analysis -Patch4: texinfo-7.1-make-tainted-data-safe.patch -# Patch5: fixes Perl precedence warnings (already upstream) -Patch5: texinfo-7.2-fix-perl-precedence-warnings.patch -# Patch6: add support for zstd compression -Patch6: texinfo-6.7-zstd-compression.patch +Patch4: texinfo-6.5-covscan-fixes.patch +# Patch5: undos change done in gnulib that causes build to fail +# https://lists.gnu.org/r/bug-gnulib/2021-03/msg00066.html +Patch5: texinfo-6.8-undo-gnulib-nonnul.patch BuildRequires: make BuildRequires: gcc @@ -55,8 +55,6 @@ browser program for viewing texinfo files. Summary: Tools for formatting Texinfo documentation files using TeX Requires: texinfo = %{version}-%{release} Requires: tex(tex) tex(epsf.tex) -Requires: /usr/bin/cmp -Requires: /usr/bin/diff Requires(post): %{_bindir}/texconfig-sys Requires(postun): %{_bindir}/texconfig-sys Provides: tex-texinfo @@ -72,10 +70,7 @@ The texinfo-tex package provides tools to format Texinfo documents for printing using TeX. %prep -%setup -q -mkdir contrib -install -Dpm0755 -t contrib %{SOURCE2} -%autopatch -p1 +%autosetup -p1 %build %configure --with-external-Text-Unidecode \ @@ -85,10 +80,15 @@ install -Dpm0755 -t contrib %{SOURCE2} %make_build %install +mkdir -p ${RPM_BUILD_ROOT}/sbin + %make_install -mkdir -p %{buildroot}%{tex_texinfo} -install -p -m644 doc/texinfo.tex doc/txi-??.tex %{buildroot}%{tex_texinfo} +mkdir -p $RPM_BUILD_ROOT%{tex_texinfo} +install -p -m644 doc/texinfo.tex doc/txi-??.tex $RPM_BUILD_ROOT%{tex_texinfo} + +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 @@ -119,10 +119,7 @@ export ALL_TESTS=yes %{_bindir}/texi2any %{_bindir}/pod2texi %{_datadir}/texinfo -%{_datadir}/texi2any %{_infodir}/texinfo* -%{_infodir}/texi2any_api.info* -%{_infodir}/texi2any_internals.info* %{_mandir}/man1/makeinfo.1* %{_mandir}/man5/texinfo.5* %{_mandir}/man1/texi2any.1* @@ -152,77 +149,6 @@ export ALL_TESTS=yes %{_mandir}/man1/pdftexi2dvi.1* %changelog -* Sat Nov 29 2025 Neal Gompa - 7.2-7 -- Add patch to support zstd compressed info pages - -* Fri Aug 01 2025 Vitezslav Crhonek - 7.2-6 -- Fix FTBFS (Perl precedence warnings) - Resolves: #2385687 - -* Fri Jul 25 2025 Fedora Release Engineering - 7.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jun 25 2025 Vitezslav Crhonek - 7.2-4 -- Fix texi2dvi missing dependencies - Resolves: #2374602 - -* Tue Jan 21 2025 Vitezslav Crhonek - 7.2-3 -- Changes related to bin and sbin unify - -* Sun Jan 19 2025 Fedora Release Engineering - 7.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Jan 13 2025 Vitezslav Crhonek - 7.2-1 -- Update to texinfo-7.2 - Resolves: #2333829 - -* Tue Oct 15 2024 Vitezslav Crhonek - 7.1.1-2 -- Another batch of fixes for issues detected by static analysis - -* Mon Sep 09 2024 Vitezslav Crhonek - 7.1.1-1 -- Update to texinfo-7.1.1 - Resolves: #2310652 - -* Sat Jul 20 2024 Fedora Release Engineering - 7.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_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