removal of subdirs under /usr/local
Howdy,
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
Matt
Reply to: