GLEP 32: Maildir Location

Author Georgi Georgiev <chutz@gg3.net>
Type Standards Track
Status Deferred
Version 1
Created 2004-11-03
Last modified 2014-01-17
Posting history 2004-11-03
GLEP source glep-0032.rst

Abstract

Ebuilds that install mail delivery agents often need to know the default location of users' mailbox. When the mailbox is of a maildir type, there is no set standard what the name of the directory should be. The most popular extensions are "Maildir", ".Maildir" and Gentoo has adopted its own ".maildir" name.

This GLEP proposes a user-definable maildir location.

Motivation

To provide the means to change the default location of a maildir, that is currently hardcoded in ebuilds.

The ".maildir" name is not adequate for most situations.

  • "Maildir" is the defacto standard name for maildir mailboxes.
  • People transferring e-mail configuration from other systems prefer to keep the original naming conventions.
  • In a virtual hosting environment, having a hidden file in a directory dedicated for e-mail delivery is not a plus.
  • All postfix and qmail related documentation gives "Maildir" as an example name.

Rationale

The following comments were made in a discussion [1] on the Gentoo bugzilla

  • The default location should be specified in rc.conf
  • Preventing users from shooting themselves in the foot is not an issue

Implementation

A maildir.eclass has been submitted to Bug 52076 [1].

Patches that implement features similar to this GLEP have already been submitted to Bug 52076 [1].

MAILDIR variable

The default location for maildir delivery is specified by the $MAILDIR variable. This variable is specified in rc.conf.

maildir.eclass

This eclass exports a $MAILDIR variable to the ebuilds that inherit it. If $MAILDIR has not been specified in rc.conf the eclass exports MAILDIR=.maildir for backwards compatibility reasons.

Patching ebuilds

Since most ebuilds that currently need to know what the maildir delivery location is already take the default .maildir location into account when installing, modifying ebuilds to implement this GLEP is as simple as inheriting the maildir.eclass and substituting .maildir in the ebuild with the $MAILDIR variable. Care should be taken, to also modify any patches or scripts that are used by the ebuild, that already have .maildir hardcoded (vpopmail, exim).

Backwards Compatibility

The default location is ".maildir", unless it is overridden. This way, there would be no backwards compatibility issues.