From cc70746e8efa6cadb23cbfcb11ddb51574c512a9 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 5 Oct 2018 21:40:13 -0700 Subject: doc: Use RELEASE_DATE to set PDF timestamps using faketime This ensures that the generated PDF files do not depend on the time of the build and only on the date of the release. Signed-off-by: Keith Packard --- doc/Makefile.am | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 doc/Makefile.am (limited to 'doc/Makefile.am') diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 00000000..0139d313 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,317 @@ +# +# http://docbook.sourceforge.net/release/xsl/current/README +# + +FAKETIME=$(RELEASE_DATE) 00:00:00 + +RELNOTES_INC=\ + release-notes-1.8.7.inc \ + release-notes-1.8.6.inc \ + release-notes-1.8.5.inc \ + release-notes-1.8.4.inc \ + release-notes-1.8.3.inc \ + release-notes-1.8.2.inc \ + release-notes-1.8.1.inc \ + release-notes-1.8.inc \ + release-notes-1.7.inc \ + release-notes-1.6.8.inc \ + release-notes-1.6.5.inc \ + release-notes-1.6.4.inc \ + release-notes-1.6.3.inc \ + release-notes-1.6.2.inc \ + release-notes-1.6.1.inc \ + release-notes-1.6.inc \ + release-notes-1.5.inc \ + release-notes-1.4.2.inc \ + release-notes-1.4.1.inc \ + release-notes-1.4.inc \ + release-notes-1.3.2.inc \ + release-notes-1.3.1.inc \ + release-notes-1.3.inc \ + release-notes-1.2.1.inc \ + release-notes-1.2.inc \ + release-notes-1.1.1.inc \ + release-notes-1.1.inc \ + release-notes-1.0.1.inc \ + release-notes-0.9.2.inc \ + release-notes-0.9.inc \ + release-notes-0.8.inc \ + release-notes-0.7.1.inc + +IMAGES=\ + altosui.png \ + ascent.png \ + configure-altimeter.png \ + configure-altosui.png \ + configure-groundstation.png \ + configure-pyro.png \ + descent.png \ + device-selection.png \ + easymega.svg \ + easymega-v1.0-bottom.jpg \ + easymega-v1.0-top.jpg \ + easymini.svg \ + easymini-top.jpg \ + fire-igniter.png \ + graph-configure.png \ + graph-map.png \ + graph.png \ + graph-stats.png \ + ignitor.png \ + landed.png \ + launch-pad.png \ + load-maps.png \ + micropeak-app.png \ + micropeak-back.jpg \ + micropeak-device-dialog.png \ + micropeak-dime.jpg \ + micropeak-download.png \ + micropeak-graph-configure.png \ + micropeak-graph.png \ + micropeak-nofont.svg \ + micropeak-preferences.png \ + micropeak-raw-data.png \ + micropeak-save-dialog.png \ + micropeak-statistics.png \ + MicroPeakUSB-2.0-inuse.jpg \ + MicroPeakUSB-2.0.jpg \ + monitor-idle.png \ + scan-channels.png \ + site-map.png \ + table.png \ + telegps-configure.png \ + telegps-graph-configure.png \ + telegps-graph-graph.png \ + telegps-graph-map.png \ + telegps-graph-stats.png \ + telegps-info.png \ + telegps-location.png \ + telegps-map.png \ + telegps-preferences.png \ + telegps-scan.png \ + telegps-status.png \ + telegps-table.png \ + telegps-v1.0-top.jpg \ + telemega.svg \ + telemega-v1.0-top.jpg \ + telemetrum.svg \ + telemetrum-v1.1-thside.jpg \ + telemetrum-v2.0-th.jpg \ + telemini-v1.svg \ + telemini-v1-top.jpg \ + telemini-v3.svg \ + telemini-v3.0-top.jpg \ + telemini-v3.0-bottom.jpg \ + altusmetrum-oneline.svg \ + telegps-oneline.svg \ + micropeak-oneline.svg + +TXT_FILES=altusmetrum.txt + +COMMON_INC_FILES=\ + config-device.inc \ + config-ui.inc \ + load-maps.inc \ + aprs-operation.inc \ + handling.inc + +INC_FILES=\ + dedication.inc \ + intro.inc \ + getting-started.inc \ + usage.inc \ + telemetrum.inc \ + telemini.inc \ + easymini-device.inc \ + telemega.inc \ + easymega.inc \ + installation.inc \ + using-am-products.inc \ + updating-firmware.inc \ + altosui.inc \ + altosdroid.inc \ + system-operation.inc \ + pyro-channels.inc \ + flight-data-recording.inc \ + specs.inc \ + $(COMMON_INC_FILES) \ + release-notes.inc \ + $(RELNOTES_INC) + +RAW_FILES=$(TXT_FILES:.txt=.raw) $(INC_FILES:.inc=.raw) + +TELEGPS_INC_FILES=\ + telegps-dedication.inc \ + telegps-quick-start.inc \ + telegps-using.inc \ + telegps-system-operation.inc \ + telegps-application.inc \ + telegps-specs.inc \ + telegps-updating-firmware.inc \ + telegps-release-notes.inc \ + $(COMMON_INC_FILES) + +TELEGPS_TXT_FILES=\ + telegps.txt + +TELEGPS_RAW_FILES=$(TELEGPS_TXT_FILES:.txt=.raw) $(TELEGPS_INC_FILES:.inc=.raw) + +MICROPEAK_TXT_FILES=\ + micropeak.txt + +MICROPEAK_INC_FILES= + +MICROPEAK_RAW_FILES=$(MICROPEAK_TXT_FILES:.txt=.raw) $(MICROPEAK_INC_FILES:.inc=.raw) + +EASYMINI_TXT_FILES=\ + easymini.txt + +EASYMINI_INC_FILES=$(INC_FILES) easymini-release-notes.inc + + +EASYMINI_RAW_FILES=$(EASYMINI_TXT_FILES:.txt=.raw) $(EASYMINI_INC_FILES:.inc=.raw) + +OUTLINE_TXT_FILES=\ + easymega-outline.txt \ + easymini-outline.txt \ + telemega-outline.txt \ + telemetrum-outline.txt \ + telemini-v1-outline.txt \ + telemini-v3-outline.txt \ + telegps-outline.txt + +OUTLINE_RAW_FILES=$(OUTLINE_TXT_FILES:.txt=.raw) + +OUTLINE_PDF_FILES=$(OUTLINE_TXT_FILES:.txt=.pdf) + +SVG=\ + easymini.svg \ + telemega.svg \ + telemetrum.svg \ + telemini-v1.svg \ + telemini-v3.svg \ + easymega.svg + +RELNOTES_HTML=$(RELNOTES_INC:.inc=.html) + +ONEFILE_TXT_FILES=\ + altos.txt \ + companion.txt \ + telemetry.txt + +ONEFILE_RAW_FILES=$(ONEFILE_TXT_FILES:.txt=.raw) +ONEFILE_PDF_FILES=$(ONEFILE_TXT_FILES:.txt=.pdf) +ONEFILE_HTML_FILES=$(ONEFILE_TXT_FILES:.txt=.html) + +AM_HTML=am.html + +PUBLISH_HTML=altusmetrum.html micropeak.html telegps.html easymini.html $(ONEFILE_HTML_FILES) + +HTML=$(PUBLISH_HTML) $(RELNOTES_HTML) + +HTML_REVHISTORY=\ + altusmetrum-revhistory.html \ + micropeak-revhistory.html \ + telegps-revhistory.html \ + easymini-revhistory.html + +PDF=altusmetrum.pdf micropeak.pdf telegps.pdf easymini.pdf $(ONEFILE_PDF_FILES) \ + $(OUTLINE_PDF_FILES) + +FOP_STYLE=am-fo.xsl +HTML_STYLE=am-html.xsl +COMMON_STYLE=common.xsl +FOP_XCONF=fop.xconf +STYLESHEET=am.css + +FONTS=\ + fonts/DejaVuSansMono-BoldOblique.ttf \ + fonts/DejaVuSansMono-Bold.ttf \ + fonts/DejaVuSansMono-Oblique.ttf \ + fonts/DejaVuSansMono.ttf \ + fonts/OpenSans-Light.ttf \ + fonts/OpenSans-LightItalic.ttf \ + fonts/OpenSans-Regular.ttf \ + fonts/OpenSans-Italic.ttf \ + fonts/OpenSans-Semibold.ttf \ + fonts/OpenSans-SemiboldItalic.ttf + +TEMPLATES_TMPL=titlepage.templates.tmpl + +TEMPLATES_XSL=$(TEMPLATES_TMPL:.tmpl=.xsl) + +PDF_CONFIG_FILES=$(FOP_STYLE) $(COMMON_STYLE) $(FOP_XCONF) $(TEMPLATES_XSL) +HTML_CONFIG_FILES=$(HTML_STYLE) $(COMMON_STYLE) $(TEMPLATES_XSL) + +PUBLISH_DOC=$(PUBLISH_HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET) + +DOC=$(HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET) + +SUFFIXES = .tmpl .xsl .inc .txt .raw .pdf .html + +.txt.raw: + sed -e 's/^[ ]*//' -e 's/^\\//' $*.txt > $@ + +.inc.raw: + sed -e 's/^[ ]*//' -e 's/^\\//' $*.inc > $@ + +.raw.html: + a2x -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(HTML_STYLE) --stylesheet=$(STYLESHEET) $*.raw + case $* in release-notes*) ./fix-html $*.html ;; esac + +.html.pdf: + TZ=UTC faketime -f '$(FAKETIME) i0' a2x -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(FOP_STYLE) --fop --fop-opts="-c $(FOP_XCONF)" $*.raw + +.tmpl.xsl: + xsltproc --output $@ /usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl $*.tmpl + +all: $(HTML) $(PDF) + +altusmetrum-revhistory.html: altusmetrum.html + +micropeak-revhistory.html: micropeak.html + +telegps-revhistory.html: telegps.html + +altusmetrum.pdf altusmetrum.html: altusmetrum-docinfo.xml $(RAW_FILES) $(IMAGES) + +telegps.html telegps.pdf: telegps-docinfo.xml $(TELEGPS_RAW_FILES) $(IMAGES) + +micropeak.pdf micropeak.html: micropeak-docinfo.xml $(MICROPEAK_RAW_FILES) $(IMAGES) + +easymini.pdf easymini.html: easymini-docinfo.xml $(EASYMINI_RAW_FILES) $(IMAGES) + +telemini-v1-outline.pdf: telemini-v1-outline.txt telemini-v1.svg + +telemini-v3-outline.pdf: telemini-v3-outline.txt telemini-v3.svg + +install: all + +WEB_ROOT=/home/bdale/web/ + +publish: $(PUBLISH_DOC) $(FONTS) + cp $(PUBLISH_DOC) $(WEB_ROOT)/altusmetrum/AltOS/doc/ + mkdir -p $(WEB_ROOT)/altusmetrum/AltOS/doc/fonts/ + cp $(FONTS) $(WEB_ROOT)/altusmetrum/AltOS/doc/fonts/ + (cd $(WEB_ROOT)/altusmetrum ; \ + git add $(WEB_ROOT)/altusmetrum/AltOS/doc/* ; \ + git add $(WEB_ROOT)/altusmetrum/AltOS/doc/fonts/* ; \ + echo "update docs" | \ + git commit -F - $(WEB_ROOT)/altusmetrum/AltOS/doc/* $(WEB_ROOT)/altusmetrum/AltOS/doc/fonts/* ; \ + git push) + +publish-keithp: am.html $(PUBLISH_DOC) $(FONTS) + scp -p am.html $(PUBLISH_DOC) keithp.com:~keithp/public_html/altos + scp -p $(FONTS) keithp.com:~keithp/public_html/altos/fonts + +clean: + rm -f am.html $(HTML) $(HTML_REVHISTORY) $(PDF) $(TEMPLATES_XSL) $(RAW_FILES) $(TELEGPS_RAW_FILES) $(MICROPEAK_RAW_FILES) + +distclean: clean + rm -f $(HTML) $(PDF) + +$(PDF): $(PDF_CONFIG_FILES) +$(HTML): $(HTML_CONFIG_FILES) + +am.html: Makefile make-am-html $(HTML) + sh ./make-am-html $(HTML) > $@ -- cgit v1.2.3 From 5a95ed9c9419c15352b8dc1d895c9adce30f99f5 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 6 Oct 2018 12:00:45 -0700 Subject: Add map-loading documentation Signed-off-by: Keith Packard --- doc/.gitignore | 1 + doc/Makefile.am | 12 ++- doc/map-loading.dot | 35 +++++++++ doc/map-loading.txt | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 267 insertions(+), 2 deletions(-) create mode 100644 doc/map-loading.dot create mode 100644 doc/map-loading.txt (limited to 'doc/Makefile.am') diff --git a/doc/.gitignore b/doc/.gitignore index 786123a3..06ad43eb 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -4,3 +4,4 @@ *.raw titlepage.templates.xsl fop-cfg.xml +map-loading.svg diff --git a/doc/Makefile.am b/doc/Makefile.am index 0139d313..5f2ab026 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -197,7 +197,8 @@ RELNOTES_HTML=$(RELNOTES_INC:.inc=.html) ONEFILE_TXT_FILES=\ altos.txt \ companion.txt \ - telemetry.txt + telemetry.txt \ + map-loading.txt ONEFILE_RAW_FILES=$(ONEFILE_TXT_FILES:.txt=.raw) ONEFILE_PDF_FILES=$(ONEFILE_TXT_FILES:.txt=.pdf) @@ -218,6 +219,8 @@ HTML_REVHISTORY=\ PDF=altusmetrum.pdf micropeak.pdf telegps.pdf easymini.pdf $(ONEFILE_PDF_FILES) \ $(OUTLINE_PDF_FILES) +MAP_DOT_FILES=map-loading.dot +MAP_SVG_FILES=$(MAP_DOT_FILES:.dot=.svg) FOP_STYLE=am-fo.xsl HTML_STYLE=am-html.xsl COMMON_STYLE=common.xsl @@ -247,7 +250,10 @@ PUBLISH_DOC=$(PUBLISH_HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET) DOC=$(HTML) $(HTML_REVHISTORY) $(PDF) $(IMAGES) $(STYLESHEET) -SUFFIXES = .tmpl .xsl .inc .txt .raw .pdf .html +SUFFIXES = .dot .svg .tmpl .xsl .inc .txt .raw .pdf .html + +.dot.svg: + dot -Tsvg -o$@ $*.dot .txt.raw: sed -e 's/^[ ]*//' -e 's/^\\//' $*.txt > $@ @@ -267,6 +273,8 @@ SUFFIXES = .tmpl .xsl .inc .txt .raw .pdf .html all: $(HTML) $(PDF) +map-loading.raw: $(MAP_SVG_FILES) + altusmetrum-revhistory.html: altusmetrum.html micropeak-revhistory.html: micropeak.html diff --git a/doc/map-loading.dot b/doc/map-loading.dot new file mode 100644 index 00000000..f5be02ef --- /dev/null +++ b/doc/map-loading.dot @@ -0,0 +1,35 @@ +digraph map_loading { + edge [arrowsize=0.5; style="setlinewidth(2)"] + node [style=filled; fontcolor=white; color=invis; shape=box; arrowsize=0.5; fontname="DejaVu Sans,sans-serif"; fontsize=12; height=0.2;]; + edge [decorate=true; fontname="DejaVu Sans,sans-serif"; fontsize=8]; + graph [fontname="DejaVu Sans,sans-serif"; fontsize=15; ] + rankdir="TB"; + ranksep=0.5; + nodesep=0.5; + color=invis; + fillcolor="#c0c0c0"; + fontcolor="white"; + + app -> apache [label="AltOS Map URI"] + apache -> app [label="Google Map tile"] + + apache -> cgi_script [label="AltOS Map URI"] + cgi_script -> cache_manager [label="AltOS Tile Request"] + + cgi_script -> apache [label="Google Map tile"] + + cache_manager -> cgi_script [label="AltOS Tile Reply"] + + cache_manager -> disk_files [label="AltOS tile files" dir="both"] + cache_manager -> google_maps [label="Google Map URI"] + + google_maps -> cache_manager [label="Google Map tile"] + + app [color="#885931" label="Application"] + apache [color="#d12127" label="Apache Web Server"] + cgi_script [color="#551a8b" label="AltOS Map CGI Script"] + cache_manager [color="#c75b1c" label="AltOS Map Cache Manager"] + disk_files [color="#4f81bd" label="File System"] + google_maps [color="#4cbb44" label="Google Maps"] +} + diff --git a/doc/map-loading.txt b/doc/map-loading.txt new file mode 100644 index 00000000..3dffcd04 --- /dev/null +++ b/doc/map-loading.txt @@ -0,0 +1,221 @@ += Loading Map Tiles from Google Maps +:doctype: article + +== The Google Maps Problem + +Until recently, Google Maps could be used without fee to fetch map +tiles. Applications could load map tiles anonymously or using a key; +when used anonymously, the number of tiles that could be loaded per +day and the rate at which tiles could be loaded was throttled to make +the API practical only for development purpose. With an application +key, the number of tiles available per day was much higher, and there +was no rate limiting. This was usually sufficient for Altos Metrum +customer use. + +However, this has changed and now there is no way to load map tiles +anonymously, and any application key must be tied to a credit +card. The tile cap for free usage is now monthly instead of +daily. Because the key is tied to a credit card, we should not ship it +with the application any longer. And because the cap is monthly +instead of daily, we need some way to control usage by our +applications. + +=== The Proposed Solution — An Intermediate Service + +To give us some measure of control over tile loading, we will want to +interpose a server controlled by us between the application and Google +Maps. This will let us store the Google Maps key in a secure location, +and also control tile loading by each user. + +image::map-loading.svg[align="center"] + +== AltOS Map Service + +This service receives a URL request and replies with either a map tile +or an error. It is functionally equivalent to the Google Maps service, +except that it can control use of the Google Maps API. + +=== AltOS Map CGI Script + +The AltOS Map CGI Script is a straightforward script which connects to +the AltOS Map Cache Manager, transmits a URL describing the desired +map tile and receives back a filename (or error), then sends the +contents of that file back through Apache to the requesting +application. The name of the script is 'altos-map'. + +==== Inputs + +The AltOS Map CGI Script will parse the provided AltOS Map URI or +AltOS Version URI. + +==== Outputs + +For AltOS Map URLs, the CGI Script will return either the contents of +the associated Google Map tile or an error indicating what failed: + +_200 OK_: The map tile image data or version information + +_400 Bad Request_: The URL is malformed or not compatible with the +version supported by the service + +_403 Forbidden_: The map tile is outside the areas supported by the +current AltOS Map service area + +_408 Request Timeout_: Attempts to fetch the tile from Google Maps +timed out. + +_503 Service Unavailable_: The service is temporarily refusing to +satisfy this request due to resource limitations. + +=== AltOS Map Cache Manager + +This is a service running on the local machine and available over a +local network socket. It translates an AltOS Map URL into a local +filename containing the contents of the associated Google Maps +tile. The name of the cache manager is 'altos-mapd'. It will listen +for requests on port 16717. + +=== AltOS Map URI + +AltOS uses a limited subset of the Google Maps, and the AltOS Map URIs +only encode those elements which we currently use. This specification +describes AltOS Map URI format version 1.0.0. The application is +required to provide URIs compatible with the format supported by the +server. The elements of the elements are: + + * Latitude of center point + * Longitude of center point + * Zoom level (from bushes to planets) + +Encoding this in a URI is straightforward: + +\ altos-map?center=,&zoom= + +Latitude and longitude are both encoded using decimal degrees with 6 +digits following the decimal point. + +Zoom levels can range from 1 (world) to 20 (buildings). Higher zoom +levels show smaller areas at greater detail. + +The only Google Map type supported by version 1.0.0 of the service is +“hybrid”, which combines road graphics on top of satellite images. + +Version 1.0.0 always returns images which are 512x512 pixels. + +If we need additional elements in the URL, we can add them in the +future and bump the supported version number. + +=== AltOS Version URI + +To allow applications to discover what AltOS Map URI version is supported by the +AltOS Map service, the application may query the version of the API +supported using the Version URI. The application provides the version +that it supports and the AltOS Map service returns a version not +greater than the client version: + +\ altos-map?version=.. +\ → +\ .. + +=== AltOS Tile Request + +The AltOS Map CGI Script parses the Map URI and passes that +information to the AltOS Map Cache Manager using the AltOS Tile +Specifier syntax. This is a JSON representation of the same data +provided by the URI: + +\ { +\ "lat": , +\ "lon": , +\ "zoom": , +\ "remote_addr": "" +\ } + +Latitude and longitude are both encoded using decimal degrees with 6 +digits following the decimal point. + +=== AltOS Tile Reply + +Sent back from the Cache Manager to the CGI Script, this encodes the +status of the request and the filename of any tile data available. It +is encoded in JSON format: + +\ { +\ "status": , +\ "filename": "", +\ "content_type": "" +\ } + +The “filename” and “content-type” elements are only included when +the status is _200 OK_. + +=== AltOS Tile Filename + +While the current AltOS Map URI version only supports a limited subset +of the Google Maps functionality, we'll encode more of that data in +filenames to allow for easy expansion of functionality in the +future. The elements of an AltOS Tile filename consist of : + + * Latitude, with N/S indicator (instead of a sign) + * Longitude, with E/W indicator (instead of a sign) + * Map type. + * Zoom level + * Scale factor. Scale, and the preceding hyphen are omitted for a scale factor of 1. + * Image format suffix. '.jpg' for JPEG files and '.png' for PNG files. + +Latitude and longitude are both encoded using decimal degrees with 6 +digits following the decimal point. + +Map type is one of : + + _hybrid_: Road graphics over satellite images + _roadmap_: Symbolic road map + _satellite_: Un-annotated satellite images + _terrain_: Topographic map + +Here's what map filenames look like: + +\ map-{N,S},{E,W}--[-]. +\ +\ map-N36.508532,W107.823944-hybrid-18.jpg + +To transmit this name from the AltOS Map Cache Manager back to the +Altos Map CGI script, the filename will be wrapped in a JSON string + +== Implementation + +The AltOS Map CGI Script and AltOS Map Cache Manager will both be +implemented in Java as much of the required Google Maps infrastructure +is already available in that language. + +=== Access Control + +No access control to the service is planned at this point. If +necessary, we could implement username/password access control for each +user of the service. + +=== Location Restrictions + +To avoid unbounded usage, and confine the utility of this service to +AltOS users, the service will only offer map tiles whose center +location is within 10 miles of one of the sites registered in +our launch sites database. + +To allow testing of the registered launch site database, a database of +privileged clients will be supported. Privileged clients will have +unlimited access to the service. + +=== Per-Client Restrictions + +We should implement a per-day limit on the number of tiles provided to +a particular requesting client. We can also rate limit clients to a +certain number of tiles per minute to reduce the bandwidth consumed +out of our server. + +=== Cache Lifetime Restrictions. + +The Google Maps API allows for caching of map data for no more than 30 +days. To honor this, the Cache Manager will re-fetch any requested +tiles when the cached version is older than this. If the fetch fails, +the cache manager will continue to serve the data from the cached +version of the file. -- cgit v1.2.3 From 9e29ac8ed9a48fc4ac8e769eeb131dd7c58fedc4 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 6 Oct 2018 17:17:20 -0700 Subject: doc: Make use of 'faketime' configurable with configure.ac. Default to 'no' This ensures that older a2x versions don't simply wedge while building the docs. Signed-off-by: Keith Packard --- configure.ac | 6 ++++++ doc/Makefile.am | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'doc/Makefile.am') diff --git a/configure.ac b/configure.ac index 0a5a76ec..1705745d 100644 --- a/configure.ac +++ b/configure.ac @@ -184,6 +184,12 @@ else HAVE_GOOGLE_KEY="no" fi +AC_ARG_ENABLE(faketime, AS_HELP_STRING([--enable-faketime], + [Use faketime program to ensure pdf files are reproducible (default=no)]), + [FAKETIME=$enableval], [FAKETIME=no]) + +AM_CONDITIONAL(FAKETIME, [test x$FAKETIME = xyes]) + AC_SUBST(GOOGLEKEY) AC_PROG_CC diff --git a/doc/Makefile.am b/doc/Makefile.am index 5f2ab026..450053f1 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -2,7 +2,9 @@ # http://docbook.sourceforge.net/release/xsl/current/README # -FAKETIME=$(RELEASE_DATE) 00:00:00 +if FAKETIME +FAKETIME=TZ=UTC faketime -f '$(RELEASE_DATE) 00:00:00 i0' +endif RELNOTES_INC=\ release-notes-1.8.7.inc \ @@ -264,9 +266,10 @@ SUFFIXES = .dot .svg .tmpl .xsl .inc .txt .raw .pdf .html .raw.html: a2x -a docinfo -f xhtml --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(HTML_STYLE) --stylesheet=$(STYLESHEET) $*.raw case $* in release-notes*) ./fix-html $*.html ;; esac + $(FAKETIME) a2x -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(FOP_STYLE) --fop --fop-opts="-c $(FOP_XCONF)" $*.raw .html.pdf: - TZ=UTC faketime -f '$(FAKETIME) i0' a2x -a docinfo -f pdf --xsltproc-opts "--stringparam toc.section.depth 2" --xsl-file $(FOP_STYLE) --fop --fop-opts="-c $(FOP_XCONF)" $*.raw + echo $@ .tmpl.xsl: xsltproc --output $@ /usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl $*.tmpl -- cgit v1.2.3