LSB DB Navigator
Description (Live Demo)
LSB Navigator provides web interface for the LSB Specification Database browsing and administration. Furthermore, it allows to obtain an overview of existing distributions and applications, examining which interfaces are used by applications and which ones are included in various distributions. The key features of the DB Navigator are listed below.
LSB Elements Visualization
LSB Navigator provides visualization of all the LSB Elements:
- Modules, the logical groupings of other LSB Elements (note that these modules are not the LSB Specification modules)
- ABI, Application Binary Interface, the main part of the LSB Specification, which is in turn formed by:
- Libraries, containing different interfaces and classes
- Classes with full information about parent classes and virtual tables
- Interfaces with all parameters and return types, grouped by libraries and by headers
- Headers where interfaces and all necessary types and constants are declared
- Types used in interface synopsis
- Constants that should be defined in headers in order to make interfaces work correctly
- Commands, since some commands are also included in the LSB
- ELF Elements, some aspects relative to Executable and Linking Format defined in the LSB
- RPM Elements, some information about RPM tags defined in the LSB
- Interpreted Languages, information about those interpreted languages aspects that are specified in the LSB
LSB Navigator also provides a simple way to explore different relationships between the LSB Elements, such as list of libraries in a given module, list of interfaces in a given library, etc.
Moreover, since the database now contains version-related information, it is possible to browse data from the specific LSB version point of view (i.e. see elements that were included in the particular LSB version) - there is a special filter on pages from LSB Elements for this purpose.
The LSB Specification is architecture dependent and element properties may vary on different architectures. DB Navigator allows to select specific architecture (by the appropriate filter) in order to observe elements defined for the selected architecture only.
Applications and Distributions Contents
LSB Navigator provides interface for Community Tables, i.e. browsing of the main distributions structure (constituent upstream components, libraries and interfaces provided by them) as well as information about interfaces usage in the key real-world applications. Presence of information about main distributions simplifies the decision making process about interface inclusion in the LSB (at least, one can check if the interface is included in all distributions). Information about applications shows the needs of their developers, and is useful when choosing interfaces that should be included in the Specification first of all.
Home Pages for Interfaces, Libraries, Classes and Commands
For each interface, library, class or command registered in the database DB Navigator provides an individual page with a short summary. For each element, its status in the LSB is shown with the full history, if any - when it was added or when it was withdrawn for each supported architecture. For every element its presence in distribution components is reflected as well as its usage by applications.
On individual pages for classes virtual tables structure is reflected and information about base classes. Individual pages for interfaces display interface synopsis (built on the basis of the database).
For many commands and interfaces on its individual pages one can find direct links to the documentation with a detailed description of a command or interface. This data is also stored in the database.
If you are looking for a specific interface, command, library or class, then Search toolbar in the upper left corner of the Navigator gives you all you need. The search is also available for types, constants, headers and applications. Search results are quite relevant, the exact matches (if any) are always shown at the top. Search results lead to elements individual pages mentioned above.
Workgroup Services section provides some useful information about LSB infrastructure.
- Browser of the test coverage information (mapping between the particular tests and tested interfaces).
- Statistics and analytical status queries (e.g. list all interfaces of particular LSB version, list all excluded from LSB interfaces, etc.).
- Listing of all the related standards that LSB references.
- Tools for analysis of interfaces and libraries used by various Linux applications.
- Information from the LSB Futures Tracker representing possible future directions for the LSB development - in particular, status of process of adding different entities to LSB and possibilities of existing components uplift. There is also 'administration' interface for the Futures Tracker that allows to modify its data; please refer to LSB Futures Tracker Administration page for more information.
LSB Navigator has Administrative interface that allows information in the database to be modified as LSB evolves (data changes are available for 'LSB Elements' section only). This interface also provides some complicated data consistency checks and report generators for decision-making support. For more details about non-trivial tasks that can be perfromed using Navigator, see Administration Mode Howto.
Decision Making Support
Navigator provides information useful when decision is made about elements inclusion to the LSB. Though this information can be found on appropriate elements pages (e.g. for every interface one should take a look at its home page), sometimes it is useful to get statistics on a large set of elements. Navigator's Administration mode provides some report generators that can be used to create such summary reports.
Please refer the Setting Up Navigator page for instructions on how to set up the Navigator.
The list of all LSB Navigator releases with release notes is available here.
LSB Navigator is composed of a set of php scripts stored in 'lsb/devel/dbadmin' module in Bazaar. Two subdirectories, 'dbadmin/browse' and 'dbadmin/admin', contain the scripts for exploring and administration of different LSB elements (one script per element). '*.inc' files in the root of dbadmin provide some common routines for 'browse' and 'admin' modes. 'dbadmin/coverage' subdirectory contains scripts for browsing information about coverage provided by the existing test suites and 'dbadmin/consistency' provides different consistency check queries.