Compare commits

..

20 commits

Author SHA1 Message Date
Neal Gompa
2c26ac87e6 Add patch to support zstd compressed info pages 2025-11-29 00:39:21 -05:00
Vitezslav Crhonek
1e6c555686 Fix FTBFS 2025-08-01 10:54:28 +02:00
Fedora Release Engineering
2b9718590d Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:13:48 +00:00
Vitezslav Crhonek
508f143279 Fix texi2dvi missing dependencies 2025-06-25 10:47:47 +02:00
Vitezslav Crhonek
e1f18ab483 Changes related to bin and sbin unify 2025-01-21 14:29:06 +01:00
Fedora Release Engineering
dffc9f353a Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:40:20 +00:00
Vitezslav Crhonek
55682634ce Update to texinfo-7.2
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2025-01-13 09:36:02 +01:00
Vitezslav Crhonek
2e1f29c432 Fix issues detected by static analysis
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2024-10-15 09:22:51 +02:00
Vitezslav Crhonek
04632db8b9 Update to texinfo-7.1.1
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2024-09-09 11:58:54 +02:00
Fedora Release Engineering
a99e323a22 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 07:19:47 +00:00
Fedora Release Engineering
e43e3b3dd9 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 05:55:57 +00:00
Vitezslav Crhonek
56707e49b6 Update to texinfo-7.1
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-10-24 09:22:23 +02:00
Fedora Release Engineering
498fe42b82 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 03:30:35 +00:00
Vitezslav Crhonek
949e52d6f6 SPDX migration
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-05-31 14:33:19 +02:00
Vitezslav Crhonek
798247d0b7 Update to texinfo-7.0.3
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-03-30 09:14:23 +02:00
Vitezslav Crhonek
7c044e6540 Fix possible use of an undefined value as an ARRAY reference in ParserNonXS.pm 2023-02-22 14:58:14 +01:00
Vitezslav Crhonek
edde67cf11 Update to texinfo-7.0.2
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2023-01-23 14:05:00 +01:00
Fedora Release Engineering
8f66a00371 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 04:55:18 +00:00
Vitezslav Crhonek
330d41343c Update to texinfo-7.0.1
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2022-12-01 12:59:29 +01:00
Vitezslav Crhonek
0878f5c198 Update to texinfo-7.0
Signed-off-by: Vitezslav Crhonek <vcrhonek@redhat.com>
2022-11-18 10:08:31 +01:00
12 changed files with 550 additions and 323 deletions

6
.gitignore vendored
View file

@ -1,2 +1,4 @@
/texinfo-6.8.tar.xz
/texinfo-6.8.tar.xz.sig
/texinfo-7.1.1.tar.xz
/texinfo-7.1.1.tar.xz.sig
/texinfo-7.2.tar.xz
/texinfo-7.2.tar.xz.sig

316
fix-info-dir Executable file
View file

@ -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<<VersionEOF
fix-info-dir (GNU Texinfo) $VERSION
Copyright (C) 1998 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.
Author: Richard L. Hawes
VersionEOF
exit;;
--help)
cat<<HelpEndOfFile
Usage: fix-info-dir [OPTION]... [INFO_DIR/[DIR_FILE]] [SKELETON]
It detects and inserts missing menu items into the info dir file.
The info dir must be the current directory.
Options:
-c, --create create a new info node
-d, --delete delete invalid menu items (ignore missing menu items)
--debug print debug information to standard error path
--help print this help message and exit
--version print current version and exit
Backup of the info node has a '.old' suffix added. This is a shell script.
Environment Variables: TMPDIR
Email bug reports to bug-texinfo@gnu.org.
HelpEndOfFile
exit;;
[-+]*) echo "$0:$LINENO: \"$1\" is not a valid option">&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<<DIR_FILE_END_OF_FILE
This is the file .../info/$DIR_FILE, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is ($DIR_FILE)Top.

File: $DIR_FILE Node: Top This is the top of the INFO tree
This (the Directory node) gives a menu of major topics.
Typing "q" exits, "?" lists all Info commands, "d" returns here,
"h" gives a primer for first-timers,
"mEmacs<Return>" 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

View file

@ -1,2 +1,2 @@
SHA512 (texinfo-6.8.tar.xz) = 0ff9290b14e4d83e32b889cfa24e6d065f98b2a764daf6b92c6c895fddbb35258398da6257c113220d5a4d886f7b54b09c4b117ca5eacfee6797f9bffde0f909
SHA512 (texinfo-6.8.tar.xz.sig) = 3b41ddf6b5a04c7f5fe1b4708a76f96b042cc3da0c786a2858d16c3db62d5506cc56e66199f69df92a6f039d42a8d670455f24f4c94056a9c0f500dfad51fabf
SHA512 (texinfo-7.2.tar.xz) = 8e67337ae12a552fc620c43725507a4978710ea6630e98b0f5e98eb3f79a90e191dde5225699aa6217c26f171d277461f76150f0459cd07b40c3234d2f3d89bf
SHA512 (texinfo-7.2.tar.xz.sig) = fcb5bcf655e16f8994b33242516cff7f5dc6684555c889fee4a4e5b01cbc9c8163d6ea5c77722b2bb8d6f65120650de4daff027bee135d1c29f82316211d8fb4

View file

@ -1,25 +0,0 @@
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 \

View file

@ -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

View file

@ -1,45 +0,0 @@
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);
}
}

View file

@ -0,0 +1,69 @@
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;

View file

@ -1,182 +0,0 @@
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 <config.h>
/* On glibc this includes <features.h> and <sys/cdefs.h> and #defines
- _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and
- DragonFlyBSD 5.9 it includes <sys/cdefs.h> which defines __nonnull.
- Elsewhere it is harmless. */
+ _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it
+ includes <sys/cdefs.h> which defines __nonnull. Elsewhere it
+ is harmless. */
#include <errno.h>
/* From glibc <errno.h>. */
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)
{

View file

@ -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')
{

View file

@ -0,0 +1,26 @@
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

View file

@ -0,0 +1,24 @@
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);

View file

@ -2,25 +2,25 @@
Summary: Tools needed to create Texinfo format documentation files
Name: texinfo
Version: 6.8
Release: 4%{?dist}
License: GPLv3+
Version: 7.2
Release: 7%{?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
# 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
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
# Patch4: fixes issues detected by static analysis
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
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
BuildRequires: make
BuildRequires: gcc
@ -55,6 +55,8 @@ 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
@ -70,7 +72,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 \
@ -80,15 +85,10 @@ for printing using TeX.
%make_build
%install
mkdir -p ${RPM_BUILD_ROOT}/sbin
%make_install
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}
mkdir -p %{buildroot}%{tex_texinfo}
install -p -m644 doc/texinfo.tex doc/txi-??.tex %{buildroot}%{tex_texinfo}
install -Dpm0755 -t %{buildroot}%{_sbindir} contrib/fix-info-dir
@ -119,7 +119,10 @@ 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*
@ -149,6 +152,77 @@ export ALL_TESTS=yes
%{_mandir}/man1/pdftexi2dvi.1*
%changelog
* Sat Nov 29 2025 Neal Gompa <ngompa@fedoraproject.org> - 7.2-7
- Add patch to support zstd compressed info pages
* Fri Aug 01 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.2-6
- Fix FTBFS (Perl precedence warnings)
Resolves: #2385687
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jun 25 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.2-4
- Fix texi2dvi missing dependencies
Resolves: #2374602
* Tue Jan 21 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.2-3
- Changes related to bin and sbin unify
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Jan 13 2025 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.2-1
- Update to texinfo-7.2
Resolves: #2333829
* Tue Oct 15 2024 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.1.1-2
- Another batch of fixes for issues detected by static analysis
* Mon Sep 09 2024 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.1.1-1
- Update to texinfo-7.1.1
Resolves: #2310652
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Oct 24 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.1-1
- Update to texinfo-7.1
Resolves: #2244846
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed May 31 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.0.3-2
- SPDX migration
* Thu Mar 30 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.0.3-1
- Update to texinfo-7.0.3
Resolves: #2181837
* Wed Feb 22 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 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 <vcrhonek@redhat.com> - 7.0.2-1
- Update to texinfo-7.0.2
Resolves: #2162979
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Dec 01 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.0.1-1
- Update to texinfo-7.0.1
Resolves: #2149772
* Fri Nov 18 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.0-1
- Update to texinfo-7.0
Resolves: #2140872
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild