From fd2b5ae1fa1f1644ce72327cb5a581c11a25ab59 Mon Sep 17 00:00:00 2001 From: Jimmy Tang Date: Wed, 25 Feb 2009 10:56:39 +0000 Subject: added yum-etckeeper plugin to top level etckeeper specfile. made makefile install said plugin when yum is selected as a high level package manager. --- Makefile | 4 ++ etckeeper.conf | 2 +- etckeeper.spec | 9 +++-- yum-etckeeper.conf | 2 + yum-etckeeper.py | 36 +++++++++++++++++ yum-etckeeper/AUTHORS | 1 - yum-etckeeper/LICENSE | 0 yum-etckeeper/README | 8 ---- yum-etckeeper/etckeeper.conf | 2 - yum-etckeeper/etckeeper.py | 40 ------------------- yum-etckeeper/list-installed.d/60list-installed | 7 ---- yum-etckeeper/makefile | 32 ---------------- yum-etckeeper/yum-etckeeper.spec | 51 ------------------------- 13 files changed, 49 insertions(+), 145 deletions(-) create mode 100644 yum-etckeeper.conf create mode 100644 yum-etckeeper.py delete mode 100644 yum-etckeeper/AUTHORS delete mode 100644 yum-etckeeper/LICENSE delete mode 100644 yum-etckeeper/README delete mode 100644 yum-etckeeper/etckeeper.conf delete mode 100644 yum-etckeeper/etckeeper.py delete mode 100755 yum-etckeeper/list-installed.d/60list-installed delete mode 100644 yum-etckeeper/makefile delete mode 100644 yum-etckeeper/yum-etckeeper.spec diff --git a/Makefile b/Makefile index d07417c..cb47591 100644 --- a/Makefile +++ b/Makefile @@ -29,6 +29,10 @@ ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),apt) endif ifeq ($(LOWLEVEL_PACKAGE_MANAGER),pacman-g2) $(INSTALL_DATA) pacman-g2.hook $(DESTDIR)$(etcdir)/pacman-g2/hooks/etckeeper +endif +ifeq ($(HIGHLEVEL_PACKAGE_MANAGER),yum) + $(INSTALL_DATA) yum-etckeeper.py $(DESTDIR)$(prefix)/lib/yum-plugins/etckeeper.py + $(INSTALL_DATA) yum-etckeeper.conf $(DESTDIR)$(etcdir)/yum/pluginconf.d/etckeeper.conf endif -./etckeeper-bzr/__init__.py install --root=$(DESTDIR) || echo "** bzr support not installed" echo "** installation successful" diff --git a/etckeeper.conf b/etckeeper.conf index 2de81dd..f810870 100644 --- a/etckeeper.conf +++ b/etckeeper.conf @@ -26,7 +26,7 @@ VCS="git" #AVOID_COMMIT_BEFORE_INSTALL=1 # The high-level package manager that's being used. -# (apt, pacman-g2, etc) +# (apt, pacman-g2, yum etc) HIGHLEVEL_PACKAGE_MANAGER=apt # The low-level package manager that's being used. diff --git a/etckeeper.spec b/etckeeper.spec index 351244a..41402f0 100644 --- a/etckeeper.spec +++ b/etckeeper.spec @@ -1,5 +1,5 @@ Name: etckeeper -Version: 0.31 +Version: 0.32 Release: 1%{?dist} Summary: store /etc in git, mercurial, bzr or darcs @@ -10,7 +10,7 @@ Source0: http://ftp.debian.org/debian/pool/main/e/etckeeper/%{name}_%{ver BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: git >= 1.6.1-1 -Obsoletes: etckeeper = snapshot +Obsoletes: etckeeper = snapshot, yum-etckeeper %description The etckeeper program is a tool to let /etc be stored in a git, @@ -50,8 +50,11 @@ rm -rf $RPM_BUILD_ROOT %{_sbindir}/* %{_mandir}/* /etc/* - +%{_prefix}/lib/* %changelog +* Wed Feb 25 2009 Jimmy Tang - 0.32-1 +- yum etckeeper plugin is now apart of this package + * Tue Feb 24 2009 Jimmy Tang - 0.31-1 - initial package diff --git a/yum-etckeeper.conf b/yum-etckeeper.conf new file mode 100644 index 0000000..8e4d76c --- /dev/null +++ b/yum-etckeeper.conf @@ -0,0 +1,2 @@ +[main] +enabled=1 diff --git a/yum-etckeeper.py b/yum-etckeeper.py new file mode 100644 index 0000000..f3ec762 --- /dev/null +++ b/yum-etckeeper.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# +# author: jtang@tchpc.tcd.ie +# +# this plugin is based on the hello world example +# from http://yum.baseurl.org/wiki/WritingYumPlugins +# +# to install, copy this file to /usr/lib/yum-plugins/etckeeper.py +# and then create /etc/yum/pluginconf.d/etckeeper.conf with the contents +# below. +# +# /etc/yum/pluginconf.d/etckeeper.conf: +# [main] +# enabled=1 +# + +import os +from glob import fnmatch + +import yum +from yum.plugins import TYPE_CORE + +requires_api_version = '2.1' +plugin_type = (TYPE_CORE,) + +def pretrans_hook(conduit): + conduit.info(2, 'etckeeper: pre transaction commit') + servicecmd = conduit.confString('main', 'servicecmd', '/usr/sbin/etckeeper') + command = '%s %s' % (servicecmd, " pre-install") + os.system(command) + +def posttrans_hook(conduit): + conduit.info(2, 'etckeeper: post transcation commit') + servicecmd = conduit.confString('main', 'servicecmd', '/usr/sbin/etckeeper') + command = '%s %s' % (servicecmd, "post-install") + os.system(command) diff --git a/yum-etckeeper/AUTHORS b/yum-etckeeper/AUTHORS deleted file mode 100644 index 37bddf3..0000000 --- a/yum-etckeeper/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -jtang@tchpc.tcd.ie diff --git a/yum-etckeeper/LICENSE b/yum-etckeeper/LICENSE deleted file mode 100644 index e69de29..0000000 diff --git a/yum-etckeeper/README b/yum-etckeeper/README deleted file mode 100644 index 0d91824..0000000 --- a/yum-etckeeper/README +++ /dev/null @@ -1,8 +0,0 @@ -yum pre and post install hook, this is similar to the apt get hook. -its probably not as refined. - -there is a simple spec file and makefile for generating installable -rpms. it also relies on the etckeeper package that I cooked up. - -i've been using it on my own systems and it appears to work fine with -the autoupdate system and when i install/remove apps with yum. diff --git a/yum-etckeeper/etckeeper.conf b/yum-etckeeper/etckeeper.conf deleted file mode 100644 index 8e4d76c..0000000 --- a/yum-etckeeper/etckeeper.conf +++ /dev/null @@ -1,2 +0,0 @@ -[main] -enabled=1 diff --git a/yum-etckeeper/etckeeper.py b/yum-etckeeper/etckeeper.py deleted file mode 100644 index f1b7edb..0000000 --- a/yum-etckeeper/etckeeper.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -# author: jtang@tchpc.tcd.ie -# -# this plugin is based on the hello world example -# from http://yum.baseurl.org/wiki/WritingYumPlugins -# -# to install, copy this file to /usr/lib/yum-plugins/etckeeper.py -# and then create /etc/yum/pluginconf.d/etckeeper.conf with the contents -# below. -# -# /etc/yum/pluginconf.d/etckeeper.conf: -# [main] -# enabled=1 -# -# this was also needed in /etc/etckeeper/list-installed.d/60list-installed -#if [ "$LOWLEVEL_PACKAGE_MANAGER" = rpm ]; then -# rpm -qa --queryformat "%{name} %{version} %{arch}\n" | sort -#fi - -import os -from glob import fnmatch - -import yum -from yum.plugins import TYPE_CORE - -requires_api_version = '2.1' -plugin_type = (TYPE_CORE,) - -def pretrans_hook(conduit): - conduit.info(2, 'etckeeper: pre transaction commit') - servicecmd = conduit.confString('main', 'servicecmd', '/usr/sbin/etckeeper') - command = '%s %s' % (servicecmd, " pre-install") - os.system(command) - -def posttrans_hook(conduit): - conduit.info(2, 'etckeeper: post transcation commit') - servicecmd = conduit.confString('main', 'servicecmd', '/usr/sbin/etckeeper') - command = '%s %s' % (servicecmd, "post-install") - os.system(command) diff --git a/yum-etckeeper/list-installed.d/60list-installed b/yum-etckeeper/list-installed.d/60list-installed deleted file mode 100755 index aac39ea..0000000 --- a/yum-etckeeper/list-installed.d/60list-installed +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# Output to stdout a *sorted* list of all currently installed -# (or removed but still with config-files) packages, in the -# format "package version\n". -if [ "$LOWLEVEL_PACKAGE_MANAGER" = rpm ]; then - rpm -qa --queryformat "%{name} %{version} %{arch}\n" | sort -fi diff --git a/yum-etckeeper/makefile b/yum-etckeeper/makefile deleted file mode 100644 index 1a666ef..0000000 --- a/yum-etckeeper/makefile +++ /dev/null @@ -1,32 +0,0 @@ -DESTDIR?= -prefix=/usr -etcdir=/etc -CONFFILE=etckeeper.conf - -INSTALL=install -INSTALL_EXE=${INSTALL} -D -INSTALL_DATA=${INSTALL} -m 0644 -D - -PACKAGE=yum-etckeeper -DISTFILE=$(PACKAGE).tar.gz - -dist: $(DISTFILE) - -$(DISTFILE): - tar -C .. --exclude .git --exclude $(DISTFILE) \ - --exclude \*.diff --exclude .gitignore \ - --exclude .svn \ - --exclude \*.swp \ - -cvzf $(DISTFILE) $(PACKAGE) - -install: - mkdir -p $(DESTDIR)$(etcdir)/etckeeper/list-installed.d $(DESTDIR)$(prefix)/lib/yum-plugins $(DESTDIR)$(etcdir)/yum/pluginconf.d - $(INSTALL_DATA) $(CONFFILE) $(DESTDIR)$(etcdir)/yum/pluginconf.d/etckeeper.conf - $(INSTALL_DATA) etckeeper.py $(DESTDIR)$(prefix)/lib/yum-plugins/etckeeper.py - $(INSTALL_EXE) list-installed.d/60list-installed $(DESTDIR)$(etcdir)/etckeeper/list-installed.d/60list-installed - -rpms: dist - rpmbuild -ta $(DISTFILE) - -clean: - -rm -f $(DISTFILE) diff --git a/yum-etckeeper/yum-etckeeper.spec b/yum-etckeeper/yum-etckeeper.spec deleted file mode 100644 index e8f9fe5..0000000 --- a/yum-etckeeper/yum-etckeeper.spec +++ /dev/null @@ -1,51 +0,0 @@ -Name: yum-etckeeper -Version: snapshot -Release: 9%{?dist} -Summary: etckeeper pre and post transaction hook for yum - -Group: System Environment/Base -License: TCD -URL: http://www.tchpc.tcd.ie -Source0: yum-etckeeper.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -BuildRequires: etckeeper >= 0.31, yum, git >= 1.6.0.3-1 -Requires: etckeeper >= 0.31, yum, git >= 1.6.0.3-1 - -%description -etckeeper pre and post transaction hook for yum - -%prep -%setup -q -n yum-etckeeper - - -%build -exit 0 - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT - - -%clean -rm -rf $RPM_BUILD_ROOT - - -%files -%defattr(-,root,root,-) -%doc AUTHORS LICENSE README -/etc/etckeeper/list-installed.d/60list-installed -/etc/yum/pluginconf.d/etckeeper.conf -/usr/lib/yum-plugins/etckeeper.py* - - -%changelog -* Tue Feb 24 2009 Jimmy Tang - snapshot-9 -- ignore previous change, since I've packaged up etckeeper properly now -* Tue Feb 24 2009 Jimmy Tang - snapshot-7 -- upstream etckeeper has a list installed script for rpm so -removing my own one -* Mon Feb 16 2009 Jimmy Tang - snapshot-4 -- made it work in sl4 -* Mon Feb 16 2009 Jimmy Tang - snapshot-1 -- initial package -- cgit v1.2.3