From f1bd36fe28a86189be6345909790a0727ba16053 Mon Sep 17 00:00:00 2001 From: Richard Allen Megginson Date: Oct 07 2009 15:42:34 +0000 Subject: 1.2.3 release added template-initconfig to %files %posttrans now runs update to update the server instances servers are shutdown, then restarted if running before install scriptlets mostly use lua now to pass data among scriptlet phases Added 389-ds-base-git-local.sh script to generate a source tarball from a local git repository and a git tag --- diff --git a/.cvsignore b/.cvsignore index a3005bb..7a8bc93 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1 @@ -389-ds-base-1.2.1.tar.bz2 -389-ds-base-1.2.2.tar.bz2 +389-ds-base-1.2.3.tar.bz2 diff --git a/389-ds-base-git-local.sh b/389-ds-base-git-local.sh new file mode 100644 index 0000000..31147ec --- /dev/null +++ b/389-ds-base-git-local.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +DATE=`date +%Y%m%d` +# use a real tag name here +TAG=389-ds-base-1.2.3 +VERSION=1.2.3 +PKGNAME=389-ds-base +#SRCNAME=$PKGNAME-$VERSION-$DATE +SRCNAME=$PKGNAME-$VERSION + +echo you must be in the ds git repo to use this +git status > /dev/null || echo bye +if [ -z "$1" ] ; then + dir=. +else + dir="$1" +fi + +git archive --prefix=$SRCNAME/ $TAG | bzip2 > $dir/$SRCNAME.tar.bz2 diff --git a/389-ds-base.spec b/389-ds-base.spec index a76a9a8..43595e2 100644 --- a/389-ds-base.spec +++ b/389-ds-base.spec @@ -3,8 +3,8 @@ Summary: 389 Directory Server (base) Name: 389-ds-base -Version: 1.2.2 -Release: 2%{?dist} +Version: 1.2.3 +Release: 1%{?dist} License: GPLv2 with exceptions URL: http://port389.org/ Group: System Environment/Daemons @@ -146,24 +146,37 @@ if rc == 0 then end end -%post -/sbin/chkconfig --add %{pkgname} -/sbin/ldconfig -# this has been problematic - if this directory -# does not exist, the server will silently fail to -# start - however, if the user has already created -# it, we don't want to overwrite the permissions -# on it - so we can't list it explicitly in the -# files section - we list it as a ghost so that -# it will be removed when the rpm is removed -if [ ! -d %{_localstatedir}/run/%{pkgname} ] ; then - mkdir -p %{_localstatedir}/run/%{pkgname} -fi +%post -p +os.execute('/sbin/chkconfig --add %{pkgname}') +os.execute('/sbin/ldconfig') +os.execute('/sbin/chkconfig --add %{pkgname}-snmp') +-- this has been problematic - if this directory +-- does not exist, the server will silently fail to +-- start - however, if the user has already created +-- it, we don't want to overwrite the permissions +-- on it - so we can't list it explicitly in the +-- files section - we list it as a ghost so that +-- it will be removed when the rpm is removed +if not posix.access("%{_localstatedir}/run/%{pkgname}") then + posix.mkdir("%{_localstatedir}/run/%{pkgname}") +end +-- since posttrans is not passed the upgrade status, we get +-- it here +if (arg[2] > 1) or %{pkgname}_exists then +-- print("in %{pkgname} post - upgrading") + %{pkgname}_upgrading = true +else +-- print("in %{pkgname} post - installing") + %{pkgname}_upgrading = false +end + %preun if [ $1 = 0 ]; then /sbin/service %{pkgname} stop >/dev/null 2>&1 || : /sbin/chkconfig --del %{pkgname} + /sbin/service %{pkgname}-snmp stop >/dev/null 2>&1 || : + /sbin/chkconfig --del %{pkgname}-snmp fi %postun -p /sbin/ldconfig @@ -177,9 +190,45 @@ if %{pkgname}_savelinks then -- print("posttrans - restored run level "..fullpath.." to "..link) end end +if %{pkgname}_upgrading then + instbase = "%{_sysconfdir}/%{pkgname}" +-- print("posttrans - upgrading - looking for instances in "..instbase) +-- find all instances + instances = {} -- instances that require a restart after upgrade + for dir in posix.files(instbase) do +-- print("dir="..dir) + if string.find(dir,"^slapd-") and not string.find(dir,"\.removed$") then + inst = string.gsub(dir,"^slapd[-]", "") +-- print("found instance "..inst.." getting status") + rc = os.execute('/sbin/service %{pkgname} status '..inst..' >/dev/null 2>&1') +-- if instance is running, we must restart it after upgrade + if rc == 0 then + instances[inst] = inst +-- print("instance "..inst.." is running") +-- else +-- print("instance "..inst.." is shutdown") + end + end + end +-- shutdown all instances +-- print("shutting down all instances . . .") + os.execute('/sbin/service %{pkgname} stop > /dev/null 2>&1') +-- do the upgrade +-- print("upgrading instances . . .") + os.execute('%{_sbindir}/setup-ds.pl -l /dev/null -u -s General.UpdateMode=offline > /dev/null 2>&1') +-- restart instances that require it + for inst,dummy in pairs(instances) do +-- print("restarting instance "..inst) + os.execute('/sbin/service %{pkgname} start '..inst..' >/dev/null 2>&1') + end +end +-- if we upgraded from fedora to 389, the upgrade will shutdown +-- all old running instances, so we have to start them here if %{pkgname}_exists then +-- print("restarting all instances due to package rename") os.execute('/sbin/service %{pkgname} start >/dev/null 2>&1') end + %files %defattr(-,root,root,-) @@ -190,9 +239,12 @@ end %dir %{_sysconfdir}/%{pkgname}/config %config(noreplace)%{_sysconfdir}/%{pkgname}/config/slapd-collations.conf %config(noreplace)%{_sysconfdir}/%{pkgname}/config/certmap.conf +%config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf +%config(noreplace)%{_sysconfdir}/%{pkgname}/config/template-initconfig %config(noreplace)%{_sysconfdir}/sysconfig/%{pkgname} %{_datadir}/%{pkgname} %{_sysconfdir}/rc.d/init.d/%{pkgname} +%{_sysconfdir}/rc.d/init.d/%{pkgname}-snmp %{_bindir}/* %{_sbindir}/* %dir %{_libdir}/%{pkgname} @@ -213,6 +265,13 @@ end %{_libdir}/%{pkgname}/*.so %changelog +* Mon Sep 14 2009 Rich Megginson - 1.2.3-1 +- 1.2.3 release +- added template-initconfig to %files +- %posttrans now runs update to update the server instances +- servers are shutdown, then restarted if running before install +- scriptlets mostly use lua now to pass data among scriptlet phases + * Tue Sep 08 2009 Nathan Kinder - 1.2.2-2 - removed BuildRequires for lm_sensors on s390 and s390x diff --git a/sources b/sources index e1525b6..a02d4dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -143564394e4ad20bf4ea96e3e8ce970a 389-ds-base-1.2.2.tar.bz2 +1a21a7490d71a585025af657ee133790 389-ds-base-1.2.3.tar.bz2