| 1 |
GLEP: 24
|
| 2 |
Title: Consistent Gentoo tool naming scheme
|
| 3 |
Version: $Revision: $
|
| 4 |
Last-Modified: $Date: $
|
| 5 |
Author: Donnie Berkholz <spyderous@gentoo.org>,
|
| 6 |
Status: Draft
|
| 7 |
Type: Standards
|
| 8 |
Content-Type: text/x-rst
|
| 9 |
Created: 16 March 2004
|
| 10 |
Post-History: 17-Mar-2004
|
| 11 |
|
| 12 |
|
| 13 |
Abstract
|
| 14 |
========
|
| 15 |
|
| 16 |
This GLEP proposes to create a more consistent, logical and usable naming
|
| 17 |
scheme for Gentoo-specific configuration and update tools. It proposes
|
| 18 |
changing the scheme to gentoo-config-<toolname> and gentoo-update-<toolname>.
|
| 19 |
|
| 20 |
|
| 21 |
Motivation
|
| 22 |
==========
|
| 23 |
|
| 24 |
A consistent prefix on these tools will allow users to easily find them on the
|
| 25 |
system by merely entering "gentoo-<tab><tab>" for a complete listing or
|
| 26 |
"gentoo-config-<tab><tab>" or "gentoo-update-<tab><tab>" to get a listing of
|
| 27 |
the specific category.
|
| 28 |
|
| 29 |
In the current situation, it is trivial to miss a configuration tool unless one
|
| 30 |
reads a portage log of installed files for a package. Revamping the naming
|
| 31 |
scheme would enable users to find these tools more easily.
|
| 32 |
|
| 33 |
|
| 34 |
Specification
|
| 35 |
=============
|
| 36 |
|
| 37 |
The following packages and tools are affected (gentoo- prefix removed for ease
|
| 38 |
of reading, current name follows suggested name)::
|
| 39 |
|
| 40 |
::
|
| 41 |
|
| 42 |
config-kernel
|
| 43 |
x11-base/opengl-update -> config-opengl (opengl-update)
|
| 44 |
sys-devel/distcc -> config-distcc (distcc-config)
|
| 45 |
app-admin/zope-config -> config-zope (zope-config)
|
| 46 |
app-sci/blas-config -> config-blas (blas-config)
|
| 47 |
dev-java/java-config -> config-java (java-config)
|
| 48 |
dev-ruby/ruby-config -> config-ruby (ruby-config)
|
| 49 |
net-www/webapp-config -> config-webapp (webapp-config)
|
| 50 |
sys-devel/cc-config -> config-cc (cc-config)
|
| 51 |
sys-devel/gcc-config -> config-gcc (gcc-config)
|
| 52 |
dev-lang/python -> update-python (python-updater)
|
| 53 |
sys-apps/baselayout -> update-modules (modules-update)
|
| 54 |
sys-apps/baselayout -> update-env (env-update)
|
| 55 |
sys-apps/baselayout -> update-etc (etc-update)
|
| 56 |
sys-apps/baselayout -> config-rc (rc-update)
|
| 57 |
|
| 58 |
|
| 59 |
Rationale
|
| 60 |
=========
|
| 61 |
|
| 62 |
Three primary options were presented for the naming scheme::
|
| 63 |
|
| 64 |
* The current scheme, *-config and *-update. This scheme makes finding a
|
| 65 |
tool difficult, since there is no consistency in the beginning of the name.
|
| 66 |
However, it may be easier for people who already know such a tool exists and
|
| 67 |
remember that its name correlates with the package to be configured (except
|
| 68 |
in the case of many of the *-update tools).
|
| 69 |
|
| 70 |
* A slightly modified version of the proposed scheme, with an abbreviated
|
| 71 |
prefix, shorter than gentoo-*. For example, the current gcc-config would
|
| 72 |
become gen-config-gcc or g-config-gcc. Although this is shorter to type, the
|
| 73 |
availability of tab completion renders that point largely moot. It may also
|
| 74 |
contribute to confusion through inexact specification of what it is.
|
| 75 |
|
| 76 |
* The proposed scheme, gentoo-{config,update}-*. It provides a streamlined way
|
| 77 |
to discover and use various Gentoo-specific tools, even if one does not
|
| 78 |
remember the exact name. A minor downside is the length of the names, but
|
| 79 |
again this caveat is largely moot because of tab completion.
|
| 80 |
|
| 81 |
In an example of another distribution, Red Hat moved to a redhat-config-*
|
| 82 |
scheme within the past couple of years to provide more consistent and
|
| 83 |
easier-to-find tools.
|
| 84 |
|
| 85 |
After two discussions on gentoo-dev, the majority favored this unified prefix
|
| 86 |
for the tools, with a minority in objection, variously favoring one of the
|
| 87 |
first two schemes above.
|
| 88 |
|
| 89 |
|
| 90 |
Backwards Compatibility
|
| 91 |
=======================
|
| 92 |
|
| 93 |
To ensure a smooth transition, a wrapper script will be provided in the old
|
| 94 |
location. This wrapper will print a warning, sleep 5 seconds, then run the
|
| 95 |
tool from its new location. The wrapper script should be provided for the next
|
| 96 |
two new ebuilds for the package, whether they are revision or version bumps.
|
| 97 |
On the third update, the wrapper script will be removed.
|
| 98 |
|
| 99 |
In addition, einfo warnings will be added in the ebuilds for the first three
|
| 100 |
new ebuilds. They will run in one more ebuild beyond removal of the wrapper
|
| 101 |
script.
|
| 102 |
|
| 103 |
|
| 104 |
Reference Implementation
|
| 105 |
========================
|
| 106 |
|
| 107 |
not yet ..
|
| 108 |
|
| 109 |
|
| 110 |
Copyright
|
| 111 |
=========
|
| 112 |
|
| 113 |
This document has been placed in the public domain.
|