Compare commits
No commits in common. "c8s" and "c10s" have entirely different histories.
18
.gitignore
vendored
18
.gitignore
vendored
@ -1,2 +1,20 @@
|
|||||||
/man-db-2.7.5.tar.xz
|
/man-db-2.7.5.tar.xz
|
||||||
/man-db-2.7.6.1.tar.xz
|
/man-db-2.7.6.1.tar.xz
|
||||||
|
/man-db-2.8.3.tar.xz
|
||||||
|
/man-db-2.8.4.tar.xz
|
||||||
|
/man-db-2.8.6.1.tar.xz
|
||||||
|
/man-db-2.8.7.tar.xz
|
||||||
|
/man-db-2.9.0.tar.xz
|
||||||
|
/man-db-2.9.1.tar.xz
|
||||||
|
/man-db-2.9.2.tar.xz
|
||||||
|
/man-db-2.9.3.tar.xz
|
||||||
|
/man-db-2.9.4.tar.xz
|
||||||
|
/man-db-2.10.0.tar.xz
|
||||||
|
/man-db-2.10.1.tar.xz
|
||||||
|
/man-db-2.10.2.tar.xz
|
||||||
|
/man-db-2.11.0.tar.xz
|
||||||
|
/man-db-2.11.1.tar.xz
|
||||||
|
/man-db-2.11.2.tar.xz
|
||||||
|
/man-db-2.12.0.tar.xz
|
||||||
|
/man-db-2.12.0.tar.xz.asc
|
||||||
|
/0xac0a4ff12611b6fccf01c111393587d97d86500b
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-8
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
|
209
man-db-2.11.2-groff-1.23.patch
Normal file
209
man-db-2.11.2-groff-1.23.patch
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
From bbf7701c4f8269090a12791f3c9bde80d45c8765 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
|
||||||
|
Date: Wed, 19 Jul 2023 01:58:07 -0500
|
||||||
|
Subject: [PATCH 17/30] Improve lexgrog(1) portability
|
||||||
|
|
||||||
|
This fixes a test failure in man1/lexgrog.1 when building against groff
|
||||||
|
1.23.0.
|
||||||
|
|
||||||
|
Borrow code from groff 1.23.0's "an-ext.tmac" file (licensed as
|
||||||
|
permissively as a decadent society) to implement `EX` and `EE` extension
|
||||||
|
macros from Ninth Edition Research Unix (1986) (and groff) to get
|
||||||
|
monospaced code displays in a more portable way. There is no way to
|
||||||
|
portably change font families in pure man(7) itself, and the names of
|
||||||
|
troff typefaces aren't very portable either. There is also no portable
|
||||||
|
way to test for the _existence_ of a font. FTW.
|
||||||
|
|
||||||
|
("Portable" here largely means "to AT&T device-independent troff
|
||||||
|
implementations", for which there has been no official source since the
|
||||||
|
mid-1990s.[1] Several AT&T Unix System V licensees/descendants have
|
||||||
|
continued to ship their own vendored versions, but these have enjoyed
|
||||||
|
little or no development for the past 3 decades.)
|
||||||
|
|
||||||
|
* Define a string `mC` to store the name of a presumed monospaced roman
|
||||||
|
typeface. Use "CW", which is portable to AT&T device-independent
|
||||||
|
troff of the early 1980s before it occurred to anyone that Courier
|
||||||
|
might someday be available in italic and bold styles (and budget
|
||||||
|
available to purchase them).
|
||||||
|
* Define `mC` as "CR" if using a typesetting device and the formatter is
|
||||||
|
groff, or claims groff compatibility by the setting the `.g` register.
|
||||||
|
This is reasonably portable to modern implementations given
|
||||||
|
traditional troff font naming practices and the pervasive influence of
|
||||||
|
Adobe Software and the "base fonts" of its PostScript and PDF
|
||||||
|
specifications.
|
||||||
|
* If not typesetting (i.e., if using nroff), define `mC` as "R", which
|
||||||
|
is certain to be available.
|
||||||
|
* Define `EX` and `EE` macros as groff does, if the formatter does not
|
||||||
|
set the `.g` register.
|
||||||
|
* Migrate from `ft CW` and `nf` requests to `EX` macro calls.
|
||||||
|
* Migrate from `ft P` and `fi` requests to `EE` macro calls.
|
||||||
|
* Replace an inline use of `\f(CW` with a change to inline bold. There
|
||||||
|
is to date no portable way to inline a font family change.
|
||||||
|
|
||||||
|
Test passes now. Tested as-is and with the `EX` and `EE` macro
|
||||||
|
definitions forcibly enabled.
|
||||||
|
|
||||||
|
[1] https://groups.google.com/g/comp.text/c/COkqrii4W0E/m/7HarA8Ha2dAJ
|
||||||
|
---
|
||||||
|
man/man1/lexgrog.man1 | 57 ++++++++++++++++++++++++++++++++-----------
|
||||||
|
1 file changed, 43 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/man/man1/lexgrog.man1 b/man/man1/lexgrog.man1
|
||||||
|
index 37b9d287..f9f708f8 100644
|
||||||
|
--- a/man/man1/lexgrog.man1
|
||||||
|
+++ b/man/man1/lexgrog.man1
|
||||||
|
@@ -5,6 +5,41 @@
|
||||||
|
.\" You may distribute under the terms of the GNU General Public
|
||||||
|
.\" License as specified in the file docs/COPYING.GPLv2 that comes with the
|
||||||
|
.\" man-db distribution.
|
||||||
|
+.\"
|
||||||
|
+.ds mC CW
|
||||||
|
+.if t .if \n(.g .ds mC CR
|
||||||
|
+.if n .ds mC R
|
||||||
|
+.
|
||||||
|
+.nr mE 0 \" in an example (EX/EE)?
|
||||||
|
+.
|
||||||
|
+.if \n(.g \{\
|
||||||
|
+.de EX
|
||||||
|
+. br
|
||||||
|
+. if !\\n(mE \{\
|
||||||
|
+. nr mF \\n(.f
|
||||||
|
+. nr mP \\n(PD
|
||||||
|
+. nr PD 1v
|
||||||
|
+. nf
|
||||||
|
+. ft \\*(mC
|
||||||
|
+. nr mE 1
|
||||||
|
+. \}
|
||||||
|
+..
|
||||||
|
+.\}
|
||||||
|
+.
|
||||||
|
+.
|
||||||
|
+.\" End example.
|
||||||
|
+.if \n(.g \{\
|
||||||
|
+.de EE
|
||||||
|
+. br
|
||||||
|
+. if \\n(mE \{\
|
||||||
|
+. ft \\n(mF
|
||||||
|
+. nr PD \\n(mP
|
||||||
|
+. fi
|
||||||
|
+. nr mE 0
|
||||||
|
+. \}
|
||||||
|
+..
|
||||||
|
+.\}
|
||||||
|
+.
|
||||||
|
.pc
|
||||||
|
.TH LEXGROG 1 "%date%" "%version%" "Manual pager utils"
|
||||||
|
.SH NAME
|
||||||
|
@@ -133,12 +168,10 @@ macro set, a correct
|
||||||
|
section looks something like this:
|
||||||
|
.PP
|
||||||
|
.RS
|
||||||
|
-.ft CW
|
||||||
|
-.nf
|
||||||
|
+.EX
|
||||||
|
\&.SH NAME
|
||||||
|
foo \e\- program to do something
|
||||||
|
-.fi
|
||||||
|
-.ft P
|
||||||
|
+.EE
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Some manual pagers require the \(oq\e\-\(cq to be exactly as shown;
|
||||||
|
@@ -157,18 +190,16 @@ If several features with different descriptions are being documented in the
|
||||||
|
same manual page, the following form is therefore used:
|
||||||
|
.PP
|
||||||
|
.RS
|
||||||
|
-.ft CW
|
||||||
|
-.nf
|
||||||
|
+.EX
|
||||||
|
\&.SH NAME
|
||||||
|
foo, bar \e\- programs to do something
|
||||||
|
\&.br
|
||||||
|
baz \e\- program to do nothing
|
||||||
|
-.fi
|
||||||
|
-.ft P
|
||||||
|
+.EE
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
-(A macro which starts a new paragraph, like \f(CW.PP\fP, may be used instead
|
||||||
|
-of the break macro \f(CW.br\fP.)
|
||||||
|
+(A macro which starts a new paragraph, like \fB.PP\fP, may be used instead
|
||||||
|
+of the break macro \fB.br\fP.)
|
||||||
|
.PP
|
||||||
|
When using the BSD-derived
|
||||||
|
.I mdoc
|
||||||
|
@@ -177,13 +208,11 @@ macro set, a correct
|
||||||
|
section looks something like this:
|
||||||
|
.PP
|
||||||
|
.RS
|
||||||
|
-.ft CW
|
||||||
|
-.nf
|
||||||
|
+.EX
|
||||||
|
\&.Sh NAME
|
||||||
|
\&.Nm foo
|
||||||
|
\&.Nd program to do something
|
||||||
|
-.fi
|
||||||
|
-.ft P
|
||||||
|
+.EE
|
||||||
|
.RE
|
||||||
|
|
||||||
|
There are several common reasons why whatis parsing fails.
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
||||||
|
From 043c3cb83ce179e4c49528742df24b3b53923c4d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Colin Watson <cjwatson@debian.org>
|
||||||
|
Date: Wed, 19 Jul 2023 23:14:20 +0100
|
||||||
|
Subject: [PATCH 18/30] Avoid translation fallout from lexgrog(1) fix
|
||||||
|
|
||||||
|
* man/man1/lexgrog.man1: Protect `.ds mC CW` with `.if !'po4a'hide'`, to
|
||||||
|
avoid "CW" showing up as a string for translation.
|
||||||
|
---
|
||||||
|
man/man1/lexgrog.man1 | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/man1/lexgrog.man1 b/man/man1/lexgrog.man1
|
||||||
|
index f9f708f8..5a5f4206 100644
|
||||||
|
--- a/man/man1/lexgrog.man1
|
||||||
|
+++ b/man/man1/lexgrog.man1
|
||||||
|
@@ -6,7 +6,7 @@
|
||||||
|
.\" License as specified in the file docs/COPYING.GPLv2 that comes with the
|
||||||
|
.\" man-db distribution.
|
||||||
|
.\"
|
||||||
|
-.ds mC CW
|
||||||
|
+.if !'po4a'hide' .ds mC CW
|
||||||
|
.if t .if \n(.g .ds mC CR
|
||||||
|
.if n .ds mC R
|
||||||
|
.
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
||||||
|
From b12ffb9df7a6a8956b08206c36be70fac78508bd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Colin Watson <cjwatson@debian.org>
|
||||||
|
Date: Thu, 20 Jul 2023 00:18:59 +0100
|
||||||
|
Subject: [PATCH 19/30] Update warning regex for groff 1.23.0
|
||||||
|
|
||||||
|
Part of https://gitlab.com/man-db/man-db/-/issues/25.
|
||||||
|
|
||||||
|
* man/check-man: groff 1.23.0 says "cannot break line" rather than
|
||||||
|
"can't break line"; update regular expression.
|
||||||
|
---
|
||||||
|
man/check-man | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/check-man b/man/check-man
|
||||||
|
index a58b7f9d..f8985a0d 100755
|
||||||
|
--- a/man/check-man
|
||||||
|
+++ b/man/check-man
|
||||||
|
@@ -31,7 +31,7 @@ errors="$(LC_ALL=C MANWIDTH=80 MAN_KEEP_FORMATTING=1 "$top_builddir/libtool" \
|
||||||
|
# Indeed, even for other languages we're going to get "cannot adjust line"
|
||||||
|
# if %manpath_config_file% expands to something long. Hmm. We'll just ignore
|
||||||
|
# this across the board for now.
|
||||||
|
-errors="$(echo "$errors" | $EGREP -v "(cannot adjust line|can't break line)")" || true
|
||||||
|
+errors="$(echo "$errors" | $EGREP -v "(cannot adjust line|(can't|cannot) break line)")" || true
|
||||||
|
|
||||||
|
if [ "$code" != 0 ]; then
|
||||||
|
echo "man -E UTF-8 -l $1 failed with exit status $code and error output:"
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
From b872ee2e8ba470ed869db7dcf37eeb96563a62fa Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
|
|
||||||
Date: Thu, 19 Jan 2017 14:06:30 +0100
|
|
||||||
Subject: [PATCH] Set owner of man cache to root instead of man
|
|
||||||
|
|
||||||
---
|
|
||||||
init/systemd/man-db.conf | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/init/systemd/man-db.conf b/init/systemd/man-db.conf
|
|
||||||
index 1eb40ce..21936d5 100644
|
|
||||||
--- a/init/systemd/man-db.conf
|
|
||||||
+++ b/init/systemd/man-db.conf
|
|
||||||
@@ -1 +1 @@
|
|
||||||
-d /var/cache/man 0755 man man 1w
|
|
||||||
+d /var/cache/man 0755 root root 1w
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
|||||||
diff --git a/gnulib/lib/getopt.c b/gnulib/lib/getopt.c
|
|
||||||
index 7d950af..fa30f13 100644
|
|
||||||
--- a/gnulib/lib/getopt.c
|
|
||||||
+++ b/gnulib/lib/getopt.c
|
|
||||||
@@ -487,7 +487,15 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
|
|
||||||
const struct option *p;
|
|
||||||
struct option_list *next;
|
|
||||||
} *ambig_list = NULL;
|
|
||||||
+# define free_option_list(l) \
|
|
||||||
+ while (l != NULL) \
|
|
||||||
+ { \
|
|
||||||
+ struct option_list *pn = l->next; \
|
|
||||||
+ free (l); \
|
|
||||||
+ l = pn; \
|
|
||||||
+ }
|
|
||||||
int exact = 0;
|
|
||||||
+ int ambig = 0;
|
|
||||||
int indfound = -1;
|
|
||||||
int option_index;
|
|
||||||
|
|
||||||
@@ -521,15 +529,25 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
|
|
||||||
{
|
|
||||||
/* Second or later nonexact match found. */
|
|
||||||
struct option_list *newp = malloc (sizeof (*newp));
|
|
||||||
- newp->p = p;
|
|
||||||
- newp->next = ambig_list;
|
|
||||||
- ambig_list = newp;
|
|
||||||
+ if (newp == NULL)
|
|
||||||
+ {
|
|
||||||
+ ambig = 1; /* Use simpler fallback message. */
|
|
||||||
+ free_option_list (ambig_list);
|
|
||||||
+ ambig_list = NULL;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ newp->p = p;
|
|
||||||
+ newp->next = ambig_list;
|
|
||||||
+ ambig_list = newp;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (ambig_list != NULL && !exact)
|
|
||||||
+ if ((ambig || ambig_list) && !exact)
|
|
||||||
{
|
|
||||||
- if (print_errors)
|
|
||||||
+ if (print_errors && ambig_list)
|
|
||||||
{
|
|
||||||
struct option_list first;
|
|
||||||
first.p = pfound;
|
|
||||||
@@ -585,18 +603,20 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
|
|
||||||
fputc ('\n', stderr);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
+ else if (print_errors && ambig)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr,
|
|
||||||
+ _("%s: option '%s' is ambiguous\n"),
|
|
||||||
+ argv[0], argv[d->optind]);
|
|
||||||
+ }
|
|
||||||
d->__nextchar += strlen (d->__nextchar);
|
|
||||||
d->optind++;
|
|
||||||
d->optopt = 0;
|
|
||||||
+ free_option_list (ambig_list);
|
|
||||||
return '?';
|
|
||||||
}
|
|
||||||
|
|
||||||
- while (ambig_list != NULL)
|
|
||||||
- {
|
|
||||||
- struct option_list *pn = ambig_list->next;
|
|
||||||
- free (ambig_list);
|
|
||||||
- ambig_list = pn;
|
|
||||||
- }
|
|
||||||
+ free_option_list (ambig_list);
|
|
||||||
|
|
||||||
if (pfound != NULL)
|
|
||||||
{
|
|
||||||
diff --git a/lib/decompress.c b/lib/decompress.c
|
|
||||||
index a176a9d..2be532f 100644
|
|
||||||
--- a/lib/decompress.c
|
|
||||||
+++ b/lib/decompress.c
|
|
||||||
@@ -48,11 +48,18 @@
|
|
||||||
static void decompress_zlib (void *data ATTRIBUTE_UNUSED)
|
|
||||||
{
|
|
||||||
gzFile zlibfile;
|
|
||||||
+ int fd;
|
|
||||||
|
|
||||||
- zlibfile = gzdopen (dup (STDIN_FILENO), "r");
|
|
||||||
- if (!zlibfile)
|
|
||||||
+ fd = dup (STDIN_FILENO);
|
|
||||||
+ if (fd < 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
+ zlibfile = gzdopen (fd, "r");
|
|
||||||
+ if (!zlibfile) {
|
|
||||||
+ close (fd);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
for (;;) {
|
|
||||||
char buffer[4096];
|
|
||||||
int r = gzread (zlibfile, buffer, 4096);
|
|
||||||
diff --git a/lib/encodings.c b/lib/encodings.c
|
|
||||||
index d982827..ec8fb6b 100644
|
|
||||||
--- a/lib/encodings.c
|
|
||||||
+++ b/lib/encodings.c
|
|
||||||
@@ -605,8 +605,10 @@ char *find_charset_locale (const char *charset)
|
|
||||||
if (setlocale (LC_CTYPE, locale)) {
|
|
||||||
free (encoding);
|
|
||||||
goto out;
|
|
||||||
- } else
|
|
||||||
+ } else {
|
|
||||||
+ free (locale);
|
|
||||||
locale = NULL;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
free (encoding);
|
|
||||||
}
|
|
||||||
diff --git a/src/man.c b/src/man.c
|
|
||||||
index cb0930b..12dca6e 100644
|
|
||||||
--- a/src/man.c
|
|
||||||
+++ b/src/man.c
|
|
||||||
@@ -1404,6 +1404,7 @@ static pipeline *make_roff_command (const char *dir, const char *file,
|
|
||||||
pipeline_command (p, cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ free (fmt_prog);
|
|
||||||
free (page_encoding);
|
|
||||||
free (raw_pp_string);
|
|
||||||
return p;
|
|
||||||
diff --git a/src/mandb.c b/src/mandb.c
|
|
||||||
index 550af8f..7ae0d02 100644
|
|
||||||
--- a/src/mandb.c
|
|
||||||
+++ b/src/mandb.c
|
|
||||||
@@ -555,7 +555,7 @@ static int process_manpath (const char *manpath, int global_manpath,
|
|
||||||
struct tried_catdirs_entry *tried;
|
|
||||||
struct stat st;
|
|
||||||
int run_mandb = 0;
|
|
||||||
- struct dbpaths *dbpaths;
|
|
||||||
+ struct dbpaths *dbpaths = NULL;
|
|
||||||
int amount = 0;
|
|
||||||
|
|
||||||
if (global_manpath) { /* system db */
|
|
||||||
@@ -571,8 +571,10 @@ static int process_manpath (const char *manpath, int global_manpath,
|
|
||||||
tried->seen = 0;
|
|
||||||
hashtable_install (tried_catdirs, catpath, strlen (catpath), tried);
|
|
||||||
|
|
||||||
- if (stat (manpath, &st) < 0 || !S_ISDIR (st.st_mode))
|
|
||||||
- return 0;
|
|
||||||
+ if (stat (manpath, &st) < 0 || !S_ISDIR (st.st_mode)) {
|
|
||||||
+ amount = 0;
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
tried->seen = 1;
|
|
||||||
|
|
||||||
if (single_filename) {
|
|
||||||
@@ -615,10 +617,13 @@ static int process_manpath (const char *manpath, int global_manpath,
|
|
||||||
#endif /* SECURE_MAN_UID */
|
|
||||||
|
|
||||||
out:
|
|
||||||
- cleanup_sigsafe (dbpaths);
|
|
||||||
- pop_cleanup (cleanup_sigsafe, dbpaths);
|
|
||||||
- cleanup (dbpaths);
|
|
||||||
- pop_cleanup (cleanup, dbpaths);
|
|
||||||
+ if (dbpaths) {
|
|
||||||
+ cleanup_sigsafe (dbpaths);
|
|
||||||
+ pop_cleanup (cleanup_sigsafe, dbpaths);
|
|
||||||
+ cleanup (dbpaths);
|
|
||||||
+ pop_cleanup (cleanup, dbpaths);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
free (database);
|
|
||||||
database = NULL;
|
|
||||||
|
|
||||||
diff --git a/src/whatis.c b/src/whatis.c
|
|
||||||
index 4cf14a5..f804c0e 100644
|
|
||||||
--- a/src/whatis.c
|
|
||||||
+++ b/src/whatis.c
|
|
||||||
@@ -810,6 +810,8 @@ nextpage:
|
|
||||||
free_mandata_elements (&info);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ free (found_here);
|
|
||||||
+
|
|
||||||
for (i = 0; i < num_pages; ++i)
|
|
||||||
free (lowpages[i]);
|
|
||||||
free (lowpages);
|
|
@ -1,177 +0,0 @@
|
|||||||
From 84d6b3fab40be5e1ea288fb296df6cd8be06c985 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
|
|
||||||
Date: Thu, 19 Jan 2017 10:45:57 +0100
|
|
||||||
Subject: [PATCH] man(1): Fix override dir handling
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Previously, override dir was affecting only some cases
|
|
||||||
of manpath determination.
|
|
||||||
|
|
||||||
Apply it only when all paths has been gathered instead.
|
|
||||||
(Depending on the definition of when the override dir applies,
|
|
||||||
this might not be correct).
|
|
||||||
|
|
||||||
Also look for override dir when sorting candidates.
|
|
||||||
|
|
||||||
Fixes src/tests/man-9 failing when --with-override-dir=od
|
|
||||||
is passed to ./configure.
|
|
||||||
|
|
||||||
Reported-by: Nikola Forró <nforro@redhat.com>
|
|
||||||
Tested-by: Nikola Forró <nforro@redhat.com>
|
|
||||||
---
|
|
||||||
src/man.c | 33 +++++++++++++++++++++++++++++++++
|
|
||||||
src/manp.c | 52 +++++++++++++++++++++-------------------------------
|
|
||||||
2 files changed, 54 insertions(+), 31 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/man.c b/src/man.c
|
|
||||||
index 15a568a..8b11f43 100644
|
|
||||||
--- a/src/man.c
|
|
||||||
+++ b/src/man.c
|
|
||||||
@@ -2665,6 +2665,32 @@ static int duplicate_candidates (struct candidate *left,
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int cand1_differs_by_override_dir (const struct candidate *left,
|
|
||||||
+ const struct candidate *right)
|
|
||||||
+{
|
|
||||||
+ size_t ov_len, pre_ov_len;
|
|
||||||
+
|
|
||||||
+ ov_len = strlen (OVERRIDE_DIR);
|
|
||||||
+ if (!ov_len)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ if (!STREQ (left->source->name, right->source->name))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ pre_ov_len = strlen(right->path);
|
|
||||||
+ if (!STRNEQ (left->path, right->path, pre_ov_len))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ if (left->path[pre_ov_len] != '/')
|
|
||||||
+ return 0;
|
|
||||||
+ pre_ov_len++;
|
|
||||||
+
|
|
||||||
+ if (STREQ (left->path + pre_ov_len, OVERRIDE_DIR))
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int compare_candidates (const struct candidate *left,
|
|
||||||
const struct candidate *right)
|
|
||||||
{
|
|
||||||
@@ -2749,6 +2775,13 @@ static int compare_candidates (const struct candidate *left,
|
|
||||||
if (cmp)
|
|
||||||
return cmp;
|
|
||||||
|
|
||||||
+ /* Sort override dir first
|
|
||||||
+ */
|
|
||||||
+ if (cand1_differs_by_override_dir(left, right))
|
|
||||||
+ return -1;
|
|
||||||
+ if (cand1_differs_by_override_dir(right, left))
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
/* Try comparing based on language. We used to prefer to display a
|
|
||||||
* page in the user's preferred language than a page from a better
|
|
||||||
* section, but that attracted objections, so now we prefer to get
|
|
||||||
diff --git a/src/manp.c b/src/manp.c
|
|
||||||
index 0d864f1..b78a50f 100644
|
|
||||||
--- a/src/manp.c
|
|
||||||
+++ b/src/manp.c
|
|
||||||
@@ -931,23 +931,6 @@ static char *def_path (int flag)
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
- * If specified with configure, append OVERRIDE_DIR to dir param and add it
|
|
||||||
- * to the lp list.
|
|
||||||
- */
|
|
||||||
-static void insert_override_dir (char **lp, const char *dir)
|
|
||||||
-{
|
|
||||||
- char *override_dir = NULL;
|
|
||||||
-
|
|
||||||
- if (!strlen (OVERRIDE_DIR))
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- if ((override_dir = xasprintf ("%s/%s", dir, OVERRIDE_DIR))) {
|
|
||||||
- add_dir_to_list (lp, override_dir);
|
|
||||||
- free (override_dir);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
* For each directory in the user's path, see if it is one of the
|
|
||||||
* directories listed in the man_db.config file. If so, and it is
|
|
||||||
* not already in the manpath, add it. If the directory is not listed
|
|
||||||
@@ -994,8 +977,6 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
|
||||||
if (mandir_list) {
|
|
||||||
debug ("is in the config file\n");
|
|
||||||
while (mandir_list) {
|
|
||||||
- insert_override_dir (tmplist,
|
|
||||||
- mandir_list->cont);
|
|
||||||
add_dir_to_list (tmplist, mandir_list->cont);
|
|
||||||
mandir_list = iterate_over_list
|
|
||||||
(mandir_list, p, MANPATH_MAP);
|
|
||||||
@@ -1014,7 +995,6 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
|
||||||
"../share/man, or share/man "
|
|
||||||
"subdirectory\n");
|
|
||||||
|
|
||||||
- insert_override_dir (tmplist, t);
|
|
||||||
add_dir_to_list (tmplist, t);
|
|
||||||
free (t);
|
|
||||||
} else
|
|
||||||
@@ -1030,10 +1010,8 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
|
||||||
debug ("\nadding mandatory man directories\n\n");
|
|
||||||
|
|
||||||
for (list = namestore; list; list = list->next)
|
|
||||||
- if (list->flag == MANDATORY) {
|
|
||||||
- insert_override_dir (tmplist, list->key);
|
|
||||||
+ if (list->flag == MANDATORY)
|
|
||||||
add_dir_to_list (tmplist, list->key);
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
len = 0;
|
|
||||||
@@ -1201,18 +1179,30 @@ void create_pathlist (const char *manp, char **mp)
|
|
||||||
const char *p, *end;
|
|
||||||
char **mphead = mp;
|
|
||||||
|
|
||||||
- /* Expand the manpath into a list for easier handling. */
|
|
||||||
+ /* Expand the manpath into a list for easier handling.
|
|
||||||
+ * For each entry, add corresponding OVERRIDE_DIR.
|
|
||||||
+ * */
|
|
||||||
|
|
||||||
for (p = manp;; p = end + 1) {
|
|
||||||
+ char *element, *element_override;
|
|
||||||
+ ssize_t p_len;
|
|
||||||
+
|
|
||||||
end = strchr (p, ':');
|
|
||||||
- if (end) {
|
|
||||||
- char *element = xstrndup (p, end - p);
|
|
||||||
- mp = add_dir_to_path_list (mphead, mp, element);
|
|
||||||
- free (element);
|
|
||||||
- } else {
|
|
||||||
- mp = add_dir_to_path_list (mphead, mp, p);
|
|
||||||
- break;
|
|
||||||
+ p_len = end ? end - p : (ssize_t)strlen(p);
|
|
||||||
+
|
|
||||||
+ element = xstrndup (p, p_len);
|
|
||||||
+
|
|
||||||
+ if (strlen(OVERRIDE_DIR)) {
|
|
||||||
+ element_override = xasprintf("%s/%s", element, OVERRIDE_DIR);
|
|
||||||
+ mp = add_dir_to_path_list (mphead, mp, element_override);
|
|
||||||
+ free (element_override);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ mp = add_dir_to_path_list (mphead, mp, element);
|
|
||||||
+ free (element);
|
|
||||||
+
|
|
||||||
+ if (!end)
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
*mp = NULL;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
|||||||
From 79308ac147be9e9c889798cba78bab2af05048e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jiri Kucera <jkucera@redhat.com>
|
|
||||||
Date: Wed, 17 Jan 2018 13:57:34 +0100
|
|
||||||
Subject: [PATCH] Fix a segfault in 'man -D --help'
|
|
||||||
|
|
||||||
This patch is an adjusted version (due to the patch rejected hunk issues) of its original (by Colin Watson) from: https://git.savannah.gnu.org/cgit/man-db.git/patch/?id=b32977ff73220cd351387abe558fb523d1deedbb
|
|
||||||
|
|
||||||
Reported by Jiri Kucera.
|
|
||||||
|
|
||||||
* src/man.c (init_html_pager): New function.
|
|
||||||
(parse_opt): Call init_html_pager rather than setting html_pager to
|
|
||||||
NULL.
|
|
||||||
(help_filter): Assert that browser is non-NULL.
|
|
||||||
(main): Call init_html_pager rather than doing the same thing directly.
|
|
||||||
* NEWS: Document this.
|
|
||||||
---
|
|
||||||
NEWS | 10 ++++++++++
|
|
||||||
src/man.c | 17 +++++++++++------
|
|
||||||
2 files changed, 21 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 366a0263..ff35e884 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -1,3 +1,13 @@
|
|
||||||
+man-db 2.7.7
|
|
||||||
+============
|
|
||||||
+
|
|
||||||
+Major changes since man-db 2.7.6.1:
|
|
||||||
+
|
|
||||||
+ Fixes:
|
|
||||||
+ ------
|
|
||||||
+
|
|
||||||
+ o Fix a segfault in 'man -D --help'.
|
|
||||||
+
|
|
||||||
man-db 2.7.6.1 (12 December 2016)
|
|
||||||
=================================
|
|
||||||
|
|
||||||
diff --git a/src/man.c b/src/man.c
|
|
||||||
index 8b11f43e..cb0930b8 100644
|
|
||||||
--- a/src/man.c
|
|
||||||
+++ b/src/man.c
|
|
||||||
@@ -345,6 +345,13 @@ static struct argp_option options[] = {
|
|
||||||
{ 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
+static void init_html_pager (void)
|
|
||||||
+{
|
|
||||||
+ html_pager = getenv ("BROWSER");
|
|
||||||
+ if (!html_pager)
|
|
||||||
+ html_pager = WEB_BROWSER;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static error_t parse_opt (int key, char *arg, struct argp_state *state)
|
|
||||||
{
|
|
||||||
static int apropos, whatis; /* retain values between calls */
|
|
||||||
@@ -369,7 +376,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
|
|
||||||
ditroff = 0;
|
|
||||||
gxditview = NULL;
|
|
||||||
htmlout = 0;
|
|
||||||
- html_pager = NULL;
|
|
||||||
+ init_html_pager ();
|
|
||||||
#endif
|
|
||||||
roff_device = want_encoding = extension = pager =
|
|
||||||
locale = alt_system_name = external =
|
|
||||||
@@ -582,6 +589,7 @@ static char *help_filter (int key, const char *text,
|
|
||||||
# ifdef TROFF_IS_GROFF
|
|
||||||
case 'H':
|
|
||||||
browser = html_pager;
|
|
||||||
+ assert (browser);
|
|
||||||
if (STRNEQ (browser, "exec ", 5))
|
|
||||||
browser += 5;
|
|
||||||
return xasprintf (text, browser);
|
|
||||||
@@ -4018,11 +4026,8 @@ int main (int argc, char *argv[])
|
|
||||||
|
|
||||||
#ifdef TROFF_IS_GROFF
|
|
||||||
/* used in --help, so initialise early */
|
|
||||||
- if (!html_pager) {
|
|
||||||
- html_pager = getenv ("BROWSER");
|
|
||||||
- if (!html_pager)
|
|
||||||
- html_pager = WEB_BROWSER;
|
|
||||||
- }
|
|
||||||
+ if (!html_pager)
|
|
||||||
+ init_html_pager ();
|
|
||||||
#endif /* TROFF_IS_GROFF */
|
|
||||||
|
|
||||||
/* First of all, find out if $MANOPT is set. If so, put it in
|
|
||||||
--
|
|
||||||
2.14.3
|
|
||||||
|
|
365
man-db.spec
365
man-db.spec
@ -1,41 +1,43 @@
|
|||||||
%global cache /var/cache/man
|
%global cache /var/cache/man
|
||||||
%global gnulib_ver 20140202
|
|
||||||
|
|
||||||
Summary: Tools for searching and reading man pages
|
Summary: Tools for searching and reading man pages
|
||||||
Name: man-db
|
Name: man-db
|
||||||
Version: 2.7.6.1
|
Version: 2.12.0
|
||||||
Release: 18%{?dist}
|
Release: 8%{?dist}
|
||||||
# GPLv2+ .. man-db
|
# GPLv2+ .. man-db
|
||||||
# GPLv3+ .. gnulib
|
# GPLv3+ .. gnulib
|
||||||
License: GPLv2+ and GPLv3+
|
License: GPL-2.0-or-later AND GPL-3.0-or-later
|
||||||
Group: System Environment/Base
|
|
||||||
URL: http://www.nongnu.org/man-db/
|
URL: http://www.nongnu.org/man-db/
|
||||||
|
|
||||||
Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz
|
Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz
|
||||||
Source1: man-db.crondaily
|
Source1: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.xz.asc
|
||||||
Source2: man-db.sysconfig
|
# Man-db GPG key is stored in a different name which makes it hard to fetch
|
||||||
Source3: man-db-cache-update.service
|
# It was downloaded here: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xac0a4ff12611b6fccf01c111393587d97d86500b
|
||||||
Source4: man-db-restart-cache-update.service
|
Source2: 0xac0a4ff12611b6fccf01c111393587d97d86500b
|
||||||
Patch0: man-db-2.7.6.1-change-owner-of-man-cache.patch
|
|
||||||
|
|
||||||
# http://lists.nongnu.org/archive/html/man-db-devel/2017-01/msg00013.html
|
Source3: man-db.crondaily
|
||||||
Patch1: man-db-2.7.6.1-fix-override-dir-handling.patch
|
Source4: man-db.sysconfig
|
||||||
# http://lists.nongnu.org/archive/html/man-db-devel/2018-01/msg00005.html
|
Source5: man-db-cache-update.service
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1495507
|
Source6: man-db-restart-cache-update.service
|
||||||
Patch2: man-db-2.7.6.1-fix_rhbz1495507.patch
|
|
||||||
|
|
||||||
Patch3: man-db-2.7.6.1-coverity.patch
|
|
||||||
|
|
||||||
Obsoletes: man < 2.0
|
Obsoletes: man < 2.0
|
||||||
Provides: man = %{version}
|
Provides: man = %{version}
|
||||||
Provides: man-pages-reader = %{version}
|
Provides: man-pages-reader = %{version}
|
||||||
# FPC exception for gnulib - copylib - https://fedorahosted.org/fpc/ticket/174
|
# FPC exception for gnulib - copylib - https://fedorahosted.org/fpc/ticket/174
|
||||||
Provides: bundled(gnulib) = %{gnulib_ver}
|
Provides: bundled(gnulib)
|
||||||
|
|
||||||
Requires: coreutils, grep, groff-base, gzip, less
|
Requires: coreutils, grep, groff-base, gzip, less
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: gcc
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
BuildRequires: gdbm-devel, gettext, groff, less, libpipeline-devel, zlib-devel
|
BuildRequires: gdbm-devel, gettext, groff, less, libpipeline-devel, zlib-devel
|
||||||
BuildRequires: po4a, perl-interpreter, perl-version
|
BuildRequires: po4a, perl-interpreter, perl-version
|
||||||
|
BuildRequires: gnupg2
|
||||||
|
Recommends: glibc-gconv-extra
|
||||||
|
|
||||||
|
Requires(post): %{_sbindir}/update-alternatives
|
||||||
|
Requires(postun): %{_sbindir}/update-alternatives
|
||||||
|
Requires(preun): %{_sbindir}/update-alternatives
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The man-db package includes five tools for browsing man-pages:
|
The man-db package includes five tools for browsing man-pages:
|
||||||
@ -47,7 +49,6 @@ manual pages.
|
|||||||
|
|
||||||
%package cron
|
%package cron
|
||||||
Summary: Periodic update of man-db cache
|
Summary: Periodic update of man-db cache
|
||||||
Group: System Environment/Base
|
|
||||||
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
Requires: crontabs
|
Requires: crontabs
|
||||||
@ -58,28 +59,36 @@ BuildArch: noarch
|
|||||||
This package provides periodic update of man-db cache.
|
This package provides periodic update of man-db cache.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||||
%autosetup -p1
|
%autosetup -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure \
|
%configure \
|
||||||
--with-sections="1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x" \
|
--with-sections="1 1p 8 2 3 3p 3pm 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x" \
|
||||||
--disable-setuid --disable-cache-owner \
|
--disable-setuid --disable-cache-owner \
|
||||||
|
--with-systemdsystemunitdir=no \
|
||||||
--with-browser=elinks --with-lzip=lzip \
|
--with-browser=elinks --with-lzip=lzip \
|
||||||
|
--with-snapdir=/var/lib/snapd/snap \
|
||||||
--with-override-dir=overrides
|
--with-override-dir=overrides
|
||||||
make CC="%{__cc} %{optflags}" %{?_smp_mflags} V=1
|
%make_build CC="%{__cc} %{optflags}"
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make check
|
make check
|
||||||
|
|
||||||
%install
|
%install
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} INSTALL='install -p'
|
%make_install prefix=%{_prefix}
|
||||||
|
|
||||||
|
# rename files for alternative usage
|
||||||
|
for f in man apropos whatis; do
|
||||||
|
mv %{buildroot}%{_bindir}/$f %{buildroot}%{_bindir}/$f.%{name}
|
||||||
|
touch %{buildroot}%{_bindir}/$f
|
||||||
|
mv %{buildroot}%{_mandir}/man1/$f.1 %{buildroot}%{_mandir}/man1/$f.%{name}.1
|
||||||
|
touch %{buildroot}%{_mandir}/man1/$f.1
|
||||||
|
done
|
||||||
|
|
||||||
# move the documentation to the relevant place
|
# move the documentation to the relevant place
|
||||||
mv $RPM_BUILD_ROOT%{_datadir}/doc/man-db/* ./
|
mv $RPM_BUILD_ROOT%{_datadir}/doc/man-db/* ./
|
||||||
|
|
||||||
# remove creation timestamp to avoid multilib difference
|
|
||||||
sed -i '/^%%%%CreationDate:.*$/d' man-db-manual.ps
|
|
||||||
|
|
||||||
# remove zsoelim man page - part of groff package
|
# remove zsoelim man page - part of groff package
|
||||||
rm $RPM_BUILD_ROOT%{_datadir}/man/man1/zsoelim.1
|
rm $RPM_BUILD_ROOT%{_datadir}/man/man1/zsoelim.1
|
||||||
|
|
||||||
@ -91,61 +100,91 @@ install -d -m 0755 $RPM_BUILD_ROOT%{cache}
|
|||||||
|
|
||||||
# install cron script for man-db creation/update
|
# install cron script for man-db creation/update
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily
|
||||||
install -D -p -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/man-db.cron
|
install -D -p -m 0755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/man-db.cron
|
||||||
|
|
||||||
# config for cron script
|
# config for cron script
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
|
||||||
install -D -p -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/man-db
|
install -D -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/man-db
|
||||||
|
|
||||||
# config for tmpfiles.d
|
# config for tmpfiles.d
|
||||||
install -D -p -m 0644 init/systemd/man-db.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/.
|
install -D -p -m 0644 init/systemd/man-db.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/.
|
||||||
|
|
||||||
# man-db-cache-update.service and man-db-restart-cache-update.service
|
# man-db-cache-update.service and man-db-restart-cache-update.service
|
||||||
install -D -p -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/man-db-cache-update.service
|
install -D -p -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_unitdir}/man-db-cache-update.service
|
||||||
install -D -p -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/man-db-restart-cache-update.service
|
install -D -p -m 0644 %{SOURCE6} $RPM_BUILD_ROOT%{_unitdir}/man-db-restart-cache-update.service
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
%find_lang %{name}-gnulib
|
%find_lang %{name}-gnulib
|
||||||
|
|
||||||
# stop and disable timer from previous builds
|
|
||||||
%pre
|
%pre
|
||||||
|
# remove alternativized files if they are not symlinks
|
||||||
|
for f in man apropos whatis; do
|
||||||
|
[ -L %{_bindir}/$f ] || %{__rm} -f %{_bindir}/$f >/dev/null 2>&1 || :
|
||||||
|
[ -L %{_mandir}/man1/$f.1.gz ] || %{__rm} -f %{_mandir}/man1/$f.1.gz >/dev/null 2>&1 || :
|
||||||
|
done
|
||||||
|
|
||||||
|
# stop and disable timer from previous builds
|
||||||
if [ -e /usr/lib/systemd/system/mandb.timer ]; then
|
if [ -e /usr/lib/systemd/system/mandb.timer ]; then
|
||||||
if test -d /run/systemd; then
|
if test -d /run/systemd; then
|
||||||
systemctl stop man-db.timer
|
systemctl stop man-db.timer >/dev/null 2>&1 || :
|
||||||
systemctl -q disable man-db.timer
|
systemctl -q disable man-db.timer >/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
%post
|
||||||
|
# set up the alternatives files
|
||||||
|
%{_sbindir}/update-alternatives --install %{_bindir}/man man %{_bindir}/man.%{name} 300 \
|
||||||
|
--slave %{_bindir}/apropos apropos %{_bindir}/apropos.%{name} \
|
||||||
|
--slave %{_bindir}/whatis whatis %{_bindir}/whatis.%{name} \
|
||||||
|
--slave %{_mandir}/man1/man.1.gz man.1.gz %{_mandir}/man1/man.%{name}.1.gz \
|
||||||
|
--slave %{_mandir}/man1/apropos.1.gz apropos.1.gz %{_mandir}/man1/apropos.%{name}.1.gz \
|
||||||
|
--slave %{_mandir}/man1/whatis.1.gz whatis.1.gz %{_mandir}/man1/whatis.%{name}.1.gz \
|
||||||
|
>/dev/null 2>&1 || :
|
||||||
|
|
||||||
# clear the old cache
|
# clear the old cache
|
||||||
%post
|
%{__rm} -rf %{cache}/* >/dev/null 2>&1 || :
|
||||||
%{__rm} -rf %{cache}/*
|
|
||||||
|
%preun
|
||||||
|
if [ $1 -eq 0 ]; then
|
||||||
|
%{_sbindir}/update-alternatives --remove man %{_bindir}/man.%{name} >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun
|
||||||
|
if [ $1 -ge 1 ]; then
|
||||||
|
if [ "$(readlink %{_sysconfdir}/alternatives/man)" == "%{_bindir}/man.%{name}" ]; then
|
||||||
|
%{_sbindir}/update-alternatives --set man %{_bindir}/man.%{name} >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# update cache
|
|
||||||
%transfiletriggerin -- %{_mandir}
|
%transfiletriggerin -- %{_mandir}
|
||||||
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
|
|
||||||
/usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
|
|
||||||
fi
|
|
||||||
|
|
||||||
# update cache
|
# update cache
|
||||||
%transfiletriggerpostun -- %{_mandir}
|
|
||||||
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
|
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
|
||||||
/usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
|
/usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
%transfiletriggerpostun -- %{_mandir}
|
||||||
|
# update cache
|
||||||
|
if [ -x /usr/bin/systemd-run -a -x /usr/bin/systemctl ]; then
|
||||||
|
/usr/bin/systemd-run /usr/bin/systemctl start man-db-cache-update >/dev/null 2>&1 || :
|
||||||
|
fi
|
||||||
|
|
||||||
%files -f %{name}.lang -f %{name}-gnulib.lang
|
%files -f %{name}.lang -f %{name}-gnulib.lang
|
||||||
%{!?_licensedir:%global license %%doc}
|
%{!?_licensedir:%global license %%doc}
|
||||||
%license docs/COPYING
|
%license COPYING
|
||||||
%doc README man-db-manual.txt man-db-manual.ps ChangeLog NEWS
|
%doc README.md man-db-manual.txt man-db-manual.ps ChangeLog NEWS.md
|
||||||
%config(noreplace) %{_sysconfdir}/man_db.conf
|
%config(noreplace) %{_sysconfdir}/man_db.conf
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/man-db
|
%config(noreplace) %{_sysconfdir}/sysconfig/man-db
|
||||||
%config(noreplace) %{_tmpfilesdir}/man-db.conf
|
%config(noreplace) %{_tmpfilesdir}/man-db.conf
|
||||||
%{_unitdir}/man-db-cache-update.service
|
%{_unitdir}/man-db-cache-update.service
|
||||||
%{_unitdir}/man-db-restart-cache-update.service
|
%{_unitdir}/man-db-restart-cache-update.service
|
||||||
%{_sbindir}/accessdb
|
%{_sbindir}/accessdb
|
||||||
%{_bindir}/man
|
%ghost %{_bindir}/man
|
||||||
%{_bindir}/whatis
|
%ghost %{_bindir}/apropos
|
||||||
%{_bindir}/apropos
|
%ghost %{_bindir}/whatis
|
||||||
|
%{_bindir}/man.%{name}
|
||||||
|
%{_bindir}/apropos.%{name}
|
||||||
|
%{_bindir}/whatis.%{name}
|
||||||
|
%{_bindir}/man-recode
|
||||||
%{_bindir}/manpath
|
%{_bindir}/manpath
|
||||||
%{_bindir}/lexgrog
|
%{_bindir}/lexgrog
|
||||||
%{_bindir}/catman
|
%{_bindir}/catman
|
||||||
@ -158,52 +197,230 @@ fi
|
|||||||
%{_libexecdir}/man-db/zsoelim
|
%{_libexecdir}/man-db/zsoelim
|
||||||
%verify(not mtime) %dir %{cache}
|
%verify(not mtime) %dir %{cache}
|
||||||
# documentation and translation
|
# documentation and translation
|
||||||
%{_mandir}/man1/apropos.1*
|
%ghost %{_mandir}/man1/man.1*
|
||||||
|
%ghost %{_mandir}/man1/apropos.1*
|
||||||
|
%ghost %{_mandir}/man1/whatis.1*
|
||||||
|
%{_mandir}/man1/man.%{name}.1*
|
||||||
|
%{_mandir}/man1/apropos.%{name}.1*
|
||||||
|
%{_mandir}/man1/whatis.%{name}.1*
|
||||||
|
%{_mandir}/man1/man-recode.1*
|
||||||
%{_mandir}/man1/lexgrog.1*
|
%{_mandir}/man1/lexgrog.1*
|
||||||
%{_mandir}/man1/man.1*
|
|
||||||
%{_mandir}/man1/manconv.1*
|
%{_mandir}/man1/manconv.1*
|
||||||
%{_mandir}/man1/manpath.1*
|
%{_mandir}/man1/manpath.1*
|
||||||
%{_mandir}/man1/whatis.1*
|
|
||||||
%{_mandir}/man5/manpath.5*
|
%{_mandir}/man5/manpath.5*
|
||||||
%{_mandir}/man8/accessdb.8*
|
%{_mandir}/man8/accessdb.8*
|
||||||
%{_mandir}/man8/catman.8*
|
%{_mandir}/man8/catman.8*
|
||||||
%{_mandir}/man8/mandb.8*
|
%{_mandir}/man8/mandb.8*
|
||||||
%lang(da) %{_datadir}/man/da/man*/*
|
%lang(da) %{_datadir}/man/da/man*/*
|
||||||
%lang(de) %{_datadir}/man/de/man*/*
|
%lang(de) %{_datadir}/man/de/man*/*
|
||||||
%lang(es) %{_datadir}/man/es/man*/*
|
%lang(es) %{_datadir}/man/es/man*/*
|
||||||
%lang(fr) %{_datadir}/man/fr/man*/*
|
%lang(fr) %{_datadir}/man/fr/man*/*
|
||||||
%lang(id) %{_datadir}/man/id/man*/*
|
%lang(id) %{_datadir}/man/id/man*/*
|
||||||
%lang(it) %{_datadir}/man/it/man*/*
|
%lang(it) %{_datadir}/man/it/man*/*
|
||||||
%lang(ja) %{_datadir}/man/ja/man*/*
|
%lang(ja) %{_datadir}/man/ja/man*/*
|
||||||
%lang(nl) %{_datadir}/man/nl/man*/*
|
%lang(ko) %{_datadir}/man/ko/man*/*
|
||||||
%lang(pl) %{_datadir}/man/pl/man*/*
|
%lang(nl) %{_datadir}/man/nl/man*/*
|
||||||
%lang(ru) %{_datadir}/man/ru/man*/*
|
%lang(pl) %{_datadir}/man/pl/man*/*
|
||||||
%lang(sv) %{_datadir}/man/sv/man*/*
|
%lang(pt) %{_datadir}/man/pt/man*/*
|
||||||
%lang(zh_CN) %{_datadir}/man/zh_CN/man*/*
|
%lang(pt_BR) %{_datadir}/man/pt_BR/man*/*
|
||||||
|
%lang(ro) %{_datadir}/man/ro/man*/*
|
||||||
|
%lang(ru) %{_datadir}/man/ru/man*/*
|
||||||
|
%lang(sr) %{_datadir}/man/sr/man*/*
|
||||||
|
%lang(sv) %{_datadir}/man/sv/man*/*
|
||||||
|
%lang(tr) %{_datadir}/man/tr/man*/*
|
||||||
|
%lang(zh_CN) %{_datadir}/man/zh_CN/man*/*
|
||||||
|
|
||||||
%files cron
|
%files cron
|
||||||
%config(noreplace) %{_sysconfdir}/cron.daily/man-db.cron
|
%config(noreplace) %{_sysconfdir}/cron.daily/man-db.cron
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jun 24 2021 Nikola Forró <nforro@redhat.com> - 2.7.6.1-18
|
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2.12.0-8
|
||||||
|
- Bump release for October 2024 mass rebuild:
|
||||||
|
Resolves: RHEL-64018
|
||||||
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.12.0-7
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Mon Jan 29 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 10 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.12.0-3
|
||||||
|
- Fix the Source numbering in installation
|
||||||
|
- Resolves: BZ#2242757
|
||||||
|
|
||||||
|
* Fri Sep 29 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.12.0-2
|
||||||
|
- Add GPG verify on the package
|
||||||
|
|
||||||
|
* Wed Sep 27 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.12.0-1
|
||||||
|
- Rebase to version 2.12.0
|
||||||
|
- Patch0 was upstreamed
|
||||||
|
|
||||||
|
* Tue Jul 25 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.11.2-5
|
||||||
|
- Release bump after added Patch0 from yselkowitz
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.2-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 10 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.11.2-3
|
||||||
|
- Add Recommends to package glibc-gconv-extra
|
||||||
|
- Justification in BZ#2182414
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 09 2023 Lukas Javorsky <ljavorsk@redhat.com> - 2.11.2-1
|
||||||
|
- Rebase to version 2.11.2
|
||||||
|
|
||||||
|
* Fri Nov 18 2022 Lukas Javorsky <ljavorsk@redhat.com> - 2.11.1-1
|
||||||
|
- Rebase to version 2.11.1
|
||||||
|
- Add Korean translations
|
||||||
|
- Resolves: #2142761
|
||||||
|
|
||||||
|
* Fri Oct 14 2022 Lukas Javorsky <ljavorsk@redhat.com> - 2.11.0-1
|
||||||
|
- Rebase to version 2.11.0
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.2-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Mar 18 2022 Nikola Forró <nforro@redhat.com> - 2.10.2-1
|
||||||
|
- update to 2.10.2
|
||||||
|
resolves: #2065447
|
||||||
|
|
||||||
|
* Fri Feb 11 2022 Nikola Forró <nforro@redhat.com> - 2.10.1-1
|
||||||
|
- update to 2.10.1
|
||||||
|
resolves #2053020
|
||||||
|
|
||||||
|
* Tue Feb 08 2022 Nikola Forró <nforro@redhat.com> - 2.10.0-3
|
||||||
|
- backport upstream fixes for the unstable test
|
||||||
|
|
||||||
|
* Tue Feb 08 2022 Nikola Forró <nforro@redhat.com> - 2.10.0-2
|
||||||
|
- skip unstable test
|
||||||
|
|
||||||
|
* Sun Feb 06 2022 Nikola Forró <nforro@redhat.com> - 2.10.0-1
|
||||||
|
- update to 2.10.0
|
||||||
|
resolves #2050778
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 11 2021 Nikola Forró <nforro@redhat.com> - 2.9.4-1
|
||||||
|
- update to 2.9.4
|
||||||
|
resolves #1926527
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.3-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Oct 09 2020 Jeff Law <law@redhat.com> - 2.9.3-2
|
||||||
|
- Re-enable LTO
|
||||||
|
|
||||||
|
* Tue Oct 06 2020 Nikola Forró <nforro@redhat.com> - 2.9.3-1
|
||||||
|
- update to 2.9.3
|
||||||
|
resolves #1849809
|
||||||
|
|
||||||
|
* Thu Sep 03 2020 Nikola Forró <nforro@redhat.com> - 2.9.2-6
|
||||||
|
- disable LTO to workaround a possible linker bug
|
||||||
|
related to #1871971
|
||||||
|
|
||||||
|
* Tue Aug 04 2020 Nikola Forró <nforro@redhat.com> - 2.9.2-5
|
||||||
|
- reenable LTO
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Nikola Forró <nforro@redhat.com> - 2.9.2-4
|
||||||
|
- disable LTO to avoid linker bug
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.2-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 2.9.2-2
|
||||||
|
- Use make macros
|
||||||
|
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||||
|
|
||||||
|
* Tue Jun 02 2020 Nikola Forró <nforro@redhat.com> - 2.9.2-1
|
||||||
|
- update to 2.9.2
|
||||||
|
resolves #1842624
|
||||||
|
|
||||||
|
* Sun Mar 01 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-6
|
||||||
|
- fix %pre scriptlet
|
||||||
|
|
||||||
|
* Fri Feb 28 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-5
|
||||||
|
- fix upgrades from non-alternativized versions properly
|
||||||
|
|
||||||
|
* Fri Feb 28 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-4
|
||||||
|
- fix upgrades from non-alternativized versions
|
||||||
|
|
||||||
|
* Wed Feb 26 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-3
|
||||||
|
- fix %postun scriptlet
|
||||||
|
|
||||||
|
* Wed Feb 26 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-2
|
||||||
|
- use alternatives for man, apropos and whatis
|
||||||
|
|
||||||
|
* Wed Feb 26 2020 Nikola Forró <nforro@redhat.com> - 2.9.1-1
|
||||||
|
- update to 2.9.1
|
||||||
|
resolves #1807144
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 09 2020 Nikola Forró <nforro@redhat.com> - 2.9.0-1
|
||||||
|
- update to 2.9.0
|
||||||
|
resolves #1764582
|
||||||
|
|
||||||
|
* Fri Sep 27 2019 Nikola Forró <nforro@redhat.com> - 2.8.7-2
|
||||||
- schedule interrupted cache update for the next boot, instead of blocking
|
- schedule interrupted cache update for the next boot, instead of blocking
|
||||||
system reboot/shutdown
|
system reboot/shutdown
|
||||||
resolves #1874010
|
resolves #1678464
|
||||||
|
|
||||||
* Wed Nov 07 2018 Nikola Forró <nforro@redhat.com> - 2.7.6.1-17
|
* Fri Aug 30 2019 Nikola Forró <nforro@redhat.com> - 2.8.7-1
|
||||||
- avoid multilib difference in man-db-manual.ps
|
- update to 2.8.7
|
||||||
|
resolves #1747042
|
||||||
|
|
||||||
|
* Tue Aug 27 2019 Nikola Forró <nforro@redhat.com> - 2.8.6.1-1
|
||||||
|
- update to 2.8.6.1
|
||||||
|
resolves #1742475
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.4-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.4-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 07 2019 Nikola Forró <nforro@redhat.com> - 2.8.4-3
|
||||||
|
- prioritize POSIX man pages over perl manuals
|
||||||
|
resolves #1663919
|
||||||
|
|
||||||
|
* Wed Nov 07 2018 Nikola Forró <nforro@redhat.com> - 2.8.4-2
|
||||||
- get rid of hardcoded path
|
- get rid of hardcoded path
|
||||||
related: #1607005
|
|
||||||
|
|
||||||
* Wed Oct 17 2018 Nikola Forró <nforro@redhat.com> - 2.7.6.1-16
|
* Mon Jul 30 2018 Nikola Forró <nforro@redhat.com> - 2.8.4-1
|
||||||
- fix important Covscan defects
|
- update to 2.8.4
|
||||||
resolves: #1607005
|
resolves #1609438
|
||||||
|
|
||||||
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 2.7.6.1-15
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.3-4
|
||||||
- Rebuild with fixed binutils
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
* Wed Jul 25 2018 Petr Kubat <pkubat@redhat.com> - 2.7.6.1-14
|
* Thu Jul 12 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.8.3-3
|
||||||
- Rebuilt for gdbm
|
- Rebuild for new gdbm
|
||||||
|
|
||||||
|
* Fri Apr 06 2018 Nikola Forró <nforro@redhat.com> - 2.8.3-2
|
||||||
|
- fix version in the name of change-owner-of-man-cache patch
|
||||||
|
|
||||||
|
* Fri Apr 06 2018 Nikola Forró <nforro@redhat.com> - 2.8.3-1
|
||||||
|
- update to 2.8.3
|
||||||
|
resolves #1564220
|
||||||
|
|
||||||
|
* Tue Feb 20 2018 Nikola Forró <nforro@redhat.com> - 2.7.6.1-15
|
||||||
|
- add missing gcc build dependency
|
||||||
|
|
||||||
|
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.6.1-14
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
* Sat Feb 03 2018 Todd Zullinger <tmz@pobox.com> - 2.7.6.1-13
|
* Sat Feb 03 2018 Todd Zullinger <tmz@pobox.com> - 2.7.6.1-13
|
||||||
- Avoid noisy output from man-db-cache-update triggers
|
- Avoid noisy output from man-db-cache-update triggers
|
||||||
|
4
sources
4
sources
@ -1 +1,3 @@
|
|||||||
SHA512 (man-db-2.7.6.1.tar.xz) = 623c5e7f8b7c289908b2c926f8777293b8d39aeceef0d2509d701a8b0bfa81408650f655c8608318221786c751a79ee91124b07993de5298cd7fa6d8bb737301
|
SHA512 (man-db-2.12.0.tar.xz) = 4b644a508cf10ef6d27b6325b08f8a89e0695bbc1409bf420efd27649c6851860cc472c4d86063f7b71dccd01fb158faa82afa1e2b91c9a20154acf66b0349bf
|
||||||
|
SHA512 (man-db-2.12.0.tar.xz.asc) = 20ee61dacc33acee92c1c7d9b63df538c8dd884775ae00c3cb984158424a57a6d6906cacd2dc2b914fb3a293dc37b98f757d361b56c6706236867f3462f9996b
|
||||||
|
SHA512 (0xac0a4ff12611b6fccf01c111393587d97d86500b) = 6509ce7ccd1b60b71e180e6ea9c6b63788d55c27f013e03609e649ef1e5b4f28b5358a7a7160e192b20c09e16ba5b24c111bd8275f8218029febe872a016448e
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
SH ?= sh
|
|
||||||
|
|
||||||
TESTS = \
|
|
||||||
lexgrog-1 \
|
|
||||||
man-1 \
|
|
||||||
man-2 \
|
|
||||||
man-3 \
|
|
||||||
man-4 \
|
|
||||||
man-5 \
|
|
||||||
man-6 \
|
|
||||||
man-7 \
|
|
||||||
man-8 \
|
|
||||||
man-9 \
|
|
||||||
man-10 \
|
|
||||||
man-11 \
|
|
||||||
manconv-1 \
|
|
||||||
manconv-2 \
|
|
||||||
manconv-3 \
|
|
||||||
mandb-1 \
|
|
||||||
mandb-2 \
|
|
||||||
mandb-3 \
|
|
||||||
mandb-4 \
|
|
||||||
mandb-5 \
|
|
||||||
mandb-6 \
|
|
||||||
mandb-7 \
|
|
||||||
whatis-1 \
|
|
||||||
zsoelim-1
|
|
||||||
|
|
||||||
export DBTYPE = gdbm
|
|
||||||
export MANCONV = /usr/libexec/man-db/manconv
|
|
||||||
|
|
||||||
.PHONY: test $(TESTS)
|
|
||||||
|
|
||||||
test: $(TESTS)
|
|
||||||
|
|
||||||
fspause: fspause.c
|
|
||||||
$(CC) $(CFLAGS) -o $@ $<
|
|
||||||
|
|
||||||
$(TESTS): %: fspause
|
|
||||||
$(SH) $@
|
|
@ -1,51 +0,0 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
|
||||||
##
|
|
||||||
## Copyright (C) 2009, 2010, 2011 Colin Watson.
|
|
||||||
##
|
|
||||||
## This file is part of man-db.
|
|
||||||
##
|
|
||||||
## man-db is free software; you can redistribute it and/or modify it
|
|
||||||
## under the terms of the GNU General Public License as published by
|
|
||||||
## the Free Software Foundation; either version 2 of the License, or
|
|
||||||
## (at your option) any later version.
|
|
||||||
##
|
|
||||||
## man-db is distributed in the hope that it will be useful, but
|
|
||||||
## WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
## GNU General Public License for more details.
|
|
||||||
##
|
|
||||||
## You should have received a copy of the GNU General Public License
|
|
||||||
## along with man-db; if not, write to the Free Software Foundation,
|
|
||||||
## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = PATH=$(abs_builddir)/..:$$PATH; export PATH; \
|
|
||||||
DBTYPE=$(DBTYPE); export DBTYPE; \
|
|
||||||
MANDIR_LAYOUT=$(MANDIR_LAYOUT); export MANDIR_LAYOUT; \
|
|
||||||
abs_top_builddir=$(abs_top_builddir); export abs_top_builddir; \
|
|
||||||
@LOCALCHARSET_TESTS_ENVIRONMENT@; export CHARSETALIASDIR; \
|
|
||||||
OVERRIDE_DIR="$(override_dir)"; export OVERRIDE_DIR;
|
|
||||||
# Each test must use the configure-detected shell, not necessarily /bin/sh.
|
|
||||||
AM_LOG_FLAGS = $(SHELL)
|
|
||||||
ALL_TESTS = \
|
|
||||||
lexgrog-1 \
|
|
||||||
man-1 man-2 man-3 man-4 man-5 man-6 man-7 man-8 man-9 man-10 man-11 \
|
|
||||||
manconv-1 manconv-2 manconv-3 \
|
|
||||||
mandb-1 mandb-2 mandb-3 mandb-4 mandb-5 mandb-6 mandb-7 \
|
|
||||||
whatis-1 \
|
|
||||||
zsoelim-1
|
|
||||||
if !CROSS_COMPILING
|
|
||||||
TESTS = $(ALL_TESTS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_builddir)/include \
|
|
||||||
-I$(top_builddir)/gnulib/lib \
|
|
||||||
-I$(top_srcdir)/gnulib/lib
|
|
||||||
AM_CFLAGS = $(WARN_CFLAGS)
|
|
||||||
check_PROGRAMS = fspause
|
|
||||||
fspause_SOURCES = fspause.c
|
|
||||||
fspause_LDADD = \
|
|
||||||
$(top_builddir)/gnulib/lib/libgnu.la \
|
|
||||||
$(LIB_NANOSLEEP)
|
|
||||||
|
|
||||||
dist_check_SCRIPTS = testlib.sh $(ALL_TESTS)
|
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@
|
|||||||
man-db test suite modified to run against installed man-db
|
|
||||||
|
|
||||||
All files except the following are taken unmodified from upstream tarball:
|
|
||||||
|
|
||||||
Makefile
|
|
||||||
fspause.c
|
|
||||||
testlib.sh
|
|
@ -1,133 +0,0 @@
|
|||||||
/*
|
|
||||||
* fspause.c: pause until a file timestamp updates
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014 Colin Watson.
|
|
||||||
*
|
|
||||||
* This file is part of man-db.
|
|
||||||
*
|
|
||||||
* man-db is free software; you can redistribute it and/or modify it
|
|
||||||
* under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* man-db is distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with man-db; if not, write to the Free Software Foundation,
|
|
||||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
# include "config.h"
|
|
||||||
#endif /* HAVE_CONFIG_H */
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
static char *filename;
|
|
||||||
static int fd = -1;
|
|
||||||
|
|
||||||
#define MUST(name, cond) \
|
|
||||||
do { \
|
|
||||||
if (!(cond)) { \
|
|
||||||
fprintf (stderr, "fspause: " name " failed\n"); \
|
|
||||||
abort (); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
struct timespec get_stat_mtime (struct stat const *st)
|
|
||||||
{
|
|
||||||
return st->st_mtim;
|
|
||||||
}
|
|
||||||
|
|
||||||
int timespec_cmp (struct timespec a, struct timespec b)
|
|
||||||
{
|
|
||||||
if (a.tv_sec < b.tv_sec)
|
|
||||||
return -1;
|
|
||||||
if (a.tv_sec > b.tv_sec)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return a.tv_nsec - b.tv_nsec;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *xstrdup (char const *string)
|
|
||||||
{
|
|
||||||
size_t n = strlen (string) + 1;
|
|
||||||
void *p = malloc (n);
|
|
||||||
|
|
||||||
if (!p && n != 0) {
|
|
||||||
fprintf (stderr, "fspause: memory exhausted\n");
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
|
|
||||||
return memcpy (p, string, n);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void unlink_tempfile (void)
|
|
||||||
{
|
|
||||||
if (fd >= 0) {
|
|
||||||
MUST ("close", close (fd) >= 0);
|
|
||||||
MUST ("unlink", unlink (filename) >= 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void delay (int delay_ns)
|
|
||||||
{
|
|
||||||
struct timespec delay_ts;
|
|
||||||
|
|
||||||
delay_ts.tv_sec = delay_ns / 1000000000;
|
|
||||||
delay_ts.tv_nsec = delay_ns % 1000000000;
|
|
||||||
for (;;) {
|
|
||||||
errno = 0;
|
|
||||||
if (nanosleep (&delay_ts, NULL) == 0)
|
|
||||||
break;
|
|
||||||
MUST ("nanosleep", errno == 0 || errno == EINTR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int try_delay (struct stat *st, int delay_ns)
|
|
||||||
{
|
|
||||||
struct timespec start_ts, end_ts;
|
|
||||||
|
|
||||||
start_ts = get_stat_mtime (st);
|
|
||||||
delay (delay_ns);
|
|
||||||
MUST ("write", write (fd, "\n", 1) == 1);
|
|
||||||
MUST ("fstat", fstat (fd, st) >= 0);
|
|
||||||
end_ts = get_stat_mtime (st);
|
|
||||||
return timespec_cmp (start_ts, end_ts) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
struct stat st;
|
|
||||||
int delay_ns;
|
|
||||||
|
|
||||||
filename = xstrdup ("fspause.tmp.XXXXXX");
|
|
||||||
MUST ("mkstemp", (fd = mkstemp (filename)) >= 0);
|
|
||||||
atexit (unlink_tempfile);
|
|
||||||
MUST ("fstat", fstat (fd, &st) >= 0);
|
|
||||||
|
|
||||||
/* 0x40000000 nanoseconds is just over a second. The effective
|
|
||||||
* maximum delay we will allow is thus about two seconds. This
|
|
||||||
* saves us having to keep track of anything more complicated than a
|
|
||||||
* single signed 32-bit int.
|
|
||||||
*/
|
|
||||||
for (delay_ns = 1; delay_ns < 0x40000000; delay_ns *= 2) {
|
|
||||||
if (try_delay (&st, delay_ns))
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf (stderr,
|
|
||||||
"fspause: temporary file timestamp refuses to change!\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Basic lexgrog tests.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${LEXGROG=lexgrog}
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
write_page lextest 1 "$tmpdir/usr/share/man/man1/lextest.1.gz" UTF-8 gz '' \
|
|
||||||
'lextest \- simple lexgrog test'
|
|
||||||
echo "$tmpdir/usr/share/man/man1/lextest.1.gz: \"lextest - simple lexgrog test\"" >"$tmpdir/1.exp"
|
|
||||||
run $LEXGROG "$tmpdir/usr/share/man/man1/lextest.1.gz" >"$tmpdir/1.out"
|
|
||||||
expect_pass 'simple lexgrog test' 'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,31 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# http://bugs.debian.org/163347
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/local/man /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/local/man:$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
write_page md5sum 1 "$tmpdir/usr/share/man/man1/md5sum.1.gz" \
|
|
||||||
UTF-8 gz '' 'md5sum \- Debian md5sum manual page'
|
|
||||||
write_page md5sum 1 "$tmpdir/usr/share/man/man1/md5sum.textutils.1.gz" \
|
|
||||||
UTF-8 gz '' 'md5sum \- coreutils md5sum manual page'
|
|
||||||
mkdir -p "$tmpdir/usr/local/man/man1"
|
|
||||||
ln -s ../../../share/man/man1/md5sum.textutils.1.gz \
|
|
||||||
"$tmpdir/usr/local/man/man1/md5sum.1.gz"
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man1/md5sum.textutils.1.gz
|
|
||||||
$abstmpdir/usr/share/man/man1/md5sum.1.gz
|
|
||||||
EOF
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -aw md5sum >"$tmpdir/1.out"
|
|
||||||
expect_pass 'symlinks with matching names win' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,26 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test that man can run from a deleted directory.
|
|
||||||
# https://bugs.debian.org/764384
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
echo "MANDATORY_MANPATH $abstmpdir/usr/share/man" >"$tmpdir/manpath.config"
|
|
||||||
MANPATH="$abstmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- test'
|
|
||||||
mkdir "$tmpdir/zombie"
|
|
||||||
cd "$tmpdir/zombie"
|
|
||||||
rmdir "$abstmpdir/zombie" || \
|
|
||||||
skip "can't remove current working directory on this system"
|
|
||||||
run $MAN -C "$abstmpdir/manpath.config" test >/dev/null
|
|
||||||
code=$?
|
|
||||||
expect_pass 'run from deleted directory' 'test "$code" = 0'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# man chmod.2 => man 2 chmod
|
|
||||||
# man chmod.2p => man 2p chmod
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
page_name="chmod"
|
|
||||||
|
|
||||||
write_page "$page_name" 1 "$tmpdir/usr/share/man/man1/${page_name}.1.gz" \
|
|
||||||
UTF-8 gz '' "$page_name \- coreutils $page_name manual page"
|
|
||||||
write_page "$page_name" 2 "$tmpdir/usr/share/man/man2/${page_name}.2.gz" \
|
|
||||||
UTF-8 gz '' "$page_name \- $page_name() syscall manual page"
|
|
||||||
|
|
||||||
cat >"$tmpdir/2.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man2/${page_name}.2.gz
|
|
||||||
EOF
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -aw "$page_name".2 >"$tmpdir/2.out"
|
|
||||||
expect_pass '"man name.2" is the same as "man 2 name"' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
(
|
|
||||||
cd "$tmpdir/usr/share/man/man2/"
|
|
||||||
mv "${page_name}.2.gz" "${page_name}.2p.gz"
|
|
||||||
)
|
|
||||||
|
|
||||||
cat >"$tmpdir/2p.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man2/${page_name}.2p.gz
|
|
||||||
EOF
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -aw "$page_name".2p >"$tmpdir/2p.out"
|
|
||||||
expect_pass '"man name.2p" is the same as "man 2p name"' \
|
|
||||||
'diff -u "$tmpdir/2p.exp" "$tmpdir/2p.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,23 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# http://bugs.debian.org/608490
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
write_page file 1 "$tmpdir/file.1" UTF-8 '' '' 'file \- test'
|
|
||||||
chmod +x "$tmpdir/file.1"
|
|
||||||
PATH="$PATH:$tmpdir" run $MAN \
|
|
||||||
-C "$tmpdir/manpath.config" "$tmpdir/file.1" >/dev/null
|
|
||||||
code=$?
|
|
||||||
expect_pass 'executable page on path' 'test "$code" = 0'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,41 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=684977
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
case $MANDIR_LAYOUT in
|
|
||||||
""|GNU)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
skip "only applicable to GNU layout"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
# Force default section order.
|
|
||||||
cat >>"$tmpdir/manpath.config" <<EOF
|
|
||||||
SECTION 1 n l 8 3 0 2 5 4 9 6 7
|
|
||||||
EOF
|
|
||||||
|
|
||||||
write_page md5sum 3pm "$tmpdir/usr/share/man/man3/open.3pm.gz" \
|
|
||||||
UTF-8 gz '' 'open \- section 3pm'
|
|
||||||
write_page md5sum 3p "$tmpdir/usr/share/man/man3p/open.3p.gz" \
|
|
||||||
UTF-8 gz '' 'open \- section 3p'
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man3p/open.3p.gz
|
|
||||||
$abstmpdir/usr/share/man/man3/open.3pm.gz
|
|
||||||
EOF
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -aw 3p open >"$tmpdir/1.out"
|
|
||||||
expect_pass 'exact section matches win' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,173 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for wildcards in MANDATORY_MANPATH in config file and in MANPATH.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=677669
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
> "$tmpdir/manpath.config"
|
|
||||||
|
|
||||||
MAN_TEST_DISABLE_PATH=1
|
|
||||||
export MAN_TEST_DISABLE_PATH
|
|
||||||
|
|
||||||
write_page manx 1 "$tmpdir/usr/share/man/man1/manx.1.gz" \
|
|
||||||
UTF-8 gz '' 'manx \- an interface to the on-line reference manuals'
|
|
||||||
write_page manpathx 1 "$tmpdir/usr/share/prog/a/man/man1/manpathx.1.gz" \
|
|
||||||
UTF-8 gz '' 'manpathx \- determine search path for manual pages'
|
|
||||||
write_page whatisx 1 "$tmpdir/usr/share/prog/b/man/man1/whatisx.1.gz" \
|
|
||||||
UTF-8 gz '' 'whatisx \- display manual page descriptions'
|
|
||||||
|
|
||||||
#
|
|
||||||
# Testing -M option
|
|
||||||
#
|
|
||||||
|
|
||||||
# Without wildcards
|
|
||||||
Mpath="$tmpdir/usr/share/man"
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw -M "${Mpath}" manpathx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: -M option: without wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw -M "${Mpath}" manx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man1/manx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: -M option: without wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
# With wildcards
|
|
||||||
Mpath="$tmpdir/usr/share/prog/*/man"
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw -M "${Mpath}" manx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: -M option: with wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw -M "${Mpath}" manpathx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: -M option: with wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
Mpath="$tmpdir/usr/share/prog/[ab]/man"
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw -M "${Mpath}" whatisx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: -M option: with wildcards: check existing man page II' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
#
|
|
||||||
# Testing MANPATH
|
|
||||||
#
|
|
||||||
|
|
||||||
# Without wildcards
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manpathx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: MANPATH: without wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man1/manx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANPATH: without wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
# With wildcards
|
|
||||||
MANPATH="$tmpdir/usr/share/prog/*/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: MANPATH: with wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manpathx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANPATH: with wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
MANPATH="$tmpdir/usr/share/prog/[ab]/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw whatisx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANPATH: with wildcards: check existing man page II' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
unset MANPATH
|
|
||||||
|
|
||||||
#
|
|
||||||
# Testing MANDATORY_MANPATH
|
|
||||||
#
|
|
||||||
|
|
||||||
# Without wildcards
|
|
||||||
fake_config /usr/share/man
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manpathx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: MANDATORY_MANPATH: without wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man1/manx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANDATORY_MANPATH: without wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
# With wildcards
|
|
||||||
fake_config "/usr/share/prog/*/man"
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manx > "$tmpdir/1.out" 2> /dev/null
|
|
||||||
> "$tmpdir/1.exp"
|
|
||||||
expect_pass 'wildcards: MANDATORY_MANPATH: with wildcards: check missing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw manpathx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANDATORY_MANPATH: with wildcards: check existing man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
fake_config "/usr/share/prog/[ab]/man"
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" \
|
|
||||||
-aw whatisx > "$tmpdir/1.out"
|
|
||||||
cat > "$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
|
|
||||||
EOF
|
|
||||||
expect_pass 'wildcards: MANDATORY_MANPATH: with wildcards: check existing man page II' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,90 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for relative .so links between man pages in the same section (e.g. ".so bar.1").
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=693458
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
cat >"$tmpdir/fake-program" <<EOF
|
|
||||||
#! /bin/sh
|
|
||||||
exec cat
|
|
||||||
EOF
|
|
||||||
chmod +x "$tmpdir/fake-program"
|
|
||||||
PATH="$abstmpdir:$PATH"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
cat >>"$tmpdir/manpath.config" <<EOF
|
|
||||||
DEFINE tbl fake-program
|
|
||||||
DEFINE nroff fake-program
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# There are 2 kind of tests. First, when destination is not gzipped, what means
|
|
||||||
# that .so link contains full filename and second, when the destination is
|
|
||||||
# gzipped, and .so link doesn't contain the file suffix.
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level test page'
|
|
||||||
echo '.so man1/test.1' >"$tmpdir/usr/share/man/man1/test-fullso.1"
|
|
||||||
echo '.so test.1' >"$tmpdir/usr/share/man/man1/test-relso.1"
|
|
||||||
|
|
||||||
write_page testb 1 "$tmpdir/usr/share/man/man1/testb.1.gz" \
|
|
||||||
UTF-8 'gz' '' 'testb \- top-level test page'
|
|
||||||
echo '.so man1/testb.1' >"$tmpdir/usr/share/man/man1/test-fullsob.1"
|
|
||||||
echo '.so testb.1' >"$tmpdir/usr/share/man/man1/test-relsob.1"
|
|
||||||
|
|
||||||
cat >"$tmpdir/1.exp" <<'EOF'
|
|
||||||
.TH test 1
|
|
||||||
.SH NAME
|
|
||||||
test \- top-level test page
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat >"$tmpdir/2.exp" <<'EOF'
|
|
||||||
.TH testb 1
|
|
||||||
.SH NAME
|
|
||||||
testb \- top-level test page
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
EOF
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/1.out"
|
|
||||||
expect_pass 'test(1) without .so link' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test-fullso | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/2.out"
|
|
||||||
expect_pass 'test-fullso(1) .so link with section' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test-relso | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/3.out"
|
|
||||||
expect_pass 'test-relso(1) .so link without section' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" testb | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/4.out"
|
|
||||||
expect_pass 'testb(1) without .so link; gzipped' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/4.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test-fullsob | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/5.out"
|
|
||||||
expect_pass 'test-fullsob(1) .so link with section; gzipped' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/5.out"'
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test-relsob | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/6.out"
|
|
||||||
expect_pass 'test-relsob(1) .so link without section; gzipped' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/6.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,28 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Testing empty locales on systems without /usr/share/i18n/SUPPORTED file.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=657409
|
|
||||||
#
|
|
||||||
# File /usr/share/i18n/SUPPORTED must be missing for this test to be effective.
|
|
||||||
#
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level test page'
|
|
||||||
|
|
||||||
LANG=
|
|
||||||
LC_CTYPE=
|
|
||||||
LC_ALL=
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -E UTF-8 test > /dev/null
|
|
||||||
# $? is deliberately expanded here.
|
|
||||||
expect_pass 'missing locales' "test $? -eq 0"
|
|
||||||
|
|
||||||
finish
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for invalid DB entry.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=841431
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
MAN_TEST_DISABLE_UNDOCUMENTED=1
|
|
||||||
export MAN_TEST_DISABLE_UNDOCUMENTED
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level test page'
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
|
|
||||||
rm -f "$tmpdir/usr/share/man/man1/test.1"
|
|
||||||
|
|
||||||
echo "No manual entry for test" > "$tmpdir/1.exp"
|
|
||||||
LC_ALL=C run $MAN -C "$tmpdir/manpath.config" test 2> "$tmpdir/1.out"
|
|
||||||
expect_pass 'invalid DB entry' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,58 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test additional language-specific requests for localized man pages.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
cat >"$tmpdir/fake-program" <<EOF
|
|
||||||
#! /bin/sh
|
|
||||||
exec cat
|
|
||||||
EOF
|
|
||||||
chmod +x "$tmpdir/fake-program"
|
|
||||||
PATH="$abstmpdir:$PATH"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
cat >>"$tmpdir/manpath.config" <<EOF
|
|
||||||
DEFINE tbl fake-program
|
|
||||||
DEFINE nroff fake-program
|
|
||||||
EOF
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level test page'
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/xyzzy/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- xyzzy language page for test'
|
|
||||||
|
|
||||||
write_page xyz 1 "$tmpdir/usr/share/man/man1/xyz.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level xyz page'
|
|
||||||
|
|
||||||
cat >"$tmpdir/1.exp" <<'EOF'
|
|
||||||
. mso xyzzy.tmac
|
|
||||||
.hla xyzzy
|
|
||||||
test \- xyzzy language page for test
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat >"$tmpdir/2.exp" <<'EOF'
|
|
||||||
.TH xyz 1
|
|
||||||
test \- top-level xyz page
|
|
||||||
EOF
|
|
||||||
|
|
||||||
run $MAN -L xyzzy_foo.bar -C "$tmpdir/manpath.config" test |\
|
|
||||||
grep 'xyzzy' >"$tmpdir/1.out"
|
|
||||||
expect_pass 'language-specific requests for localized man page' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
run $MAN -L xyzzy_foo.bar -C "$tmpdir/manpath.config" xyz |\
|
|
||||||
grep 'xyz' >"$tmpdir/2.out"
|
|
||||||
expect_pass 'no language-specific requests for top-level man page' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,46 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Testing override dir. This test covers both use cases - when override dir is
|
|
||||||
# enabled and when it's not.
|
|
||||||
#
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
if [ -n "$OVERRIDE_DIR" ]; then
|
|
||||||
OVERRIDE=$OVERRIDE_DIR
|
|
||||||
else
|
|
||||||
OVERRIDE="override"
|
|
||||||
fi
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
mkdir -p "${tmpdir}/usr/share/man/${OVERRIDE}/man1"
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
|
|
||||||
write_page abc 1 "${tmpdir}/usr/share/man/man1/abc.1" \
|
|
||||||
UTF-8 '' '' 'abc \- top-level test page'
|
|
||||||
write_page abc 1 "${tmpdir}/usr/share/man/${OVERRIDE}/man1/abc.1" \
|
|
||||||
UTF-8 '' '' 'abc \- modified test page'
|
|
||||||
|
|
||||||
if [ -n "$OVERRIDE_DIR" ]; then
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/${OVERRIDE}/man1/abc.1
|
|
||||||
$abstmpdir/usr/share/man/man1/abc.1
|
|
||||||
EOF
|
|
||||||
else
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
$abstmpdir/usr/share/man/man1/abc.1
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" -aw abc >"$tmpdir/1.out"
|
|
||||||
expect_pass 'testing override dir' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,43 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test manconv's support for Emacs-style coding: tags.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANCONV=manconv}
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
cat >"$tmpdir/1.exp" <<'EOF'
|
|
||||||
'\" -*- coding: ISO-8859-1
|
|
||||||
á
|
|
||||||
EOF
|
|
||||||
iconv -f UTF-8 -t ISO-8859-1 <"$tmpdir/1.exp" >"$tmpdir/1.inp"
|
|
||||||
run $MANCONV -f UTF-8 -t UTF-8 <"$tmpdir/1.inp" >"$tmpdir/1.out"
|
|
||||||
expect_pass 'simple coding tag' 'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
cat >"$tmpdir/2.exp" <<'EOF'
|
|
||||||
'\" -*- mode: troff; coding: ISO-8859-1
|
|
||||||
á
|
|
||||||
EOF
|
|
||||||
iconv -f UTF-8 -t ISO-8859-1 <"$tmpdir/2.exp" >"$tmpdir/2.inp"
|
|
||||||
run $MANCONV -f UTF-8 -t UTF-8 <"$tmpdir/2.inp" >"$tmpdir/2.out"
|
|
||||||
expect_pass 'mode and coding tags' 'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
cat >"$tmpdir/3.exp" <<'EOF'
|
|
||||||
'\" -*- mode: troff; coding: ISO-LATIN-1
|
|
||||||
á
|
|
||||||
EOF
|
|
||||||
iconv -f UTF-8 -t ISO-8859-1 <"$tmpdir/3.exp" >"$tmpdir/3.inp"
|
|
||||||
run $MANCONV -f UTF-8 -t UTF-8 <"$tmpdir/3.inp" >"$tmpdir/3.out"
|
|
||||||
expect_pass 'iso-latin-1 coding alias' 'diff -u "$tmpdir/3.exp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
cat >"$tmpdir/4.inp" <<'EOF'
|
|
||||||
'\" -*- nroff -*-
|
|
||||||
EOF
|
|
||||||
run $MANCONV -f UTF-8 -t UTF-8 <"$tmpdir/4.inp" >"$tmpdir/4.out"
|
|
||||||
expect_pass 'preprocessor comment but no coding tag' \
|
|
||||||
'diff -u "$tmpdir/4.inp" "$tmpdir/4.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,75 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test manconv's handling of various odd encoding combinations.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANCONV=manconv}
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
(for x in $(seq 160 255); do
|
|
||||||
printf "\\$(printf %03o "$x")"
|
|
||||||
done
|
|
||||||
echo) >"$tmpdir/1.inp"
|
|
||||||
|
|
||||||
iconv -f ISO-8859-1 -t UTF-8 <"$tmpdir/1.inp" >"$tmpdir/1.exp"
|
|
||||||
run $MANCONV -f UTF-8:ISO-8859-1 -t UTF-8 <"$tmpdir/1.inp" >"$tmpdir/1.out"
|
|
||||||
expect_pass '-f UTF-8:ISO-8859-1 -t UTF-8 on ISO-8859-1 input' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
iconv -f ISO-8859-2 -t UTF-8 <"$tmpdir/1.inp" >"$tmpdir/1-latin2.exp"
|
|
||||||
run $MANCONV -f UTF-8:ISO-8859-2 -t UTF-8 \
|
|
||||||
<"$tmpdir/1.inp" >"$tmpdir/1-latin2.out"
|
|
||||||
expect_pass '-f UTF-8:ISO-8859-2 -t UTF-8 on ISO-8859-2 input' \
|
|
||||||
'diff -u "$tmpdir/1-latin2.exp" "$tmpdir/1-latin2.out"'
|
|
||||||
|
|
||||||
(for x in $(seq 1 1000); do
|
|
||||||
printf '‐'
|
|
||||||
done
|
|
||||||
echo 'Б' | iconv -f UTF-8 -t KOI8-R
|
|
||||||
echo '‐') >"$tmpdir/2.inp"
|
|
||||||
iconv -f KOI8-R -t UTF-8 <"$tmpdir/2.inp" >"$tmpdir/2.exp"
|
|
||||||
run $MANCONV -f UTF-8:KOI8-R -t UTF-8 <"$tmpdir/2.inp" >"$tmpdir/2.out"
|
|
||||||
expect_pass '-f UTF-8:KOI8-R -t UTF-8 on KOI8-R input with UTF-8 prefix' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
(for x in $(seq 160 255); do
|
|
||||||
printf "\\$(printf %03o "$x")"
|
|
||||||
done
|
|
||||||
echo) | iconv -f ISO-8859-1 -t UTF-8 >"$tmpdir/3.inp"
|
|
||||||
run $MANCONV -f UTF-8:ISO-8859-1 -t UTF-8 <"$tmpdir/3.inp" >"$tmpdir/3.out"
|
|
||||||
expect_pass '-f UTF-8:ISO-8859-1 -t UTF-8 preserves UTF-8 input' \
|
|
||||||
'diff -u "$tmpdir/3.inp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
# U+00B7 MIDDLE DOT is not representable in ISO-8859-2, and so should be
|
|
||||||
# omitted. However, manconv should still recognise that the input was UTF-8
|
|
||||||
# rather than falling back to ISO-8859-2.
|
|
||||||
cat >"$tmpdir/4.inp" <<'EOF'
|
|
||||||
š·ł
|
|
||||||
EOF
|
|
||||||
iconv -f UTF-8 -t ISO-8859-2 >"$tmpdir/4.exp" <<EOF
|
|
||||||
šł
|
|
||||||
EOF
|
|
||||||
run $MANCONV -f UTF-8:ISO-8859-2 -t ISO-8859-2//IGNORE \
|
|
||||||
<"$tmpdir/4.inp" >"$tmpdir/4.out"
|
|
||||||
expect_pass 'recognises input encoding and omits invalid output character' \
|
|
||||||
'diff -u "$tmpdir/4.exp" "$tmpdir/4.out"'
|
|
||||||
|
|
||||||
# 0xAE does not exist in ISO-8859-7, so manconv won't be able to recode this
|
|
||||||
# to UTF-8 without conversion errors. (In the original case where this was
|
|
||||||
# seen in the wild, the coding: tag should actually have read ISO-8859-13.)
|
|
||||||
iconv -f UTF-8 -t ISO-8859-13 >"$tmpdir/5.inp" <<'EOF'
|
|
||||||
'\" -*- coding: ISO-8859-7
|
|
||||||
REGISTERED SIGN: ®
|
|
||||||
trailing data
|
|
||||||
EOF
|
|
||||||
iconv -f ISO-8859-7 -t UTF-8//IGNORE \
|
|
||||||
<"$tmpdir/5.inp" >"$tmpdir/5.exp" 2>/dev/null
|
|
||||||
run $MANCONV -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE \
|
|
||||||
<"$tmpdir/5.inp" >"$tmpdir/5.out"
|
|
||||||
expect_pass 'copes with invalid input characters' \
|
|
||||||
'diff -u "$tmpdir/5.exp" "$tmpdir/5.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,15 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test manconv's handling of incomplete characters at end of file.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANCONV=manconv}
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
printf '\314' >"$tmpdir/1.inp" # 0xCC
|
|
||||||
expect_pass 'incomplete character at EOF' '! run $MANCONV -f EUC-JP -t UTF-8//IGNORE <"$tmpdir/1.inp" >/dev/null'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,24 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Basic mandb tests.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
: ${ACCESSDB=accessdb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
db_ext="$(db_ext)"
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1.gz" UTF-8 gz t \
|
|
||||||
'test \- simple mandb test'
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
echo 'test -> "- 1 1 MTIME A - - gz simple mandb test"' >"$tmpdir/1.exp"
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/1.out"
|
|
||||||
expect_pass 'simple mandb test' 'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,67 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# What happens when a manual page changes from a regular file to a symbolic
|
|
||||||
# link and back?
|
|
||||||
# http://bugs.debian.org/490582
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
: ${ACCESSDB=accessdb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
db_ext="$(db_ext)"
|
|
||||||
|
|
||||||
write_page fs 5 "$tmpdir/usr/share/man/man5/fs.5.gz" \
|
|
||||||
UTF-8 gz t 'fs \- fs(5)'
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
fs -> "- 5 5 MTIME A - - gz fs(5)"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/1.out"
|
|
||||||
expect_pass 'fs(5) setup' 'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
write_page filesystems 5 "$tmpdir/usr/share/man/man5/filesystems.5.gz" \
|
|
||||||
UTF-8 gz t 'filesystems \- filesystems(5)'
|
|
||||||
ln -sf filesystems.5.gz "$tmpdir/usr/share/man/man5/fs.5.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/2.exp" <<EOF
|
|
||||||
filesystems -> "- 5 5 MTIME A - - gz filesystems(5)"
|
|
||||||
fs -> "- 5 5 MTIME B - - gz filesystems(5)"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/2.out"
|
|
||||||
expect_pass 'mandb notices regular file -> symlink' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
ln -sf fs.5.gz "$tmpdir/usr/share/man/man5/fs2.5.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/3.exp" <<EOF
|
|
||||||
filesystems -> "- 5 5 MTIME A - - gz filesystems(5)"
|
|
||||||
fs -> "- 5 5 MTIME B - - gz filesystems(5)"
|
|
||||||
fs2 -> "- 5 5 MTIME B - - gz filesystems(5)"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/3.out"
|
|
||||||
expect_pass 'mandb notices two-level symlink' \
|
|
||||||
'diff -u "$tmpdir/3.exp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
rm -f "$tmpdir/usr/share/man/man5/fs.5.gz"
|
|
||||||
write_page fs 5 "$tmpdir/usr/share/man/man5/fs.5.gz" \
|
|
||||||
UTF-8 gz t 'fs \- new fs(5)'
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/4.exp" <<EOF
|
|
||||||
filesystems -> "- 5 5 MTIME A - - gz filesystems(5)"
|
|
||||||
fs -> "- 5 5 MTIME A - - gz new fs(5)"
|
|
||||||
fs2 -> "- 5 5 MTIME B - - gz filesystems(5)"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/4.out"
|
|
||||||
expect_pass 'mandb notices symlink -> regular file' \
|
|
||||||
'diff -u "$tmpdir/4.exp" "$tmpdir/4.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,55 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Ensure that we don't repeatedly rescan when a whatis entry turns into a
|
|
||||||
# broken link.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
: ${ACCESSDB=accessdb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
db_ext="$(db_ext)"
|
|
||||||
|
|
||||||
NL='
|
|
||||||
'
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1.gz" UTF-8 gz t \
|
|
||||||
"test \- test page${NL}.br${NL}testlink \- link to test page"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
test -> "- 1 1 MTIME A - - gz test page"
|
|
||||||
testlink -> "- 1 1 MTIME C test - gz "
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/1.out"
|
|
||||||
expect_pass 'setup' 'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
echo '.so nonexistent.1' | gzip -9c >"$tmpdir/usr/share/man/man1/testlink.1.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
cat >"$tmpdir/2.exp" <<EOF
|
|
||||||
test -> "- 1 1 MTIME A - - gz test page"
|
|
||||||
testlink -> "- 1 1 MTIME C test - gz "
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/2.out"
|
|
||||||
expect_pass 'broken whatis' 'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
LC_ALL=C run $MANDB -C "$tmpdir/manpath.config" -u \
|
|
||||||
"$tmpdir/usr/share/man" >"$tmpdir/3.out" 2>/dev/null
|
|
||||||
cat >"$tmpdir/3.exp" <<EOF
|
|
||||||
Purging old database entries in $abstmpdir/usr/share/man...
|
|
||||||
Processing manual pages under $abstmpdir/usr/share/man...
|
|
||||||
Processing manual pages under $abstmpdir/usr/share/man/cat1...
|
|
||||||
0 man subdirectories contained newer manual pages.
|
|
||||||
0 manual pages were added.
|
|
||||||
0 stray cats were added.
|
|
||||||
0 old database entries were purged.
|
|
||||||
EOF
|
|
||||||
expect_pass 'mandb does not rescan' 'diff -u "$tmpdir/3.exp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,60 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# http://bugs.debian.org/204249
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
: ${ACCESSDB=accessdb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man /usr/X11R6/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man:$tmpdir/usr/X11R6/man"
|
|
||||||
export MANPATH
|
|
||||||
db_ext="$(db_ext)"
|
|
||||||
|
|
||||||
write_page xterm 1x "$tmpdir/usr/X11R6/man/man1/xterm.1x.gz" \
|
|
||||||
UTF-8 gz '' 'xterm \- terminal emulator for X'
|
|
||||||
mkdir -p "$tmpdir/usr/share/man/man1"
|
|
||||||
ln -s ../../../X11R6/man/man1/xterm.1x.gz \
|
|
||||||
"$tmpdir/usr/share/man/man1/x-terminal-emulator.1.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q \
|
|
||||||
"$tmpdir/usr/share/man:$tmpdir/usr/X11R6/man"
|
|
||||||
cat >"$tmpdir/1-share.exp" <<EOF
|
|
||||||
x-terminal-emulator -> "- 1 1 MTIME B - - gz terminal emulator for X"
|
|
||||||
EOF
|
|
||||||
cat >"$tmpdir/1-X11R6.exp" <<EOF
|
|
||||||
xterm -> "- 1x 1 MTIME A - - gz terminal emulator for X"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/1-share.out"
|
|
||||||
accessdb_filter "$tmpdir/usr/X11R6/man/index$db_ext" >"$tmpdir/1-X11R6.out"
|
|
||||||
expect_pass '/usr/share/man x-terminal-emulator -> xterm' \
|
|
||||||
'diff -u "$tmpdir/1-share.exp" "$tmpdir/1-share.out"'
|
|
||||||
expect_pass '/usr/X11R6/man x-terminal-emulator -> xterm' \
|
|
||||||
'diff -u "$tmpdir/1-X11R6.exp" "$tmpdir/1-X11R6.out"'
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
write_page uxterm 1x "$tmpdir/usr/X11R6/man/man1/uxterm.1x.gz" \
|
|
||||||
UTF-8 gz '' \
|
|
||||||
'uxterm \- X terminal emulator for Unicode (UTF-8) environments'
|
|
||||||
ln -sf ../../../X11R6/man/man1/uxterm.1x.gz \
|
|
||||||
"$tmpdir/usr/share/man/man1/x-terminal-emulator.1.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q \
|
|
||||||
"$tmpdir/usr/share/man:$tmpdir/usr/X11R6/man"
|
|
||||||
cat >"$tmpdir/2-share.exp" <<EOF
|
|
||||||
x-terminal-emulator -> "- 1 1 MTIME B - - gz X terminal emulator for Unicode (UTF-8) environments"
|
|
||||||
EOF
|
|
||||||
cat >"$tmpdir/2-X11R6.exp" <<EOF
|
|
||||||
uxterm -> "- 1x 1 MTIME A - - gz X terminal emulator for Unicode (UTF-8) environments"
|
|
||||||
xterm -> "- 1x 1 MTIME A - - gz terminal emulator for X"
|
|
||||||
EOF
|
|
||||||
accessdb_filter "$tmpdir/usr/share/man/index$db_ext" >"$tmpdir/2-share.out"
|
|
||||||
accessdb_filter "$tmpdir/usr/X11R6/man/index$db_ext" >"$tmpdir/2-X11R6.out"
|
|
||||||
expect_pass '/usr/share/man x-terminal-emulator -> uxterm' \
|
|
||||||
'diff -u "$tmpdir/2-share.exp" "$tmpdir/2-share.out"'
|
|
||||||
expect_pass '/usr/X11R6/man x-terminal-emulator -> uxterm' \
|
|
||||||
'diff -u "$tmpdir/2-X11R6.exp" "$tmpdir/2-X11R6.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,30 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test handling of empty files.
|
|
||||||
# http://bugs.debian.org/622104
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man /usr/X11R6/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
db_ext="$(db_ext)"
|
|
||||||
|
|
||||||
mkdir -p "$tmpdir/usr/share/man/man1"
|
|
||||||
touch "$tmpdir/usr/share/man/man1/empty.1"
|
|
||||||
gzip -9 "$tmpdir/usr/share/man/man1/empty.1"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
# $? is deliberately expanded here.
|
|
||||||
expect_pass 'empty page' "test $? -eq 0"
|
|
||||||
|
|
||||||
./fspause
|
|
||||||
ln -s empty.1.gz "$tmpdir/usr/share/man/man1/empty2.1.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
# $? is deliberately expanded here.
|
|
||||||
expect_pass 'symlink to empty page' "test $? -eq 0"
|
|
||||||
|
|
||||||
finish
|
|
@ -1,25 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for double free or corruption crash with bogus filename and symlink of man page.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=702904
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
mkdir -p "$tmpdir/usr/share/man/man8"
|
|
||||||
mkdir -p "$tmpdir/usr/lib/aa-bbb"
|
|
||||||
write_page test1 8 "$tmpdir/usr/lib/aa-bbb/aa-test1.8.gz" UTF-8 gz t \
|
|
||||||
'test1 \- testing man page'
|
|
||||||
ln -s "../../../lib/aa-bbb/aa-test1.8.gz" "$tmpdir/usr/share/man/man8/aa-test1.8.gz"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q "$tmpdir/usr/share/man"
|
|
||||||
# $? is deliberately expanded here.
|
|
||||||
expect_pass 'double free' "test $? -eq 0"
|
|
||||||
|
|
||||||
finish
|
|
@ -1,28 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Don't create CACHEDIR.TAG in manpath
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man
|
|
||||||
mkdir -p "$tmpdir/usr/share/man"
|
|
||||||
mkdir -p "$tmpdir/usr/dir/man"
|
|
||||||
mkdir -p "$tmpdir/var/cache/man"
|
|
||||||
echo "MANDATORY_MANPATH $abstmpdir/usr/share/man" > "$tmpdir/manpath.config"
|
|
||||||
echo "MANDATORY_MANPATH $abstmpdir/usr/dir/man" >> "$tmpdir/manpath.config"
|
|
||||||
echo "MANDB_MAP $abstmpdir/usr/share/man $abstmpdir/var/cache/man" >> "$tmpdir/manpath.config"
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" UTF-8 '' '' \
|
|
||||||
'test \- simple mandb test'
|
|
||||||
write_page test2 1 "$tmpdir/usr/dir/man/man1/test2.1" UTF-8 '' '' \
|
|
||||||
'test2 \- simple mandb test'
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -q "$tmpdir/usr/share/man:$tmpdir/usr/dir/man"
|
|
||||||
expect_pass "CACHEDIR.TAG exists" "[ -e $tmpdir/var/cache/man/CACHEDIR.TAG ]"
|
|
||||||
expect_pass "CACHEDIR.TAG doesn't exist 01" "[ ! -e $tmpdir/usr/share/man/CACHEDIR.TAG ]"
|
|
||||||
expect_pass "CACHEDIR.TAG doesn't exist 02" "[ ! -e $tmpdir/usr/dir/man/CACHEDIR.TAG ]"
|
|
||||||
|
|
||||||
finish
|
|
@ -1,105 +0,0 @@
|
|||||||
failures=0
|
|
||||||
|
|
||||||
# Save tests the trouble of exporting variables they set when executing 'run'.
|
|
||||||
export LC_ALL
|
|
||||||
|
|
||||||
# Isolate tests from whatever the system configuration may happen to be.
|
|
||||||
MAN_TEST_DISABLE_SYSTEM_CONFIG=1
|
|
||||||
export MAN_TEST_DISABLE_SYSTEM_CONFIG
|
|
||||||
|
|
||||||
init () {
|
|
||||||
# Create a temporary directory in /tmp or ./ ,
|
|
||||||
# put path to it into $tmpdir and $abstmpdir,
|
|
||||||
# remove it on exit.
|
|
||||||
{
|
|
||||||
tmpdir=$(mktemp -d) &&
|
|
||||||
abstmpdir="$tmpdir" &&
|
|
||||||
test -d "$tmpdir"
|
|
||||||
} || {
|
|
||||||
tmpdir="tmp-${0##*/}"
|
|
||||||
abstmpdir="$(pwd -P)/$tmpdir"
|
|
||||||
mkdir "$tmpdir"
|
|
||||||
} ||
|
|
||||||
exit $?
|
|
||||||
trap 'rm -rf "$tmpdir"' HUP INT QUIT TERM
|
|
||||||
}
|
|
||||||
|
|
||||||
run () {
|
|
||||||
"$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
fake_config () {
|
|
||||||
for dir; do
|
|
||||||
echo "MANDATORY_MANPATH $tmpdir$dir"
|
|
||||||
done >"$tmpdir/manpath.config"
|
|
||||||
}
|
|
||||||
|
|
||||||
db_ext () {
|
|
||||||
case $DBTYPE in
|
|
||||||
gdbm) echo .db ;;
|
|
||||||
btree) echo .bt ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Arguments: name section path encoding compression_extension preprocessor_line name_line
|
|
||||||
write_page () {
|
|
||||||
mkdir -p "${3%/*}"
|
|
||||||
>"$3.tmp1"
|
|
||||||
if [ "$6" ]; then
|
|
||||||
echo "'\\\" $6" >>"$3.tmp1"
|
|
||||||
fi
|
|
||||||
cat >>"$3.tmp1" <<EOF
|
|
||||||
.TH $1 $2
|
|
||||||
.SH NAME
|
|
||||||
$7
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
EOF
|
|
||||||
iconv -f UTF-8 -t "$4" <"$3.tmp1" >"$3.tmp2"
|
|
||||||
case $5 in
|
|
||||||
'') cat ;;
|
|
||||||
gz|z) gzip -9c ;;
|
|
||||||
Z) compress -c ;;
|
|
||||||
bz2) bzip2 -9c ;;
|
|
||||||
lzma) lzma -9c ;;
|
|
||||||
esac <"$3.tmp2" >"$3"
|
|
||||||
rm -f "$3.tmp1" "$3.tmp2"
|
|
||||||
}
|
|
||||||
|
|
||||||
accessdb_filter () {
|
|
||||||
# e.g. 'test -> "- 1 1 1250702063 A - - gz simple mandb test"'
|
|
||||||
run $ACCESSDB "$1" | grep -v '^\$' | \
|
|
||||||
sed 's/\(-> "[^ ][^ ]* [^ ][^ ]* [^ ][^ ]* \)[^ ][^ ]* [^ ][^ ]* /\1MTIME /'
|
|
||||||
}
|
|
||||||
|
|
||||||
expect_pass () {
|
|
||||||
ret=0
|
|
||||||
eval "$2" || ret=$?
|
|
||||||
if [ "$ret" = 0 ]; then
|
|
||||||
echo " PASS: $1"
|
|
||||||
else
|
|
||||||
failures="$(($failures + 1))"
|
|
||||||
echo " FAIL: $1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
skip () {
|
|
||||||
echo " SKIP: $1"
|
|
||||||
rm -rf "$abstmpdir"
|
|
||||||
exit 77
|
|
||||||
}
|
|
||||||
|
|
||||||
finish () {
|
|
||||||
case $failures in
|
|
||||||
0)
|
|
||||||
rm -rf "$abstmpdir"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [ -z "$TEST_FAILURE_KEEP" ]; then
|
|
||||||
rm -rf "$abstmpdir"
|
|
||||||
fi
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test that whatis behaves appropriately when given a path to an executable.
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MANDB=mandb}
|
|
||||||
: ${WHATIS=whatis}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/share/man /usr/local/man
|
|
||||||
cat >>"$tmpdir/manpath.config" <<EOF
|
|
||||||
MANPATH_MAP $tmpdir/usr/bin $tmpdir/usr/share/man
|
|
||||||
MANPATH_MAP $tmpdir/usr/local/bin $tmpdir/usr/local/man
|
|
||||||
EOF
|
|
||||||
MANPATH="$tmpdir/usr/share/man:$tmpdir/usr/local/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1.gz" \
|
|
||||||
UTF-8 gz '' 'test \- /usr/bin/test'
|
|
||||||
write_page test 8 "$tmpdir/usr/local/man/man8/test.8.gz" \
|
|
||||||
UTF-8 gz '' 'test \- /usr/local/bin/test'
|
|
||||||
mkdir -p "$tmpdir/usr/bin" "$tmpdir/usr/local/bin"
|
|
||||||
touch "$tmpdir/usr/bin/test" "$tmpdir/usr/local/bin/test"
|
|
||||||
chmod +x "$tmpdir/usr/bin/test" "$tmpdir/usr/local/bin/test"
|
|
||||||
run $MANDB -C "$tmpdir/manpath.config" -u -q \
|
|
||||||
"$tmpdir/usr/share/man:$tmpdir/usr/local/man"
|
|
||||||
|
|
||||||
cat >"$tmpdir/1.exp" <<EOF
|
|
||||||
test (1) - /usr/bin/test
|
|
||||||
test (8) - /usr/local/bin/test
|
|
||||||
EOF
|
|
||||||
PATH="$PATH:$tmpdir/usr/bin:$tmpdir/usr/local/bin" run $WHATIS \
|
|
||||||
-C "$tmpdir/manpath.config" test >"$tmpdir/1.out"
|
|
||||||
expect_pass 'simple name returns all matches' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
cat >"$tmpdir/2.exp" <<EOF
|
|
||||||
test (1) - /usr/bin/test
|
|
||||||
EOF
|
|
||||||
PATH="$PATH:$tmpdir/usr/bin:$tmpdir/usr/local/bin" run $WHATIS \
|
|
||||||
-C "$tmpdir/manpath.config" "$tmpdir/usr/bin/test" >"$tmpdir/2.out"
|
|
||||||
expect_pass '/usr/bin/test only returns appropriate match' \
|
|
||||||
'diff -u "$tmpdir/2.exp" "$tmpdir/2.out"'
|
|
||||||
|
|
||||||
cat >"$tmpdir/3.exp" <<EOF
|
|
||||||
test (8) - /usr/local/bin/test
|
|
||||||
EOF
|
|
||||||
PATH="$PATH:$tmpdir/usr/bin:$tmpdir/usr/local/bin" run $WHATIS \
|
|
||||||
-C "$tmpdir/manpath.config" "$tmpdir/usr/local/bin/test" \
|
|
||||||
>"$tmpdir/3.out"
|
|
||||||
expect_pass '/usr/local/bin/test only returns appropriate match' \
|
|
||||||
'diff -u "$tmpdir/3.exp" "$tmpdir/3.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,61 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
# Test for:
|
|
||||||
# http://bugs.debian.org/503472
|
|
||||||
|
|
||||||
: ${srcdir=.}
|
|
||||||
. "$srcdir/testlib.sh"
|
|
||||||
|
|
||||||
: ${MAN=man}
|
|
||||||
|
|
||||||
init
|
|
||||||
fake_config /usr/local/man /usr/share/man
|
|
||||||
MANPATH="$tmpdir/usr/local/man:$tmpdir/usr/share/man"
|
|
||||||
export MANPATH
|
|
||||||
|
|
||||||
cat >"$tmpdir/fake-program" <<EOF
|
|
||||||
#! /bin/sh
|
|
||||||
exec cat
|
|
||||||
EOF
|
|
||||||
chmod +x "$tmpdir/fake-program"
|
|
||||||
PATH="$abstmpdir:$PATH"
|
|
||||||
export PATH
|
|
||||||
|
|
||||||
cat >>"$tmpdir/manpath.config" <<EOF
|
|
||||||
DEFINE tbl fake-program
|
|
||||||
DEFINE nroff fake-program
|
|
||||||
EOF
|
|
||||||
|
|
||||||
write_page test 1 "$tmpdir/usr/share/man/man1/test.1" \
|
|
||||||
UTF-8 '' '' 'test \- top-level test page'
|
|
||||||
echo '.so man7/test2.7' >>"$tmpdir/usr/share/man/man1/test.1"
|
|
||||||
write_page test2 7 "$tmpdir/usr/local/man/man7/test2.7" \
|
|
||||||
UTF-8 '' '' 'test2 \- second-level local test page'
|
|
||||||
echo '.so test3.1' >>"$tmpdir/usr/local/man/man7/test2.7"
|
|
||||||
write_page test3 1 "$tmpdir/usr/local/man/man1/test3.1" \
|
|
||||||
UTF-8 '' '' 'test3 \- third-level local test page'
|
|
||||||
write_page test3 1 "$tmpdir/usr/share/man/man1/test3.1" \
|
|
||||||
UTF-8 '' '' 'test3 \- third-level test page'
|
|
||||||
cat >"$tmpdir/1.exp" <<'EOF'
|
|
||||||
.TH test 1
|
|
||||||
.SH NAME
|
|
||||||
test \- top-level test page
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
.TH test2 7
|
|
||||||
.SH NAME
|
|
||||||
test2 \- second-level local test page
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
.TH test3 1
|
|
||||||
.SH NAME
|
|
||||||
test3 \- third-level test page
|
|
||||||
.SH DESCRIPTION
|
|
||||||
test
|
|
||||||
EOF
|
|
||||||
run $MAN -C "$tmpdir/manpath.config" test | \
|
|
||||||
grep -v '^\.l[flt] ' >"$tmpdir/1.out"
|
|
||||||
expect_pass 'test(1) expanded correctly' \
|
|
||||||
'diff -u "$tmpdir/1.exp" "$tmpdir/1.out"'
|
|
||||||
|
|
||||||
finish
|
|
@ -1,13 +0,0 @@
|
|||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: standard-test-beakerlib
|
|
||||||
tags:
|
|
||||||
- atomic
|
|
||||||
- classic
|
|
||||||
- container
|
|
||||||
tests:
|
|
||||||
- upstream-test-suite
|
|
||||||
required_packages:
|
|
||||||
- man-db
|
|
||||||
- gcc
|
|
||||||
- make
|
|
@ -1,27 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh
|
|
||||||
|
|
||||||
TEST="/BaseOS/man-db/Sanity/upstream-test-suite"
|
|
||||||
|
|
||||||
PACKAGES=${PACKAGES:-"man-db"}
|
|
||||||
REQUIRES=${REQUIRES:-"gcc make"}
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm --all
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "cp -r man-db/* $TmpDir/." 0 "Copying test suite"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "make test" 0 "Running tests"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
Loading…
Reference in New Issue
Block a user