From 7f04a949be518809374b41a94ad5c8f3aa2bb2af Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 8 Nov 2022 06:29:30 +0000 Subject: [PATCH] Auto sync2gitlab import of yelp-3.28.1-3.el8.src.rpm --- .gitignore | 1 + ...rintf-format-attribute-to-yelp_debug.patch | 30 + 0001-Center-new-windows.patch | 26 + 0001-Fix-build-with-GCC-8.patch | 185 +++ ...cument-has-a-root-element-before-acc.patch | 63 + ...e-index-variable-is-valid-before-der.patch | 44 + ...whether-virtual-method-is-implemente.patch | 134 +++ ...riable-node-is-set-before-dereferenc.patch | 36 + ...x-a-use-of-an-uninitialized-variable.patch | 32 + ...e-index-variable-is-valid-before-der.patch | 29 + ...rser-is-null-before-dereferencing-it.patch | 35 + ...overrun-while-comparing-to-MAN_FONTS.patch | 40 + ...e-of-string-variables-passed-to-ssca.patch | 37 + ...s_start-variable-before-returning-it.patch | 27 + ...ks-to-avoid-possible-null-pointer-de.patch | 32 + ...-strstr-return-value-before-using-it.patch | 33 + ...eck-variable-before-dereferencing-it.patch | 27 + 0015-Remove-unused-variable.patch | 32 + 0016-Fix-possible-double-free.patch | 225 ++++ ...d-encoding-and-language-code-from-Ye.patch | 147 +++ EMPTY | 1 - sources | 1 + yelp-quit.patch | 83 ++ yelp.spec | 1055 +++++++++++++++++ 24 files changed, 2354 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch create mode 100644 0001-Center-new-windows.patch create mode 100644 0001-Fix-build-with-GCC-8.patch create mode 100644 0002-Check-whether-document-has-a-root-element-before-acc.patch create mode 100644 0003-Check-whether-the-index-variable-is-valid-before-der.patch create mode 100644 0004-Correctly-check-whether-virtual-method-is-implemente.patch create mode 100644 0005-Check-whether-variable-node-is-set-before-dereferenc.patch create mode 100644 0006-Fix-a-use-of-an-uninitialized-variable.patch create mode 100644 0007-Check-whether-the-index-variable-is-valid-before-der.patch create mode 100644 0008-Check-whether-parser-is-null-before-dereferencing-it.patch create mode 100644 0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch create mode 100644 0010-Increase-the-size-of-string-variables-passed-to-ssca.patch create mode 100644 0011-Initialize-ws_start-variable-before-returning-it.patch create mode 100644 0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch create mode 100644 0013-Check-the-strstr-return-value-before-using-it.patch create mode 100644 0014-Check-variable-before-dereferencing-it.patch create mode 100644 0015-Remove-unused-variable.patch create mode 100644 0016-Fix-possible-double-free.patch create mode 100644 0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch delete mode 100644 EMPTY create mode 100644 sources create mode 100644 yelp-quit.patch create mode 100644 yelp.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..70f427b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/yelp-3.28.1.tar.xz diff --git a/0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch b/0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch new file mode 100644 index 0000000..6a99479 --- /dev/null +++ b/0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch @@ -0,0 +1,30 @@ +From 18a82693d550f4d19c4310741dc60cfef605079a Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 09:01:18 +0200 +Subject: [PATCH 01/17] Add gnu_printf format attribute to yelp_debug + +yelp-3.28.1/libyelp/yelp-debug.c:150:3: warning: function 'yelp_debug' might be +a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] +--- + libyelp/yelp-debug.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-debug.h b/libyelp/yelp-debug.h +index 620a4bf1..18c5582e 100644 +--- a/libyelp/yelp-debug.h ++++ b/libyelp/yelp-debug.h +@@ -67,8 +67,9 @@ typedef enum { + #endif + + G_GNUC_INTERNAL +-void yelp_debug (const gchar *file, guint line, +- const gchar *function, guint flags, const gchar *format, ...); ++void yelp_debug (const gchar *file, guint line, ++ const gchar *function, guint flags, ++ const gchar *format, ...) __attribute__ ((format (gnu_printf, 5, 6))); + + G_END_DECLS + +-- +2.19.1 + diff --git a/0001-Center-new-windows.patch b/0001-Center-new-windows.patch new file mode 100644 index 0000000..e971c3d --- /dev/null +++ b/0001-Center-new-windows.patch @@ -0,0 +1,26 @@ +From c323dd5087a15cb2b820fedf311ca288ec347878 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Thu, 8 Nov 2012 22:57:12 -0500 +Subject: [PATCH] Center new windows + +This makes more sense than letting mutter put them in the top +left corner. +--- + src/yelp-application.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/yelp-application.c b/src/yelp-application.c +index 2d004c2..e669661 100644 +--- a/src/yelp-application.c ++++ b/src/yelp-application.c +@@ -444,6 +444,7 @@ application_uri_resolved (YelpUri *uri, + + g_settings_get (settings, "geometry", "(ii)", &width, &height); + window = yelp_window_new (data->app); ++ gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER); + gtk_window_set_default_size (GTK_WINDOW (window), width, height); + g_signal_connect (window, "resized", G_CALLBACK (window_resized), data->app); + priv->windows = g_slist_prepend (priv->windows, window); +-- +1.7.12.1 + diff --git a/0001-Fix-build-with-GCC-8.patch b/0001-Fix-build-with-GCC-8.patch new file mode 100644 index 0000000..efad165 --- /dev/null +++ b/0001-Fix-build-with-GCC-8.patch @@ -0,0 +1,185 @@ +From b8fdfcae060bdffb15d81e68cdff011105013eb0 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 18 May 2018 09:56:16 -0500 +Subject: [PATCH] Fix build with GCC 8 + +Yelp enables -Werror by default, so it's responsible for predicting and +fixing future compiler warnings that only an oracle could know about. In +this case, that turned out to be -Werror=cast-function-type. +--- + libyelp/yelp-docbook-document.c | 6 +++--- + libyelp/yelp-document.c | 4 ++-- + libyelp/yelp-help-list.c | 2 +- + libyelp/yelp-info-document.c | 2 +- + libyelp/yelp-mallard-document.c | 6 +++--- + libyelp/yelp-man-document.c | 2 +- + libyelp/yelp-simple-document.c | 2 +- + libyelp/yelp-transform.c | 2 +- + libyelp/yelp-uri.c | 2 +- + 9 files changed, 14 insertions(+), 14 deletions(-) + +diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c +index 9b430b09..6ecaf316 100644 +--- a/libyelp/yelp-docbook-document.c ++++ b/libyelp/yelp-docbook-document.c +@@ -273,7 +273,7 @@ docbook_request_page (YelpDocument *document, + priv->process_running = TRUE; + g_object_ref (document); + priv->thread = g_thread_new ("docbook-page", +- (GThreadFunc) docbook_process, ++ (GThreadFunc)(GCallback) docbook_process, + document); + break; + case DOCBOOK_STATE_PARSING: +@@ -495,7 +495,7 @@ docbook_reload (YelpDocbookDocument *docbook) + priv->process_running = TRUE; + g_object_ref (docbook); + priv->thread = g_thread_new ("docbook-reload", +- (GThreadFunc) docbook_process, ++ (GThreadFunc)(GCallback) docbook_process, + docbook); + + g_mutex_unlock (&priv->mutex); +@@ -1077,7 +1077,7 @@ docbook_index (YelpDocument *document) + priv = GET_PRIV (document); + g_object_ref (document); + priv->index = g_thread_new ("docbook-index", +- (GThreadFunc) docbook_index_threaded, ++ (GThreadFunc)(GCallback) docbook_index_threaded, + document); + priv->index_running = TRUE; + } +diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c +index 6adbbb1d..c1eec9cc 100644 +--- a/libyelp/yelp-document.c ++++ b/libyelp/yelp-document.c +@@ -330,7 +330,7 @@ yelp_document_dispose (GObject *object) + + if (document->priv->reqs_all) { + g_slist_foreach (document->priv->reqs_all, +- (GFunc) request_try_free, ++ (GFunc)(GCallback) request_try_free, + NULL); + g_slist_free (document->priv->reqs_all); + document->priv->reqs_all = NULL; +@@ -338,7 +338,7 @@ yelp_document_dispose (GObject *object) + + if (document->priv->reqs_search) { + g_slist_foreach (document->priv->reqs_search, +- (GFunc) request_try_free, ++ (GFunc)(GCallback) request_try_free, + NULL); + g_slist_free (document->priv->reqs_search); + document->priv->reqs_search = NULL; +diff --git a/libyelp/yelp-help-list.c b/libyelp/yelp-help-list.c +index 9005e48f..cbac98bf 100644 +--- a/libyelp/yelp-help-list.c ++++ b/libyelp/yelp-help-list.c +@@ -210,7 +210,7 @@ help_list_request_page (YelpDocument *document, + priv->process_running = TRUE; + g_object_ref (document); + priv->thread = g_thread_new ("helplist-page", +- (GThreadFunc) help_list_think, ++ (GThreadFunc)(GCallback) help_list_think, + document); + } + priv->pending = g_slist_prepend (priv->pending, g_strdup (page_id)); +diff --git a/libyelp/yelp-info-document.c b/libyelp/yelp-info-document.c +index 7b532744..d55be325 100644 +--- a/libyelp/yelp-info-document.c ++++ b/libyelp/yelp-info-document.c +@@ -209,7 +209,7 @@ info_request_page (YelpDocument *document, + priv->process_running = TRUE; + g_object_ref (document); + priv->thread = g_thread_new ("info-page", +- (GThreadFunc) info_document_process, ++ (GThreadFunc)(GCallback) info_document_process, + document); + break; + case INFO_STATE_PARSING: +diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c +index fc7c4d7c..74fc80ee 100644 +--- a/libyelp/yelp-mallard-document.c ++++ b/libyelp/yelp-mallard-document.c +@@ -287,7 +287,7 @@ mallard_request_page (YelpDocument *document, + priv->thread_running = TRUE; + g_object_ref (document); + priv->thread = g_thread_new ("mallard-page", +- (GThreadFunc) mallard_think, ++ (GThreadFunc)(GCallback) mallard_think, + document); + } + +@@ -1100,7 +1100,7 @@ mallard_index (YelpDocument *document) + priv = GET_PRIV (document); + g_object_ref (document); + priv->index = g_thread_new ("mallard-index", +- (GThreadFunc) mallard_index_threaded, ++ (GThreadFunc)(GCallback) mallard_index_threaded, + document); + priv->index_running = TRUE; + } +@@ -1148,7 +1148,7 @@ mallard_monitor_changed (GFileMonitor *monitor, + priv->thread_running = TRUE; + g_object_ref (mallard); + priv->thread = g_thread_new ("mallard-reload", +- (GThreadFunc) mallard_think, ++ (GThreadFunc)(GCallback) mallard_think, + mallard); + + g_mutex_unlock (&priv->mutex); +diff --git a/libyelp/yelp-man-document.c b/libyelp/yelp-man-document.c +index 4e165d57..ad7fab4f 100644 +--- a/libyelp/yelp-man-document.c ++++ b/libyelp/yelp-man-document.c +@@ -243,7 +243,7 @@ man_request_page (YelpDocument *document, + yelp_document_set_page_id (document, priv->page_id, priv->page_id); + yelp_document_set_root_id (document, priv->page_id, priv->page_id); + priv->thread = g_thread_new ("man-page", +- (GThreadFunc) man_document_process, ++ (GThreadFunc)(GCallback) man_document_process, + document); + break; + case MAN_STATE_PARSING: +diff --git a/libyelp/yelp-simple-document.c b/libyelp/yelp-simple-document.c +index 501d7881..595efa83 100644 +--- a/libyelp/yelp-simple-document.c ++++ b/libyelp/yelp-simple-document.c +@@ -131,7 +131,7 @@ yelp_simple_document_dispose (GObject *object) + YelpSimpleDocument *document = YELP_SIMPLE_DOCUMENT (object); + + if (document->priv->reqs) { +- g_slist_foreach (document->priv->reqs, (GFunc) request_try_free, NULL); ++ g_slist_foreach (document->priv->reqs, (GFunc)(GCallback) request_try_free, NULL); + g_slist_free (document->priv->reqs); + document->priv->reqs = NULL; + } +diff --git a/libyelp/yelp-transform.c b/libyelp/yelp-transform.c +index 334438af..7a5dc86e 100644 +--- a/libyelp/yelp-transform.c ++++ b/libyelp/yelp-transform.c +@@ -298,7 +298,7 @@ yelp_transform_start (YelpTransform *transform, + priv->running = TRUE; + g_object_ref (transform); + priv->thread = g_thread_new ("transform-run", +- (GThreadFunc) transform_run, ++ (GThreadFunc)(GCallback) transform_run, + transform); + g_mutex_unlock (&priv->mutex); + +diff --git a/libyelp/yelp-uri.c b/libyelp/yelp-uri.c +index 317beead..f20b167e 100644 +--- a/libyelp/yelp-uri.c ++++ b/libyelp/yelp-uri.c +@@ -298,7 +298,7 @@ resolve_start (YelpUri *uri) + if (priv->resolver == NULL) { + g_object_ref (uri); + priv->resolver = g_thread_new ("uri-resolve", +- (GThreadFunc) resolve_async, ++ (GThreadFunc)(GCallback) resolve_async, + uri); + } + } +-- +2.17.1 + diff --git a/0002-Check-whether-document-has-a-root-element-before-acc.patch b/0002-Check-whether-document-has-a-root-element-before-acc.patch new file mode 100644 index 0000000..bfb9072 --- /dev/null +++ b/0002-Check-whether-document-has-a-root-element-before-acc.patch @@ -0,0 +1,63 @@ +From 3b4245db2e954675d15f50a0e9d004e62a43a48c Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 09:50:53 +0200 +Subject: [PATCH 02/17] Check whether document has a root element before + accessing it. + +yelp-3.28.1/libyelp/yelp-docbook-document.c:562:13: note: Access to field 'ns' results in a dereference of a null pointer (loaded from field 'xmlcur') + if (priv->xmlcur->ns) { + ^ ~~~~~~ + 560| * unique value, and insert it into the in-memory tree */ + 561| g_snprintf (autoidstr, 20, "//autoid-%d", ++autoid); + 562|-> if (priv->xmlcur->ns) { + 563| xmlNewNsProp (priv->xmlcur, + 564| xmlNewNs (priv->xmlcur, XML_XML_NAMESPACE, BAD_CAST "xml"), + +yelp-3.28.1/libyelp/yelp-docbook-document.c:608:16: note: Access to field 'children' results in a dereference of a null pointer (loaded from field 'xmlcur') + for (cur = priv->xmlcur->children; cur; cur = cur->next) { + ^ ~~~~~~ + 606| NULL); + 607| + 608|-> for (cur = priv->xmlcur->children; cur; cur = cur->next) { + 609| if (cur->type == XML_ELEMENT_NODE) { + 610| priv->xmlcur = cur; +--- + libyelp/yelp-docbook-document.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c +index 6ecaf316..24746248 100644 +--- a/libyelp/yelp-docbook-document.c ++++ b/libyelp/yelp-docbook-document.c +@@ -309,6 +309,7 @@ docbook_process (YelpDocbookDocument *docbook) + GFile *file = NULL; + gchar *filepath = NULL; + xmlDocPtr xmldoc = NULL; ++ xmlNodePtr xmlcur = NULL; + xmlChar *id = NULL; + xmlParserCtxtPtr parserCtxt = NULL; + GError *error; +@@ -343,7 +344,10 @@ docbook_process (YelpDocbookDocument *docbook) + XML_PARSE_DTDLOAD | XML_PARSE_NOCDATA | + XML_PARSE_NOENT | XML_PARSE_NONET ); + +- if (xmldoc == NULL) { ++ if (xmldoc) ++ xmlcur = xmlDocGetRootElement (xmldoc); ++ ++ if (xmldoc == NULL || xmlcur == NULL) { + error = g_error_new (YELP_ERROR, YELP_ERROR_PROCESSING, + _("The file ‘%s’ could not be parsed because it is" + " not a well-formed XML document."), +@@ -374,7 +378,7 @@ docbook_process (YelpDocbookDocument *docbook) + priv->max_depth = 1; + + priv->xmldoc = xmldoc; +- priv->xmlcur = xmlDocGetRootElement (xmldoc); ++ priv->xmlcur = xmlcur; + + id = xmlGetProp (priv->xmlcur, BAD_CAST "id"); + if (!id) +-- +2.19.1 + diff --git a/0003-Check-whether-the-index-variable-is-valid-before-der.patch b/0003-Check-whether-the-index-variable-is-valid-before-der.patch new file mode 100644 index 0000000..a8e003b --- /dev/null +++ b/0003-Check-whether-the-index-variable-is-valid-before-der.patch @@ -0,0 +1,44 @@ +From 05fd1b7d267d83ad73f67bb99aac5c9ba069d4e5 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 10:09:43 +0200 +Subject: [PATCH 03/17] Check whether the index variable is valid before + dereferencing it + +yelp-3.28.1/libyelp/yelp-docbook-document.c:1058: check_after_deref: Null-checking "index" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. +yelp-3.28.1/libyelp/yelp-docbook-document.c:1026: deref_ptr: Directly dereferencing pointer "index". +yelp-3.28.1/libyelp/yelp-docbook-document.c:1054: deref_ptr: Directly dereferencing pointer "index". + 1052| if (filename != NULL) + 1053| g_free (filename); + 1054|-> if (index->doc != NULL) + 1055| xmlFreeDoc (index->doc); + 1056| if (index->doc_uri != NULL) +--- + libyelp/yelp-docbook-document.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c +index 24746248..afb49fb0 100644 +--- a/libyelp/yelp-docbook-document.c ++++ b/libyelp/yelp-docbook-document.c +@@ -1055,12 +1055,13 @@ docbook_index_threaded (YelpDocbookDocument *docbook) + g_object_unref (file); + if (filename != NULL) + g_free (filename); +- if (index->doc != NULL) +- xmlFreeDoc (index->doc); +- if (index->doc_uri != NULL) +- g_free (index->doc_uri); +- if (index != NULL) ++ if (index != NULL) { ++ if (index->doc != NULL) ++ xmlFreeDoc (index->doc); ++ if (index->doc_uri != NULL) ++ g_free (index->doc_uri); + g_free (index); ++ } + if (parserCtxt != NULL) + xmlFreeParserCtxt (parserCtxt); + +-- +2.19.1 + diff --git a/0004-Correctly-check-whether-virtual-method-is-implemente.patch b/0004-Correctly-check-whether-virtual-method-is-implemente.patch new file mode 100644 index 0000000..5f72cc8 --- /dev/null +++ b/0004-Correctly-check-whether-virtual-method-is-implemente.patch @@ -0,0 +1,134 @@ +From 3ce3334e9f64eb9eb9f6f52608ca00c2fb74b516 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 10:30:35 +0200 +Subject: [PATCH 04/17] Correctly check whether virtual method is implemented + before calling it + +yelp-3.28.1/libyelp/yelp-document.c:819:27: warning: Access to field 'request_page' results in a dereference of a null pointer (loaded from field 'g_class') + g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE); + +yelp-3.28.1/libyelp/yelp-document.c:943:27: warning: Access to field 'read_contents' results in a dereference of a null pointer (loaded from field 'g_class') + g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL); + +yelp-3.28.1/libyelp/yelp-document.c:1100:23: warning: Access to field 'finish_read' results in a dereference of a null pointer (loaded from field 'g_class') + g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL); + +yelp-3.28.1/libyelp/yelp-document.c:1141:27: warning: Access to field 'get_mime_type' results in a dereference of a null pointer (loaded from field 'g_class') + g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL); + +yelp-3.28.1/libyelp/yelp-document.c:1173:23: warning: Access to field 'index' results in a dereference of a null pointer (loaded from field 'g_class') + g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL); +--- + libyelp/yelp-document.c | 56 ++++++++++++++++++++++++++++++----------- + 1 file changed, 41 insertions(+), 15 deletions(-) + +diff --git a/libyelp/yelp-document.c b/libyelp/yelp-document.c +index c1eec9cc..d832d1ed 100644 +--- a/libyelp/yelp-document.c ++++ b/libyelp/yelp-document.c +@@ -815,17 +815,19 @@ yelp_document_request_page (YelpDocument *document, + gpointer user_data, + GDestroyNotify notify) + { ++ YelpDocumentClass *klass; ++ ++ g_return_val_if_fail (document != NULL, FALSE); + g_return_val_if_fail (YELP_IS_DOCUMENT (document), FALSE); +- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->request_page != NULL, FALSE); ++ ++ klass = YELP_DOCUMENT_GET_CLASS (document); ++ g_return_val_if_fail (klass != NULL, FALSE); ++ g_return_val_if_fail (klass->request_page != NULL, FALSE); + + debug_print (DB_FUNCTION, "entering\n"); + +- return YELP_DOCUMENT_GET_CLASS (document)->request_page (document, +- page_id, +- cancellable, +- callback, +- user_data, +- notify); ++ return klass->request_page (document, page_id, cancellable, callback, ++ user_data, notify); + } + + static gboolean +@@ -939,10 +941,16 @@ const gchar * + yelp_document_read_contents (YelpDocument *document, + const gchar *page_id) + { ++ YelpDocumentClass *klass; ++ ++ g_return_val_if_fail (document != NULL, NULL); + g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL); +- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->read_contents != NULL, NULL); + +- return YELP_DOCUMENT_GET_CLASS (document)->read_contents (document, page_id); ++ klass = YELP_DOCUMENT_GET_CLASS (document); ++ g_return_val_if_fail (klass != NULL, FALSE); ++ g_return_val_if_fail (klass->read_contents != NULL, FALSE); ++ ++ return klass->read_contents (document, page_id); + } + + static const gchar * +@@ -1096,10 +1104,16 @@ void + yelp_document_finish_read (YelpDocument *document, + const gchar *contents) + { ++ YelpDocumentClass *klass; ++ ++ g_return_if_fail (document != NULL); + g_return_if_fail (YELP_IS_DOCUMENT (document)); +- g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->finish_read != NULL); + +- YELP_DOCUMENT_GET_CLASS (document)->finish_read (document, contents); ++ klass = YELP_DOCUMENT_GET_CLASS (document); ++ g_return_if_fail (klass != NULL); ++ g_return_if_fail (klass->finish_read != NULL); ++ ++ klass->finish_read (document, contents); + } + + static void +@@ -1137,10 +1151,16 @@ gchar * + yelp_document_get_mime_type (YelpDocument *document, + const gchar *page_id) + { ++ YelpDocumentClass *klass; ++ ++ g_return_val_if_fail (document != NULL, NULL); + g_return_val_if_fail (YELP_IS_DOCUMENT (document), NULL); +- g_return_val_if_fail (YELP_DOCUMENT_GET_CLASS (document)->get_mime_type != NULL, NULL); + +- return YELP_DOCUMENT_GET_CLASS (document)->get_mime_type (document, page_id); ++ klass = YELP_DOCUMENT_GET_CLASS (document); ++ g_return_val_if_fail (klass != NULL, NULL); ++ g_return_val_if_fail (klass->get_mime_type != NULL, FALSE); ++ ++ return klass->get_mime_type (document, page_id); + } + + static gchar * +@@ -1169,10 +1189,16 @@ document_get_mime_type (YelpDocument *document, + void + yelp_document_index (YelpDocument *document) + { ++ YelpDocumentClass *klass; ++ ++ g_return_if_fail (document != NULL); + g_return_if_fail (YELP_IS_DOCUMENT (document)); +- g_return_if_fail (YELP_DOCUMENT_GET_CLASS (document)->index != NULL); + +- YELP_DOCUMENT_GET_CLASS (document)->index (document); ++ klass = YELP_DOCUMENT_GET_CLASS (document); ++ g_return_if_fail (klass != NULL); ++ g_return_if_fail (klass->index != NULL); ++ ++ klass->index (document); + } + + static void +-- +2.19.1 + diff --git a/0005-Check-whether-variable-node-is-set-before-dereferenc.patch b/0005-Check-whether-variable-node-is-set-before-dereferenc.patch new file mode 100644 index 0000000..b4711b7 --- /dev/null +++ b/0005-Check-whether-variable-node-is-set-before-dereferenc.patch @@ -0,0 +1,36 @@ +From 92974634d285448bbf2007a9bcfedf247a26a39b Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 10:55:52 +0200 +Subject: [PATCH 05/17] Check whether variable node is set before dereferencing + it + +yelp-3.28.1/libyelp/yelp-info-parser.c:766: dereference: Dereferencing a pointer that might be null "node" when calling "strncmp". +--- + libyelp/yelp-info-parser.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c +index d0e767bc..0c383bfe 100644 +--- a/libyelp/yelp-info-parser.c ++++ b/libyelp/yelp-info-parser.c +@@ -734,7 +734,7 @@ process_page (GtkTreeStore *tree, + g_free (next); + next = NULL; + } +- if (g_str_equal (node, "Top") && prev != NULL) { ++ if (node && g_str_equal (node, "Top") && prev != NULL) { + g_free (prev); + prev = NULL; + } +@@ -763,7 +763,7 @@ process_page (GtkTreeStore *tree, + } + if (prev && g_ascii_strncasecmp (prev, "(dir)", 5)) + { +- if (strncmp (node, "Top", 3)) { ++ if (node && strncmp (node, "Top", 3)) { + /* Special case the Top node to always appear first */ + } else { + page = node2page (nodes2pages, prev); +-- +2.19.1 + diff --git a/0006-Fix-a-use-of-an-uninitialized-variable.patch b/0006-Fix-a-use-of-an-uninitialized-variable.patch new file mode 100644 index 0000000..2bd568b --- /dev/null +++ b/0006-Fix-a-use-of-an-uninitialized-variable.patch @@ -0,0 +1,32 @@ +From d7d1c089196e4e1bef314d6d6a01caffd6bba1da Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 10:57:33 +0200 +Subject: [PATCH 06/17] Fix a use of an uninitialized variable + +yelp-3.28.1/libyelp/yelp-info-parser.c:1174: var_decl: Declaring variable "menu_node" without initializer. +yelp-3.28.1/libyelp/yelp-info-parser.c:1310: uninit_use: Using uninitialized value "menu_node". + 1308| else if (*(menuitems[i]) != '\0') { + 1309| tmp = g_strconcat ("\n", first_non_space (menuitems[i]), NULL); + 1310|-> xmlNewTextChild (mholder ? mholder : menu_node, + 1311| NULL, BAD_CAST "para1", + 1312| BAD_CAST tmp); +--- + libyelp/yelp-info-parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c +index 0c383bfe..ed16e373 100644 +--- a/libyelp/yelp-info-parser.c ++++ b/libyelp/yelp-info-parser.c +@@ -1171,7 +1171,7 @@ yelp_info_parse_menu (GtkTreeStore *tree, xmlNodePtr *node, + gchar **split; + gchar **menuitems; + gchar *tmp = NULL; +- xmlNodePtr newnode, menu_node, mholder = NULL; ++ xmlNodePtr newnode, menu_node = NULL, mholder = NULL; + int i=0; + + split = g_strsplit (page_content, "* Menu:", 2); +-- +2.19.1 + diff --git a/0007-Check-whether-the-index-variable-is-valid-before-der.patch b/0007-Check-whether-the-index-variable-is-valid-before-der.patch new file mode 100644 index 0000000..8b4f284 --- /dev/null +++ b/0007-Check-whether-the-index-variable-is-valid-before-der.patch @@ -0,0 +1,29 @@ +From 79e59e9d374e635ca65b4d24c59fffacc5425b1a Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:04:35 +0200 +Subject: [PATCH 07/17] Check whether the index variable is valid before + dereferencing it + +yelp-3.28.1/libyelp/yelp-mallard-document.c:1002: deref_ptr: Directly dereferencing pointer "index". +yelp-3.28.1/libyelp/yelp-mallard-document.c:1073: check_after_deref: Null-checking "index" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. +--- + libyelp/yelp-mallard-document.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c +index 74fc80ee..9c006efc 100644 +--- a/libyelp/yelp-mallard-document.c ++++ b/libyelp/yelp-mallard-document.c +@@ -1070,8 +1070,7 @@ mallard_index_threaded (YelpMallardDocument *mallard) + xmlXPathFreeContext (xpath); + if (index->doc != NULL) + xmlFreeDoc (index->doc); +- if (index != NULL) +- g_free (index); ++ g_free (index); + if (parserCtxt != NULL) + xmlFreeParserCtxt (parserCtxt); + g_object_unref (pagefile); +-- +2.19.1 + diff --git a/0008-Check-whether-parser-is-null-before-dereferencing-it.patch b/0008-Check-whether-parser-is-null-before-dereferencing-it.patch new file mode 100644 index 0000000..c0b6c0e --- /dev/null +++ b/0008-Check-whether-parser-is-null-before-dereferencing-it.patch @@ -0,0 +1,35 @@ +From 33bf987013a6f7c875dc643a74e11beba4a12f03 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:15:10 +0200 +Subject: [PATCH 08/17] Check whether parser is null before dereferencing it + +yelp-3.28.1/libyelp/yelp-man-parser.c:445: var_compare_op: Comparing "parser" to null implies that "parser" might be null. +yelp-3.28.1/libyelp/yelp-man-parser.c:449: var_deref_op: Dereferencing null pointer "parser". +--- + libyelp/yelp-man-parser.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index 46073a2e..8d097820 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -442,10 +442,12 @@ void + yelp_man_parser_free (YelpManParser *parser) + { + guint k; +- if (parser) { +- for (k=0; kfont_registers[k]); +- } ++ ++ if (parser == NULL) ++ return; ++ ++ for (k=0; kfont_registers[k]); + g_string_free (parser->accumulator, TRUE); + g_free (parser->title_str); + g_free (parser->section); +-- +2.19.1 + diff --git a/0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch b/0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch new file mode 100644 index 0000000..a775a70 --- /dev/null +++ b/0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch @@ -0,0 +1,40 @@ +From b1d8fce69f59581769e5db87e7e20cdc3c27d685 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:30:54 +0200 +Subject: [PATCH 09/17] Avoid possible overrun while comparing to MAN_FONTS + +yelp-3.28.1/libyelp/yelp-man-parser.c:464: cond_at_most: Checking "k > 8U" implies that "k" may be up to 8 on the false branch. +yelp-3.28.1/libyelp/yelp-man-parser.c:469: overrun-local: Overrunning array "parser->font_registers" of 8 8-byte elements at element index 8 (byte offset 64) using index "k" (which evaluates to 8). + +yelp-3.28.1/libyelp/yelp-man-parser.c:476: assignment: Assigning: "k" = "parser->current_font". +yelp-3.28.1/libyelp/yelp-man-parser.c:477: cond_at_most: Checking "k > 8U" implies that "k" and "parser->current_font" may be up to 8 on the false branch. +yelp-3.28.1/libyelp/yelp-man-parser.c:477: overrun-local: Overrunning array "parser->font_registers" of 8 8-byte elements at element index 8 (byte offset 64) using index "k" (which evaluates to 8). +--- + libyelp/yelp-man-parser.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index 8d097820..00e66e00 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -463,7 +463,7 @@ yelp_man_parser_free (YelpManParser *parser) + static void + set_font_register (YelpManParser *parser, guint k, const gchar* name) + { +- if (k > MAN_FONTS) { ++ if (k >= MAN_FONTS) { + g_warning ("Tried to set nonexistant font register %u to %s", + k, name); + return; +@@ -476,7 +476,7 @@ static const gchar* + get_font (const YelpManParser *parser) + { + guint k = parser->current_font; +- if (k > MAN_FONTS || ++ if (k >= MAN_FONTS || + parser->font_registers[k] == NULL) { + + g_warning ("Tried to get nonexistant font register %u", k); +-- +2.19.1 + diff --git a/0010-Increase-the-size-of-string-variables-passed-to-ssca.patch b/0010-Increase-the-size-of-string-variables-passed-to-ssca.patch new file mode 100644 index 0000000..f19d235 --- /dev/null +++ b/0010-Increase-the-size-of-string-variables-passed-to-ssca.patch @@ -0,0 +1,37 @@ +From 526febe57f9c05e3ca8a08e4016c5b36b8195406 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:43:51 +0200 +Subject: [PATCH 10/17] Increase the size of string variables passed to sscanf + +yelp-3.28.1/libyelp/yelp-man-parser.c:549: error[invalidScanfFormatWidth]: Width 10 given in format string (no. 2) is larger than destination buffer 'name[10]', use %9s to prevent overflowing it. + +yelp-3.28.1/libyelp/yelp-man-parser.c:926: error[invalidScanfFormatWidth]: Width 16 given in format string (no. 1) is larger than destination buffer 'name[16]', use %15s to prevent overflowing it. +--- + libyelp/yelp-man-parser.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index 00e66e00..f8eb69f6 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -545,7 +545,7 @@ parse_prologue_line (YelpManParser *parser, GError **error) + static gboolean + parse_xf (YelpManParser *parser, GError **error) + { +- gchar name[10]; ++ gchar name[11]; + guint k; + + if (SSCANF ("x f%*s %u %10s", 2, &k, name)) { +@@ -920,7 +920,7 @@ append_nbsps (YelpManParser *parser, guint k) + static gboolean + parse_C (YelpManParser *parser, GError **error) + { +- gchar name[16]; ++ gchar name[17]; + gunichar code = 0; + guint k; + gint len; +-- +2.19.1 + diff --git a/0011-Initialize-ws_start-variable-before-returning-it.patch b/0011-Initialize-ws_start-variable-before-returning-it.patch new file mode 100644 index 0000000..d55afbf --- /dev/null +++ b/0011-Initialize-ws_start-variable-before-returning-it.patch @@ -0,0 +1,27 @@ +From c5abcf98fdbb437574f916b6b2c1fa2f3a89219f Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:45:36 +0200 +Subject: [PATCH 11/17] Initialize ws_start variable before returning it + +yelp-3.28.1/libyelp/yelp-man-parser.c:1194: var_decl: Declaring variable "ws_start" without initializer. +yelp-3.28.1/libyelp/yelp-man-parser.c:1202: uninit_use: Using uninitialized value "ws_start". +--- + libyelp/yelp-man-parser.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libyelp/yelp-man-parser.c b/libyelp/yelp-man-parser.c +index f8eb69f6..302ccb31 100644 +--- a/libyelp/yelp-man-parser.c ++++ b/libyelp/yelp-man-parser.c +@@ -1193,7 +1193,7 @@ static gchar * + find_contiguous_whitespace (gchar *text, guint ws_len) + { + guint counter = 0; +- gchar *ws_start; ++ gchar *ws_start = NULL; + while (*text) { + if (g_unichar_isspace (g_utf8_get_char (text))) { + if (!counter) ws_start = text; +-- +2.19.1 + diff --git a/0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch b/0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch new file mode 100644 index 0000000..4034424 --- /dev/null +++ b/0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch @@ -0,0 +1,32 @@ +From 3fe0efe361ca9fb697f82d67e0bd9036970f9884 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:53:13 +0200 +Subject: [PATCH 12/17] Swap the if() checks to avoid possible null pointer + dereference + +yelp-3.28.1/libyelp/yelp-transform.c:501: deref_ptr: Directly dereferencing pointer "ctxt". +yelp-3.28.1/libyelp/yelp-transform.c:504: check_after_deref: Null-checking "ctxt" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. +--- + libyelp/yelp-transform.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libyelp/yelp-transform.c b/libyelp/yelp-transform.c +index 7a5dc86e..0a1c8058 100644 +--- a/libyelp/yelp-transform.c ++++ b/libyelp/yelp-transform.c +@@ -498,10 +498,10 @@ xslt_yelp_document (xsltTransformContextPtr ctxt, + + debug_print (DB_FUNCTION, "entering\n"); + +- if (ctxt->state == XSLT_STATE_STOPPED) ++ if (!ctxt || !node || !inst || !comp) + return; + +- if (!ctxt || !node || !inst || !comp) ++ if (ctxt->state == XSLT_STATE_STOPPED) + return; + + transform = YELP_TRANSFORM (ctxt->_private); +-- +2.19.1 + diff --git a/0013-Check-the-strstr-return-value-before-using-it.patch b/0013-Check-the-strstr-return-value-before-using-it.patch new file mode 100644 index 0000000..af919fa --- /dev/null +++ b/0013-Check-the-strstr-return-value-before-using-it.patch @@ -0,0 +1,33 @@ +From e3e9e7961b721d2bdbf50ca81fdc869170289e28 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 23 Jul 2018 11:56:21 +0200 +Subject: [PATCH 13/17] Check the strstr() return value before using it + +yelp-3.28.1/libyelp/yelp-uri-builder.c:81: returned_null: "strstr" returns null (checked 10 out of 12 times). +yelp-3.28.1/libyelp/yelp-uri-builder.c:81: var_assigned: Assigning: "resource" = null return value from "strstr". +yelp-3.28.1/libyelp/yelp-uri-builder.c:82: dereference: Incrementing a pointer which might be null: "resource". +--- + libyelp/yelp-uri-builder.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/libyelp/yelp-uri-builder.c b/libyelp/yelp-uri-builder.c +index bb34d202..58a53ac9 100644 +--- a/libyelp/yelp-uri-builder.c ++++ b/libyelp/yelp-uri-builder.c +@@ -78,9 +78,10 @@ build_yelp_uri (const gchar *uri_str) + memmove (uri, uri + BOGUS_PREFIX_LEN, strlen (uri) - BOGUS_PREFIX_LEN + 1); + + /* Remove the leading slash */ +- resource = strstr (uri, ":"); +- resource++; +- memmove (resource, resource + 1, strlen (resource)); ++ if ((resource = strstr (uri, ":"))) { ++ resource++; ++ memmove (resource, resource + 1, strlen (resource)); ++ } + + /* Remove the trailing slash if any */ + path_len = strlen (uri); +-- +2.19.1 + diff --git a/0014-Check-variable-before-dereferencing-it.patch b/0014-Check-variable-before-dereferencing-it.patch new file mode 100644 index 0000000..c43e962 --- /dev/null +++ b/0014-Check-variable-before-dereferencing-it.patch @@ -0,0 +1,27 @@ +From 16bcefc7eeca2443e79b85e5257f66ef5b50eaf0 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Tue, 24 Jul 2018 12:45:42 +0200 +Subject: [PATCH 14/17] Check variable before dereferencing it + +yelp-3.28.1/libyelp/yelp-mallard-document.c:341: var_compare_op: Comparing "path" to null implies that "path" might be null. +yelp-3.28.1/libyelp/yelp-mallard-document.c:346: var_deref_op: Dereferencing null pointer "path". +--- + libyelp/yelp-mallard-document.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c +index 9c006efc..b3319310 100644 +--- a/libyelp/yelp-mallard-document.c ++++ b/libyelp/yelp-mallard-document.c +@@ -345,7 +345,7 @@ mallard_think (YelpMallardDocument *mallard) + */ + error = g_error_new (YELP_ERROR, YELP_ERROR_NOT_FOUND, + _("The directory ‘%s’ does not exist."), +- path[0]); ++ path && path[0] ? path[0] : "NULL"); + yelp_document_error_pending ((YelpDocument *) mallard, error); + g_error_free (error); + goto done; +-- +2.19.1 + diff --git a/0015-Remove-unused-variable.patch b/0015-Remove-unused-variable.patch new file mode 100644 index 0000000..14aa4f7 --- /dev/null +++ b/0015-Remove-unused-variable.patch @@ -0,0 +1,32 @@ +From a49c3d4b94dbfabefe81d2c6d903c53c252bf78a Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Fri, 12 Oct 2018 11:04:31 +0200 +Subject: [PATCH 15/17] Remove unused variable + +4. yelp-3.28.1/libyelp/yelp-info-parser.c:959:2: note: Value stored to 'pages' is never read + pages = 0; + ^ ~ + 957| (GDestroyNotify) gtk_tree_iter_free); + 958| + 959|-> pages = 0; + 960| for (ptr = page_list; *ptr != NULL; ptr++) + 961| { +--- + libyelp/yelp-info-parser.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libyelp/yelp-info-parser.c b/libyelp/yelp-info-parser.c +index ed16e373..7b718ea0 100644 +--- a/libyelp/yelp-info-parser.c ++++ b/libyelp/yelp-info-parser.c +@@ -956,7 +956,6 @@ GtkTreeStore + nodes2iters = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, + (GDestroyNotify) gtk_tree_iter_free); + +- pages = 0; + for (ptr = page_list; *ptr != NULL; ptr++) + { + if (page_type (*ptr) != PAGE_NODE) continue; +-- +2.19.1 + diff --git a/0016-Fix-possible-double-free.patch b/0016-Fix-possible-double-free.patch new file mode 100644 index 0000000..86c83a1 --- /dev/null +++ b/0016-Fix-possible-double-free.patch @@ -0,0 +1,225 @@ +From 7076be534597dadba5c3b3bcfdd10a93333fbc43 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Fri, 12 Oct 2018 12:11:32 +0200 +Subject: [PATCH 16/17] Fix possible double free + +Error: CLANG_WARNING: +yelp-3.28.1/libyelp/yelp-uri.c:931:5: warning: Attempt to free released memory + g_free (query); + ^ +yelp-3.28.1/libyelp/yelp-uri.c:259:9: note: Assuming the condition is false + if (priv->doctype != YELP_URI_DOCUMENT_TYPE_UNRESOLVED) + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:259:5: note: Taking false branch + if (priv->doctype != YELP_URI_DOCUMENT_TYPE_UNRESOLVED) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:262:9: note: Assuming the condition is false + if (priv->res_base) + ^~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:262:5: note: Taking false branch + if (priv->res_base) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:266:5: note: Calling 'resolve_sync' + resolve_sync (uri); + ^~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:311:9: note: Assuming the condition is false + if (g_str_has_prefix (priv->res_arg, "ghelp:") + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:311:9: note: Left side of '||' is false +yelp-3.28.1/libyelp/yelp-uri.c:312:12: note: Assuming the condition is false + || g_str_has_prefix (priv->res_arg, "gnome-help:")) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:311:5: note: Taking false branch + if (g_str_has_prefix (priv->res_arg, "ghelp:") + ^ +yelp-3.28.1/libyelp/yelp-uri.c:315:14: note: Assuming the condition is true + else if (g_str_has_prefix (priv->res_arg, "help:")) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:315:10: note: Taking true branch + else if (g_str_has_prefix (priv->res_arg, "help:")) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:316:9: note: Calling 'resolve_help_uri' + resolve_help_uri (uri); + ^~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:856:9: note: Assuming 'colon' is non-null + if (!colon) { + ^~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:856:5: note: Taking false branch + if (!colon) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true + for (c = colon; *c != '\0'; c++) { + ^~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body + for (c = colon; *c != '\0'; c++) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is false + if (*c == '#' && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:863:23: note: Left side of '&&' is false + if (*c == '#' && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Assuming the condition is false + else if (*c == '?' && query == NULL && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:865:28: note: Left side of '&&' is false + else if (*c == '?' && query == NULL && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:867:18: note: Assuming the condition is false + else if (*c == '/' && slash == NULL && query == NULL && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:867:28: note: Left side of '&&' is false + else if (*c == '/' && slash == NULL && query == NULL && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true + for (c = colon; *c != '\0'; c++) { + ^~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body + for (c = colon; *c != '\0'; c++) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is false + if (*c == '#' && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:863:23: note: Left side of '&&' is false + if (*c == '#' && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Assuming the condition is true + else if (*c == '?' && query == NULL && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Left side of '&&' is true +yelp-3.28.1/libyelp/yelp-uri.c:865:18: note: Left side of '&&' is true +yelp-3.28.1/libyelp/yelp-uri.c:865:14: note: Taking true branch + else if (*c == '?' && query == NULL && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is true + for (c = colon; *c != '\0'; c++) { + ^~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is true. Entering loop body + for (c = colon; *c != '\0'; c++) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Assuming the condition is true + if (*c == '#' && hash == NULL) + ^~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:863:13: note: Left side of '&&' is true +yelp-3.28.1/libyelp/yelp-uri.c:863:9: note: Taking true branch + if (*c == '#' && hash == NULL) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:862:21: note: Assuming the condition is false + for (c = colon; *c != '\0'; c++) { + ^~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:862:5: note: Loop condition is false. Execution continues on line 871 + for (c = colon; *c != '\0'; c++) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:871:9: note: Left side of '||' is false + if (slash || query || hash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:871:24: note: Left side of '||' is true + if (slash || query || hash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:873:32: note: '?' condition is false + (slash ? slash : (query ? query : hash)) - colon - 1); + ^ +yelp-3.28.1/libyelp/yelp-uri.c:873:49: note: '?' condition is true + (slash ? slash : (query ? query : hash)) - colon - 1); + ^ +yelp-3.28.1/libyelp/yelp-uri.c:877:15: note: Left side of '&&' is false + if (slash && (query || hash)) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:880:10: note: Taking false branch + else if (slash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:883:9: note: Assuming 'query' is null + if (query && hash) + ^~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:883:15: note: Left side of '&&' is false + if (query && hash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:886:14: note: Assuming 'query' is null + else if (query) + ^~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:886:10: note: Taking false branch + else if (query) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:889:9: note: Assuming 'query' is null + if (query) { + ^~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:889:5: note: Taking false branch + if (query) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:907:9: note: Assuming 'hash' is null + if (hash) + ^~~~ +yelp-3.28.1/libyelp/yelp-uri.c:907:5: note: Taking false branch + if (hash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:910:22: note: '?' condition is false + priv->page_id = (slash ? slash : g_strdup ("index")); + ^ +yelp-3.28.1/libyelp/yelp-uri.c:913:9: note: Assuming 'hash' is non-null + if (hash) + ^~~~ +yelp-3.28.1/libyelp/yelp-uri.c:913:5: note: Taking true branch + if (hash) + ^ +yelp-3.28.1/libyelp/yelp-uri.c:915:9: note: Assuming the condition is true + if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) { + ^~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:915:9: note: Left side of '&&' is true +yelp-3.28.1/libyelp/yelp-uri.c:915:26: note: Assuming the condition is true + if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:915:5: note: Taking true branch + if (priv->frag_id && g_str_has_prefix (priv->frag_id, "search=")) { + ^ +yelp-3.28.1/libyelp/yelp-uri.c:916:9: note: Memory is released + g_free (priv->frag_id); + ^~~~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:923:34: note: Assuming the condition is false + priv->page_id ? "/" : "", + ^~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:923:34: note: '?' condition is false +yelp-3.28.1/libyelp/yelp-uri.c:924:34: note: '?' condition is false + priv->page_id ? priv->page_id : "", + ^ +yelp-3.28.1/libyelp/yelp-uri.c:925:34: note: Assuming 'query' is non-null + query ? "?" : "", + ^~~~~ +yelp-3.28.1/libyelp/yelp-uri.c:925:34: note: '?' condition is true +yelp-3.28.1/libyelp/yelp-uri.c:926:34: note: '?' condition is true + query ? query : "", + ^ +yelp-3.28.1/libyelp/yelp-uri.c:927:34: note: '?' condition is false + priv->frag_id ? "#" : "", + ^ +yelp-3.28.1/libyelp/yelp-uri.c:928:34: note: '?' condition is false + priv->frag_id ? priv->frag_id : "", + ^ +yelp-3.28.1/libyelp/yelp-uri.c:931:5: note: Attempt to free released memory + g_free (query); + ^~~~~~~~~~~~~~ + 929| NULL); + 930| + 931|-> g_free (query); + 932| g_free (document); + 933| return; +--- + libyelp/yelp-uri.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libyelp/yelp-uri.c b/libyelp/yelp-uri.c +index f20b167e..385cb837 100644 +--- a/libyelp/yelp-uri.c ++++ b/libyelp/yelp-uri.c +@@ -928,7 +928,8 @@ resolve_help_uri (YelpUri *uri) + priv->frag_id ? priv->frag_id : "", + NULL); + +- g_free (query); ++ if (query) ++ g_free (query); + g_free (document); + return; + } +-- +2.19.1 + diff --git a/0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch b/0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch new file mode 100644 index 0000000..8f55d87 --- /dev/null +++ b/0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch @@ -0,0 +1,147 @@ +From 2b2fde7b980985c45ddbd77c935ce43350006810 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Fri, 12 Oct 2018 12:53:43 +0200 +Subject: [PATCH 17/17] Remove the unused encoding and language code from + YelpManDocument + +Error: UNUSED_VALUE (CWE-563): [#def25] +yelp-3.28.1/libyelp/yelp-man-document.c:422: value_overwrite: Overwriting previous write to "encoding" with value from "langmap[i].encoding". +yelp-3.28.1/libyelp/yelp-man-document.c:416: assigned_pointer: Assigning value from ""ISO-8859-1"" to "encoding" here, but that stored value is overwritten before it can be used. + 414| encoding = g_getenv("MAN_ENCODING"); + 415| if (encoding == NULL) + 416|-> encoding = "ISO-8859-1"; + 417| + 418| if (language != NULL) { + +Error: CLANG_WARNING: [#def26] +yelp-3.28.1/libyelp/yelp-man-document.c:416:2: warning: Value stored to 'encoding' is never read + encoding = "ISO-8859-1"; + ^ ~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-man-document.c:416:2: note: Value stored to 'encoding' is never read + encoding = "ISO-8859-1"; + ^ ~~~~~~~~~~~~ + 414| encoding = g_getenv("MAN_ENCODING"); + 415| if (encoding == NULL) + 416|-> encoding = "ISO-8859-1"; + 417| + 418| if (language != NULL) { + +Error: CLANG_WARNING: [#def27] +yelp-3.28.1/libyelp/yelp-man-document.c:422:3: warning: Value stored to 'encoding' is never read + encoding = langmap[i].encoding; + ^ ~~~~~~~~~~~~~~~~~~~ +yelp-3.28.1/libyelp/yelp-man-document.c:422:3: note: Value stored to 'encoding' is never read + encoding = langmap[i].encoding; + ^ ~~~~~~~~~~~~~~~~~~~ + 420| for (i = 0; langmap[i].language != NULL; i++) { + 421| if (g_str_equal (language, langmap[i].language)) { + 422|-> encoding = langmap[i].encoding; + 423| break; + 424| } +--- + libyelp/yelp-man-document.c | 75 ------------------------------------- + 1 file changed, 75 deletions(-) + +diff --git a/libyelp/yelp-man-document.c b/libyelp/yelp-man-document.c +index ad7fab4f..a18248ca 100644 +--- a/libyelp/yelp-man-document.c ++++ b/libyelp/yelp-man-document.c +@@ -61,62 +61,6 @@ struct _YelpManDocumentPrivate { + guint error; + }; + +-typedef struct _YelpLangEncodings YelpLangEncodings; +-struct _YelpLangEncodings { +- const gchar *language; +- const gchar *encoding; +-}; +-/* http://www.w3.org/International/O-charset-lang.html */ +-static const YelpLangEncodings langmap[] = { +- { "C", "ISO-8859-1" }, +- { "af", "ISO-8859-1" }, +- { "ar", "ISO-8859-6" }, +- { "bg", "ISO-8859-5" }, +- { "be", "ISO-8859-5" }, +- { "ca", "ISO-8859-1" }, +- { "cs", "ISO-8859-2" }, +- { "da", "ISO-8859-1" }, +- { "de", "ISO-8859-1" }, +- { "el", "ISO-8859-7" }, +- { "en", "ISO-8859-1" }, +- { "eo", "ISO-8859-3" }, +- { "es", "ISO-8859-1" }, +- { "et", "ISO-8859-15" }, +- { "eu", "ISO-8859-1" }, +- { "fi", "ISO-8859-1" }, +- { "fo", "ISO-8859-1" }, +- { "fr", "ISO-8859-1" }, +- { "ga", "ISO-8859-1" }, +- { "gd", "ISO-8859-1" }, +- { "gl", "ISO-8859-1" }, +- { "hu", "ISO-8859-2" }, +- { "id", "ISO-8859-1" }, /* is this right */ +- { "mt", "ISO-8859-3" }, +- { "is", "ISO-8859-1" }, +- { "it", "ISO-8859-1" }, +- { "iw", "ISO-8859-8" }, +- { "ja", "EUC-JP" }, +- { "ko", "EUC-KR" }, +- { "lt", "ISO-8859-13" }, +- { "lv", "ISO-8859-13" }, +- { "mk", "ISO-8859-5" }, +- { "mt", "ISO-8859-3" }, +- { "no", "ISO-8859-1" }, +- { "pl", "ISO-8859-2" }, +- { "pt_BR", "ISO-8859-1" }, +- { "ro", "ISO-8859-2" }, +- { "ru", "KOI8-R" }, +- { "sl", "ISO-8859-2" }, +- { "sr", "ISO-8859-2" }, /* Latin, not cyrillic */ +- { "sk", "ISO-8859-2" }, +- { "sv", "ISO-8859-1" }, +- { "tr", "ISO-8859-9" }, +- { "uk", "ISO-8859-5" }, +- { "zh_CN", "BIG5" }, +- { "zh_TW", "BIG5" }, +- { NULL, NULL }, +-}; +- + static void yelp_man_document_finalize (GObject *object); + + /* YelpDocument */ +@@ -385,7 +329,6 @@ man_document_process (YelpManDocument *man) + gint params_i = 0; + gchar **params = NULL; + YelpManParser *parser; +- const gchar *language, *encoding; + + file = yelp_uri_get_file (yelp_document_get_uri ((YelpDocument *) man)); + if (file == NULL) { +@@ -407,24 +350,6 @@ man_document_process (YelpManDocument *man) + goto done; + } + +- /* FIXME: get the language */ +- language = "C"; +- +- /* default encoding if the language doesn't match below */ +- encoding = g_getenv("MAN_ENCODING"); +- if (encoding == NULL) +- encoding = "ISO-8859-1"; +- +- if (language != NULL) { +- gint i; +- for (i = 0; langmap[i].language != NULL; i++) { +- if (g_str_equal (language, langmap[i].language)) { +- encoding = langmap[i].encoding; +- break; +- } +- } +- } +- + parser = yelp_man_parser_new (); + priv->xmldoc = yelp_man_parser_parse_file (parser, filepath, &error); + yelp_man_parser_free (parser); +-- +2.19.1 + diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/sources b/sources new file mode 100644 index 0000000..1fec85c --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (yelp-3.28.1.tar.xz) = e37d4bc3b22b4f84654f25d68ba0a09016bec01d3b50e1158612dc8d3ae64b59f7882f25a3ed4dd1d9c9674b99e57d1ba207332ea088a2be8c082f329704c229 diff --git a/yelp-quit.patch b/yelp-quit.patch new file mode 100644 index 0000000..429f943 --- /dev/null +++ b/yelp-quit.patch @@ -0,0 +1,83 @@ +diff --git a/src/yelp-application.c b/src/yelp-application.c +index 47a69991..28638ee7 100644 +--- a/src/yelp-application.c ++++ b/src/yelp-application.c +@@ -90,6 +90,9 @@ static void application_adjust_font (GAction *a + GVariant *parameter, + YelpApplication *app); + static void application_set_font_sensitivity (YelpApplication *app); ++static void application_quit (GAction *action, ++ GVariant *parameter, ++ YelpApplication *app); + + static void bookmarks_changed (GSettings *settings, + const gchar *key, +@@ -110,6 +113,7 @@ struct _YelpApplicationPrivate { + GPropertyAction *show_cursor_action; + GSimpleAction *larger_text_action; + GSimpleAction *smaller_text_action; ++ GSimpleAction *quit_action; + + GSettingsBackend *backend; + GSettings *gsettings; +@@ -200,6 +204,11 @@ yelp_application_dispose (GObject *object) + priv->larger_text_action = NULL; + } + ++ if (priv->quit_action) { ++ g_object_unref (priv->quit_action); ++ priv->quit_action = NULL; ++ } ++ + if (priv->smaller_text_action) { + g_object_unref (priv->smaller_text_action); + priv->smaller_text_action = NULL; +@@ -267,6 +276,7 @@ yelp_application_startup (GApplication *application) + GMenu *menu, *section; + gchar *keyfile; + YelpSettings *settings; ++ const gchar *quit_accels[2] = { "Q", NULL }; + + g_set_application_name (N_("Help")); + +@@ -316,6 +326,16 @@ yelp_application_startup (GApplication *application) + + application_set_font_sensitivity (app); + ++ priv->quit_action = g_simple_action_new ("yelp-application-quit", NULL); ++ g_signal_connect (priv->quit_action, ++ "activate", ++ G_CALLBACK (application_quit), ++ app); ++ g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (priv->quit_action)); ++ ++ gtk_application_set_accels_for_action ( ++ GTK_APPLICATION (app), "app.yelp-application-quit", quit_accels); ++ + menu = g_menu_new (); + section = g_menu_new (); + g_menu_append (section, _("New Window"), "win.yelp-window-new"); +@@ -326,11 +346,23 @@ yelp_application_startup (GApplication *application) + g_menu_append (section, _("Smaller Text"), "app.yelp-application-smaller-text"); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + g_object_unref (section); ++ section = g_menu_new (); ++ g_menu_append (section, _("Quit"), "app.yelp-application-quit"); ++ g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); ++ g_object_unref (section); + gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (menu)); + } + + /******************************************************************************/ + ++static void ++application_quit (GAction *action, ++ GVariant *parameter, ++ YelpApplication *app) ++{ ++ g_application_quit (G_APPLICATION (app)); ++} ++ + static void + application_adjust_font (GAction *action, + GVariant *parameter, diff --git a/yelp.spec b/yelp.spec new file mode 100644 index 0000000..65e98f8 --- /dev/null +++ b/yelp.spec @@ -0,0 +1,1055 @@ +%global _changelog_trimtime %(date +%s -d "1 year ago") + +Name: yelp +Epoch: 2 +Version: 3.28.1 +Release: 3%{?dist} +Summary: Help browser for the GNOME desktop + +Group: Applications/System +License: LGPLv2+ and ASL 2.0 and GPLv2+ +URL: https://wiki.gnome.org/Apps/Yelp +#VCS: git:git://git.gnome.org/yelp +Source: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz + +# https://bugzilla.gnome.org/show_bug.cgi?id=687960 +Patch1: 0001-Center-new-windows.patch +# https://gitlab.gnome.org/GNOME/yelp/commit/b8fdfcae060bdffb15d81e68cdff011105013eb0 +Patch2: 0001-Fix-build-with-GCC-8.patch +Patch3: 0001-Add-gnu_printf-format-attribute-to-yelp_debug.patch +Patch4: 0002-Check-whether-document-has-a-root-element-before-acc.patch +Patch5: 0003-Check-whether-the-index-variable-is-valid-before-der.patch +Patch6: 0004-Correctly-check-whether-virtual-method-is-implemente.patch +Patch7: 0005-Check-whether-variable-node-is-set-before-dereferenc.patch +Patch8: 0006-Fix-a-use-of-an-uninitialized-variable.patch +Patch9: 0007-Check-whether-the-index-variable-is-valid-before-der.patch +Patch10: 0008-Check-whether-parser-is-null-before-dereferencing-it.patch +Patch11: 0009-Avoid-possible-overrun-while-comparing-to-MAN_FONTS.patch +Patch12: 0010-Increase-the-size-of-string-variables-passed-to-ssca.patch +Patch13: 0011-Initialize-ws_start-variable-before-returning-it.patch +Patch14: 0012-Swap-the-if-checks-to-avoid-possible-null-pointer-de.patch +Patch15: 0013-Check-the-strstr-return-value-before-using-it.patch +Patch16: 0014-Check-variable-before-dereferencing-it.patch +Patch17: 0015-Remove-unused-variable.patch +Patch18: 0016-Fix-possible-double-free.patch +Patch19: 0017-Remove-the-unused-encoding-and-language-code-from-Ye.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1638876 +Patch20: yelp-quit.patch + +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libexslt) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(webkit2gtk-4.0) +BuildRequires: pkgconfig(yelp-xsl) +BuildRequires: desktop-file-utils +BuildRequires: bzip2-devel +BuildRequires: gettext-devel +BuildRequires: git +BuildRequires: intltool +BuildRequires: itstool +Requires: yelp-libs%{?_isa} = %{epoch}:%{version}-%{release} +Requires: yelp-xsl + + +%description +Yelp is the help browser for the GNOME desktop. It is designed +to help you browse all the documentation on your system in +one central tool, including traditional man pages, info pages and +documentation written in DocBook. + +%package libs +Summary: Libraries for yelp +Group: Development/Libraries + +%description libs +This package contains libraries used by the yelp help browser. + +%package devel +Summary: Development files for yelp-libs +Group: Development/Libraries +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} + +%description devel +This package contains header files and documentation for +the libraries in the yelp-libs package. + + +%prep +%autosetup -p1 + +%build +%configure --disable-static + +# drop unneeded direct library deps with --as-needed +# libtool doesn't make this easy, so we do it the hard way +sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool + +make %{?_smp_mflags} V=1 + +%install +%make_install + +find $RPM_BUILD_ROOT%{_libdir} -name '*.la' -delete + +%find_lang %{name} + +%check +desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/yelp.desktop + +%ldconfig_scriptlets libs + +%files -f %{name}.lang +%doc AUTHORS NEWS README +%license COPYING +%{_bindir}/* +%{_datadir}/applications/yelp.desktop +%{_datadir}/glib-2.0/schemas/org.gnome.yelp.gschema.xml +%{_datadir}/metainfo/yelp.appdata.xml +%{_datadir}/yelp/ +%{_datadir}/yelp-xsl/xslt/common/domains/yelp.xml + +%files libs +%{_libdir}/libyelp.so.* +%dir %{_libdir}/yelp +%dir %{_libdir}/yelp/web-extensions +%{_libdir}/yelp/web-extensions/libyelpwebextension.so + +%files devel +%{_libdir}/libyelp.so +%{_includedir}/libyelp +%{_datadir}/gtk-doc + + +%changelog +* Mon Oct 15 2018 Tomas Popela - 2:3.28.1-3 +- Add the Quit entry to the app menu +- Handle Ctrl+Q shortcut for quitting the application +- Resolves: rhbz#1638876 + +* Fri Oct 12 2018 Tomas Popela - 2:3.28.1-2 +- Fix the coverity scan issues +- Resolves: rhbz#1602739 + +* Mon Apr 09 2018 Kalev Lember - 2:3.28.1-1 +- Update to 3.28.1 +- Use upstream appdata file + +* Tue Mar 13 2018 Kalev Lember - 2:3.28.0-1 +- Update to 3.28.0 + +* Fri Feb 09 2018 Fedora Release Engineering - 2:3.27.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 2:3.27.1-2 +- Switch to %%ldconfig_scriptlets + +* Sat Jan 13 2018 David King - 2:3.27.1-1 +- Update to 3.27.1 + +* Fri Jan 05 2018 Igor Gnatenko - 2:3.26.0-2 +- Remove obsolete scriptlets + +* Mon Sep 11 2017 David King - 2:3.26.0-1 +- Update to 3.26.0 + +* Tue Aug 22 2017 Ville Skyttä - 2:3.25.3-5 +- Own %%{_libdir}/yelp dirs + +* Thu Aug 03 2017 Fedora Release Engineering - 2:3.25.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2:3.25.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 David King - 2:3.25.3-2 +- Fix icon cache path in scriptlets (#1470335) + +* Tue Jun 20 2017 David King - 2:3.25.3-1 +- Update to 3.25.3 + +* Sat Feb 11 2017 Fedora Release Engineering - 2:3.22.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Sep 20 2016 David King - 2:3.22.0-1 +- Update to 3.22.0 + +* Tue Jun 21 2016 David King - 2:3.21.3-1 +- Update to 3.21.3 + +* Tue Apr 12 2016 David King - 2:3.20.1-1 +- Update to 3.20.1 + +* Tue Mar 22 2016 Kalev Lember - 2:3.20.0-1 +- Update to 3.20.0 + +* Tue Mar 01 2016 David King - 2:3.19.91-1 +- Update to 3.19.91 + +* Tue Feb 16 2016 David King - 2:3.19.90-1 +- Update to 3.19.90 + +* Fri Feb 05 2016 Fedora Release Engineering - 2:3.19.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sat Oct 31 2015 Adam Williamson - 2:3.19.1-2 +- bump epoch to keep up with F23 + +* Mon Oct 26 2015 David King - 1:3.19.1-1 +- Update to 3.19.1 + +* Mon Oct 12 2015 Kalev Lember - 1:3.18.1-1 +- Update to 3.18.1 + +* Mon Sep 21 2015 Kalev Lember - 1:3.18.0-1 +- Update to 3.18.0 + +* Tue Sep 01 2015 David King - 1:3.17.91-1 +- Update to 3.17.91 + +* Mon Aug 17 2015 Kalev Lember - 1:3.17.90-1 +- Update to 3.17.90 +- Use make_install macro + +* Tue Jul 21 2015 David King - 1:3.17.4-1 +- Update to 3.17.4 + +* Tue Jun 23 2015 David King - 1:3.17.3-1 +- Update to 3.17.3 + +* Fri Jun 19 2015 Fedora Release Engineering - 1:3.17.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon May 25 2015 David King - 1:3.17.2-1 +- Update to 3.17.2 + +* Mon May 11 2015 David King - 1:3.16.1-1 +- Update to 3.16.1 + +* Thu Mar 26 2015 Richard Hughes - 1:3.16.0-2 +- Add an AppData file for the software center + +* Mon Mar 23 2015 Kalev Lember - 1:3.16.0-1 +- Update to 3.16.0 + +* Mon Mar 02 2015 David King - 1:3.15.91-1 +- Update to 3.15.91 + +* Mon Feb 16 2015 David King - 1:3.15.90-1 +- Update to 3.15.90 +- Use license macro for COPYING + +* Wed Dec 10 2014 David King - 1:3.14.1-3 +- Use pkgconfig for BuildRequires + +* Mon Nov 10 2014 Matthias Clasen - 1:3.14.1-2 +- Drop the gnome-user-docs dependency (#1149511) + +* Mon Oct 13 2014 Kalev Lember - 1:3.14.1-1 +- Update to 3.14.1 + +* Tue Sep 23 2014 Kalev Lember - 1:3.14.0-2 +- Drop unused build deps + +* Tue Sep 23 2014 Kalev Lember - 1:3.14.0-1 +- Update to 3.14.0 + +* Tue Sep 16 2014 Kalev Lember - 1:3.13.92-1 +- Update to 3.13.92 + +* Tue Aug 19 2014 Kalev Lember - 1:3.13.90-1 +- Update to 3.13.90 + +* Mon Aug 18 2014 Fedora Release Engineering - 1:3.13.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jun 24 2014 Richard Hughes - 1:3.13.3-1 +- Update to 3.13.3 + +* Sat Jun 07 2014 Fedora Release Engineering - 1:3.12.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Mar 25 2014 Kalev Lember - 1:3.12.0-1 +- Update to 3.12.0 + +* Wed Mar 05 2014 Richard Hughes - 1:3.11.91-1 +- Update to 3.11.91 + +* Mon Nov 25 2013 Richard Hughes - 1:3.11.1-1 +- Update to 3.11.1 + +* Tue Oct 29 2013 Richard Hughes - 1:3.10.1-1 +- Update to 3.10.1 + +* Tue Sep 24 2013 Kalev Lember - 1:3.10.0-1 +- Update to 3.10.0 + +* Tue Sep 03 2013 Kalev Lember - 1:3.9.91-1 +- Update to 3.9.91 + +* Thu Aug 22 2013 Kalev Lember - 1:3.9.90-1 +- Update to 3.9.90 + +* Sun Aug 04 2013 Fedora Release Engineering - 1:3.8.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jun 21 2013 Matthias Clasen - 1:3.8.1-5 +- Trim %%changelog + +* Fri Jun 21 2013 Matthias Clasen - 1:3.8.1-4 +- Don't install ChangeLog + +* Sat May 25 2013 Kalev Lember - 1:3.8.1-3 +- Make yelp-libs dep arch-specific, thanks to Michael Schwendt (#967180) +- Don't create empty /usr/share/gnome/help directory: this should be owned by + individual packages that install files in there (#964421) +- Use configure --disable-static instead of removing the static .a afterwards + +* Sat May 18 2013 Peter Robinson 1:3.8.1-2 +- yelp should depend on yelp-libs not the other way around + +* Tue May 14 2013 Richard Hughes - 1:3.8.1-1 +- Update to 3.8.1 + +* Tue Mar 26 2013 Kalev Lember - 1:3.8.0-1 +- Update to 3.8.0 + +* Fri Feb 22 2013 Kalev Lember - 1:3.7.90-2 +- Remove the desktop file vendor prefix + +* Tue Feb 19 2013 Richard Hughes - 1:3.7.90-1 +- Update to 3.7.90 + +* Fri Feb 15 2013 Fedora Release Engineering - 1:3.7.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 16 2013 Richard Hughes - 1:3.7.4-1 +- Update to 3.7.4 + +* Fri Jan 4 2013 Matthias Clasen - 1:3.7.3-2 +- Optionally do the right thing with focus and window placement + +* Fri Dec 21 2012 Kalev Lember - 1:3.7.3-1 +- Update to 3.7.3 + +* Mon Nov 12 2012 Kalev Lember - 1:3.6.2-1 +- Update to 3.6.2 + +* Tue Oct 16 2012 Kalev Lember - 1:3.6.1-1 +- Update to 3.6.1 + +* Tue Sep 25 2012 Kalev Lember - 1:3.6.0-1 +- Update to 3.6.0 + +* Wed Sep 19 2012 Richard Hughes - 1:3.5.92-1 +- Update to 3.5.92 + +* Tue Sep 04 2012 Richard Hughes - 1:3.5.91-1 +- Update to 3.5.91 + +* Wed Aug 22 2012 Richard Hughes - 1:3.5.90-1 +- Update to 3.5.90 + +* Fri Jul 27 2012 Fedora Release Engineering - 1:3.4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jul 15 2012 Ville Skyttä - 1:3.4.2-2 +- Call ldconfig at -libs post(un)install time. +- Escape macros in %%changelog. + +* Fri May 18 2012 Richard Hughes - 1:3.4.2-1 +- Update to 3.4.2 + +* Tue Apr 24 2012 Kalev Lember - 1:3.4.1-2 +- Silence rpm scriptlet output + +* Tue Apr 17 2012 Kalev Lember - 1:3.4.1-1 +- Update to 3.4.1 + +* Tue Mar 27 2012 Richard Hughes - 1:3.4.0-1 +- Update to 3.4.0 + +* Tue Mar 20 2012 Kalev Lember - 1:3.3.92-1 +- Update to 3.3.92 + +* Sat Feb 25 2012 Matthias Clasen - 1:3.3.4-1 +- Update to 3.3.4 + +* Tue Jan 17 2012 Matthias Clasen - 1:3.3.3-1 +- Update to 3.3.3 + +* Sat Jan 14 2012 Fedora Release Engineering - 1:3.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Dec 21 2011 Matthias Clasen - 1:3.3.2-1 +- Update to 3.3.2 + +* Wed Nov 2 2011 Matthias Clasen - 1:3.3.1-1 +- Update to 3.3.1 + +* Wed Oct 26 2011 Fedora Release Engineering - 1:3.2.1-2 +- Rebuilt for glibc bug#747377 + +* Tue Oct 18 2011 Matthias Clasen - 1:3.2.1-1 +- Update to 3.2.1 + +* Tue Sep 27 2011 Ray - 1:3.2.0-1 +- Update to 3.2.0 + +* Wed Sep 21 2011 Matthias Clasen - 1:3.1.4-2 +- Fix default uri + +* Tue Sep 20 2011 Matthias Clasen - 1:3.1.4-1 +- Update to 3.1.4 + +* Wed Sep 07 2011 Kalev Lember - 1:3.1.3-1 +- Update to 3.1.3 + +* Thu Aug 16 2011 Matthias Clasen - 1:3.1.2-1 +- Update to 3.1.2 + +* Wed Jul 6 2011 Matthias Clasen - 1:3.1.1-1 +- Update to 3.1.1 + +* Tue May 24 2011 Christopher Aillon - 1:3.0.3-1 +- Update to 3.0.3 + +* Sat May 07 2011 Christopher Aillon - 1:3.0.2-3 +- Update gsettings scriptlet + +* Thu Apr 28 2011 Matthias Clasen 1:3.0.2-2 +- Fix some strings appearing untranslated (e.g. 'Show Text Cursor') + +* Mon Apr 25 2011 Matthias Clasen 1:3.0.2-1 +- Update to 3.0.2 + +* Sun Apr 10 2011 Christopher Aillon 1:3.0.1-1 +- Update to 3.0.1 + +* Mon Apr 4 2011 Matthias Clasen 1:3.0.0-1 +- Update to 3.0.0 + +* Tue Mar 22 2011 Matthias Clasen 1:2.91.92-1 +- Update to 2.91.92 + +* Mon Mar 7 2011 Matthias Clasen 1:2.91.91-1 +- Update to 2.91.91 + +* Mon Feb 21 2011 Matthias Clasen 1:2.91.90-1 +- Update to 2.91.90 +- Drop docbook-dtds dependency + +* Thu Feb 10 2011 Matthias Clasen 1:2.91.10-4 +- Rebuild against newer gtk + +* Tue Feb 08 2011 Fedora Release Engineering - 1:2.91.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 2 2011 Matthias Clasen - 1:2.91.10-2 +- Rebuild against new gtk + +* Mon Jan 10 2011 Matthias Clasen - 1:2.91.10-1 +- Update to 2.91.10 + +* Sun Jan 9 2011 Matthias Clasen - 1:2.91.9-1 +- Update to 2.91.9 + +* Fri Dec 3 2010 Matthias Clasen - 1:2.31.7-4 +- Rebuild against new gtk + +* Thu Aug 12 2010 Matthias Clasen - 1:2.31.7-3 +- Fix up dependencies for epoch + +* Wed Aug 11 2010 Matthias Clasen - 1:2.31.7-2 +- Carry over the epoch from F14 + +* Mon Jul 14 2010 Matthias Clasen - 2.31.7-1 +- Update to 2.31.7 + +* Sat Jul 3 2010 Matthias Clasen - 2.31.6-2 +- Rebuild against new webkit + +* Wed Jun 30 2010 Matthias Clasen - 2.31.6-1 +- Update to 2.31.6 + +* Wed Jun 23 2010 Matthias Clasen - 2.31.5-2.20100623git +- git snapshot that works with GLib 2.25.9 + +* Tue Jun 8 2010 Matthias Clasen - 2.31.5-1 +- Update to 2.31.5 + +* Thu May 27 2010 Matthias Clasen - 2.31.4-1 +- Update to 2.31.4 + +* Mon May 24 2010 Matthew Barnes - 2.30.1-2 +- Require gnome-user-docs so that Help->Contents works. + +* Tue Apr 27 2010 Matthias Clasen - 2.30.1-1 +- Update to 2.30.1 + +* Fri Apr 9 2010 Matthias Clasen - 2.30.0-2 +- Drop libbeagle dep +- Use GConf macros + +* Mon Mar 29 2010 Matthias Clasen - 2.30.0-1 +- Update to 2.30.0 + +* Mon Feb 22 2010 Matthias Clasen - 2.29.5-1 +- Update to 2.29.5 + +* Mon Feb 08 2010 Matthew Barnes - 2.29.4-1 +- Update to 2.29.4 +- Update version requirements. + +* Mon Jan 25 2010 Matthew Barnes - 2.29.3-1 +- Update to 2.29.3 + +* Fri Jan 22 2010 Matthew Barnes - 2.29.2-1 +- Update to 2.29.2 + +* Tue Jan 5 2010 Matthew Barnes - 2.29.1-1 +- Update to 2.29.1 + +* Tue Jan 5 2010 Matthias Clasen - 2.28.1-2 +- Use %%global instead of %%define where %%define doesn't work + +* Fri Dec 4 2009 Matthias Clasen - 2.28.1-1 +- Update to 2.28.1 + +* Wed Dec 2 2009 Matthias Clasen - 2.28.0-2 +- make mono dep more automatic + +* Mon Sep 21 2009 Matthias Clasen - 2.28.0-1 +- Update to 2.28.0 + +* Mon Sep 7 2009 Matthias Clasen - 2.27.5-1 +- Update to 2.27.5 + +* Mon Aug 24 2009 Matthias Clasen - 2.27.4-1 +- Update to 2.27.4 + +* Sun Aug 23 2009 Matthias Clasen - 2.27.3-2 +- Remove space before ellipsis in menuitems + +* Tue Jul 28 2009 Matthias Clasen - 2.27.3-1 +- Update to 2.27.3 + +* Mon Jul 27 2009 Fedora Release Engineering - 2.27.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sat Jul 18 2009 Matthias Clasen - 2.27.2-3 +- Drop unused direct dependencies + +* Thu Jul 2 2009 Matthias Clasen - 2.27.2-2 +- Shrink GConf schemas + +* Mon Jun 29 2009 Matthew Barnes - 2.27.2-1 +- Update to 2.27.2 +- Bump gnome_doc_utils requirement to 0.17.2. + +* Mon Jun 15 2009 Matthias Clasen - 2.27.1-1 +- Update to 2.27.1 + +* Mon Apr 27 2009 Christopher Aillon - 2.26.0-3 +- Rebuild against newer gecko + +* Mon Apr 6 2009 Matthias Clasen - 2.26.0-2 +- Clean up Requires a bit + +* Mon Mar 16 2009 Matthias Clasen - 2.26.0-1 +- Update to 2.26.0 + +* Mon Mar 02 2009 Matthew Barnes - 2.25.1-1 +- Update to 2.25.1 + +* Wed Feb 25 2009 Fedora Release Engineering - 2.24.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Dec 21 2008 Christopher Aillon - 2.24.0-5 +- Rebuild against newer gecko + +* Sat Dec 20 2008 Caolán McNamara - 2.24.0-4 +- rebuild for gecko + +* Fri Nov 21 2008 Matthias Clasen - 2.24.0-3 +- %%summary and %%description tweakage + +* Wed Sep 24 2008 Christopher Aillon - 2.24.0-2 +- Rebuild against newer gecko + +* Mon Sep 22 2008 Matthias Clasen - 2.24.0-1 +- Update ot 2.24.0 + +* Mon Sep 01 2008 Matthew Barnes - 2.23.91-1 +- Update to 2.23.91 + +* Fri Aug 22 2008 Matthias Clasen - 2.23.2-1 +- Update to 2.23.2 + +* Tue Jul 22 2008 Martin Stransky - 2.23.1-3 +- rebuild for xulrunner update + +* Fri Jun 20 2008 Matthias Clasen - 2.23.1-2 +- Use a standard icon name in the desktop file + +* Tue Jun 03 2008 Matthew Barnes - 2.23.1-1 +- Update to 2.23.1 + +* Mon May 19 2008 Matthew Barnes - 2.22.1-2 +- Require docbook-dtds (RH bug #447209). + +* Mon Apr 7 2008 Matthias Clasen - 2.22.1-1 +- Update to 2.22.1 + +* Mon Mar 31 2008 Jon McCann - 2.22.0-4 +- Disallow launchers when running under GDM. + +* Mon Mar 31 2008 Matthew Barnes - 2.22.0-3 +- Update patch for RH bug #437328. + +* Thu Mar 13 2008 Matthew Barnes - 2.22.0-2 +- Add patch for RH bug #437328 (searching with Beagle broken). + +* Sun Mar 09 2008 Matthew Barnes - 2.22.0-1 +- Update to 2.22.0 + +* Thu Feb 28 2008 Martin Stransky - 2.21.90-4 +- updated xulrunner patch, rebuild against xulrunner + +* Tue Feb 19 2008 Fedora Release Engineering - 2.21.90-3 +- Autorebuild for GCC 4.3 + +* Sun Feb 17 2008 Matthew Barnes - 2.21.90-2 +- Rebuild with GCC 4.3 + +* Mon Jan 28 2008 Matthew Barnes - 2.21.90-1 +- Update to 2.21.90 + +* Tue Jan 08 2008 Matthew Barnes - 2.21.2-2 +- Look for new-style xulrunner pkg-config files. +- Build requires gecko-devel-unstable. + +* Tue Jan 08 2008 - Bastien Nocera - 2.21.2-1 +- Update to 2.21.2 + +* Sun Dec 30 2007 Jeremy Katz - 2.21.1-3 +- Rebuild for new xulrunner + +* Sat Dec 8 2007 Matthias Clasen - 2.21.1-2 +- Rebuild against new libbeagle + +* Mon Dec 3 2007 Matthias Clasen - 2.21.1-1 +- Update to 2.21.1 + +* Mon Dec 3 2007 Matthias Clasen - 2.20.0-9 +- Rebuild against xulrunner again + +* Thu Nov 22 2007 Martin Stransky - 2.20.0-8 +- rebuild against xulrunner + +* Fri Nov 16 2007 Matthias Clasen - 2.20.0-7 +- Handle .HP tags in man pages + +* Fri Nov 09 2007 Matthew Barnes - 2.20.0-6 +- Rebuild against gecko-libs 1.8.1.9. + +* Mon Nov 5 2007 Matthias Clasen - 2.20.0-5 +- Fix a crash in search (#361041) + +* Sun Nov 4 2007 Matthias Clasen - 2.20.0-4 +- Fix a crash when loading the rarian docs + +* Thu Nov 01 2007 Matthew Barnes - 2.20.0-3 +- Rebuild against gecko-libs 1.8.1.8. + +* Mon Oct 22 2007 Matthias Clasen - 2.20.0-2 +- Rebuild against new dbus-glib + +* Mon Sep 17 2007 Matthew Barnes - 2.20.0-1 +- Update to 2.20.0 + +* Thu Aug 28 2007 Matthew Barnes - 2.19.90-3 +- Remove --add-only-show-in from desktop-file-install (RH bug #258821). + +* Wed Aug 22 2007 Matthew Barnes - 2.19.90-2 +- Mass rebuild + +* Mon Aug 13 2007 Matthew Barnes - 2.19.90-1 +- Update to 2.19.90 +- Remove "info-gnutls" patch (fixed upstream). +- Remove patch for GNOME bug #370167 (fixed upstream). +- Remove patch for GNOME bug #430365 (fixed upstream). +- Remove patch for GNOME bug #431078 (fixed upstream). + +* Wed Aug 8 2007 Christopher Aillon - 2.19.1-4 +- Rebuild against newer gecko + +* Fri Aug 03 2007 Matthew Barnes - 2.19.1-3 +- Require rarian-devel for building. + +* Fri Aug 3 2007 Matthias Clasen - 2.19.1-2 +- Update the license field + +* Thu Aug 02 2007 Matthew Barnes - 2.19.1-1 +- Update to 2.19.1 +- Adapt the "apropos" patch for 2.19.1. +- The "posix-man" patch appears to no longer apply. +- Update dependencies based on configure.ac. + +* Wed Jul 25 2007 Jeremy Katz - 2.18.1-7 +- rebuild for toolchain bug + +* Mon Jul 23 2007 Matthias Clasen - 2.18.1-6 +- Require gnome-doc-utils-stylesheets instead of gnome-doc-utils + +* Fri Jul 20 2007 Kai Engert - 2.18.1-5 +- Rebuild against newer gecko + +* Wed May 25 2007 Christopher Aillon - 2.18.1-4 +- Rebuild against newer gecko + +* Wed Apr 18 2007 Matthias Clasen - 2.18.1-3 +- Improve the man parser a bit +- Fix another crash in the info parser + +* Tue Apr 17 2007 Matthias Clasen - 2.18.1-2 +- Fix a crash in the info parser (#216308) + +* Mon Apr 09 2007 Matthew Barnes - 2.18.1-1 +- Update to 2.18.1 + +* Fri Mar 23 2007 Christopher Aillon - 2.18.0-2 +- Rebuild against newer gecko + +* Tue Mar 13 2007 Matthew Barnes - 2.18.0-1 +- Update to 2.18.0 + +* Wed Feb 28 2007 Matthew Barnes - 2.16.2-5 +- Rebuild against newer gecko. + +* Fri Feb 23 2007 Matthias Clasen 2.16.2-4 +- Don't own /usr/share/icons/hicolor + +* Tue Feb 13 2007 Bill Nottingham 2.16.2-3 +- own %%{_datadir}/gnome/help (#205799) +- rpmlint silencing: + - add a URL: tag + - add some docs + +* Thu Dec 21 2006 Christopher Aillon 2.16.2-2 +- Rebuild against newer gecko + +* Tue Dec 5 2006 Matthias Clasen - 2.16.2-1 +- Update to 2.16.2 +- Drop obsolete patch + +* Fri Nov 3 2006 Matthias Clasen - 2.16.1-6 +- Improve the whatis parser + +* Fri Nov 3 2006 Matthias Clasen - 2.16.1-5 +- Silence %%pre + +* Sun Oct 29 2006 Matthias Clasen - 2.16.1-4 +- Improve the previous fix + +* Sun Oct 29 2006 Matthias Clasen - 2.16.1-3 +- Fix some crashes (#212888) + +* Fri Oct 27 2006 Christopher Aillon - 2.16.1-2 +- Rebuild against newer gecko + +* Sun Oct 22 2006 Matthias Clasen - 2.16.1-1 +- Update to 2.16.1 + +* Wed Oct 18 2006 Matthias Clasen - 2.16.0-5 +- Fix scripts according to the packaging guidelines + +* Thu Oct 12 2006 Christopher Aillon - 2.16.0-4.fc6 +- Update requires to the virtual gecko version instead of a specific app + +* Thu Sep 14 2006 Christopher Aillon - 2.16.0-3.fc6 +- Rebuild + +* Wed Sep 6 2006 Matthias Clasen - 2.16.0-2.fc6 +- Actually apply the Pango patch + +* Mon Sep 4 2006 Matthias Clasen - 2.16.0-1.fc6 +- Update to 2.16.0 + +* Tue Aug 29 2006 Matthias Clasen - 2.15.91-3.fc6 +- Use Pango + +* Wed Aug 23 2006 Matthew Barnes - 2.15.91-2 +- Rebuild + +* Thu Aug 10 2006 Matthew Barnes - 2.15.91-1 +- Update to 2.15.91 + +* Thu Jul 27 2006 Matthias Clasen - 2.15.5-1 +- Update to 2.15.5 +- Rebuild against firefox-devel + +* Tue Jul 18 2006 Matthias Clasen - 2.15.2-2 +- Go back to 2.15.2, since gecko 1.8 is still missing + +* Wed Jul 12 2006 Jesse Keating - 2.15.3-1.1 +- rebuild + +* Tue Jun 13 2006 Matthias Clasen - 2.15.3-1 +- Update to 2.15.3 + +* Tue May 17 2006 Matthias Clasen - 2.15.2-1 +- Update to 2.15.2 + +* Mon May 15 2006 Matthew Barnes - 2.15.1-3 +- Bump mozilla_version from 1.7.12 to 1.7.13 (closes #190880). + +* Mon May 15 2006 Matthew Barnes - 2.15.1-2 +- Add build requirements: startup-notification-devel + libgnomeprintui22-devel + libXt-devel + +* Tue May 9 2006 Matthias Clasen - 2.15.1-1 +- Update to 2.15.1 + +* Mon Apr 10 2006 Matthias Clasen - 2.14.1-2 +- Update to 2.14.1 + +* Mon Mar 13 2006 Matthias Clasen - 2.14.0-1 +- Update to 2.14.0 + +* Mon Feb 27 2006 Matthias Clasen - 2.13.6-1 +- Update to 2.13.6 + +* Sun Feb 12 2006 Matthias Clasen - 2.13.5-2 +- Turn on info and man support for test3 + +* Sun Feb 12 2006 Matthias Clasen - 2.13.5-1 +- Update to 2.13.5 + +* Fri Feb 10 2006 Jesse Keating - 2.13.4-1.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.13.4-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Jan 31 2006 Matthias Clasen - 2.13.4-1 +- Update to 2.13.4 + +* Thu Jan 19 2006 Matthias Clasen - 2.13.3-1 +- Update to 2.13.3 +- enable search + +* Wed Jan 18 2006 Matthias Clasen - 2.13.2-3 +- Disable search, since it doesn't compile against + current beagle + +* Thu Dec 15 2005 David Malcolm - 2.13.2-2 +- Patched to include DocBook mimetype in desktop file, and added preun and post + hooks to update-desktop-database (#175880) +- Patched to ensure that Yelp recognizes that it can handle the mimetype of the + documentation as reported by gnomevfs (also #175880) + +* Thu Dec 15 2005 Matthias Clasen 2.13.2-1 +- Update to 2.13.2 + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Wed Nov 30 2005 Matthias Clasen - 2.13.1-6 +- Update to 2.13.1 + +* Wed Oct 19 2005 Jeremy Katz - 2.12.1-5 +- build on ppc64 now that we have mozilla there again + +* Tue Oct 18 2005 Christopher Aillon - 2.12.1-4 +- Rebuild + +* Mon Oct 17 2005 Matthias Clasen - 2.12.1-3 +- Include the category General|Linux|Distributions|Other on the + title page + +* Mon Oct 17 2005 Matthias Clasen - 2.12.1-2 +- Fix a double-free bug + +* Thu Sep 29 2005 Matthias Clasen - 2.12.1-1 +- Update to 2.12.1 + +* Thu Sep 8 2005 Matthias Clasen - 2.12.0-1 +- Update to 2.12.0 + +* Wed Aug 17 2005 Jeremy Katz - 2.11.1-5 +- rebuild + +* Wed Aug 17 2005 Ray Strode 2.11.1-4 +- rebuild + +* Sun Jul 31 2005 Christopher Aillon 2.11.1-3 +- Rebuild against newer mozilla + +* Tue Jul 19 2005 Christopher Aillon 2.11.1-2 +- Rebuild against newer mozilla + +* Wed Jul 13 2005 Matthias Clasen 2.11.1-1 +- Newer upstream version + +* Thu May 19 2005 Ray Strode 2.10.0-1 +- Update to 2.10.0 (bug 157752, 146862). + +* Thu May 19 2005 Christopher Aillon 2.9.3-7 +- Depend on mozilla 1.7.8 + +* Thu Apr 28 2005 Ray Strode 2.9.3-6 +- Disable man support +- Disable info support +- Don't try to install schemas during install (bug 154035) + +* Mon Apr 18 2005 Ray Strode 2.9.3-5 +- Depend on mozilla 1.7.7 + +* Mon Apr 4 2005 Ray Strode 2.9.3-4 +- rebuilt + +* Wed Mar 9 2005 Christopher Aillon 2.9.3-3 +- Depend on mozilla 1.7.6 + +* Sat Mar 5 2005 Christopher Aillon 2.9.3-2 +- Rebuild against GCC 4.0 + +* Fri Jan 28 2005 Matthias Clasen 2.9.3-1 +- Update to 2.9.3 + +* Mon Dec 20 2004 Christopher Aillon 2.6.5-1 +- Update to 2.6.5 + +* Sat Nov 6 2004 Marco Pesenti Gritti 2.6.4-1 +- Update to 2.6.4 + +* Wed Sep 22 2004 Christopher Aillon 2.6.3-1 +- Update to 2.6.3 + +* Fri Sep 03 2004 Matthias Clasen 2.6.2-2 +- fix an translation problem + +* Tue Aug 31 2004 Alex Larsson 2.6.2-1 +- update to 2.6.2 + +* Wed Jun 30 2004 Christopher Aillon 2.6.1-1 +- Update to 2.6.1 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu Apr 1 2004 Alex Larsson 2.6.0-1 +- update to 2.6.0 + +* Mon Mar 15 2004 Alex Larsson 2.5.90-2 +- Fix requirements + +* Wed Mar 10 2004 Alex Larsson 2.5.90-1 +- update to 2.5.90 + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Wed Feb 25 2004 Alexander Larsson 2.5.6-1 +- update to 2.5.6 + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Wed Jan 28 2004 Alexander Larsson 2.5.3-1 +- update to 2.5.3 + +* Wed Dec 24 2003 Tim Waugh 2.4.0-2 +- Fix g_strdup_printf usage in info2html (bug #111200, patch from + Miloslav Trmac). + +* Tue Sep 9 2003 Alexander Larsson 2.4.0-1 +- update to 2.4.0 (only code change is bugfix from me) +- Fixed the utf8 manpage patch (#91689) + +* Wed Aug 27 2003 Alexander Larsson 2.3.6-2 +- info and manpages are utf8 + +* Wed Aug 20 2003 Alexander Larsson 2.3.6-1 +- Update for gnome 2.3 + +* Wed Jul 9 2003 Alexander Larsson 2.2.3-1.E +- Rebuild + +* Mon Jul 7 2003 Alexander Larsson 2.2.3-1 +- update to 2.2.3 + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Fri Feb 14 2003 Jeremy Katz 2.2.0-3 +- fix buildrequires + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Tue Jan 21 2003 Alexander Larsson 2.2.0-1 +- Update to 2.2.0 +- Add libglade dependency + +* Tue Jan 7 2003 Alexander Larsson 2.1.4-1 +- Updated to 2.1.4 + +* Mon Nov 18 2002 Tim Powers +- rebuild for all arches + +* Mon Aug 12 2002 Alexander Larsson +- Remove the strange copyright on the start page. Fixes #69106 + +* Thu Aug 8 2002 Havoc Pennington +- 1.0.2 +- include libexecdir stuff + +* Sat Jul 27 2002 Havoc Pennington +- rebuild with new gail +- 1.0.1 + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Tue Jun 18 2002 Havoc Pennington +- put all the binaries in the file list... why is this package so hard? + +* Mon Jun 17 2002 Havoc Pennington +- put images in file list, this thing will be non-ugly yet + +* Sun Jun 16 2002 Havoc Pennington +- 1.0 +- use desktop-file-install to install/munge .desktop files +- put the sgml stuff in file list + +* Fri Jun 07 2002 Havoc Pennington +- rebuild in different environment + +* Wed Jun 5 2002 Havoc Pennington +- 0.10 + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Tue May 21 2002 Havoc Pennington +- rebuild in different environment + +* Tue May 21 2002 Havoc Pennington +- 0.8 + +* Fri May 3 2002 Havoc Pennington +- 0.6.1 + +* Fri Apr 19 2002 Havoc Pennington +- 0.6 + +* Wed Jan 30 2002 Owen Taylor +- Rebuild for new gnome2 libraries + +* Mon Jan 28 2002 Alex Larsson +- Initial build.