Kovid Goyal 92fc9eb5c8
Add dark mode icons to calibre.icns
Doesn't actually work. The good lord only knows why not. I have wasted
enough of my life on Apple's idiocies.
2026-04-17 13:25:21 +05:30
..
2026-04-17 13:25:21 +05:30
2026-02-19 09:56:27 +05:30
2026-04-17 13:25:21 +05:30
2026-04-14 14:12:35 +05:30
...
2025-12-10 10:24:47 +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 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`.

Linux
-------

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`


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 :file:`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

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`