X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=etckeeper.spec;h=a88de205c31e994c64c753afcdf11a00b6b5cf9b;hb=386fe17c150c346ed2674c0e0ef984c4d082f964;hp=8c885613846f91881c10258d198337ddc5feca37;hpb=26b55a21b8754b11cde1fd4bbe219cff2decf7fc;p=packages%2Fetckeeper.git diff --git a/etckeeper.spec b/etckeeper.spec index 8c88561..a88de20 100644 --- a/etckeeper.spec +++ b/etckeeper.spec @@ -1,31 +1,46 @@ # TODO: # - Subpackages for yum and apt plugins -# - Subpackages for backends (git, etc) -# - Write PLD %pre and %post macros that trigger pre-install and post-install runs -# - %{py_sitescriptdir}/bzrlib/plugins also created by qbzr package? +# - Subpackages for backends (darcs, git, hg) Summary: Store /etc in a SCM system (git, mercurial, bzr or darcs) Name: etckeeper -Version: 1.0 -Release: 0.6 -License: GPL v2 +Version: 1.18.4 +Release: 1 +License: GPL v2+ Group: Applications/System -Source0: http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{version}.tar.gz -# Source0-md5: 1d7e402b41721f2a9ea0b217b969ba89 -Patch0: type-mksh.patch -URL: http://kitenet.net/~joey/code/etckeeper/ +Source0: https://github.com/joeyh/etckeeper/archive/%{version}/%{name}-%{version}.tar.gz +# Source0-md5: 0d9f38775cabb7eae9be9cabbf8e17e1 +Source1: pre-install.sh +Source2: post-install.sh +Patch1: use-libdir.patch +Patch2: update-ignore.patch +URL: http://etckeeper.branchable.com/ BuildRequires: bzr +BuildRequires: python-devel BuildRequires: rpm-pythonprov -BuildRequires: rpmbuild(macros) >= 1.219 +BuildRequires: rpmbuild(macros) >= 1.717 BuildRequires: sed >= 4.0 +Requires: diffutils +Requires: findutils Requires: mktemp Requires: perl-base -Suggests: %{name}-bash-completions +Requires: poldek >= 0.30.1-7.1 +Requires: sed >= 4.0 Suggests: %{name}-bzr +Suggests: bash-completion-%{name} Suggests: git-core >= 1.6.1-1 Obsoletes: yum-etckeeper +%if "%{pld_release}" != "ac" BuildArch: noarch +%endif BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%define _poldekconfdir /etc/poldek +%if "%{pld_release}" != "ac" +%define _poldeklibdir %{_prefix}/lib/poldek +%else +%define _poldeklibdir %{_libdir}/poldek +%endif + %description 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 @@ -63,28 +78,40 @@ Obsoletes: etckeeper-bash-completions Bash completion routines for etckeeper. %prep -%setup -qc -mv %{name} .tmp -mv .tmp/* . -%patch0 -p1 +%setup -q +%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#$(prefix)/lib/systemd#/lib/systemd#' Makefile + +# cleanup backups after patching +find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f + %build %{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_localstatedir}/cache/%{name}} +install -d $RPM_BUILD_ROOT{/etc/cron.daily,%{_sysconfdir}/%{name},%{_localstatedir}/cache/%{name}} \ + $RPM_BUILD_ROOT%{_poldekconfdir}/{pre,post}-install.d + %{__make} install \ + etcdir=/lib \ LOWLEVEL_PACKAGE_MANAGER=rpm \ HIGHLEVEL_PACKAGE_MANAGER=poldek \ + PYTHON_INSTALL_OPTS="%py_install_opts" \ INSTALL="install -p" \ DESTDIR=$RPM_BUILD_ROOT +mv $RPM_BUILD_ROOT{/lib,%{_sysconfdir}}/%{name}/%{name}.conf + install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name} +install -p %{SOURCE1} $RPM_BUILD_ROOT%{_poldekconfdir}/pre-install.d/%{name} +install -p %{SOURCE2} $RPM_BUILD_ROOT%{_poldekconfdir}/post-install.d/%{name} %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir} %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir} @@ -93,36 +120,53 @@ install -p debian/cron.daily $RPM_BUILD_ROOT/etc/cron.daily/%{name} %clean rm -rf $RPM_BUILD_ROOT -%if 0 %post -if [ $1 -gt 1 ] ; then +if [ $1 -gt 1 ]; then %{_bindir}/%{name} update-ignore fi -%endif + +%triggerpostun -- %{name} < 1.18-2 +# don't do anything on --downgrade +[ $1 -le 1 ] && exit 0 +# poldek itself may be removed +test -f /etc/poldek/poldek.conf || exit 0 +# remove our hook as "pm command", poldek supports hooks dir now +# NOTE: poldek own trigger migrating to hooks dir is invoked after this trigger +%{__sed} -i -re 's,^pm command = %{_poldeklibdir}/%{name}.sh,#&,' /etc/poldek/poldek.conf %files %defattr(644,root,root,755) -%doc INSTALL TODO README +%doc doc/README.mdwn doc/install.mdwn %dir %{_sysconfdir}/%{name} %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf -%dir %{_sysconfdir}/%{name}/*.d -%attr(755,root,root) %{_sysconfdir}/%{name}/*.d/[0-9]* -%{_sysconfdir}/%{name}/*.d/README - +%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) %{_bindir}/%{name} %{_mandir}/man8/%{name}.8* - +%attr(755,root,root) %{_poldekconfdir}/pre-install.d/%{name} +%attr(755,root,root) %{_poldekconfdir}/post-install.d/%{name} %dir %attr(750,root,root) %{_localstatedir}/cache/%{name} +%{systemdunitdir}/etckeeper.service +%{systemdunitdir}/etckeeper.timer + +# subpackages +%exclude /lib/etckeeper/commit.d/30bzr-add + %files bzr %defattr(644,root,root,755) +/lib/etckeeper/commit.d/30bzr-add %dir %{py_sitescriptdir}/bzrlib %dir %{py_sitescriptdir}/bzrlib/plugins %dir %{py_sitescriptdir}/bzrlib/plugins/%{name} %{py_sitescriptdir}/bzrlib/plugins/%{name}/*.py[co] +%if "%{pld_release}" != "ac" %{py_sitescriptdir}/bzr_etckeeper-*.egg-info +%endif %files -n bash-completion-%{name} %defattr(644,root,root,755) -%{_sysconfdir}/bash_completion.d/%{name} +%{bash_compdir}/etckeeper