parent
75b683fe49
commit
da858b86c2
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
||||
/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
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 50e4ba5f8848a422cf82c5b79ab0e32c8bfa10eb Mon Sep 17 00:00:00 2001
|
||||
From 490ef9d4ea308491f56c4c51712126127b2de004 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
|
||||
Date: Tue, 27 Aug 2019 17:53:03 +0200
|
||||
Subject: [PATCH] man(1): Fix override dir handling
|
||||
@ -26,10 +26,10 @@ Tested-by: Nikola Forró <nforro@redhat.com>
|
||||
2 files changed, 54 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/src/man.c b/src/man.c
|
||||
index 207e6f6..9b3d038 100644
|
||||
index 24651d1..d5dc8e3 100644
|
||||
--- a/src/man.c
|
||||
+++ b/src/man.c
|
||||
@@ -2688,6 +2688,32 @@ static bool duplicate_candidates (struct candidate *left,
|
||||
@@ -2684,6 +2684,32 @@ static bool duplicate_candidates (struct candidate *left,
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ index 207e6f6..9b3d038 100644
|
||||
static int compare_candidates (const struct candidate *left,
|
||||
const struct candidate *right)
|
||||
{
|
||||
@@ -2777,6 +2803,13 @@ static int compare_candidates (const struct candidate *left,
|
||||
@@ -2773,6 +2799,13 @@ static int compare_candidates (const struct candidate *left,
|
||||
if (cmp)
|
||||
return cmp;
|
||||
|
||||
@ -77,10 +77,10 @@ index 207e6f6..9b3d038 100644
|
||||
* 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 588f47c..db34c15 100644
|
||||
index 5441339..c4a25fd 100644
|
||||
--- a/src/manp.c
|
||||
+++ b/src/manp.c
|
||||
@@ -935,23 +935,6 @@ static char *def_path (enum config_flag flag)
|
||||
@@ -903,23 +903,6 @@ static char *def_path (enum config_flag flag)
|
||||
return manpath;
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ index 588f47c..db34c15 100644
|
||||
/*
|
||||
* 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
|
||||
@@ -1000,7 +983,6 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
||||
@@ -968,7 +951,6 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
||||
if (!manpath_map_found)
|
||||
debug ("is in the config file\n");
|
||||
manpath_map_found = true;
|
||||
@ -112,8 +112,8 @@ index 588f47c..db34c15 100644
|
||||
add_dir_to_list (tmplist, config_item->cont);
|
||||
} GL_LIST_FOREACH_END (config);
|
||||
|
||||
@@ -1021,11 +1003,8 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
||||
debug ("\nadding mandatory man directories\n\n");
|
||||
@@ -989,11 +971,8 @@ char *get_manpath_from_path (const char *path, int mandatory)
|
||||
debug ("adding mandatory man directories\n");
|
||||
|
||||
GL_LIST_FOREACH_START (config, config_item) {
|
||||
- if (config_item->flag == MANDATORY) {
|
||||
@ -125,48 +125,52 @@ index 588f47c..db34c15 100644
|
||||
} GL_LIST_FOREACH_END (config);
|
||||
}
|
||||
|
||||
@@ -1113,7 +1092,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
@@ -1078,7 +1057,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
if (subdir) {
|
||||
newpath = xasprintf ("%.*s/man", (int) (subdir - path), path);
|
||||
if (is_directory (newpath) == 1) {
|
||||
- insert_override_dir (list, newpath);
|
||||
add_dir_to_list (list, newpath);
|
||||
found = 1;
|
||||
}
|
||||
@@ -1122,7 +1100,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
free (newpath);
|
||||
@@ -1086,7 +1064,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
|
||||
newpath = xasprintf ("%s/man", path);
|
||||
if (is_directory (newpath) == 1) {
|
||||
- insert_override_dir (list, newpath);
|
||||
add_dir_to_list (list, newpath);
|
||||
found = 1;
|
||||
}
|
||||
@@ -1132,7 +1109,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
free (newpath);
|
||||
@@ -1095,7 +1072,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
newpath = xasprintf ("%.*s/share/man",
|
||||
(int) (subdir - path), path);
|
||||
if (is_directory (newpath) == 1) {
|
||||
- insert_override_dir (list, newpath);
|
||||
add_dir_to_list (list, newpath);
|
||||
found = 1;
|
||||
}
|
||||
@@ -1141,7 +1117,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
free (newpath);
|
||||
@@ -1103,7 +1079,6 @@ static void add_man_subdirs (gl_list_t list, const char *path)
|
||||
|
||||
newpath = xasprintf ("%s/share/man", path);
|
||||
if (is_directory (newpath) == 1) {
|
||||
- insert_override_dir (list, newpath);
|
||||
add_dir_to_list (list, newpath);
|
||||
found = 1;
|
||||
}
|
||||
@@ -1193,19 +1168,31 @@ gl_list_t create_pathlist (const char *manp)
|
||||
gl_list_node_t node;
|
||||
const char *p, *end;
|
||||
free (newpath);
|
||||
@@ -1199,7 +1174,9 @@ gl_list_t create_pathlist (const char *manp)
|
||||
const struct canonicalized_path *cp;
|
||||
|
||||
- /* 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.
|
||||
+ * */
|
||||
|
||||
list = new_string_list (GL_LINKEDHASH_LIST, true);
|
||||
/* Expand the manpath into a list of (path, canonicalized path)
|
||||
- * pairs for easier handling. add_dir_to_path_list only adds items
|
||||
+ * pairs for easier handling. For each entry, add corresponding
|
||||
+ * OVERRIDE_DIR.
|
||||
+ * add_dir_to_path_list only adds items
|
||||
* if they do not have the same canonicalized path as an existing
|
||||
* item, thereby eliminating duplicates due to symlinks.
|
||||
*/
|
||||
@@ -1208,15 +1185,25 @@ gl_list_t create_pathlist (const char *manp)
|
||||
(GL_LINKEDHASH_LIST, canonicalized_path_equals,
|
||||
canonicalized_path_hash, canonicalized_path_free, false);
|
||||
for (p = manp;; p = end + 1) {
|
||||
+ char *element, *element_override;
|
||||
+ ssize_t p_len;
|
||||
@ -174,10 +178,10 @@ index 588f47c..db34c15 100644
|
||||
end = strchr (p, ':');
|
||||
- if (end) {
|
||||
- char *element = xstrndup (p, end - p);
|
||||
- add_dir_to_path_list (list, element);
|
||||
- add_dir_to_path_list (canonicalized_list, element);
|
||||
- free (element);
|
||||
- } else {
|
||||
- add_dir_to_path_list (list, p);
|
||||
- add_dir_to_path_list (canonicalized_list, p);
|
||||
- break;
|
||||
+ p_len = end ? end - p : (ssize_t)strlen(p);
|
||||
+
|
||||
@ -185,18 +189,18 @@ index 588f47c..db34c15 100644
|
||||
+
|
||||
+ if (strlen(OVERRIDE_DIR)) {
|
||||
+ element_override = xasprintf("%s/%s", element, OVERRIDE_DIR);
|
||||
+ add_dir_to_path_list (list, element_override);
|
||||
+ add_dir_to_path_list (canonicalized_list, element_override);
|
||||
+ free (element_override);
|
||||
}
|
||||
+
|
||||
+ add_dir_to_path_list (list, element);
|
||||
+ add_dir_to_path_list (canonicalized_list, element);
|
||||
+ free (element);
|
||||
+
|
||||
+ if (!end)
|
||||
+ break;
|
||||
}
|
||||
|
||||
/* Eliminate duplicates due to symlinks. */
|
||||
list = new_string_list (GL_ARRAY_LIST, false);
|
||||
--
|
||||
2.21.0
|
||||
2.21.1
|
||||
|
||||
|
10
man-db.spec
10
man-db.spec
@ -3,8 +3,8 @@
|
||||
|
||||
Summary: Tools for searching and reading man pages
|
||||
Name: man-db
|
||||
Version: 2.8.7
|
||||
Release: 2%{?dist}
|
||||
Version: 2.9.0
|
||||
Release: 1%{?dist}
|
||||
# GPLv2+ .. man-db
|
||||
# GPLv3+ .. gnulib
|
||||
License: GPLv2+ and GPLv3+
|
||||
@ -136,6 +136,7 @@ fi
|
||||
%{_unitdir}/man-db-restart-cache-update.service
|
||||
%{_sbindir}/accessdb
|
||||
%{_bindir}/man
|
||||
%{_bindir}/man-recode
|
||||
%{_bindir}/whatis
|
||||
%{_bindir}/apropos
|
||||
%{_bindir}/manpath
|
||||
@ -153,6 +154,7 @@ fi
|
||||
%{_mandir}/man1/apropos.1*
|
||||
%{_mandir}/man1/lexgrog.1*
|
||||
%{_mandir}/man1/man.1*
|
||||
%{_mandir}/man1/man-recode.1*
|
||||
%{_mandir}/man1/manconv.1*
|
||||
%{_mandir}/man1/manpath.1*
|
||||
%{_mandir}/man1/whatis.1*
|
||||
@ -181,6 +183,10 @@ fi
|
||||
%config(noreplace) %{_sysconfdir}/cron.daily/man-db.cron
|
||||
|
||||
%changelog
|
||||
* 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
|
||||
system reboot/shutdown
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (man-db-2.8.7.tar.xz) = 9f9d6f3b776c0b35f95c179fb668f2dc3db3d3e63a162cfda98c5d126fe147f2418e1a1503037ebe28314f57d9b6f48b7f7674d611df14424973a866a61ff2d9
|
||||
SHA512 (man-db-2.9.0.tar.xz) = 7deb4421c7944276c6edf974b1336ee2f6605ee470c98d374544e2fcaa32ec2afe077c5fd020fc1f74df058384a293b8ad5a92d86b1c15a949573af46ba09cda
|
||||
|
Loading…
Reference in New Issue
Block a user