]> git.pld-linux.org Git - packages/etckeeper.git/blobdiff - etckeeper.spec
add pld ignores to the list
[packages/etckeeper.git] / etckeeper.spec
index 6e1111819fd8d490c2b2cd8d9c120e9ac3228037..dd78d6f37e3cfe449078ccc4e1c84cec60cd98e9 100644 (file)
@@ -1,30 +1,47 @@
-#TODO:
+# TODO:
 # - Subpackages for yum and apt plugins
 # - Subpackages for yum and apt plugins
-# - Subpackages for backends (git, bzr, etc)
-# - Write PLD %pre and %post macros that trigger pre-install and post-install runs
-# - %{py_sitescriptdir}/bzrlib/plugins also created by qbzr package?
-Summary:       Store /etc in git, mercurial, bzr or darcs
+# - Subpackages for backends (git, etc)
+Summary:       Store /etc in a SCM system (git, mercurial, bzr or darcs)
 Name:          etckeeper
 Name:          etckeeper
-Version:       0.54
-Release:       0.1
-License:       GPL v2
+Version:       1.1
+Release:       0.26
+License:       GPL v2+
 Group:         Applications/System
 Source0:       http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{version}.tar.gz
 Group:         Applications/System
 Source0:       http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{version}.tar.gz
-# Source0-md5: 24b6f924deaa59b2fa4f789bcf2e5dc7
+# Source0-md5: 280f75205940f99f8f0295bb8ec3598f
+Source1:       poldek.sh
+Patch0:                type-mksh.patch
+Patch1:                use-libdir.patch
+Patch2:                update-ignore.patch
 URL:           http://kitenet.net/~joey/code/etckeeper/
 BuildRequires: bzr
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.219
 BuildRequires: sed >= 4.0
 URL:           http://kitenet.net/~joey/code/etckeeper/
 BuildRequires: bzr
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.219
 BuildRequires: sed >= 4.0
-Requires:      git-core >= 1.6.1-1
-Requires:      python-modules
-Obsoletes:     etckeeper = snapshot
+Requires:      findutils
+Requires:      mktemp
+Requires:      perl-base
+Requires:      sed >= 4.0
+%if "%{pld_release}" != "ac"
+Requires:      poldek >= 0.30.0-1.rc7.4
+%endif
+Suggests:      %{name}-bash-completions
+Suggests:      %{name}-bzr
+Suggests:      git-core >= 1.6.1-1
 Obsoletes:     yum-etckeeper
 Obsoletes:     yum-etckeeper
+%if "%{pld_release}" != "ac"
 BuildArch:     noarch
 BuildArch:     noarch
+%endif
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%if "%{pld_release}" != "ac"
+%define                _poldeklibdir   %{_prefix}/lib/poldek
+%else
+%define                _poldeklibdir   %{_libdir}/poldek
+%endif
+
 %description
 %description
-The %{name} program is a tool to let /etc be stored in a git,
+The etckeeper program is a tool to let /etc be stored in a git,
 mercurial, bzr or darcs repository. It hooks into APT to automatically
 commit changes made to /etc during package upgrades. It tracks file
 metadata that version control systems do not normally support, but
 mercurial, bzr or darcs repository. It hooks into APT to automatically
 commit changes made to /etc during package upgrades. It tracks file
 metadata that version control systems do not normally support, but
@@ -32,24 +49,66 @@ that is important for /etc, such as the permissions of /etc/shadow.
 It's quite modular and configurable, while also being simple to use if
 you understand the basics of working with version control.
 
 It's quite modular and configurable, while also being simple to use if
 you understand the basics of working with version control.
 
-%prep
-%setup -q -n %{name}
+The default backend is git, if want to use a another backend please
+install the appropriate tool (mercurial, darcs or bzr). To use bzr as
+backend, please also install the %{name}-bzr package.
+
+To start using the package please read
+%{_docdir}/%{name}-%{version}/README
+
+%package bzr
+Summary:       Support for bzr with etckeeper
+Group:         Applications/System
+Requires:      %{name} = %{version}-%{release}
+Requires:      bzr
+
+%description bzr
+This package provides a bzr backend for etckeeper, if you want to use
+etckeeper with bzr backend, install this package.
+
+%package -n bash-completion-%{name}
+Summary:       Bash completion routines for %{name}
+Group:         Applications/Shells
+Requires:      %{name} = %{version}-%{release}
+Requires:      bash-completion
+Obsoletes:     etckeeper-bash-completions
 
 
+%description -n bash-completion-%{name}
+Bash completion routines for etckeeper.
+
+%prep
+%setup -qc
+mv %{name} .tmp
+mv .tmp/* .
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
 %{__sed} -i -e '
        s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
        s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
 ' %{name}.conf
 
 %{__sed} -i -e '
        s|HIGHLEVEL_PACKAGE_MANAGER=apt|HIGHLEVEL_PACKAGE_MANAGER=poldek|;
        s|LOWLEVEL_PACKAGE_MANAGER=dpkg|LOWLEVEL_PACKAGE_MANAGER=rpm|;
 ' %{name}.conf
 
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
 %build
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 %build
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/cron.daily
+install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name},%{_poldeklibdir}}
 %{__make} install \
 %{__make} install \
+       etcdir=/lib \
+       LOWLEVEL_PACKAGE_MANAGER=rpm \
+       HIGHLEVEL_PACKAGE_MANAGER=poldek \
+       INSTALL="install -p" \
        DESTDIR=$RPM_BUILD_ROOT
 
        DESTDIR=$RPM_BUILD_ROOT
 
+mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf
+mv $RPM_BUILD_ROOT{/lib/bash_completion.d,/etc}
+
 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
 install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
+install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldeklibdir}/%{name}.sh
 
 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
 
 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
@@ -58,22 +117,48 @@ install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name}
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+if [ $1 -gt 1 ]; then
+       %{_bindir}/%{name} update-ignore
+fi
+
+%triggerin -- poldek
+# add our hook as "pm command"
+if [ -f /etc/poldek/poldek.conf ] && ! grep -q '^pm command = %{_poldeklibdir}/%{name}.sh' /etc/poldek/poldek.conf; then
+       %{__sed} -i -re 's,#?(pm command =).*,\1 %{_poldeklibdir}/%{name}.sh,' /etc/poldek/poldek.conf
+fi
+
+%triggerun -- poldek
+# remove our hook as "pm command"
+if [ "$1" -eq 0 ] && [ -f /etc/poldek/poldek.conf ]; then
+       %{__sed} -i -re 's,^pm command = %{_poldeklibdir}/%{name}.sh,#&,' /etc/poldek/poldek.conf
+fi
+
 %files
 %defattr(644,root,root,755)
 %files
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/%{name}
-
+%doc INSTALL TODO README
 %dir %{_sysconfdir}/%{name}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
 %dir %{_sysconfdir}/%{name}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
-%dir %{_sysconfdir}/%{name}/*.d
-%{_sysconfdir}/%{name}/*.d/*
-%{_sysconfdir}/bash_completion.d/%{name}
-
+%dir /lib/%{name}
+%dir /lib/%{name}/*.d
+%attr(755,root,root) /lib/%{name}/*.d/[0-9]*
+/lib/%{name}/*.d/README
 %attr(755,root,root) /etc/cron.daily/%{name}
 %attr(755,root,root) /etc/cron.daily/%{name}
+%attr(755,root,root) %{_bindir}/%{name}
+%{_mandir}/man8/%{name}.8*
+%attr(755,root,root) %{_poldeklibdir}/%{name}.sh
+%dir %attr(750,root,root) %{_localstatedir}/cache/%{name}
 
 
+%files bzr
+%defattr(644,root,root,755)
 %dir %{py_sitescriptdir}/bzrlib
 %dir %{py_sitescriptdir}/bzrlib/plugins
 %dir %{py_sitescriptdir}/bzrlib/plugins/%{name}
 %dir %{py_sitescriptdir}/bzrlib
 %dir %{py_sitescriptdir}/bzrlib/plugins
 %dir %{py_sitescriptdir}/bzrlib/plugins/%{name}
-%{py_sitescriptdir}/bzrlib/plugins/%{name}/__init__.py[co]
+%{py_sitescriptdir}/bzrlib/plugins/%{name}/*.py[co]
+%if "%{pld_release}" != "ac"
+%{py_sitescriptdir}/bzr_etckeeper-*.egg-info
+%endif
 
 
-%doc INSTALL TODO README
-%{_mandir}/man8/%{name}.8*
+%files -n bash-completion-%{name}
+%defattr(644,root,root,755)
+%{_sysconfdir}/bash_completion.d/%{name}
This page took 0.103269 seconds and 4 git commands to generate.