calibre/bypy
2022-02-24 13:56:37 +05:30
..
linux Add the Py_SSIZE_T_CLEAN definition needed for python 3.10 2021-12-01 10:47:51 +05:30
macos Fix pyexpat not being linked against bundled libexpat 2022-02-16 15:37:56 +05:30
windows Add the Py_SSIZE_T_CLEAN definition needed for python 3.10 2021-12-01 10:47:51 +05:30
init_env.py Get the linux frozen build working with py3 2020-08-22 18:47:56 +05:30
linux.conf Remove xcb-util headers from build container 2020-11-25 12:20:58 +05:30
macos.conf Use separate vms for python3 builds 2020-08-22 18:48:07 +05:30
README.rst Need the qt5 branch of bypy for calibre 5 2021-12-10 20:21:23 +05:30
rsync.conf Add rsync to vm settings 2019-05-31 08:25:17 +05:30
run-python.h Add the Py_SSIZE_T_CLEAN definition needed for python 3.10 2021-12-01 10:47:51 +05:30
sources.json Bump bundled feedparser 2022-02-24 13:56:37 +05:30
windows.conf Remove embedded bookmarks from swe.epub 2020-08-27 08:50:28 +05:30

Build the calibre installers, including all dependencies from scratch
=======================================================================

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.

Requirements
---------------

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 bypy && git switch qt5 && 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

To make the Windows and macOS builds it uses QEMU VMs. Instructions on
creating the VMs are in the bypy repo under :file:`virtual_machine/README.rst`.
Required software for the VMs are listed in :file:`bypy/windows.conf` and
:file:`bypy/macos.conf`.

Linux
-------

To build the 64bit and 32bit dependencies for calibre, run::

    ./setup.py build_dep linux
    ./setup.py build_dep linux 32

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 :literal:`dist`


macOS
--------------

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 :literal:`dist`


Windows
-------------

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
    ./setup.py build_dep windows 32

The output (after a very long time) will be in :literal:`bypy/b/windows/[32|64]`.
Now you can build the calibre windows installers with::

    ./setup.py win --dont-sign

The output will be in :literal:`dist`