Add liblvm, a userspace library for application interface to LVM. Fedora project page is here. This will be implemented as sub packages (lvm2-devel and lvm2-libs) of lvm2 base package.
- Name: Dave Wysochanski (Email: email@example.com, IRC: deepthot)
- Targeted release: Fedora 12
- Last updated: 2009-07-27
- Percentage of completion: 90%
- 2009/07/27: bulk of liblvm APIs integrated and working; unit tests passing; header file preliminary review
- 2009/07/16: lvmerrno patches integrated; device filtering, pv and lv patches in progress
- 2009/07/14: liblvm VG APIs to create/remove/extend a VG upstream; significant refactoring completed, including vg_read() patches
- 2009/05/08: initial skeleton liblvm build complete; patches outstanding for object attributes and vg_read (pvs / vgs / lvs functionality)
LVM is currently being used by other software projects. These projects interface with LVM by calling the LVM commandline either by invoking a shell or calling the string-based liblvmcmd. liblvm proposes to create a real API for use by application programs. libLVM features will be driven by the needs of the known primary consumers of the API which are anaconda, system-config-storage, libvirt, and others. One of the main drivers of libLVM is the anaconda storage rewrite, and specifically, system-config-storage. Much of the contents of the initial release of libLVM centers around supporting this effort.
Benefit to Fedora
Applications currently calling the LVM commandline to interface with LVM can be updated to use the new liblvm API providing for more flexibility, better error handling, etc.
Requires rebasing LVM RPM from upstream, pulling in the latest liblvm code.
- liblvm will be used by existing lvm tools, which are covered by nightly tests.
- liblvm will also be unit tested by developers as APIs are developed
- liblvm will be tested by anaconda team as they do the anaconda rewrite
- Users of the lvm tools should experience no regressions.
- Users of applications that utilize liblvm should experience no regressions in the applications, and the applications capabilities should be enhanced by liblvm.
- device-mapper (upstream version in sync with upstream LVM)
- lvm2 (base package)
- Existing applications calling LVM can still call the lvm commandline and/or use the liblvmcmd, commandline string based library.
Users and applications desiring to use liblvm should use the liblvm header file and link to the liblvm library.