GLEP:54
Title:scm package version suffix
Version:$Revision: 1.5 $
Last-Modified:$Date: 2007/12/17 18:42:33 $
Author:Piotr JaroszyƄski <peper at gentoo.org>
Status:Draft
Type:Standards Track
Content-Type:text/x-rst
Created:09-Dec-2007
Post-History:09-Dec-2007

Contents

Abstract

This GLEP proposes addition of a new special package version suffix - scm - for ebuilds checking out source directly from a source code management system.

Motivation

Currently there is no standard way of marking SCM ebuilds. Using 9999 as the version is pretty common, but it is handled like any other ebuild and hence portage cannot provide any additional features for packages with such a version. Another way is adding separate package with -cvs suffix in its name, but that forces to use || ( cat/pkg cat/pkg-cvs ) dependencies. The closest to what is proposed in this GLEP is the cvs version part, but its implementation is of very limited use. It has strange comparison rules, no documentation, has never been used in the tree and has a misleading name.

The possibility for package managers to recognise SCM ebuilds would allow them to add features dedicated specially to said ebuilds. One such feature could be automatic re-installation of SCM packages once a day or week, but that's beyond this GLEP.

Specification

scm is a special suffix. It can be used on its own, but also in any other valid version spec, just before the place where revision would go. And just like revision it can be used only once in a version spec, e.g.:

These package atoms are sorted in ascending order (see Version Comparison).

Version Comparison

The addition of the scm suffix yields changes in version comparison:

Example parsing:

List of version specs in ascending order:

Backwards Compatibility

Portage versions prior to 2.1.2.12 (included in 2007.0) don't handle arbitrary version suffixes and die during various tasks making portage hard or impossible to use. Later versions just ignore them displaying warnings. Hence use of scm suffixes in gentoo-x86 tree will probably have to wait till 2008.0 release or later.

Copyright

This document has been placed in the public domain.