diff --git a/Fix-qch-build.patch b/Fix-qch-build.patch deleted file mode 100644 index 71fd65e..0000000 --- a/Fix-qch-build.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 573e92315a4bc14230ba5bb930bad36035a67671 Mon Sep 17 00:00:00 2001 -From: Peter Feichtinger -Date: Sat, 2 Feb 2019 17:03:54 +0100 -Subject: [PATCH] Fix QCH build - -This changes the file extension of the qhelpgenerator input file to use -a .qhp extension instead of .xml. This is required because an update to -qhelpgenerator now rejects the .xml extension. ---- - Makefile | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Makefile b/Makefile -index 88fb9c9..59904f7 100644 ---- a/Makefile -+++ b/Makefile -@@ -171,13 +171,13 @@ output/cppreference-doc-en-cpp.devhelp2: \ - #build the .qch (QT help) file - output/cppreference-doc-en-cpp.qch: output/qch-help-project-cpp.xml - #qhelpgenerator only works if the project file is in the same directory as the documentation -- cp "output/qch-help-project-cpp.xml" "output/reference/qch.xml" -+ cp "output/qch-help-project-cpp.xml" "output/reference/qch.qhp" - - pushd "output/reference" > /dev/null; \ -- $(qhelpgenerator) "qch.xml" -o "../cppreference-doc-en-cpp.qch"; \ -+ $(qhelpgenerator) "qch.qhp" -o "../cppreference-doc-en-cpp.qch"; \ - popd > /dev/null - -- rm -f "output/reference/qch.xml" -+ rm -f "output/reference/qch.qhp" - - output/qch-help-project-cpp.xml: output/cppreference-doc-en-cpp.devhelp2 - #build the file list diff --git a/cppreference-doc-20180311.tar.xz b/cppreference-doc-20180311.tar.xz deleted file mode 100644 index 9faa37e..0000000 --- a/cppreference-doc-20180311.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8fe592ee31efa1e5de4515d6c27a76c99b599ce28e4e88b4cbb0cb2b70ca2b67 -size 8110420 diff --git a/cppreference-doc-20190607.tar.xz b/cppreference-doc-20190607.tar.xz new file mode 100644 index 0000000..2051c91 --- /dev/null +++ b/cppreference-doc-20190607.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd010ac2a3a8ba7e74cb247ea852e39fc7f37b08de2aaf50f2de17ea3832c432 +size 6531336 diff --git a/cppreference-doc.changes b/cppreference-doc.changes index 14bfe9f..0b34702 100644 --- a/cppreference-doc.changes +++ b/cppreference-doc.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Aug 27 00:46:55 UTC 2019 - Atri Bhattacharya + +- Update to version 20190607: + + List of changes unavailable from upstream. +- Drop Fix-qch-build.patch: incorporate upstream. +- Add a build script missed by upstream tarball + (preprocess_qch.py). +- New build dependency: python3-premailer. + ------------------------------------------------------------------- Tue Apr 9 12:53:45 UTC 2019 - Christophe Giboudeaux diff --git a/cppreference-doc.spec b/cppreference-doc.spec index dc72489..6603d54 100644 --- a/cppreference-doc.spec +++ b/cppreference-doc.spec @@ -17,18 +17,21 @@ Name: cppreference-doc -Version: 20180311 +Version: 20190607 Release: 0 Summary: Cppreference documentation for offline reading License: CC-BY-SA-3.0 Group: Documentation/HTML Url: http://en.cppreference.com/w/ -Source: http://upload.cppreference.com/mwiki/images/c/cb/cppreference-doc-20180311.tar.xz -Patch0: Fix-qch-build.patch +Source0: http://upload.cppreference.com/mwiki/images/8/80/cppreference-doc-20190607.tar.xz +# SECTION Manually bundle build script missed by upstream tarball +Source1: https://raw.githubusercontent.com/p12tic/cppreference-doc/v20190607/preprocess_qch.py +# /SECTION BuildRequires: devhelp BuildRequires: fdupes BuildRequires: libqt5-qttools BuildRequires: python3-lxml +BuildRequires: python3-premailer BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -58,7 +61,8 @@ This package provides the documentation in the qhelp format. %prep %setup -q -%patch0 -p1 +cp %{S:1} ./ +chmod +x preprocess_qch.py %build make %{?_smp_mflags} qhelpgenerator=qhelpgenerator-qt5 diff --git a/preprocess_qch.py b/preprocess_qch.py new file mode 100644 index 0000000..1179043 --- /dev/null +++ b/preprocess_qch.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2018 Monika Kairaityte +# +# This file is part of cppreference-doc +# +# 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 3 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, see http://www.gnu.org/licenses/. + +import argparse +import concurrent.futures +import os +import shutil +from commands import preprocess_cssless + + +def main(): + parser = argparse.ArgumentParser(prog='preprocess_qch.py') + parser.add_argument( + '--src', required=True, type=str, + help='Source directory where raw website copy resides') + + parser.add_argument( + '--dst', required=True, type=str, + help='Destination folder to put preprocessed archive to') + + parser.add_argument( + '--verbose', action='store_true', default=False, + help='If set, verbose output is produced') + args = parser.parse_args() + + source_root = args.src + dest_root = args.dst + verbose = args.verbose + + if os.path.isdir(dest_root): + shutil.rmtree(dest_root) + + paths_list = [] + for root, _, files in os.walk(source_root): + for file in files: + if file.endswith(".html"): + src_path = os.path.join(root, file) + rel_path = os.path.relpath(src_path, source_root) + dst_path = os.path.join(dest_root, rel_path) + paths_list.append((src_path, dst_path)) + + with concurrent.futures.ProcessPoolExecutor() as executor: + futures = [ + executor.submit(preprocess_cssless.preprocess_html_merge_cssless, + src_path, dst_path) + for src_path, dst_path in paths_list + ] + + for i, future in enumerate(futures): + print('Processing file: {}/{}: {}'.format( + i, len(paths_list), paths_list[i][1])) + output = future.result() + if verbose: + print(output) + + +if __name__ == "__main__": + main()