Compare commits
No commits in common. "c8" and "c10s" have entirely different histories.
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
||||
SOURCES/texinfo-6.5.tar.xz
|
||||
/texinfo-7.1.tar.xz
|
||||
/texinfo-7.1.tar.xz.sig
|
||||
|
@ -1 +0,0 @@
|
||||
72a06b48862911c638787cc3307871b990a59726 SOURCES/texinfo-6.5.tar.xz
|
@ -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 <getopt.h>
|
||||
#include <regex.h>
|
||||
#include <argz.h>
|
||||
+#include <zlib.h>
|
||||
|
||||
#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)
|
@ -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 \
|
@ -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
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1
|
||||
|
||||
iF4EABEIAAYFAlm4QBsACgkQ3bxXnas3+6mlNwD/Tzn0IxHxWCII18A72dLZ0rDB
|
||||
0GtvrWV4c/wtYHSGSNEA/3iIAv2qbGreDAXAzLHKsWm5vKzFvRPeDS7GBJQg018q
|
||||
=EUkI
|
||||
-----END PGP SIGNATURE-----
|
316
fix-info-dir
Executable file
316
fix-info-dir
Executable 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
|
6
gating.yaml
Normal file
6
gating.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-10
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
38
plans/tier1.fmf
Normal file
38
plans/tier1.fmf
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
|
||||
summary: Tier1 plan for texinfo
|
||||
|
||||
discover:
|
||||
how: fmf
|
||||
url: https://pkgs.devel.redhat.com/git/tests/texinfo
|
||||
ref: master
|
||||
filter: tier:1
|
||||
|
||||
prepare:
|
||||
- how: shell
|
||||
script: |
|
||||
set -euxo pipefail
|
||||
|
||||
ENABLE_REPO_CMD="yum-config-manager --enable"
|
||||
if command -v dnf >/dev/null 2>&1; then
|
||||
ENABLE_REPO_CMD="dnf config-manager --set-enabled"
|
||||
fi
|
||||
|
||||
${ENABLE_REPO_CMD} beaker-tasks || :
|
||||
- how: shell
|
||||
script: |
|
||||
set -exuo pipefail
|
||||
|
||||
if [[ -f /etc/os-release ]]; then
|
||||
. /etc/os-release
|
||||
if [[ "${ID:-}" == "rhel" && "${VERSION_ID%%.*}" -ge 8 ]]; then
|
||||
dnf config-manager --enable rhel-CRB
|
||||
fi
|
||||
fi
|
||||
|
||||
execute:
|
||||
how: tmt
|
||||
|
||||
adjust:
|
||||
enabled: false
|
||||
when: distro == centos-stream or distro == fedora
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
||||
SHA512 (texinfo-7.1.tar.xz) = ceab03e8422d800b08c7b44e8263b0a1f35bb7758d83a81136df6f3304a14daecda98a12a282afb85406d2ca2f665b2295e10b6f4064156ea1285d80d5d355db
|
||||
SHA512 (texinfo-7.1.tar.xz.sig) = 2e2f19a783e57f425afa11871e5cdaceacb79a7bc7389eaf2c3b0e0aba0b08e8afdbdf9e939e75c773f262eb22c351b0fc745604eac76d58f484196733da5130
|
34
texinfo-6.5-covscan-fixes.patch
Normal file
34
texinfo-6.5-covscan-fixes.patch
Normal file
@ -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
|
150
texinfo-7.1-various-sast-fixes.patch
Normal file
150
texinfo-7.1-various-sast-fixes.patch
Normal file
@ -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;
|
@ -1,31 +1,29 @@
|
||||
%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: 5%{?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
|
||||
|
||||
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 +40,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 +53,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 +66,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 +86,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 +119,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 +130,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 +150,145 @@ export ALL_TESTS=yes
|
||||
%{_mandir}/man1/pdftexi2dvi.1*
|
||||
|
||||
%changelog
|
||||
* Mon Jan 17 2022 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-7
|
||||
- Fix a loop in fix-info-dir when /dev/null doesn't exist
|
||||
Resolves: #2022201
|
||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 7.1-5
|
||||
- Bump release for October 2024 mass rebuild:
|
||||
Resolves: RHEL-64018
|
||||
|
||||
* Thu Jan 09 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-6
|
||||
- Fix file mode for dir.old (fixes failing rpm -V info)
|
||||
Related: #1708912
|
||||
* Thu Aug 08 2024 Vitezslav Crhonek <vcrhonek@redhat.com> - 7.1-4
|
||||
- Fix memory/resource leaks, insufficient memory allocations and
|
||||
variable declarations without initializer
|
||||
Resolves: RHEL-43595
|
||||
|
||||
* Thu Dec 12 2019 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-5
|
||||
- Rebuild
|
||||
Resolves: #1708912
|
||||
- Enable gating on OSCI
|
||||
Resolves: #1681507
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 7.1-3
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Tue Oct 09 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-4
|
||||
* 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
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.8-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.8-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jul 20 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.8-1
|
||||
- Update to texinfo-6.8
|
||||
Resolves: #1978903
|
||||
|
||||
* Mon Jun 14 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.7-11
|
||||
- Fix install path of install-info
|
||||
|
||||
* Tue Feb 02 2021 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.7-10
|
||||
- Fix problem in shell code found by ShellCheck in test script
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.7-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.7-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Mar 16 2020 Jitka Plesnikova <jplesnik@redhat.com> - 6.7-7
|
||||
- Add BR: perl(Unicode::Normalize)
|
||||
|
||||
* Thu Mar 5 2020 Tom Callaway <spot@fedoraproject.org> - 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 <releng@fedoraproject.org> - 6.7-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Jan 24 2020 Vitezslav Crhonek <vcrhonek@redhat.com> - 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 <vcrhonek@redhat.com> - 6.7-3
|
||||
- Fix mode of dir.old
|
||||
|
||||
* Tue Oct 08 2019 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.7-2
|
||||
- Revert move of texinfo-tex files
|
||||
Resolves: #1758817
|
||||
|
||||
* Thu Sep 26 2019 Vitezslav Crhonek <vcrhonek@redhat.com> - 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 <releng@fedoraproject.org> - 6.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Mon Feb 18 2019 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.6-1
|
||||
- Update to texinfo-6.6
|
||||
Resolves: #1677911
|
||||
|
||||
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Thu Oct 04 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 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 <ignatenkobrain@fedoraproject.org> - 6.5-10
|
||||
- Drop macros.info
|
||||
|
||||
* Wed Aug 08 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-9
|
||||
- Fix issues detected by static analysis
|
||||
Resolves: #1606966
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 6.5-7
|
||||
- Perl 5.28 rebuild
|
||||
|
||||
* Thu Jun 21 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 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 <tibbs@math.uh.edu> - 6.5-5
|
||||
- Fix bug in fix-info-dir which prevented the transfiletriggerpostun script
|
||||
from working properly.
|
||||
|
||||
* Fri Mar 30 2018 Tom Callaway <spot@fedoraproject.org> - 6.5-4
|
||||
- update texinfo.tex
|
||||
|
||||
* Tue Feb 13 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.5-3
|
||||
- Implement transaction filetriggers for crating info/dir
|
Loading…
Reference in New Issue
Block a user