Installing Cone

First, make sure that all the necessary requirements (README) are satisfied. See additional notes below for upgrade instructions.

RPM and DEB packages

These are not the same packages as the ones from various distributions' repositories. These packages carry a higher internal revision level in order to prevent them from getting upgraded by the distribution packaging. This packaging exists in order to have a convenient way of updating after a release without waiting for the distribution's package to get built.

Note

If a distribution package is already installed it should be removed completely before switching to the upstream version (dnf remove or apt purge). Preserve any existing configuration files, beforehand, in order to restore it after switching packages. This applies to all Courier packages. A switch to this cone package requires switching the courier-unicode and too.

If a distribution package is already installed it should be removed completely before switching to the upstream version (dnf remove or apt purge). Preserve any existing configuration files, beforehand, in order to reconfigure the package.

Note

These packages use their own, generic, installation layout that may deviate slightly from the package installation conventions that's preferred by the distributions.

RPM builds

It is not necessary to unpack this tarball in order to build this tarball.

Run dnf install rpm-build if it's not installed already, then:

$ rpmbuild -ta cone-VERSION.tar.bz2

If this fails due to any missing dependencies, install them.

DEB builds

Run apt install devscripts debhelper, if they're not installed already. Create an empty directory and copy/move the tarball into it:

$ mkdir tmp
$ mv cone-VERSION.tar.bz2 tmp
$ cd tmp

Unpack the tarball and cd into the unpacked subdirectory:

$ tar xvf cone-VERSION.tar.bz2
$ cd cone-VERSION

Run the courier-debuild script, which is a wrapper for debuild, and forwards its parameters to it:

$ ./courier-debuild -us -uc

Note

The above steps must be followed strictly. The courier-debuild script expects the distributed tarball in its parent directory.

The eventually produces a deb subdirectory with .deb packages that can be installed with dpkg -i:

  • cone-VERSION.deb is the main package.

  • libmail-cone-dev-VERSION.deb is a standalone package containing Cone's mail library and header files. It is not needed to run Cone itself.

Note

All Courier packages should be built with the same version of gcc, which is selected by the DEBGCC environment variable before running courier-debuild. See courier-unicode's INSTALL for more information.

Building Cone manually

  • Cone requires several common libraries, like libxml and the libidn2 library is also required.

  • Download the Courier Socks 5 proxy client library from https://www.courier-mta.org/download.php#sox and follow its installation instructions.

    This step can be omitted if Socks 5 support is not required. Cone will compile without the Socks 5 proxy toolkit.

  • Download and install the Courier-Unicode library from https://www.courier-mta.org/download.html#unicode and install it.

  • Download the source code tarball from https://www.courier-mta.org/download.php#cone and unpack it.

  • Set the appropriate environment variables if the compiler or linker needs any custom command line flags. Run ./configure --help to list the available environment variables that specify additional arbitrary parameters for the C/C++ compiler.

  • Run ./configure [options]. See below for a list of available options.

  • Run make.

    Note

    The GNU version of the command is required. On BSD systems it's the gmake. Use gmake in this, and the following steps.

  • Run make check.

  • Run make install.

  • Run make install-configure.

Note

Do not forget make install-configure. It is required.

Unless other options are used, Cone installs in /usr/local:

/usr/local/etc

The configuration file.

/usr/local/bin

The shell script that runs Cone.

/usr/local/libexec

The Cone program itself.

/usr/local/share

Documentation, online help, other files.

/usr/local/lib and /usr/local/include

The development libraries and include files (only if --with-devel was specified to the configure script).

These installation directories, and other options, may be controlled by additional options to the configure script:

--prefix, --bindir, and others...

./configure --help lists about a dozen parameters to the ./configure that specify the directories where various files should be installed.

--with-certdb=pathname

Sets a non-default location for the systemwide trusted SSL certificate authorities. If not specified, a default list of directories and files is searched for:

  • /etc/ssl/certs
  • /etc/ssl/cert.pem
  • /etc/pki/tls/cert.pem
  • /etc/ssl/certs/ca-certificates.crt
--with-gnutls

Select the GnuTLS library even if the OpenSSL library is also installed. The configure script automatically selects whichever one is available. The OpenSSL library is selected if both are present. Use this option to override and select GnuTLS instead.

--with-devel

Install LibMAIL , the mail library used by Cone to access and handle E-mail messages.

--with-spellcheck=pspell, --with-spellcheck=aspell

Cone can use hunspell, aspell or pspell for spell checking. This parameter specifies which package gets used if more than one is installed, if different from the default one.

Upgrading from an earlier version of Cone

Upgrading Cone consists simply of building the new version, and installing it. The new version will overwrite the previous version. Special upgrade instructions are given below.

Upgrading from version 0.96 and earlier

Cone 0.97 is a coordinated update with other Courier packages that introduces support for Unicode-based E-mail protocols. As part of this update, maildir folder names are also changed to use Unicode instead of custom IMAP naming scheme.

Manual conversion steps are needed for local maildir (and mbox) folders. No action is needed if Cone is used exclusively with IMAP and POP3 accounts.

Refer to https://www.courier-mta.org/maildirmake.html for additional information; specifically the Converting pre-Unicode maildirs section. When updating Cone together with Courier, Courier-IMAP, or SqWebMail, use the same conversion steps for any maildirs that do not get converted as part of updating Courier, Courier-IMAP, or SqWebMail. When updating Cone only by itself, the maildirmake does not get installed together with Cone but it gets built in the libs/maildir source subdirectory.

Any mbox folders also need to be renamed, but there are no automated tools for that. They'll need to be renamed manually, (or in Cone itself).

Upgrading from version 0.59 and earlier

The address book format has changed in version 0.60. The old address book format will be automatically converted to the new format, when necessary, so no manual intervention is necessary. If Cone is later downgraded to an earlier version, addresses in an address book that contain non-English characters will not be shown correctly.

Git repository

It is also possible to check out the source from git, however additional requirements apply. Besides the usual prerequisites for building Cone, additional development software must be installed. See the Source code repository instructions at https://www.courier-mta.org/status.html.