Download GNU Emacs Manual

Transcript
Chapter 32: Preparing Lisp code for distribution
684
name is the dependency’s package name, and dep-version is the dependency’s version
(a string).
If the content directory contains a file named ‘README’, this file is used as the long
description.
If the content directory contains a file named ‘dir’, this is assumed to be an Info directory file made with install-info. See Section “Invoking install-info” in Texinfo. The
relevant Info files should also be present in the content directory. In this case, Emacs
will automatically add the content directory to Info-directory-list when the package is
activated.
Do not include any ‘.elc’ files in the package. Those are created when the package is
installed. Note that there is no way to control the order in which files are byte-compiled.
Do not include any file named ‘name-autoloads.el’. This file is reserved for the package’s autoload definitions (see Section 32.1 [Packaging Basics], page 681). It is created
automatically when the package is installed, by searching all the Lisp files in the package
for autoload magic comments.
If the multi-file package contains auxiliary data files (such as images), the package’s Lisp
code can refer to these files via the variable load-file-name (see hundefinedi [Loading],
page hundefinedi). Here is an example:
(defconst superfrobnicator-base (file-name-directory load-file-name))
(defun superfrobnicator-fetch-image (file)
(expand-file-name file superfrobnicator-base))
32.4 Creating and Maintaining Package Archives
Via the Package Menu, users may download packages from package archives. Such archives
are specified by the variable package-archives, whose default value contains a single entry:
the archive hosted by the GNU project at elpa.gnu.org. This section describes how to set
up and maintain a package archive.
[User Option]
The value of this variable is an alist of package archives recognized by the Emacs
package manager.
package-archives
Each alist element corresponds to one archive, and should have the form (id . location ), where id is the name of the archive (a string) and location is its base location
(a string).
If the base location starts with ‘http:’, it is treated as a HTTP URL, and packages
are downloaded from this archive via HTTP (as is the case for the default GNU
archive).
Otherwise, the base location should be a directory name. In this case, Emacs retrieves
packages from this archive via ordinary file access. Such “local” archives are mainly
useful for testing.
A package archive is simply a directory in which the package files, and associated files,
are stored. If you want the archive to be reachable via HTTP, this directory must be
accessible to a web server. How to accomplish this is beyond the scope of this manual.