diff options
author | Michel Alexandre Salim <salimma@fedoraproject.org> | 2012-06-03 13:13:34 +0700 |
---|---|---|
committer | Michel Alexandre Salim <salimma@fedoraproject.org> | 2012-06-03 13:13:34 +0700 |
commit | bcff82938a0f80858137aa9f84d1d4d9ac22bf36 (patch) | |
tree | 147a78eafcf0417c20c35aaf37a424720543595b /admin | |
parent | d02269009c5f0402f120e8d42e6d291c1277cc24 (diff) | |
download | specs-bcff82938a0f80858137aa9f84d1d4d9ac22bf36.tar.gz specs-bcff82938a0f80858137aa9f84d1d4d9ac22bf36.tar.xz specs-bcff82938a0f80858137aa9f84d1d4d9ac22bf36.zip |
Spec files for the Obnam backup tool
Diffstat (limited to 'admin')
-rw-r--r-- | admin/cmdtest.spec | 52 | ||||
-rw-r--r-- | admin/genbackupdata.spec | 66 | ||||
-rw-r--r-- | admin/obnam.spec | 95 | ||||
-rw-r--r-- | admin/python-cliapp.spec | 57 | ||||
-rw-r--r-- | admin/python-coverage-test-runner.spec | 49 | ||||
-rw-r--r-- | admin/python-larch.spec | 99 | ||||
-rw-r--r-- | admin/python-tracing.spec | 65 | ||||
-rw-r--r-- | admin/python-ttystatus.spec | 71 |
8 files changed, 554 insertions, 0 deletions
diff --git a/admin/cmdtest.spec b/admin/cmdtest.spec new file mode 100644 index 0000000..85245a6 --- /dev/null +++ b/admin/cmdtest.spec @@ -0,0 +1,52 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +Name: cmdtest +Version: 0.3 +Release: 1%{?dist} +Summary: Black-box testing for Unix command line tools + +# ask upstream to include license text +License: GPLv3+ +URL: http://liw.fi/%{name}/ +Source0: http://code.liw.fi/debian/pool/main/c/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +BuildRequires: python-coverage-test-runner +BuildRequires: python-cliapp +BuildRequires: python-ttystatus +Requires: python-cliapp +Requires: python-ttystatus + +%description +cmdtest black box tests Unix command line tools. Roughly, it is given +a command line and input files, and the expected output, and it +verifies that the command line produces the expected output. If not, +it reports a problem, and shows the differences. + + +%prep +%setup -q + + +%build +%{__python} setup.py build + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%check +%{__python} setup.py check + + +%files +%doc NEWS README +%{_mandir}/man1/cmdtest.1* +%{_bindir}/cmdtest +%{python_sitelib}/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.3-1 +- Initial package diff --git a/admin/genbackupdata.spec b/admin/genbackupdata.spec new file mode 100644 index 0000000..db88f1b --- /dev/null +++ b/admin/genbackupdata.spec @@ -0,0 +1,66 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +Name: genbackupdata +Version: 1.6 +Release: 1%{?dist} +Summary: A program to generate test data for testing backup software + +# ask upstream to include license text +License: GPLv2+ +URL: http://liw.fi/%{name}/ +Source0: http://code.liw.fi/debian/pool/main/g/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +# build-time +BuildRequires: python-coverage-test-runner +# build- and run-time +BuildRequires: python-cliapp +BuildRequires: python-ttystatus +Requires: python-cliapp +Requires: python-ttystatus + +%description +genbackupdata creates or modifies directory trees in ways that +simulate real filesystems sufficiently well for performance testing of +backup software. For example, it can create files that are a mix of +small text files and big binary files, with the binary files +containing random binary junk which compresses badly. This can then be +backed up, and later the directory tree can be changed by creating new +files, modifying files, or deleting or renaming files. The backup can +then be run again. + +The output is deterministic, such that for a given set of parameters +the same output always happens. Thus it is more efficient to +distribute genbackupdata and a set of parameters between people who +wish to benchmark backup software than distributing very large test +sets. + + +%prep +%setup -q -n %{name}_%{version}.orig + + +%build +%{__python} setup.py build +# build manpage +make genbackupdata.1 + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%check +make check + + +%files +%doc NEWS README +%{_mandir}/man1/genbackupdata.1* +%{_bindir}/genbackupdata +%{python_sitelib}/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 1.6-1 +- Initial package diff --git a/admin/obnam.spec b/admin/obnam.spec new file mode 100644 index 0000000..ed71c3a --- /dev/null +++ b/admin/obnam.spec @@ -0,0 +1,95 @@ +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} + +# lock-dependent tests currently fail +%bcond_with locktests + +Name: obnam +Version: 1.0 +Release: 1%{?dist} +Summary: An easy, secure backup program + +License: GPLv3+ +URL: http://liw.fi/obnam/ +Source0: http://code.liw.fi/debian/pool/main/o/obnam/obnam_%{version}.orig.tar.gz + +# build-time +BuildRequires: genbackupdata +BuildRequires: python-devel +BuildRequires: libattr-devel +# build- and run-time dependencies +BuildRequires: python-cliapp +BuildRequires: python-larch +BuildRequires: python-paramiko +BuildRequires: python-tracing +Requires: python-cliapp +Requires: python-larch +Requires: python-paramiko +Requires: python-tracing + +%description +Obnam is an easy, secure backup program. Backups can be stored on +local hard disks, or online via the SSH SFTP protocol. The backup +server, if used, does not require any special software, on top of SSH. + +Some features that may interest you: + + * Snapshot backups. Every generation looks like a complete snapshot, + so you don't need to care about full versus incremental backups, or + rotate real or virtual tapes. + + * Data de-duplication, across files, and backup generations. If the + backup repository already contains a particular chunk of data, it + will be re-used, even if it was in another file in an older backup + generation. This way, you don't need to worry about moving around + large files, or modifying them. + + * Encrypted backups, using GnuPG. + +Obnam can do push or pull backups, depending on what you need. You can +run Obnam on the client, and push backups to the server, or on the +server, and pull from the client over SFTP. However, access to live +data over SFTP is currently somewhat limited and fragile, so it is not +recommended. + + +%prep +%setup -q + + +%build +CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%check +%if ! %{with locktests} +# lock-dependent tests currently fails; need to debug +for t in test-locking crash-test; +do + mv $t{,.off} + %{__ln_s} $(which true) $t +done +%endif + +# check uses the source tree, not the build one +# but exercises the compiled library +# so symlink it to the source tree first +(cd obnamlib && %{__ln_s} ../build/lib.linux-*/obnamlib/_obnam.so .) + +%{__python} setup.py check + + +%files +%doc COPYING NEWS README +%{_mandir}/man1/obnam*.1* +%{_bindir}/obnam* +%{python_sitearch}/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 1.0-1 +- Initial package + diff --git a/admin/python-cliapp.spec b/admin/python-cliapp.spec new file mode 100644 index 0000000..680a9fb --- /dev/null +++ b/admin/python-cliapp.spec @@ -0,0 +1,57 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +%global pkgname cliapp + +Name: python-%{pkgname} +Version: 0.29 +Release: 1%{?dist} +Summary: Python framework for Unix command line programs + +License: GPLv2+ +URL: http://liw.fi/%{pkgname}/ +Source0: http://code.liw.fi/debian/pool/main/p/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +BuildRequires: python-sphinx + +%description +cliapp is a Python framework for Unix-like command line programs. It +contains the typical stuff such programs need to do, such as parsing +the command line for options, and iterating over input files. + + +%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 -C doc html + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%files +%doc COPYING NEWS README +%{_mandir}/man5/cliapp.5* +%{python_sitelib}/* + +%files doc +%doc doc/_build/html/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.29-1 +- Initial package diff --git a/admin/python-coverage-test-runner.spec b/admin/python-coverage-test-runner.spec new file mode 100644 index 0000000..d736ce7 --- /dev/null +++ b/admin/python-coverage-test-runner.spec @@ -0,0 +1,49 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +%global pkgname CoverageTestRunner +%global prjname coverage-test-runner + +Name: python-%{prjname} +Version: 1.0 +Release: 1%{?dist} +Summary: Python module for enforcing code coverage completeness + +License: GPLv3+ +URL: http://liw.fi/%{prjname}/ +Source0: http://code.liw.fi/%{prjname}/%{pkgname}-%{version}.tar.gz + +BuildArch: noarch +Requires: python-coverage + +%description +CoverageTestRunner is a Python module for running unit tests and +failing them if the unit test module does not exercise all statements +in the module it tests. + +For example, unit tests in module foo_tests.py are supposed to test +everything in the foo.py module, and if they don't, it's a bug in the +test coverage. It does not matter if other tests happen to test the +missing parts. The unit tests for the module should test everything in +that module. + + +%prep +%setup -q -n %{pkgname}-%{version} + + +%build +%{__python} setup.py build + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%files +%doc COPYING README +%{python_sitelib}/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 1.0-1 +- Initial package 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 diff --git a/admin/python-tracing.spec b/admin/python-tracing.spec new file mode 100644 index 0000000..e352eec --- /dev/null +++ b/admin/python-tracing.spec @@ -0,0 +1,65 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +%global pkgname tracing + +Name: python-%{pkgname} +Version: 0.6 +Release: 1%{?dist} +Summary: Python debug logging helper + +# ask upstream to include license text +License: GPLv3+ +URL: http://liw.fi/%{pkgname}/ +Source0: http://code.liw.fi/debian/pool/main/p/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +BuildRequires: python-sphinx + +%description +The Python library tracing helps with logging debug messages. It +provides a couple of functions for logging debug messages, and allows +the user to enable or disable logging for particular code modules. + +It is sometimes practical to add a lot of debugging log messages to a +program, but having them enabled all the time results in very large +log files. Also, logging that much takes quite a bit of time. + +This module provides a way to turn such debugging or tracing messages +on and off, based on the filename they occur in. The logging can that +be left in the code, and only enabled when it is needed. + + +%package doc +Summary: Documentation for %{pkgname} +Requires: %{name} = %{version}-%{release} + +%description doc +This package contains the documentation for %{pkgname}, a Python debug +logging helper. + + +%prep +%setup -q -n %{pkgname}-%{version} + + +%build +%{__python} setup.py build +# Build documentation +make -C doc html + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%files +%doc NEWS README +%{python_sitelib}/* + +%files doc +%doc doc/_build/html/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.6-1 +- Initial package diff --git a/admin/python-ttystatus.spec b/admin/python-ttystatus.spec new file mode 100644 index 0000000..93e7d5d --- /dev/null +++ b/admin/python-ttystatus.spec @@ -0,0 +1,71 @@ +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} + +%global pkgname ttystatus + +Name: python-%{pkgname} +Version: 0.18 +Release: 1%{?dist} +Summary: Progress and status updates on terminals for Python + +License: GPLv3+ +URL: http://liw.fi/%{pkgname}/ +Source0: http://code.liw.fi/debian/pool/main/p/%{name}/%{name}_%{version}.orig.tar.gz + +BuildArch: noarch +BuildRequires: python-coverage-test-runner +BuildRequires: python-sphinx + +%description +ttystatus is a Python library for showing progress reporting and +status updates on terminals, for (Unix) command line programs. Output +is automatically adapted to the width of the terminal: truncated if it +does not fit, and re-sized if the terminal size changes. + +Output is provided via widgets. Each widgets formats some data into a +suitable form for output. It gets the data either via its initializer, +or from key/value pairs maintained by the master object. The values +are set by the user. Every time a value is updated, widgets get +updated (although the terminal is only updated every so often to give +user time to actually read the output). + + +%package doc +Summary: Documentation for %{pkgname} +Requires: %{name} = %{version}-%{release} + +%description doc +This package contains the documentation for %{pkgname}, a Python +library providing progress and status updates on terminals. + + +%prep +%setup -q -n %{pkgname}-%{version} + + +%build +%{__python} setup.py build +# Build documentation +make + + +%install +%{__python} setup.py install -O1 --skip-build --root %{buildroot} + + +%check +# note: does not actually fail when code coverage is incomplete, but +# in any case the result should be advisory +make check + + +%files +%doc COPYING NEWS README +%{python_sitelib}/* + +%files doc +%doc doc/_build/html/* + + +%changelog +* Sun Jun 3 2012 Michel Salim <salimma@fedoraproject.org> - 0.18-1 +- Initial package |