mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
corrected docker image creation and added additional build documentation
This commit is contained in:
parent
2faa2c022a
commit
f3e7e60ed2
@ -17,6 +17,8 @@ to use these scripts to build `pdf2htmlEX`.
|
|||||||
- [TL;DR ...](#tldr-)
|
- [TL;DR ...](#tldr-)
|
||||||
- [Downloading precompiled versions](#downloading-precompiled-versions-downloads)
|
- [Downloading precompiled versions](#downloading-precompiled-versions-downloads)
|
||||||
- [Building yourself](#building-yourself)
|
- [Building yourself](#building-yourself)
|
||||||
|
- [The problem](#the-problem)
|
||||||
|
- [Our solution](#our-solution)
|
||||||
- [The gory details ...](#the-gory-details-)
|
- [The gory details ...](#the-gory-details-)
|
||||||
- [Top-level scripts](#top-level-scripts)
|
- [Top-level scripts](#top-level-scripts)
|
||||||
- [Individual steps](#individual-steps)
|
- [Individual steps](#individual-steps)
|
||||||
@ -50,8 +52,8 @@ For most users, you probably really want to simply download one of the
|
|||||||
This will work on any [Debian](https://www.debian.org/) based and most
|
This will work on any [Debian](https://www.debian.org/) based and most
|
||||||
recent Windows 10 machines.
|
recent Windows 10 machines.
|
||||||
|
|
||||||
Experienced users of Linux, may be able to repackage this `*.deb` for
|
Experienced users of Linux, may be able to repackage the `*.deb` we
|
||||||
use with their favourite package management tool.
|
provide for use with their favourite package management tool.
|
||||||
|
|
||||||
### Building yourself
|
### Building yourself
|
||||||
|
|
||||||
@ -73,6 +75,45 @@ installing `pdf2htmlEX` into /usr/local/bin.
|
|||||||
[Debian](https://www.debian.org/) based distribution. such as
|
[Debian](https://www.debian.org/) based distribution. such as
|
||||||
[Ubuntu](https://ubuntu.com/), [Linux Mint](https://linuxmint.com/), etc.
|
[Ubuntu](https://ubuntu.com/), [Linux Mint](https://linuxmint.com/), etc.
|
||||||
|
|
||||||
|
## The problem
|
||||||
|
|
||||||
|
To provide its full functionality, the `pdf2htmlEX` sources make direct
|
||||||
|
use of source code and unexposed methods from both the Poppler and
|
||||||
|
FontForge projects. Unfortunately the source code in the Poppler and
|
||||||
|
FontForge projects that the `pdf2htmlEX` uses changes regularly.
|
||||||
|
|
||||||
|
This means that the `pdf2htmlEX` souce code *must* be updated regularly to
|
||||||
|
match *specific releases* of both Poppler and FontForge.
|
||||||
|
|
||||||
|
Unfortunately, the installed versions of both Poppler and FontForge in
|
||||||
|
most Linux distributions, lag the official releases of both of these
|
||||||
|
projects. Even worse few distributions install the same versions.
|
||||||
|
|
||||||
|
This means that it is nearly impossible for the `pdf2htmlEX` 'predict'
|
||||||
|
which version of Poppler or FontForge will be installed on a given user's
|
||||||
|
machine.
|
||||||
|
|
||||||
|
## Our solution
|
||||||
|
|
||||||
|
While we *could* keep multiple versions of the `pdf2htmlEX` source code,
|
||||||
|
each version matched to a particular distribution's installed versions of
|
||||||
|
Poppler and FontForge, this would be a logistic and testing 'nightmare'.
|
||||||
|
|
||||||
|
Instead, when building `pdf2htmlEX`, we download specific versions of both
|
||||||
|
the Poppler and FontForge sources (usually the most recent), and then
|
||||||
|
compile *static* versions of the Poppler and FontForge libraries which are
|
||||||
|
then *statically* linked into the `pdf2htmlEX` binary.
|
||||||
|
|
||||||
|
This means that the `pdf2htmlEX` binary is completely independent of any
|
||||||
|
locally installed versions of either Poppler or FontForge.
|
||||||
|
|
||||||
|
However, to get the matched versions of Poppler and FontForge and then
|
||||||
|
compile them statically, *our* build process becomes much more complex
|
||||||
|
than a "simple", `configure, make, make install` cycle.
|
||||||
|
|
||||||
|
Hence this directory has a large number of bash scripts each of which
|
||||||
|
automate one simple step in the overall our build process.
|
||||||
|
|
||||||
## The gory details ...
|
## The gory details ...
|
||||||
|
|
||||||
The bash scripts in this directory automate the download, build, install,
|
The bash scripts in this directory automate the download, build, install,
|
||||||
|
@ -61,9 +61,9 @@ if [ -x "$(which docker)" ]; then
|
|||||||
|
|
||||||
export DOCKER_NAME="$DOCKER_USERNAME/pdf2htmlex:$PDF2HTMLEX_BRANCH-$BUILD_TIME"
|
export DOCKER_NAME="$DOCKER_USERNAME/pdf2htmlex:$PDF2HTMLEX_BRANCH-$BUILD_TIME"
|
||||||
|
|
||||||
echo "export DOCKER_FROM=\"$DOCKER_FROM\"" >> buildScripts/reSourceVersionEnvs
|
echo "export DOCKER_FROM=\"$DOCKER_FROM\"" >> ../../buildScripts/reSourceVersionEnvs
|
||||||
echo "export DOCKER_USERNAME=\"$DOCKER_USERNAME\"" >> buildScripts/reSourceVersionEnvs
|
echo "export DOCKER_USERNAME=\"$DOCKER_USERNAME\"" >> ../../buildScripts/reSourceVersionEnvs
|
||||||
echo "export DOCKER_NAME=\"$DOCKER_NAME\"" >> buildScripts/reSourceVersionEnvs
|
echo "export DOCKER_NAME=\"$DOCKER_NAME\"" >> ../../buildScripts/reSourceVersionEnvs
|
||||||
|
|
||||||
delete_blacklisted
|
delete_blacklisted
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user