Index: 389-ds-base.spec =================================================================== RCS file: /cvs/extras/rpms/389-ds-base/F-11/389-ds-base.spec,v retrieving revision 1.5 diff -u -8 -r1.5 389-ds-base.spec --- 389-ds-base.spec 8 Sep 2009 19:24:58 -0000 1.5 +++ 389-ds-base.spec 6 Oct 2009 02:37:03 -0000 @@ -1,15 +1,15 @@ %define pkgname dirsrv 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 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Provides: fedora-ds-base = %{version}-%{release} Obsoletes: fedora-ds-base < 1.2.1-1 BuildRequires: nspr-devel @@ -141,29 +141,39 @@ -- print(fullname.." is linked to "..linked) %{pkgname}_savelinks[fullname] = linked end end end 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 <lua> +os.execute('/sbin/chkconfig --add %{pkgname}') +os.execute('/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 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} fi %postun -p /sbin/ldconfig @@ -172,32 +182,71 @@ -- if we saved the run level configuration in %pre, restore it now -- we can get rid of this code once Fedora 11 becomes obsolete if %{pkgname}_savelinks then for fullpath,link in pairs(%{pkgname}_savelinks) do posix.symlink(link,fullpath) -- 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,-) %doc LICENSE EXCEPTION LICENSE.GPLv2 %dir %{_sysconfdir}/%{pkgname} %dir %{_sysconfdir}/%{pkgname}/schema %config(noreplace)%{_sysconfdir}/%{pkgname}/schema/*.ldif %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} %{_libdir}/%{pkgname}/*.so.* %{_libdir}/%{pkgname}/perl %dir %{_libdir}/%{pkgname}/plugins %{_libdir}/%{pkgname}/plugins/*.so %dir %{_localstatedir}/lib/%{pkgname} @@ -208,16 +257,23 @@ %files devel %defattr(-,root,root,-) %doc LICENSE EXCEPTION LICENSE.GPLv2 README.devel %{_includedir}/%{pkgname} %{_libdir}/%{pkgname}/*.so %changelog +* Mon Sep 14 2009 Rich Megginson <rmeggins@xxxxxxxxxx> - 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 <nkinder@xxxxxxxxxx> - 1.2.2-2 - removed BuildRequires for lm_sensors on s390 and s390x * Thu Aug 20 2009 Rich Megginson <rmeggins@xxxxxxxxxx> - 1.2.2-1 - backed out - added template-initconfig to %files - this change is for the next major release - bump version to 1.2.2 - fix reopened 509472 db2index all does not reindex all the db backends correctly - fix 518520 - pre hashed salted passwords do not work
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
-- 389-devel mailing list 389-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-directory-devel