Panu Matilainen cbac7f
# rawhide doesn't have new enough lzma yet
Panu Matilainen cbac7f
%bcond_with lzma
Panu Matilainen cbac7f
# sqlite backend is broken atm, disabled for now
Panu Matilainen cbac7f
%bcond_with sqlite
Panu Matilainen cbac7f
# just for giggles, option to build with internal Berkeley DB
Panu Matilainen cbac7f
%bcond_with int_bdb
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
cvsdist 921826
Panu Matilainen f780b8
%define rpmhome /usr/lib/rpm
cvsdist 02edfd
Panu Matilainen cbac7f
%define rpmver 4.5.90
Panu Matilainen cbac7f
%define snapver git8426
Panu Matilainen cbac7f
%define srcver %{rpmver}.%{snapver}
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%define bdbver 4.5.20
Panu Matilainen cbac7f
Paul Nasrat b1ecff
Summary: The RPM package management system
cvsdist 1bdb86
Name: rpm
Panu Matilainen cbac7f
Version: %{rpmver}
Panu Matilainen ac1dca
Release: 0.%{snapver}.6
cvsdist 1bdb86
Group: System Environment/Base
Paul Nasrat b1ecff
Url: http://www.rpm.org/
Panu Matilainen cbac7f
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
Panu Matilainen cbac7f
%if %{with int_bdb}
Panu Matilainen cbac7f
Source1: db-%{bdbver}.tar.gz
Panu Matilainen cbac7f
%endif
Panu Matilainen cbac7f
Panu Matilainen cbac7f
Patch0: rpm-4.5.90-devel-autodep.patch
Panu Matilainen cbac7f
Patch1: rpm-4.5.90-pkgconfig-path.patch
Panu Matilainen cbac7f
# XXX only create provides for pkgconfig and libtool initially
Panu Matilainen cbac7f
Patch100: rpm-4.6.x-no-pkgconfig-reqs.patch
Panu Matilainen cbac7f
Panu Matilainen ac1dca
Patch200: rpm-4.5.90-digestlen.patch
Panu Matilainen ac1dca
Panu Matilainen cbac7f
# Partially GPL/LGPL dual-licensed and some bits with BSD
Panu Matilainen cbac7f
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD 
Panu Matilainen 412a63
License: GPLv2+
Panu Matilainen 412a63
Panu Matilainen 2c9332
Requires(post): coreutils
Panu Matilainen e91007
Requires: popt >= 1.10.2.1
Paul Nasrat c4acc0
Requires: crontabs
Panu Matilainen 1c9fae
Requires: logrotate
Panu Matilainen cbac7f
Requires: curl
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%if %{without int_bdb}
Panu Matilainen cbac7f
# XXX using BDB 4.5.20 from compat-db for now to provide a safe downgrade
Panu Matilainen cbac7f
# route to older rpm. Only compat-db >= 4.6.21 has the necessary symlinks
Panu Matilainen cbac7f
# for building however.
Panu Matilainen cbac7f
BuildRequires: compat-db >= 4.6.21-2.fc10
Panu Matilainen cbac7f
%endif
cvsdist 9eb5b2
Panu Matilainen f780b8
# XXX generally assumed to be installed but make it explicit as rpm
Panu Matilainen f780b8
# is a bit special...
Panu Matilainen f780b8
BuildRequires: redhat-rpm-config
Panu Matilainen 223b2f
BuildRequires: gawk
Paul Nasrat a5c9d4
BuildRequires: elfutils-devel >= 0.112
Panu Matilainen cbac7f
BuildRequires: elfutils-libelf-devel
Paul Nasrat b1ecff
BuildRequires: readline-devel zlib-devel
Panu Matilainen 34fad6
BuildRequires: nss-devel
Panu Matilainen cbac7f
# The popt version here just documents an older known-good version
Panu Matilainen cbac7f
BuildRequires: popt-devel >= 1.10.2
Panu Matilainen cbac7f
BuildRequires: file-devel
Paul Nasrat 5d7ac9
BuildRequires: gettext-devel
Paul Nasrat 1d8748
BuildRequires: libselinux-devel
Paul Nasrat 534eb1
BuildRequires: ncurses-devel
jbj abbbab
BuildRequires: bzip2-devel >= 0.9.0c-2
Panu Matilainen cbac7f
BuildRequires: python-devel >= 2.2
Panu Matilainen cbac7f
BuildRequires: lua-devel >= 5.1
Panu Matilainen cbac7f
%if %{with lzma}
Panu Matilainen cbac7f
BuildRequires: lzma-devel >= 4.42
Panu Matilainen cbac7f
%endif
Panu Matilainen cbac7f
%if %{with sqlite}
Panu Matilainen cbac7f
BuildRequires: sqlite-devel
Panu Matilainen cbac7f
%endif
Panu Matilainen 412a63
Panu Matilainen 2c9332
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
cvsdist 1bdb86
cvsdist 1bdb86
%description
cvsdist 73bf5c
The RPM Package Manager (RPM) is a powerful command line driven
cvsdist 1bdb86
package management system capable of installing, uninstalling,
cvsdist b1db19
verifying, querying, and updating software packages. Each software
cvsdist 1bdb86
package consists of an archive of files along with information about
cvsdist 1bdb86
the package like its version, a description, etc.
cvsdist 1bdb86
cvsdist 98655b
%package libs
Paul Nasrat b1ecff
Summary:  Libraries for manipulating RPM packages
cvsdist 98655b
Group: Development/Libraries
Panu Matilainen 412a63
License: GPLv2+ and LGPLv2+ with exceptions
Panu Matilainen c0e815
Requires: rpm = %{version}-%{release}
cvsdist 98655b
cvsdist 98655b
%description libs
cvsdist 98655b
This package contains the RPM shared libraries.
cvsdist 98655b
cvsdist 1bdb86
%package devel
Paul Nasrat b1ecff
Summary:  Development files for manipulating RPM packages
cvsdist 1bdb86
Group: Development/Libraries
Panu Matilainen 412a63
License: GPLv2+ and LGPLv2+ with exceptions
Panu Matilainen c0e815
Requires: rpm = %{version}-%{release}
Panu Matilainen cbac7f
Requires: pkgconfig
Panu Matilainen 34fad6
Requires: nss-devel 
Paul Nasrat 6a92fd
Requires: libselinux-devel
Paul Nasrat b691d6
Requires: elfutils-libelf-devel
Panu Matilainen e3543e
Requires: popt-devel
Panu Matilainen cbac7f
%if %{with lzma}
Panu Matilainen cbac7f
Requires: lzma-devel >= 4.42
Panu Matilainen cbac7f
%endif
Panu Matilainen cbac7f
%if %{with sqlite}
Panu Matilainen cbac7f
Requires: sqlite-devel
Panu Matilainen cbac7f
%endif
cvsdist 1bdb86
cvsdist 1bdb86
%description devel
cvsdist b1db19
This package contains the RPM C library and header files. These
cvsdist b1db19
development files will simplify the process of writing programs that
cvsdist 1bdb86
manipulate RPM packages and databases. These files are intended to
cvsdist 1bdb86
simplify the process of creating graphical package managers or any
cvsdist 1bdb86
other tools that need an intimate knowledge of RPM packages in order
cvsdist 1bdb86
to function.
cvsdist 1bdb86
cvsdist 1bdb86
This package should be installed if you want to develop programs that
cvsdist 1bdb86
will manipulate RPM packages and databases.
cvsdist 1bdb86
cvsdist 1bdb86
%package build
Paul Nasrat b1ecff
Summary: Scripts and executable programs used to build packages
cvsdist 1bdb86
Group: Development/Tools
Panu Matilainen 61cb76
Requires: rpm = %{version}-%{release}
Panu Matilainen 61cb76
Requires: elfutils >= 0.128 binutils
Panu Matilainen 44830a
Requires: findutils sed grep gawk diffutils file patch >= 2.5
Panu Matilainen cbac7f
Requires: unzip gzip bzip2 cpio lzma
cvsdist 1bdb86
cvsdist 1bdb86
%description build
cvsdist b1db19
The rpm-build package contains the scripts and executable programs
cvsdist b1db19
that are used to build packages using the RPM Package Manager.
cvsdist 1bdb86
cvsdist a37c64
%package python
Paul Nasrat b1ecff
Summary: Python bindings for apps which will manipulate RPM packages
cvsdist a37c64
Group: Development/Libraries
Panu Matilainen c0e815
Requires: rpm = %{version}-%{release}
cvsdist a37c64
cvsdist a37c64
%description python
cvsdist b1db19
The rpm-python package contains a module that permits applications
cvsdist a37c64
written in the Python programming language to use the interface
cvsdist 02edfd
supplied by RPM Package Manager libraries.
cvsdist a37c64
cvsdist a37c64
This package should be installed if you want to develop Python
cvsdist a37c64
programs that will manipulate RPM packages and databases.
cvsdist b60fd6
Panu Matilainen f780b8
%package apidocs
Panu Matilainen f780b8
Summary: API documentation for RPM libraries
Panu Matilainen f780b8
Group: Documentation
Panu Matilainen f780b8
Panu Matilainen f780b8
%description apidocs
Panu Matilainen f780b8
This package contains API documentation for developing applications
Panu Matilainen f780b8
that will manipulate RPM packages and databases.
Panu Matilainen f780b8
cvsdist 1bdb86
%prep
Panu Matilainen cbac7f
%setup -q -n %{name}-%{srcver} %{?with_int_bdb:-a 1}
Panu Matilainen cbac7f
%patch0 -p1 -b .devel-autodep
Panu Matilainen cbac7f
%patch1 -p1 -b .pkgconfig-path
Panu Matilainen cbac7f
%patch100 -p1 -b .pkgconfig-deps
Panu Matilainen ac1dca
%patch200 -p1 -b .diglen
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%if %{with int_bdb}
Panu Matilainen cbac7f
ln -s db-%{bdbver} db
Panu Matilainen cbac7f
%endif
Panu Matilainen 6d40e7
Panu Matilainen f780b8
%build
Panu Matilainen cbac7f
%if %{without int_bdb}
Panu Matilainen cbac7f
export CPPFLAGS=-I%{_includedir}/db%{bdbver} 
Panu Matilainen cbac7f
export LDFLAGS=-L%{_libdir}/db%{bdbver}
Panu Matilainen cbac7f
%endif
cvsdist 1bdb86
Panu Matilainen cbac7f
%configure \
Panu Matilainen cbac7f
    %{!?with_int_bdb: --with-external-db} \
Panu Matilainen cbac7f
    %{?with_sqlite: --enable-sqlite3} \
Panu Matilainen cbac7f
    --with-lua \
Panu Matilainen cbac7f
    --with-selinux \
Panu Matilainen cbac7f
    --enable-python
cvsdist 87eb98
jbj 80c00d
make %{?_smp_mflags}
cvsdist 1bdb86
cvsdist 1bdb86
%install
cvsdist 1bdb86
rm -rf $RPM_BUILD_ROOT
cvsdist 1bdb86
cvsdist 65b2a0
make DESTDIR="$RPM_BUILD_ROOT" install
cvsdist 9eb5b2
cvsdist 4370f6
# Save list of packages through cron
Panu Matilainen f780b8
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily
Panu Matilainen f780b8
install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.daily/rpm
cvsdist 4370f6
Panu Matilainen f780b8
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
Panu Matilainen f780b8
install -m 644 scripts/rpm.log ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/rpm
cvsdist 4370f6
Panu Matilainen f780b8
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
cvsdist 1bdb86
cvsdist 4370f6
mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
cvsdist 4370f6
for dbi in \
Panu Matilainen cbac7f
    Basenames Conflictname Dirnames Group Installtid Name Packages \
Panu Matilainen cbac7f
    Providename Provideversion Requirename Requireversion Triggername \
Panu Matilainen cbac7f
    Filedigests Pubkeys Sha1header Sigmd5 \
Panu Matilainen cbac7f
    __db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
Panu Matilainen cbac7f
    __db.008 __db.009
cvsdist 4370f6
do
cvsdist 4370f6
    touch $RPM_BUILD_ROOT/var/lib/rpm/$dbi
cvsdist 4370f6
done
cvsdist 4370f6
Panu Matilainen 2c9332
%find_lang %{name}
Panu Matilainen 2c9332
Panu Matilainen cbac7f
find $RPM_BUILD_ROOT -name "*.la"|xargs rm -f
Panu Matilainen f780b8
cvsdist 1bdb86
%clean
cvsdist 1bdb86
rm -rf $RPM_BUILD_ROOT
cvsdist 1bdb86
Jeremy Katz b914fc
%post libs -p /sbin/ldconfig
Jeremy Katz b914fc
%postun libs -p /sbin/ldconfig
Jeremy Katz b914fc
Panu Matilainen cbac7f
%posttrans
Panu Matilainen cbac7f
# XXX this is klunky and ugly, rpm itself should handle this
Panu Matilainen cbac7f
%if %{with int_bdb}
Panu Matilainen cbac7f
dbstat=/usr/lib/rpm/rpmdb_stat
Panu Matilainen cbac7f
%else
Panu Matilainen cbac7f
dbstat=%{_bindir}/db45_stat
Panu Matilainen cbac7f
%endif
Panu Matilainen cbac7f
if [ -x "$dbstat" ]; then
Panu Matilainen cbac7f
    if "$dbstat" -e -h /var/lib/rpm 2>&1 | grep -q "Invalid argument"; then
Panu Matilainen cbac7f
        rm -f /var/lib/rpm/__db.* 
Panu Matilainen cbac7f
    fi
Panu Matilainen cbac7f
fi
Panu Matilainen cbac7f
exit 0
cvsdist 4370f6
Panu Matilainen 2c9332
%files -f %{name}.lang
Paul Nasrat b1ecff
%defattr(-,root,root,-)
Panu Matilainen cbac7f
%doc CHANGES GROUPS COPYING CREDITS ChangeLog doc/manual/[a-z]*
Paul Nasrat b1ecff
Panu Matilainen f780b8
%{_sysconfdir}/cron.daily/rpm
Panu Matilainen f780b8
%config(noreplace,missingok)    %{_sysconfdir}/logrotate.d/rpm
Panu Matilainen f780b8
%dir                            %{_sysconfdir}/rpm
Paul Nasrat b1ecff
Panu Matilainen cbac7f
%attr(0755, root, root)   %dir /var/lib/rpm
Panu Matilainen cbac7f
%attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/rpm/*
Panu Matilainen cbac7f
%attr(0755, root, root) %dir %{rpmhome}
Panu Matilainen 3fd553
Panu Matilainen 3fd553
/bin/rpm
Panu Matilainen 3fd553
%{_bindir}/rpm2cpio
Panu Matilainen 3fd553
%{_bindir}/rpmdb
Panu Matilainen 3fd553
%{_bindir}/rpmsign
Panu Matilainen 3fd553
%{_bindir}/rpmquery
Panu Matilainen 3fd553
%{_bindir}/rpmverify
Panu Matilainen 3fd553
Panu Matilainen f780b8
%{_mandir}/man8/rpm.8*
Panu Matilainen f780b8
%{_mandir}/man8/rpm2cpio.8*
Paul Nasrat b1ecff
Panu Matilainen f780b8
# XXX this places translated manuals to wrong package wrt eg rpmbuild
Panu Matilainen cbac7f
%lang(fr) %{_mandir}/fr/man[18]/*.[18]*
Panu Matilainen cbac7f
%lang(ko) %{_mandir}/ko/man[18]/*.[18]*
Panu Matilainen f780b8
%lang(ja) %{_mandir}/ja/man[18]/*.[18]*
Panu Matilainen f780b8
%lang(pl) %{_mandir}/pl/man[18]/*.[18]*
Panu Matilainen f780b8
%lang(ru) %{_mandir}/ru/man[18]/*.[18]*
Panu Matilainen f780b8
%lang(sk) %{_mandir}/sk/man[18]/*.[18]*
cvsdist 1bdb86
Panu Matilainen cbac7f
%{rpmhome}/macros
Panu Matilainen cbac7f
%{rpmhome}/rpmpopt*
Panu Matilainen cbac7f
%{rpmhome}/rpmrc
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%{rpmhome}/rpmdb_*
Panu Matilainen cbac7f
%{rpmhome}/rpm.daily
Panu Matilainen cbac7f
%{rpmhome}/rpm.log
Panu Matilainen cbac7f
%{rpmhome}/rpm.xinetd
Panu Matilainen cbac7f
%{rpmhome}/rpm2cpio.sh
Panu Matilainen cbac7f
%{rpmhome}/tgpg
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%{rpmhome}/platform
Panu Matilainen cbac7f
cvsdist 98655b
%files libs
cvsdist 98655b
%defattr(-,root,root)
Panu Matilainen 68e66c
%{_libdir}/librpm*-*.so
cvsdist 98655b
cvsdist 9eb5b2
%files build
cvsdist 9eb5b2
%defattr(-,root,root)
Panu Matilainen 3fd553
%{_bindir}/rpmbuild
Panu Matilainen cbac7f
%{_bindir}/gendiff
Panu Matilainen cbac7f
Panu Matilainen cbac7f
%{_mandir}/man1/gendiff.1*
Panu Matilainen cbac7f
Panu Matilainen 3fd553
%{rpmhome}/brp-*
Panu Matilainen 3fd553
%{rpmhome}/check-buildroot
Panu Matilainen 3fd553
%{rpmhome}/check-files
Panu Matilainen 3fd553
%{rpmhome}/check-prereqs
Panu Matilainen 3fd553
%{rpmhome}/check-rpaths*
Panu Matilainen 3fd553
%{rpmhome}/debugedit
Panu Matilainen 3fd553
%{rpmhome}/find-debuginfo.sh
Panu Matilainen 3fd553
%{rpmhome}/find-lang.sh
Panu Matilainen 3fd553
%{rpmhome}/find-provides
Panu Matilainen 3fd553
%{rpmhome}/find-requires
Panu Matilainen 3fd553
%{rpmhome}/javadeps
Panu Matilainen 3fd553
%{rpmhome}/mono-find-provides
Panu Matilainen 3fd553
%{rpmhome}/mono-find-requires
Panu Matilainen 3fd553
%{rpmhome}/osgideps.pl
Panu Matilainen 3fd553
%{rpmhome}/perldeps.pl
Panu Matilainen cbac7f
%{rpmhome}/libtooldeps.sh
Panu Matilainen cbac7f
%{rpmhome}/pkgconfigdeps.sh
Panu Matilainen 3fd553
%{rpmhome}/perl.prov
Panu Matilainen 3fd553
%{rpmhome}/perl.req
Panu Matilainen cbac7f
%{rpmhome}/tcl.req
Panu Matilainen 3fd553
%{rpmhome}/pythondeps.sh
Panu Matilainen 3fd553
%{rpmhome}/rpmdeps
Panu Matilainen cbac7f
%{rpmhome}/config.guess
Panu Matilainen cbac7f
%{rpmhome}/config.sub
Panu Matilainen cbac7f
%{rpmhome}/mkinstalldirs
Panu Matilainen cbac7f
%{rpmhome}/rpmdiff*
Panu Matilainen 3fd553
Panu Matilainen cbac7f
%{rpmhome}/macros.perl
Panu Matilainen cbac7f
%{rpmhome}/macros.python
Panu Matilainen cbac7f
%{rpmhome}/macros.php
Panu Matilainen f780b8
Panu Matilainen f780b8
%{_mandir}/man8/rpmbuild.8*
Panu Matilainen f780b8
%{_mandir}/man8/rpmdeps.8*
cvsdist 1bdb86
cvsdist 1bdb86
%files python
cvsdist 1bdb86
%defattr(-,root,root)
Panu Matilainen cbac7f
%{python_sitearch}/rpm
cvsdist b60fd6
cvsdist 1bdb86
%files devel
cvsdist 1bdb86
%defattr(-,root,root)
Panu Matilainen f780b8
%{_includedir}/rpm
Panu Matilainen 68e66c
%{_libdir}/librp*[a-z].so
Panu Matilainen f780b8
%{_mandir}/man8/rpmgraph.8*
Panu Matilainen 3fd553
%{_bindir}/rpmgraph
Panu Matilainen f780b8
Panu Matilainen cbac7f
%{_libdir}/pkgconfig/rpm.pc
Panu Matilainen cbac7f
Panu Matilainen f780b8
%files apidocs
Panu Matilainen f780b8
%defattr(-,root,root)
Panu Matilainen cbac7f
%doc doc/librpm/html/*
cvsdist 1bdb86
cvsdist 1bdb86
%changelog
Panu Matilainen ac1dca
* Sat Jul 12 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen ac1dca
- 4.5.90-0.git8426.6
Panu Matilainen ac1dca
- fix type mismatch causing funky breakage on ppc64
Panu Matilainen ac1dca
Panu Matilainen cbac7f
* Fri Jul 11 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- 4.5.90-0.git8426.5
Panu Matilainen cbac7f
- flip back to external bdb
Panu Matilainen cbac7f
- fix tab vs spaces complaints from rpmlint
Panu Matilainen cbac7f
- add dep for lzma and require unzip instead of zip in build (#310694)
Panu Matilainen cbac7f
- add pkgconfig dependency to rpm-devel
Panu Matilainen cbac7f
- drop ISA-dependencies for initial introduction
Panu Matilainen cbac7f
- new snapshot from upstream for documentation fixes
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Thu Jul 10 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- 4.5.90-0.git8424.4
Panu Matilainen cbac7f
- handle int vs external db in posttrans too
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Wed Jul 08 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- 4.5.90-0.git8424.3
Panu Matilainen cbac7f
- require curl as external url helper
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Wed Jul 08 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- 4.5.90-0.git8424.2
Panu Matilainen cbac7f
- add support for building with or without internal db
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Wed Jul 08 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- rpm 4.5.90-0.git8424.1 (alpha snapshot)
Panu Matilainen cbac7f
- adjust to build against Berkeley DB 4.5.20 from compat-db for now
Panu Matilainen cbac7f
- add posttrans to clean up db environment mismatch after upgrade
Panu Matilainen cbac7f
- forward-port devel autodeps patch
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Tue Jul 08 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- adjust for rpmdb index name change
Panu Matilainen cbac7f
- drop unnecessary vendor-macro patch for real
Panu Matilainen cbac7f
- add ISA-dependencies among rpm subpackages
Panu Matilainen cbac7f
- make lzma and sqlite deps conditional and disabled by default for now
Panu Matilainen cbac7f
Panu Matilainen cbac7f
* Fri Feb 01 2008 Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen cbac7f
- spec largely rewritten, truncating changelog