bypy/README.rst
This folder contains code to automate the process of building calibre, including all its dependencies, from scratch, for all platforms that calibre supports.
In general, builds proceed in two steps: first build all the dependencies, then build the calibre installer itself.
Building must run on a Linux computer.
First create some empty top level directory and run the following commands::
git clone https://github.com/kovidgoyal/bypy.git
git clone https://github.com/kovidgoyal/calibre.git
cd calibre
Now we need to bootstrap calibre, for which all its Linux build dependencies
must have already been installed (see the Dependencies <https://calibre-ebook.com/download_linux>_ section of the Linux installation
page for details). Once the dependencies are installed, run::
./setup.py bootstrap
All building is done inside QEMU VMs. Linux VMs are auto-created as needed,
Windows and macOS VMs must be created manually. Instructions on
creating the VMs are in the bypy repo under :file:virtual_machine/README.rst.
Required software for the VMs is listed in :file:bypy/windows.conf and
:file:bypy/macos.conf.
To build the Intel and ARM dependencies for calibre, run::
./setup.py build_dep linux
./setup.py build_dep linux-arm64
The output (after a very long time) will be in :literal:bypy/b/linux/[32|64]
Now you can build the calibre Linux tarballs with::
./setup.py linux
The output will be in :file:dist
Name the QEMU VM using vm_name from :literal:bypy/macos.conf.
Make sure all software mentioned in :file:bypy/macos.conf is installed.
To build the dependencies for calibre, run::
./setup.py build_dep macos
The output (after a very long time) will be in :literal:bypy/b/macos.
Now you can build the calibre .dmg with::
./setup.py osx --dont-sign --dont-notarize
The output will be in :file:dist
Name the QEMU VM using vm_name from :file:bypy/windows.conf.
Make sure all software mentioned in :file:bypy/windows.conf is installed.
To build the dependencies for calibre, run::
./setup.py build_dep windows
The output (after a very long time) will be in :literal:bypy/b/windows/64.
Now you can build the calibre Windows installers with::
./setup.py win64 --dont-sign
The output will be in :file:dist