diff options
Diffstat (limited to 'admin/python-larch.spec')
-rw-r--r-- | admin/python-larch.spec | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/admin/python-larch.spec b/admin/python-larch.spec new file mode 100644 index 0000000..b780c54 --- /dev/null +++ b/admin/python-larch.spec @@ -0,0 +1,99 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +%global pkgname larch + +Name: python-%{pkgname} +Version: 1.20120527 +Release: 1%{?dist} +Summary: Python B-tree library + +License: GPLv3+ +URL: http://liw.fi/%{pkgname}/ +Source0: http://code.liw.fi/debian/pool/main/p/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +# build-time only +BuildRequires: cmdtest +BuildRequires: python-coverage-test-runner +BuildRequires: python-sphinx +# build- and run-time +BuildRequires: python-cliapp +BuildRequires: python-tracing +BuildRequires: python-ttystatus +Requires: python-cliapp +Requires: python-tracing +Requires: python-ttystatus + +%description +This is an implementation of particular kind of B-tree, based on +research by Ohad Rodeh. See "B-trees, Shadowing, and Clones" (copied +here with permission of author) for details on the data +structure. This is the same data structure that btrfs uses. Note that +my implementation is independent from the btrfs one, and might differ +from what the paper describes. + +The distinctive feature of this B-tree is that a node is never +modified (sort-of). Instead, all updates are done by +copy-on-write. Among other things, this makes it easy to clone a tree, +and modify only the clone, while other processes access the original +tree. This is utterly wonderful for my backup application, and that's +the reason I wrote larch in the first place. + +I have tried to keep the implementation generic and flexible, so that +you may use it in a variety of situations. For example, the tree +itself does not decide where its nodes are stored: you provide a class +that does that for it. I have two implementations of the NodeStore +class, one for in-memory and one for on-disk storage. + +The tree attempts to guarantee this: all modifications you make will +be safely stored in the node store when the larch.Forest.commit method +is called. After that, unless you actually modify the committed tree +yourself, it will be safe from further modifications. (You need to +take care to create a new tree for further modifications, though.) + + +%package doc +Summary: Documentation for %{pkgname} +Requires: %{name} = %{version}-%{release} + +%description doc +This package contains the documentation for %{pkgname}, a Python +framework for Unix command line programs. + + +%prep +%setup -q -n %{pkgname}-%{version} + + +%build +%{__python} setup.py build +# Build documentation +make + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} +# manpage not installed automatically yet +mkdir -p %{buildroot}%{_mandir}/man1 +cp -p fsck-larch.1 %{buildroot}%{_mandir}/man1/ + + +%check +# some errors occur though they don't stop the checking process; +# verify later +make check + + +%files +%doc COPYING NEWS README +%{_mandir}/man1/fsck-larch.1* +%{_bindir}/fsck-larch +%{python_sitelib}/* + +%files doc +%doc doc/_build/html/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 1.20120527-1 +- Initial package |