Compare commits

...
Sign in to create a new pull request.

27 commits

Author SHA1 Message Date
Fedora Release Engineering
f81f852749 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 09:34:16 +00:00
Milan Crha
b7888cb6db Switch to gnome-srpm-macros macros
[skip changelog]
2026-07-03 11:25:37 +02:00
Fedora Release Engineering
d1f879be91 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 21:01:51 +00:00
Fedora Release Engineering
83ec01e27d Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 21:11:56 +00:00
Michael Catanzaro
555c182ff6 Switch to rpm-autospec 2025-01-30 13:27:14 -06:00
Michael Catanzaro
493e36e56e Add URL handler 2025-01-30 13:25:39 -06:00
Fedora Release Engineering
3ee42d2a20 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 16:33:11 +00:00
Fedora Release Engineering
eba1f969f4 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:41:19 +00:00
Tomas Popela
6b04fb27ac Build for the SPDX license format change 2024-02-12 10:51:34 +01:00
Tomas Popela
bc116e38e1 Migrate to SPDX license format 2024-02-09 11:56:10 +01:00
Fedora Release Engineering
4d7a885cb0 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 10:46:02 +00:00
Fedora Release Engineering
7ef6ed2a62 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 19:30:06 +00:00
Fedora Release Engineering
9e8f0b6aae Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 08:04:50 +00:00
David King
863da6ea7b Update to 42.1 2022-10-31 08:56:14 +00:00
Fedora Release Engineering
59c31d2fd3 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 13:44:29 +00:00
David King
e57d7fdfbc Update to 42.0 2022-03-19 17:38:09 +00:00
David King
49bf2188de Update to 42.beta 2022-02-14 09:08:34 +00:00
Fedora Release Engineering
a818d53dc0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 05:41:38 +00:00
Kalev Lember
ef2d14334d Update to 41.0 2021-09-18 23:22:50 +02:00
Kalev Lember
ce9fb4a07e Update to 41.beta 2021-08-19 20:56:48 +02:00
Fedora Release Engineering
06a5684558 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 22:08:09 +00:00
Kalev Lember
9c2e717f07 Update to 40.0 2021-03-22 12:21:20 +01:00
Kalev Lember
4f81f4ffba Update to 40.rc 2021-03-15 21:39:49 +01:00
David King
b8f5ad00db Add Requires on python3-lxml (#1932011) 2021-02-23 19:42:09 +00:00
Kalev Lember
0e8e84b20a Update to 40.beta
- Switch to meson build system
2021-02-18 13:44:47 +01:00
Fedora Release Engineering
dd4d40acc3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-28 00:33:03 +00:00
Tom Stellard
4315241b1c Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-09 01:46:41 +00:00
5 changed files with 576 additions and 228 deletions

42
.gitignore vendored
View file

@ -1,40 +1,2 @@
/yelp-tools-3.1.4.tar.xz
/yelp-tools-3.1.5.tar.xz
/yelp-tools-3.1.6.tar.xz
/yelp-tools-3.1.7.tar.xz
/yelp-tools-3.2.0.tar.xz
/yelp-tools-3.2.1.tar.xz
/yelp-tools-3.3.1.tar.xz
/yelp-tools-3.3.2.tar.xz
/yelp-tools-3.3.3.tar.xz
/yelp-tools-3.3.4.tar.xz
/yelp-tools-3.4.0.tar.xz
/yelp-tools-3.4.1.tar.xz
/yelp-tools-3.5.91.tar.xz
/yelp-tools-3.5.92.tar.xz
/yelp-tools-3.6.0.tar.xz
/yelp-tools-3.6.1.tar.xz
/yelp-tools-3.9.1.tar.xz
/yelp-tools-3.9.90.tar.xz
/yelp-tools-3.10.0.tar.xz
/yelp-tools-3.11.1.tar.xz
/yelp-tools-3.11.2.tar.xz
/yelp-tools-3.11.3.tar.xz
/yelp-tools-3.11.5.tar.xz
/yelp-tools-3.12.0.tar.xz
/yelp-tools-3.12.1.tar.xz
/yelp-tools-3.13.3.tar.xz
/yelp-tools-3.14.0.tar.xz
/yelp-tools-3.14.1.tar.xz
/yelp-tools-3.16.1.tar.xz
/yelp-tools-3.17.3.tar.xz
/yelp-tools-3.17.4.tar.xz
/yelp-tools-3.18.0.tar.xz
/yelp-tools-3.27.90.tar.xz
/yelp-tools-3.28.0.tar.xz
/yelp-tools-3.31.90.tar.xz
/yelp-tools-3.32.0.tar.xz
/yelp-tools-3.32.1.tar.xz
/yelp-tools-3.32.2.tar.xz
/yelp-tools-3.37.90.tar.xz
/yelp-tools-3.38.0.tar.xz
/yelp-tools-*.tar.xz
/yelp-tools-*-build

239
changelog Normal file
View file

@ -0,0 +1,239 @@
* Thu Jan 30 2025 Michael Catanzaro <mcatanzaro@redhat.com> - 42.1-8
- Add URL handler to open help files in web browser in ELN
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 42.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 42.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Feb 12 2024 Tomas Popela <tpopela@redhat.com> - 42.1-5
- Build for the SPDX license format change
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 42.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 42.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 42.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Oct 31 2022 David King <amigadave@amigadave.com> - 42.1-1
- Update to 42.1
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 42.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Mar 19 2022 David King <amigadave@amigadave.com> - 42.0-1
- Update to 42.0
* Mon Feb 14 2022 David King <amigadave@amigadave.com> - 42~beta-1
- Update to 42.beta
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 41.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Sep 18 2021 Kalev Lember <klember@redhat.com> - 41.0-1
- Update to 41.0
* Thu Aug 19 2021 Kalev Lember <klember@redhat.com> - 41~beta-1
- Update to 41.beta
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 40.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 40.0-1
- Update to 40.0
* Mon Mar 15 2021 Kalev Lember <klember@redhat.com> - 40~rc-1
- Update to 40.rc
* Tue Feb 23 2021 David King <amigadave@amigadave.com> - 40~beta-2
- Add Requires on python3-lxml (#1932011)
* Thu Feb 18 2021 Kalev Lember <klember@redhat.com> - 40~beta-1
- Update to 40.beta
- Switch to meson build system
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.38.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Sep 12 2020 Kalev Lember <klember@redhat.com> - 3.38.0-1
- Update to 3.38.0
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.37.90-1
- Update to 3.37.90
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jul 20 2019 David King <amigadave@amigadave.com> - 3.32.2-2
- Add xsltproc to Requires
* Wed Jun 12 2019 Kalev Lember <klember@redhat.com> - 3.32.2-1
- Update to 3.32.2
* Tue May 07 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Mon Feb 04 2019 David King <amigadave@amigadave.com> - 3.31.90-1
- Update to 3.31.90
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 3.28.0-1
- Update to 3.28.0
* Tue Mar 06 2018 Kalev Lember <klember@redhat.com> - 3.27.90-1
- Update to 3.27.90
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Apr 26 2016 David King <amigadave@amigadave.com> - 3.18.0-3
- Add Requires on mallard-rng for schemas
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Sep 21 2015 Kalev Lember <klember@redhat.com> - 3.18.0-1
- Update to 3.18.0
- Use make_install macro
* Mon Jul 20 2015 David King <amigadave@amigadave.com> - 3.17.4-1
- Update to 3.17.4
* Mon Jun 29 2015 David King <amigadave@amigadave.com> - 3.17.3-1
- Update to 3.17.3
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Apr 14 2015 David King <amigadave@amigadave.com> - 3.16.1-1
- Update to 3.16.1
- Use license macro for COPYING and COPYING.GPL
* Mon Oct 13 2014 David King <amigadave@amigadave.com> - 3.14.1-1
- Update to 3.14.1
* Tue Sep 23 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.0-1
- Update to 3.14.0
* Tue Jul 01 2014 David King <amigadave@amigadave.com> - 3.13.3-2
- Tidy spec file
* Tue Jun 24 2014 Richard Hughes <rhughes@redhat.com> - 3.13.3-1
- Update to 3.13.3
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Apr 28 2014 Richard Hughes <rhughes@redhat.com> - 3.12.1-1
- Update to 3.12.1
* Tue Mar 25 2014 Richard Hughes <rhughes@redhat.com> - 3.12.0-1
- Update to 3.12.0
* Mon Feb 03 2014 Richard Hughes <rhughes@redhat.com> - 3.11.5-1
- Update to 3.11.5
* Tue Dec 17 2013 Richard Hughes <rhughes@redhat.com> - 3.11.3-1
- Update to 3.11.3
* Mon Nov 25 2013 Richard Hughes <rhughes@redhat.com> - 3.11.2-1
- Update to 3.11.2
* Tue Nov 19 2013 Richard Hughes <rhughes@redhat.com> - 3.11.1-1
- Update to 3.11.1
* Tue Sep 24 2013 Kalev Lember <kalevlember@gmail.com> - 3.10.0-1
- Update to 3.10.0
* Thu Aug 22 2013 Kalev Lember <kalevlember@gmail.com> - 3.9.90-1
- Update to 3.9.90
* Fri Aug 09 2013 Kalev Lember <kalevlember@gmail.com> - 3.9.1-1
- Update to 3.9.1
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Oct 16 2012 Kalev Lember <kalevlember@gmail.com> - 3.6.1-1
- Update to 3.6.1
* Tue Sep 25 2012 Kalev Lember <kalevlember@gmail.com> - 3.6.0-1
- Update to 3.6.0
* Tue Sep 18 2012 Kalev Lember <kalevlember@gmail.com> - 3.5.92-1
- Update to 3.5.92
* Tue Sep 04 2012 Richard Hughes <hughsient@gmail.com> - 3.5.91-1
- Update to 3.5.91
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed May 16 2012 Kalev Lember <kalevlember@gmail.com> - 3.4.1-2
- Depend on itstool and xmllint, which are required by yelp.m4
* Tue Apr 17 2012 Kalev Lember <kalevlember@gmail.com> - 3.4.1-1
- Update to 3.4.1
* Tue Mar 27 2012 Richard Hughes <hughsient@gmail.com> - 3.4.0-1
- Update to 3.4.0
* Tue Mar 20 2012 Kalev Lember <kalevlember@gmail.com> - 3.3.4-1
- Update to 3.3.4
* Sat Feb 25 2012 Matthias Clasen <mclasen@redhat.com> - 3.3.3-1
- Update to 3.3.3
* Mon Feb 6 2012 Matthias Clasen <mclasen@redhat.com> - 3.3.2-1
- Update to 3.3.2
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Nov 21 2011 Matthias Clasen <mclasen@redhat.com> - 3.3.1-1
- Update to 3.3.1
* Tue Oct 18 2011 Matthias Clasen <mclasen@redhat.com> - 3.2.1-1
- Update to 3.2.1
* Tue Sep 27 2011 Ray <rstrode@redhat.com> - 3.2.0-1
- Update to 3.2.0
* Tue Sep 20 2011 Matthias Clasen <mclasen@redhat.com> 3.1.7-1
- Update to 3.1.7
* Wed Sep 07 2011 Kalev Lember <kalevlember@gmail.com> 3.1.6-1
- Update to 3.1.6
* Thu Aug 18 2011 Matthias Clasen <mclasen@redhat.com> 3.1.5-1
- Update to 3.1.5
* Thu Jun 16 2011 Zeeshan Ali <zeenix@redhat.com> 3.1.4-1
- Initial release.

View file

@ -1 +1 @@
SHA512 (yelp-tools-3.38.0.tar.xz) = 2042e37f8efbe9974f5a507910393b837a0b9154beb918a5e8d145205fb519c8244bb405cf328ff5014287086be5b6d33ad631951bd0e950c2ad9efc60065d59
SHA512 (yelp-tools-42.1.tar.xz) = e05a61d18179a9816ec38d1a2335091a3846cf74bb1ecec5374c9a13cc8962d14416208e04eec92f4ee43ec90e1992cc4a263bc4c267caac5d154a15f10d3006

304
url-handler.patch Normal file
View file

@ -0,0 +1,304 @@
From 66d2d8d8239f781f20f913dbe388b52e14f8dffb Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 18 May 2023 11:28:37 -0400
Subject: [PATCH] tools: Add a url handler that generates html from
documentation
Some systems don't install yelp by default but still want to show
documentation.
This commit adds a small url handler to automatically convert
documentation to html format and then launch a web browser to show
it.
---
meson_options.txt | 4 +
tools/meson.build | 24 +++
tools/yelp-build-url-handler.desktop.in | 6 +
tools/yelp-build-url-handler.in | 212 ++++++++++++++++++++++++
4 files changed, 246 insertions(+)
create mode 100644 tools/yelp-build-url-handler.desktop.in
create mode 100755 tools/yelp-build-url-handler.in
diff --git a/meson_options.txt b/meson_options.txt
index 0526e6f..03e9050 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -5,3 +5,7 @@ option('yelpm4',
option('help',
type: 'boolean', value: false,
description: 'Install help files')
+
+option('url_handler',
+ type: 'feature', value: 'disabled',
+ description: 'Install URL handler to open help in web browesr, use when not building Yelp')
diff --git a/tools/meson.build b/tools/meson.build
index 35187ca..b2518d6 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,5 +1,10 @@
yelp_tools_in = configuration_data()
yelp_tools_in.set('DATADIR', pkgdir)
+yelp_tools_in.set('HELPDIR', join_paths (
+ datadir,
+ 'help',
+ )
+)
yelp_tools_in.set('YELP_JS_DIR', yelp_js_dir)
@@ -48,3 +53,22 @@ if get_option('yelpm4') == true
)
)
endif
+
+if get_option('url_handler').enabled()
+ configure_file(
+ input: 'yelp-build-url-handler.in',
+ output: 'yelp-build-url-handler',
+ configuration: yelp_tools_in,
+ install: true,
+ install_dir: bindir,
+ )
+
+ configure_file(
+ input: 'yelp-build-url-handler.desktop.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'bindir': join_paths(get_option('prefix'), get_option('bindir'))
+ },
+ install_dir: join_paths(datadir, 'applications')
+ )
+endif
diff --git a/tools/yelp-build-url-handler.desktop.in b/tools/yelp-build-url-handler.desktop.in
new file mode 100644
index 0000000..9ead646
--- /dev/null
+++ b/tools/yelp-build-url-handler.desktop.in
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Name=Yelp URL Handler
+Exec=@bindir@/yelp-build-url-handler %u
+Type=Application
+MimeType=x-scheme-handler/help;
+NoDisplay=true
diff --git a/tools/yelp-build-url-handler.in b/tools/yelp-build-url-handler.in
new file mode 100755
index 0000000..8742d67
--- /dev/null
+++ b/tools/yelp-build-url-handler.in
@@ -0,0 +1,212 @@
+#!/usr/bin/python3
+#
+# yelp-build-url-handler
+# Copyright (C) 2023, 2024 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+import os
+import sys
+import subprocess
+import urllib.parse
+import gi
+import errno
+import dbus
+from dbus import Interface, SessionBus
+
+gi.require_version('Gio', '2.0')
+from gi.repository import Gio, GLib
+
+class YelpBuildUrlHandler:
+ def main(self):
+ if len(sys.argv) != 2:
+ print('Usage: yelp-build-url-handler <URL>', file=sys.stderr)
+ return 1
+ url = sys.argv[1]
+ return self.handle_url(url)
+
+ def determine_paths_from_url(self, url):
+ parsed_url = urllib.parse.urlparse(url)
+ if parsed_url.scheme != 'help':
+ print(f'Invalid URI scheme: {parsed_url.scheme}', file=sys.stderr)
+ return None
+
+ path = parsed_url.path.lstrip('/')
+ languages = GLib.get_language_names() + ['C']
+
+ for language in languages:
+ base_path = os.path.join('@HELPDIR@', language)
+ cache_path = os.path.join(GLib.get_user_cache_dir(), 'yelp-build', language)
+ full_source_path = os.path.join(base_path, path)
+
+ if os.path.isdir(full_source_path):
+ source_dir = full_source_path
+ output_dir = os.path.join(cache_path, path)
+ output_file = os.path.join(output_dir, 'index.html')
+ return {
+ 'source_dir': source_dir,
+ 'output_dir': output_dir,
+ 'output_file': output_file,
+ 'full_source_path': full_source_path
+ }
+ else:
+ full_source_file = full_source_path + '.page'
+ if os.path.isfile(full_source_file):
+ source_dir = os.path.dirname(full_source_file)
+ output_file = os.path.join(cache_path, path + '.html')
+ output_dir = os.path.dirname(output_file)
+ return {
+ 'source_dir': source_dir,
+ 'output_dir': output_dir,
+ 'output_file': output_file,
+ 'full_source_path': full_source_file
+ }
+
+ print(f'Help content not found for path: {path}', file=sys.stderr)
+ return None
+
+ def handle_url(self, url):
+ paths = self.determine_paths_from_url(url)
+
+ if paths is None:
+ return 1
+
+ source_dir = paths['source_dir']
+ output_dir = paths['output_dir']
+ output_file = paths['output_file']
+ full_source_path = paths['full_source_path']
+
+ cache_stale = True
+ try:
+ output_status = os.stat(output_dir)
+ source_status = os.stat(source_dir)
+ if output_status.st_mtime < source_status.st_mtime:
+ cache_stale = False
+ except OSError as e:
+ pass
+
+ if cache_stale:
+ cache_stale = not self.generate_html(source_dir, output_dir)
+
+ if cache_stale:
+ print(f'Failed to generate HTML for path {full_source_path}', file=sys.stderr)
+ return 1
+
+ sandboxed_dir = self.grant_access_to_browser(output_dir)
+ if sandboxed_dir is None:
+ print(f'Failed to grant browser access to generated HTML for path {full_source_path}', file=sys.stderr)
+ return 1
+
+ basename = os.path.basename(output_file)
+ sandboxed_file = os.path.join(sandboxed_dir, basename)
+ redirect_file = self.write_redirect_file(sandboxed_dir, sandboxed_file)
+ if redirect_file is None:
+ return 1
+
+ if not self.show_generated_html(redirect_file):
+ print('Failed to start browser', file=sys.stderr)
+ return 1
+
+ def generate_html(self, source_dir, output_dir):
+ os.makedirs(output_dir, exist_ok=True)
+ argv = ['yelp-build', 'html', '.', '-o', output_dir]
+ try:
+ subprocess.run(argv, cwd=source_dir, check=True)
+ return True
+ except subprocess.CalledProcessError as e:
+ print(f'Could not run "{" ".join(argv)}": {e}', file=sys.stderr)
+ return False
+
+ def grant_access_to_browser(self, output_dir):
+ default_browser = Gio.AppInfo.get_default_for_type('text/html', False)
+ if default_browser is None:
+ print('Default web browser not found!', file=sys.stderr)
+ return None
+
+ app_id = default_browser.get_id()
+ if app_id is None:
+ print('Default web browser has no app ID!', file=sys.stderr)
+ return None
+
+ app_id = app_id.removesuffix('.desktop')
+
+ try:
+ dir_fd = os.open(output_dir, os.O_PATH)
+ except OSError as e:
+ print(f'Failed to open directory {output_dir}: {e}', file=sys.stderr)
+ return None
+
+ bus = SessionBus()
+ try:
+ portal_documents_object = bus.get_object('org.freedesktop.portal.Documents', '/org/freedesktop/portal/documents')
+ portal_documents = Interface(portal_documents_object, dbus_interface='org.freedesktop.portal.Documents')
+ except dbus.DBusException as e:
+ print(f'Failed to connect to Documents portal: {e}', file=sys.stderr)
+ os.close(dir_fd)
+ return None
+
+ flags = (
+ 1 << 0 # ReuseExisting
+ | 1 << 1 # Persistent
+ | 1 << 3 # ExportDirectory
+ )
+ permissions = ['read']
+
+ try:
+ doc_with_signature, *_ = portal_documents.AddFull([dbus.types.UnixFd(dir_fd)], flags, app_id, permissions)
+ if not doc_with_signature:
+ print('No document IDs returned from portal', file=sys.stderr)
+ os.close(dir_fd)
+ return None
+
+ doc_id, *_ = doc_with_signature
+ sandboxed_dir = os.path.join(GLib.get_user_runtime_dir(), 'doc', doc_id, os.path.basename(output_dir))
+ os.close(dir_fd)
+ except dbus.DBusException as e:
+ print(f'Failed to call AddFull method: {e}', file=sys.stderr)
+ os.close(dir_fd)
+ return None
+
+ return sandboxed_dir
+
+ def show_generated_html(self, output):
+ try:
+ uri = GLib.filename_to_uri(output)
+ Gio.AppInfo.launch_default_for_uri(uri, None)
+ except Exception as e:
+ print(f'Failed to launch default application: {e}', file=sys.stderr)
+ return False
+
+ return True
+
+ def write_redirect_file(self, sandboxed_dir, sandboxed_file):
+ html = f'<meta http-equiv="refresh" content="0; url=file://{sandboxed_file}">'
+ redirect_file = os.path.join(sandboxed_dir, 'yelp-build-redirect.html')
+
+ try:
+ with open(redirect_file, 'w') as f:
+ f.write(html)
+ except Exception as e:
+ print(f'Error writing redirect file {redirect_file}: {e}', file=sys.stderr)
+ return None
+
+ return redirect_file
+
+if __name__ == '__main__':
+ try:
+ sys.exit(YelpBuildUrlHandler().main())
+ except KeyboardInterrupt:
+ sys.exit(1)
+
--
GitLab

View file

@ -1,14 +1,23 @@
%bcond url_handler 0%{?rhel}
Name: yelp-tools
Version: 3.38.0
Release: 1%{?dist}
Version: 42.1
Release: %autorelease
Summary: Create, manage, and publish documentation for Yelp
License: GPLv2+
License: GPL-2.0-or-later
URL: https://wiki.gnome.org/Apps/Yelp/Tools
Source0: https://download.gnome.org/sources/%{name}/3.38/%{name}-%{version}.tar.xz
Source0: https://download.gnome.org/sources/%{name}/%{gnome_major_version}/%{name}-%{gnome_tarball_version}.tar.xz
BuildArch: noarch
%gnome_check_version
# https://gitlab.gnome.org/GNOME/yelp-tools/-/merge_requests/12
Patch: url-handler.patch
BuildRequires: meson
BuildRequires: pkgconfig(yelp-xsl)
BuildRequires: python3-lxml
BuildRequires: itstool
BuildRequires: libxslt
@ -16,6 +25,7 @@ Requires: /usr/bin/itstool
Requires: /usr/bin/xmllint
Requires: /usr/bin/xsltproc
Requires: mallard-rng
Requires: python3-lxml
Requires: yelp-xsl
%description
@ -25,200 +35,33 @@ lifting is done by packages like yelp-xsl and itstool. This package just
wraps things up in a developer-friendly way.
%prep
%setup -q
%autosetup -p1 -n %{name}-%{gnome_tarball_version}
%build
%configure
make %{?_smp_mflags}
%meson \
%if %{with url_handler}
-Durl_handler=enabled \
%endif
%{nil}
%meson_build
%install
%make_install
%meson_install
%files
%doc AUTHORS README
%doc AUTHORS README.md NEWS
%license COPYING COPYING.GPL
%{_bindir}/yelp-build
%if %{with url_handler}
%{_bindir}/yelp-build-url-handler
%endif
%{_bindir}/yelp-check
%{_bindir}/yelp-new
%if %{with url_handler}
%{_datadir}/applications/yelp-build-url-handler.desktop
%endif
%{_datadir}/yelp-tools
%{_datadir}/aclocal/yelp.m4
%changelog
* Sat Sep 12 2020 Kalev Lember <klember@redhat.com> - 3.38.0-1
- Update to 3.38.0
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.37.90-1
- Update to 3.37.90
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.32.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jul 20 2019 David King <amigadave@amigadave.com> - 3.32.2-2
- Add xsltproc to Requires
* Wed Jun 12 2019 Kalev Lember <klember@redhat.com> - 3.32.2-1
- Update to 3.32.2
* Tue May 07 2019 Kalev Lember <klember@redhat.com> - 3.32.1-1
- Update to 3.32.1
* Mon Mar 11 2019 Kalev Lember <klember@redhat.com> - 3.32.0-1
- Update to 3.32.0
* Mon Feb 04 2019 David King <amigadave@amigadave.com> - 3.31.90-1
- Update to 3.31.90
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.28.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 3.28.0-1
- Update to 3.28.0
* Tue Mar 06 2018 Kalev Lember <klember@redhat.com> - 3.27.90-1
- Update to 3.27.90
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Apr 26 2016 David King <amigadave@amigadave.com> - 3.18.0-3
- Add Requires on mallard-rng for schemas
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Sep 21 2015 Kalev Lember <klember@redhat.com> - 3.18.0-1
- Update to 3.18.0
- Use make_install macro
* Mon Jul 20 2015 David King <amigadave@amigadave.com> - 3.17.4-1
- Update to 3.17.4
* Mon Jun 29 2015 David King <amigadave@amigadave.com> - 3.17.3-1
- Update to 3.17.3
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Apr 14 2015 David King <amigadave@amigadave.com> - 3.16.1-1
- Update to 3.16.1
- Use license macro for COPYING and COPYING.GPL
* Mon Oct 13 2014 David King <amigadave@amigadave.com> - 3.14.1-1
- Update to 3.14.1
* Tue Sep 23 2014 Kalev Lember <kalevlember@gmail.com> - 3.14.0-1
- Update to 3.14.0
* Tue Jul 01 2014 David King <amigadave@amigadave.com> - 3.13.3-2
- Tidy spec file
* Tue Jun 24 2014 Richard Hughes <rhughes@redhat.com> - 3.13.3-1
- Update to 3.13.3
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.12.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Apr 28 2014 Richard Hughes <rhughes@redhat.com> - 3.12.1-1
- Update to 3.12.1
* Tue Mar 25 2014 Richard Hughes <rhughes@redhat.com> - 3.12.0-1
- Update to 3.12.0
* Mon Feb 03 2014 Richard Hughes <rhughes@redhat.com> - 3.11.5-1
- Update to 3.11.5
* Tue Dec 17 2013 Richard Hughes <rhughes@redhat.com> - 3.11.3-1
- Update to 3.11.3
* Mon Nov 25 2013 Richard Hughes <rhughes@redhat.com> - 3.11.2-1
- Update to 3.11.2
* Tue Nov 19 2013 Richard Hughes <rhughes@redhat.com> - 3.11.1-1
- Update to 3.11.1
* Tue Sep 24 2013 Kalev Lember <kalevlember@gmail.com> - 3.10.0-1
- Update to 3.10.0
* Thu Aug 22 2013 Kalev Lember <kalevlember@gmail.com> - 3.9.90-1
- Update to 3.9.90
* Fri Aug 09 2013 Kalev Lember <kalevlember@gmail.com> - 3.9.1-1
- Update to 3.9.1
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Oct 16 2012 Kalev Lember <kalevlember@gmail.com> - 3.6.1-1
- Update to 3.6.1
* Tue Sep 25 2012 Kalev Lember <kalevlember@gmail.com> - 3.6.0-1
- Update to 3.6.0
* Tue Sep 18 2012 Kalev Lember <kalevlember@gmail.com> - 3.5.92-1
- Update to 3.5.92
* Tue Sep 04 2012 Richard Hughes <hughsient@gmail.com> - 3.5.91-1
- Update to 3.5.91
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed May 16 2012 Kalev Lember <kalevlember@gmail.com> - 3.4.1-2
- Depend on itstool and xmllint, which are required by yelp.m4
* Tue Apr 17 2012 Kalev Lember <kalevlember@gmail.com> - 3.4.1-1
- Update to 3.4.1
* Tue Mar 27 2012 Richard Hughes <hughsient@gmail.com> - 3.4.0-1
- Update to 3.4.0
* Tue Mar 20 2012 Kalev Lember <kalevlember@gmail.com> - 3.3.4-1
- Update to 3.3.4
* Sat Feb 25 2012 Matthias Clasen <mclasen@redhat.com> - 3.3.3-1
- Update to 3.3.3
* Mon Feb 6 2012 Matthias Clasen <mclasen@redhat.com> - 3.3.2-1
- Update to 3.3.2
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Nov 21 2011 Matthias Clasen <mclasen@redhat.com> - 3.3.1-1
- Update to 3.3.1
* Tue Oct 18 2011 Matthias Clasen <mclasen@redhat.com> - 3.2.1-1
- Update to 3.2.1
* Tue Sep 27 2011 Ray <rstrode@redhat.com> - 3.2.0-1
- Update to 3.2.0
* Tue Sep 20 2011 Matthias Clasen <mclasen@redhat.com> 3.1.7-1
- Update to 3.1.7
* Wed Sep 07 2011 Kalev Lember <kalevlember@gmail.com> 3.1.6-1
- Update to 3.1.6
* Thu Aug 18 2011 Matthias Clasen <mclasen@redhat.com> 3.1.5-1
- Update to 3.1.5
* Thu Jun 16 2011 Zeeshan Ali <zeenix@redhat.com> 3.1.4-1
- Initial release.
%autochangelog