Skip to content
This repository has been archived by the owner. It is now read-only.
Package system for Emacs
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
package-maint.el Fix archive-contents creation not to nest each package in its own dir. Jan 18, 2010
package.el Update with latest version from Emacs 24 Dec 12, 2010


NOTICE package.el is part of Emacs 24 now; this repository is deprecated. You can get the latest at while the last version that's compatible with Emacs 23 is at

The one, the only, the legendary package.el. The magic behind ELPA.

This repository exists to polish package.el for its submission into Emacs proper.


  • Mechanism for allowing package authors to upload new versions.

  • Allow the user to specify multiple archive sources.

  • Lock the archive while it's being rebuilt to avoid stomping on another process.

  • Allow system-level packages to co-exist with user-level ones. User's packages should override system ones, but users should be able to disable system ones as well.

  • Setting the default Emacs load-path based on package.el. This is tricky because we may want to let the user set package-user-dir. But the user may also want to refer to packages from .emacs. Actually, maybe this isn't even possible and we have to hard-code package-user-dir. Anyway the idea is to let the user upgrade gnus separately, then later upgrade Emacs and have it choose the right one -- whichever is newer. This implies not evalling the autoloads for some packages before the package stuff starts up. Which packages is hard to say but at least anything that might be separately distributed, like gnus.

  • Integrating into the Emacs build system so that the metadata for built-in packages is extracted correctly.

  • Prerelease version numbers.

You can’t perform that action at this time.