On Tue, Nov 21, 2000 at 01:05:38PM -0800, Matt Kraai wrote: > Section 2.2 of the packaging manual says that the postinst script should > be idempotent. Section 3.1.2 of the Policy Manual suggests the > following code to remove directories under /usr/local: > > rmdir /usr/local/lib/emacs/site-lisp && \ > rmdir /usr/local/lib/emacs || \ > true > > This is not idempotent if the system fails (or someone sends a signal) > after /usr/local/lib/emacs/site-lisp is removed, but before > /usr/local/lib/emacs is. Subsequent invocations will never remove > /usr/local/lib/emacs . I think the following is a better solution: > > rmdir /usr/local/lib/emacs/site-lisp /usr/local/lib/emacs || true > > If we can't rely on rmdir continuing with the rest of its arguments if > the first removal fails, then it seems that the following should be > used: > > rmdir /usr/local/lib/emacs/site-lisp || true > rmdir /usr/local/lib/emacs || true
I've changed the (now policy) docs in CVS to use your second suggestion. Julian -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Julian Gilbey, Dept of Maths, Queen Mary, Univ. of London Debian GNU/Linux Developer, see http://people.debian.org/~jdg Donate free food to the world's hungry: see http://www.thehungersite.com/