forked from pool/texinfo
This commit is contained in:
parent
c7f35f0a50
commit
84aa727c4e
@ -2,11 +2,11 @@ Index: texinfo-6.6/install-info/Makefile.in
|
|||||||
===================================================================
|
===================================================================
|
||||||
---
|
---
|
||||||
texinfo-6.6/install-info/Makefile.in | 2 -
|
texinfo-6.6/install-info/Makefile.in | 2 -
|
||||||
texinfo-6.6/install-info/install-info.c | 56 +++++++++++++++++++++++++++-----
|
texinfo-6.6/install-info/install-info.c | 54 ++++++++++++++++++++++++--------
|
||||||
2 files changed, 49 insertions(+), 9 deletions(-)
|
2 files changed, 42 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
--- texinfo-6.6/install-info/Makefile.in
|
--- texinfo-6.6/install-info/Makefile.in
|
||||||
+++ texinfo-6.6/install-info/Makefile.in 2019-08-27 13:50:21.423140298 +0000
|
+++ texinfo-6.6/install-info/Makefile.in 2019-09-27 08:03:19.381937177 +0000
|
||||||
@@ -218,7 +218,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
|
@@ -218,7 +218,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
PROGRAMS = $(bin_PROGRAMS)
|
PROGRAMS = $(bin_PROGRAMS)
|
||||||
am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
|
am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
|
||||||
@ -17,7 +17,7 @@ Index: texinfo-6.6/install-info/Makefile.in
|
|||||||
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
|
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
|
||||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||||
--- texinfo-6.6/install-info/install-info.c
|
--- texinfo-6.6/install-info/install-info.c
|
||||||
+++ texinfo-6.6/install-info/install-info.c 2019-08-27 13:51:57.493361483 +0000
|
+++ texinfo-6.6/install-info/install-info.c 2019-09-27 08:52:36.071070583 +0000
|
||||||
@@ -19,6 +19,7 @@
|
@@ -19,6 +19,7 @@
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
@ -26,81 +26,52 @@ Index: texinfo-6.6/install-info/Makefile.in
|
|||||||
|
|
||||||
#define TAB_WIDTH 8
|
#define TAB_WIDTH 8
|
||||||
|
|
||||||
@@ -698,34 +699,59 @@ open_possibly_compressed_file (char *fil
|
@@ -858,20 +859,33 @@ determine_file_type:
|
||||||
|
return 0;
|
||||||
|
|
||||||
*opened_filename = filename;
|
if (*compression_program)
|
||||||
f = fopen (*opened_filename, FOPEN_RBIN);
|
- { /* It's compressed, so open a pipe. */
|
||||||
+ if (!compression_program)
|
- char *command = concat (*compression_program, " -d", "");
|
||||||
+ compression_program = &local_compression_program;
|
-
|
||||||
+ *compression_program = NULL;
|
|
||||||
+ if (f)
|
|
||||||
+ {
|
+ {
|
||||||
+ nread = fread (data, sizeof (data), 1, f);
|
if (fclose (f) < 0)
|
||||||
+ if (nread == 1)
|
return 0;
|
||||||
|
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
|
||||||
|
- if (!f)
|
||||||
|
- return 0;
|
||||||
|
- f = popen (command, "r");
|
||||||
|
+ if (**compression_program == 'g' || **compression_program == 'z')
|
||||||
|
+ f = fzopen (*opened_filename, "rg");
|
||||||
|
+ if (**compression_program == 'b')
|
||||||
|
+ f = fzopen (*opened_filename, "rb");
|
||||||
|
+ if (**compression_program == 'Z')
|
||||||
|
+ f = fzopen (*opened_filename, "rZ");
|
||||||
|
+ if (**compression_program == 'l')
|
||||||
|
+ f = fzopen (*opened_filename, "rl");
|
||||||
|
+ if (**compression_program == 'x')
|
||||||
|
+ f = fzopen (*opened_filename, "rx");
|
||||||
|
if (!f)
|
||||||
|
- {
|
||||||
|
- /* Used for error message in calling code. */
|
||||||
|
- *opened_filename = command;
|
||||||
|
- return 0;
|
||||||
|
+ { /* It's compressed, so open a pipe. */
|
||||||
|
+ char *command = concat (*compression_program, " -d", "");
|
||||||
|
+
|
||||||
|
+ f = freopen (*opened_filename, FOPEN_RBIN, stdin);
|
||||||
|
+ if (!f)
|
||||||
|
+ return 0;
|
||||||
|
+ f = popen (command, "r");
|
||||||
|
+ if (!f)
|
||||||
+ {
|
+ {
|
||||||
+ if (data[0] == '\x1f' && data[1] == '\x8b')
|
+ /* Used for error message in calling code. */
|
||||||
+ *compression_program = "gzip";
|
+ *opened_filename = command;
|
||||||
+ else if (data[0] == '\x1f' && data[1] == '\x9d')
|
+ return 0;
|
||||||
+ *compression_program = "gzip";
|
|
||||||
+ else if (data[0] == '\x1f' && data[1] == '\x9e')
|
|
||||||
+ *compression_program = "gzip";
|
|
||||||
+ else if (data[0] == 'B' && data[1] == 'Z' && data[2] == 'h')
|
|
||||||
+ *compression_program = "bzip2";
|
|
||||||
+ }
|
+ }
|
||||||
+ fclose (f);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ }
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
*opened_filename = concat (filename, ".gz", "");
|
|
||||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ *compression_program = "gzip";
|
|
||||||
}
|
}
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
free (*opened_filename);
|
|
||||||
*opened_filename = concat (filename, ".xz", "");
|
|
||||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ *compression_program = "xz";
|
|
||||||
}
|
}
|
||||||
if (!f)
|
else
|
||||||
{
|
@@ -958,8 +972,22 @@ output_dirfile (char *dirfile, int dir_n
|
||||||
free (*opened_filename);
|
|
||||||
*opened_filename = concat (filename, ".bz2", "");
|
|
||||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ *compression_program = "bzip2";
|
|
||||||
}
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
free (*opened_filename);
|
|
||||||
*opened_filename = concat (filename, ".lz", "");
|
|
||||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ *compression_program = "lzma";
|
|
||||||
}
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
free (*opened_filename);
|
|
||||||
*opened_filename = concat (filename, ".lzma", "");
|
|
||||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
|
||||||
+ *compression_program = "lzma";
|
|
||||||
}
|
|
||||||
#ifdef __MSDOS__
|
|
||||||
if (!f)
|
|
||||||
@@ -850,7 +876,7 @@ determine_file_type:
|
|
||||||
*compression_program = "lzma";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- else
|
|
||||||
+ else if (!*compression_program)
|
|
||||||
*compression_program = NULL;
|
|
||||||
|
|
||||||
/* Seek back over the magic bytes. */
|
|
||||||
@@ -958,8 +984,22 @@ output_dirfile (char *dirfile, int dir_n
|
|
||||||
|
|
||||||
if (compression_program)
|
if (compression_program)
|
||||||
{
|
{
|
||||||
|
@ -1,3 +1,33 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 27 14:29:01 UTC 2019 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
- use filetrigger instead of transfiletrigger
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 27 10:35:46 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
- Temporary disable %transfiletriggerin/%transfiletriggerun and
|
||||||
|
reintroduce %post/%preun with %install_info/%install_info_delete
|
||||||
|
as libzypp currentyl can not handle first case (boo#1041742)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 27 08:56:50 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
- Fix patch texinfo-zlib.patch to enable open of compressed info
|
||||||
|
files without using a compressor utility (boo#1152105)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 26 12:41:40 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
- For bug boo#1152105 split of the info pages of package info to be
|
||||||
|
able to preinstall gzip before/with first install-info call
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 26 11:53:33 UTC 2019 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
- implement file trigger for installing and removing info pages
|
||||||
|
(boo#1152105)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Aug 28 08:24:13 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
Wed Aug 28 08:24:13 UTC 2019 - Dr. Werner Fink <werner@suse.de>
|
||||||
|
|
||||||
|
76
texinfo.spec
76
texinfo.spec
@ -51,8 +51,6 @@ Requires: texlive-makeindex
|
|||||||
Requires: texlive-pdftex
|
Requires: texlive-pdftex
|
||||||
Requires: texlive-tex
|
Requires: texlive-tex
|
||||||
Requires: texlive-texinfo
|
Requires: texlive-texinfo
|
||||||
Requires(post): %{install_info_prereq}
|
|
||||||
Requires(preun): %{install_info_prereq}
|
|
||||||
Recommends: texi2html
|
Recommends: texi2html
|
||||||
Recommends: texi2roff
|
Recommends: texi2roff
|
||||||
|
|
||||||
@ -68,6 +66,7 @@ makeinfo tool.
|
|||||||
%package -n info
|
%package -n info
|
||||||
Summary: A Stand-Alone Terminal-Based Info Browser
|
Summary: A Stand-Alone Terminal-Based Info Browser
|
||||||
Group: Productivity/Publishing/Texinfo
|
Group: Productivity/Publishing/Texinfo
|
||||||
|
Requires: gzip
|
||||||
|
|
||||||
%description -n info
|
%description -n info
|
||||||
Info is a terminal-based program for reading documentation of computer
|
Info is a terminal-based program for reading documentation of computer
|
||||||
@ -75,6 +74,18 @@ programs in the Info format. The GNU Project distributes most of its
|
|||||||
on-line manuals in the Info format, so you need a program called "Info
|
on-line manuals in the Info format, so you need a program called "Info
|
||||||
reader" to read the manuals.
|
reader" to read the manuals.
|
||||||
|
|
||||||
|
%package -n info-std
|
||||||
|
Summary: The info pages of the Info Browser
|
||||||
|
Group: Productivity/Publishing/Texinfo
|
||||||
|
Supplements: packageand(info:patterns-base-documentation)
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description -n info-std
|
||||||
|
Info is a terminal-based program for reading documentation of computer
|
||||||
|
programs in the Info format. The GNU Project distributes most of its
|
||||||
|
on-line manuals in the Info format, so you need a program called "Info
|
||||||
|
reader" to read the manuals.
|
||||||
|
|
||||||
%package -n makeinfo
|
%package -n makeinfo
|
||||||
Summary: Translator for converting texinfo documents to info format
|
Summary: Translator for converting texinfo documents to info format
|
||||||
# /usr/share/texinfo/Texinfo/Convert/NodeNameNormalization.pm uses Text::Unidecode
|
# /usr/share/texinfo/Texinfo/Convert/NodeNameNormalization.pm uses Text::Unidecode
|
||||||
@ -91,7 +102,7 @@ or standalone GNU Info.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .p1
|
%patch1 -p1 -b .zio
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -130,17 +141,51 @@ LANG=en_GB.UTF-8
|
|||||||
export LANG
|
export LANG
|
||||||
make %{?_smp_mflags} check
|
make %{?_smp_mflags} check
|
||||||
|
|
||||||
%post
|
%filetriggerin -n info -p <lua> -- %{_infodir}
|
||||||
%install_info --info-dir=%{_infodir} %{_infodir}/texinfo.info%{ext_info}
|
-- TODO: replace with rpm.execute after rpm 4.15
|
||||||
|
function execute(path, ...)
|
||||||
|
local pid = posix.fork()
|
||||||
|
if pid == 0 then
|
||||||
|
posix.exec(path, ...)
|
||||||
|
io.write(path, ": exec failed: ", posix.errno(), "\n")
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
if not pid then
|
||||||
|
error(path .. ": fork failed: " .. posix.errno() .. "\n")
|
||||||
|
end
|
||||||
|
posix.wait(pid)
|
||||||
|
end
|
||||||
|
--
|
||||||
|
file = rpm.next_file()
|
||||||
|
while file do
|
||||||
|
if string.match(file, "%%.info%%.gz$") then
|
||||||
|
execute("/usr/bin/install-info", "--info-dir=%{_infodir}", file)
|
||||||
|
end
|
||||||
|
file = rpm.next_file()
|
||||||
|
end
|
||||||
|
|
||||||
%preun
|
%filetriggerun -n info -p <lua> -- %{_infodir}
|
||||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/texinfo.info%{ext_info}
|
-- TODO: replace with rpm.execute after rpm 4.15
|
||||||
|
function execute(path, ...)
|
||||||
%post -n info
|
local pid = posix.fork()
|
||||||
%install_info --info-dir=%{_infodir} %{_infodir}/info-stnd.info%{ext_info}
|
if pid == 0 then
|
||||||
|
posix.exec(path, ...)
|
||||||
%preun -n info
|
io.write(path, ": exec failed: ", posix.errno(), "\n")
|
||||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/info-stnd.info%{ext_info}
|
os.exit(1)
|
||||||
|
end
|
||||||
|
if not pid then
|
||||||
|
error(path .. ": fork failed: " .. posix.errno() .. "\n")
|
||||||
|
end
|
||||||
|
posix.wait(pid)
|
||||||
|
end
|
||||||
|
--
|
||||||
|
file = rpm.next_file()
|
||||||
|
while file do
|
||||||
|
if string.match(file, "%%.info%%.gz$") then
|
||||||
|
execute("/usr/bin/install-info", "--quiet", "--delete", "--info-dir=%{_infodir}", file)
|
||||||
|
end
|
||||||
|
file = rpm.next_file()
|
||||||
|
end
|
||||||
|
|
||||||
%files -f %{name}_document.lang
|
%files -f %{name}_document.lang
|
||||||
%defattr(-,root,root,0755)
|
%defattr(-,root,root,0755)
|
||||||
@ -177,9 +222,12 @@ make %{?_smp_mflags} check
|
|||||||
/sbin/install-info
|
/sbin/install-info
|
||||||
%{_bindir}/install-info
|
%{_bindir}/install-info
|
||||||
%{_bindir}/info
|
%{_bindir}/info
|
||||||
%{_infodir}/info-stnd.info%{?ext_info}
|
|
||||||
%{_mandir}/man1/info.1%{?ext_man}
|
%{_mandir}/man1/info.1%{?ext_man}
|
||||||
%{_mandir}/man1/install-info.1%{?ext_man}
|
%{_mandir}/man1/install-info.1%{?ext_man}
|
||||||
%{_mandir}/man5/info.5%{?ext_man}
|
%{_mandir}/man5/info.5%{?ext_man}
|
||||||
|
|
||||||
|
%files -n info-std
|
||||||
|
%defattr(-,root,root,0755)
|
||||||
|
%{_infodir}/info-stnd.info%{?ext_info}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user