Gentoo Logo

Gentoo's eselect modular framework for configuration and administration utilities

Content:

1.  Project Description

This page contains information about eselect, Gentoo's modular administration and configuration framework.

2.  Developers

Developer Nickname Role
Donnie Berkholz dberkholz Member ( modules )
Shyam Mani fox2mike Member ( documentation )
Piotr Jaroszyński peper Member ( * )

All developers can be reached by e-mail using nickname@gentoo.org.

3.  Introduction

eselect provides a modular configuration framework for Gentoo systems, aiming to centralise and consolidate existing tools. It has a command line interface, but is nonetheless quite friendly.

eselect is written completely in bash, including the modules. This language has proved ideal for this task, as eselect modules are easy to write, simple to maintain, and do not require specific knowledge of a particular language like C, Python or Ruby. eselect modules have a similar structure to Ebuilds.

eselect contains modules for altering the /usr/src/linux symlink, changing the Portage profile, a somewhat experimental but useable interactive module for updating CONFIG_PROTECTed files, a module for handling runlevels andthe init system, and many others.

eselect aims for ease of use and consistency between configuration and adminisation modules used within a Gentoo installation.

4.  Documentation

You can find the official eselect documentation here.

5.  NEWS

Code Listing 5.1: News for eselect

1.0.11:
    Bug fixes:
    - Allow resetting to the current implementation, so changes to the symlink
      map can propagate (bug #189942).

    New features:
    - Add stuff to be used by new package manager independent eselect-news.

1.0.10:
    Bug fixes:
    - Fix load_config to ignore influence of environment variables.

    New features:
    - Add noldconfig option.

1.0.9:
    Bug fixes:
    - Really make the makefiles parallel-safe.
    - Fixed bug #163915: eselect doesn't fully honour DESTDIR
    - Fix parsing of *_SEPERATED in env.eselect

1.0.8:
    Bug fixes:
    - Fixed bug #162008: make install isn't parallel-safe.

1.0.7:
    Bug fixes:
    - Fixed bug in modules/opengl.eselect: Fix when ROOT != /.
    - Fixed bug #151701: Generate {SPACE,COLON}_SEPERATED vars in update.
    - Fixed bug #152318: Fix env.eselect for envvar values containing '='.
    - Fixed bug #152662: Fixed new die() function on *BSD.
    - Updated developer documentation.

    Removed modules:
    - java.eselect is now superseded by java-{vm,nsplugin}.eselect.

1.0.6:
    Bug fixes:
    - Fixed bug #144152: Added reload action to rc module.
    - Fixed bug #140633: Fixed quoting in libs/output.bash.in
    - Fixed bug #144882: Corrected copy'n'paste errors
    - Fixed bug #147930: Die on un-sourceable files when handling config files.
    - Fixed bug #148534: inherit package-manager in profiles module.
    - Fixed bug #149627: Die on stray binutils targets.
    - Fixed bug #147857: Don't install vi module as part of eselect.

    New Features:
    - Enhance die function to work in deep subshells.

1.0.5:
    Bug fixes:
    - Fixed bug in libs/skel.bash.in regarding set action with numerical parameters.
    - Fixed bug #141106.

1.0.4:
    Bug fixes:
    - Fixed list bug in libs/skel.bash.in.

    New Features:
    - eselect is now independent of the used package-manager.

1.0.3:
    Bug fixes:
    - Fix env.eselect by white-listing allowed mime-types for files in
    /etc/env.d/.
    - Fix env.eselect to create proper /etc/profile.csh.

    New features:
    - blas.eselect and lapack.eselect have been rewritten, cblas.eselect has
    been split out of blas.eselect. All three modules now use skel.bash
    library.
    - rc.eselect now supports a non-default service directory.
    - Add oodict.eselect as a separately-shipped module.
    - kernel.eselect now understands target $(uname -r).

1.0.2:
    Bug fixes:
    - Fix env.eselect to not bail on missing /etc/profile.env.

    New features:
    - kernel.eselect now understands 'set $(uname -r)'.

1.0.1:
    Bug fixes:
    - Fix creation of /etc/profile.env in env.eselect.
    - Fix portability problems on *BSD in env.eselect.
    - Synchronized man pages with modules.

    New features:
    - binutils.eselect now features a show action.
    - Added arch-independent function to canonicalise paths.
    - eselect now supports *BSD.

1.0:
    Bug fixes:
    - Make no-color behave.
    - Fixed die filename reporting.
    - Restrict load_config to textfiles with proper contents.
    - Scan ld.so.conf rather than hardcoding libdirs.
    - Fix blas, lapack to work even if scan hasn't been called.

1.0_rc2:
    Bug fixes:
    - Fixed location of config files for blas.eselect and lapack.eselect.
    - Fixed behaviour of append_config to not add duplicate items.

    New features:
    - blas.eselect and lapack.eselect now fully support MKL72 (yet to be committed
    to portage tree).

1.0_rc1:
    Bug fixes:
    - Added missing description of --global flag in the bashcomp module's
      manual page (bug #101898).
    - kernel module's 'list' action now only lists kernels and not everything
      in /usr/src (bug #104354).
    - Fixed unexpected EOF error when calling the rc module's 'restart'
      action (bug #106540).
    - Fixed a 'file not found' bug in the rc module when encountering bogus
      baselayouts (thanks to Mike Doty <kingtaco@gentoo.org>).
    - Fixed bug in usage of has() library function in main eselect script
      (thanks to Sven Wegener <swegener@gentoo.org>).
    - Fixed unportable uses of absolute paths to binaries.
    - Exit with an error if the user doesn't provide parameters to the various
      rc module actions (start, stop, restart, etc).
    - Our autogen script now works on non-linux boxes.
    - Added symlinks for the manual pages of the modules we already provide
      symlinks for.
    - Added missing manual page for kernel module.

    New features:
     - inherit() support that allows dynamic and individual sourcing of
       libraries for each module.
     - Added support for modules to be able to describe the options/parameters
       they accept via describe_ACTION_options() and
       describe_ACTION_parameters().  These descriptions now show up in the
       help/usage output for the respective module.
     - profile module's 'set' action now accepts a --force flag for forcing the
       setting of a profile.
     - smart line wrapping for lines longer than the current terminal width.

0.9.6:
    Bug Fixes:
    - Fixed crippled output of items that contain spaces in write_list
    functions.
    - Fixed store_config() to also store empty values.

    New Features:
    - Moved both binutils and env module out of dodgy-scripts.
    - Added env module to replace env-update.
    - Added dirname()/basename() function in pure bash to reduce number of
      calls to external binaries.

0.9.5:
    Bug Fixes:
    - Fixed nocolour handling that caused literal interpretation of '*' thus
      causing the contents of ${PWD} to be displayed instead.
    - Now recognizes the us'ian --no-color in addition to --no-colour.
    - Reverted the colours implementation to the previously used one as all
      the 'colours' calls in a sub-shell made displaying things quite slow.
    - Removed hardcoded paths to binaries that were present in certain modules.
    - Added GNU sed checks so we use the proper path thus allowing it to work
      on systems whose GNU sed is 'gsed'.
    - bashcomp module now properly supports using corresponding numbers
      (from list action) when running enable/disable action.
    - eselect bash-completion now recognizes (and completes on) global options.

0.9.4:
    Bug Fixes:
    - fixed call to lapack config file in blas module.

    New Features:
    - added a testing version of binutils.eselect.
    - added (start|stop|restart) subactions to rc module.
    - implemented global options handling generally and a --no-colour
    option specifically.
    - all modules mark currently active options with a * in list subaction.

0.9.3:
    Bug Fixes:
    - mailer and kernel modules: handle no targets better, show current
    selection when doing a list.
    - usage message should now always be correct.
    - support for many more symlink prefixes and suffixes.

    New Features:
    - more documentation.
    - rc module as a replacement for rc-config and rc-status.

0.9.2:
    Bug Fixes:
    - blas/lapack modules now use 'scan' subcommand over 'update'.
    - profile module now works with current profiles.desc format.
    - mailer module now works (previously broken due to typo and
      missing test in find_targets glob loop).
    - bashcomp module's show sub-command no longer returns 1.


Print

Updated May 3, 2007

Summary: This page contains information about eselect, Gentoo's modular administration and configuration framework.

Danny van Dyk
Author

Tom Martin
Contributor

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.