Commit 426b4ce8565e4f9143c122fd3afbcc22598fc6c4

Authored by Jay Berkenbilt
1 parent eb20b4d0

Update documentation build/installation

.github/workflows/main.yml
@@ -19,21 +19,20 @@ on: @@ -19,21 +19,20 @@ on:
19 # have reliable testing. 19 # have reliable testing.
20 - cron: '12 4 * * 5' 20 - cron: '12 4 * * 5'
21 jobs: 21 jobs:
22 - Distfiles:  
23 - # Generate distfiles.zip, which is a prerequisite for the mac and  
24 - # Windows builds. Only the mac and Windows builds actually "need"  
25 - # it, but declaring all the jobs to need it forces it to run  
26 - # first. 22 + Prebuild:
  23 + # Run steps that are needed by the Windows build but are easier to
  24 + # build on Linux. Although only the Windows builds need this,
  25 + # other jobs depend on it to force it to run early.
27 runs-on: ubuntu-latest 26 runs-on: ubuntu-latest
28 steps: 27 steps:
29 - uses: actions/checkout@v2 28 - uses: actions/checkout@v2
30 - - name: 'Create distfiles.zip'  
31 - run: build-scripts/make-distfiles 29 + - name: 'Run pre-build steps'
  30 + run: build-scripts/prebuild
32 - name: 'Upload extra distribution files' 31 - name: 'Upload extra distribution files'
33 uses: actions/upload-artifact@v1 32 uses: actions/upload-artifact@v1
34 with: 33 with:
35 - name: distfiles  
36 - path: distfiles.zip 34 + name: doc
  35 + path: doc.zip
37 - name: 'Upload external libs' 36 - name: 'Upload external libs'
38 uses: actions/upload-artifact@v1 37 uses: actions/upload-artifact@v1
39 with: 38 with:
@@ -52,7 +51,7 @@ jobs: @@ -52,7 +51,7 @@ jobs:
52 path: distribution 51 path: distribution
53 Windows: 52 Windows:
54 runs-on: windows-latest 53 runs-on: windows-latest
55 - needs: Distfiles 54 + needs: Prebuild
56 strategy: 55 strategy:
57 fail-fast: false 56 fail-fast: false
58 max-parallel: 4 57 max-parallel: 4
@@ -64,10 +63,10 @@ jobs: @@ -64,10 +63,10 @@ jobs:
64 shell: bash 63 shell: bash
65 run: git config --global core.autocrlf input 64 run: git config --global core.autocrlf input
66 - uses: actions/checkout@v2 65 - uses: actions/checkout@v2
67 - - name: 'Download distribution files' 66 + - name: 'Download documentation'
68 uses: actions/download-artifact@v2 67 uses: actions/download-artifact@v2
69 with: 68 with:
70 - name: distfiles 69 + name: doc
71 path: . 70 path: .
72 - name: 'Download external libs' 71 - name: 'Download external libs'
73 uses: actions/download-artifact@v2 72 uses: actions/download-artifact@v2
@@ -84,13 +83,9 @@ jobs: @@ -84,13 +83,9 @@ jobs:
84 path: distribution 83 path: distribution
85 macOS: 84 macOS:
86 runs-on: macos-latest 85 runs-on: macos-latest
87 - needs: Distfiles 86 + needs: Prebuild
88 steps: 87 steps:
89 - uses: actions/checkout@v2 88 - uses: actions/checkout@v2
90 - - name: 'Download distribution files'  
91 - uses: actions/download-artifact@v2  
92 - with:  
93 - name: distfiles  
94 - name: 'Download external libs' 89 - name: 'Download external libs'
95 uses: actions/download-artifact@v2 90 uses: actions/download-artifact@v2
96 with: 91 with:
@@ -100,7 +95,7 @@ jobs: @@ -100,7 +95,7 @@ jobs:
100 run: build-scripts/build-mac 95 run: build-scripts/build-mac
101 AppImage: 96 AppImage:
102 runs-on: ubuntu-latest 97 runs-on: ubuntu-latest
103 - needs: Distfiles 98 + needs: Prebuild
104 steps: 99 steps:
105 - uses: actions/checkout@v2 100 - uses: actions/checkout@v2
106 - name: 'Build AppImage' 101 - name: 'Build AppImage'
@@ -112,21 +107,21 @@ jobs: @@ -112,21 +107,21 @@ jobs:
112 path: distribution 107 path: distribution
113 Linux32: 108 Linux32:
114 runs-on: ubuntu-latest 109 runs-on: ubuntu-latest
115 - needs: Distfiles 110 + needs: Prebuild
116 steps: 111 steps:
117 - uses: actions/checkout@v2 112 - uses: actions/checkout@v2
118 - name: 'Linux 32-bit' 113 - name: 'Linux 32-bit'
119 run: build-scripts/build-linux32 114 run: build-scripts/build-linux32
120 Fuzzers: 115 Fuzzers:
121 runs-on: ubuntu-latest 116 runs-on: ubuntu-latest
122 - needs: Distfiles 117 + needs: Prebuild
123 steps: 118 steps:
124 - uses: actions/checkout@v2 119 - uses: actions/checkout@v2
125 - name: 'Build Fuzzer' 120 - name: 'Build Fuzzer'
126 run: build-scripts/build-fuzzer 121 run: build-scripts/build-fuzzer
127 Sanitizers: 122 Sanitizers:
128 runs-on: ubuntu-latest 123 runs-on: ubuntu-latest
129 - needs: Distfiles 124 + needs: Prebuild
130 steps: 125 steps:
131 - uses: actions/checkout@v2 126 - uses: actions/checkout@v2
132 - name: 'Sanitizer Tests' 127 - name: 'Sanitizer Tests'
.gitignore
@@ -5,8 +5,8 @@ autoconf.mk @@ -5,8 +5,8 @@ autoconf.mk
5 autom4te.cache/ 5 autom4te.cache/
6 config.log 6 config.log
7 config.status 7 config.status
8 -distfiles.zip  
9 doc 8 doc
  9 +doc.zip
10 examples/build/ 10 examples/build/
11 external-libs 11 external-libs
12 fuzz/build/ 12 fuzz/build/
Makefile
@@ -97,23 +97,16 @@ $(foreach B,$(BUILD_ITEMS),$(eval \ @@ -97,23 +97,16 @@ $(foreach B,$(BUILD_ITEMS),$(eval \
97 clean_$(B): ; \ 97 clean_$(B): ; \
98 $(RM) -r $(B)/$(OUTPUT_DIR))) 98 $(RM) -r $(B)/$(OUTPUT_DIR)))
99 99
100 -DISTFILES = doc/qpdf-manual.html doc/qpdf-manual.pdf  
101 -distfiles.zip: $(DISTFILES)  
102 - $(RM) distfiles.zip  
103 - zip -r distfiles.zip $(DISTFILES) doc/_static  
104 -  
105 distclean: clean 100 distclean: clean
106 $(RM) -r autoconf.mk autom4te.cache config.log config.status libtool 101 $(RM) -r autoconf.mk autom4te.cache config.log config.status libtool
107 $(RM) libqpdf/qpdf/qpdf-config.h 102 $(RM) libqpdf/qpdf/qpdf-config.h
108 $(RM) manual/html.xsl 103 $(RM) manual/html.xsl
109 $(RM) manual/print.xsl 104 $(RM) manual/print.xsl
110 - $(RM) doc/*.1  
111 $(RM) libqpdf.pc libqpdf.map 105 $(RM) libqpdf.pc libqpdf.map
112 106
113 maintainer-clean: distclean 107 maintainer-clean: distclean
114 - $(RM) doc/qpdf-manual.*  
115 $(RM) -r install-mingw* install-msvc* external-libs 108 $(RM) -r install-mingw* install-msvc* external-libs
116 - $(RM) distfiles.zip 109 + $(RM) -rf doc
117 110
118 .PHONY: $(TEST_TARGETS) 111 .PHONY: $(TEST_TARGETS)
119 112
README-maintainer
@@ -119,7 +119,7 @@ RELEASE PREPARATION @@ -119,7 +119,7 @@ RELEASE PREPARATION
119 git --no-pager grep -i -n -P "copyright.*$(expr $(date +%Y) - 1).*berkenbilt" 119 git --no-pager grep -i -n -P "copyright.*$(expr $(date +%Y) - 1).*berkenbilt"
120 120
121 Also update the copyright in these places: 121 Also update the copyright in these places:
122 - * manual 122 + * manual/conf.py
123 * debian package -- search for copyright.*berkenbilt in debian/copyright 123 * debian package -- search for copyright.*berkenbilt in debian/copyright
124 * qtest-driver, TestDriver.pm in qtest source 124 * qtest-driver, TestDriver.pm in qtest source
125 125
@@ -210,14 +210,12 @@ RELEASE PREPARATION @@ -210,14 +210,12 @@ RELEASE PREPARATION
210 * Make sure version numbers are consistent in the following locations: 210 * Make sure version numbers are consistent in the following locations:
211 * configure.ac 211 * configure.ac
212 * libqpdf/QPDF.cc 212 * libqpdf/QPDF.cc
213 - * manual/qpdf-manual.xml 213 + * manual/conf.py
214 * qpdf/qpdf.cc 214 * qpdf/qpdf.cc
215 `make_dist` verifies this consistency. 215 `make_dist` verifies this consistency.
216 216
217 * Update release notes in manual. Look at diffs and ChangeLog. 217 * Update release notes in manual. Look at diffs and ChangeLog.
218 - Update release date in `manual/qpdf-manual.xml`. Remember to  
219 - ensure that the entities at the top of the document are consistent  
220 - with the release notes for both version and release date. 218 + Update release date in `manual/release-notes.rst`.
221 219
222 * Add a release entry to ChangeLog: "x.y.z: release" 220 * Add a release entry to ChangeLog: "x.y.z: release"
223 221
@@ -327,7 +325,7 @@ Template for release notes: @@ -327,7 +325,7 @@ Template for release notes:
327 ``` 325 ```
328 This is qpdf version x.y.z. (Brief description) 326 This is qpdf version x.y.z. (Brief description)
329 327
330 -For a full list of changes from previous releases, please see the [release notes](http://qpdf.sourceforge.net/files/qpdf-manual.html#release-notes). See also [README-what-to-download](./README-what-to-download.md) for details about the available source and binary distributions. 328 +For a full list of changes from previous releases, please see the [release notes](https://qpdf.sourceforge.io/doc/html/release-notes.html). See also [README-what-to-download](./README-what-to-download.md) for details about the available source and binary distributions.
331 ``` 329 ```
332 330
333 # Publish release 331 # Publish release
@@ -348,7 +346,7 @@ rsync -vrlcO ./ jay_berkenbilt,qpdf@frs.sourceforge.net:/home/frs/project/q/qp/q @@ -348,7 +346,7 @@ rsync -vrlcO ./ jay_berkenbilt,qpdf@frs.sourceforge.net:/home/frs/project/q/qp/q
348 346
349 (cd /tmp; mkdir -p z; cd z; \ 347 (cd /tmp; mkdir -p z; cd z; \
350 tar xf ~/Q/storage/releases/qpdf/qpdf/$version/qpdf-$version.tar.gz qpdf-$version/doc; \ 348 tar xf ~/Q/storage/releases/qpdf/qpdf/$version/qpdf-$version.tar.gz qpdf-$version/doc; \
351 - scp -p qpdf-$version/doc/qpdf-* jay_berkenbilt,qpdf@frs.sourceforge.net:htdocs/files/) 349 + rsync -avx --delete --force --exclude '*.1' qpdf-$version/doc/ jay_berkenbilt,qpdf@frs.sourceforge.net:htdocs/doc/)
352 350
353 * Upload the debian package and Ubuntu ppa backports. 351 * Upload the debian package and Ubuntu ppa backports.
354 352
README.md
@@ -68,7 +68,7 @@ The PDF file format used to rely on RC4 for encryption. Using 256-bit keys alway @@ -68,7 +68,7 @@ The PDF file format used to rely on RC4 for encryption. Using 256-bit keys alway
68 68
69 # Building from a pristine checkout 69 # Building from a pristine checkout
70 70
71 -When building qpdf from a pristine checkout from version control, generated documentation files are not present. You may either generate them (by passing `--enable-doc-maintenance` to `./configure` and satisfying the extra build-time dependencies) or obtain them from a released source package, which includes them. If you want to grab just the files that are in the source distribution but not in the repository, extract a source distribution in a temporary directory, and run `make CLEAN=1 distfiles.zip`. This will create a file called `distfiles.zip`, which can you can extract in a checkout of the source repository. This step is optional unless you are running make install and want the html and PDF versions of the documentation to be installed. 71 +When building qpdf from a pristine checkout from version control, generated HTML and PDF documentation files are not present. You don't need them unless you are going to run `make install` and want the documentation to be installed. If you want them, you can either extract the `doc` directory from a source distribution, or you can satisfy the additional requirements for building documentation and pass `--enable-doc-maintenance` to `./configure`.
72 72
73 # Building from source distribution on UNIX/Linux 73 # Building from source distribution on UNIX/Linux
74 74
1 Next 1 Next
2 ==== 2 ====
3 3
4 -* Add spell check to CI  
5 -  
6 * High-level API/doc overhaul: #593 4 * High-level API/doc overhaul: #593
7 5
8 * Refactor test_driver.cc so that runtest is not one huge function. 6 * Refactor test_driver.cc so that runtest is not one huge function.
@@ -19,24 +17,6 @@ Next @@ -19,24 +17,6 @@ Next
19 thrown when an uninitialized trailer is accessed provides useful 17 thrown when an uninitialized trailer is accessed provides useful
20 information. Test from the C API as well as the C++ API. 18 information. Test from the C API as well as the C++ API.
21 19
22 -Doc conversion  
23 -==============  
24 -  
25 -Before release:  
26 -  
27 -* Figure out what to do about the fact that the release notes are now  
28 - at #release-notes instead of #ref.release-notes. This invalidates  
29 - the link in all previous release announcements, but there's not much  
30 - I can do about, and it doesn't seem worth fixing. Maybe mention it  
31 - somewhere?  
32 -* README-maintainer: Fix installation of documentation to website  
33 -  
34 -Soon:  
35 -  
36 -* :ref: -- would be nice if it were suitable for printed documentation  
37 -* Decide about readthedocs; if using, with multiple versions/latest  
38 -* Generate stuff (options, code samples, etc.) as needed  
39 -  
40 Documentation 20 Documentation
41 ============= 21 =============
42 22
@@ -52,6 +32,8 @@ Documentation @@ -52,6 +32,8 @@ Documentation
52 * See #530 -- add an appendix explaining PDF encryption in general 32 * See #530 -- add an appendix explaining PDF encryption in general
53 plus how it's handled by qpdf. Or maybe this should go on the wiki. 33 plus how it's handled by qpdf. Or maybe this should go on the wiki.
54 34
  35 +* Decide about readthedocs including supporting multiple released
  36 + versions of the docs and docs from main.
55 37
56 Document-level work 38 Document-level work
57 =================== 39 ===================
build-scripts/build-mac
@@ -8,9 +8,6 @@ cd jpeg-* @@ -8,9 +8,6 @@ cd jpeg-*
8 make -k 8 make -k
9 sudo make install 9 sudo make install
10 cd .. 10 cd ..
11 -if [ -f distfiles/distfiles.zip ]; then  
12 - unzip distfiles/distfiles.zip  
13 -fi  
14 ./configure --enable-werror --enable-show-failed-test-output 11 ./configure --enable-werror --enable-show-failed-test-output
15 make -j$(nproc) -k 12 make -j$(nproc) -k
16 make -k check 13 make -k check
build-scripts/build-windows
@@ -20,7 +20,7 @@ if [[ $tool == mingw ]]; then @@ -20,7 +20,7 @@ if [[ $tool == mingw ]]; then
20 elif [[ $tool == msvc ]]; then 20 elif [[ $tool == msvc ]]; then
21 cl 21 cl
22 fi 22 fi
23 -unzip distfiles.zip 23 +unzip doc.zip
24 unzip qpdf-external-libs-bin.zip 24 unzip qpdf-external-libs-bin.zip
25 cwd=`pwd` 25 cwd=`pwd`
26 PATH=$cwd/libqpdf/build:$PATH 26 PATH=$cwd/libqpdf/build:$PATH
build-scripts/make-distfiles renamed to build-scripts/prebuild
@@ -7,5 +7,6 @@ sudo apt-get -y install \ @@ -7,5 +7,6 @@ sudo apt-get -y install \
7 python3-pip texlive-latex-extra latexmk inkscape imagemagick 7 python3-pip texlive-latex-extra latexmk inkscape imagemagick
8 pip3 install sphinx 8 pip3 install sphinx
9 ./configure --enable-doc-maintenance 9 ./configure --enable-doc-maintenance
10 -make -j$(nproc) distfiles.zip 10 +make -j$(nproc) build_manual
  11 +zip -r doc.zip doc/*html doc/*.pdf
11 build-scripts/download-external-libs 12 build-scripts/download-external-libs
cSpell.json
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
11 "afdh", 11 "afdh",
12 "afdhph", 12 "afdhph",
13 "ageneration", 13 "ageneration",
  14 + "agogo",
14 "aitems", 15 "aitems",
15 "annots", 16 "annots",
16 "aobjid", 17 "aobjid",
@@ -73,6 +74,7 @@ @@ -73,6 +74,7 @@
73 "dctdecode", 74 "dctdecode",
74 "decrypter", 75 "decrypter",
75 "deduplicating", 76 "deduplicating",
  77 + "deps",
76 "destdir", 78 "destdir",
77 "dests", 79 "dests",
78 "devel", 80 "devel",
@@ -80,7 +82,6 @@ @@ -80,7 +82,6 @@
80 "diffutils", 82 "diffutils",
81 "directpagerefcount", 83 "directpagerefcount",
82 "distclean", 84 "distclean",
83 - "distfiles",  
84 "ditems", 85 "ditems",
85 "docbook", 86 "docbook",
86 "docdir", 87 "docdir",
@@ -299,6 +300,7 @@ @@ -299,6 +300,7 @@
299 "pluggable", 300 "pluggable",
300 "pngify", 301 "pngify",
301 "poppler", 302 "poppler",
  303 + "prebuild",
302 "precheck", 304 "precheck",
303 "prepended", 305 "prepended",
304 "prepending", 306 "prepending",
make/installwin.mk
@@ -17,11 +17,12 @@ installwin: all @@ -17,11 +17,12 @@ installwin: all
17 cp qpdf/$(OUTPUT_DIR)/fix-qdf.exe $(DEST)/bin 17 cp qpdf/$(OUTPUT_DIR)/fix-qdf.exe $(DEST)/bin
18 cp include/qpdf/*.h $(DEST)/include/qpdf 18 cp include/qpdf/*.h $(DEST)/include/qpdf
19 cp include/qpdf/*.hh $(DEST)/include/qpdf 19 cp include/qpdf/*.hh $(DEST)/include/qpdf
20 - if [ -f doc/qpdf-manual.html ]; then \  
21 - mkdir $(DEST)/doc/_static; \  
22 - cp doc/qpdf-manual.html $(DEST)/doc; \  
23 - cp doc/_static/* $(DEST)/doc/_static; \  
24 - fi  
25 if [ -f doc/qpdf-manual.pdf ]; then \ 20 if [ -f doc/qpdf-manual.pdf ]; then \
26 cp doc/qpdf-manual.pdf $(DEST)/doc; \ 21 cp doc/qpdf-manual.pdf $(DEST)/doc; \
27 fi 22 fi
  23 + if [ -d doc/html ]; then \
  24 + cp -r doc/html $(DEST)/doc; \
  25 + fi
  26 + if [ -d doc/singlehtml ]; then \
  27 + cp -r doc/singlehtml $(DEST)/doc; \
  28 + fi
make/libtool.mk
@@ -121,8 +121,6 @@ install-libs: build_libqpdf @@ -121,8 +121,6 @@ install-libs: build_libqpdf
121 # NOTE: If installing any new executables, remember to update the 121 # NOTE: If installing any new executables, remember to update the
122 # lambda layer code in build-scripts/build-appimage. 122 # lambda layer code in build-scripts/build-appimage.
123 123
124 -# NOTE: See comments in manual/build.mk about html documentation.  
125 -  
126 # Ensure that installwin in make/installwin.mk is consistent with 124 # Ensure that installwin in make/installwin.mk is consistent with
127 # this. 125 # this.
128 126
@@ -139,12 +137,13 @@ install: all install-libs @@ -139,12 +137,13 @@ install: all install-libs
139 $(LIBTOOL) --mode=install ./install-sh \ 137 $(LIBTOOL) --mode=install ./install-sh \
140 qpdf/$(OUTPUT_DIR)/fix-qdf \ 138 qpdf/$(OUTPUT_DIR)/fix-qdf \
141 $(DESTDIR)$(bindir)/fix-qdf 139 $(DESTDIR)$(bindir)/fix-qdf
142 - if [ -f doc/qpdf-manual.html ]; then \  
143 - ./mkinstalldirs -m 0755 $(DESTDIR)$(docdir)/_static; \  
144 - ./install-sh -m 0644 doc/qpdf-manual.html $(DESTDIR)$(docdir); \  
145 - ./install-sh -m 0644 doc/_static/* $(DESTDIR)$(docdir)/_static; \  
146 - fi  
147 if [ -f doc/qpdf-manual.pdf ]; then \ 140 if [ -f doc/qpdf-manual.pdf ]; then \
148 ./install-sh -m 0644 doc/qpdf-manual.pdf $(DESTDIR)$(docdir); \ 141 ./install-sh -m 0644 doc/qpdf-manual.pdf $(DESTDIR)$(docdir); \
149 fi 142 fi
  143 + if [ -d doc/html ]; then \
  144 + cp -r doc/html $(DESTDIR)/$(docdir); \
  145 + fi
  146 + if [ -d doc/singlehtml ]; then \
  147 + cp -r doc/singlehtml $(DESTDIR)/$(docdir); \
  148 + fi
150 ./install-sh -m 0644 doc/*.1 $(DESTDIR)$(mandir)/man1 149 ./install-sh -m 0644 doc/*.1 $(DESTDIR)$(mandir)/man1
manual/build.mk
@@ -8,10 +8,10 @@ PDF_TARGET := $(PDF_OUT)/qpdf.pdf @@ -8,10 +8,10 @@ PDF_TARGET := $(PDF_OUT)/qpdf.pdf
8 8
9 TARGETS_manual := doc/qpdf.1 doc/fix-qdf.1 doc/zlib-flate.1 9 TARGETS_manual := doc/qpdf.1 doc/fix-qdf.1 doc/zlib-flate.1
10 ifeq ($(BUILD_HTML),1) 10 ifeq ($(BUILD_HTML),1)
11 -TARGETS_manual += doc/qpdf-manual.html $(HTML_TARGET) 11 +TARGETS_manual += $(HTML_TARGET) $(S_HTML_TARGET)
12 endif 12 endif
13 ifeq ($(BUILD_PDF),1) 13 ifeq ($(BUILD_PDF),1)
14 -TARGETS_manual += doc/qpdf-manual.pdf 14 +TARGETS_manual += $(PDF_TARGET)
15 endif 15 endif
16 16
17 MANUAL_DEPS = $(wildcard manual/*.rst) manual/conf.py 17 MANUAL_DEPS = $(wildcard manual/*.rst) manual/conf.py
@@ -22,33 +22,20 @@ MANUAL_DEPS = $(wildcard manual/*.rst) manual/conf.py @@ -22,33 +22,20 @@ MANUAL_DEPS = $(wildcard manual/*.rst) manual/conf.py
22 # the error "_pickle.UnpicklingError: pickle data was truncated" 22 # the error "_pickle.UnpicklingError: pickle data was truncated"
23 $(HTML_TARGET): $(MANUAL_DEPS) 23 $(HTML_TARGET): $(MANUAL_DEPS)
24 $(SPHINX) -M html manual $(DOC_OUT) -W 24 $(SPHINX) -M html manual $(DOC_OUT) -W
  25 + mkdir -p doc
  26 + rm -rf doc/html
  27 + cp -r $(DOC_OUT)/html doc
25 28
26 $(S_HTML_TARGET): $(MANUAL_DEPS) | $(HTML_TARGET) 29 $(S_HTML_TARGET): $(MANUAL_DEPS) | $(HTML_TARGET)
27 $(SPHINX) -M singlehtml manual $(DOC_OUT) -W 30 $(SPHINX) -M singlehtml manual $(DOC_OUT) -W
  31 + mkdir -p doc
  32 + rm -rf doc/singlehtml
  33 + cp -r $(DOC_OUT)/singlehtml doc
28 34
29 $(PDF_TARGET): $(MANUAL_DEPS) | $(S_HTML_TARGET) $(HTML_TARGET) 35 $(PDF_TARGET): $(MANUAL_DEPS) | $(S_HTML_TARGET) $(HTML_TARGET)
30 $(SPHINX) -M latexpdf manual $(DOC_OUT) -W 36 $(SPHINX) -M latexpdf manual $(DOC_OUT) -W
31 -  
32 -# This depends on sphinx-build's singlehtml target creating index.html  
33 -# and a _static directory. If that changes, this code has to be  
34 -# adjusted. It will also be necessary to adjust the install target in  
35 -# make/libtool.mk.  
36 -doc/qpdf-manual.html: $(S_HTML_TARGET)  
37 - mkdir -p doc  
38 - @if [ "$(shell find $(S_HTML_OUT)/ -mindepth 1 -type d -print)" != \  
39 - "$(S_HTML_OUT)/_static" ]; then \  
40 - echo "***"; \  
41 - echo Expected only directory in $(S_HTML_OUT) to be _static; \  
42 - echo "***"; \  
43 - false; \  
44 - fi  
45 - cp $< $@  
46 - mkdir -p doc/_static  
47 - cp -p $(S_HTML_OUT)/_static/* doc/_static  
48 -  
49 -doc/qpdf-manual.pdf: $(PDF_TARGET)  
50 mkdir -p doc 37 mkdir -p doc
51 - cp $< $@ 38 + cp $(PDF_TARGET) doc/qpdf-manual.pdf
52 39
53 doc/%.1: manual/%.1.in 40 doc/%.1: manual/%.1.in
54 mkdir -p doc 41 mkdir -p doc
manual/fix-qdf.1.in
@@ -14,5 +14,5 @@ the same file with stream lengths, cross-reference table entries, and @@ -14,5 +14,5 @@ the same file with stream lengths, cross-reference table entries, and
14 object stream offset tables regenerated. 14 object stream offset tables regenerated.
15 .PP 15 .PP
16 For details about fix-qdf and about PDF files in QDF mode, please see 16 For details about fix-qdf and about PDF files in QDF mode, please see
17 -the qpdf manual, which can be found in @docdir@/qpdf-manual.html or 17 +the qpdf manual, which can be found in @docdir@/html/index.html or
18 @docdir@/qpdf-manual.pdf. 18 @docdir@/qpdf-manual.pdf.
manual/installation.rst
@@ -64,7 +64,7 @@ Pre-built documentation is distributed with qpdf, so you should @@ -64,7 +64,7 @@ Pre-built documentation is distributed with qpdf, so you should
64 generally not need to rebuild the documentation. In order to build the 64 generally not need to rebuild the documentation. In order to build the
65 documentation from source, you need to install `Sphinx 65 documentation from source, you need to install `Sphinx
66 <https://sphinx-doc.org>`__. To build the PDF version of the 66 <https://sphinx-doc.org>`__. To build the PDF version of the
67 -documentation, you need `pdflatex`, `latexmk`, and a fairly complete 67 +documentation, you need ``pdflatex``, ``latexmk``, and a fairly complete
68 LaTeX installation. Detailed requirements can be found in the Sphinx 68 LaTeX installation. Detailed requirements can be found in the Sphinx
69 documentation. 69 documentation.
70 70
manual/qpdf.1.in
@@ -16,4 +16,4 @@ useful primarily to PDF developers. @@ -16,4 +16,4 @@ useful primarily to PDF developers.
16 .PP 16 .PP
17 For a summary of qpdf's options, please run 17 For a summary of qpdf's options, please run
18 \fBqpdf \-\-help\fR. A complete manual can be found in 18 \fBqpdf \-\-help\fR. A complete manual can be found in
19 -@docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. 19 +@docdir@/html/index.html or @docdir@/qpdf-manual.pdf.
manual/release-notes.rst
@@ -7,6 +7,25 @@ For a detailed list of changes, please see the file @@ -7,6 +7,25 @@ For a detailed list of changes, please see the file
7 :file:`ChangeLog` in the source distribution. 7 :file:`ChangeLog` in the source distribution.
8 8
9 10.5.0: XXX Month dd, YYYY 9 10.5.0: XXX Month dd, YYYY
  10 + - Packaging changes
  11 +
  12 + - The structure of the ``doc`` directory is different. The PDF
  13 + documentation is in the same place, but the files for the
  14 + previous HTML documentation are no longer there. Instead, there
  15 + are ``html`` and ``singlehtml`` directories, each of which
  16 + contain ``index.html`` and other files and directories. The
  17 + distribution files and ``make install`` target handle this, but
  18 + if you are building your own packages and including
  19 + documentation, please double check to make sure that you are
  20 + including the right documentation files.
  21 +
  22 + - The documentation sources have been switched from docbook to
  23 + reStructuredText processed with `Sphinx
  24 + <https://sphinx-doc.org>`__. This will break previous
  25 + documentation links. A redirect is in place on the main website.
  26 + A top-to-bottom review of the documentation is planned for an
  27 + upcoming release.
  28 +
10 - Library Enhancements 29 - Library Enhancements
11 30
12 - Since qpdf version 8, using object accessor methods on an 31 - Since qpdf version 8, using object accessor methods on an
@@ -58,16 +77,6 @@ For a detailed list of changes, please see the file @@ -58,16 +77,6 @@ For a detailed list of changes, please see the file
58 77
59 - Add ``qpdf_oh_get_type_code`` and ``qpdf_oh_get_type_name``. 78 - Add ``qpdf_oh_get_type_code`` and ``qpdf_oh_get_type_name``.
60 79
61 - - Documentation change  
62 -  
63 - - The documentation sources have been switched from docbook to  
64 - reStructuredText processed with `Sphinx  
65 - <https://sphinx-doc.org>`__. This is mostly transparent (other  
66 - than format change) with the exception that all section links  
67 - have changed. What used to be `#ref.something` is now  
68 - `#something`. A top-to-bottom review of the documentation is  
69 - planned for an upcoming release.  
70 -  
71 10.4.0: November 16, 2021 80 10.4.0: November 16, 2021
72 - Handling of Weak Cryptography Algorithms 81 - Handling of Weak Cryptography Algorithms
73 82
manual/zlib-flate.1.in
@@ -21,6 +21,6 @@ This program should not be used as a general purpose compression @@ -21,6 +21,6 @@ This program should not be used as a general purpose compression
21 tool. Use something like gzip(1) instead. 21 tool. Use something like gzip(1) instead.
22 .PP 22 .PP
23 For details about qpdf, please see the qpdf manual, which can be found 23 For details about qpdf, please see the qpdf manual, which can be found
24 -in @docdir@/qpdf-manual.html or @docdir@/qpdf-manual.pdf. 24 +in @docdir@/html/index.html or @docdir@/qpdf-manual.pdf.
25 .SH "SEE ALSO" 25 .SH "SEE ALSO"
26 qpdf(1), gzip(1) 26 qpdf(1), gzip(1)