diff --git a/Dockerfile b/Dockerfile index 9c8ef26..61822ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,7 @@ FROM python:3-alpine -RUN apt-get update && \ - mkdir -p /usr/share/man/man1/ && \ - apt-get install --yes wget ca-certificates && \ - pip install pystitcher && \ - apt-get clean +RUN apk add --no-cache wget ca-certificates && \ + pip install pystitcher WORKDIR /security-engineering-ebook diff --git a/README.md b/README.md index e52ad6f..a578775 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# security-engineering-3rd-edition-ebook ![](https://img.shields.io/badge/Status-Unavailable-orange) +# security-engineering-3rd-edition-ebook ![](https://img.shields.io/badge/Status-Working-green) -*Update*: The website currently only has 7 sample chapters since the remaining were removed at the book's publication. The script should automatically start working in May 2024, when these chapters should become available. +*Update*: The website currently only has 7 sample chapters since the remaining were removed at the book's publication, so this downloads the remaining chapters via [The Web Archive](https://web.archive.org/). ![third-edition-security-engineering-book-cover](cover-thumb.jpg) -This is just the script to generate a combined PDF from the currently-online-chapters that were published for review. The script also takes care of putting in the right bookmarks for all the chapters in the generated PDF file. +This is just the script to generate a combined PDF from the draft chapters that were published for review. The script also takes care of putting in the right bookmarks for all the chapters in the generated PDF file using [pystitcher](https://pypi.org/project/pystitcher/). The e-book version is available now for $42 from [Wiley](https://www.wiley.com/en-us/Security+Engineering%3A+A+Guide+to+Building+Dependable+Distributed+Systems%2C+3rd+Edition-p-9781119642817) and for $47 from [Amazon](https://www.amazon.com/Security-Engineering-Building-Dependable-Distributed-ebook/dp/B08P69FT4Q). @@ -14,7 +14,7 @@ See `book.md` for the bookmark titles used by the script. ## How to generate the book? -Run `./generate.sh`. You will need `pystitcher`, and `wget` installed. Alternatively, you can run it using Docker. +Run `./generate.sh`. You will need [`pystitcher`](https://pypi.org/project/pystitcher/), and `wget` installed. Alternatively, you can run it using Docker. ### Docker @@ -36,18 +36,17 @@ Once the script finishes running, check the `security-engineering-3rd-edition.pd ## Support the Authors -Buy the second edition of the book from: +Buy the third edition of the book from: -- [Amazon.com](http://www.amazon.com/exec/obidos/ASIN/0470068523/rossandersshomep) -- [Wiley](http://he-cda.wiley.com/WileyCDA/HigherEdTitle/productCd-0470068523.html) -- [Amazon.co.uk](http://www.amazon.co.uk/exec/obidos/ASIN/0470068523/rossandersshomep) -- [Kindle Version](http://www.amazon.co.uk/gp/product/B004BDOZI0/ref=as_li_tf_tl?ie=UTF8&tag=rossanderssho-21&linkCode=as2&camp=1634&creative=6738&creativeASIN=B004BDOZI0) +### E-book -A combined PDF of the first edition is available directly from the author at . +- [Amazon](https://www.amazon.com/Security-Engineering-Building-Dependable-Distributed-ebook/dp/B08P69FT4Q) +- [Wiley](https://www.wiley.com/en-us/Security+Engineering%3A+A+Guide+to+Building+Dependable+Distributed+Systems%2C+3rd+Edition-p-9781119642817) -## Contributing - -The list of URLs is maintained at `urls.txt` and might need to be updated. File a PR if this breaks? +### Paper +- [Wiley](https://www.wiley.com/en-us/Security+Engineering:+A+Guide+to+Building+Dependable+Distributed+Systems,+3rd+Edition-p-9781119642787) +- [Amazon US](https://www.amazon.com/Security-Engineering-Building-Dependable-Distributed-dp-1119642787/dp/1119642787/rossandersshomep) +- [Amazon UK](https://www.amazon.co.uk/Security-Engineering-Building-Dependable-Distributed-dp-1119642787/dp/1119642787/rossandersshomep) ## Extra diff --git a/book.md b/book.md index e679f30..0c280c7 100644 --- a/book.md +++ b/book.md @@ -1,8 +1,6 @@ title: Security Engineering — Third Edition author: Ross Anderson -# Security Engineering - [Cover](cover.pdf) [Preface](SEv3-pref-May16.pdf) [1. What is Security Engineering?](SEv3-ch1-7sep.pdf) diff --git a/generate.sh b/generate.sh index 4a96ecc..d787146 100755 --- a/generate.sh +++ b/generate.sh @@ -1,4 +1,6 @@ -#!/bin/bash +#!/bin/ash +set -euo pipefail +IFS=$'\n\t' COVER_URL=https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-cover.pdf FINAL_PDF=security-engineering-3rd-edition.pdf diff --git a/urls.txt b/urls.txt index 18df562..0a57cd9 100644 --- a/urls.txt +++ b/urls.txt @@ -1,31 +1,31 @@ https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-pref-May16.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch1-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch1-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch2-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch3-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch4-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch5-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch6-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch7-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch8-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch9-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch10-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch3-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch4-7sep.pdf +https://web.archive.org/web/20201018090028if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch5-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch6-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch7-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch8-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch9-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch10-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch11-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch12-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch13-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch14-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch15-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch16-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch17-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch18-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch12-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch13-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch14-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch15-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch16-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch17-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch18-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch19-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch20-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch21-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch21-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch22-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch23-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch24-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch23-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch24-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch25-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch26-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch27-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch28-7sep.pdf -https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch29-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch27-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch28-7sep.pdf +https://web.archive.org/web/2021if_/https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-ch29-7sep.pdf https://www.cl.cam.ac.uk/~rja14/Papers/SEv3-bib-7sep.pdf